diff --git a/bundles/org.eclipse.e4.core.commands/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.core.commands/.settings/org.eclipse.pde.ds.annotations.prefs
index 38f9eecff8e..5faf08b7d5c 100644
--- a/bundles/org.eclipse.e4.core.commands/.settings/org.eclipse.pde.ds.annotations.prefs
+++ b/bundles/org.eclipse.e4.core.commands/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -1,4 +1,4 @@
-dsVersion=V1_3
+dsVersion=V1_4
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
diff --git a/bundles/org.eclipse.e4.core.commands/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.core.commands/META-INF/MANIFEST.MF
index 045111c86dd..fa4a0d9df40 100644
--- a/bundles/org.eclipse.e4.core.commands/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.core.commands/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-SymbolicName: org.eclipse.e4.core.commands;singleton:=true
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Bundle-Version: 1.1.400.qualifier
+Bundle-Version: 1.1.500.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
jakarta.inject;version="[2.0.0,3.0.0)",
diff --git a/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/CommandServiceCreationFunction.java b/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/CommandServiceCreationFunction.java
index 1043905db4d..a835f6869a7 100644
--- a/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/CommandServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/CommandServiceCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,7 +21,8 @@
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.commands.ECommandService")
+@Component(service = IContextFunction.class )
+@IContextFunction.ServiceContextKey(org.eclipse.e4.core.commands.ECommandService.class)
public class CommandServiceCreationFunction extends ContextFunction {
/**
* A context key (value "rootContext") that identifies the root of this context chain. It does
diff --git a/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/HandlerServiceCreationFunction.java b/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/HandlerServiceCreationFunction.java
index 7be328b931e..eaf19909968 100644
--- a/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/HandlerServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.core.commands/src/org/eclipse/e4/core/commands/internal/HandlerServiceCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -20,7 +20,8 @@
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.commands.EHandlerService")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.e4.core.commands.EHandlerService.class)
public class HandlerServiceCreationFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.e4.ui.bindings/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.ui.bindings/.settings/org.eclipse.pde.ds.annotations.prefs
index 38f9eecff8e..5faf08b7d5c 100644
--- a/bundles/org.eclipse.e4.ui.bindings/.settings/org.eclipse.pde.ds.annotations.prefs
+++ b/bundles/org.eclipse.e4.ui.bindings/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -1,4 +1,4 @@
-dsVersion=V1_3
+dsVersion=V1_4
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
diff --git a/bundles/org.eclipse.e4.ui.bindings/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.bindings/META-INF/MANIFEST.MF
index 75e53af6bb0..71afdef993d 100644
--- a/bundles/org.eclipse.e4.ui.bindings/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.bindings/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.bindings;singleton:=true
-Bundle-Version: 0.14.400.qualifier
+Bundle-Version: 0.14.500.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.bindings/src/org/eclipse/e4/ui/bindings/internal/BindingServiceCreationFunction.java b/bundles/org.eclipse.e4.ui.bindings/src/org/eclipse/e4/ui/bindings/internal/BindingServiceCreationFunction.java
index 6e996fcda1d..e96f6ee7c5f 100644
--- a/bundles/org.eclipse.e4.ui.bindings/src/org/eclipse/e4/ui/bindings/internal/BindingServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.ui.bindings/src/org/eclipse/e4/ui/bindings/internal/BindingServiceCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -20,7 +20,8 @@
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.ui.bindings.EBindingService")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.e4.ui.bindings.EBindingService.class)
public class BindingServiceCreationFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.e4.ui.progress/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.ui.progress/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 00000000000..5faf08b7d5c
--- /dev/null
+++ b/bundles/org.eclipse.e4.ui.progress/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,7 @@
+dsVersion=V1_4
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
index ee8ae932c12..35c9b4571fa 100644
--- a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.progress;singleton:=true
-Bundle-Version: 0.4.600.qualifier
+Bundle-Version: 0.4.700.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -21,5 +21,5 @@ Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.e4.ui.progress
-Service-Component: OSGI-INF/progress.xml
+Service-Component: OSGI-INF/org.eclipse.e4.ui.progress.internal.ProgressServiceCreationFunction.xml
Automatic-Module-Name: org.eclipse.e4.ui.progress
diff --git a/bundles/org.eclipse.e4.ui.progress/OSGI-INF/progress.xml b/bundles/org.eclipse.e4.ui.progress/OSGI-INF/progress.xml
deleted file mode 100644
index 125fe58ab4f..00000000000
--- a/bundles/org.eclipse.e4.ui.progress/OSGI-INF/progress.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressServiceCreationFunction.java b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressServiceCreationFunction.java
index 2d527637a74..421367f7f54 100644
--- a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressServiceCreationFunction.java
@@ -16,8 +16,13 @@
import org.eclipse.e4.core.contexts.ContextFunction;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IContextFunction;
import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.progress.IProgressService;
+import org.osgi.service.component.annotations.Component;
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(IProgressService.class)
public class ProgressServiceCreationFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.e4.ui.services/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.ui.services/.settings/org.eclipse.pde.ds.annotations.prefs
index 38f9eecff8e..5faf08b7d5c 100644
--- a/bundles/org.eclipse.e4.ui.services/.settings/org.eclipse.pde.ds.annotations.prefs
+++ b/bundles/org.eclipse.e4.ui.services/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -1,4 +1,4 @@
-dsVersion=V1_3
+dsVersion=V1_4
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
diff --git a/bundles/org.eclipse.e4.ui.services/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.services/META-INF/MANIFEST.MF
index 7995d6f3ad1..885b29de149 100644
--- a/bundles/org.eclipse.e4.ui.services/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.services/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.services;singleton:=true
-Bundle-Version: 1.6.300.qualifier
+Bundle-Version: 1.6.400.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.services/src/org/eclipse/e4/ui/services/events/EventBrokerFactory.java b/bundles/org.eclipse.e4.ui.services/src/org/eclipse/e4/ui/services/events/EventBrokerFactory.java
index ff99ee48454..efd74d1599e 100644
--- a/bundles/org.eclipse.e4.ui.services/src/org/eclipse/e4/ui/services/events/EventBrokerFactory.java
+++ b/bundles/org.eclipse.e4.ui.services/src/org/eclipse/e4/ui/services/events/EventBrokerFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2016 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -23,12 +23,11 @@
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.event.EventAdmin;
-
-
/**
* Use this class to obtain an instance of {@link IEventBroker}.
*/
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.services.events.IEventBroker")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(IEventBroker.class)
public class EventBrokerFactory extends ContextFunction {
// mandatory static reference to EventAdmin to ensure it is available before
@@ -50,4 +49,3 @@ public Object compute(IEclipseContext context, String contextKey) {
return broker;
}
}
-
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.ui.workbench.swt/.settings/org.eclipse.pde.ds.annotations.prefs
index 73a356b6d05..b5c60ed2648 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/.settings/org.eclipse.pde.ds.annotations.prefs
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -1,5 +1,5 @@
classpath=true
-dsVersion=V1_3
+dsVersion=V1_4
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF
index 3322d6b5719..c15044ab336 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.workbench.swt;singleton:=true
-Bundle-Version: 0.17.500.qualifier
+Bundle-Version: 0.17.600.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/MenuServiceCreationFunction.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/MenuServiceCreationFunction.java
index 5b86b0c82ef..5aa63815560 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/MenuServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/MenuServiceCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2016 IBM Corporation and others.
+ * Copyright (c) 2010, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -20,7 +20,8 @@
import org.eclipse.e4.core.di.InjectionException;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.ui.services.EMenuService")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.e4.ui.services.EMenuService.class)
public class MenuServiceCreationFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/StatusReporterCreationFunction.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/StatusReporterCreationFunction.java
index fdc8204fa7e..444e3a80bab 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/StatusReporterCreationFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/StatusReporterCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2016 IBM Corporation and others.
+ * Copyright (c) 2010, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,13 +19,13 @@
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.services.statusreporter.StatusReporter")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.e4.core.services.statusreporter.StatusReporter.class)
public class StatusReporterCreationFunction extends ContextFunction {
@Override
public Object compute(IEclipseContext context, String contextKey) {
- return ContextInjectionFactory.make(WorkbenchStatusReporter.class,
- context);
+ return ContextInjectionFactory.make(WorkbenchStatusReporter.class, context);
}
}
diff --git a/bundles/org.eclipse.e4.ui.workbench/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.e4.ui.workbench/.settings/org.eclipse.pde.ds.annotations.prefs
index 73a356b6d05..b5c60ed2648 100644
--- a/bundles/org.eclipse.e4.ui.workbench/.settings/org.eclipse.pde.ds.annotations.prefs
+++ b/bundles/org.eclipse.e4.ui.workbench/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -1,5 +1,5 @@
classpath=true
-dsVersion=V1_3
+dsVersion=V1_4
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
diff --git a/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
index f4f1df6ffe7..6fbedd6f1f6 100644
--- a/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.workbench;singleton:=true
-Bundle-Version: 1.15.500.qualifier
+Bundle-Version: 1.15.600.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -37,7 +37,8 @@ Export-Package: org.eclipse.e4.ui.internal.workbench;
Bundle-Activator: org.eclipse.e4.ui.internal.workbench.Activator
Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
jakarta.inject;version="[2.0.0,3.0.0)",
- org.osgi.service.event;version="[1.3.0,2.0.0)"
+ org.osgi.service.event;version="[1.3.0,2.0.0)",
+ org.osgi.service.event.propertytypes;version="[1.4.0,2.0.0)"
Require-Capability: osgi.extender;
filter:="(&(osgi.extender=osgi.component)(version>=1.2)(!(version>=2.0)))",
osgi.service;
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceContextFunction.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceContextFunction.java
index 36873f12350..717f56de302 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceContextFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceContextFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2016 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -24,13 +24,13 @@
/**
* Context function to provide the LocaleChangeServiceImpl to the application context.
*/
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.services.nls.ILocaleChangeService")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(ILocaleChangeService.class)
public class LocaleChangeServiceContextFunction extends ContextFunction {
@Override
public Object compute(IEclipseContext context, String contextKey) {
- ILocaleChangeService lcService = ContextInjectionFactory.make(
- LocaleChangeServiceImpl.class, context);
+ ILocaleChangeService lcService = ContextInjectionFactory.make(LocaleChangeServiceImpl.class, context);
// add the new object to the application context
MApplication application = context.get(MApplication.class);
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ExtensionTrackeContextFunction.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ExtensionTrackeContextFunction.java
index 949b7b4d6ec..6f5b03b94ad 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ExtensionTrackeContextFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ExtensionTrackeContextFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2022 Christoph Läubrich and others.
+ * Copyright (c) 2022, 2024 Christoph Läubrich and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -27,10 +27,11 @@
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
+import org.osgi.service.event.propertytypes.EventTopics;
-@Component(service = IContextFunction.class, property = {
- "service.context.key=org.eclipse.core.runtime.dynamichelpers.IExtensionTracker",
- "event.topics=" + IEclipseContext.TOPIC_DISPOSE })
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(IExtensionTracker.class)
+@EventTopics(IEclipseContext.TOPIC_DISPOSE)
public class ExtensionTrackeContextFunction extends ContextFunction implements EventHandler {
@Reference
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceCreationFunction.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceCreationFunction.java
index cb474b0557d..8380b5a3aa6 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceCreationFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceCreationFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2016 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,8 @@
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.osgi.service.component.annotations.Component;
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.ui.workbench.modeling.EPartService")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.e4.ui.workbench.modeling.EPartService.class)
public class PartServiceCreationFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ProgressMonitorFunction.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ProgressMonitorFunction.java
index f074349c24e..afbdd6ffb1d 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ProgressMonitorFunction.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ProgressMonitorFunction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2016 IBM Corporation and others.
+ * Copyright (c) 2009, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,8 @@
* used near the root of a context tree to provide a reasonable default monitor for cases where more
* specific contexts have not provided one.
*/
-@Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.core.runtime.IProgressMonitor")
+@Component(service = IContextFunction.class)
+@IContextFunction.ServiceContextKey(org.eclipse.core.runtime.IProgressMonitor.class)
public class ProgressMonitorFunction extends ContextFunction {
@Override
diff --git a/bundles/org.eclipse.search/.project b/bundles/org.eclipse.search/.project
index 35821137d43..88541630343 100644
--- a/bundles/org.eclipse.search/.project
+++ b/bundles/org.eclipse.search/.project
@@ -25,6 +25,11 @@
+
+ org.eclipse.pde.ds.core.builder
+
+
+
org.eclipse.jdt.core.javanature
diff --git a/bundles/org.eclipse.search/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.search/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 00000000000..5faf08b7d5c
--- /dev/null
+++ b/bundles/org.eclipse.search/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,7 @@
+dsVersion=V1_4
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/bundles/org.eclipse.search/META-INF/MANIFEST.MF b/bundles/org.eclipse.search/META-INF/MANIFEST.MF
index 1f073adf212..54eb0583c69 100644
--- a/bundles/org.eclipse.search/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.search/META-INF/MANIFEST.MF
@@ -32,4 +32,4 @@ Require-Bundle:
org.eclipse.search.core;bundle-version="[3.16.0,4.0.0)";visibility:=reexport
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: org.eclipse.search
-Service-Component: OSGI-INF/*.xml
+Service-Component: OSGI-INF/org.eclipse.search.internal.ui.text.DirtyFileSearchParticipant.xml
diff --git a/bundles/org.eclipse.search/OSGI-INF/dirtyEditorService.xml b/bundles/org.eclipse.search/OSGI-INF/dirtyEditorService.xml
deleted file mode 100644
index b7b26d54aa6..00000000000
--- a/bundles/org.eclipse.search/OSGI-INF/dirtyEditorService.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/text/DirtyFileSearchParticipant.java b/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/text/DirtyFileSearchParticipant.java
index b7e293f90b2..9d5eea4ff7b 100644
--- a/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/text/DirtyFileSearchParticipant.java
+++ b/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/text/DirtyFileSearchParticipant.java
@@ -16,6 +16,8 @@
import java.util.HashMap;
import java.util.Map;
+import org.osgi.service.component.annotations.Component;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.filebuffers.FileBuffers;
@@ -38,6 +40,7 @@
import org.eclipse.search.internal.core.text.DirtyFileProvider;
+@Component(service = DirtyFileProvider.class, immediate = false, property = { "weight:Integer=100" })
public class DirtyFileSearchParticipant implements DirtyFileProvider {
@Override
diff --git a/docs/Eclipse4_RCP_Contexts.md b/docs/Eclipse4_RCP_Contexts.md
index 57ec1aff16a..7e7a3d09a83 100644
--- a/docs/Eclipse4_RCP_Contexts.md
+++ b/docs/Eclipse4_RCP_Contexts.md
@@ -194,7 +194,8 @@ These contexts — and the services requested — are bounded by the lifecycle o
This approach exposes a context function as the implementation of a service defined OSGi Declarative Services.
This pattern is used for creating the _IEventBroker_, using the new DS annotations support.
- @Component(service = IContextFunction.class, property = "service.context.key=org.eclipse.e4.core.services.events.IEventBroker")
+ @Component(service = IContextFunction.class)
+ @IContextFunction.ServiceContextKey(org.eclipse.e4.core.services.events.IEventBroker.class)
public class EventBrokerFactory extends ContextFunction {
@Override
public Object compute(IEclipseContext context, String contextKey) {
diff --git a/examples/org.eclipse.e4.demo.cssbridge/.gitignore b/examples/org.eclipse.e4.demo.cssbridge/.gitignore
new file mode 100644
index 00000000000..7bec98dd976
--- /dev/null
+++ b/examples/org.eclipse.e4.demo.cssbridge/.gitignore
@@ -0,0 +1 @@
+/OSGI-INF/org.eclipse.*.xml
diff --git a/examples/org.eclipse.e4.demo.cssbridge/.settings/org.eclipse.pde.ds.annotations.prefs b/examples/org.eclipse.e4.demo.cssbridge/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 00000000000..5faf08b7d5c
--- /dev/null
+++ b/examples/org.eclipse.e4.demo.cssbridge/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,7 @@
+dsVersion=V1_4
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/examples/org.eclipse.e4.demo.cssbridge/META-INF/MANIFEST.MF b/examples/org.eclipse.e4.demo.cssbridge/META-INF/MANIFEST.MF
index b93bb3f58fe..0de3cb3e103 100644
--- a/examples/org.eclipse.e4.demo.cssbridge/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.e4.demo.cssbridge/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@ Export-Package: org.eclipse.e4.demo.cssbridge.core,
org.eclipse.e4.demo.cssbridge.ui.views,
org.eclipse.e4.demo.cssbridge.util
Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/mailservice.xml
+Service-Component: OSGI-INF/org.eclipse.e4.demo.cssbridge.internal.core.DummyMailService.xml
Automatic-Module-Name: org.eclipse.e4.demo.cssbridge
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
diff --git a/examples/org.eclipse.e4.demo.cssbridge/OSGI-INF/mailservice.xml b/examples/org.eclipse.e4.demo.cssbridge/OSGI-INF/mailservice.xml
deleted file mode 100644
index a1d21b6f739..00000000000
--- a/examples/org.eclipse.e4.demo.cssbridge/OSGI-INF/mailservice.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/examples/org.eclipse.e4.demo.cssbridge/build.properties b/examples/org.eclipse.e4.demo.cssbridge/build.properties
index baec4a9632c..ac7c8ebc08a 100644
--- a/examples/org.eclipse.e4.demo.cssbridge/build.properties
+++ b/examples/org.eclipse.e4.demo.cssbridge/build.properties
@@ -3,7 +3,6 @@ bin.includes = plugin.xml,\
.,\
icons/,\
splash.bmp,\
- OSGI-INF/mailservice.xml,\
OSGI-INF/,\
plugin.properties
output.. = bin/
diff --git a/examples/org.eclipse.e4.demo.cssbridge/src/org/eclipse/e4/demo/cssbridge/internal/core/DummyMailService.java b/examples/org.eclipse.e4.demo.cssbridge/src/org/eclipse/e4/demo/cssbridge/internal/core/DummyMailService.java
index f381317d44d..65fb1cc4870 100644
--- a/examples/org.eclipse.e4.demo.cssbridge/src/org/eclipse/e4/demo/cssbridge/internal/core/DummyMailService.java
+++ b/examples/org.eclipse.e4.demo.cssbridge/src/org/eclipse/e4/demo/cssbridge/internal/core/DummyMailService.java
@@ -26,7 +26,9 @@
import org.eclipse.e4.demo.cssbridge.model.Importance;
import org.eclipse.e4.demo.cssbridge.model.Mail;
import org.eclipse.e4.demo.cssbridge.util.MailBuilder;
+import org.osgi.service.component.annotations.Component;
+@Component(service = IMailService.class)
public class DummyMailService implements IMailService {
private static final String MAILBOX_NAME = "me@this.com";