From 7e50e681dcc2a4268d4381025ccd463dd89836b3 Mon Sep 17 00:00:00 2001 From: Andrey Loskutov Date: Fri, 22 Apr 2022 15:02:51 +0200 Subject: [PATCH] Bad workspace init bundle example Bundle uses immediate service to init workspace to default location, before prompt is even shown. See https://github.com/eclipse-equinox/equinox.bundles/issues/21 --- BadWorkspaceInit/META-INF/MANIFEST.MF | 11 ++++++ .../OSGI-INF/startupComponent.xml | 4 +++ BadWorkspaceInit/build.properties | 5 +++ .../loskutov/workspace/StartupComponent.java | 35 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 BadWorkspaceInit/META-INF/MANIFEST.MF create mode 100644 BadWorkspaceInit/OSGI-INF/startupComponent.xml create mode 100644 BadWorkspaceInit/build.properties create mode 100644 BadWorkspaceInit/src/de/loskutov/workspace/StartupComponent.java diff --git a/BadWorkspaceInit/META-INF/MANIFEST.MF b/BadWorkspaceInit/META-INF/MANIFEST.MF new file mode 100644 index 0000000..bc9b8dc --- /dev/null +++ b/BadWorkspaceInit/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: BadWorkspaceInit +Bundle-SymbolicName: BadWorkspaceInit +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: BadWorkspaceInit +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Require-Bundle: org.eclipse.core.resources, + org.eclipse.core.runtime +Service-Component: OSGI-INF/startupComponent.xml +Bundle-ActivationPolicy: lazy diff --git a/BadWorkspaceInit/OSGI-INF/startupComponent.xml b/BadWorkspaceInit/OSGI-INF/startupComponent.xml new file mode 100644 index 0000000..5c4229b --- /dev/null +++ b/BadWorkspaceInit/OSGI-INF/startupComponent.xml @@ -0,0 +1,4 @@ + + + + diff --git a/BadWorkspaceInit/build.properties b/BadWorkspaceInit/build.properties new file mode 100644 index 0000000..c58ea21 --- /dev/null +++ b/BadWorkspaceInit/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + OSGI-INF/ diff --git a/BadWorkspaceInit/src/de/loskutov/workspace/StartupComponent.java b/BadWorkspaceInit/src/de/loskutov/workspace/StartupComponent.java new file mode 100644 index 0000000..651fcc6 --- /dev/null +++ b/BadWorkspaceInit/src/de/loskutov/workspace/StartupComponent.java @@ -0,0 +1,35 @@ +package de.loskutov.workspace; + +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; + +public class StartupComponent { + + public StartupComponent() { + super(); + } + + public void start() { + Job job = new Job("Bad workspace init") { + @Override + protected IStatus run(IProgressMonitor monitor) { + // IContainer c = null; + // String encoding = ResourcesPlugin.getEncoding(); + IWorkspace workspace = ResourcesPlugin.getWorkspace(); + if(workspace == null) { + return Status.OK_STATUS; + } + String message = "Workspace is there: " + workspace; + System.err.println(message); + IStatus error = Status.error(message, new Exception("Using default workspace!!!")); + return error; + } + }; + job.schedule(); + } +}