From 6d0e93c68d3aeaeb4bb6d96ac0460eec40ef786e Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 11 Nov 2009 23:13:23 +0000 Subject: Moving 1.x branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835143 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tuscany/osgi/LauncherActivator.java | 79 --------------- .../tuscany/osgi/OSGILauncherInitException.java | 41 -------- .../java/org/apache/tuscany/osgi/OSGiHost.java | 32 ------ .../osgi/binding/NoRemoteMethodException.java | 36 ------- .../osgi/binding/NoRemoteServiceException.java | 41 -------- .../apache/tuscany/osgi/binding/OSGiBinding.java | 47 --------- .../tuscany/osgi/binding/OSGiBindingBuilder.java | 73 -------------- .../tuscany/osgi/binding/OSGiBindingException.java | 41 -------- .../tuscany/osgi/binding/OSGiBindingLoader.java | 64 ------------ .../apache/tuscany/osgi/binding/OSGiInvoker.java | 81 --------------- .../apache/tuscany/osgi/binding/OSGiReference.java | 62 ------------ .../apache/tuscany/osgi/binding/OSGiService.java | 109 --------------------- .../tuscany/osgi/util/BundleContextUtil.java | 93 ------------------ .../apache/tuscany/osgi/util/ClassloaderHook.java | 82 ---------------- .../osgi/src/main/resources/META-INF/MANIFEST.MF | 14 --- .../main/resources/META-INF/sca/osgibinding.scdl | 41 -------- 16 files changed, 936 deletions(-) delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/LauncherActivator.java delete mode 100644 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGILauncherInitException.java delete mode 100644 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/OSGiHost.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteMethodException.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/NoRemoteServiceException.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBinding.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingException.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingLoader.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/BundleContextUtil.java delete mode 100644 branches/sca-java-M2/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/util/ClassloaderHook.java delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/MANIFEST.MF delete mode 100755 branches/sca-java-M2/sca/runtime/osgi/src/main/resources/META-INF/sca/osgibinding.scdl (limited to 'branches/sca-java-M2/sca/runtime/osgi/src') 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 { - - OSGiHost host; - - @Constructor - public OSGiBindingBuilder(@Autowire OSGiHost host) { - this.host = host; - } - - protected Class getBindingType() { - return OSGiBinding.class; - } - - public Service build(CompositeComponent parent, - BoundServiceDefinition boundServiceDefinition, - DeploymentContext deploymentContext) { - String name = boundServiceDefinition.getName(); - Class service = getServiceInterface(boundServiceDefinition); - String osgiServiceName = boundServiceDefinition.getBinding().getService(); - return new OSGiService(name, parent, wireService, osgiServiceName, service, host); - } - - public OSGiReference build(CompositeComponent parent, - BoundReferenceDefinition 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 getServiceInterface(BoundServiceDefinition 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 binding.osgi elements. - * - * @version $Rev$ $Date$ - */ -@Scope("MODULE") -public class OSGiBindingLoader extends LoaderExtension { - 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 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() { - 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 @@ - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3