diff options
Diffstat (limited to 'java/sca/samples/dosgi-calculator/src')
15 files changed, 1028 insertions, 1028 deletions
diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/CalculatorService.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/CalculatorService.java index 796b1afe61..cc562b7c2f 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/CalculatorService.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/CalculatorService.java @@ -1,36 +1,36 @@ -/*
- * 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 calculator.dosgi;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The Calculator service interface.
- */
-@Remotable
-public interface CalculatorService {
-
- double add(double n1, double n2);
-
- double subtract(double n1, double n2);
-
- double multiply(double n1, double n2);
-
- double divide(double n1, double n2);
-}
+/* + * 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 calculator.dosgi; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The Calculator service interface. + */ +@Remotable +public interface CalculatorService { + + double add(double n1, double n2); + + double subtract(double n1, double n2); + + double multiply(double n1, double n2); + + double divide(double n1, double n2); +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorActivator.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorActivator.java index e484dc3e0b..40388144ee 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorActivator.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorActivator.java @@ -1,78 +1,78 @@ -/*
- * 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 calculator.dosgi.impl;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.logging.Logger;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-import calculator.dosgi.CalculatorService;
-import calculator.dosgi.operations.AddService;
-
-/**
- *
- */
-public class CalculatorActivator implements BundleActivator {
- private Logger logger = Logger.getLogger(CalculatorActivator.class.getName());
-
- private Bundle getBundle(BundleContext bundleContext, Class<?> cls) {
- PackageAdmin packageAdmin = null;
- // PackageAdmin is used to resolve bundles
- ServiceReference ref = bundleContext.getServiceReference("org.osgi.service.packageadmin.PackageAdmin");
- if (ref != null) {
- packageAdmin = (PackageAdmin)bundleContext.getService(ref);
- Bundle bundle = packageAdmin.getBundle(cls);
- if (bundle != null) {
- logger.info(cls.getName() + " is loaded by bundle: " + bundle.getSymbolicName());
- }
- bundleContext.ungetService(ref);
- return bundle;
- }
- return null;
- }
-
- public void start(BundleContext context) throws Exception {
- logger.info("Starting " + context.getBundle());
- Dictionary<String, Object> props = new Hashtable<String, Object>();
- props.put("sca.service", "CalculatorComponent#service-name(Calculator)");
- props.put("calculator", "Calculator");
- props.put("service.exported.configs", new String[] {"sca"});
- props.put("sca.bindings", new String[] {"OSGI-INF/sca/calculator-service.bindings"});
- props.put("service.exported.interfaces", new String[] {"*"});
- logger.info("Registering " + CalculatorService.class.getName());
- CalculatorService calculator = new CalculatorServiceImpl(context);
- context.registerService(CalculatorService.class.getName(), calculator, props);
-
- getBundle(context, AddService.class);
-
- }
-
- public void stop(BundleContext context) throws Exception {
- logger.info("Stopping " + context.getBundle());
- // Registered services will be automatically unregistered
- }
-
-}
+/* + * 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 calculator.dosgi.impl; + +import java.util.Dictionary; +import java.util.Hashtable; +import java.util.logging.Logger; + +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.service.packageadmin.PackageAdmin; + +import calculator.dosgi.CalculatorService; +import calculator.dosgi.operations.AddService; + +/** + * + */ +public class CalculatorActivator implements BundleActivator { + private Logger logger = Logger.getLogger(CalculatorActivator.class.getName()); + + private Bundle getBundle(BundleContext bundleContext, Class<?> cls) { + PackageAdmin packageAdmin = null; + // PackageAdmin is used to resolve bundles + ServiceReference ref = bundleContext.getServiceReference("org.osgi.service.packageadmin.PackageAdmin"); + if (ref != null) { + packageAdmin = (PackageAdmin)bundleContext.getService(ref); + Bundle bundle = packageAdmin.getBundle(cls); + if (bundle != null) { + logger.info(cls.getName() + " is loaded by bundle: " + bundle.getSymbolicName()); + } + bundleContext.ungetService(ref); + return bundle; + } + return null; + } + + public void start(BundleContext context) throws Exception { + logger.info("Starting " + context.getBundle()); + Dictionary<String, Object> props = new Hashtable<String, Object>(); + props.put("sca.service", "CalculatorComponent#service-name(Calculator)"); + props.put("calculator", "Calculator"); + props.put("service.exported.configs", new String[] {"sca"}); + props.put("sca.bindings", new String[] {"OSGI-INF/sca/calculator-service.bindings"}); + props.put("service.exported.interfaces", new String[] {"*"}); + logger.info("Registering " + CalculatorService.class.getName()); + CalculatorService calculator = new CalculatorServiceImpl(context); + context.registerService(CalculatorService.class.getName(), calculator, props); + + getBundle(context, AddService.class); + + } + + public void stop(BundleContext context) throws Exception { + logger.info("Stopping " + context.getBundle()); + // Registered services will be automatically unregistered + } + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java index 9c80c5beb9..5f9db16ca9 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java @@ -1,114 +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 calculator.dosgi.impl;
-
-import org.osgi.service.component.ComponentContext;
-
-import calculator.dosgi.CalculatorService;
-import calculator.dosgi.operations.AddService;
-import calculator.dosgi.operations.DivideService;
-import calculator.dosgi.operations.MultiplyService;
-import calculator.dosgi.operations.SubtractService;
-
-/**
- * An implementation of the Calculator service.
- */
-public class CalculatorServiceDSImpl implements CalculatorService {
- private AddService addService;
- private SubtractService subtractService;
- private MultiplyService multiplyService;
- private DivideService divideService;
-
- public CalculatorServiceDSImpl() {
- super();
- System.out.println("CalculatorServiceDSImpl()");
- }
-
- protected void activate(ComponentContext context) {
- System.out.println("Activating " + context);
- }
-
- protected void deactivate(ComponentContext context) {
- System.out.println("Deactivating " + context);
- }
-
- /*
- * The following setters can be used for DS injection
- */
- public void setAddService(AddService addService) {
- System.out.println("setAddService()");
- this.addService = addService;
- }
-
- public void setSubtractService(SubtractService subtractService) {
- this.subtractService = subtractService;
- }
-
- public void setDivideService(DivideService divideService) {
- this.divideService = divideService;
- }
-
- public void setMultiplyService(MultiplyService multiplyService) {
- this.multiplyService = multiplyService;
- }
-
- /*
- * The following setters can be used for DS injection
- */
- public void unsetAddService(AddService addService) {
- System.out.println("unsetAddService()");
- this.addService = null;
- }
-
- public void unsetSubtractService(SubtractService subtractService) {
- this.subtractService = null;
- }
-
- public void unsetDivideService(DivideService divideService) {
- this.divideService = null;
- }
-
- public void unsetMultiplyService(MultiplyService multiplyService) {
- this.multiplyService = null;
- }
- private <T> T getService(Class<T> cls) {
- for (Object s : new Object[] {addService, subtractService, multiplyService, divideService}) {
- if (cls.isInstance(s)) {
- return cls.cast(s);
- }
- }
- throw new IllegalStateException(cls.getSimpleName() + " is not available");
- }
-
- public double add(double n1, double n2) {
- return getService(AddService.class).add(n1, n2);
- }
-
- public double subtract(double n1, double n2) {
- return getService(SubtractService.class).subtract(n1, n2);
- }
-
- public double multiply(double n1, double n2) {
- return getService(MultiplyService.class).multiply(n1, n2);
- }
-
- public double divide(double n1, double n2) {
- return getService(DivideService.class).divide(n1, n2);
- }
-}
+/* + * 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 calculator.dosgi.impl; + +import org.osgi.service.component.ComponentContext; + +import calculator.dosgi.CalculatorService; +import calculator.dosgi.operations.AddService; +import calculator.dosgi.operations.DivideService; +import calculator.dosgi.operations.MultiplyService; +import calculator.dosgi.operations.SubtractService; + +/** + * An implementation of the Calculator service. + */ +public class CalculatorServiceDSImpl implements CalculatorService { + private AddService addService; + private SubtractService subtractService; + private MultiplyService multiplyService; + private DivideService divideService; + + public CalculatorServiceDSImpl() { + super(); + System.out.println("CalculatorServiceDSImpl()"); + } + + protected void activate(ComponentContext context) { + System.out.println("Activating " + context); + } + + protected void deactivate(ComponentContext context) { + System.out.println("Deactivating " + context); + } + + /* + * The following setters can be used for DS injection + */ + public void setAddService(AddService addService) { + System.out.println("setAddService()"); + this.addService = addService; + } + + public void setSubtractService(SubtractService subtractService) { + this.subtractService = subtractService; + } + + public void setDivideService(DivideService divideService) { + this.divideService = divideService; + } + + public void setMultiplyService(MultiplyService multiplyService) { + this.multiplyService = multiplyService; + } + + /* + * The following setters can be used for DS injection + */ + public void unsetAddService(AddService addService) { + System.out.println("unsetAddService()"); + this.addService = null; + } + + public void unsetSubtractService(SubtractService subtractService) { + this.subtractService = null; + } + + public void unsetDivideService(DivideService divideService) { + this.divideService = null; + } + + public void unsetMultiplyService(MultiplyService multiplyService) { + this.multiplyService = null; + } + private <T> T getService(Class<T> cls) { + for (Object s : new Object[] {addService, subtractService, multiplyService, divideService}) { + if (cls.isInstance(s)) { + return cls.cast(s); + } + } + throw new IllegalStateException(cls.getSimpleName() + " is not available"); + } + + public double add(double n1, double n2) { + return getService(AddService.class).add(n1, n2); + } + + public double subtract(double n1, double n2) { + return getService(SubtractService.class).subtract(n1, n2); + } + + public double multiply(double n1, double n2) { + return getService(MultiplyService.class).multiply(n1, n2); + } + + public double divide(double n1, double n2) { + return getService(DivideService.class).divide(n1, n2); + } +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java index 276bcdc76f..932c5fcf15 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java @@ -1,98 +1,98 @@ -/*
- * 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 calculator.dosgi.impl;
-
-import static org.osgi.framework.Constants.OBJECTCLASS;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.util.tracker.ServiceTracker;
-
-import calculator.dosgi.CalculatorService;
-import calculator.dosgi.operations.AddService;
-import calculator.dosgi.operations.DivideService;
-import calculator.dosgi.operations.MultiplyService;
-import calculator.dosgi.operations.SubtractService;
-
-/**
- * An implementation of the Calculator service.
- */
-public class CalculatorServiceImpl implements CalculatorService {
- private ServiceTracker remoteServices;
- private ServiceTracker localServices;
-
- public CalculatorServiceImpl() {
- super();
- }
-
- public CalculatorServiceImpl(BundleContext context) {
- super();
- Filter remoteFilter = null, localFilter = null;
- try {
- remoteFilter =
- context.createFilter("(&(" + OBJECTCLASS + "=calculator.dosgi.operations.*) (service.imported=*))");
- localFilter =
- context.createFilter("(&(" + OBJECTCLASS + "=calculator.dosgi.operations.*) (!(service.imported=*)))");
- } catch (InvalidSyntaxException e) {
- e.printStackTrace();
- }
- this.remoteServices = new ServiceTracker(context, remoteFilter, null);
- remoteServices.open();
- this.localServices = new ServiceTracker(context, localFilter, null);
- localServices.open();
- }
-
- private <T> T getService(Class<T> cls) {
- Object[] remoteObjects = remoteServices.getServices();
- if (remoteObjects != null) {
- for (Object s : remoteObjects) {
- if (cls.isInstance(s)) {
- System.out.println("Remote service: " + s);
- return cls.cast(s);
- }
- }
- }
- Object[] localObjects = localServices.getServices();
- if (localObjects != null)
- for (Object s : localObjects) {
- if (cls.isInstance(s)) {
- System.out.println("Local service: " + s);
- return cls.cast(s);
- }
- }
- throw new IllegalStateException(cls.getSimpleName() + " is not available");
- }
-
- public double add(double n1, double n2) {
- return getService(AddService.class).add(n1, n2);
- }
-
- public double subtract(double n1, double n2) {
- return getService(SubtractService.class).subtract(n1, n2);
- }
-
- public double multiply(double n1, double n2) {
- return getService(MultiplyService.class).multiply(n1, n2);
- }
-
- public double divide(double n1, double n2) {
- return getService(DivideService.class).divide(n1, n2);
- }
-}
+/* + * 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 calculator.dosgi.impl; + +import static org.osgi.framework.Constants.OBJECTCLASS; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.Filter; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.util.tracker.ServiceTracker; + +import calculator.dosgi.CalculatorService; +import calculator.dosgi.operations.AddService; +import calculator.dosgi.operations.DivideService; +import calculator.dosgi.operations.MultiplyService; +import calculator.dosgi.operations.SubtractService; + +/** + * An implementation of the Calculator service. + */ +public class CalculatorServiceImpl implements CalculatorService { + private ServiceTracker remoteServices; + private ServiceTracker localServices; + + public CalculatorServiceImpl() { + super(); + } + + public CalculatorServiceImpl(BundleContext context) { + super(); + Filter remoteFilter = null, localFilter = null; + try { + remoteFilter = + context.createFilter("(&(" + OBJECTCLASS + "=calculator.dosgi.operations.*) (service.imported=*))"); + localFilter = + context.createFilter("(&(" + OBJECTCLASS + "=calculator.dosgi.operations.*) (!(service.imported=*)))"); + } catch (InvalidSyntaxException e) { + e.printStackTrace(); + } + this.remoteServices = new ServiceTracker(context, remoteFilter, null); + remoteServices.open(); + this.localServices = new ServiceTracker(context, localFilter, null); + localServices.open(); + } + + private <T> T getService(Class<T> cls) { + Object[] remoteObjects = remoteServices.getServices(); + if (remoteObjects != null) { + for (Object s : remoteObjects) { + if (cls.isInstance(s)) { + System.out.println("Remote service: " + s); + return cls.cast(s); + } + } + } + Object[] localObjects = localServices.getServices(); + if (localObjects != null) + for (Object s : localObjects) { + if (cls.isInstance(s)) { + System.out.println("Local service: " + s); + return cls.cast(s); + } + } + throw new IllegalStateException(cls.getSimpleName() + " is not available"); + } + + public double add(double n1, double n2) { + return getService(AddService.class).add(n1, n2); + } + + public double subtract(double n1, double n2) { + return getService(SubtractService.class).subtract(n1, n2); + } + + public double multiply(double n1, double n2) { + return getService(MultiplyService.class).multiply(n1, n2); + } + + public double divide(double n1, double n2) { + return getService(DivideService.class).divide(n1, n2); + } +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/AddService.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/AddService.java index 7d68dbd5c5..971500782f 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/AddService.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/AddService.java @@ -1,31 +1,31 @@ -/*
- * 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 calculator.dosgi.operations;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The interface for the add service
- */
-@Remotable
-public interface AddService {
-
- double add(double n1, double n2);
-
-}
+/* + * 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 calculator.dosgi.operations; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for the add service + */ +@Remotable +public interface AddService { + + double add(double n1, double n2); + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/DivideService.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/DivideService.java index 998f6e9554..49b8a1c0bf 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/DivideService.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/DivideService.java @@ -1,31 +1,31 @@ -/*
- * 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 calculator.dosgi.operations;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The interface for the divide service
- */
-@Remotable
-public interface DivideService {
-
- double divide(double n1, double n2);
-
-}
+/* + * 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 calculator.dosgi.operations; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for the divide service + */ +@Remotable +public interface DivideService { + + double divide(double n1, double n2); + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/MultiplyService.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/MultiplyService.java index 7ed6db2e6b..f4e59d12ea 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/MultiplyService.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/MultiplyService.java @@ -1,31 +1,31 @@ -/*
- * 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 calculator.dosgi.operations;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The interface for the multiply service
- */
-@Remotable
-public interface MultiplyService {
-
- double multiply(double n1, double n2);
-
-}
+/* + * 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 calculator.dosgi.operations; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for the multiply service + */ +@Remotable +public interface MultiplyService { + + double multiply(double n1, double n2); + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/SubtractService.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/SubtractService.java index cb98b8fb67..bfb9b820f7 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/SubtractService.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/dosgi/operations/SubtractService.java @@ -1,31 +1,31 @@ -/*
- * 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 calculator.dosgi.operations;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The interface for the subtract service
- */
-@Remotable
-public interface SubtractService {
-
- double subtract(double n1, double n2);
-
-}
+/* + * 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 calculator.dosgi.operations; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for the subtract service + */ +@Remotable +public interface SubtractService { + + double subtract(double n1, double n2); + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer.java index 1a3e36f571..a4fc52694e 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer.java @@ -1,93 +1,93 @@ -/*
- * 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 calculator.rmi;
-
-import java.io.Serializable;
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.rmi.registry.LocateRegistry;
-import java.rmi.registry.Registry;
-import java.rmi.server.UnicastRemoteObject;
-
-/**
- *
- */
-public class OperationsRMIServer implements OperationsRemote, Serializable {
-
- private static final long serialVersionUID = 6081008315263103012L;
- private transient Registry registry;
-
- public OperationsRMIServer() throws RemoteException {
- super();
- }
-
- public double add(double n1, double n2) {
- return n1 + n2;
- }
-
- public double subtract(double n1, double n2) {
- return n1 - n2;
- }
-
- public double divide(double n1, double n2) {
- return n1 / n2;
- }
-
- public double multiply(double n1, double n2) {
- return n1 * n2;
- }
-
- public void start() throws RemoteException {
- Thread thread = new Thread() {
- public void run() {
- try {
- System.out.println("Starting the RMI server for calculator operations...");
- Remote stub = UnicastRemoteObject.exportObject(OperationsRMIServer.this);
- registry = LocateRegistry.createRegistry(8085);
- registry.bind("AddService", stub);
- registry.bind("SubtractService", stub);
- registry.bind("MultiplyService", stub);
- registry.bind("DivideService", stub);
- System.out.println("RMI server for calculator operations is now started.");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- };
- thread.start();
- }
-
- public void stop() {
- if (registry != null) {
- try {
- registry.unbind("AddService");
- registry.unbind("SubtractService");
- registry.unbind("MultiplyService");
- registry.unbind("DivideService");
- UnicastRemoteObject.unexportObject(this, false);
- UnicastRemoteObject.unexportObject(registry, false);
- registry = null;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
-}
+/* + * 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 calculator.rmi; + +import java.io.Serializable; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; + +/** + * + */ +public class OperationsRMIServer implements OperationsRemote, Serializable { + + private static final long serialVersionUID = 6081008315263103012L; + private transient Registry registry; + + public OperationsRMIServer() throws RemoteException { + super(); + } + + public double add(double n1, double n2) { + return n1 + n2; + } + + public double subtract(double n1, double n2) { + return n1 - n2; + } + + public double divide(double n1, double n2) { + return n1 / n2; + } + + public double multiply(double n1, double n2) { + return n1 * n2; + } + + public void start() throws RemoteException { + Thread thread = new Thread() { + public void run() { + try { + System.out.println("Starting the RMI server for calculator operations..."); + Remote stub = UnicastRemoteObject.exportObject(OperationsRMIServer.this); + registry = LocateRegistry.createRegistry(8085); + registry.bind("AddService", stub); + registry.bind("SubtractService", stub); + registry.bind("MultiplyService", stub); + registry.bind("DivideService", stub); + System.out.println("RMI server for calculator operations is now started."); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + thread.start(); + } + + public void stop() { + if (registry != null) { + try { + registry.unbind("AddService"); + registry.unbind("SubtractService"); + registry.unbind("MultiplyService"); + registry.unbind("DivideService"); + UnicastRemoteObject.unexportObject(this, false); + UnicastRemoteObject.unexportObject(registry, false); + registry = null; + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java index d573f6b8fa..a813dfb6f3 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java @@ -1,132 +1,132 @@ -/*
- * 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.
- */
-
-// Stub class generated by rmic, do not edit.
-// Contents subject to change without notice.
-package calculator.rmi;
-
-public final class OperationsRMIServer_Stub extends java.rmi.server.RemoteStub implements calculator.rmi.OperationsRemote {
- private static final long serialVersionUID = 2;
-
- private static java.lang.reflect.Method $method_add_0;
- private static java.lang.reflect.Method $method_divide_1;
- private static java.lang.reflect.Method $method_multiply_2;
- private static java.lang.reflect.Method $method_subtract_3;
-
- static {
- try {
- $method_add_0 =
- calculator.rmi.OperationsRemote.class.getMethod("add", new java.lang.Class[] {double.class, double.class});
- $method_divide_1 =
- calculator.rmi.OperationsRemote.class.getMethod("divide",
- new java.lang.Class[] {double.class, double.class});
- $method_multiply_2 =
- calculator.rmi.OperationsRemote.class.getMethod("multiply", new java.lang.Class[] {double.class,
- double.class});
- $method_subtract_3 =
- calculator.rmi.OperationsRemote.class.getMethod("subtract", new java.lang.Class[] {double.class,
- double.class});
- } catch (java.lang.NoSuchMethodException e) {
- throw new java.lang.NoSuchMethodError("stub class initialization failed");
- }
- }
-
- // constructors
- public OperationsRMIServer_Stub(java.rmi.server.RemoteRef ref) {
- super(ref);
- }
-
- // methods from remote interfaces
-
- // implementation of add(double, double)
- public double add(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
- try {
- Object $result =
- ref.invoke(this,
- $method_add_0,
- new java.lang.Object[] {new java.lang.Double($param_double_1),
- new java.lang.Double($param_double_2)},
- 864055858262779977L);
- return ((java.lang.Double)$result).doubleValue();
- } catch (java.lang.RuntimeException e) {
- throw e;
- } catch (java.rmi.RemoteException e) {
- throw e;
- } catch (java.lang.Exception e) {
- throw new java.rmi.UnexpectedException("undeclared checked exception", e);
- }
- }
-
- // implementation of divide(double, double)
- public double divide(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
- try {
- Object $result =
- ref.invoke(this,
- $method_divide_1,
- new java.lang.Object[] {new java.lang.Double($param_double_1),
- new java.lang.Double($param_double_2)},
- 8097593626497421928L);
- return ((java.lang.Double)$result).doubleValue();
- } catch (java.lang.RuntimeException e) {
- throw e;
- } catch (java.rmi.RemoteException e) {
- throw e;
- } catch (java.lang.Exception e) {
- throw new java.rmi.UnexpectedException("undeclared checked exception", e);
- }
- }
-
- // implementation of multiply(double, double)
- public double multiply(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
- try {
- Object $result =
- ref.invoke(this,
- $method_multiply_2,
- new java.lang.Object[] {new java.lang.Double($param_double_1),
- new java.lang.Double($param_double_2)},
- -346155016949350695L);
- return ((java.lang.Double)$result).doubleValue();
- } catch (java.lang.RuntimeException e) {
- throw e;
- } catch (java.rmi.RemoteException e) {
- throw e;
- } catch (java.lang.Exception e) {
- throw new java.rmi.UnexpectedException("undeclared checked exception", e);
- }
- }
-
- // implementation of subtract(double, double)
- public double subtract(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
- try {
- Object $result =
- ref.invoke(this,
- $method_subtract_3,
- new java.lang.Object[] {new java.lang.Double($param_double_1),
- new java.lang.Double($param_double_2)},
- -610707357620578750L);
- return ((java.lang.Double)$result).doubleValue();
- } catch (java.lang.RuntimeException e) {
- throw e;
- } catch (java.rmi.RemoteException e) {
- throw e;
- } catch (java.lang.Exception e) {
- throw new java.rmi.UnexpectedException("undeclared checked exception", e);
- }
- }
-}
+/* + * 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. + */ + +// Stub class generated by rmic, do not edit. +// Contents subject to change without notice. +package calculator.rmi; + +public final class OperationsRMIServer_Stub extends java.rmi.server.RemoteStub implements calculator.rmi.OperationsRemote { + private static final long serialVersionUID = 2; + + private static java.lang.reflect.Method $method_add_0; + private static java.lang.reflect.Method $method_divide_1; + private static java.lang.reflect.Method $method_multiply_2; + private static java.lang.reflect.Method $method_subtract_3; + + static { + try { + $method_add_0 = + calculator.rmi.OperationsRemote.class.getMethod("add", new java.lang.Class[] {double.class, double.class}); + $method_divide_1 = + calculator.rmi.OperationsRemote.class.getMethod("divide", + new java.lang.Class[] {double.class, double.class}); + $method_multiply_2 = + calculator.rmi.OperationsRemote.class.getMethod("multiply", new java.lang.Class[] {double.class, + double.class}); + $method_subtract_3 = + calculator.rmi.OperationsRemote.class.getMethod("subtract", new java.lang.Class[] {double.class, + double.class}); + } catch (java.lang.NoSuchMethodException e) { + throw new java.lang.NoSuchMethodError("stub class initialization failed"); + } + } + + // constructors + public OperationsRMIServer_Stub(java.rmi.server.RemoteRef ref) { + super(ref); + } + + // methods from remote interfaces + + // implementation of add(double, double) + public double add(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException { + try { + Object $result = + ref.invoke(this, + $method_add_0, + new java.lang.Object[] {new java.lang.Double($param_double_1), + new java.lang.Double($param_double_2)}, + 864055858262779977L); + return ((java.lang.Double)$result).doubleValue(); + } catch (java.lang.RuntimeException e) { + throw e; + } catch (java.rmi.RemoteException e) { + throw e; + } catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + // implementation of divide(double, double) + public double divide(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException { + try { + Object $result = + ref.invoke(this, + $method_divide_1, + new java.lang.Object[] {new java.lang.Double($param_double_1), + new java.lang.Double($param_double_2)}, + 8097593626497421928L); + return ((java.lang.Double)$result).doubleValue(); + } catch (java.lang.RuntimeException e) { + throw e; + } catch (java.rmi.RemoteException e) { + throw e; + } catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + // implementation of multiply(double, double) + public double multiply(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException { + try { + Object $result = + ref.invoke(this, + $method_multiply_2, + new java.lang.Object[] {new java.lang.Double($param_double_1), + new java.lang.Double($param_double_2)}, + -346155016949350695L); + return ((java.lang.Double)$result).doubleValue(); + } catch (java.lang.RuntimeException e) { + throw e; + } catch (java.rmi.RemoteException e) { + throw e; + } catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + // implementation of subtract(double, double) + public double subtract(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException { + try { + Object $result = + ref.invoke(this, + $method_subtract_3, + new java.lang.Object[] {new java.lang.Double($param_double_1), + new java.lang.Double($param_double_2)}, + -610707357620578750L); + return ((java.lang.Double)$result).doubleValue(); + } catch (java.lang.RuntimeException e) { + throw e; + } catch (java.rmi.RemoteException e) { + throw e; + } catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } +} diff --git a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRemote.java b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRemote.java index d735ce8172..955e386ad8 100644 --- a/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRemote.java +++ b/java/sca/samples/dosgi-calculator/src/main/java/calculator/rmi/OperationsRemote.java @@ -1,37 +1,37 @@ -/*
- * 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 calculator.rmi;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-
-/**
- * RMI Remote interface
- */
-public interface OperationsRemote extends Remote {
- double add(double n1, double n2) throws RemoteException;
-
- double subtract(double n1, double n2) throws RemoteException;
-
- double multiply(double n1, double n2) throws RemoteException;
-
- double divide(double n1, double n2) throws RemoteException;
-
-}
+/* + * 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 calculator.rmi; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * RMI Remote interface + */ +public interface OperationsRemote extends Remote { + double add(double n1, double n2) throws RemoteException; + + double subtract(double n1, double n2) throws RemoteException; + + double multiply(double n1, double n2) throws RemoteException; + + double divide(double n1, double n2) throws RemoteException; + +} diff --git a/java/sca/samples/dosgi-calculator/src/main/resources/META-INF/sca-contribution.xml b/java/sca/samples/dosgi-calculator/src/main/resources/META-INF/sca-contribution.xml index 8ba4b85247..b14b3516f6 100644 --- a/java/sca/samples/dosgi-calculator/src/main/resources/META-INF/sca-contribution.xml +++ b/java/sca/samples/dosgi-calculator/src/main/resources/META-INF/sca-contribution.xml @@ -1,24 +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.
--->
-
-<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
- xmlns:c="http://calculator.dosgi">
- <deployable composite="c:CalculatorComposite" />
-</contribution>
+<?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. +--> + +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" + xmlns:c="http://calculator.dosgi"> + <deployable composite="c:CalculatorComposite" /> +</contribution> diff --git a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorNode.java b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorNode.java index 7f96067764..565a314d85 100644 --- a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorNode.java +++ b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorNode.java @@ -1,43 +1,43 @@ -/*
- * 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 calculator.dosgi.test;
-
-import org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher;
-
-/**
- *
- */
-public class CalculatorNode {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- if (args.length == 0) {
- args = new String[] {"-bundles"};
- }
- try {
- NodeLauncher.main(args);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
+/* + * 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 calculator.dosgi.test; + +import org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher; + +/** + * + */ +public class CalculatorNode { + + /** + * @param args + */ + public static void main(String[] args) { + if (args.length == 0) { + args = new String[] {"-bundles"}; + } + try { + NodeLauncher.main(args); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java index d4bede0d98..4dd713ecef 100644 --- a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java +++ b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java @@ -1,144 +1,144 @@ -/*
- * 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 calculator.dosgi.test;
-
-import static calculator.dosgi.test.OSGiTestUtils.bundleStatus;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URL;
-
-import org.apache.tuscany.sca.node.equinox.launcher.EquinoxHost;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-
-import calculator.dosgi.CalculatorService;
-import calculator.rmi.OperationsRMIServer;
-
-/**
- *
- */
-public class CalculatorOSGiNodeTestCase {
- private static EquinoxHost host;
- private static BundleContext context;
- private static Bundle calculatorBundle;
- private static OperationsRMIServer rmiServer;
-
- /**
- * @throws java.lang.Exception
- */
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- try {
- rmiServer = new OperationsRMIServer();
- rmiServer.start();
-
- host = new EquinoxHost();
- context = host.start();
-
- for (Bundle b : context.getBundles()) {
- System.out.println(b);
- if (b.getSymbolicName().equals("org.eclipse.equinox.ds") || b.getSymbolicName()
- .startsWith("org.apache.tuscany.sca.")) {
- try {
- if (b.getHeaders().get(Constants.FRAGMENT_HOST) == null) {
- // Start the non-fragment bundle
- b.start();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println(bundleStatus(b, false));
- }
- if ("calculator.dosgi".equals(b.getSymbolicName())) {
- calculatorBundle = b;
- }
- }
-
- if (calculatorBundle != null) {
- calculatorBundle.start();
- System.out.println(bundleStatus(calculatorBundle, false));
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
- }
- }
-
- @Test
- public void testOSGi() {
- ServiceReference ref =
- calculatorBundle.getBundleContext().getServiceReference(CalculatorService.class.getName());
- Assert.assertNotNull(ref);
- Object service = context.getService(ref);
- Assert.assertNotNull(service);
- CalculatorService calculator = OSGiTestUtils.cast(service, CalculatorService.class);
- System.out.println("2.0 + 1.0 = " + calculator.add(2.0, 1.0));
- System.out.println("2.0 - 1.0 = " + calculator.subtract(2.0, 1.0));
- System.out.println("2.0 * 1.0 = " + calculator.multiply(2.0, 1.0));
- System.out.println("2.0 / 1.0 = " + calculator.divide(2.0, 1.0));
- }
-
- @Test
- /**
- * Test the Web service exposed by the Calculator
- */
- public void testWS() throws Exception {
- URL url = new URL("http://localhost:8086/CalculatorService?wsdl");
- InputStream is = url.openStream();
- Reader reader = new InputStreamReader(is);
- char[] content = new char[10240]; // 10k
- int len = 0;
- while (true) {
- int size = reader.read(content, len, content.length - len);
- if (size < 0) {
- break;
- }
- len += size;
- }
- Assert.assertTrue(len > 0);
- String str = new String(content, 0, len);
- System.out.println(str);
- Assert.assertTrue(str.indexOf("<wsdl:definitions") != -1);
- }
-
- /**
- * @throws java.lang.Exception
- */
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
- if (host != null) {
- host.stop();
- rmiServer.stop();
- host = null;
- rmiServer = null;
- context = null;
- }
- }
-
-}
+/* + * 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 calculator.dosgi.test; + +import static calculator.dosgi.test.OSGiTestUtils.bundleStatus; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; + +import org.apache.tuscany.sca.node.equinox.launcher.EquinoxHost; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; +import org.osgi.framework.ServiceReference; + +import calculator.dosgi.CalculatorService; +import calculator.rmi.OperationsRMIServer; + +/** + * + */ +public class CalculatorOSGiNodeTestCase { + private static EquinoxHost host; + private static BundleContext context; + private static Bundle calculatorBundle; + private static OperationsRMIServer rmiServer; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + rmiServer = new OperationsRMIServer(); + rmiServer.start(); + + host = new EquinoxHost(); + context = host.start(); + + for (Bundle b : context.getBundles()) { + System.out.println(b); + if (b.getSymbolicName().equals("org.eclipse.equinox.ds") || b.getSymbolicName() + .startsWith("org.apache.tuscany.sca.")) { + try { + if (b.getHeaders().get(Constants.FRAGMENT_HOST) == null) { + // Start the non-fragment bundle + b.start(); + } + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println(bundleStatus(b, false)); + } + if ("calculator.dosgi".equals(b.getSymbolicName())) { + calculatorBundle = b; + } + } + + if (calculatorBundle != null) { + calculatorBundle.start(); + System.out.println(bundleStatus(calculatorBundle, false)); + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testOSGi() { + ServiceReference ref = + calculatorBundle.getBundleContext().getServiceReference(CalculatorService.class.getName()); + Assert.assertNotNull(ref); + Object service = context.getService(ref); + Assert.assertNotNull(service); + CalculatorService calculator = OSGiTestUtils.cast(service, CalculatorService.class); + System.out.println("2.0 + 1.0 = " + calculator.add(2.0, 1.0)); + System.out.println("2.0 - 1.0 = " + calculator.subtract(2.0, 1.0)); + System.out.println("2.0 * 1.0 = " + calculator.multiply(2.0, 1.0)); + System.out.println("2.0 / 1.0 = " + calculator.divide(2.0, 1.0)); + } + + @Test + /** + * Test the Web service exposed by the Calculator + */ + public void testWS() throws Exception { + URL url = new URL("http://localhost:8086/CalculatorService?wsdl"); + InputStream is = url.openStream(); + Reader reader = new InputStreamReader(is); + char[] content = new char[10240]; // 10k + int len = 0; + while (true) { + int size = reader.read(content, len, content.length - len); + if (size < 0) { + break; + } + len += size; + } + Assert.assertTrue(len > 0); + String str = new String(content, 0, len); + System.out.println(str); + Assert.assertTrue(str.indexOf("<wsdl:definitions") != -1); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (host != null) { + host.stop(); + rmiServer.stop(); + host = null; + rmiServer = null; + context = null; + } + } + +} diff --git a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/OSGiTestUtils.java b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/OSGiTestUtils.java index 958e744b41..99e0da9f97 100644 --- a/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/OSGiTestUtils.java +++ b/java/sca/samples/dosgi-calculator/src/test/java/calculator/dosgi/test/OSGiTestUtils.java @@ -1,105 +1,105 @@ -/*
- * 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 calculator.dosgi.test;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-import org.osgi.framework.Bundle;
-
-/**
- *
- * Utility class to create OSGi bundles
- *
- * @version $Rev: 758877 $ $Date: 2009-03-26 14:51:19 -0700 (Thu, 26 Mar 2009) $
- */
-public class OSGiTestUtils {
- private static class InvocationHandlerImpl implements InvocationHandler {
- private Object instance;
-
- public InvocationHandlerImpl(Object instance) {
- super();
- this.instance = instance;
- }
-
- public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- Method m = instance.getClass().getMethod(method.getName(), method.getParameterTypes());
- return m.invoke(instance, args);
- }
-
- }
-
- /**
- * Returns a string representation of the given bundle.
- *
- * @param b
- * @param verbose
- * @return
- */
- public static String bundleStatus(Bundle bundle, boolean verbose) {
- StringBuffer sb = new StringBuffer();
- sb.append(bundle.getBundleId()).append(" ").append(bundle.getSymbolicName());
- int s = bundle.getState();
- if ((s & Bundle.UNINSTALLED) != 0) {
- sb.append(" UNINSTALLED");
- }
- if ((s & Bundle.INSTALLED) != 0) {
- sb.append(" INSTALLED");
- }
- if ((s & Bundle.RESOLVED) != 0) {
- sb.append(" RESOLVED");
- }
- if ((s & Bundle.STARTING) != 0) {
- sb.append(" STARTING");
- }
- if ((s & Bundle.STOPPING) != 0) {
- sb.append(" STOPPING");
- }
- if ((s & Bundle.ACTIVE) != 0) {
- sb.append(" ACTIVE");
- }
-
- if (verbose) {
- sb.append(" ").append(bundle.getLocation());
- sb.append(" ").append(bundle.getHeaders());
- }
- return sb.toString();
- }
-
- /**
- * A utility to cast the object to the given interface. If the class for the object
- * is loaded by a different classloader, a proxy will be created.
- *
- * @param <T>
- * @param obj
- * @param cls
- * @return
- */
- public static <T> T cast(Object obj, Class<T> cls) {
- if (cls.isInstance(obj)) {
- return cls.cast(obj);
- } else {
- return cls.cast(Proxy.newProxyInstance(cls.getClassLoader(),
- new Class<?>[] {cls},
- new InvocationHandlerImpl(obj)));
- }
- }
-}
+/* + * 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 calculator.dosgi.test; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +import org.osgi.framework.Bundle; + +/** + * + * Utility class to create OSGi bundles + * + * @version $Rev$ $Date$ + */ +public class OSGiTestUtils { + private static class InvocationHandlerImpl implements InvocationHandler { + private Object instance; + + public InvocationHandlerImpl(Object instance) { + super(); + this.instance = instance; + } + + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + Method m = instance.getClass().getMethod(method.getName(), method.getParameterTypes()); + return m.invoke(instance, args); + } + + } + + /** + * Returns a string representation of the given bundle. + * + * @param b + * @param verbose + * @return + */ + public static String bundleStatus(Bundle bundle, boolean verbose) { + StringBuffer sb = new StringBuffer(); + sb.append(bundle.getBundleId()).append(" ").append(bundle.getSymbolicName()); + int s = bundle.getState(); + if ((s & Bundle.UNINSTALLED) != 0) { + sb.append(" UNINSTALLED"); + } + if ((s & Bundle.INSTALLED) != 0) { + sb.append(" INSTALLED"); + } + if ((s & Bundle.RESOLVED) != 0) { + sb.append(" RESOLVED"); + } + if ((s & Bundle.STARTING) != 0) { + sb.append(" STARTING"); + } + if ((s & Bundle.STOPPING) != 0) { + sb.append(" STOPPING"); + } + if ((s & Bundle.ACTIVE) != 0) { + sb.append(" ACTIVE"); + } + + if (verbose) { + sb.append(" ").append(bundle.getLocation()); + sb.append(" ").append(bundle.getHeaders()); + } + return sb.toString(); + } + + /** + * A utility to cast the object to the given interface. If the class for the object + * is loaded by a different classloader, a proxy will be created. + * + * @param <T> + * @param obj + * @param cls + * @return + */ + public static <T> T cast(Object obj, Class<T> cls) { + if (cls.isInstance(obj)) { + return cls.cast(obj); + } else { + return cls.cast(Proxy.newProxyInstance(cls.getClassLoader(), + new Class<?>[] {cls}, + new InvocationHandlerImpl(obj))); + } + } +} |