summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jarbin1325 -> 1324 bytes
-rw-r--r--branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jarbin1325 -> 1324 bytes
-rw-r--r--branches/sca-java-1.3.2/modules/implementation-java/pom.xml6
-rw-r--r--branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java4
-rw-r--r--branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java7
-rw-r--r--branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java27
-rw-r--r--branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java17
7 files changed, 58 insertions, 3 deletions
diff --git a/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar b/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar
index 09085705e0..38c17ecebb 100644
--- a/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar
+++ b/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar
Binary files differ
diff --git a/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar b/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar
index 192924ed0e..c7d6833471 100644
--- a/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar
+++ b/branches/sca-java-1.3.2/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar
Binary files differ
diff --git a/branches/sca-java-1.3.2/modules/implementation-java/pom.xml b/branches/sca-java-1.3.2/modules/implementation-java/pom.xml
index a4b413d605..f3b942fef4 100644
--- a/branches/sca-java-1.3.2/modules/implementation-java/pom.xml
+++ b/branches/sca-java-1.3.2/modules/implementation-java/pom.xml
@@ -46,6 +46,12 @@
<artifactId>tuscany-sca-api</artifactId>
<version>1.3.2-SNAPSHOT</version>
</dependency>
+
+ <dependency>
+ <groupId>javax.jws</groupId>
+ <artifactId>jsr181-api</artifactId>
+ <version>1.0-MR1</version>
+ </dependency>
</dependencies>
<build>
diff --git a/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java b/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
index fc4d27e752..58c72e9ea5 100644
--- a/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
+++ b/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
@@ -37,6 +37,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.jws.WebService;
+
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Multiplicity;
@@ -96,7 +98,7 @@ public class HeuristicPojoProcessor extends BaseJavaClassVisitor {
*/
Set<Class> interfaces = getAllInterfaces(clazz);
for (Class<?> i : interfaces) {
- if (i.isAnnotationPresent(Remotable.class)) {
+ if (i.isAnnotationPresent(Remotable.class) || i.isAnnotationPresent(WebService.class)) {
addService(type, i);
}
}
diff --git a/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java b/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java
index 78963f5b03..6854acdc2a 100644
--- a/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java
+++ b/branches/sca-java-1.3.2/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java
@@ -28,6 +28,8 @@ import java.util.ArrayList;
import java.util.Set;
import java.util.logging.Logger;
+import javax.jws.WebService;
+
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.implementation.java.IntrospectionException;
@@ -64,7 +66,10 @@ public class ServiceProcessor extends BaseJavaClassVisitor {
// scan interfaces for remotable
Set<Class> interfaces = getAllInterfaces(clazz);
for (Class<?> interfaze : interfaces) {
- if (interfaze.isAnnotationPresent(Remotable.class) || interfaze.isAnnotationPresent(Callback.class)) {
+ if (interfaze.isAnnotationPresent(Remotable.class)
+ || interfaze.isAnnotationPresent(WebService.class)
+ || interfaze.isAnnotationPresent(Callback.class)
+ ) {
Service service;
try {
service = createService(interfaze);
diff --git a/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java b/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java
index 50a221722f..ff267cd938 100644
--- a/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java
+++ b/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java
@@ -22,6 +22,7 @@ import java.lang.reflect.Constructor;
import java.util.Collection;
import java.util.List;
+import javax.jws.WebService;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
@@ -268,6 +269,17 @@ public class HeuristicPojoProcessorTestCase extends AbstractProcessorTest {
assertTrue(type.getPropertyMembers().containsKey("gen4"));
}
+ /**
+ * Interfaces with "@WebService" annotation implemented by the class should result
+ * in a Service in the same manner as an "@Remotable" annotation would.
+ */
+ public void testInterfaceWithWebServiceAnnotation() throws Exception{
+ JavaImplementation type = javaImplementationFactory.createJavaImplementation();
+ visitEnd(SomeWebServiceImpl.class, type);
+ assertEquals(1, type.getServices().size());
+ assertEquals("SomeWebService", type.getServices().get(0).getName());
+ }
+
@Remotable
private interface ReferenceRemotableInterface {
void operation1(String param1);
@@ -532,4 +544,19 @@ public class HeuristicPojoProcessorTestCase extends AbstractProcessorTest {
}
+ @WebService
+ private interface SomeWebService {
+ void serviceOperation1();
+ }
+
+ @Service
+ private static class SomeWebServiceImpl implements SomeWebService {
+ public SomeWebServiceImpl() {
+
+ }
+
+ public void serviceOperation1() {
+ }
+ }
+
}
diff --git a/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java b/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java
index ef4747f43a..aea90aa6eb 100644
--- a/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java
+++ b/branches/sca-java-1.3.2/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.sca.implementation.java.introspect.impl;
+import javax.jws.WebService;
+
import junit.framework.TestCase;
import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
@@ -65,6 +67,12 @@ public class ServiceProcessorTestCase extends TestCase {
assertEquals(1, type.getServices().size());
}
+
+ public void testMultipleWithWebServiceAnnotation() throws Exception {
+ processor.visitClass(FooMultipleWithWebService.class, type);
+ assertEquals(2, type.getServices().size());
+ }
+
public void testRemotableNoService() throws Exception {
processor.visitClass(FooRemotableNoService.class, type);
assertEquals(1, type.getServices().size());
@@ -102,6 +110,10 @@ public class ServiceProcessorTestCase extends TestCase {
private interface Bar2 {
}
+
+ @WebService
+ private interface Bar3 {
+ }
@Remotable
private interface BazRemotable {
@@ -124,7 +136,10 @@ public class ServiceProcessorTestCase extends TestCase {
private class FooMultipleWithCalback implements Baz, Bar {
}
-
+
+ private class FooMultipleWithWebService implements BazRemotable, Bar3 {
+ }
+
private class FooRemotableNoService implements BazRemotable, Bar {
}