Added:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/ProxyTest.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/ProxyTest.java?rev=893960&view=auto
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/ProxyTest.java
(added)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/ProxyTest.java
Sat Dec 26 11:15:42 2009
@@ -0,0 +1,196 @@
+package org.apache.felix.ipojo.test.scenarios.service.dependency;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.ConfigurationException;
+import org.apache.felix.ipojo.MissingHandlerException;
+import org.apache.felix.ipojo.UnacceptableConfiguration;
+import org.apache.felix.ipojo.handlers.dependency.DependencyHandler;
+import org.apache.felix.ipojo.junit4osgi.OSGiTestCase;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.ServiceReference;
+
+public class ProxyTest extends OSGiTestCase {
+
+
+ public void testDelegation() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+ Properties prov = new Properties();
+ prov.put("instance.name","FooProvider1-Proxy");
+ ComponentInstance fooProvider1 = Utils.getFactoryByName(getContext(),
"FooProviderType-1").createComponentInstance(prov);
+
+
+ Properties i1 = new Properties();
+ i1.put("instance.name","Delegator");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceDelegator").createComponentInstance(i1);
+
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context,
CheckService.class.getName(), instance1.getInstanceName());
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertTrue(helper.toString().contains("$$Proxy")); // This is the
suffix.
+
+ assertTrue(cs.check());
+
+ fooProvider1.dispose();
+ instance1.dispose();
+ }
+
+ public void testDelegationOnNullable() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+ Properties i1 = new Properties();
+ i1.put("instance.name","DelegatorNullable");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceDelegator").createComponentInstance(i1);
+
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context,
CheckService.class.getName(), instance1.getInstanceName());
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertTrue(helper.toString().contains("$$Proxy")); // This is the
suffix.
+
+ assertFalse(cs.check()); // Nullable.
+
+ instance1.dispose();
+ }
+
+
+ public void testGetAndDelegation() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+ Properties prov = new Properties();
+ prov.put("instance.name","FooProvider1-Proxy");
+ ComponentInstance fooProvider1 = Utils.getFactoryByName(getContext(),
"FooProviderType-1").createComponentInstance(prov);
+
+
+ Properties i1 = new Properties();
+ i1.put("instance.name","Delegator");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceGetAndDelegate").createComponentInstance(i1);
+
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context,
CheckService.class.getName(), instance1.getInstanceName());
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertTrue(helper.toString().contains("$$Proxy")); // This is the
suffix.
+
+
+ assertTrue(cs.check());
+
+ fooProvider1.dispose();
+ instance1.dispose();
+ }
+
+ public void testGetAndDelegationOnNullable() throws
UnacceptableConfiguration, MissingHandlerException, ConfigurationException {
+ Properties i1 = new Properties();
+ i1.put("instance.name","DelegatorNullable");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceGetAndDelegate").createComponentInstance(i1);
+
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context,
CheckService.class.getName(), instance1.getInstanceName());
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertTrue(helper.toString().contains("$$Proxy")); // This is the
suffix.
+
+ assertFalse(cs.check()); // Nullable.
+
+
+ instance1.dispose();
+ }
+
+ public void testImmediate() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+ Properties prov = new Properties();
+ prov.put("instance.name","FooProvider1-Proxy");
+ ComponentInstance fooProvider1 = Utils.getFactoryByName(getContext(),
"FooProviderType-1").createComponentInstance(prov);
+
+
+ Properties i1 = new Properties();
+ i1.put("instance.name","Delegator");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceNoDelegate").createComponentInstance(i1);
+
+ ServiceReference ref = Utils.getServiceReference(context,
CheckService.class.getName(), "(service.pid=Helper)");
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertTrue(helper.toString().contains("$$Proxy")); // This is the
suffix.
+
+ assertTrue(cs.check());
+
+ fooProvider1.dispose();
+ instance1.dispose();
+ }
+
+ public void testImmediateNoService() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+
+ Properties i1 = new Properties();
+ i1.put("instance.name","Delegator");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceNoDelegate").createComponentInstance(i1);
+
+ ServiceReference ref = Utils.getServiceReference(context,
CheckService.class.getName(), "(service.pid=Helper)");
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ try {
+ cs.getProps();
+ fail("Exception expected");
+ } catch(RuntimeException e) {
+ //OK
+ }
+
+ instance1.dispose();
+ }
+
+ public void testProxyDisabled() throws UnacceptableConfiguration,
MissingHandlerException, ConfigurationException {
+ // Disable proxy
+ System.setProperty(DependencyHandler.PROXY_SETTINGS_PROPERTY,
DependencyHandler.PROXY_DISABLED);
+ Properties prov = new Properties();
+ prov.put("instance.name","FooProvider1-Proxy");
+ ComponentInstance fooProvider1 = Utils.getFactoryByName(getContext(),
"FooProviderType-1").createComponentInstance(prov);
+
+
+ Properties i1 = new Properties();
+ i1.put("instance.name","Delegator");
+ ComponentInstance instance1 = Utils.getFactoryByName(getContext(),
+
"org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceDelegator").createComponentInstance(i1);
+
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context,
CheckService.class.getName(), instance1.getInstanceName());
+ assertNotNull(ref);
+ CheckService cs = (CheckService) context.getService(ref);
+
+ Properties props = cs.getProps();
+ FooService helper = (FooService) props.get("helper.fs");
+ assertNotNull(helper);
+ assertFalse(helper.toString().contains("$$Proxy")); // Not a proxy.
+
+ assertTrue(cs.check());
+
+ fooProvider1.dispose();
+ instance1.dispose();
+ System.setProperty(DependencyHandler.PROXY_SETTINGS_PROPERTY,
DependencyHandler.PROXY_ENABLED);
+
+ }
+
+}
Propchange:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/ProxyTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceDelegator.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceDelegator.java?rev=893960&view=auto
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceDelegator.java
(added)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceDelegator.java
Sat Dec 26 11:15:42 2009
@@ -0,0 +1,31 @@
+package org.apache.felix.ipojo.test.scenarios.service.dependency.proxy;
+
+import java.util.Properties;
+
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService;
+import org.osgi.framework.BundleContext;
+
+public class CheckServiceDelegator implements CheckService {
+
+ private FooService fs;
+
+ private Helper helper;
+
+ public CheckServiceDelegator(BundleContext bc) {
+ helper = new Helper(bc, fs);
+ }
+
+ public boolean check() {
+ // Don't access the service
+ // Just delegate
+ return helper.check();
+ }
+
+ public Properties getProps() {
+ // Don't access the service
+ // Just delegate
+ return helper.getProps();
+ }
+
+}
Propchange:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceDelegator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceGetAndDelegate.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceGetAndDelegate.java?rev=893960&view=auto
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceGetAndDelegate.java
(added)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceGetAndDelegate.java
Sat Dec 26 11:15:42 2009
@@ -0,0 +1,29 @@
+package org.apache.felix.ipojo.test.scenarios.service.dependency.proxy;
+
+import java.util.Properties;
+
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService;
+import org.osgi.framework.BundleContext;
+
+public class CheckServiceGetAndDelegate implements CheckService {
+
+ private FooService fs;
+
+ private Helper helper;
+
+ public CheckServiceGetAndDelegate(BundleContext bc) {
+ helper = new Helper(bc, fs);
+ }
+
+ public boolean check() {
+ fs.foo();
+ return helper.check();
+ }
+
+ public Properties getProps() {
+ fs.getBoolean();
+ return helper.getProps();
+ }
+
+}
Propchange:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceGetAndDelegate.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceNoDelegate.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceNoDelegate.java?rev=893960&view=auto
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceNoDelegate.java
(added)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceNoDelegate.java
Sat Dec 26 11:15:42 2009
@@ -0,0 +1,42 @@
+package org.apache.felix.ipojo.test.scenarios.service.dependency.proxy;
+
+import java.util.Properties;
+
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService;
+import org.osgi.framework.BundleContext;
+
+public class CheckServiceNoDelegate implements CheckService {
+
+ private FooService fs;
+
+ private Helper helper;
+
+ private BundleContext context;
+
+ public CheckServiceNoDelegate(BundleContext bc) {
+ context = bc;
+ helper = new Helper(context, fs);
+ }
+
+ public void start() {
+ helper.publish();
+ }
+
+ public void stop() {
+ helper.unpublish();
+ }
+
+ public boolean check() {
+ // Don't access the service
+ // Just delegate
+ return helper.check();
+ }
+
+ public Properties getProps() {
+ // Don't access the service
+ // Just delegate
+ return helper.getProps();
+ }
+
+}
Propchange:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/CheckServiceNoDelegate.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/Helper.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/Helper.java?rev=893960&view=auto
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/Helper.java
(added)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/Helper.java
Sat Dec 26 11:15:42 2009
@@ -0,0 +1,47 @@
+package org.apache.felix.ipojo.test.scenarios.service.dependency.proxy;
+
+import java.util.Properties;
+
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
+import
org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
+
+public class Helper implements CheckService {
+
+
+ private FooService fs;
+ private BundleContext context;
+ private ServiceRegistration reg;
+
+ public Helper(BundleContext bc, FooService svc) {
+ fs = svc;
+ context = bc;
+ }
+
+ public void publish() {
+ Properties props = new Properties();
+ props.put(Constants.SERVICE_PID, "Helper");
+ reg = context.registerService(CheckService.class.getName(), this,
props);
+ }
+
+ public void unpublish() {
+ if (reg != null) {
+ reg.unregister();
+ }
+ reg = null;
+ }
+
+ public boolean check() {
+ return fs.foo();
+ }
+
+ public Properties getProps() {
+ Properties props = new Properties();
+ fs.getBoolean();
+ props.put("helper.fs", fs);
+ return props;
+ }
+
+}
Propchange:
felix/trunk/ipojo/tests/core/service-dependency/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/proxy/Helper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
felix/trunk/ipojo/tests/core/service-dependency/src/main/resources/metadata.xml
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-dependency/src/main/resources/metadata.xml?rev=893960&r1=893959&r2=893960&view=diff
==============================================================================
---
felix/trunk/ipojo/tests/core/service-dependency/src/main/resources/metadata.xml
(original)
+++
felix/trunk/ipojo/tests/core/service-dependency/src/main/resources/metadata.xml
Sat Dec 26 11:15:42 2009
@@ -1,8 +1,8 @@
-<ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="org.apache.felix.ipojo
http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
- xmlns="org.apache.felix.ipojo">
+<ipojo>
<!--
-
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="org.apache.felix.ipojo
http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
+ xmlns="org.apache.felix.ipojo"
-->
<component
classname="org.apache.felix.ipojo.test.scenarios.component.FooProviderType1"
@@ -14,13 +14,13 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="SimpleCheckServiceProvider" architecture="true">
- <requires field="fs" />
+ <requires field="fs" proxy="false"/>
<provides />
</component>
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="VoidCheckServiceProvider" architecture="true">
- <requires field="fs">
+ <requires field="fs" proxy="false">
<callback type="bind" method="voidBind" />
<callback type="unbind" method="voidUnbind" />
</requires>
@@ -29,7 +29,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="ObjectCheckServiceProvider" architecture="true">
- <requires field="fs">
+ <requires field="fs" proxy="false">
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
</requires>
@@ -38,7 +38,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="RefCheckServiceProvider" architecture="true">
- <requires field="fs">
+ <requires field="fs" proxy="false">
<callback type="bind" method="refBind" />
<callback type="unbind" method="refUnbind" />
</requires>
@@ -47,7 +47,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="BothCheckServiceProvider" architecture="true">
- <requires field="fs">
+ <requires field="fs" proxy="false">
<callback type="bind" method="bothBind" />
<callback type="unbind" method="bothUnbind" />
</requires>
@@ -56,7 +56,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="MapCheckServiceProvider" architecture="true">
- <requires field="fs">
+ <requires field="fs" proxy="false">
<callback type="bind" method="propertiesMapBind" />
<callback type="unbind" method="propertiesMapUnbind" />
</requires>
@@ -65,12 +65,74 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="DictCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="propertiesDictionaryBind" />
+ <callback type="unbind" method="propertiesDictionaryUnbind" />
+ </requires>
+ <provides />
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedSimpleCheckServiceProvider" architecture="true">
+ <requires field="fs" />
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedVoidCheckServiceProvider" architecture="true">
+ <requires field="fs">
+ <callback type="bind" method="voidBind" />
+ <callback type="unbind" method="voidUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedObjectCheckServiceProvider" architecture="true">
+ <requires field="fs">
+ <callback type="bind" method="objectBind" />
+ <callback type="unbind" method="objectUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedRefCheckServiceProvider" architecture="true">
+ <requires field="fs">
+ <callback type="bind" method="refBind" />
+ <callback type="unbind" method="refUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedBothCheckServiceProvider" architecture="true">
+ <requires field="fs">
+ <callback type="bind" method="bothBind" />
+ <callback type="unbind" method="bothUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedMapCheckServiceProvider" architecture="true">
+ <requires field="fs">
+ <callback type="bind" method="propertiesMapBind" />
+ <callback type="unbind" method="propertiesMapUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedDictCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="propertiesDictionaryBind" />
<callback type="unbind" method="propertiesDictionaryUnbind" />
</requires>
<provides />
</component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
@@ -79,6 +141,16 @@
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
</requires>
+ <requires field="fs" proxy="true"/>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedDoubleCheckServiceProvider" architecture="true">
+ <requires>
+ <callback type="bind" method="objectBind" />
+ <callback type="unbind" method="objectUnbind" />
+ </requires>
<requires field="fs" />
<provides />
</component>
@@ -134,7 +206,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="SimpleOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true" id="FooService"/>
+ <requires field="fs" optional="true" id="FooService" proxy="false"/>
<provides />
</component>
<component
@@ -146,7 +218,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="VoidOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="voidBind" />
<callback type="unbind" method="voidUnbind" />
</requires>
@@ -164,7 +236,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="ObjectOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
</requires>
@@ -182,7 +254,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="RefOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="refBind" />
<callback type="unbind" method="refUnbind" />
</requires>
@@ -200,7 +272,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="BothOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="bothBind" />
<callback type="unbind" method="bothUnbind" />
</requires>
@@ -209,7 +281,7 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="MapOptionalCheckServiceProvider" architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="propertiesMapBind" />
<callback type="unbind" method="propertiesMapUnbind" />
</requires>
@@ -218,6 +290,67 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="DictOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true" proxy="false">
+ <callback type="bind" method="propertiesDictionaryBind" />
+ <callback type="unbind" method="propertiesDictionaryUnbind" />
+ </requires>
+ <provides />
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedSimpleOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true" id="FooService"/>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedVoidOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="voidBind" />
+ <callback type="unbind" method="voidUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedObjectOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="objectBind" />
+ <callback type="unbind" method="objectUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedRefOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="refBind" />
+ <callback type="unbind" method="refUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedBothOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="bothBind" />
+ <callback type="unbind" method="bothUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedMapOptionalCheckServiceProvider" architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="propertiesMapBind" />
+ <callback type="unbind" method="propertiesMapUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
+ name="ProxiedDictOptionalCheckServiceProvider" architecture="true">
<requires field="fs" optional="true">
<callback type="bind" method="propertiesDictionaryBind" />
<callback type="unbind" method="propertiesDictionaryUnbind" />
@@ -440,12 +573,28 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="SimpleMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false"/>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedSimpleMultipleCheckServiceProvider" architecture="true">
<requires field="fs" />
<provides />
</component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="VoidMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="voidBind" />
+ <callback type="unbind" method="voidUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedVoidMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="voidBind" />
<callback type="unbind" method="voidUnbind" />
@@ -455,6 +604,15 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="ObjectMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="objectBind" />
+ <callback type="unbind" method="objectUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedObjectMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
@@ -464,15 +622,34 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="RefMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="refBind" />
+ <callback type="unbind" method="refUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedRefMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="refBind" />
<callback type="unbind" method="refUnbind" />
</requires>
<provides />
</component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="BothMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="bothBind" />
+ <callback type="unbind" method="bothUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedBothMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="bothBind" />
<callback type="unbind" method="bothUnbind" />
@@ -482,15 +659,34 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="MapMultipleCheckServiceProvider" architecture="true">
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="propertiesMapBind" />
+ <callback type="unbind" method="propertiesMapUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedMapMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="propertiesMapBind" />
<callback type="unbind" method="propertiesMapUnbind" />
</requires>
<provides />
</component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
- name="DictMultipleCheckServiceProvider" architecture="true">
+ name="DictMultipleCheckServiceProvider" architecture="true" >
+ <requires field="fs" proxy="false">
+ <callback type="bind" method="propertiesDictionaryBind" />
+ <callback type="unbind" method="propertiesDictionaryUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedDictMultipleCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="propertiesDictionaryBind" />
<callback type="unbind" method="propertiesDictionaryUnbind" />
@@ -551,14 +747,14 @@
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="SimpleOptionalMultipleCheckServiceProvider"
architecture="true">
- <requires field="fs" optional="true" />
+ <requires field="fs" optional="true" proxy="false"/>
<provides />
</component>
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="VoidOptionalMultipleCheckServiceProvider"
architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="voidBind" />
<callback type="unbind" method="voidUnbind" />
</requires>
@@ -568,7 +764,7 @@
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="ObjectOptionalMultipleCheckServiceProvider"
architecture="true">
- <requires field="fs" optional="true">
+ <requires field="fs" optional="true" proxy="false">
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
</requires>
@@ -578,12 +774,51 @@
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
name="RefOptionalMultipleCheckServiceProvider"
architecture="true">
+ <requires field="fs" optional="true" proxy="false">
+ <callback type="bind" method="refBind" />
+ <callback type="unbind" method="refUnbind" />
+ </requires>
+ <provides />
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedSimpleOptionalMultipleCheckServiceProvider"
+ architecture="true">
+ <requires field="fs" optional="true" />
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedVoidOptionalMultipleCheckServiceProvider"
+ architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="voidBind" />
+ <callback type="unbind" method="voidUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedObjectOptionalMultipleCheckServiceProvider"
+ architecture="true">
+ <requires field="fs" optional="true">
+ <callback type="bind" method="objectBind" />
+ <callback type="unbind" method="objectUnbind" />
+ </requires>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
+ name="ProxiedRefOptionalMultipleCheckServiceProvider"
+ architecture="true">
<requires field="fs" optional="true">
<callback type="bind" method="refBind" />
<callback type="unbind" method="refUnbind" />
</requires>
<provides />
</component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.MethodMultipleCheckService"
name="MObjectOptionalMultipleCheckServiceProvider"
@@ -611,13 +846,28 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.ListCheckService"
name="SimpleListCheckServiceProvider" architecture="true">
- <requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
+ <requires proxy="false"
+ field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
<provides />
</component>
<component
classname="org.apache.felix.ipojo.test.scenarios.component.ListCheckService"
name="OptionalListCheckServiceProvider"
architecture="true">
+ <requires proxy="false"
+
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true" />
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.ListCheckService"
+ name="ProxiedSimpleListCheckServiceProvider" architecture="true">
+ <requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.ListCheckService"
+ name="ProxiedOptionalListCheckServiceProvider"
+ architecture="true">
<requires
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true" />
<provides />
</component>
@@ -644,13 +894,26 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.SetCheckService"
name="SimpleSetCheckServiceProvider" architecture="true">
- <requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
+ <requires proxy="false" field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
<provides />
</component>
<component
classname="org.apache.felix.ipojo.test.scenarios.component.SetCheckService"
name="OptionalSetCheckServiceProvider"
architecture="true">
+ <requires proxy="false"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true" />
+ <provides />
+ </component>
+ <component
+ classname="org.apache.felix.ipojo.test.scenarios.component.SetCheckService"
+ name="ProxiedSimpleSetCheckServiceProvider" architecture="true">
+ <requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
+ <provides />
+ </component>
+ <component
+ classname="org.apache.felix.ipojo.test.scenarios.component.SetCheckService"
+ name="ProxiedOptionalSetCheckServiceProvider"
+ architecture="true">
<requires
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true" />
<provides />
</component>
@@ -659,6 +922,12 @@
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CollectionCheckService"
name="SimpleCollectionCheckServiceProvider" architecture="true">
+ <requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
proxy="false"/>
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CollectionCheckService"
+ name="ProxiedSimpleCollectionCheckServiceProvider" architecture="true">
<requires field="fs"
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"/>
<provides />
</component>
@@ -666,7 +935,18 @@
classname="org.apache.felix.ipojo.test.scenarios.component.CollectionCheckService"
name="OptionalCollectionCheckServiceProvider"
architecture="true">
- <requires
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true" />
+ <requires
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true"
+ proxy="false"
+ />
+ <provides />
+ </component>
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.CollectionCheckService"
+ name="ProxiedOptionalCollectionCheckServiceProvider"
+ architecture="true">
+ <requires
specification="org.apache.felix.ipojo.test.scenarios.service.dependency.service.FooService"
field="fs" optional="true"
+ proxy="false"
+ />
<provides />
</component>
@@ -740,5 +1020,21 @@
</requires>
<provides />
</component>
+
+ <!-- Proxy Tests -->
+ <component
classname="org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceDelegator">
+ <provides/>
+ <requires field="fs" optional="true"/>
+ </component>
+ <component
classname="org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceGetAndDelegate">
+ <provides/>
+ <requires field="fs" optional="true"/>
+ </component>
+ <component
classname="org.apache.felix.ipojo.test.scenarios.service.dependency.proxy.CheckServiceNoDelegate">
+ <provides/>
+ <requires field="fs" optional="true"/>
+ <callback transition="validate" method="start"/>
+ <callback transition="invalidate" method="stop"/>
+ </component>
</ipojo>
Modified:
felix/trunk/ipojo/tests/core/service-providing-strategies/src/main/resources/metadata.xml
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/service-providing-strategies/src/main/resources/metadata.xml?rev=893960&r1=893959&r2=893960&view=diff
==============================================================================
---
felix/trunk/ipojo/tests/core/service-providing-strategies/src/main/resources/metadata.xml
(original)
+++
felix/trunk/ipojo/tests/core/service-providing-strategies/src/main/resources/metadata.xml
Sat Dec 26 11:15:42 2009
@@ -3,33 +3,33 @@
xsi:schemaLocation="org.apache.felix.ipojo
http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
xmlns="org.apache.felix.ipojo"
>
- <!-- Simple provider -->
- <component
-
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.FooProviderType1"
- name="PSS-FooProviderType-Instance" architecture="true">
- <provides strategy="instance"/>
- </component>
-
- <component
-
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.Consumer"
- name="PSS-Cons" architecture="true">
- <requires field="fs"/>
- <provides/>
- </component>
-
- <component
-
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.BarConsumer"
- name="PSS-ConsBar" architecture="true">
- <requires field="bs"/>
- <provides/>
- </component>
-
- <component
-
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.FooBarProviderType1"
- name="PSS-FooBarProviderType-Instance" architecture="true">
- <provides strategy="instance"/>
- </component>
-
+ <!-- Simple provider -->
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.FooProviderType1"
+ name="PSS-FooProviderType-Instance" architecture="true">
+ <provides strategy="instance"/>
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.Consumer"
+ name="PSS-Cons" architecture="true">
+ <requires field="fs" proxy="false"/>
+ <provides/>
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.BarConsumer"
+ name="PSS-ConsBar" architecture="true">
+ <requires field="bs" proxy="false"/>
+ <provides/>
+ </component>
+
+ <component
+
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.FooBarProviderType1"
+ name="PSS-FooBarProviderType-Instance" architecture="true">
+ <provides strategy="instance"/>
+ </component>
+
<component
classname="org.apache.felix.ipojo.test.scenarios.component.strategies.FooProviderType1"
name="PSS-FooProviderType-Custom" architecture="true">