summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src')
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java100
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java134
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java33
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java91
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java70
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java53
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java95
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java367
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java393
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java223
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java100
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java278
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java39
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/package.html30
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java36
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java445
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor20
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory18
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor18
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/interface-javaxml-validation-messages.properties28
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java317
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java123
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java.fixme107
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java119
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java81
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java80
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite53
-rw-r--r--sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType31
28 files changed, 0 insertions, 3482 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
deleted file mode 100644
index 89b8c7193d..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
+++ /dev/null
@@ -1,100 +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.interfacedef.java;
-
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-
-/**
- * A factory for the Java interface model.
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
- private static final Logger logger = Logger.getLogger(DefaultJavaInterfaceFactory.class.getName());
-
- private ExtensionPointRegistry registry;
- // private Monitor monitor = null;
- private boolean loadedVisitors;
-
- public DefaultJavaInterfaceFactory(ExtensionPointRegistry registry) {
- super();
- this.registry = registry;
- }
-
- @Override
- public List<JavaInterfaceVisitor> getInterfaceVisitors() {
- loadVisitors();
- return super.getInterfaceVisitors();
- }
-
- /**
- * Load visitors declared under META-INF/services
- */
- @SuppressWarnings("unchecked")
- private synchronized void loadVisitors() {
- if (loadedVisitors)
- return;
-
- // Get the databinding service declarations
- Collection<ServiceDeclaration> visitorDeclarations;
- try {
- visitorDeclarations = registry.getServiceDiscovery().getServiceDeclarations(JavaInterfaceVisitor.class, true);
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
-
- // Load data bindings
- for (ServiceDeclaration visitorDeclaration: visitorDeclarations) {
- JavaInterfaceVisitor visitor = null;
- try {
- Class<JavaInterfaceVisitor> visitorClass = (Class<JavaInterfaceVisitor>)visitorDeclaration.loadClass();
-
- try {
- Constructor<JavaInterfaceVisitor> constructor = visitorClass.getConstructor(ExtensionPointRegistry.class);
- visitor = constructor.newInstance(registry);
- } catch (NoSuchMethodException e) {
- visitor = visitorClass.newInstance();
- }
-
-
- } catch (Exception e) {
- IllegalStateException ie = new IllegalStateException(e);
- throw ie;
- }
-
- logger.fine("Adding Java Interface visitor: " + visitor.getClass().getName());
-
- addInterfaceVisitor(visitor);
- }
-
- loadedVisitors = true;
- }
-
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java
deleted file mode 100644
index e042d863d7..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java
+++ /dev/null
@@ -1,134 +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.interfacedef.java;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Base;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.interfacedef.Interface;
-
-/**
- * Represents a Java interface.
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public interface JavaInterface extends Interface, Base {
-
- /**
- * Returns the name of the Java interface class.
- *
- * @return the name of the Java interface class
- */
- String getName();
-
- /**
- * Sets the name of the Java interface class.
- *
- * @param className the name of the Java interface class
- */
- void setName(String className);
-
- /**
- * Returns the QName of the JAX-WS interface.
- *
- * @return the QName of the JAX-WS interface
- */
- QName getQName();
-
- /**
- * Sets the QName of the JAX-WS interface.
- *
- * @param interfaceName the QName of the JAX-WS interface
- */
- void setQName(QName interfaceName);
-
- /**
- * Returns the Java interface class.
- *
- * @return the Java interface class
- */
- Class<?> getJavaClass();
-
- /**
- * Sets the Java interface class.
- *
- * @param javaClass the Java interface class
- */
- void setJavaClass(Class<?> javaClass);
-
- /**
- * Returns the callback class specified in an @Callback annotation.
- *
- * @return the callback class specified in an @Callback annotation
- */
- Class<?> getCallbackClass();
-
- /**
- * Sets the callback class specified in an @Callback annotation.
- *
- * @param callbackClass the callback class specified in an @Callback annotation
- */
- void setCallbackClass(Class<?> callbackClass);
-
- /**
- * A Java interface may have JAXWS annotations that refer to a
- * a WSDL document. The resulting WSDL location is stored here
- * so that is can be resolved after the Java interface itself
- * has been resolved
- *
- * @return WSDL interface
- */
- String getJAXWSWSDLLocation();
-
- /**
- * A Java interface may have JAXWS annotations that refer to a
- * a WSDL document. The resulting WSDL location is stored here
- * so that is can be resolved after the Java interface itself
- * has been resolved
- *
- * @param wsdlInterface
- */
- void setJAXWSWSDLLocation(String wsdlLocation);
-
- /**
- * A Java interface may have JAXWS annotations that refer to a
- * a Java interface by name. The resulting class name is stored here
- * so that is can be resolved after this Java interface
- * has been resolved
- *
- * @return
- */
- String getJAXWSJavaInterfaceName();
-
- /**
- * A Java interface may have JAXWS annotations that refer to a
- * a Java interface by name. The resulting class name is stored here
- * so that is can be resolved after this Java interface
- * has been resolved
- *
- * @return
- */
- void setJAXWSJavaInterfaceName(String javaInterfaceName);
-
- public Contribution getContributionContainingClass();
-
- public void setContributionContainingClass(Contribution contributionContainingClass);
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java
deleted file mode 100644
index 25875dbd6a..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java
+++ /dev/null
@@ -1,33 +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.interfacedef.java;
-
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-
-/**
- * Represents a Java interface contract.
- * JavaInterfaceContract
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public interface JavaInterfaceContract extends InterfaceContract {
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java
deleted file mode 100644
index 4f4e9d8268..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java
+++ /dev/null
@@ -1,91 +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.interfacedef.java;
-
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-
-/**
- * Factory for the Java interface model
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public interface JavaInterfaceFactory {
-
- /**
- * Creates a new Java interface model.
- *
- * @return
- */
- JavaInterface createJavaInterface();
-
- /**
- * Creates a new Java interface model from an interface class.
- * @param interfaceClass the interface class to introspect.
- * @return
- */
- JavaInterface createJavaInterface(Class<?> interfaceClass) throws InvalidInterfaceException;
-
- /**
- * Creates the contents of a Java interface model from an interface class.
- * @param javaInterface the Java interface model
- * @param interfaceClass the interface class to introspect.
- * @return
- */
- void createJavaInterface(JavaInterface javaInterface, Class<?> interfaceClass) throws InvalidInterfaceException;
-
- /**
- * Create a JavaOperation
- * @param method
- * @return
- */
- JavaOperation createJavaOperation(Method method);
-
- /**
- * Creates a new Java interface contract.
- *
- * @return
- */
- JavaInterfaceContract createJavaInterfaceContract();
-
- /**
- * Registers the given visitor.
- *
- * @param visitor
- */
- void addInterfaceVisitor(JavaInterfaceVisitor visitor);
-
- /**
- * Deregisters the given visitor.
- *
- * @param visitor
- */
- void removeInterfaceVisitor(JavaInterfaceVisitor visitor);
-
- /**
- * Returns a list of interface visitors.
- *
- * @return
- */
- List<JavaInterfaceVisitor> getInterfaceVisitors();
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java
deleted file mode 100644
index e894ac279b..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java
+++ /dev/null
@@ -1,70 +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.interfacedef.java;
-
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * Represents a Java operation.
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public interface JavaOperation extends Operation {
-
- /**
- * Returns the Java method defining the operation.
- * @return the Java method
- */
- Method getJavaMethod();
-
- /**
- * Sets the Java method defining the operation.
- * @param method the Java method
- */
- void setJavaMethod(Method method);
-
- /**
- * Returns the JAX-WS @WebMethod action parameter.
- * @return the action value
- */
- String getAction();
-
- /**
- * Sets the JAX-WS @WebMethod action parameter.
- * @param action the action value
- */
- void setAction(String action);
-
- /**
- * Sets whether this operation has async server style
- * @param isAsync - "true" marks this operation as async server style
- */
- public void setAsyncServer( boolean isAsync );
-
- /**
- * Indicates whether this operation is async server style
- * @return - true if the operation is async server style
- */
- public boolean isAsyncServer();
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java
deleted file mode 100644
index cb0d5f3b27..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java
+++ /dev/null
@@ -1,53 +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.interfacedef.java.impl;
-
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-
-/**
- * Represents a Java interface contract.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceContractImpl extends InterfaceContractImpl implements JavaInterfaceContract {
-
- // A cached WSDL version of the Java contract use during normalized
- // interface comparison
- private InterfaceContract normailizedWSDLInterfaceContract;
-
- protected JavaInterfaceContractImpl() {
- }
-
- @Override
- public JavaInterfaceContractImpl clone() throws CloneNotSupportedException {
- return (JavaInterfaceContractImpl) super.clone();
- }
-
- @Override
- public InterfaceContract getNormalizedWSDLContract() {
- return normailizedWSDLInterfaceContract;
- }
-
- @Override
- public void setNormailizedWSDLContract(InterfaceContract wsdlInterfaceContract) {
- normailizedWSDLInterfaceContract = wsdlInterfaceContract;
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java
deleted file mode 100644
index dbedf1d55a..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java
+++ /dev/null
@@ -1,95 +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.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-
-/**
- * A factory for the Java model.
- *
- * @version $Rev$ $Date$
- */
-public abstract class JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
-
- private List<JavaInterfaceVisitor> visitors = new ArrayList<JavaInterfaceVisitor>();
- private JavaInterfaceIntrospectorImpl introspector;
- private Map<Class<?>, JavaInterface> cache = Collections.synchronizedMap(new WeakHashMap<Class<?>, JavaInterface>());
-
- public JavaInterfaceFactoryImpl() {
- introspector = new JavaInterfaceIntrospectorImpl(this);
- }
-
- public JavaInterface createJavaInterface() {
- return new JavaInterfaceImpl();
- }
-
- public JavaInterface createJavaInterface(Class<?> interfaceClass) throws InvalidInterfaceException {
- // TODO: Review if the sharing of JavaInterface is ok
- synchronized (interfaceClass) {
- JavaInterface javaInterface = cache.get(interfaceClass);
- if (javaInterface == null) {
- javaInterface = createJavaInterface();
- introspector.introspectInterface(javaInterface, interfaceClass);
- // Now that all introspection is complete we can mark the interface resolved
- javaInterface.setUnresolved(false);
- cache.put(interfaceClass, javaInterface);
- }
- return javaInterface;
- }
- }
-
- public void createJavaInterface(JavaInterface javaInterface, Class<?> interfaceClass) throws InvalidInterfaceException {
- introspector.introspectInterface(javaInterface, interfaceClass);
- }
-
- public JavaInterfaceContract createJavaInterfaceContract() {
- return new JavaInterfaceContractImpl();
- }
-
- public void addInterfaceVisitor(JavaInterfaceVisitor extension) {
- visitors.add(extension);
- }
-
- public void removeInterfaceVisitor(JavaInterfaceVisitor extension) {
- visitors.remove(extension);
- }
-
- public List<JavaInterfaceVisitor> getInterfaceVisitors() {
- return visitors;
- }
-
- public JavaOperation createJavaOperation(Method method) {
- JavaOperation op = new JavaOperationImpl();
- op.setJavaMethod(method);
- op.setName(method.getName());
- return op;
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
deleted file mode 100644
index 1dcd89ce2a..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
+++ /dev/null
@@ -1,367 +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.interfacedef.java.impl;
-
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.util.ArrayList;
-import java.util.List;
-import java.lang.reflect.ParameterizedType;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.policy.Intent;
-
-import org.oasisopen.sca.ResponseDispatch;
-
-/**
- * Represents a Java interface.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceImpl extends InterfaceImpl implements JavaInterface {
-
- private String className;
- private WeakReference<Class<?>> javaClass;
- private Class<?> callbackClass;
- private QName qname;
- private String jaxwsWSDLLocation;
- private String jaxwsJavaInterfaceName;
- private Contribution contributionContainingClass;
-
- protected JavaInterfaceImpl() {
- super();
- // Mark the interface as unresolved until all the basic processing is complete
- // including Intent & Policy introspection
- this.setUnresolved(true);
- }
-
- public String getName() {
- if (isUnresolved()) {
- return className;
- } else if (javaClass != null) {
- return javaClass.get().getName();
- } else {
- return null;
- }
- }
-
- public void setName(String className) {
- if (!isUnresolved()) {
- throw new IllegalStateException();
- }
- this.className = className;
- }
-
- public QName getQName() {
- return qname;
- }
-
- public void setQName(QName interfacename) {
- qname = interfacename;
- }
-
- public Class<?> getJavaClass() {
- if (javaClass != null){
- return javaClass.get();
- } else {
- return null;
- }
- }
-
- public void setJavaClass(Class<?> javaClass) {
- this.javaClass = new WeakReference<Class<?>>(javaClass);
- if (javaClass != null) {
- this.className = javaClass.getName();
- }
- }
-
- public Class<?> getCallbackClass() {
- return callbackClass;
- }
-
- public void setCallbackClass(Class<?> callbackClass) {
- this.callbackClass = callbackClass;
- }
-
- @Override
- public String toString() {
- return getName();
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((className == null) ? 0 : className.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- JavaInterfaceImpl other = (JavaInterfaceImpl)obj;
- if (isUnresolved() || other.isUnresolved()) {
- if (className == null) {
- if (other.className != null)
- return false;
- } else if (!className.equals(other.className))
- return false;
- } else {
- if (javaClass == null) {
- if (other.javaClass != null)
- return false;
- } else if (!javaClass.get().equals(other.javaClass.get()))
- return false;
- if (callbackClass == null) {
- if (other.callbackClass != null)
- return false;
- } else if (!callbackClass.equals(other.callbackClass))
- return false;
- }
-
- return true;
- }
-
- public List<Operation> getOperations() {
- if( !isUnresolved() && isAsyncServer() ) {
- return equivalentSyncOperations();
- } else {
- return super.getOperations();
- }
- } // end method getOperations
-
-
- private List<Operation> syncOperations = null;
- private List<Operation> equivalentSyncOperations() {
- if( syncOperations != null ) return syncOperations;
- List<Operation> allOperations = super.getOperations();
- syncOperations = new ArrayList<Operation>();
- for( Operation operation: allOperations) {
- syncOperations.add( getSyncFormOfOperation( (JavaOperation) operation ) );
- // Store the actual async operations under the attribute "ASYNC-SERVER-OPERATIONS"
- this.getAttributes().put("ASYNC-SERVER-OPERATIONS", allOperations);
- } // end for
-
- return syncOperations;
- } // end method equivalentSyncOperations
-
- private static final String UNKNOWN_DATABINDING = null;
- /**
- * Prepares the synchronous form of an asynchronous operation
- * - async form: void someOperationAsync( FooType inputParam, DispatchResponse<BarType> )
- * - sync form: BarType someOperation( FooType inputParam )
- * @param operation - the operation to convert
- * @return - the synchronous form of the operation - for an input operation that is not async server in form, this
- * method simply returns the original operation unchanged
- */
- private Operation getSyncFormOfOperation( JavaOperation operation ) {
- if( isAsyncServerOperation( operation ) ) {
- JavaOperation syncOperation = new JavaOperationImpl();
- String opName = operation.getName().substring(0, operation.getName().length() - 5 );
-
- // Prepare the list of equivalent input parameters, which simply excludes the (final) DispatchResponse object
- // and the equivalent return parameter, which is the (generic) type from the DispatchResponse object
- DataType<List<DataType>> requestParams = operation.getInputType();
-
- DataType<List<DataType>> inputType = prepareSyncInputParams( requestParams );
- DataType<List<DataType>> returnDataType = prepareSyncReturnParam( requestParams );
- List<DataType> faultDataTypes = prepareSyncFaults( operation );
-
- syncOperation.setName(opName);
- syncOperation.setAsyncServer(true);
- syncOperation.setInputType(inputType);
- syncOperation.setOutputType(returnDataType);
- syncOperation.setFaultTypes(faultDataTypes);
- syncOperation.setNonBlocking(operation.isNonBlocking());
- syncOperation.setJavaMethod(operation.getJavaMethod());
- syncOperation.setInterface(this);
- return syncOperation;
- } else {
- // If it's not Async form, then it's a synchronous operation
- return operation;
- } // end if
- } // end getSyncFormOfOperation
-
- /**
- * Produce the equivalent sync method input parameters from the input parameters of the async method
- * @param requestParams - async method input parameters
- * @return - the equivalent sync method input parameters
- */
- private DataType<List<DataType>> prepareSyncInputParams( DataType<List<DataType>> requestParams ) {
- List<DataType> requestLogical = requestParams.getLogical();
- int paramCount = requestLogical.size();
-
- // Copy the list of async parameters, removing the final DispatchResponse
- List<DataType> asyncParams = new ArrayList<DataType>( paramCount - 1);
- for( int i = 0 ; i < (paramCount - 1) ; i++ ) {
- asyncParams.add( requestLogical.get(i) );
- } // end for
-
- DataType<List<DataType>> inputType =
- new DataTypeImpl<List<DataType>>(requestParams.getDataBinding(),
- requestParams.getPhysical(), asyncParams);
- return inputType;
- } // end method prepareSyncInputParams
-
- /**
- * Prepare the return data type of the equivalent sync operation, based on the parameterization of the ResponseDispatch object
- * of the async operation - the return data type is the Generic type of the final DispatchResponse<?>
- * @param requestParams - - async method input parameters
- * @return - the sync method return parameter
- */
- private DataType<List<DataType>> prepareSyncReturnParam( DataType<List<DataType>> requestParams ) {
- List<DataType> requestLogical = requestParams.getLogical();
- int paramCount = requestLogical.size();
-
- DataType<?> finalParam = requestLogical.get( paramCount - 1 );
- ParameterizedType t = (ParameterizedType)finalParam.getGenericType();
- XMLType returnXMLType = (XMLType)finalParam.getLogical();
-
- String namespace = null;
- if( returnXMLType.isElement() ) {
- namespace = returnXMLType.getElementName().getNamespaceURI();
- } else {
- namespace = returnXMLType.getTypeName().getNamespaceURI();
- }
-
- Type[] typeArgs = t.getActualTypeArguments();
- if( typeArgs.length != 1 ) throw new IllegalArgumentException( "ResponseDispatch parameter is not parameterized correctly");
-
- Class<?> returnType = (Class<?>)typeArgs[0];
-
- // Set outputType to null for void
- XMLType xmlReturnType = new XMLType(new QName(namespace, "return"), null);
- DataType<XMLType> returnDataType =
- returnType == void.class ? null : new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, returnType, xmlReturnType);
-
- ArrayList<DataType> returnTypes = new ArrayList<DataType>();
- returnTypes.add(returnDataType);
-
- DataType<List<DataType>> outputType =
- new DataTypeImpl<List<DataType>>(requestParams.getDataBinding(),
- requestParams.getPhysical(), returnTypes);
-
- return outputType;
- } // end method prepareSyncReturnParam
-
- /**
- * Prepare the set of equivalent sync faults for a given async operation
- * @return - the list of faults
- */
- private List<DataType> prepareSyncFaults( JavaOperation operation ) {
- //TODO - deal with Faults - for now just copy through whatever is associated with the async operation
- return operation.getFaultTypes();
- }
-
- /**
- * Determines if an interface operation has the form of an async server operation
- * - async form: void someOperationAsync( FooType inputParam, ...., DispatchResponse<BarType> )
- * @param operation - the operation to examine
- * @return - true if the operation has the form of an async operation, false otherwise
- */
- private boolean isAsyncServerOperation( Operation operation ) {
- // Async form operations have:
- // 1) void return type
- // 2) name ending in "Async"
- // 3) final parameter which is of ResponseDispatch<?> type
- DataType<?> response = operation.getOutputType().getLogical().get(0);
- if( response != null ) {
- if ( response.getPhysical() != void.class ) return false;
- } // end if
-
- if ( !operation.getName().endsWith("Async") ) return false;
-
- DataType<List<DataType>> requestParams = operation.getInputType();
- int paramCount = requestParams.getLogical().size();
- if( paramCount < 1 ) return false;
- DataType<?> finalParam = requestParams.getLogical().get( paramCount - 1 );
- if ( finalParam.getPhysical() != ResponseDispatch.class ) return false;
-
- return true;
- } // end method isAsyncServerOperation
-
- static QName ASYNC_INVOCATION = new QName(Constants.SCA11_NS, "asyncInvocation");
- /**
- * Indicates if this interface is an Async Server interface
- * @return true if the interface is Async Server, false otherwise
- */
- private boolean isAsyncServer() {
-
- List<Intent> intents = getRequiredIntents();
- for( Intent intent: intents ) {
- if ( intent.getName().equals(ASYNC_INVOCATION) ) {
- return true;
- }
- } // end for
- return false;
- } // end method isAsyncServer
-
- public String getJAXWSWSDLLocation() {
- return jaxwsWSDLLocation;
- }
-
- public void setJAXWSWSDLLocation(String wsdlLocation) {
- this.jaxwsWSDLLocation = wsdlLocation;
- }
-
- public String getJAXWSJavaInterfaceName() {
- return jaxwsJavaInterfaceName;
- }
-
- public void setJAXWSJavaInterfaceName(String javaInterfaceName) {
- this.jaxwsJavaInterfaceName = javaInterfaceName;
- }
-
- /**
- * A Java class may reference a WSDL file via a JAXWS annotation. We need to resolve
- * the WSDL file location in the context of the same contribution that holds the
- * Java file. In order to do this we need to remember the actual contribution that
- * was used to resolve a Java class.
- *
- * @return
- */
- public Contribution getContributionContainingClass() {
- return contributionContainingClass;
- }
-
- public void setContributionContainingClass(Contribution contributionContainingClass) {
- this.contributionContainingClass = contributionContainingClass;
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
deleted file mode 100644
index a4629333d5..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
+++ /dev/null
@@ -1,393 +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.interfacedef.java.impl;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Future;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Holder;
-import javax.xml.ws.Response;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidAnnotationException;
-import org.apache.tuscany.sca.interfacedef.InvalidCallbackException;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.InvalidOperationException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.OverloadedOperationException;
-import org.apache.tuscany.sca.interfacedef.ParameterMode;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.oasisopen.sca.annotation.AsyncFault;
-import org.oasisopen.sca.annotation.OneWay;
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * Default implementation of a Java interface introspector.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceIntrospectorImpl {
- public static final String IDL_INPUT = "idl:input";
- public static final String IDL_OUTPUT = "idl:output";
-
- private static final String UNKNOWN_DATABINDING = null;
-
- private JavaInterfaceFactory javaFactory = null;
- private List<JavaInterfaceVisitor> visitors = new ArrayList<JavaInterfaceVisitor>();
- private boolean loadedVisitors;
-
- public JavaInterfaceIntrospectorImpl(JavaInterfaceFactory javaFactory) {
- this.javaFactory = javaFactory;
- }
-
- public void introspectInterface(JavaInterface javaInterface, Class<?> clazz) throws InvalidInterfaceException {
-
- if(!loadedVisitors) {
- this.visitors = javaFactory.getInterfaceVisitors();
- }
-
- javaInterface.setJavaClass(clazz);
-
- boolean remotable = clazz.isAnnotationPresent(Remotable.class);
-
- // Consider @javax.ejb.Remote, java.rmi.Remote and javax.ejb.EJBObject
- // equivalent to @Remotable
- if (!remotable) {
- for (Annotation annotation : clazz.getAnnotations()) {
- if ("javax.ejb.Remote".equals(annotation.annotationType().getName())) {
- remotable = true;
- break;
- }
- }
- }
- if (!remotable) {
- for (Class<?> superInterface : clazz.getInterfaces()) {
- if (Remote.class == superInterface || "javax.ejb.EJBObject".equals(superInterface.getName())) {
- remotable = true;
- break;
- }
- }
- }
-
- if (remotable) {
- if (javaInterface.isRemotableSet() && javaInterface.isRemotable() == false) {
- throw new InvalidAnnotationException("[JCA30005] @Remotable annotation present in a interface marked as not remotable in the SCDL", Remotable.class);
- }
- } else {
- if (javaInterface.isRemotableSet()) {
- remotable = javaInterface.isRemotable();
- }
- }
-
- javaInterface.setRemotable(remotable);
-
- Class<?> callbackClass = null;
- org.oasisopen.sca.annotation.Callback callback = clazz.getAnnotation(org.oasisopen.sca.annotation.Callback.class);
- if (callback != null && !Void.class.equals(callback.value())) {
- callbackClass = callback.value();
- if (remotable && !callbackClass.isAnnotationPresent(Remotable.class)) {
- throw new InvalidCallbackException("Callback " + callbackClass.getName() +
- " must be remotable on remotable interface " + clazz.getName());
- }
- if (!remotable && callbackClass.isAnnotationPresent(Remotable.class)) {
- throw new InvalidCallbackException("Callback" + callbackClass.getName() +
- " must not be remotable on local interface " + clazz.getName());
- }
- } else if (callback != null && Void.class.equals(callback.value())) {
- throw new InvalidCallbackException("No callback interface specified on callback annotation in " + clazz.getName());
- }
-
- javaInterface.setCallbackClass(callbackClass);
-
- String ns = JavaXMLMapper.getNamespace(clazz);
- javaInterface.getOperations().addAll(getOperations(clazz, remotable, ns));
-
- for (JavaInterfaceVisitor extension : visitors) {
- extension.visitInterface(javaInterface);
- }
- }
-
- private Class<?>[] getActualTypes(Type[] types, Class<?>[] rawTypes, Map<String, Type> typeBindings) {
- Class<?>[] actualTypes = new Class<?>[types.length];
- for (int i = 0; i < actualTypes.length; i++) {
- actualTypes[i] = getActualType(types[i], rawTypes[i], typeBindings);
- }
- return actualTypes;
- }
-
- private Class<?> getActualType(Type type, Class<?> rawType, Map<String, Type> typeBindings) {
- if (type instanceof TypeVariable<?>) {
- TypeVariable<?> typeVariable = (TypeVariable<?>)type;
- type = typeBindings.get(typeVariable.getName());
- if (type instanceof Class<?>) {
- return (Class<?>)type;
- }
- }
- return rawType;
- }
-
- private <T> List<Operation> getOperations(Class<T> clazz,
- boolean remotable,
- String ns) throws InvalidInterfaceException {
-
- Set<Type> genericInterfaces = new HashSet<Type>();
- for (Type t : clazz.getGenericInterfaces()) {
- genericInterfaces.add(t);
- }
- Map<String, Type> typeBindings = new HashMap<String, Type>();
- for (Type genericInterface : genericInterfaces) {
- if (genericInterface instanceof ParameterizedType) {
- ParameterizedType parameterizedType = (ParameterizedType)genericInterface;
- TypeVariable<?>[] typeVariables = ((Class<?>)parameterizedType.getRawType()).getTypeParameters();
- Type[] typeArguments = parameterizedType.getActualTypeArguments();
- for (int i = 0; i < typeArguments.length; i++) {
- typeBindings.put(typeVariables[i].getName(), typeArguments[i]);
- }
- }
- }
-
- Method[] methods = clazz.getMethods();
- List<Operation> operations = new ArrayList<Operation>(methods.length);
- Set<String> names = remotable ? new HashSet<String>() : null;
- for (Method method : methods) {
- boolean hasHolders = false;
- if (method.getDeclaringClass() == Object.class) {
- // Skip the methods on the Object.class
- continue;
- }
- String name = method.getName();
- if (remotable && names.contains(name)) {
- throw new OverloadedOperationException(method);
- }
- if (remotable && !jaxwsAsyncMethod(method)) {
- names.add(name);
- }
-
- Class<?> returnType = getActualType(method.getGenericReturnType(), method.getReturnType(), typeBindings);
- Class<?>[] parameterTypes =
- getActualTypes(method.getGenericParameterTypes(), method.getParameterTypes(), typeBindings);
- Class<?>[] faultTypes =
- getActualTypes(method.getGenericExceptionTypes(), method.getExceptionTypes(), typeBindings);
- Class<?>[] allOutputTypes = getOutputTypes(returnType, parameterTypes);
-
- // For async server interfaces, faults are described using the @AsyncFaults annotation
- if( method.isAnnotationPresent(AsyncFault.class) ) {
- faultTypes = readAsyncFaultTypes( method );
- } // end if
-
- boolean nonBlocking = method.isAnnotationPresent(OneWay.class);
- if (nonBlocking) {
- if (!(returnType == void.class)) {
- throw new InvalidOperationException(
- "Method should return 'void' when declared with an @OneWay annotation. " + method,
- method);
- }
- if (!(faultTypes.length == 0)) {
- throw new InvalidOperationException(
- "Method should not declare exceptions with an @OneWay annotation. " + method,
- method);
- }
- }
-
- JavaOperation operation = new JavaOperationImpl();
- operation.setName(name);
-
- // Set outputType to null for void
- XMLType xmlReturnType = new XMLType(new QName(ns, "return"), null);
- DataType<XMLType> returnDataType =
- returnType == void.class ? null : new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, returnType, method
- .getGenericReturnType(), xmlReturnType);
-
-
- // Handle Input Types
- List<DataType> paramDataTypes = new ArrayList<DataType>(parameterTypes.length);
- List<Type> genericHolderTypes = new ArrayList<Type>();
- List<Class<?>> physicalHolderTypes = new ArrayList<Class<?>>();
- Type[] genericParamTypes = method.getGenericParameterTypes();
- for (int i = 0; i < parameterTypes.length; i++) {
- Class<?> paramType = parameterTypes[i];
- XMLType xmlParamType = new XMLType(new QName(ns, "arg" + i), null);
-
- DataTypeImpl<XMLType> xmlDataType = new DataTypeImpl<XMLType>(
- UNKNOWN_DATABINDING, paramType, genericParamTypes[i],xmlParamType);
- ParameterMode mode = ParameterMode.IN;
- // Holder pattern. Physical types of Holder<T> classes are updated to <T> to aid in transformations.
- if ( Holder.class == paramType) {
- hasHolders = true;
- genericHolderTypes.add(genericParamTypes[i]);
- Type firstActual = getFirstActualType( genericParamTypes[ i ] );
- if ( firstActual != null ) {
- physicalHolderTypes.add((Class<?>)firstActual);
- xmlDataType.setPhysical( (Class<?>)firstActual );
- mode = ParameterMode.INOUT;
- } else {
- physicalHolderTypes.add(xmlDataType.getPhysical());
- }
- }
- paramDataTypes.add( xmlDataType);
- operation.getParameterModes().add(mode);
- }
-
-
- // Get Output Types
- List<DataType> outputDataTypes = new ArrayList<DataType>(allOutputTypes.length);
- Type genericReturnType = method.getGenericReturnType();
-
- for ( int i=0; i <= genericHolderTypes.size(); i++ ) {
- Class<?> paramType = allOutputTypes[i];
- XMLType xmlOutputType = new XMLType(new QName(ns, "out" + i), null);
-
- if ( i == 0 ) {
- outputDataTypes.add(returnDataType);
- } else {
- DataTypeImpl<XMLType> xmlDataType = xmlDataType = new DataTypeImpl<XMLType>(
- UNKNOWN_DATABINDING, physicalHolderTypes.get(i-1), genericHolderTypes.get(i-1), xmlOutputType);
- outputDataTypes.add(xmlDataType);
- }
-
- }
-
- // Fault types
- List<DataType> faultDataTypes = new ArrayList<DataType>(faultTypes.length);
- Type[] genericFaultTypes = method.getGenericExceptionTypes();
- if( method.isAnnotationPresent(AsyncFault.class) ) {
- genericFaultTypes = readAsyncGenericFaultTypes( method );
- } // end if
- for (int i = 0; i < faultTypes.length; i++) {
- Class<?> faultType = faultTypes[i];
- // Only add checked exceptions
- // JAXWS Specification v2.1 section 3.7 says RemoteException should not be mapped
- if (Exception.class.isAssignableFrom(faultType) && (!RuntimeException.class.isAssignableFrom(faultType))
- && (!RemoteException.class.isAssignableFrom(faultType))) {
- XMLType xmlFaultType = new XMLType(new QName(ns, faultType.getSimpleName()), null);
- DataType<XMLType> faultDataType =
- new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, faultType, genericFaultTypes[i], xmlFaultType);
- faultDataTypes.add(new DataTypeImpl<DataType>(UNKNOWN_DATABINDING, faultType, genericFaultTypes[i],
- faultDataType));
- }
- }
-
- DataType<List<DataType>> inputType =
- new DataTypeImpl<List<DataType>>(IDL_INPUT, Object[].class, paramDataTypes);
- DataType<List<DataType>> outputType =
- new DataTypeImpl<List<DataType>>(IDL_OUTPUT, Object[].class, outputDataTypes);
-
- operation.setOutputType(outputType);
-
- operation.setInputType(inputType);
- operation.setFaultTypes(faultDataTypes);
- operation.setNonBlocking(nonBlocking);
- operation.setJavaMethod(method);
- operation.setHasHolders(hasHolders);
- operations.add(operation);
- }
- return operations;
- }
-
-
- private Class<?>[] getOutputTypes(Class<?> returnType, Class<?>[] parameterTypes) {
- Class<?>[] returnTypes = new Class<?>[parameterTypes.length + 1];
- returnTypes[0] = returnType;
- int idx = 1;
- for ( Class<?> clazz : parameterTypes ) {
- if ( Holder.class == clazz )
- returnTypes[idx++] = clazz;
- }
-
- return returnTypes;
- }
-
-
-
- /**
- * Reads the fault types declared in an @AsyncFault annotation on an async server method
- * @param method - the Method
- * @return - an array of fault/exception classes
- */
- private Class<?>[] readAsyncFaultTypes( Method method ) {
- AsyncFault theFaults = method.getAnnotation(AsyncFault.class);
- if ( theFaults == null ) return null;
- return theFaults.value();
- } // end method readAsyncFaultTypes
-
- /**
- * Reads the generic fault types declared in an @AsyncFault annotation on an async server method
- * @param method - the Method
- * @return - an array of fault/exception classes
- */
- private Type[] readAsyncGenericFaultTypes( Method method ) {
- AsyncFault theFaults = method.getAnnotation(AsyncFault.class);
- if ( theFaults == null ) return null;
- return theFaults.value();
- } // end method readAsyncFaultTypes
-
- private boolean jaxwsAsyncMethod(Method method) {
- if (method.getName().endsWith("Async")) {
- if (method.getReturnType().isAssignableFrom(Future.class)) {
- if (method.getParameterTypes().length > 0) {
- if (method.getParameterTypes()[method.getParameterTypes().length-1].isAssignableFrom(AsyncHandler.class)) {
- return true;
- }
- }
- }
- if (method.getReturnType().isAssignableFrom(Response.class)) {
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * Given a Class<T>, returns T, otherwise null.
- * @param testClass
- * @return
- */
- protected static Type getFirstActualType(Type genericType) {
- if (genericType instanceof ParameterizedType) {
- ParameterizedType pType = (ParameterizedType)genericType;
- Type[] actualTypes = pType.getActualTypeArguments();
- if ((actualTypes != null) && (actualTypes.length > 0)) {
- return actualTypes[0];
- }
- }
- return null;
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
deleted file mode 100644
index 352cffeef2..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
+++ /dev/null
@@ -1,223 +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.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-
-/**
- * Contains methods for mapping between an operation in a
- * {@link org.apache.tuscany.spi.model.ServiceContract} and a method defined by
- * a Java interface
- *
- * @version $Rev$ $Date$
- * @tuscany.spi.extension.asclient
- */
-public final class JavaInterfaceUtil {
-
- private JavaInterfaceUtil() {
- }
-
- /**
- * Return the method on the implementation class that matches the operation.
- *
- * @param implClass the implementation class or interface
- * @param operation the operation to match
- * @return the method described by the operation
- * @throws NoSuchMethodException if no such method exists
- * @Deprecated
- */
- public static Method findMethod(Class<?> implClass, Operation operation) throws NoSuchMethodException {
- String name = operation.getName();
- if (operation instanceof JavaOperation) {
- if( ((JavaOperation)operation).isAsyncServer() ) {
- // In this case, the operation is a mapped async server style method and needs special handling
- return findAsyncServerMethod( implClass, (JavaOperation)operation );
- } else {
- name = ((JavaOperation)operation).getJavaMethod().getName();
- } // end if
- }
- Interface interface1 = operation.getInterface();
- int numParams = operation.getInputType().getLogical().size();
- if (interface1 != null && interface1.isRemotable()) {
- List<Method> matchingMethods = new ArrayList<Method>();
- for (Method m : implClass.getMethods()) {
- if (m.getName().equals(name) && m.getParameterTypes().length == numParams) {
- matchingMethods.add(m);
- }
- }
-
- // TUSCANY-2180 If there is only one method then we just match on the name
- // (this is the same as the existing behaviour)
- if (matchingMethods.size() == 1) {
- return matchingMethods.get(0);
- }
- if (matchingMethods.size() > 1) {
- // TUSCANY-2180 We need to check the parameter types too
- Class<?>[] paramTypes = getPhysicalTypes(operation);
- return implClass.getMethod(name, paramTypes);
- }
-
- // No matching method found
- throw new NoSuchMethodException("No matching method for operation " + operation.getName()
- + " is found on "
- + implClass);
- }
- Class<?>[] paramTypes = getPhysicalTypes(operation);
- return implClass.getMethod(name, paramTypes);
- }
-
- /**
- * Return the method on the implementation class that matches the async server version of the operation.
- *
- * @param implClass the implementation class or interface
- * @param operation the operation to match - this is the sync equivalent of an async server operation
- * @return the method described by the operation
- * @throws NoSuchMethodException if no such method exists
- */
- public static Method findAsyncServerMethod(Class<?> implClass, JavaOperation operation) throws NoSuchMethodException {
- String name = operation.getJavaMethod().getName();
- List<Operation> actualOps = (List<Operation>) operation.getInterface().getAttributes().get("ASYNC-SERVER-OPERATIONS");
- Operation matchingOp = null;
- for( Operation op: actualOps ) {
- if( op.getName().equals(name) ) {
- matchingOp = op;
- break;
- }
- } // end for
- if( matchingOp == null ) throw new NoSuchMethodException("No matching async method for operation " + operation.getName());
-
- int numParams = matchingOp.getInputType().getLogical().size();
-
- List<Method> matchingMethods = new ArrayList<Method>();
- for (Method m : implClass.getMethods()) {
- if (m.getName().equals(name) && m.getParameterTypes().length == (numParams) ) {
- matchingMethods.add(m);
- }
- }
-
- if (matchingMethods.size() == 1) {
- return matchingMethods.get(0);
- }
- if (matchingMethods.size() > 1) {
- Class<?>[] paramTypes = getPhysicalTypes(matchingOp);
- return implClass.getMethod(name, paramTypes);
- }
-
- // No matching method found
- throw new NoSuchMethodException("No matching method for operation " + operation.getName()
- + " is found on " + implClass);
-
- } // end method findAsyncServerMethod
-
- /**
- * @Deprecated
- */
- private static Class<?>[] getPhysicalTypes(Operation operation) {
- DataType<List<DataType>> inputType = operation.getInputType();
- if (inputType == null) {
- return new Class<?>[] {};
- }
- List<DataType> types = inputType.getLogical();
- Class<?>[] javaTypes = new Class<?>[types.size()];
- for (int i = 0; i < javaTypes.length; i++) {
- Type physical = types.get(i).getPhysical();
- if (physical instanceof Class<?>) {
- javaTypes[i] = (Class<?>)physical;
- } else {
- throw new UnsupportedOperationException();
- }
- }
- return javaTypes;
- }
-
- /**
- * Searches a collection of operations for a match against the given method
- *
- * @param method the method to match
- * @param operations the operations to match against
- * @return a matching operation or null
- * @Deprecated
- */
- public static Operation findOperation(Method method, Collection<Operation> operations) {
- for (Operation operation : operations) {
- if (match(operation, method)) {
- return operation;
- }
- }
- return null;
- }
-
- /**
- * Determines if the given operation matches the given method
- *
- * @return true if the operation matches, false if does not
- */
- private static boolean match(Operation operation, Method method) {
- Class<?>[] params = method.getParameterTypes();
- DataType<List<DataType>> inputType = operation.getInputType();
- List<DataType> types = inputType.getLogical();
- boolean found = true;
- if (types.size() == params.length && method.getName().equals(operation.getName())) {
- for (int i = 0; i < params.length; i++) {
- Class<?> clazz = params[i];
- if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
- found = false;
- }
- }
- } else {
- found = false;
- }
- return found;
-
- }
-
- private static String getPackageName(Class<?> cls) {
- String name = cls.getName();
- int index = name.lastIndexOf('.');
- return index == -1 ? "" : name.substring(0, index);
- }
-
- public static String getNamespace(Class<?> cls) {
- String packageName = getPackageName(cls);
- if ("".equals(packageName)) {
- return "";
- }
- StringBuffer ns = new StringBuffer("http://");
- String[] names = packageName.split("\\.");
- for (int i = names.length - 1; i >= 0; i--) {
- ns.append(names[i]);
- if (i != 0) {
- ns.append('.');
- }
- }
- ns.append('/');
- return ns.toString();
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java
deleted file mode 100644
index 7169cc164d..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java
+++ /dev/null
@@ -1,100 +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.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-
-/**
- * Represents a Java operation.
- *
- * @version $Rev$ $Date$
- */
-public class JavaOperationImpl extends OperationImpl implements JavaOperation {
-
- private Method method;
- private String action;
- private boolean isAsyncServer = false;
-
- public Method getJavaMethod() {
- return method;
- }
-
- public void setJavaMethod(Method method) {
- this.method = method;
- }
-
- public String getAction() {
- return action;
- }
-
- public void setAction(String action) {
- this.action = action;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((method == null) ? 0 : method.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (!super.equals(obj))
- return false;
- if (getClass() != obj.getClass())
- return false;
- final JavaOperationImpl other = (JavaOperationImpl)obj;
- if (method == null) {
- if (other.method != null)
- return false;
- } else if (!method.equals(other.method))
- return false;
- return true;
- }
-
- /**
- * Sets whether this operation has async server style
- * @param isAsync - "true" marks this operation as async server style
- */
- public void setAsyncServer( boolean isAsync ) {
- isAsyncServer = isAsync;
- }
-
- /**
- * Indicates whether this operation is async server style
- * @return - true if the operation is async server style
- */
- public boolean isAsyncServer() {
- return isAsyncServer;
- }
-
- @Override
- public String toString() {
- return method == null ? "null" : method.toGenericString();
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java
deleted file mode 100644
index 1c0333f833..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java
+++ /dev/null
@@ -1,278 +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.interfacedef.java.impl;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.soap.SOAPBinding;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.PolicySubject;
-import org.oasisopen.sca.annotation.PolicySets;
-import org.oasisopen.sca.annotation.Qualifier;
-import org.oasisopen.sca.annotation.Requires;
-
-/**
- * Processes an {@link org.oasisopen.sca.annotation.Requires} annotation
- *
- * @version $Rev$ $Date$
- */
-public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor {
- private PolicyFactory policyFactory;
-
- public PolicyJavaInterfaceVisitor(ExtensionPointRegistry registry) {
- super();
- this.policyFactory = registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(PolicyFactory.class);
- }
-
- private QName getQName(String intentName) {
- QName qname;
- if (intentName.startsWith("{")) {
- int i = intentName.indexOf('}');
- if (i != -1) {
- qname = new QName(intentName.substring(1, i), intentName.substring(i + 1));
- } else {
- qname = new QName("", intentName);
- }
- } else {
- qname = new QName("", intentName);
- }
- return qname;
- }
-
- /**
- * Read policy intents on the given interface or class
- * @param clazz
- * @param requiredIntents
- */
- private void readIntentsAndPolicySets(Class<?> clazz, PolicySubject subject) {
- Requires intentAnnotation = clazz.getAnnotation(Requires.class);
- if (intentAnnotation != null) {
- String[] intentNames = intentAnnotation.value();
- if (intentNames.length != 0) {
- for (String intentName : intentNames) {
-
- // Add each intent to the list
- Intent intent = policyFactory.createIntent();
- intent.setName(getQName(intentName));
- subject.getRequiredIntents().add(intent);
- }
- }
- }
-
- readSpecificIntents(clazz.getAnnotations(), subject.getRequiredIntents());
-
- PolicySets policySetAnnotation = clazz.getAnnotation(PolicySets.class);
- if (policySetAnnotation != null) {
- String[] policySetNames = policySetAnnotation.value();
- if (policySetNames.length != 0) {
- for (String policySetName : policySetNames) {
-
- // Add each intent to the list
- PolicySet policySet = policyFactory.createPolicySet();
- policySet.setName(getQName(policySetName));
- subject.getPolicySets().add(policySet);
- }
- }
- }
-
- if ( clazz.isAnnotationPresent(SOAPBinding.class) ) {
- // add soap intent
- Intent intent = policyFactory.createIntent();
- intent.setName(Constants.SOAP_INTENT);
- subject.getRequiredIntents().add(intent);
- }
-
-
- }
-
- private void readIntents(Requires intentAnnotation, List<Intent> requiredIntents) {
- //Requires intentAnnotation = method.getAnnotation(Requires.class);
- if (intentAnnotation != null) {
- String[] intentNames = intentAnnotation.value();
- if (intentNames.length != 0) {
- //Operation operation = assemblyFactory.createOperation();
- //operation.setName(method.getName());
- //operation.setUnresolved(true);
- for (String intentName : intentNames) {
-
- // Add each intent to the list, associated with the
- // operation corresponding to the annotated method
- Intent intent = policyFactory.createIntent();
- intent.setName(getQName(intentName));
- //intent.getOperations().add(operation);
- requiredIntents.add(intent);
- }
- }
- }
- }
-
- private void readPolicySets(PolicySets policySetAnnotation, List<PolicySet> policySets) {
- if (policySetAnnotation != null) {
- String[] policySetNames = policySetAnnotation.value();
- if (policySetNames.length != 0) {
- //Operation operation = assemblyFactory.createOperation();
- //operation.setName(method.getName());
- //operation.setUnresolved(true);
- for (String policySetName : policySetNames) {
- // Add each intent to the list, associated with the
- // operation corresponding to the annotated method
- PolicySet policySet = policyFactory.createPolicySet();
- policySet.setName(getQName(policySetName));
- //intent.getOperations().add(operation);
- policySets.add(policySet);
- }
- }
- }
- }
-
- public void readWebServicesAnnotations(Method m, Class<?> clazz, List<Intent> requiredIntents) {
-
- WebResult webResultAnnotation = m.getAnnotation(WebResult.class);
- if (webResultAnnotation != null) {
- if (webResultAnnotation.header()) {
- // Add SOAP intent
- Intent intent = policyFactory.createIntent();
- intent.setName(Constants.SOAP_INTENT);
- requiredIntents.add(intent);
- return;
- }
- }
-
- Annotation[][] parameterAnnotations = m.getParameterAnnotations();
- for ( int i=0; i < parameterAnnotations.length; i++ ) {
- for ( int j=0; j < parameterAnnotations[i].length; j++) {
- if ( parameterAnnotations[i][j] instanceof WebParam ) {
- WebParam webParam = (WebParam)parameterAnnotations[i][j];
- if ( webParam.header() ) {
- // Add SOAP intent
- Intent intent = policyFactory.createIntent();
- intent.setName(Constants.SOAP_INTENT);
- requiredIntents.add(intent);
- return;
- }
- }
- }
- }
-
- }
- public void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException {
-
- if (javaInterface.getJavaClass() != null) {
- readIntentsAndPolicySets(javaInterface.getJavaClass(), javaInterface);
-
- // Read intents on the service interface methods
- List<Operation> operations = javaInterface.getOperations();
- for (Operation op : operations) {
- JavaOperation operation = (JavaOperation)op;
- Method method = operation.getJavaMethod();
-
- readIntents(method.getAnnotation(Requires.class), op.getRequiredIntents());
- readSpecificIntents(method.getAnnotations(), op.getRequiredIntents());
- readPolicySets(method.getAnnotation(PolicySets.class), op.getPolicySets());
- readWebServicesAnnotations(method, javaInterface.getJavaClass(), javaInterface.getRequiredIntents());
- inherit(javaInterface, op);
- }
- }
-
-
-
-
- }
-
- private void inherit(JavaInterface javaInterface, Operation op) {
- List<Intent> interfaceIntents = new ArrayList<Intent>(javaInterface.getRequiredIntents());
- for ( Intent intent : javaInterface.getRequiredIntents() ) {
-
- for ( Intent operationIntent : op.getRequiredIntents() ) {
- if ( intent.getExcludedIntents().contains(operationIntent) ||
- operationIntent.getExcludedIntents().contains(intent) ) {
- interfaceIntents.remove(intent);
- continue;
- }
- }
- }
- op.getRequiredIntents().addAll(interfaceIntents);
-
- op.getPolicySets().addAll(javaInterface.getPolicySets());
- }
-
- private void readSpecificIntents(Annotation[] annotations, List<Intent> requiredIntents) {
- for (Annotation a : annotations) {
- org.oasisopen.sca.annotation.Intent intentAnnotation =
- a.annotationType().getAnnotation(org.oasisopen.sca.annotation.Intent.class);
- if (intentAnnotation == null) {
- continue;
- }
- QName qname = null;
- String value = intentAnnotation.value();
- if (!value.equals("")) {
- qname = getQName(value);
- } else {
- qname = new QName(intentAnnotation.targetNamespace(), intentAnnotation.localPart());
- }
- Set<String> qualifiers = new HashSet<String>();
- for(Method m: a.annotationType().getMethods()) {
- Qualifier qualifier = m.getAnnotation(Qualifier.class);
- if (qualifier != null && m.getReturnType() == String[].class) {
- try {
- qualifiers.addAll(Arrays.asList((String[]) m.invoke(a)));
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- }
- qualifiers.remove("");
- if (qualifiers.isEmpty()) {
- Intent intent = policyFactory.createIntent();
- intent.setUnresolved(true);
- intent.setName(qname);
- requiredIntents.add(intent);
- } else {
- for (String q : qualifiers) {
- Intent intent = policyFactory.createIntent();
- intent.setUnresolved(true);
- qname = new QName(qname.getNamespaceURI(), qname.getLocalPart() + "." + q);
- intent.setName(qname);
- requiredIntents.add(intent);
- }
- }
- }
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java
deleted file mode 100644
index 3bc03a528e..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java
+++ /dev/null
@@ -1,39 +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.interfacedef.java.introspect;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-
-/**
- * Implementations introspect metadata on a Java interface, populating the
- * corresponding {@link JavaInterface}
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceVisitor {
-
- /**
- * Visit a java interface
- * @param javaInterface
- * @throws InvalidInterfaceException
- */
- void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException;
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/package.html b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/package.html
deleted file mode 100644
index 828c112479..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<!--
- * 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.
--->
-<html>
-<head>
-</head>
-<body>
-
-The Tuscany Java Interface Extension
-
-@tuscany.spi.extension
-
-</body>
-</html>
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
deleted file mode 100644
index 2db916e2d3..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.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.sca.interfacedef.java.xml;
-
-import javax.xml.namespace.QName;
-
-/**
- * Interface Java XML Constants.
- *
- * @version $Rev$ $Date$
- */
-public interface JavaConstants {
- String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912";
- String INTERFACE_JAVA = "interface.java";
- QName INTERFACE_JAVA_QNAME = new QName(SCA11_NS, "interface.java");
- String INTERFACE = "interface";
- String CALLBACK_INTERFACE = "callbackInterface";
- String REMOTABLE = "remotable";
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
deleted file mode 100644
index 9e013746ce..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
+++ /dev/null
@@ -1,445 +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.interfacedef.java.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-import javax.xml.ws.WebServiceClient;
-
-import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
-import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
-import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.Compatibility;
-import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.oasisopen.sca.annotation.AllowsPassByReference;
-import org.oasisopen.sca.annotation.Callback;
-import org.oasisopen.sca.annotation.ComponentName;
-import org.oasisopen.sca.annotation.Constructor;
-import org.oasisopen.sca.annotation.Context;
-import org.oasisopen.sca.annotation.Destroy;
-import org.oasisopen.sca.annotation.EagerInit;
-import org.oasisopen.sca.annotation.Init;
-import org.oasisopen.sca.annotation.Intent;
-import org.oasisopen.sca.annotation.Property;
-import org.oasisopen.sca.annotation.Qualifier;
-import org.oasisopen.sca.annotation.Reference;
-import org.oasisopen.sca.annotation.Scope;
-import org.oasisopen.sca.annotation.Service;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceProcessor implements StAXArtifactProcessor<JavaInterfaceContract>, JavaConstants {
- private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912";
-
- private JavaInterfaceFactory javaFactory;
- private ExtensionPointRegistry extensionPoints;
- private PolicyFactory policyFactory;
- private PolicySubjectProcessor policyProcessor;
- private WSDLFactory wsdlFactory;
- private StAXArtifactProcessor<Object> extensionProcessor;
- private transient InterfaceContractMapper interfaceContractMapper;
-
- public JavaInterfaceProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor<?> staxProcessor) {
- this.extensionPoints = extensionPoints;
- FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
- this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
- this.policyProcessor = new PolicySubjectProcessor(policyFactory);
- this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
- this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
- this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- this.interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class);
- }
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(Monitor monitor, String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem =
- monitor.createProblem(this.getClass().getName(),
- "interface-javaxml-validation-messages",
- Severity.ERROR,
- model,
- message,
- ex);
- monitor.problem(problem);
- }
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(Monitor monitor, String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem =
- monitor.createProblem(this.getClass().getName(),
- "interface-javaxml-validation-messages",
- Severity.ERROR,
- model,
- message,
- (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- private JavaInterface createJavaInterface(String interfaceName) {
- JavaInterface javaInterface = javaFactory.createJavaInterface();
- javaInterface.setUnresolved(true);
- javaInterface.setName(interfaceName);
- return javaInterface;
- }
-
- public JavaInterfaceContract read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
-
- // Read an <interface.java>
- JavaInterfaceContract javaInterfaceContract = javaFactory.createJavaInterfaceContract();
- String interfaceName = reader.getAttributeValue(null, INTERFACE);
- if (interfaceName != null) {
- JavaInterface javaInterface = createJavaInterface(interfaceName);
- javaInterfaceContract.setInterface(javaInterface);
- }
-
- String callbackInterfaceName = reader.getAttributeValue(null, CALLBACK_INTERFACE);
- if (callbackInterfaceName != null) {
- JavaInterface javaCallbackInterface = createJavaInterface(callbackInterfaceName);
- javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
- }
-
- String remotable = reader.getAttributeValue(null, REMOTABLE);
- if (remotable != null) {
- javaInterfaceContract.getInterface().setRemotable(Boolean.parseBoolean(remotable));
- }
-
- // Read intents and policy sets
- policyProcessor.readPolicies(javaInterfaceContract.getInterface(), reader);
-
- // Skip to end element
- while (reader.hasNext()) {
- if (reader.next() == END_ELEMENT && INTERFACE_JAVA_QNAME.equals(reader.getName())) {
- break;
- }
- }
- return javaInterfaceContract;
- }
-
- public void write(JavaInterfaceContract javaInterfaceContract, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
-
- // Write an <interface.java>
- writer.writeStartElement(SCA11_NS, INTERFACE_JAVA);
- JavaInterface javaInterface = (JavaInterface)javaInterfaceContract.getInterface();
-
- if (javaInterface != null && javaInterface.getName() != null) {
- writer.writeAttribute(INTERFACE, javaInterface.getName());
- }
-
- if(javaInterface != null && javaInterface.isRemotableSet()) {
- writer.writeAttribute(REMOTABLE, String.valueOf(javaInterface.isRemotable()));
- }
-
- JavaInterface javaCallbackInterface = (JavaInterface)javaInterfaceContract.getCallbackInterface();
- if (javaCallbackInterface != null && javaCallbackInterface.getName() != null) {
- writer.writeAttribute(CALLBACK_INTERFACE, javaCallbackInterface.getName());
- }
-
- policyProcessor.writePolicyAttributes(javaInterface, writer);
-
- writer.writeEndElement();
- }
-
- private JavaInterface resolveJavaInterface(JavaInterface javaInterface, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
-
- if (javaInterface != null && javaInterface.isUnresolved()) {
- Monitor monitor = context.getMonitor();
- // Resolve the Java interface
- javaInterface = resolver.resolveModel(JavaInterface.class, javaInterface, context);
- if (javaInterface.isUnresolved()) {
-
- // If the Java interface has never been resolved yet, do it now
- ClassReference classReference = new ClassReference(javaInterface.getName());
- classReference = resolver.resolveModel(ClassReference.class, classReference, context);
- Class<?> javaClass = classReference.getJavaClass();
- if (javaClass == null) {
- error(monitor, "ClassNotFoundException", resolver, javaInterface.getName());
- return javaInterface;
- //throw new ContributionResolveException(new ClassNotFoundException(javaInterface.getName()));
- }
-
- try {
- // Introspect the Java interface and populate the interface and
- // operations
- javaFactory.createJavaInterface(javaInterface, javaClass);
-
- // cache the contribution that was used to resolve the Java interface
- // in case we need it to reolve a referenced WSDL file
- javaInterface.setContributionContainingClass(classReference.getContributionContainingClass());
-
- } catch (InvalidInterfaceException e) {
- ContributionResolveException ce = new ContributionResolveException("Resolving Java interface " + javaInterface.getName(), e);
- //error("ContributionResolveException", javaFactory, ce);
- error(monitor, "InvalidInterfaceException", javaFactory, e);
- return javaInterface;
- //throw ce;
- } catch ( Exception e ) {
- throw new ContributionResolveException( "Resolving Java interface " + javaInterface.getName(), e );
- } // end try
-
- // Cache the resolved interface
- javaInterface.setUnresolved(false);
- resolver.addModel(javaInterface, context);
- }
- }
- return javaInterface;
- }
-
- public void resolve(JavaInterfaceContract javaInterfaceContract, ModelResolver resolver, ProcessorContext context)
- throws ContributionResolveException {
- try {
- Monitor monitor = context.getMonitor();
- // Resolve the interface and callback interface
- JavaInterface javaInterface =
- resolveJavaInterface((JavaInterface)javaInterfaceContract.getInterface(), resolver, context);
- javaInterfaceContract.setInterface(javaInterface);
-
- JavaInterface javaCallbackInterface =
- resolveJavaInterface((JavaInterface)javaInterfaceContract.getCallbackInterface(), resolver, context);
- javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
-
- postJAXWSProcessorResolve(javaInterfaceContract, resolver, context);
-
- checkForbiddenAnnotations(monitor, javaInterfaceContract);
-
- } catch (Exception e) {
- throw new ContributionResolveException("Resolving Java Interface " + javaInterfaceContract.getInterface()
- .toString(), e);
- } // end try
- }
-
- private static List<Class<?>> JCA30006_ANNOTATIONS =
- Arrays.asList(new Class<?>[] {AllowsPassByReference.class, ComponentName.class, Constructor.class, Context.class,
- Destroy.class, EagerInit.class, Init.class, Intent.class, Property.class, Qualifier.class,
- Reference.class, Scope.class, Service.class});
- private static List<Class<?>> JCA30007_ANNOTATIONS =
- Arrays.asList(new Class<?>[] {AllowsPassByReference.class, Callback.class, ComponentName.class, Constructor.class,
- Context.class, Destroy.class, EagerInit.class, Init.class, Intent.class,
- Property.class, Qualifier.class, Reference.class, Scope.class, Service.class});
- private static List<Class<?>> JCA30008_ANNOTATIONS = Arrays.asList(new Class<?>[] {Intent.class, Qualifier.class});
-
- private void checkForbiddenAnnotations(Monitor monitor, JavaInterfaceContract javaInterfaceContract) {
- if (javaInterfaceContract.getInterface() == null) {
- return;
- }
- Class<?> ifc = ((JavaInterface) javaInterfaceContract.getInterface()).getJavaClass();
- if (ifc == null) {
- return;
- }
- for (Annotation a : ifc.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30006_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30006", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
-
- if ( a.annotationType().equals(WebServiceClient.class) ) {
- error(monitor, "ForbiddenAnnotationJCA100018", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
-
- }
- for (Method m : ifc.getMethods()) {
- for (Annotation a : m.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30006_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30006", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
- }
- }
- for (Field f : ifc.getFields()) {
- for (Annotation a : f.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30006_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30006", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
- }
- }
-
- if (javaInterfaceContract.getCallbackInterface() == null) {
- return;
- }
- ifc = ((JavaInterface) javaInterfaceContract.getCallbackInterface()).getJavaClass();
- if (ifc == null) {
- return;
- }
-
- for (Annotation a : ifc.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30007_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30007", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
- }
- for (Method m : ifc.getMethods()) {
- for (Annotation a : m.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30007_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30007", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
- }
- }
- for (Field f : ifc.getFields()) {
- for (Annotation a : f.getAnnotations()) {
- if (ifc.isInterface()) {
- if (JCA30007_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30007", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- } else {
- if (JCA30008_ANNOTATIONS.contains(a.annotationType())) {
- error(monitor, "ForbiddenAnnotationJCA30008", javaInterfaceContract, a.annotationType(), ifc.getName());
- }
- }
- }
- }
- }
-
- public QName getArtifactType() {
- return INTERFACE_JAVA_QNAME;
- }
-
- public Class<JavaInterfaceContract> getModelType() {
- return JavaInterfaceContract.class;
- }
-
- private void postJAXWSProcessorResolve(JavaInterfaceContract javaInterfaceContract, ModelResolver resolver, ProcessorContext context)
- throws ContributionResolveException, IncompatibleInterfaceContractException {
-
- JavaInterface javaInterface = (JavaInterface)javaInterfaceContract.getInterface();
-
- // the Java interface may now be marked as unresolved due to a new Java interface
- // name retrieved from JAXWS annotations. Resolve it again if it is.
- if (javaInterface != null && javaInterface.isUnresolved()){
- javaInterface = resolveJavaInterface(javaInterface, resolver, context);
- javaInterfaceContract.setInterface(javaInterface);
- }
-
- JavaInterface javaCallbackInterface = (JavaInterface)javaInterfaceContract.getCallbackInterface();
- // the Java callback interface may now be marked as unresolved due to a new Java interface
- // name retrieved from JAXWS annotations. Resolve it again if it is.
- if (javaCallbackInterface != null && javaCallbackInterface.isUnresolved()){
- javaCallbackInterface = resolveJavaInterface(javaCallbackInterface, resolver, context);
- javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
- }
-
- // the Java interface may be replaced by a WSDL contract picked up from JAXWS annotation
- // if so we need to fluff up a WSDL contract and set it to be the normalized contract
- // for the Java interface so it's used during contract mapping
- if (javaInterface != null && javaInterface.getJAXWSWSDLLocation() != null){
- WSDLInterface wsdlInterface = wsdlFactory.createWSDLInterface();
- wsdlInterface.setUnresolved(true);
- wsdlInterface.setRemotable(true);
-
- WSDLInterfaceContract wsdlInterfaceContract = wsdlFactory.createWSDLInterfaceContract();
- wsdlInterfaceContract.setInterface(wsdlInterface);
- wsdlInterfaceContract.setLocation(javaInterface.getJAXWSWSDLLocation());
- javaInterfaceContract.setNormailizedWSDLContract(wsdlInterfaceContract);
-
- ProcessorContext wsdlContext = new ProcessorContext(javaInterface.getContributionContainingClass(),
- context.getMonitor());
- extensionProcessor.resolve(wsdlInterfaceContract, resolver, wsdlContext);
-
- // check that the Java and WSDL contracts are compatible
- interfaceContractMapper.checkCompatibility(wsdlInterfaceContract,
- javaInterfaceContract,
- Compatibility.SUBSET,
- false,
- false);
-
- // copy policy from the WSDL interface to the Java interface
- javaInterface.getPolicySets().addAll(wsdlInterface.getPolicySets());
- javaInterface.getRequiredIntents().addAll(wsdlInterface.getRequiredIntents());
-
- // TODO - is there anything else to be copied from the user specified WSDL?
-
- }
-
- // TODO - how to handle callbacks as the location is stored at the contract level?
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
deleted file mode 100644
index 2cbda24dd8..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ /dev/null
@@ -1,20 +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.
-
-# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#interface.java,model=org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract
-
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory
deleted file mode 100644
index 82972f856a..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory
+++ /dev/null
@@ -1,18 +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.
-
-org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor
deleted file mode 100644
index ef73adb3e6..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor
+++ /dev/null
@@ -1,18 +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.
-org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor;ranking=1000
-
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/interface-javaxml-validation-messages.properties b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/interface-javaxml-validation-messages.properties
deleted file mode 100644
index 329f55e0a7..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/main/resources/interface-javaxml-validation-messages.properties
+++ /dev/null
@@ -1,28 +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.
-#
-#
-ClassNotFoundException = Class Not Found Exception: {0}
-ContributionResolveException = ContributionResolveException occurred due to: {0}
-InvalidInterfaceException = InvalidInterfaceException due to: {0}
-ForbiddenAnnotationJCA30006 = [JCA30006] Forbidden annotation {0} found on service interface in class {1}
-ForbiddenAnnotationJCA30007 = [JCA30007] Forbidden annotation {0} found on callback interface in class {1}
-ForbiddenAnnotationJCA30008 = [JCA30008] Forbidden annotation {0} found in class {1}
-ForbiddenAnnotationJCA100018 = [JCA100018] Forbidden annotation {0} found in class {1}
-
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java
deleted file mode 100644
index c70bdcaf47..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java
+++ /dev/null
@@ -1,317 +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.interfacedef.java.impl;
-
-import static org.junit.Assert.assertEquals;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.OverloadedOperationException;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl;
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.junit.Assert;
-import org.junit.Test;
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * This test case will test that a Component that has multiple Remotable interfaces
- * that contain methods with the same name will correctly select the right method.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceUtilDuplicateRemotableTestCase {
-
- /**
- * Test to get the getTime() method from the LocalTimeService
- *
- * @throws Exception Test failed
- */
- @Test
- public void testLocalTimeServiceGetTime() throws Exception {
- doTestLocalTimeServiceGetTime(LocalTimeService.class);
- }
-
- /**
- * Test to get the getTime() method from the LocalTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the LocalTimeService
- * @throws Exception Test failed
- */
- private void doTestLocalTimeServiceGetTime(Class<?> timeServiceClass) throws Exception {
- // Add a getTime() method
- Operation operation = newOperation("getTime", LocalTimeService.class);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(0, method.getParameterTypes().length);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService
- *
- * @throws Exception Test failed
- */
- @Test
- public void testWorldTimeServiceGetTime() throws Exception {
- doTestWorldTimeServiceGetTime(WorldTimeService.class);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the WorldTimeService
- * @throws Exception Test failed
- */
- private void doTestWorldTimeServiceGetTime(Class<?> timeServiceClass) throws Exception {
- // Add a getTime(String) method
- Operation operation = newOperation("getTime", WorldTimeService.class, String.class);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(1, method.getParameterTypes().length);
- assertEquals(String.class, method.getParameterTypes()[0]);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService
- *
- * @throws Exception Test failed
- */
- @Test
- public void testGMTTimeServiceGetTime() throws Exception {
- doTestGMTTimeServiceGetTime(GMTTimeService.class);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the WorldTimeService
- * @throws Exception Test failed
- */
- private void doTestGMTTimeServiceGetTime(Class<?> timeServiceClass) throws Exception {
- // Add a getTime(String) method
- Operation operation = newOperation("getTime", GMTTimeService.class, Integer.TYPE);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(1, method.getParameterTypes().length);
- assertEquals(Integer.TYPE, method.getParameterTypes()[0]);
- }
-
- /**
- * Test to get the getTime() method from the LocalTimeService on the
- * TimeServiceImpl class
- *
- * @throws Exception Test failed
- */
- @Test
- public void testLocalTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestLocalTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService on the
- * TimeServiceImpl class
- *
- * @throws Exception Test failed
- */
- @Test
- public void testWorldTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestWorldTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService
- *
- * @throws Exception Test failed
- */
- @Test
- public void testGMTTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestGMTTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Test case that validates that a @Remotable interface with Overloaded operations
- * is detected.
- *
- * This test case is for TUSCANY-2194
- */
- @Test
- public void testDuplicateOpeartionOnRemotableInterface()
- {
- ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
- JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(registry);
- JavaInterfaceIntrospectorImpl introspector = new JavaInterfaceIntrospectorImpl(javaFactory);
- JavaInterfaceImpl javaInterface = new JavaInterfaceImpl();
-
- try {
- introspector.introspectInterface(javaInterface, DuplicateMethodOnRemotableInterface.class);
- Assert.fail("Should have thrown an exception as @Remotable interface has overloaded methods");
- } catch (OverloadedOperationException ex) {
- // As expected
- // Make sure that the class and method names are in the exception
- String exMsg = ex.toString();
- Assert.assertTrue("Method name missing from exception", exMsg.indexOf("aDuplicateMethod") != -1);
- Assert.assertTrue("Class name missing from exception",
- exMsg.indexOf(DuplicateMethodOnRemotableInterface.class.getName()) != -1);
- } catch (InvalidInterfaceException ex) {
- // Should have thrown OverloadedOperationException
- Assert.fail("Should have thrown an OverloadedOperationException but threw " + ex);
- }
- }
-
- /**
- * Creates a new operation with the specified name and parameter types
- *
- * @param name The name of the operation
- * @param operationInterface The interface to which the operation belongs
- * @param parameterTypes The types of the parameters for this operation
- * @return An operation with the specified name and parameter types
- */
- private static Operation newOperation(String name, Class<?> operationInterface, Class<?>... parameterTypes) {
- // Create and set the operation name
- Operation operation = new OperationImpl();
- operation.setName(name);
-
- // Make the operation remotable
- Interface iface = new InterfaceImpl();
- iface.setRemotable(true);
- operation.setInterface(iface);
-
- // Construct the parameters
- List<DataType> types = new ArrayList<DataType>();
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- for (Class<?> parameterType : parameterTypes) {
- DataType type = new DataTypeImpl<Class>(parameterType, Object.class);
- types.add(type);
- }
- operation.setInputType(inputType);
-
- // Return the created operation
- return operation;
- }
-
- /**
- * Sample @Remotable interface that has an overloaded operation which is not
- * allowed according to the SCA Assembly Specification.
- */
- @Remotable
- private interface DuplicateMethodOnRemotableInterface {
- void aNonDuplicateMethod();
- void aDuplicateMethod();
- void aDuplicateMethod(String aParam);
- }
-
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface LocalTimeService {
-
- /**
- * Gets the local time
- *
- * @return The Local Time
- */
- String getTime();
- }
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface WorldTimeService {
-
- /**
- * Gets the time in the specified TimeZone
- *
- * @param timeZone A Time Zone
- *
- * @return The time in the specified TimeZone
- */
- String getTime(String timeZone);
- }
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface GMTTimeService {
-
- /**
- * Gets the time with the specified GMT offset
- *
- * @param gmtOffset A GMT offset in hours
- *
- * @return The time with the specified GMT offset
- */
- String getTime(int gmtOffset);
- }
-
- /**
- * Sample implementation class that implements the three @Remotable interfaces
- */
- private class TimeServiceImpl implements LocalTimeService, WorldTimeService, GMTTimeService {
- /**
- * Gets the local time
- *
- * @return The Local Time
- */
- public String getTime() {
- return "The current local time";
- }
-
- /**
- * Gets the time in the specified TimeZone
- *
- * @param timeZone A Time Zone
- *
- * @return The time in the specified TimeZone
- */
- public String getTime(String timeZone) {
- return "The current time in TimeZone " + timeZone;
- }
-
- /**
- * Gets the time with the specified GMT offset
- *
- * @param gmtOffset A GMT offset in hours
- *
- * @return The time with the specified GMT offset
- */
- public String getTime(int gmtOffset) {
- return "The current time with GMT offset of " + gmtOffset;
- }
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java
deleted file mode 100644
index 86a38fa0c4..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java
+++ /dev/null
@@ -1,123 +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.interfacedef.java.impl;
-
-import static org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil.findOperation;
-import static org.junit.Assert.assertEquals;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceUtilTestCase {
- private List<Operation> operations;
-
- @Test
- public void testNoParamsFindOperation() throws Exception {
- Method method = Foo.class.getMethod("foo");
- Operation ret = findOperation(method, operations);
- assertEquals("foo", ret.getName());
- assertEquals(0, method.getParameterTypes().length);
- }
-
- @Test
- public void testParamsFindOperation() throws Exception {
- Method method = Foo.class.getMethod("foo", String.class);
- Operation ret = findOperation(method, operations);
- assertEquals("foo", ret.getName());
- assertEquals(String.class, method.getParameterTypes()[0]);
- }
-
- @Test
- public void testPrimitiveParamFindOperation() throws NoSuchMethodException {
- Method method = Foo.class.getMethod("foo", Integer.TYPE);
- Operation operation = findOperation(method, operations);
- assertEquals(Integer.TYPE, operation.getInputType().getLogical().get(0).getPhysical());
- }
-
- @Before
- public void setUp() throws Exception {
- Operation operation = newOperation("foo");
- List<DataType> types = new ArrayList<DataType>();
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation.setInputType(inputType);
-
- operations = new ArrayList<Operation>();
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- DataType type = new DataTypeImpl<Class>(String.class, Object.class);
- types.add(type);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(String.class, Object.class);
- DataType type2 = new DataTypeImpl<Class>(String.class, Object.class);
- types.add(type);
- types.add(type2);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(Integer.class, Object.class);
- types.add(type);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(Integer.TYPE, Object.class);
- types.add(type);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- }
-
- private interface Foo {
- void foo();
-
- void foo(String foo);
-
- void foo(int b);
- }
-
- private static Operation newOperation(String name) {
- Operation operation = new OperationImpl();
- operation.setName(name);
- return operation;
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java.fixme b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java.fixme
deleted file mode 100644
index 14ac8b0134..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java.fixme
+++ /dev/null
@@ -1,107 +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.interfacedef.java.introspection.impl;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
-import java.io.IOException;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceProcessorRegistryImplTestCase extends TestCase {
- private JavaInterfaceFactory factory;
-
- @SuppressWarnings("unchecked")
- public void testSimpleInterface() throws InvalidInterfaceException {
- JavaInterface intf = factory.createJavaInterface(Simple.class);
-
- assertEquals(Simple.class, intf.getJavaClass());
- List<Operation> operations = intf.getOperations();
- assertEquals(1, operations.size());
- Operation baseInt = operations.get(0);
- assertEquals("baseInt", baseInt.getName());
-
- QName element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "return");
-
- DataType<XMLType> returnType = baseInt.getOutputType();
- assertEquals(Integer.TYPE, returnType.getPhysical());
- assertEquals(element, returnType.getLogical().getElementName());
-
- List<DataType> parameterTypes = baseInt.getInputType().getLogical();
- assertEquals(1, parameterTypes.size());
- DataType<XMLType> arg0 = parameterTypes.get(0);
- assertEquals(Integer.TYPE, arg0.getPhysical());
-
- element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "arg0");
- assertEquals(element, arg0.getLogical().getElementName());
-
- List<DataType> faultTypes = baseInt.getFaultTypes();
- assertEquals(1, faultTypes.size());
- DataType<DataType<XMLType>> fault0 = faultTypes.get(0);
- assertEquals(IOException.class, fault0.getPhysical());
- element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "IOException");
- assertEquals(element, fault0.getLogical().getLogical().getElementName());
- }
-
- public void testUnregister() throws Exception {
- JavaInterfaceVisitor extension = createMock(JavaInterfaceVisitor.class);
- extension.visitInterface(EasyMock.isA(JavaInterface.class));
- expectLastCall().once();
- replay(extension);
- factory.addInterfaceVisitor(extension);
- factory.createJavaInterface(Base.class);
- factory.removeInterfaceVisitor(extension);
- factory.createJavaInterface(Base.class);
- verify(extension);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- factory = new DefaultJavaInterfaceFactory();
-
- }
-
- private static interface Base {
- int baseInt(int param) throws IllegalArgumentException, IOException;
- }
-
- private static interface Simple extends Base {
-
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java
deleted file mode 100644
index 41facdb3e7..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java
+++ /dev/null
@@ -1,119 +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.interfacedef.java.introspection.impl;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.junit.Before;
-import org.junit.Test;
-import org.oasisopen.sca.annotation.Authentication;
-import org.oasisopen.sca.annotation.Confidentiality;
-import org.oasisopen.sca.annotation.PolicySets;
-import org.oasisopen.sca.annotation.Requires;
-
-/**
- * @version $Rev$ $Date$
- */
-public class PolicyProcessorTestCase {
- private JavaInterfaceFactory factory;
- // private PolicyJavaInterfaceVisitor policyProcessor;
-
- @Test
- public void testInterfaceLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface1.class);
- // policyProcessor.visitInterface(type);
- assertEquals(2, type.getRequiredIntents().size());
- assertEquals(1, type.getPolicySets().size());
- }
-
- @Test
- public void testMethodLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface2.class);
- // policyProcessor.visitInterface(type);
- assertEquals(0, type.getRequiredIntents().size());
- assertEquals(3, type.getOperations().get(0).getRequiredIntents().size());
- assertEquals(1, type.getOperations().get(1).getRequiredIntents().size());
- assertEquals(0, type.getPolicySets().size());
- assertEquals(1, type.getOperations().get(0).getPolicySets().size());
- assertEquals(1, type.getOperations().get(1).getPolicySets().size());
- }
-
- @Test
- public void testInterfaceAndMethodLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface3.class);
- // policyProcessor.visitInterface(type);
- assertEquals(2, type.getRequiredIntents().size());
- assertEquals(3, type.getOperations().get(0).getRequiredIntents().size());
- assertEquals(3, type.getOperations().get(1).getRequiredIntents().size());
- assertEquals(1, type.getPolicySets().size());
- assertEquals(2, type.getOperations().get(0).getPolicySets().size());
- assertEquals(2, type.getOperations().get(1).getPolicySets().size());
- }
-
- @Before
- public void setUp() throws Exception {
- ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
- factory = new DefaultJavaInterfaceFactory(registry);
- // policyProcessor = new PolicyJavaInterfaceVisitor(registry);
- }
-
- // @Remotable
- @Requires( {"transaction.global"})
- @PolicySets( {"{http://ns1}PS1"})
- @Authentication
- private interface Interface1 {
- int method1();
-
- int method2();
-
- int method3();
-
- int method4();
- }
-
- private interface Interface2 {
- @Requires( {"transaction.global"})
- @Confidentiality({"message", "transport"})
- @PolicySets( {"{http://ns1}PS1"})
- int method1();
-
- @Requires( {"transaction.local"})
- @PolicySets( {"{http://ns1}PS2"})
- int method2();
- }
-
- @Requires( {"transaction.global.Interface6"})
- @PolicySets( {"{http://ns1}PS1"})
- @Authentication
- private interface Interface3 {
- @Requires( {"transaction.global.Interface6.method1"})
- @PolicySets( {"{http://ns1}PS2"})
- int method1();
-
- @Requires( {"transaction.local.Interface6.method2"})
- @PolicySets( {"{http://ns1}PS3"})
- int method2();
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java
deleted file mode 100644
index 7cacf06abd..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.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.sca.interfacedef.java.xml;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * Test reading Java interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class ReadTestCase {
-
- private static XMLInputFactory inputFactory;
- private static XMLOutputFactory outputFactory;
- private static StAXArtifactProcessor<Object> staxProcessor;
- private static ProcessorContext context;
-
- @BeforeClass
- public static void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- context = new ProcessorContext(extensionPoints);
- inputFactory = XMLInputFactory.newInstance();
- outputFactory = XMLOutputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory);
- }
-
- @Test
- public void testReadComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- ComponentType componentType = (ComponentType)staxProcessor.read(reader, context);
- assertNotNull(componentType);
- }
-
- @Test
- @Ignore
- public void testReadComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- Composite composite = (Composite)staxProcessor.read(reader, context);
- assertNotNull(composite);
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java
deleted file mode 100644
index 615fb15fc6..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java
+++ /dev/null
@@ -1,80 +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.interfacedef.java.xml;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Test writing Java interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class WriteTestCase {
- private static XMLInputFactory inputFactory;
- private static XMLOutputFactory outputFactory;
- private static StAXArtifactProcessor<Object> staxProcessor;
- private static ProcessorContext context;
-
- @BeforeClass
- public static void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- context = new ProcessorContext(extensionPoints);
- inputFactory = XMLInputFactory.newInstance();
- outputFactory = XMLOutputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory);
- }
-
- @Test
- public void testReadWriteComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- ComponentType componentType = (ComponentType)staxProcessor.read(inputFactory.createXMLStreamReader(is), context);
- assertNotNull(componentType);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(componentType, outputFactory.createXMLStreamWriter(bos), context);
- }
-
- @Test
- public void testReadWriteComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- Composite composite = (Composite)staxProcessor.read(inputFactory.createXMLStreamReader(is), context);
- assertNotNull(composite);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos), context);
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
deleted file mode 100644
index e5455dc970..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
+++ /dev/null
@@ -1,53 +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://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:calc="http://sample.calculator"
- targetNamespace="http://calc"
- name="Calculator">
-
- <service name="CalculatorService" promote="CalculatorServiceComponent">
- <interface.java interface="calculator.CalculatorService" requires="calc:intent1" policySets="calc:policySet1" />
- </service>
-
- <component name="CalculatorServiceComponent">
- <implementation.java class="calculator.CalculatorServiceImpl"/>
- <reference name="addService" target="AddServiceComponent"/>
- <reference name="subtractService" target="SubtractServiceComponent"/>
- <reference name="multiplyService" target="MultiplyServiceComponent"/>
- <reference name="divideService" target="DivideServiceComponent"/>
- </component>
-
- <component name="AddServiceComponent">
- <implementation.java class="calculator.AddServiceImpl"/>
- </component>
-
- <component name="SubtractServiceComponent">
- <implementation.java class="calculator.SubtractServiceImpl"/>
- </component>
-
- <component name="MultiplyServiceComponent">
- <implementation.java class="calculator.MultiplyServiceImpl"/>
- </component>
-
- <component name="DivideServiceComponent">
- <implementation.java class="calculator.DivideServiceImpl"/>
- </component>
-
-</composite>
diff --git a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType b/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType
deleted file mode 100644
index 68793041e1..0000000000
--- a/sca-java-2.x/branches/2.0-Beta2/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<!--
- * 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.
--->
-<componentType xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912">
-
- <service name="CalculatorService">
- <interface.java interface="calculator.CalculatorService" />
- </service>
-
- <reference name="divideService">
- <interface.java interface="calculator.DivideService" />
- </reference>
-
-</componentType>
- \ No newline at end of file