summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context')
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ComponentContextFactory.java37
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java127
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ContextFactoryExtensionPoint.java50
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java116
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/PropertyValueFactory.java40
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/RequestContextFactory.java34
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ThreadMessageContext.java57
7 files changed, 0 insertions, 461 deletions
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ComponentContextFactory.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ComponentContextFactory.java
deleted file mode 100644
index d956689af3..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ComponentContextFactory.java
+++ /dev/null
@@ -1,37 +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.sca.context;
-
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.oasisopen.sca.ComponentContext;
-
-/**
- * Interface implemented by the provider of the ComponentContext.
- *
- * @version $Rev$ $Date$
- */
-public interface ComponentContextFactory {
- /**
- * Create an instance of ComponentContext
- *
- * @param component The runtime component
- * @return An instance of ComponentContext for the component
- */
- ComponentContext createComponentContext(CompositeContext compositeContext, RuntimeComponent component);
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
deleted file mode 100644
index 6e3bedc205..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
+++ /dev/null
@@ -1,127 +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.sca.context;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.Endpoint;
-import org.apache.tuscany.sca.assembly.EndpointReference;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.runtime.EndpointRegistry;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
-
-/**
- * The context associated with the Node that provides access to ExtensionPointRegistry and EndpointRegistry
- *
- * @version $Rev$ $Date$
- */
-public class CompositeContext {
- protected final static InheritableThreadLocal<CompositeContext> context = new InheritableThreadLocal<CompositeContext>();
- protected ExtensionPointRegistry extensionPointRegistry;
- protected EndpointRegistry endpointRegistry;
- protected ComponentContextFactory componentContextFactory;
- protected Composite domainComposite;
-
- public CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry, Composite domainComposite) {
- this.extensionPointRegistry = registry;
- this.endpointRegistry = endpointRegistry;
- ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class);
- this.componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class);
- this.domainComposite = domainComposite;
- }
-
- public CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry) {
- this(registry, endpointRegistry, null);
- }
-
- /**
- * @return
- */
- public static RuntimeComponent getCurrentComponent() {
- Message message = ThreadMessageContext.getMessageContext();
- if (message != null) {
- Endpoint to = message.getTo();
- if (to == null) {
- return null;
- }
- RuntimeComponent component = (RuntimeComponent)message.getTo().getComponent();
- return component;
- }
- return null;
- }
-
- /**
- * @return
- */
- public static CompositeContext getCurrentCompositeContext() {
- RuntimeComponent component = getCurrentComponent();
- if (component != null) {
- RuntimeComponentContext componentContext = component.getComponentContext();
- return componentContext.getCompositeContext();
- }
- CompositeContext compositeContext = context.get();
- if (compositeContext != null) {
- return compositeContext;
- }
- return null;
- }
-
- public void bindComponent(RuntimeComponent runtimeComponent) {
- RuntimeComponentContext componentContext =
- (RuntimeComponentContext)componentContextFactory.createComponentContext(this, runtimeComponent);
- runtimeComponent.setComponentContext(componentContext);
- }
- /**
- *
- * @param endpointReference
- */
- public void bindEndpointReference(EndpointReference endpointReference) {
-
- }
-
- /**
- * Get the ExtensionPointRegistry for this node
- * @return The ExtensionPointRegistry
- */
- public ExtensionPointRegistry getExtensionPointRegistry() {
- return extensionPointRegistry;
- }
-
- /**
- * Get the EndpointRegistry
- * @return The EndpointRegistry for this node
- */
- public EndpointRegistry getEndpointRegistry() {
- return endpointRegistry;
- }
-
- public Composite getDomainComposite() {
- return domainComposite;
- }
-
- public static void setThreadCompositeContext(CompositeContext value) {
- context.set(value);
- }
-
- public static void removeCompositeContext() {
- context.remove();
- }
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ContextFactoryExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ContextFactoryExtensionPoint.java
deleted file mode 100644
index e92a8f2844..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ContextFactoryExtensionPoint.java
+++ /dev/null
@@ -1,50 +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.sca.context;
-
-/**
- * An extension point for context factories.
- *
- * @version $Rev$ $Date$
- */
-public interface ContextFactoryExtensionPoint {
-
- /**
- * Add a context factory extension.
- *
- * @param factory The factory to add
- */
- void addFactory(Object factory);
-
- /**
- * Remove a context factory extension.
- *
- * @param factory The factory to remove
- */
- void removeFactory(Object factory);
-
- /**
- * Get a factory implementing the given interface.
- * @param factoryInterface the lookup key (factory interface)
- * @return The factory
- */
- <T> T getFactory(Class<T> factoryInterface);
-
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java
deleted file mode 100644
index c079a9dc66..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java
+++ /dev/null
@@ -1,116 +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.sca.context;
-
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
-
-/**
- * Default implementation of a model factory extension point.
- *
- * @version $Rev$ $Date$
- */
-public class DefaultContextFactoryExtensionPoint implements ContextFactoryExtensionPoint {
-
- /**
- * The Map of Factories that have been registered.
- */
- private HashMap<Class<?>, Object> factories = new HashMap<Class<?>, Object>();
-
- private ExtensionPointRegistry registry;
-
- public DefaultContextFactoryExtensionPoint(ExtensionPointRegistry registry) {
- this.registry = registry;
- }
-
- /**
- * Add a model factory extension.
- *
- * @param factory The factory to add.
- * @throws IllegalArgumentException if factory is null
- */
- public void addFactory(Object factory) throws IllegalArgumentException {
- if (factory == null) {
- throw new IllegalArgumentException("Cannot add null as a factory");
- }
-
- Class<?>[] interfaces = factory.getClass().getInterfaces();
- for (int i = 0; i<interfaces.length; i++) {
- factories.put(interfaces[i], factory);
- }
- }
-
- /**
- * Remove a model factory extension.
- *
- * @param factory The factory to remove
- * @throws IllegalArgumentException if factory is null
- */
- public void removeFactory(Object factory) throws IllegalArgumentException {
- if (factory == null) {
- throw new IllegalArgumentException("Cannot remove null as a factory");
- }
-
- Class<?>[] interfaces = factory.getClass().getInterfaces();
- for (int i = 0; i<interfaces.length; i++) {
- factories.remove(interfaces[i]);
- }
- }
-
- /**
- * Get a factory implementing the given interface.
- *
- * @param factoryInterface The lookup key (factory interface)
- * @return The factory
- */
- public <T> T getFactory(Class<T> factoryInterface) throws IllegalArgumentException {
- if (factoryInterface == null) {
- throw new IllegalArgumentException("Cannot get null as a factory");
- }
-
- Object factory = factories.get(factoryInterface);
- if (factory == null) {
-
- // Dynamically load a factory class declared under META-INF/services
- try {
- ServiceDeclaration factoryDeclaration = registry.getServiceDiscovery().getServiceDeclaration(factoryInterface.getName());
- if (factoryDeclaration != null) {
- Class<?> factoryClass = factoryDeclaration.loadClass();
-
- // Default empty constructor
- Constructor<?> constructor = factoryClass.getConstructor(ExtensionPointRegistry.class);
- factory = constructor.newInstance(registry);
-
- // Cache the loaded factory
- addFactory(factory);
- }
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
-
- }
-
- return factoryInterface.cast(factory);
- }
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/PropertyValueFactory.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/PropertyValueFactory.java
deleted file mode 100644
index 9766e164b8..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/PropertyValueFactory.java
+++ /dev/null
@@ -1,40 +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.sca.context;
-
-import org.apache.tuscany.sca.assembly.ComponentProperty;
-
-/**
- * Interface implemented by the provider of the property values
- *
- * @version $Rev$ $Date$
- */
-public interface PropertyValueFactory {
-
- /**
- * This method will create an instance of the value for the specified Property.
- *
- * @param property The Property from which to retrieve the property value
- * @param type The type of the property value being retrieved from the Property
- * @param <B> Type type of the property value being looked up
- *
- * @return the value for the Property
- */
- <B> B createPropertyValue(ComponentProperty property, Class<B> type);
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/RequestContextFactory.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/RequestContextFactory.java
deleted file mode 100644
index d8f15b411c..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/RequestContextFactory.java
+++ /dev/null
@@ -1,34 +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.sca.context;
-
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.oasisopen.sca.RequestContext;
-
-/**
- * Interface implemented by the provider of the RequestContext.
- *
- * @version $Rev$ $Date$
- */
-public interface RequestContextFactory {
- /**
- * @return An instance of RequestContext for the current invocation
- */
- RequestContext createRequestContext(RuntimeComponent component);
-}
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ThreadMessageContext.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ThreadMessageContext.java
deleted file mode 100644
index d6237b7ce3..0000000000
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ThreadMessageContext.java
+++ /dev/null
@@ -1,57 +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.sca.context;
-
-import org.apache.tuscany.sca.invocation.Message;
-
-/**
- * Class for tunnelling a WorkContext through the invocation of a user class.
- *
- * @version $Rev$ $Date$
- */
-public final class ThreadMessageContext {
-
- private static final ThreadLocal<Message> CONTEXT = new ThreadLocal<Message>();
-
- private ThreadMessageContext() {
- }
-
- public static Message setMessageContext(Message context) {
- Message old = CONTEXT.get();
- CONTEXT.set(context);
- return old;
- }
-
- /**
- * Returns the WorkContext for the current thread.
- *
- * @return the WorkContext for the current thread
- */
- public static Message getMessageContext() {
- return CONTEXT.get();
- }
-
- /**
- * Removes and state from the current thread to ensure that
- * any associated classloaders can be GCd
- */
- public static void removeMessageContext() {
- CONTEXT.remove();
- }
-}