summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2013-10-07 22:23:21 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2013-10-07 22:23:21 +0000
commit5963a2d3d6860fe57afc138f095bf2d2eb5a7b80 (patch)
tree018d3d8c637e265b8292d34e5f7c11ca8ce11b7d /sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java
parent132aa8a77685ec92bc90c03f987650d275a7b639 (diff)
Official Tuscany 2.0.1 Release
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1530096 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java')
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java116
1 files changed, 0 insertions, 116 deletions
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java b/sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java
deleted file mode 100644
index 83f88c98cb..0000000000
--- a/sca-java-2.x/tags/2.0.1-RC1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxrs;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HEAD;
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.OPTIONS;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-
-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;
-
-public class JAXRSJavaInterfaceProcessor implements JavaInterfaceVisitor {
- private static Map<String, Class<?>> mapping = new HashMap<String, Class<?>>();
- static {
- mapping.put(HttpMethod.GET, GET.class);
- mapping.put(HttpMethod.POST, POST.class);
- mapping.put(HttpMethod.PUT, PUT.class);
- mapping.put(HttpMethod.DELETE, DELETE.class);
- mapping.put(HttpMethod.HEAD, HEAD.class);
- mapping.put(HttpMethod.OPTIONS, OPTIONS.class);
- }
-
- private boolean introspectHTTPMethod(JavaOperation operation) {
- Method method = operation.getJavaMethod();
-
- String methodName = null;
-
- /**
- * A request method designator is a runtime annotation that is annotated with the @HttpMethod annotation.
- * JAX-RS defines a set of request method designators for the common HTTP methods: @GET, @POST, @PUT,
- * @DELETE, @HEAD. Users may define their own custom request method designators including alternate
- * designators for the common HTTP methods.
- */
- for (Annotation a : method.getAnnotations()) {
- Class<?> annotationType = a.annotationType();
- if (annotationType == HttpMethod.class) {
- methodName = ((HttpMethod)a).value();
- break;
- }
- // Http method related annotations such as @GET, @POST will have itself annotated with
- // @HttpMethod
- HttpMethod m = a.annotationType().getAnnotation(HttpMethod.class);
- if (m != null) {
- methodName = m.value();
- break;
- }
- }
-
- boolean jaxrs = false;
- Class<?> type = mapping.get(methodName);
- if (type != null) {
- jaxrs = true;
- operation.getAttributes().put(type, Boolean.TRUE);
- Map<Object, Object> attrs = operation.getInterface().getAttributes();
- List<Operation> operations = (List<Operation>)attrs.get(type);
- if (operations == null) {
- operations = new ArrayList<Operation>();
- attrs.put(type, operations);
- operations.add(operation);
- } else {
- operations.add(operation);
- }
- }
-
- return jaxrs;
-
- }
-
- public void visitInterface(JavaInterface contract) throws InvalidInterfaceException {
-
- boolean hasJAXRSAnnotarions = false;
-
- for (Operation op : contract.getOperations()) {
- final JavaOperation operation = (JavaOperation)op;
- if (introspectHTTPMethod(operation)) {
- hasJAXRSAnnotarions = true;
- }
- }
-
- // Always set JAX-RS annotated interfaces as remotables
- if (hasJAXRSAnnotarions) {
- contract.setRemotable(true);
- }
- }
-}