diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org')
6 files changed, 0 insertions, 461 deletions
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ClientExtensionPoint.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ClientExtensionPoint.java deleted file mode 100644 index ed66c6efed..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ClientExtensionPoint.java +++ /dev/null @@ -1,30 +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.implementation.web.runtime;
-
-import org.apache.tuscany.sca.implementation.web.WebImplementation;
-import org.apache.tuscany.sca.provider.ImplementationProvider;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-public interface ClientExtensionPoint {
-
- public ImplementationProvider createImplementationProvider(RuntimeComponent component, WebImplementation implementation);
-
-}
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ComponentContextProxy.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ComponentContextProxy.java deleted file mode 100644 index 798b3e704c..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ComponentContextProxy.java +++ /dev/null @@ -1,85 +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.implementation.web.runtime;
-
-import java.util.Collection;
-
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.oasisopen.sca.ComponentContext;
-import org.oasisopen.sca.RequestContext;
-import org.oasisopen.sca.ServiceReference;
-
-/**
- * Proxy ComponentContext wrappering a RuntimeComponent as the
- * RuntimeComponent ComponentContext has not been created till later
- */
-public class ComponentContextProxy implements ComponentContext {
-
- protected RuntimeComponent runtimeComponent;
-
- public ComponentContextProxy(RuntimeComponent runtimeComponent) {
- this.runtimeComponent = runtimeComponent;
- }
-
- protected ComponentContext getComponentContext() {
- return runtimeComponent.getComponentContext();
- }
-
- public <B> ServiceReference<B> cast(B target) throws IllegalArgumentException {
- return getComponentContext().cast(target);
- }
-
- public <B> ServiceReference<B> createSelfReference(Class<B> businessInterface) {
- return getComponentContext().createSelfReference(businessInterface);
- }
-
- public <B> ServiceReference<B> createSelfReference(Class<B> businessInterface, String serviceName) {
- return getComponentContext().createSelfReference(businessInterface, serviceName);
- }
-
- public <B> B getProperty(Class<B> type, String propertyName) {
- return getComponentContext().getProperty(type, propertyName);
- }
-
- public RequestContext getRequestContext() {
- return getComponentContext().getRequestContext();
- }
-
- public <B> B getService(Class<B> businessInterface, String referenceName) {
- return getComponentContext().getService(businessInterface, referenceName);
- }
-
- public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String referenceName) {
- return getComponentContext().getServiceReference(businessInterface, referenceName);
- }
-
- public <B> Collection<ServiceReference<B>> getServiceReferences(Class<B> businessInterface, String referenceName) {
- return getComponentContext().getServiceReferences(businessInterface, referenceName);
- }
-
- public <B> Collection<B> getServices(Class<B> businessInterface, String referenceName) {
- return getComponentContext().getServices(businessInterface, referenceName);
- }
-
- public String getURI() {
- return getComponentContext().getURI();
- }
-
-}
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java deleted file mode 100644 index d0323545ea..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java +++ /dev/null @@ -1,71 +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.implementation.web.runtime; - -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.host.http.ServletHostHelper; -import org.apache.tuscany.sca.implementation.web.WebImplementation; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.provider.ImplementationProvider; -import org.apache.tuscany.sca.provider.ImplementationProviderFactory; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -public class WebImplementationProviderFactory implements ImplementationProviderFactory<WebImplementation> { - - private ServletHost servletHost; - private ClientExtensionPoint jsClient; - - public WebImplementationProviderFactory(ExtensionPointRegistry extensionPoints) { - this.servletHost = ServletHostHelper.getServletHost(extensionPoints); - jsClient = extensionPoints.getExtensionPoint(ClientExtensionPoint.class); - } - - public ImplementationProvider createImplementationProvider(RuntimeComponent component, WebImplementation implementation) { - servletHost.setAttribute("org.apache.tuscany.sca.implementation.web.RuntimeComponent", component); - servletHost.setAttribute("org.oasisopen.sca.ComponentContext", new ComponentContextProxy(component)); - - ImplementationProvider impl; - if (jsClient != null && implementation.getJSClient()) { - impl = jsClient.createImplementationProvider(component, implementation); - } else { - impl = new ImplementationProvider() { - - public Invoker createInvoker(RuntimeComponentService arg0, Operation arg1) { - throw new UnsupportedOperationException("Components using implementation.web have no services"); - } - public void start() { - } - public void stop() { - } - public boolean supportsOneWayInvocation() { - return false; - } - }; - } - return impl; - } - - public Class<WebImplementation> getModelType() { - return WebImplementation.class; - } - -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTEI.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTEI.java deleted file mode 100644 index 2ba7944326..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTEI.java +++ /dev/null @@ -1,45 +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.implementation.web.runtime.jsp; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * TagExtraInfo class for the SCA reference tags - * <sca:reference name="service" type="test.MyService" scope="1" /> - * - * @version $Rev$ $Date$ - */ -public class ReferenceTEI extends TagExtraInfo { - - @Override - public VariableInfo[] getVariableInfo(TagData data) { - VariableInfo info1 - = new VariableInfo( - data.getAttributeString("name"), - data.getAttributeString("type"), - true, - VariableInfo.AT_END); - VariableInfo[] info = { info1 } ; - return info; - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTag.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTag.java deleted file mode 100644 index b4655e3d95..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTag.java +++ /dev/null @@ -1,97 +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.implementation.web.runtime.jsp; - -import javax.servlet.ServletContext; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.oasisopen.sca.ServiceReference; - -/** - * Tag to handle SCA references - * <sca:reference name="service" type="test.MyService" scope="1" /> - * - * @version $Rev$ $Date$ - */ -public class ReferenceTag extends TagSupport { - private static final long serialVersionUID = 1L; - - protected String name; - protected String type; - protected Integer scope = PageContext.PAGE_SCOPE; - - @Override - public int doStartTag() throws JspException { - return SKIP_BODY; - } - - @Override - public int doEndTag() throws JspException { - - ServletContext servletContext = pageContext.getServletContext(); - RuntimeComponent component = (RuntimeComponent)servletContext.getAttribute("org.apache.tuscany.sca.implementation.web.RuntimeComponent"); - if (component == null) { - throw new JspException("No Web component found. Is there an <implementation.web> missing?"); - } - - Class<?> typeClass; - try { - typeClass = Class.forName(type, true, Thread.currentThread().getContextClassLoader()); - } catch (ClassNotFoundException e) { - throw new JspException("Reference '" + name + "' type class not found: " + type); - } - - ServiceReference<?> sr = component.getComponentContext().getServiceReference(typeClass, name); - if (sr == null) { - throw new JspException("Reference '" + name + "' undefined"); - } - - pageContext.setAttribute(name, sr.getService(), scope); - - return EVAL_PAGE; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getScope() { - return scope; - } - - public void setScope(Integer scope) { - this.scope = scope; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/utils/ContextHelper.java b/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/utils/ContextHelper.java deleted file mode 100644 index 423e906d6b..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/utils/ContextHelper.java +++ /dev/null @@ -1,133 +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.implementation.web.runtime.utils; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import javax.servlet.ServletContext; - -import org.apache.tuscany.sca.assembly.ComponentProperty; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.oasisopen.sca.ComponentContext; -import org.oasisopen.sca.ServiceReference; -import org.oasisopen.sca.ServiceRuntimeException; -import org.oasisopen.sca.annotation.ComponentName; -import org.oasisopen.sca.annotation.Context; -import org.oasisopen.sca.annotation.Property; -import org.oasisopen.sca.annotation.Reference; - -public class ContextHelper { - - public static final String COMPONENT_ATTR = "org.apache.tuscany.sca.implementation.web.RuntimeComponent"; - - public static ComponentContext getComponentContext(ServletContext sc) { - RuntimeComponent rc = (RuntimeComponent)sc.getAttribute(COMPONENT_ATTR); - return rc.getComponentContext(); - } - - public static <T> T getReference(String name, Class<T> type, ServletContext sc) { - ServiceReference<T> sr = getComponentContext(sc).getServiceReference(type, name); - if (sr == null) { - throw new ServiceRuntimeException("Reference '" + name + "' undefined"); - } - return sr.getService(); - } - - public static Object getProperty(String name, ServletContext sc) { - RuntimeComponent rc = (RuntimeComponent)sc.getAttribute(COMPONENT_ATTR); - for (ComponentProperty p : rc.getProperties()) { - if (name.equals(p.getName())) { - return p.getValue(); - } - } - return null; - } - - public static void inject(Object instance, ServletContext sc) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - - Class<?> clazz = instance.getClass(); - for (Field field : clazz.getDeclaredFields()) { - if (field.isAnnotationPresent(Reference.class)) { - Reference ref = field.getAnnotation(Reference.class); - String name = ref.name() != null && !ref.name().equals("") ? ref.name() : field.getName(); - Object value = getReference(name, field.getType(), sc); - setField(instance, field, value); - } else if (field.isAnnotationPresent(Property.class)) { - Property prop = field.getAnnotation(Property.class); - String name = prop.name() != null && !prop.name().equals("") ? prop.name() : field.getName(); - Object value = getProperty(name, sc); - setField(instance, field, value); - } else if (field.isAnnotationPresent(ComponentName.class)) { - RuntimeComponent rc = (RuntimeComponent)sc.getAttribute(COMPONENT_ATTR); - setField(instance, field, rc.getName()); - } else if (field.isAnnotationPresent(Context.class)) { - setField(instance, field, getComponentContext(sc)); - } - } - - for (Method method : clazz.getDeclaredMethods()) { - if (!method.getName().startsWith("set") || method.getParameterTypes().length != 1) { - continue; - } - String targetName = method.getName().substring(3); - Class<?> type = method.getParameterTypes()[0]; - - if (method.isAnnotationPresent(Reference.class)) { - Reference ref = method.getAnnotation(Reference.class); - String name = ref.name() != null && !ref.name().equals("") ? ref.name() : targetName; - Object value = getReference(name, type, sc); - setMethod(instance, method, value); - } else if (method.isAnnotationPresent(Property.class)) { - Property prop = method.getAnnotation(Property.class); - String name = prop.name() != null && !prop.name().equals("") ? prop.name() : targetName; - Object value = getProperty(name, sc); - setMethod(instance, method, value); - } else if (method.isAnnotationPresent(ComponentName.class)) { - RuntimeComponent rc = (RuntimeComponent)sc.getAttribute(COMPONENT_ATTR); - setMethod(instance, method, rc.getName()); - } else if (method.isAnnotationPresent(Context.class)) { - setMethod(instance, method, getComponentContext(sc)); - } - } - } - - private static void setMethod(Object instance, Method method, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - if (method.isAccessible()) { - method.invoke(instance, new Object[] {value}); - } else { - method.setAccessible(true); - method.invoke(instance, new Object[] {value}); - method.setAccessible(false); - } - } - - private static void setField(Object instance, Field field, Object value) throws IllegalArgumentException, IllegalAccessException { - if (field.isAccessible()) { - field.set(instance, value); - } else { - field.setAccessible(true); - field.set(instance, value); - field.setAccessible(false); - } - } - -} |