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 'java/sca/samples/dosgi-dynamic-calculator/OSGI-INF')
4 files changed, 184 insertions, 0 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-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml new file mode 100644 index 0000000000..53e83bf72c --- /dev/null +++ b/java/sca/samples/dosgi-dynamic-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml @@ -0,0 +1,81 @@ +<?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 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" + 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.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="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.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="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.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="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.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="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 |