You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2018/09/26 16:45:39 UTC
svn commit: r1842034 [5/11] - in /felix/trunk/dependencymanager: ./
.gradle-wrapper/ cnf/ cnf/buildrepo/ cnf/ext/ cnf/localrepo/
cnf/localrepo/org.apache.felix.gogo.command/
cnf/localrepo/org.apache.felix.gogo.jline/
cnf/localrepo/org.apache.felix.gogo...
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MethodSignatures.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MethodSignatures.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MethodSignatures.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MethodSignatures.java Wed Sep 26 16:45:35 2018
@@ -25,7 +25,6 @@ import java.util.Map;
import org.apache.felix.dm.annotation.api.Component;
import org.apache.felix.dm.annotation.api.ConfigurationDependency;
-import org.apache.felix.dm.annotation.api.FactoryConfigurationAdapterService;
import org.apache.felix.dm.annotation.api.ServiceDependency;
import org.apache.felix.dm.annotation.api.Start;
import org.apache.felix.dm.annotation.api.Stop;
@@ -261,7 +260,7 @@ public class MethodSignatures {
}
// This is a factory pid component with an updated callback having the "updated(Dictionary)" signature
- @FactoryConfigurationAdapterService
+ @Component(factoryPid="org.apache.felix.dm.runtime.itest.components.MethodSignatures$FactoryPidComponent")
public static class FactoryPidComponent {
Dictionary<String, Object> m_properties;
@@ -286,7 +285,7 @@ public class MethodSignatures {
}
// This is a factory pid component with an updated callback having the "updated(Component, Dictionary)" signature
- @FactoryConfigurationAdapterService
+ @Component(factoryPid="org.apache.felix.dm.runtime.itest.components.MethodSignatures$FactoryPidComponent2")
public static class FactoryPidComponent2 {
Dictionary<String, Object> m_properties;
@@ -312,7 +311,7 @@ public class MethodSignatures {
}
// This is a factory pid component with an updated callback having the "updated(Config)" signature
- @FactoryConfigurationAdapterService(configType=Config.class)
+ @Component(factoryPid="org.apache.felix.dm.runtime.itest.components.MethodSignatures$Config")
public static class FactoryPidComponent3 {
Config m_properties;
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleAnnotations.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleAnnotations.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleAnnotations.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleAnnotations.java Wed Sep 26 16:45:35 2018
@@ -63,7 +63,8 @@ public class MultipleAnnotations {
public void doService();
}
- @Component(properties = {@Property(name = "foo", value = "bar")})
+ @Component
+ @Property(name = "foo", value = "bar")
public static class ServiceProvider implements ServiceInterface {
@ServiceDependency(filter="(name=" + ENSURE + ")")
volatile Ensure m_sequencer;
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleReconfigurableComponentPropertyType.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleReconfigurableComponentPropertyType.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleReconfigurableComponentPropertyType.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/MultipleReconfigurableComponentPropertyType.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.dm.runtime.itest.components;
+
+import java.io.IOException;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.apache.felix.dm.annotation.api.Component;
+import org.apache.felix.dm.annotation.api.ConfigurationDependency;
+import org.apache.felix.dm.annotation.api.PropertyType;
+import org.apache.felix.dm.annotation.api.ServiceDependency;
+import org.apache.felix.dm.itest.util.Ensure;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+/**
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+public class MultipleReconfigurableComponentPropertyType {
+ public final static String ENSURE = "MultipleReconfigurableComponentPropertyType";
+
+ @PropertyType
+ @Retention(RetentionPolicy.CLASS)
+ @interface MyProperties {
+ String string_value() default "defstring";
+ double double_value() default 123;
+ }
+
+ @PropertyType
+ @Retention(RetentionPolicy.CLASS)
+ @interface MyProperties2 {
+ String string_value2() default "defstring2";
+ double double_value2() default 456;
+ }
+
+ @Component(provides=MyComponent.class)
+ @MyProperties(string_value="string")
+ @MyProperties2(string_value2="string2")
+ public static class MyComponent {
+ @ConfigurationDependency(propagate=true, pidClass=MyComponent.class)
+ void updated(MyProperties props, MyProperties2 props2) {
+ if (props != null && props2 != null) {
+ System.out.println("MyComponent.updated: string_value=" + props.string_value() + ", double_value=" + props.double_value() +
+ "string_value2=" + props2.string_value2() + ", double_value2=" + props2.double_value2());
+ }
+ }
+ }
+
+ @Component
+ public static class MyConsumer {
+ @ServiceDependency(filter = "(name=" + ENSURE + ")")
+ volatile Ensure m_ensure;
+
+ Configuration m_conf;
+
+ @ServiceDependency
+ void bind(ConfigurationAdmin cm) {
+ try {
+ m_conf = cm.getConfiguration(MyComponent.class.getName());
+ Hashtable<String, Object> newprops = new Hashtable<>();
+ newprops.put("string.value", "string from CM");
+ m_conf.update(newprops);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @ServiceDependency(required=false, removed="unbind")
+ void bind(MyComponent comp, Map<String, Object> props) {
+ try {
+ // first, we expect to be injected with MyComponent with the following properties:
+ // string.value=another_string and double_value=123
+ if ("string from CM".equals(props.get("string.value")) && new Double(123).equals(props.get("double.value")) &&
+ "string2".equals(props.get("string.value2")) && new Double(456).equals(props.get("double.value2"))) {
+ m_ensure.step(1);
+ m_conf.delete();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ void unbind(MyComponent comp) {
+ m_ensure.step(2);
+ }
+ }
+
+}
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/PropagateAnnotation.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/PropagateAnnotation.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/PropagateAnnotation.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/PropagateAnnotation.java Wed Sep 26 16:45:35 2018
@@ -59,13 +59,15 @@ public class PropagateAnnotation {
}
}
- @Component(provides = {Producer.class}, properties = {@Property(name = "foo", value = "bar")})
+ @Component(provides = Producer.class)
+ @Property(name = "foo", value = "bar")
public static class Producer {
@ServiceDependency(propagate = true)
volatile Producer2 m_producer;
}
- @Component(provides = {Producer2.class}, properties = {@Property(name = "foo2", value = "bar2")})
+ @Component(provides = Producer2.class)
+ @Property(name = "foo2", value = "bar2")
public static class Producer2 {
}
}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.dm.runtime.itest.components;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.apache.felix.dm.annotation.api.Component;
+import org.apache.felix.dm.annotation.api.ConfigurationDependency;
+import org.apache.felix.dm.annotation.api.PropertyType;
+import org.apache.felix.dm.annotation.api.ServiceDependency;
+import org.apache.felix.dm.itest.util.Ensure;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+/**
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+public class ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation {
+ public final static String ENSURE = "ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation";
+
+ @PropertyType
+ @Retention(RetentionPolicy.CLASS)
+ @interface MyReconfigurableProperties {
+ String string_value() default "defstring";
+ double double_value() default 123;
+ }
+
+ @Component(provides=MyComponent.class)
+ @MyReconfigurableProperties(string_value="another_string")
+ public static class MyComponent {
+ @ConfigurationDependency(propagate=true, required=false)
+ void updated(MyReconfigurableProperties props) {
+ System.out.println("MyComponent.updated: string_value=" + props.string_value() + ", double_value=" + props.double_value());
+ }
+ }
+
+ @Component
+ public static class MyConsumer {
+ @ServiceDependency(filter = "(name=" + ENSURE + ")")
+ volatile Ensure m_ensure;
+
+ @ServiceDependency
+ volatile ConfigurationAdmin m_cm;
+
+ Configuration m_conf;
+
+ @ServiceDependency(changed="change")
+ void bind(MyComponent comp, Map<String, Object> props) {
+ try {
+ // first, we expect to be injected with MyComponent with the following properties:
+ // string.value=another_string and double_value=123
+ if ("another_string".equals(props.get("string.value")) && new Double(123).equals(props.get("double.value"))) {
+ m_ensure.step(1);
+
+ // at this point, let's reconfigure ourself
+ m_conf = m_cm.getConfiguration(MyReconfigurableProperties.class.getName());
+ Hashtable<String, Object> newprops = new Hashtable<>();
+ newprops.put("string.value", "a_string_configured_from_CM");
+ m_conf.update(newprops);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ void change(MyComponent comp, Map<String, Object> props) {
+ try {
+ System.out.println("MyConsumer.change: " + props);
+ if (m_conf != null) {
+ // CM is reconfiguring us: we expect to be injected with MyComponent with the following properties:
+ // string.value=a_string_configured_from_CM and double_value=123
+ if ("a_string_configured_from_CM".equals(props.get("string.value"))
+ && new Double(123).equals(props.get("double.value"))) {
+ m_ensure.step(2);
+ Configuration conf = m_conf;
+ m_conf = null;
+ conf.delete();
+ }
+ } else {
+ // configuration has been deleted, we expect to be injected with default service properties:
+ // string.value=another_string" and double_value=123
+ if ("another_string".equals(props.get("string.value")) && new Double(123).equals(props.get("double.value"))) {
+ m_ensure.step(3);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ScopedServiceAnnotation.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ScopedServiceAnnotation.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ScopedServiceAnnotation.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ScopedServiceAnnotation.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.dm.runtime.itest.components;
+
+import java.util.Map;
+
+import org.apache.felix.dm.annotation.api.Component;
+import org.apache.felix.dm.annotation.api.PropertyType;
+import org.apache.felix.dm.annotation.api.ServiceDependency;
+import org.apache.felix.dm.annotation.api.ServiceScope;
+import org.apache.felix.dm.annotation.api.Start;
+import org.apache.felix.dm.annotation.api.Stop;
+import org.apache.felix.dm.itest.util.Ensure;
+import org.junit.Assert;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.ServiceObjects;
+import org.osgi.framework.ServiceRegistration;
+
+public class ScopedServiceAnnotation {
+
+ public final static String ENSURE = "ScopedServiceAnnotation.ENSURE";
+
+ public interface PrototypeService {
+ }
+
+ @PropertyType
+ public @interface MyConf {
+ public String foo() default "bar";
+ }
+
+ @Component(scope=ServiceScope.PROTOTYPE)
+ @MyConf(foo="bar2")
+ public static class PrototypeServiceImpl implements PrototypeService {
+ @ServiceDependency(filter = "(name=" + ENSURE + ")")
+ protected volatile Ensure m_sequencer;
+
+ Bundle m_clientBundle;
+ ServiceRegistration m_registration;
+
+ public PrototypeServiceImpl(Bundle b, ServiceRegistration sr) {
+ m_clientBundle = b;
+ m_registration = sr;
+ }
+
+ @Start
+ void start() {
+ Assert.assertNotNull(m_clientBundle);
+ Assert.assertNotNull(m_registration);
+ m_sequencer.step();
+ }
+
+ @Stop
+ void stop() {
+ m_sequencer.step();
+ }
+ }
+
+ @Component
+ public static class Consumer {
+ @ServiceDependency(filter = "(name=" + ENSURE + ")")
+ protected volatile Ensure m_sequencer;
+
+ private ServiceObjects<PrototypeService> m_so;
+ private PrototypeService m_service1;
+ private PrototypeService m_service2;
+
+ @ServiceDependency
+ void bind(PrototypeService service, Map<String, Object> props) {
+ m_service1 = service;
+ Assert.assertEquals("bar2", props.get("foo"));
+ }
+
+ @ServiceDependency
+ void bind2(ServiceObjects<PrototypeService> so) {
+ m_so = so;
+ m_service2 = m_so.getService();
+ }
+
+ @Start
+ void start() {
+ Assert.assertNotNull(m_service1);
+ Assert.assertNotNull(m_service2);
+ Assert.assertNotEquals(m_service1, m_service2);
+ m_sequencer.step();
+ }
+
+ @Stop
+ void stop() {
+ m_so.ungetService(m_service2);
+ m_sequencer.step();
+ }
+ }
+
+}
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ServiceTestWthPublisher.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ServiceTestWthPublisher.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ServiceTestWthPublisher.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/ServiceTestWthPublisher.java Wed Sep 26 16:45:35 2018
@@ -62,7 +62,8 @@ public class ServiceTestWthPublisher {
}
}
- @Component(properties = {@Property(name = "foo", value = "bar")})
+ @Component
+ @Property(name = "foo", value = "bar")
public static class ProviderImpl implements Provider {
@LifecycleController
volatile Runnable m_publisher; // injected and used to register our service
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/SimpleAnnotations.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/SimpleAnnotations.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/SimpleAnnotations.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/components/SimpleAnnotations.java Wed Sep 26 16:45:35 2018
@@ -43,7 +43,9 @@ public class SimpleAnnotations {
* Provides a <code>Runnable</code> service, which is required by the
* {@link Consumer} class.
*/
- @Component(properties = {@Property(name = "foo", value = "bar"), @Property(name="type", value="SimpleAnnotations")})
+ @Component
+ @Property(name = "foo", value = "bar")
+ @Property(name="type", value="SimpleAnnotations")
public static class Producer implements Runnable {
public final static String ENSURE = "SimpleAnnotations.Producer";
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/CollectionFieldDependencyAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/CollectionFieldDependencyAnnotationTest.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/CollectionFieldDependencyAnnotationTest.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/CollectionFieldDependencyAnnotationTest.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,56 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.apache.felix.dm.runtime.itest.tests;
+
+import org.apache.felix.dm.itest.util.Ensure;
+import org.apache.felix.dm.itest.util.TestBase;
+import org.apache.felix.dm.runtime.itest.components.CollectionFieldDependencyAnnotation;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Check if a client already bound to a service provider is called in swap method
+ * when an aspect service replaces the original service.
+ *
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+@SuppressWarnings("rawtypes")
+public class CollectionFieldDependencyAnnotationTest extends TestBase {
+
+ public void testAnnotatedAspect() {
+ Ensure e = new Ensure();
+ // register the two providers
+ ServiceRegistration provider1 = register(e, CollectionFieldDependencyAnnotation.ProviderImpl1.ENSURE);
+ ServiceRegistration provider2 = register(e, CollectionFieldDependencyAnnotation.ProviderImpl2.ENSURE);
+ e.waitForStep(2, 5000);
+
+ // register the consumer
+ ServiceRegistration consumer = register(e, CollectionFieldDependencyAnnotation.Consumer.ENSURE);
+ e.waitForStep(3, 5000);
+
+ // check if the first collection (m_list1) was properly injected in consumer
+ e.waitForStep(4, 5000);
+
+ // check if the second collection (m_list2) was properly injected in consumer
+ e.waitForStep(6, 5000);
+
+ provider1.unregister();
+ provider2.unregister();
+ consumer.unregister();
+ }
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ComponentPropertyTypeAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ComponentPropertyTypeAnnotationTest.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ComponentPropertyTypeAnnotationTest.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ComponentPropertyTypeAnnotationTest.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.dm.runtime.itest.tests;
+
+import org.apache.felix.dm.itest.util.Ensure;
+import org.apache.felix.dm.itest.util.TestBase;
+import org.apache.felix.dm.runtime.itest.components.ComponentDMPropertyTypeAnnotation;
+import org.apache.felix.dm.runtime.itest.components.ComponentDMPropertyTypeArrayAnnotation;
+import org.apache.felix.dm.runtime.itest.components.ComponentDMSingleValuedPropertyTypeAnnotation;
+import org.apache.felix.dm.runtime.itest.components.ComponentJaxrsResourceAnnotation;
+import org.apache.felix.dm.runtime.itest.components.ComponentPropertyTypeWithDictionaryPassedInUpdateCallback;
+import org.apache.felix.dm.runtime.itest.components.FactoryPidWithPropertyTypeAnnotation;
+import org.apache.felix.dm.runtime.itest.components.JaxrsComponentPropertyTypeAnnotation;
+import org.apache.felix.dm.runtime.itest.components.MultipleReconfigurableComponentPropertyType;
+import org.apache.felix.dm.runtime.itest.components.ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Use case: Ensure that a Provider can be injected into a Consumer, using simple DM annotations.
+ *
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+@SuppressWarnings("rawtypes")
+public class ComponentPropertyTypeAnnotationTest extends TestBase {
+
+ public void testJaxRsPropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, JaxrsComponentPropertyTypeAnnotation.JaxRsConsumer.ENSURE);
+ e.waitForStep(2, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testCustomPropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ComponentDMPropertyTypeAnnotation.ENSURE);
+ e.waitForStep(3, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testCustomPropertyTypesArray() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ComponentDMPropertyTypeArrayAnnotation.ENSURE);
+ e.waitForStep(4, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testSingleValuedPropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ComponentDMSingleValuedPropertyTypeAnnotation.ENSURE);
+ e.waitForStep(3, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testJaxrsPropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ComponentJaxrsResourceAnnotation.ENSURE);
+ e.waitForStep(2, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testCustomReconfigurablePropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ReconfigurableComponentPropertyTypeWithOptionalConfigAnnotation.ENSURE);
+ e.waitForStep(3, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testDictionaryPassedInUpdatedCallback() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, ComponentPropertyTypeWithDictionaryPassedInUpdateCallback.ENSURE);
+ e.waitForStep(3, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testMultipleReconfigurablePropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, MultipleReconfigurableComponentPropertyType.ENSURE);
+ e.waitForStep(2, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+ public void testFactoryPidWithPropertyTypes() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration sr1 = register(e, FactoryPidWithPropertyTypeAnnotation.ENSURE);
+ e.waitForStep(3, 5000);
+ sr1.unregister();
+ e.ensure();
+ }
+
+}
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ExtraServicePropertiesTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ExtraServicePropertiesTest.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ExtraServicePropertiesTest.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ExtraServicePropertiesTest.java Wed Sep 26 16:45:35 2018
@@ -21,8 +21,6 @@ package org.apache.felix.dm.runtime.ites
import org.apache.felix.dm.itest.util.Ensure;
import org.apache.felix.dm.itest.util.TestBase;
import org.apache.felix.dm.runtime.itest.components.ExtraAdapterServiceProperties;
-import org.apache.felix.dm.runtime.itest.components.ExtraComponentFactoryServiceProperties;
-import org.apache.felix.dm.runtime.itest.components.ExtraFactoryServiceProperties;
import org.apache.felix.dm.runtime.itest.components.ExtraServiceProperties;
import org.osgi.framework.ServiceRegistration;
@@ -44,26 +42,6 @@ public class ExtraServicePropertiesTest
sr.unregister();
}
- /**
- * Tests if a Service instantiated by a Factory set can provide its service properties from its start method.
- */
- public void testExtraFactoryServiceProperties() {
- Ensure e = new Ensure();
- ServiceRegistration sr = register(e, ExtraFactoryServiceProperties.ENSURE);
- e.waitForStep(3, 10000);
- sr.unregister();
- }
-
- /**
- * Tests if a Service instantiated by a DM ComponentFactory can provide its service properties from its start method.
- */
- public void testExtraComponentFactoryServiceProperties() {
- Ensure e = new Ensure();
- ServiceRegistration sr = register(e, ExtraComponentFactoryServiceProperties.ENSURE);
- e.waitForStep(3, 10000);
- sr.unregister();
- }
-
/**
* Tests if an AdapterService can provide its service properties from its start method.
*/
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/PublisherAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/PublisherAnnotationTest.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/PublisherAnnotationTest.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/PublisherAnnotationTest.java Wed Sep 26 16:45:35 2018
@@ -22,10 +22,7 @@ import org.apache.felix.dm.itest.util.En
import org.apache.felix.dm.itest.util.TestBase;
import org.apache.felix.dm.runtime.itest.components.AdapterServiceTestWithPublisher;
import org.apache.felix.dm.runtime.itest.components.BundleAdapterServiceTestWithPublisher;
-import org.apache.felix.dm.runtime.itest.components.ComponentFactoryServiceTestWthPublisher;
import org.apache.felix.dm.runtime.itest.components.FactoryConfigurationAdapterServiceTestWithPublisher;
-import org.apache.felix.dm.runtime.itest.components.FactoryServiceTestWthPublisher;
-import org.apache.felix.dm.runtime.itest.components.ResourceAdapterServiceTestWithPublisher;
import org.apache.felix.dm.runtime.itest.components.ServiceTestWthPublisher;
import org.osgi.framework.ServiceRegistration;
@@ -46,28 +43,6 @@ public class PublisherAnnotationTest ext
}
/**
- * A Service instantiated from a FactorySet, and which registers/unregisters its service,
- * using the @ServiceLifecycle annotation.
- */
- public void testFactoryServiceWithPublisher() {
- Ensure e = new Ensure();
- ServiceRegistration sr = register(e, FactoryServiceTestWthPublisher.ENSURE);
- e.waitForStep(5, 10000);
- sr.unregister();
- }
-
- /**
- * A Service instantiated from a DM ComponentFactory, and which registers/unregisters its service,
- * using the @ServiceLifecycle annotation.
- */
- public void testComponentFactoryServiceWithPublisher() {
- Ensure e = new Ensure();
- ServiceRegistration sr = register(e, ComponentFactoryServiceTestWthPublisher.ENSURE);
- e.waitForStep(5, 10000);
- sr.unregister();
- }
-
- /**
* Test an AdapterService which provides its interface using a @ServiceLifecycle.
*/
public void testAdapterServiceWithPublisher() {
@@ -86,16 +61,6 @@ public class PublisherAnnotationTest ext
e.waitForStep(5, 10000);
sr.unregister();
}
-
- /**
- * Test a ResourceAdapterService which provides its interface using a @ServiceLifecycle.
- */
- public void TestResourceAdapterServiceWithPublisher() {
- Ensure e = new Ensure();
- ServiceRegistration sr = register(e, ResourceAdapterServiceTestWithPublisher.ENSURE);
- e.waitForStep(5, 10000);
- sr.unregister();
- }
/**
* Test a FactoryConfigurationAdapterService which provides its interface using a @ServiceLifecycle.
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ScopedServiceAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ScopedServiceAnnotationTest.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ScopedServiceAnnotationTest.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/apache/felix/dm/runtime/itest/tests/ScopedServiceAnnotationTest.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,51 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.apache.felix.dm.runtime.itest.tests;
+
+import org.apache.felix.dm.itest.util.Ensure;
+import org.apache.felix.dm.itest.util.TestBase;
+import org.apache.felix.dm.runtime.itest.components.ScopedServiceAnnotation;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Use case: Verify Aspect Annotations usage.
+ *
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+@SuppressWarnings("rawtypes")
+public class ScopedServiceAnnotationTest extends TestBase {
+
+ public void testScopedService() throws Throwable {
+ Ensure e = new Ensure();
+ ServiceRegistration seq = register(e, ScopedServiceAnnotation.ENSURE);
+ // the consumer defines two dependencies, hence two prototype instances are created
+ e.waitForStep(2, 5000);
+
+ // make sure Consumer has started
+ e.waitForStep(3, 5000);
+
+ // Deactivate service provider
+ seq.unregister();
+
+ // make sure the two prototypes and the consumer have stopped
+ e.waitForStep(6, 5000);
+ e.ensure();
+ }
+
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/component/annotations/ComponentPropertyType.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/component/annotations/ComponentPropertyType.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/component/annotations/ComponentPropertyType.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/component/annotations/ComponentPropertyType.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) OSGi Alliance (2016, 2017). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.osgi.service.component.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Identify the annotated annotation as a Component Property Type.
+ * <p>
+ * Component Property Types can be applied as annotations to the implementation
+ * class of the Component. They can also be used as activation objects which
+ * means they can be used as parameter types for the component's constructor and
+ * life cycle methods {@link Activate}, {@link Deactivate}, and {@link Modified}
+ * as well as activation fields.
+ * <p>
+ * Component Property Types do not have to be annotated with this annotation to
+ * be used as parameter types but they must be annotated with this annotation to
+ * be used as annotations on the implementation class of the Component.
+ * <p>
+ * This annotation is not processed at runtime by Service Component Runtime. It
+ * must be processed by tools and used to add a Component Description to the
+ * bundle.
+ *
+ * @see "Component Property Types."
+ * @author $Id: 563e80fe5d699c0e02ac2963d08e167552d8928d $
+ * @since 1.4
+ */
+@Documented
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface ComponentPropertyType {
+ // meta-annotation
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/JaxRSWhiteboardConstants.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/JaxRSWhiteboardConstants.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/JaxRSWhiteboardConstants.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/JaxRSWhiteboardConstants.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) OSGi Alliance (2017). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.jaxrs.whiteboard;
+
+public class JaxRSWhiteboardConstants {
+ /**
+ * Service property specifying that a JAX-RS resource should be processed by
+ * the whiteboard.
+ * <p>
+ * The value of this service property must be of type {@code String} or
+ * {@link Boolean} and set to "true" or <code>true</code>.
+ */
+ public static final String JAX_RS_RESOURCE = "osgi.jaxrs.resource";
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/annotations/RequireJaxRSWhiteboard.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/annotations/RequireJaxRSWhiteboard.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/annotations/RequireJaxRSWhiteboard.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/annotations/RequireJaxRSWhiteboard.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,41 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.osgi.service.jaxrs.whiteboard.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This annotation can be used to require the Http Whiteboard implementation. It
+ * can be used directly, or as a meta-annotation.
+ * <p>
+ * This annotation is applied to several of the Http Whiteboard component
+ * property annotations meaning that it does not normally need to be applied to
+ * DS components which use the Http Whiteboard.
+ *
+ * @author $Id: d8dd2f2d079255ec829406ab1e496054a4528d1b $
+ * @since 1.0
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
+public @interface RequireJaxRSWhiteboard {
+ // This is a purely informational annotation and has no elements.
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsName.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsName.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsName.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsName.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) OSGi Alliance (2017). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.osgi.service.jaxrs.whiteboard.propertytypes;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.osgi.service.component.annotations.ComponentPropertyType;
+
+/**
+ * Component Property Type for the {@code osgi.jaxrs.name} service property.
+ * <p>
+ * This annotation can be used on a JAX-RS service to declare the value of the
+ * {@link org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants#JAX_RS_NAME}
+ * service property.
+ *
+ * @see "Component Property Types"
+ * @author $Id: 5d90577770d30e749a85b3be11a7ced5bd91d9e7 $
+ * @since 1.0
+ */
+@ComponentPropertyType
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
+public @interface JaxrsName {
+ /**
+ * Prefix for the property name. This value is prepended to each property
+ * name.
+ */
+ String PREFIX_ = "osgi.";
+
+ /**
+ * Service property identifying the name of a JAX-RS service for processing
+ * by the whiteboard.
+ *
+ * @return The JAX-RS service name.
+ * @see org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants#JAX_RS_NAME
+ */
+ String value();
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsResource.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsResource.java?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsResource.java (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/src/org/osgi/service/jaxrs/whiteboard/propertytypes/JaxrsResource.java Wed Sep 26 16:45:35 2018
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) OSGi Alliance (2017). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.jaxrs.whiteboard.propertytypes;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.osgi.service.component.annotations.ComponentPropertyType;
+import org.osgi.service.jaxrs.whiteboard.annotations.RequireJaxRSWhiteboard;
+
+/**
+ * Component Property Type for the {@code osgi.jaxrs.resource} service property.
+ * <p>
+ * This annotation can be used on a JAX-RS resource to declare the value of the
+ * {@link org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants#JAX_RS_RESOURCE}
+ * service property.
+ *
+ * @see "Component Property Types"
+ * @author $Id: 6a574a8c0d6523e601a31c233d25c01e89107351 $
+ * @since 1.0
+ */
+@ComponentPropertyType
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
+@RequireJaxRSWhiteboard
+public @interface JaxrsResource {
+ /**
+ * Prefix for the property name. This value is prepended to each property
+ * name.
+ */
+ String PREFIX_ = "osgi.";
+
+ /**
+ * Service property identifying a JAX-RS resource for processing by the
+ * whiteboard.
+ *
+ * @return The JAX-RS resource value.
+ * @see org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants#JAX_RS_RESOURCE
+ */
+ //String value() default "true";
+}
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.core.prefs?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.core.prefs (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.core.prefs Wed Sep 26 16:45:35 2018
@@ -0,0 +1,306 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
Added: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.ui.prefs
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.ui.prefs?rev=1842034&view=auto
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.ui.prefs (added)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/.settings/org.eclipse.jdt.ui.prefs Wed Sep 26 16:45:35 2018
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+formatter_profile=_Apache Felix Eclipse Template
+formatter_settings_version=13
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd Wed Sep 26 16:45:35 2018
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-Bundle-Version: 4.0.5
+Bundle-Version: 4.0.6
-buildpath: \
osgi.core;version=4.2,\
osgi.cmpn;version=4.2,\
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/resources/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/resources/changelog.txt?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/resources/changelog.txt (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/resources/changelog.txt Wed Sep 26 16:45:35 2018
@@ -1,3 +1,18 @@
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r12
+======================================================================
+
+** List of bundles being part of the release:
+ * org.apache.felix.dependencymanager; version=4.5.0
+ * org.apache.felix.dependencymanager.shell; version=4.0.7
+ * org.apache.felix.dependencymanager.runtime; version=4.0.6
+ * org.apache.felix.dependencymanager.annotation; version=5.0.0
+ * org.apache.felix.dependencymanager.lambda; version=1.2.0
+
+** Improvement
+
+ * [FELIX-5939] - DM annotations enhancements
+ * [FELIX-5336] - Add support for prototype scope services in DM4
+
Release Notes - Felix - Version org.apache.felix.dependencymanager-r11
======================================================================
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AbstractBuilder.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AbstractBuilder.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AbstractBuilder.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AbstractBuilder.java Wed Sep 26 16:45:35 2018
@@ -21,6 +21,7 @@ package org.apache.felix.dm.runtime;
import java.util.List;
import org.apache.felix.dm.Component;
+import org.apache.felix.dm.Component.ServiceScope;
import org.apache.felix.dm.ComponentState;
import org.apache.felix.dm.ComponentStateListener;
import org.apache.felix.dm.Dependency;
@@ -65,6 +66,7 @@ public abstract class AbstractBuilder
c.setAutoConfig(ServiceRegistration.class, Boolean.FALSE);
c.setAutoConfig(DependencyManager.class, Boolean.FALSE);
c.setAutoConfig(Component.class, Boolean.FALSE);
+ c.setAutoConfig(Bundle.class, Boolean.FALSE);
}
// See if BundleContext must be auto configured.
@@ -104,6 +106,20 @@ public abstract class AbstractBuilder
{
c.add(new RegistrationListener(registered, unregistered));
}
+
+ // See if a service scope is provided
+ String scope = srvMeta.getString(Params.scope, null);
+ if (scope != null) {
+ ServiceScope serviceScope = ServiceScope.valueOf(scope);
+ c.setScope(serviceScope);
+ }
+
+ // See if Bundle must be auto configured
+ String bundleField = srvMeta.getString(Params.bundle, null);
+ if (bundleField != null)
+ {
+ c.setAutoConfig(Bundle.class, bundleField);
+ }
}
/**
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AspectServiceBuilder.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AspectServiceBuilder.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AspectServiceBuilder.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/AspectServiceBuilder.java Wed Sep 26 16:45:35 2018
@@ -69,7 +69,9 @@ public class AspectServiceBuilder extend
Component c;
if (field != null)
{
- c = dm.createAspectService(serviceInterface, serviceFilter, ranking, field)
+ c = dm.createAspectComponent()
+ .setAspect(serviceInterface, serviceFilter, ranking)
+ .setAspectField(field)
.setServiceProperties(aspectProperties);
}
else
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java?rev=1842034&r1=1842033&r2=1842034&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java Wed Sep 26 16:45:35 2018
@@ -142,15 +142,17 @@ public class DependencyBuilder
private Dependency createConfigurationDependency(Bundle b, DependencyManager dm) throws Exception
{
- String confProxyType = m_metaData.getString(Params.configType, null);
+ String configType = m_metaData.getString(Params.configType, null);
+ String[] configTypes = m_metaData.getStrings(Params.configTypes, null);
+ configTypes = configTypes == null ? ((configType != null) ? new String[] { configType } : null) : configTypes;
String pid = m_metaData.getString(Params.pid);
boolean propagate = "true".equals(m_metaData.getString(Params.propagate, "false"));
String callback = m_metaData.getString(Params.updated, "updated");
boolean required = "true".equals(m_metaData.getString(Params.required, "true"));
- return createConfigurationDependency(dm, b, pid, callback, confProxyType, propagate, required);
+ return createConfigurationDependency(dm, b, pid, callback, configTypes, propagate, required);
}
- private Dependency createConfigurationDependency(DependencyManager dm, Bundle b, String pid, String callback, String confProxyType, boolean propagate, boolean required)
+ private Dependency createConfigurationDependency(DependencyManager dm, Bundle b, String pid, String callback, String[] configTypes, boolean propagate, boolean required)
throws ClassNotFoundException
{
if (pid == null)
@@ -160,17 +162,19 @@ public class DependencyBuilder
}
ConfigurationDependency cd = dm.createConfigurationDependency();
cd.setPid(pid);
- if (confProxyType != null)
- {
- Class<?> confProxyTypeClass = b.loadClass(confProxyType);
- cd.setCallback(callback, confProxyTypeClass);
- }
- else
- {
- cd.setCallback(callback);
- }
- cd.setPropagate(propagate);
+ cd.setCallback(callback);
+ cd.setPropagate(propagate, true /* configuration will override default service properties */);
cd.setRequired(required);
+
+ if (configTypes != null)
+ {
+ Class<?>[] configTypeClasses = new Class<?>[configTypes.length];
+ for (int i = 0; i < configTypes.length; i ++)
+ {
+ configTypeClasses[i] = b.loadClass(configTypes[i]);
+ }
+ cd.setConfigType(configTypeClasses);
+ }
return cd;
}