summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-M2/sca/runtime/osgi/src
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:13:23 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:13:23 +0000
commit6d0e93c68d3aeaeb4bb6d96ac0460eec40ef786e (patch)
treea956ed510e14a5509b8ef49fae42cfd439629825 /branches/sca-java-M2/sca/runtime/osgi/src
parent3ac2d800d840f03618fc364090d786effde84b1f (diff)
Moving 1.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835143 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-M2/sca/runtime/osgi/src')
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/LauncherActivator.java79
-rw-r--r--branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGILauncherInitException.java41
-rw-r--r--branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGiHost.java32
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteMethodException.java36
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteServiceException.java41
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBinding.java47
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java73
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingException.java41
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingLoader.java64
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java81
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java62
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java109
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/BundleContextUtil.java93
-rw-r--r--branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/ClassloaderHook.java82
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/MANIFEST.MF14
-rwxr-xr-xbranches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/sca/osgibinding.scdl41
16 files changed, 0 insertions, 936 deletions
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/LauncherActivator.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/LauncherActivator.java
deleted file mode 100755
index 2d7027e208..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/LauncherActivator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi;
-
-import java.io.File;
-import java.net.URL;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-
-import org.apache.tuscany.api.TuscanyException;
-import org.apache.tuscany.core.launcher.LauncherImpl;
-import org.apache.tuscany.core.monitor.NullMonitorFactory;
-import org.apache.tuscany.osgi.util.BundleContextUtil;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * Responsible for launching the Tuscany Runtime in as part of an OSGi bundle
- */
-public class LauncherActivator implements BundleActivator {
-
- private LauncherImpl launcher;
-
- public void start(BundleContext context) throws Exception {
- BundleContextUtil.setContext(context);
- startRuntime(context);
-
- }
-
- public void stop(BundleContext context) throws Exception {
- if (launcher != null) {
- launcher.shutdownRuntime();
- }
- }
-
-
- private void startRuntime(BundleContext context) throws OSGILauncherInitException {
- launcher = new LauncherImpl();
- // Current thread context classloader should be the webapp classloader
- ClassLoader webappClassLoader = Thread.currentThread().getContextClassLoader();
- launcher.setApplicationLoader(webappClassLoader);
-
- try {
- System.out.println(":::" + new File(".").toURL().toString());
- // URL systemScdl = getSystemSCDL(systemScdlPath);
- CompositeComponent rt =
- launcher.bootRuntime(new File("./sca/system.scdl").toURI().toURL(), new NullMonitorFactory());
- } catch (Exception e) {
- throw new OSGILauncherInitException(e);
- }
- }
-
- private void bootApplication(String name, URL scdl) throws TuscanyException {
- CompositeComponent root = launcher.bootApplication(name, scdl);
- root.start();
- }
-
- private void loadExtension(String name, URL scdl) throws TuscanyException {
- CompositeComponent root = launcher.bootApplication(name, scdl);
- root.start();
- }
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGILauncherInitException.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGILauncherInitException.java
deleted file mode 100644
index b01f18314d..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGILauncherInitException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * @version $Rev$ $Date$
- */
-public class OSGILauncherInitException extends TuscanyException {
- public OSGILauncherInitException() {
- }
-
- public OSGILauncherInitException(String string) {
- super(string);
- }
-
- public OSGILauncherInitException(String string, Throwable throwable) {
- super(string, throwable);
- }
-
- public OSGILauncherInitException(Throwable throwable) {
- super(throwable);
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGiHost.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGiHost.java
deleted file mode 100644
index c16d27a937..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGiHost.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi;
-
-import java.util.Properties;
-
-import org.apache.tuscany.spi.host.ServletHost;
-
-/**
- * @version $Rev$ $Date$
- */
-public interface OSGiHost extends ServletHost {
-
- void registerService(String serviceName, Object service, Properties properties);
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteMethodException.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteMethodException.java
deleted file mode 100755
index 657640d854..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteMethodException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-public class NoRemoteMethodException extends OSGiBindingException {
-
- private static final long serialVersionUID = 5037327699117168707L;
-
- public NoRemoteMethodException(String message) {
- super(message);
- }
-
- public NoRemoteMethodException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public NoRemoteMethodException(Throwable cause) {
- super("", cause);
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteServiceException.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteServiceException.java
deleted file mode 100755
index 0df2a282c9..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteServiceException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import org.osgi.framework.BundleException;
-
-/**
- * FIXME class not used
- *
- * @version $Rev$ $Date$
- */
-public class NoRemoteServiceException extends BundleException {
-
- public NoRemoteServiceException(String message) {
- super(message);
- }
-
- public NoRemoteServiceException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public NoRemoteServiceException(Throwable cause) {
- super("", cause);
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBinding.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBinding.java
deleted file mode 100755
index 11d96ebe9e..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBinding.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import org.apache.tuscany.spi.model.Binding;
-
-/**
- * Represents a binding to an OSGi service.
- *
- * @version $Rev$ $Date$
- */
-public class OSGiBinding extends Binding {
- private String uri;
- private String service;
-
- public String getURI() {
- return uri;
- }
-
- public void setURI(String uri) {
- this.uri = uri;
- }
-
- public void setService(String service) {
- this.service = service;
- }
-
- public String getService() {
- return service;
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java
deleted file mode 100755
index 99977e9166..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import org.osoa.sca.annotations.Constructor;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.BindingBuilderExtension;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
-
-import org.apache.tuscany.osgi.OSGiHost;
-
-/**
- * Builds a Service or Reference for an OSGi binding.
- *
- * @version $Rev$ $Date$
- */
-public class OSGiBindingBuilder extends BindingBuilderExtension<OSGiBinding> {
-
- OSGiHost host;
-
- @Constructor
- public OSGiBindingBuilder(@Autowire OSGiHost host) {
- this.host = host;
- }
-
- protected Class<OSGiBinding> getBindingType() {
- return OSGiBinding.class;
- }
-
- public Service build(CompositeComponent parent,
- BoundServiceDefinition<OSGiBinding> boundServiceDefinition,
- DeploymentContext deploymentContext) {
- String name = boundServiceDefinition.getName();
- Class<? extends Object> service = getServiceInterface(boundServiceDefinition);
- String osgiServiceName = boundServiceDefinition.getBinding().getService();
- return new OSGiService(name, parent, wireService, osgiServiceName, service, host);
- }
-
- public OSGiReference build(CompositeComponent parent,
- BoundReferenceDefinition<OSGiBinding> boundReferenceDefinition,
- DeploymentContext deploymentContext) {
- String name = boundReferenceDefinition.getName();
- String uri = boundReferenceDefinition.getBinding().getURI();
- Class<?> interfaze = boundReferenceDefinition.getServiceContract().getInterfaceClass();
- return new OSGiReference(name, interfaze, parent, wireService, uri);
- }
-
- protected Class<? extends Object> getServiceInterface(BoundServiceDefinition<OSGiBinding> boundServiceDefinition) {
- return boundServiceDefinition.getServiceContract().getInterfaceClass();
- }
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingException.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingException.java
deleted file mode 100755
index a8b913bad0..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import org.apache.tuscany.api.TuscanyRuntimeException;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class OSGiBindingException extends TuscanyRuntimeException {
- protected OSGiBindingException() {
- }
-
- protected OSGiBindingException(String message) {
- super(message);
- }
-
- protected OSGiBindingException(String message, Throwable cause) {
- super(message, cause);
- }
-
- protected OSGiBindingException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingLoader.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingLoader.java
deleted file mode 100755
index 7f335a4dbe..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingLoader.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Scope;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.LoaderExtension;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.LoaderUtil;
-
-/**
- * Loader for handling <code>binding.osgi</code> elements.
- *
- * @version $Rev$ $Date$
- */
-@Scope("MODULE")
-public class OSGiBindingLoader extends LoaderExtension<OSGiBinding> {
- public static final QName BINDING_OSGI = new QName("http://tuscany.apache.org/xmlns/osgi/1.0", "binding.osgi");
-
- @Constructor
- public OSGiBindingLoader(@Autowire LoaderRegistry registry) {
- super(registry);
- }
-
- public QName getXMLType() {
- return BINDING_OSGI;
- }
-
- public OSGiBinding load(CompositeComponent parent, XMLStreamReader reader, DeploymentContext deploymentContext)
- throws XMLStreamException, LoaderException {
- String uri = reader.getAttributeValue(null, "uri");
- String service = reader.getAttributeValue(null, "service");
- LoaderUtil.skipToEndElement(reader);
-
- OSGiBinding binding = new OSGiBinding();
- binding.setURI(uri);
- binding.setService(service);
- return binding;
- }
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java
deleted file mode 100755
index b6fb480101..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.spi.wire.InvocationRuntimeException;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * Invokes the target service of an OSGi reference.
- *
- * @version $Rev$ $Date$
- */
-public class OSGiInvoker implements TargetInvoker {
- private final Method remoteMethod;
- private final Object proxy;
-
- OSGiInvoker(Object proxy, Method remoteMethod) {
- assert remoteMethod.isAccessible();
- this.remoteMethod = remoteMethod;
- this.proxy = proxy;
- }
-
- public Message invoke(Message msg) throws InvocationRuntimeException {
- try {
- Object resp = invokeTarget(msg.getBody());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBody(e.getCause());
- }
- return msg;
- }
-
- public Object invokeTarget(Object payload) throws InvocationTargetException {
- try {
- return remoteMethod.invoke(proxy, (Object[]) payload);
- } catch (IllegalAccessException e) {
- // the method we are passed must be accessible
- throw new AssertionError(e);
- }
- }
-
- public Object clone() throws CloneNotSupportedException {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- throw new AssertionError(e);
- }
- }
-
- public boolean isOptimizable() {
- return false;
- }
-
- public boolean isCacheable() {
- return false;
- }
-
- // FIXME I think we can always have this cacheable as OSGi services are thread-safe
- public void setCacheable(boolean cacheable) {
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java
deleted file mode 100755
index e365c4c6a2..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import java.lang.reflect.Method;
-import java.rmi.Remote;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
-import org.apache.tuscany.spi.idl.java.JavaIDLUtils;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireService;
-
-/**
- * @version $Rev$ $Date$
- */
-public class OSGiReference extends ReferenceExtension {
- //private final String uri;
-
- public OSGiReference(String name, Class<?> interfaze, CompositeComponent parent, WireService service, String uri) {
- super(name, interfaze, parent, service);
- //this.uri = uri;
- }
-
- public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) {
- try {
- Object proxy = getProxy();
- String name = operation.getName();
- Method method = JavaIDLUtils.findMethod(operation, contract.getInterfaceClass().getMethods());
- Class<?>[] parameterTypes = method.getParameterTypes();
- Method remoteMethod = proxy.getClass().getMethod(name, parameterTypes);
- return new OSGiInvoker(proxy, remoteMethod);
- } catch (NoSuchMethodException e) {
- // FIXME we should probably have this as a checked exception, which will entail adding to the SPI signature
- throw new NoRemoteMethodException(operation.toString(), e);
- }
- }
-
- protected Remote getProxy() {
- //FIXME use service reference
- return null;
- }
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java
deleted file mode 100755
index afca35a71b..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.binding;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Properties;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ServiceExtension;
-import org.apache.tuscany.spi.wire.WireService;
-
-import org.apache.tuscany.osgi.OSGiHost;
-import org.osgi.framework.ServiceFactory;
-
-/**
- * @version $Rev$ $Date$
- */
-public class OSGiService extends ServiceExtension {
- private final String osgiServiceName;
- //private final Class<? extends Object> service;
- private OSGiHost host;
-
- /**
- * Creates a new service instance
- *
- * @param name the name of the SCA service
- * @param parent the containing composite
- * @param wireService the wire service to use for creating proxies
- * @param osgiServiceName the name to publish the service as to the OSGi hose
- * @param service the service type
- * @param host the OSGi host
- */
- public OSGiService(String name,
- CompositeComponent parent,
- WireService wireService,
- String osgiServiceName,
- Class<?> service,
- OSGiHost host) {
- super(name, service, parent, wireService);
- this.osgiServiceName = osgiServiceName;
- //this.service = service;
- this.host = host;
- }
-
- public void start() {
- super.start();
- Properties properties = new Properties();
- Object instance = getServiceInstance();
- if (instance instanceof ServiceFactory) {
- host.registerService(osgiServiceName, instance, properties);
- } else {
- ServiceFactoryProxyHandler factoryProxy = new ServiceFactoryProxyHandler(instance);
- Class<?> interfaces[] = instance.getClass().getInterfaces();
- Class<?> proxyInterfaces[] = new Class<?>[interfaces.length + 1];
- int i;
- for (i = 0; i < interfaces.length; i++) {
- proxyInterfaces[i] = interfaces[i];
- }
- proxyInterfaces[i] = ServiceFactory.class;
- ClassLoader classLoader = instance.getClass().getClassLoader();
- // TODO It seems we need a mixin capability for the service. We could add that to WireService
- Object targetProxy = Proxy.newProxyInstance(classLoader, proxyInterfaces, factoryProxy);
- host.registerService(osgiServiceName, targetProxy, properties);
- }
- //Register the service with OSGi
- }
-
- public void stop() {
- super.stop();
- //Unregister the service with OSGi
- }
-
- private class ServiceFactoryProxyHandler implements InvocationHandler {
-
- private Object instance;
-
- public ServiceFactoryProxyHandler(Object instance) {
- this.instance = instance;
- }
-
- public Object invoke(Object object, Method method, Object[] parms) throws Throwable {
- if (method.getName().equals("getService")) {
- return instance;
- } else if (method.getName().equals("ungetService")) {
- return null;
- }
- return method.invoke(instance, parms);
- }
-
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/BundleContextUtil.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/BundleContextUtil.java
deleted file mode 100755
index 02549a59fd..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/BundleContextUtil.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.util;
-
-import java.util.Dictionary;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-
-public final class BundleContextUtil {
-
- private static BundleContext context;
- private static final ServiceReference EMPTY_REFERENCE_ARRAY[] = {};
-
- private BundleContextUtil() {
- }
-
- public static void setContext(BundleContext ctx) {
- context = ctx;
- }
-
- public static ServiceReference[] getServiceReference(String clazz, String filter) throws InvalidSyntaxException {
- ServiceReference[] references;
- references = context.getServiceReferences(clazz, filter);
- if (references == null) {
- references = EMPTY_REFERENCE_ARRAY;
- }
- return references;
- }
-
- public static Object getService(ServiceReference reference) {
- return context.getService(reference);
- }
-
- public static Object getService(ServiceReference references[]) {
- if (references == null) {
- return null;
- }
- return context.getService(references[0]);
- }
-
- public static void addServiceListener(ServiceListener listener, String filter) {
- try {
- if (filter != null) {
- context.addServiceListener(listener, filter);
- } else {
- context.addServiceListener(listener);
- }
- } catch (InvalidSyntaxException e) {
- //FIXME
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public static void removeServiceListener(ServiceListener listener) {
- context.removeServiceListener(listener);
- }
-
- public static ServiceRegistration registerService(String serviceName,
- Object serviceFactory,
- Dictionary properties) {
- return context.registerService(serviceName, serviceFactory, properties);
- }
-
- public static boolean trackServiceReference(String filter, ServiceListener listener) {
- try {
- context.addServiceListener(listener, filter);
- return true;
- } catch (InvalidSyntaxException e) {
- return false;
- }
- }
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/ClassloaderHook.java b/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/ClassloaderHook.java
deleted file mode 100644
index 9e08c04ded..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/ClassloaderHook.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.osgi.util;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import org.osgi.framework.Bundle;
-
-public class ClassloaderHook {
-
- /**
- * Return the BundleContext Classloader for the specified bundle.
- *
- * @param bundle The bundle whose BundleContext is desired.
- * @return The BundleContext classloader for the specified bundle.
- */
- ClassLoader getClassLoader(final Bundle bundle) {
- if (System.getSecurityManager() == null) {
- Object bundleLoader = invokeMethod(bundle, "checkLoader", null, null);
- return (ClassLoader) invokeMethod(bundleLoader, "createClassLoader", null, null);
- }
- return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
- public ClassLoader run() {
- Object bundleLoader = invokeMethod(bundle, "checkLoader", null, null);
- return (ClassLoader) invokeMethod(bundleLoader, "createClassLoader", null, null);
- }
- });
- }
-
- /**
- * Throws an IllegalStateException if the reflection logic cannot find what it is looking for. This probably means
- * this class does not properly recognize the framework implementation.
- *
- * @param e Exception which indicates the reflection logic is confused.
- */
- protected void reflectionException(Exception e) {
- throw new IllegalStateException(
- "ClassLoaderHook does not recognize the framework implementation: " + e.getMessage());
- }
-
- private Object invokeMethod(Object target, String methodName, Class[] parms, Object[] args) {
- Method method;
- try {
- method = target.getClass().getMethod(methodName, parms);
- if (method != null) {
- return method.invoke(target, parms, args);
- }
- } catch (SecurityException e) {
- reflectionException(e);
- } catch (NoSuchMethodException e) {
- reflectionException(e);
- } catch (IllegalArgumentException e) {
- reflectionException(e);
- } catch (IllegalAccessException e) {
- reflectionException(e);
- } catch (InvocationTargetException e) {
- reflectionException(e);
- }
- return null;
- }
-
-
-}
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/MANIFEST.MF b/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100755
index bb72ca36e5..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Tuscany_binding_osgi Plug-in
-Bundle-SymbolicName: tuscany_binding_osgi
-Bundle-Version: 1.0.0
-Bundle-Activator: org.apache.tuscany.binding.osgi.LauncherActivator
-Bundle-Localization: plugin
-Import-Package: org.osgi.framework;version="1.3.0",
- org.osgi.util.tracker;version="1.3.1",
- org.osoa.sca,
- org.osoa.sca.annotations
-Require-Bundle: tuscany.osgi.sca.spi,
- tuscany_external_dependencies,
- tuscany.osgi.sca.core
diff --git a/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/sca/osgibinding.scdl b/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/sca/osgibinding.scdl
deleted file mode 100755
index 14dfbbbbca..0000000000
--- a/branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/sca/osgibinding.scdl
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
-
- name="binding.osgi">
-
- <component name="osgi.implementationLoader">
- <system:implementation.system class="org.apache.tuscany.osgOSGiBindingBuilderi.binding.OSGiBindingLoader"/>
- </component>
- <component name="osgi.bindingBuilder">
- <system:implementation.system class="org.apache.tuscany.osgi.binding.OSGiBindingBuilder"/>
- </component>
- <component name="osgi.componentLoader">
- <system:implementation.system class="org.apache.tuscany.implementation.osgi.OSGiImplementationLoader"/>
- </component>
- <component name="osgi.componentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.implementation.osgi.OSGiComponentTypeLoader"/>
- </component>
- <component name="osgi.componentBuilder">
- <system:implementation.system class="org.apache.tuscany.implementation.osgi.OSGiComponentBuilder"/>
- </component>
-
-</composite>