diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-07-24 17:53:23 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-07-24 17:53:23 +0000 |
commit | 61fd7d871ecc003913e6bc31670e47d5e7eb4097 (patch) | |
tree | b3fba81202522ccf530c97467a312d1e4f4f0afb /java/sca/samples/dosgi-dynamic-calculator/OSGI-INF | |
parent | f233e515188f75286b600ed5d4d567b6a3203b2f (diff) |
Add the support for dynamic OSGi remote service import and export based on OSGi properties
Add two samples to demonstrate the OSGi property driven remote services
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@797580 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/blueprint/calculator-module.xml | 43 | ||||
-rw-r--r-- | java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/calculator-component.xml | 36 | ||||
-rw-r--r-- | java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml (renamed from java/sca/samples/dosgi-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml) | 48 | ||||
-rw-r--r-- | java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/sca/calculator-service.bindings | 24 |
4 files changed, 134 insertions, 17 deletions
diff --git a/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/blueprint/calculator-module.xml b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/blueprint/calculator-module.xml new file mode 100644 index 0000000000..fd834e12ef --- /dev/null +++ b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/blueprint/calculator-module.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<!-- A sample module-context.xml for OSGI RFC 124 (BluePrint Service) --> +<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> + <component id="CalculatorComponent" class="calculator.dosgi.impl.CalculatorServiceImpl"> + <property name="addService" ref="AddService" /> + <property name="subtractService" ref="SubtractService" /> + <property name="multiplyService" ref="MultiplyService" /> + <property name="divideService" ref="DivideService" /> + </component> + + <!-- We can derive the SCA services for the implementation.osgi --> + <service id="CalculatorService" ref="CalculatorComponent" interface="calculator.dosgi.CalculatorService"> + </service> + + <!-- We can derive the SCA references for the implementation.osgi --> + <reference id="AddService" interface="calculator.dosgi.operations.AddService"> + </reference> + <reference id="SubtractService" interface="calculator.dosgi.operations.SubtractService"> + </reference> + <reference id="MultiplyService" interface="calculator.dosgi.operations.MultiplyService"> + </reference> + <reference id="DivideService" interface="calculator.dosgi.operations.DivideService"> + </reference> + +</components>
\ No newline at end of file diff --git a/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/calculator-component.xml b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/calculator-component.xml new file mode 100644 index 0000000000..5daaa59aae --- /dev/null +++ b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/calculator-component.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<scr:component name="CalculatorComponent" + xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0"> + <implementation class="calculator.dosgi.impl.CalculatorServiceDSImpl" /> + <service> + <provide interface="calculator.dosgi.CalculatorService" /> + </service> + + <reference name="addService" interface="calculator.dosgi.operations.AddService" bind="setAddService" unbind="unsetAddService" + policy="dynamic" /> + <reference name="subtractService" interface="calculator.dosgi.operations.SubtractService" bind="setSubtractService" + unbind="unsetSubtractService" policy="dynamic" /> + <reference name="multiplyService" interface="calculator.dosgi.operations.MultiplyService" bind="setMultiplyService" + unbind="unsetMultiplyService" policy="dynamic" /> + <reference name="divideService" interface="calculator.dosgi.operations.DivideService" bind="setDivideService" + unbind="unsetDivideService" policy="dynamic" /> + +</scr:component> diff --git a/java/sca/samples/dosgi-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml index da76d00024..53e83bf72c 100644 --- a/java/sca/samples/dosgi-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml +++ b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml @@ -18,50 +18,64 @@ * under the License. --> <!-- A consumer-side service description file for RFC 119 --> -<service-descriptions xmlns="http://www.osgi.org/xmlns/sd/v1.0.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"> +<service-descriptions xmlns="http://www.osgi.org/xmlns/sd/v1.0.0" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"> <!-- Describe a remote OSGi service --> <service-description> <provide interface="calculator.dosgi.operations.AddService" /> - <property name="service.intents">sca:SOAP sca:HTTP</property> - <property name="osgi.remote.configuration.type">sca</property> - <property name="osgi.remote.configuration.sca.componentType"> + <property name="service.exported.intents">sca:SOAP sca:HTTP</property> + <property name="service.exported.configs">sca</property> + <property name="sca.componentType"> OSGI-INF/sca/bundle.componentType </property> - <property name="osgi.remote.configuration.sca.reference"> + <property name="sca.reference"> addService </property> + <bindings> + <tuscany:binding.rmi uri="rmi://localhost:8085/AddService" /> + </bindings> </service-description> <service-description> <provide interface="calculator.dosgi.operations.SubtractService" /> - <property name="service.intents">sca:SOAP sca:HTTP</property> - <property name="osgi.remote.configuration.type">sca</property> - <property name="osgi.remote.configuration.sca.componentType"> + <property name="service.exported.intents">sca:SOAP sca:HTTP</property> + <property name="service.exported.configs">sca</property> + <property name="sca.componentType"> OSGI-INF/sca/bundle.componentType </property> - <property name="osgi.remote.configuration.sca.reference"> + <property name="sca.reference"> subtractService </property> + <bindings> + <tuscany:binding.rmi uri="rmi://localhost:8085/SubtractService" /> + </bindings> </service-description> <service-description> <provide interface="calculator.dosgi.operations.MultiplyService" /> - <property name="service.intents">sca:SOAP sca:HTTP</property> - <property name="osgi.remote.configuration.type">sca</property> - <property name="osgi.remote.configuration.sca.componentType"> + <property name="service.exported.intents">sca:SOAP sca:HTTP</property> + <property name="service.exported.configs">sca</property> + <property name="sca.componentType"> OSGI-INF/sca/bundle.componentType </property> - <property name="osgi.remote.configuration.sca.reference"> + <property name="sca.reference"> multiplyService </property> + <bindings> + <tuscany:binding.rmi uri="rmi://localhost:8085/MultiplyService" /> + </bindings> </service-description> <service-description> <provide interface="calculator.dosgi.operations.DivideService" /> - <property name="service.intents">sca:SOAP sca:HTTP</property> - <property name="osgi.remote.configuration.type">sca</property> - <property name="osgi.remote.configuration.sca.componentType"> + <property name="service.exported.intents">sca:SOAP sca:HTTP</property> + <property name="service.exported.configs">sca</property> + <property name="sca.componentType"> OSGI-INF/sca/bundle.componentType </property> - <property name="osgi.remote.configuration.sca.reference"> + <property name="sca.reference"> divideService </property> + <bindings> + <tuscany:binding.rmi uri="rmi://localhost:8085/DivideService" /> + </bindings> </service-description> </service-descriptions>
\ No newline at end of file diff --git a/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/sca/calculator-service.bindings b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/sca/calculator-service.bindings new file mode 100644 index 0000000000..90e55f7377 --- /dev/null +++ b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/sca/calculator-service.bindings @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* 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.
+-->
+<!-- SCA bindings for calculator service -->
+<bindings xmlns="http://www.osgi.org/xmlns/sd/v1.0.0"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903">
+ <sca:binding.ws uri="http://localhost:8086/CalculatorService"/>
+</bindings>
\ No newline at end of file |