diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-10-04 14:45:31 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-10-04 14:45:31 +0000 |
commit | fdeb31bbf8fe1d887ab47e6204952b8e118ab1ef (patch) | |
tree | e70013b67c533219aa45b2ff0a0d2bf64e24b7e7 /sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs | |
parent | 56f0d297c6eba38d5187431ed9319a97ff5d6094 (diff) |
Renaming 2.0-M5.1 releasi cadidate release tag
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1004266 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs')
15 files changed, 0 insertions, 1293 deletions
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/LICENSE b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/LICENSE deleted file mode 100644 index 8aa906c321..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/LICENSE +++ /dev/null @@ -1,205 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - - - diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/META-INF/MANIFEST.MF b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/META-INF/MANIFEST.MF deleted file mode 100644 index f45e70ad23..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.interfacedef.java.jaxrs;version="2.0.0"
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany Java Interface for JAX-RS
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany Java Interface for JAXWS
-Bundle-SymbolicName: org.apache.tuscany.sca.interface.java.jaxrs
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 -Import-Package: javax.ws.rs,
- org.apache.tuscany.sca.interfacedef,
- org.apache.tuscany.sca.interfacedef.java,
- org.apache.tuscany.sca.interfacedef.java.impl,
- org.apache.tuscany.sca.interfacedef.java.introspect,
- org.objectweb.asm;version="3.1.0"
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/NOTICE b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/NOTICE deleted file mode 100644 index ad2ba40961..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/NOTICE +++ /dev/null @@ -1,6 +0,0 @@ -${pom.name} -Copyright (c) 2005 - 2010 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/pom.xml b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/pom.xml deleted file mode 100644 index 4ae0881374..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/pom.xml +++ /dev/null @@ -1,64 +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. ---> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-modules</artifactId> - <version>2.0-M5.1</version> - <relativePath>../pom.xml</relativePath> - </parent> - <artifactId>tuscany-interface-java-jaxrs</artifactId> - <name>Apache Tuscany SCA Interface Java For JAX_RS</name> - - <dependencies> - <dependency> - <groupId>javax.ws.rs</groupId> - <artifactId>jsr311-api</artifactId> - <version>1.1</version> - </dependency> - - <dependency> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-core-spi</artifactId> - <version>2.0-M5.1</version> - </dependency> - - <dependency> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-interface-java</artifactId> - <version>2.0-M5.1</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.8.1</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>3.1</version> - <type>jar</type> - <scope>compile</scope> - </dependency> - </dependencies> -</project> diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/CodeGenerationHelper.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/CodeGenerationHelper.java deleted file mode 100644 index 9fffd93dca..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/CodeGenerationHelper.java +++ /dev/null @@ -1,280 +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.reflect.Array; -import java.lang.reflect.GenericArrayType; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.lang.reflect.TypeVariable; -import java.lang.reflect.WildcardType; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.objectweb.asm.Opcodes; - -/** - * @version $Rev: 673298 $ $Date: 2008-07-01 23:47:40 -0700 (Tue, 01 Jul 2008) $ - */ -public class CodeGenerationHelper { - /** - * @param type - * @return - */ - public static Class<?> getErasure(Type type) { - if (type instanceof Class) { - return (Class<?>)type; - } else if (type instanceof GenericArrayType) { - GenericArrayType arrayType = (GenericArrayType)type; - Class<?> componentType = getErasure(arrayType.getGenericComponentType()); - return Array.newInstance(componentType, 0).getClass(); - } else if (type instanceof ParameterizedType) { - ParameterizedType pType = (ParameterizedType)type; - return getErasure(pType.getRawType()); - } else if (type instanceof WildcardType) { - WildcardType wType = (WildcardType)type; - Type[] types = wType.getUpperBounds(); - if (types.length == 0) { - return Object.class; - } - return getErasure(types[0]); - } else if (type instanceof TypeVariable) { - TypeVariable<?> var = (TypeVariable<?>)type; - Type[] types = var.getBounds(); - if (types.length == 0) { - return Object.class; - } - return getErasure(types[0]); - } - return null; - } - - /** - * @param type - * @return - */ - public static String getJAXWSSignature(Type type) { - Class<?> cls = getErasure(type); - if (Collection.class.isAssignableFrom(cls) && (type instanceof ParameterizedType)) { - ParameterizedType pType = (ParameterizedType)type; - Type p = pType.getActualTypeArguments()[0]; - StringBuffer sb = new StringBuffer(); - sb.append(getSignature(cls)); - sb.deleteCharAt(sb.length() - 1); // Remove ; - sb.append('<').append(getSignature(getErasure(p))).append(">;"); - return sb.toString(); - } else if (Map.class.isAssignableFrom(cls) && (type instanceof ParameterizedType)) { - ParameterizedType pType = (ParameterizedType)type; - Type key = pType.getActualTypeArguments()[0]; - Type value = pType.getActualTypeArguments()[1]; - StringBuffer sb = new StringBuffer(); - sb.append(getSignature(cls)); - sb.deleteCharAt(sb.length() - 1); // Remove ; - sb.append('<').append(getSignature(getErasure(key))).append(getSignature(getErasure(value))).append(">;"); - return sb.toString(); - } else { - return getSignature(cls); - } - } - - /** - * @param type - * @return - */ - public static String getSignature(Type type) { - if (!(type instanceof Class)) { - if (type instanceof ParameterizedType) { - ParameterizedType pType = (ParameterizedType)type; - StringBuffer sb = new StringBuffer(); - String rawType = getSignature(pType.getRawType()); - sb.append(rawType.substring(0, rawType.length() - 1)); - sb.append('<'); - for (Type t : pType.getActualTypeArguments()) { - String argType = getSignature(t); - sb.append(argType); - } - sb.append('>'); - sb.append(rawType.substring(rawType.length() - 1)); - return sb.toString(); - } - if (type instanceof TypeVariable) { - return "T" + ((TypeVariable<?>)type).getName() + ";"; - } - if (type instanceof GenericArrayType) { - GenericArrayType arrayType = (GenericArrayType)type; - return "[" + getSignature(arrayType.getGenericComponentType()); - } - if (type instanceof WildcardType) { - WildcardType wType = (WildcardType)type; - Type[] types = wType.getUpperBounds(); - StringBuffer sb = new StringBuffer(); - if (types.length == 0 || !(types.length == 1 && types[0] == Object.class)) { - sb.append('+'); - for (Type t : types) { - sb.append(getSignature(t)); - } - } - types = wType.getLowerBounds(); - if (types.length != 0) { - sb.append('-'); - for (Type t : wType.getLowerBounds()) { - sb.append(getSignature(t)); - } - } - if (sb.length() == 0) { - return "*"; - } - return sb.toString(); - } - } - Class<?> cls = (Class<?>)type; - return org.objectweb.asm.Type.getDescriptor(cls); - } - - /** - * Get the actual type arguments a child class has used to extend a generic base class. - * - * @param baseClass the base class - * @param childClass the child class - * @return a list of the raw classes for the actual type arguments. - */ - public static <T> List<Class<?>> resovleTypeArguments(Class<T> baseClass, Class<? extends T> childClass) { - Map<Type, Type> resolvedTypes = new HashMap<Type, Type>(); - Type type = childClass; - // start walking up the inheritance hierarchy until we hit baseClass - while (!getErasure(type).equals(baseClass)) { - if (type instanceof Class) { - // there is no useful information for us in raw types, so just keep going. - type = ((Class<?>)type).getGenericSuperclass(); - } else { - ParameterizedType parameterizedType = (ParameterizedType)type; - Class<?> rawType = getErasure(parameterizedType.getRawType()); - - Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); - TypeVariable<?>[] typeParameters = rawType.getTypeParameters(); - for (int i = 0; i < actualTypeArguments.length; i++) { - resolvedTypes.put(typeParameters[i], actualTypeArguments[i]); - } - - if (!rawType.equals(baseClass)) { - type = rawType.getGenericSuperclass(); - } - } - } - - // finally, for each actual type argument provided to baseClass, determine (if possible) - // the raw class for that type argument. - Type[] actualTypeArguments; - if (type instanceof Class) { - actualTypeArguments = ((Class<?>)type).getTypeParameters(); - } else { - actualTypeArguments = ((ParameterizedType)type).getActualTypeArguments(); - } - List<Class<?>> typeArgumentsAsClasses = new ArrayList<Class<?>>(); - // resolve types by chasing down type variables. - for (Type baseType : actualTypeArguments) { - while (resolvedTypes.containsKey(baseType)) { - baseType = resolvedTypes.get(baseType); - } - typeArgumentsAsClasses.add(getErasure(baseType)); - } - return typeArgumentsAsClasses; - } - - /* - signatures.put(boolean.class, "Z"); - signatures.put(byte.class, "B"); - signatures.put(char.class, "C"); - signatures.put(short.class, "S"); - signatures.put(int.class, "I"); - signatures.put(long.class, "J"); - signatures.put(float.class, "F"); - signatures.put(double.class, "D"); - */ - public static int getLoadOPCode(String signature) { - if ("Z".equals(signature) || "B".equals(signature) - || "C".equals(signature) - || "S".equals(signature) - || "I".equals(signature)) { - return Opcodes.ILOAD; - } - - if ("J".equals(signature)) { - return Opcodes.LLOAD; - } - - if ("F".equals(signature)) { - return Opcodes.FLOAD; - } - - if ("D".equals(signature)) { - return Opcodes.DLOAD; - } - - return Opcodes.ALOAD; - - } - - public static int getReturnOPCode(String signature) { - if ("Z".equals(signature) || "B".equals(signature) - || "C".equals(signature) - || "S".equals(signature) - || "I".equals(signature)) { - return Opcodes.IRETURN; - } - - if ("J".equals(signature)) { - return Opcodes.LRETURN; - } - - if ("F".equals(signature)) { - return Opcodes.FRETURN; - } - - if ("D".equals(signature)) { - return Opcodes.DRETURN; - } - if ("V".equals(signature)) { - return Opcodes.RETURN; - } - - return Opcodes.ARETURN; - - } - - /** - * Get the package prefix for generated JAXWS artifacts - * @param cls - * @return - */ - public static String getPackagePrefix(Class<?> cls) { - String name = cls.getName(); - int index = name.lastIndexOf('.'); - if (index == -1) { - return "jaxws."; - } else { - return name.substring(0, index) + ".jaxws."; - } - } - -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/GeneratedClassLoader.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/GeneratedClassLoader.java deleted file mode 100644 index b679f34835..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/GeneratedClassLoader.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.jaxrs; - -import java.net.URL; -import java.net.URLClassLoader; -import java.util.HashMap; -import java.util.Map; - -public class GeneratedClassLoader extends URLClassLoader { - private class GeneratedClass { - private String className; - private byte[] byteCode; - private Class<?> cls; - - public GeneratedClass(String className, byte[] byteCode) { - super(); - this.className = className; - this.byteCode = byteCode; - } - - public synchronized Class<?> getGeneratedClass() { - if (cls == null) { - cls = defineClass(className, byteCode, 0, byteCode.length); - } - return cls; - } - } - - private Map<String, GeneratedClass> generatedClasses = new HashMap<String, GeneratedClass>(); - - public GeneratedClassLoader(ClassLoader parentLoader) { - super(new URL[0], parentLoader); - } - - @Override - protected Class<?> findClass(String className) throws ClassNotFoundException { - GeneratedClass cls = generatedClasses.get(className); - if (cls != null) { - return cls.getGeneratedClass(); - } - return super.findClass(className); - } - - public synchronized Class<?> getGeneratedClass(String className, byte[] byteCode) { - GeneratedClass cls = generatedClasses.get(className); - if (cls == null) { - cls = new GeneratedClass(className, byteCode); - generatedClasses.put(className, cls); - } - return cls.getGeneratedClass(); - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java deleted file mode 100644 index 71683ba2c4..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java +++ /dev/null @@ -1,111 +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.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; - HttpMethod httpMethod = method.getAnnotation(HttpMethod.class); - if (httpMethod != null) { - methodName = httpMethod.value(); - } - if (method.isAnnotationPresent(GET.class)) { - methodName = HttpMethod.GET; - } else if (method.isAnnotationPresent(POST.class)) { - methodName = HttpMethod.POST; - } else if (method.isAnnotationPresent(PUT.class)) { - methodName = HttpMethod.PUT; - } else if (method.isAnnotationPresent(DELETE.class)) { - methodName = HttpMethod.DELETE; - } else if (method.isAnnotationPresent(HEAD.class)) { - methodName = HttpMethod.HEAD; - } else if (method.isAnnotationPresent(OPTIONS.class)) { - methodName = HttpMethod.OPTIONS; - } - - 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); - } - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java deleted file mode 100644 index 969efeb4f1..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java +++ /dev/null @@ -1,214 +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.reflect.Field; -import java.lang.reflect.Method; - -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.HEAD; - -import org.objectweb.asm.AnnotationVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.FieldVisitor; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.Type; - -public class RootResourceClassGenerator implements Opcodes { - - private static final String DELEGATE_FIELD = "delegate"; - - public static Class<?> generateRootResourceClass(Class<?> interfaze, String path, String consumes, String produces) - throws Exception { - if (!interfaze.isInterface()) { - throw new IllegalArgumentException(interfaze + " is not an interface."); - } - GeneratedClassLoader classLoader = new GeneratedClassLoader(interfaze.getClassLoader()); - String interfaceName = interfaze.getName(); - int index = interfaze.getName().lastIndexOf('.'); - String className = - interfaceName.substring(0, index) + ".Generated" + interfaceName.substring(index + 1) + "Impl"; - - byte[] content = generate(interfaze, path, consumes, produces); - Class<?> cls = classLoader.getGeneratedClass(className, content); - return cls; - } - - public static void injectProxy(Class<?> generatedResourceClass, Object proxy) throws Exception { - Field field = generatedResourceClass.getField("delegate"); - field.set(null, proxy); - } - - public static byte[] generate(Class<?> interfaze, String path, String consumes, String produces) throws Exception { - String interfaceName = Type.getInternalName(interfaze); - int index = interfaceName.lastIndexOf('/'); - String className = - interfaceName.substring(0, index) + "/Generated" + interfaceName.substring(index + 1) + "Impl"; - - ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); - - declareClass(cw, interfaceName, className); - - annotatePath(cw, path); - annotateContentTypes(cw, consumes, produces); - declareField(cw, interfaceName); - declareConstructor(cw, className); - - for (Method method : interfaze.getMethods()) { - if (!(method.getDeclaringClass() == Object.class)) { - generateMethod(cw, interfaceName, className, method, consumes, produces); - } - } - cw.visitEnd(); - - return cw.toByteArray(); - } - - // public <ReturnType> method(<Type0> arg0, ..., <TypeN> argN) throws <ExpectionType0>, ..., <ExceptionTypeK> - private static void generateMethod(ClassWriter cw, - String interfaceName, - String className, - Method method, - String consumes, - String produces) { - String methodDescriptor = Type.getMethodDescriptor(method); - - MethodVisitor mv = - cw.visitMethod(ACC_PUBLIC, method.getName(), methodDescriptor, null, getExceptionInternalNames(method)); - - mv.visitCode(); - mv.visitFieldInsn(GETSTATIC, className, DELEGATE_FIELD, getSignature(interfaceName)); - Class<?>[] paramTypes = method.getParameterTypes(); - for (int i = 0; i < paramTypes.length; i++) { - String signature = Type.getDescriptor(paramTypes[i]); - mv.visitVarInsn(CodeGenerationHelper.getLoadOPCode(signature), i + 1); - } - mv.visitMethodInsn(INVOKEINTERFACE, interfaceName, method.getName(), methodDescriptor); - - Class<?> returnType = method.getReturnType(); - mv.visitInsn(CodeGenerationHelper.getReturnOPCode(Type.getDescriptor(returnType))); - int size = paramTypes.length + 1; - mv.visitMaxs(size, size); - mv.visitEnd(); - } - - private static String[] getExceptionInternalNames(Method method) { - Class<?>[] types = method.getExceptionTypes(); - if (types.length == 0) { - return null; - } - String[] names = new String[types.length]; - for (int i = 0; i < types.length; i++) { - names[i] = Type.getInternalName(types[i]); - } - return names; - } - - private static String getSignature(String interfaceName) { - return "L" + interfaceName + ";"; - } - - private static void declareConstructor(ClassWriter cw, String className) { - MethodVisitor mv; - mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - // mv.visitLineNumber(37, l0); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); - mv.visitInsn(RETURN); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLocalVariable("this", getSignature(className), null, l0, l1, 0); - mv.visitMaxs(1, 1); - mv.visitEnd(); - } - - // public static <Interface> delegate; - private static void declareField(ClassWriter cw, String interfaceName) { - FieldVisitor fv = - cw.visitField(ACC_PUBLIC + ACC_STATIC, DELEGATE_FIELD, getSignature(interfaceName), null, null); - fv.visitEnd(); - } - - // public class _<Interface>Impl implements <Interface> - private static void declareClass(ClassWriter cw, String interfaceName, String className) { - cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, className, null, "java/lang/Object", new String[] {interfaceName}); - } - - // @Path(<path>) - private static void annotatePath(ClassWriter cw, String path) { - AnnotationVisitor av = cw.visitAnnotation("Ljavax/ws/rs/Path;", true); - av.visit("value", path); - av.visitEnd(); - } - - // @Consumes(<contentTypes>) - // @Provides(<contentTypes>) - private static void annotateContentTypes(ClassWriter cw, String consumes, String produces) { - AnnotationVisitor av = null; - if (consumes != null) { - av = cw.visitAnnotation("Ljavax/ws/rs/Consumes;", true); - AnnotationVisitor av1 = av.visitArray("value"); - for (String s : consumes.split("(,| )")) { - av1.visit(null, s.trim()); - } - av1.visitEnd(); - av.visitEnd(); - } - if (produces != null) { - av = cw.visitAnnotation("Ljavax/ws/rs/Produces;", true); - AnnotationVisitor av1 = av.visitArray("value"); - for (String s : produces.split("(,| )")) { - av1.visit(null, s.trim()); - } - av1.visitEnd(); - av.visitEnd(); - } - } - - // @Consumes(<contentTypes>) - // @Provides(<contentTypes>) - private static void annotateContentTypes(MethodVisitor mv, String consumes, String produces) { - AnnotationVisitor av = null; - if (consumes != null) { - av = mv.visitAnnotation("Ljavax/ws/rs/Consumes;", true); - AnnotationVisitor av1 = av.visitArray("value"); - for (String s : consumes.split("(,| )")) { - av1.visit(null, s.trim()); - } - av1.visitEnd(); - av.visitEnd(); - } - if (produces != null) { - av = mv.visitAnnotation("Ljavax/ws/rs/Produces;", true); - AnnotationVisitor av1 = av.visitArray("value"); - for (String s : produces.split("(,| )")) { - av1.visit(null, s.trim()); - } - av1.visitEnd(); - av.visitEnd(); - } - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor deleted file mode 100644 index 9101d744b3..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor +++ /dev/null @@ -1,17 +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.jaxrs.JAXRSJavaInterfaceProcessor;ranking=100
diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Bean.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Bean.java deleted file mode 100644 index 20a4276b8b..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Bean.java +++ /dev/null @@ -1,31 +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 javax.ws.rs.GET; - -import org.oasisopen.sca.annotation.Remotable; - -@Remotable -public interface Bean { - - @GET - String[] get(); -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSInterfaceProcessorTestCase.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSInterfaceProcessorTestCase.java deleted file mode 100644 index b680eaa491..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSInterfaceProcessorTestCase.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.tuscany.sca.interfacedef.java.jaxrs; -/* - * 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. - */ - - -import static org.junit.Assert.assertTrue; - -import java.util.List; - -import javax.ws.rs.GET; - -import junit.framework.Assert; - -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -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.junit.Before; -import org.junit.Test; - - -public class JAXRSInterfaceProcessorTestCase { - private ExtensionPointRegistry registry; - - @Before - public void setUp() throws Exception { - registry = new DefaultExtensionPointRegistry(); - } - - @Test - public final void testProcessor() throws Exception { - DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(registry); - JavaInterface contract = iFactory.createJavaInterface(Bean.class); - - assertTrue(contract.isRemotable()); - - Assert.assertEquals(1,contract.getOperations().size()); - - List<Operation> getOperations = (List<Operation>) contract.getAttributes().get(GET.class); - Assert.assertEquals(1,getOperations.size()); - - //list operation - System.out.println(">>> JAX-RS Operations"); - for(Operation o : contract.getOperations()) { - System.out.println(">>>>>>" + o); - } - - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java deleted file mode 100644 index 46d501d4be..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java +++ /dev/null @@ -1,44 +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; - -public class MockedResource implements Resource { - private String value; - - public MockedResource() { - super(); - } - - public String get() { - return value; - } - - public void create(String value) { - this.value = value; - } - - public void delete() { - value = null; - } - - public void update(String value) { - this.value = value; - } -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java deleted file mode 100644 index ac9fd514bd..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java +++ /dev/null @@ -1,44 +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 javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; - -import org.oasisopen.sca.annotation.Remotable; - -@Remotable -public interface Resource { - - @GET - String get(); - - @PUT - void update(String value); - - @POST - void create(String value); - - @DELETE - void delete(); - -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java deleted file mode 100644 index 23b674778e..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java +++ /dev/null @@ -1,54 +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 javax.ws.rs.Consumes; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - - -@Path("myURI") -@Produces({"application/xml", "application/json"}) -@Consumes({"application/xml", "application/json"}) -public class ResourceWrapper implements Resource { - public static Resource delegate; - - public ResourceWrapper() { - super(); - } - - - public String get() { - return delegate.get(); - } - - public void create(String value) { - delegate.create(value); - } - - public void delete() { - delegate.delete(); - } - - public void update(String value) { - delegate.update(value); - } - -} diff --git a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java b/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java deleted file mode 100644 index aa6abcd5f6..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java +++ /dev/null @@ -1,69 +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.reflect.Field; -import java.lang.reflect.Modifier; - -import javax.ws.rs.Consumes; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -import org.junit.Assert; -import org.junit.Test; - -/** - * - */ -public class RootResourceClassGeneratorTestCase { - @Test - public void testGenerator() throws Exception { - Class<?> cls = RootResourceClassGenerator.generateRootResourceClass(Resource.class, "myURI", "application/xml,application/json", "application/xml,application/json"); - Assert.assertTrue(cls.isAnnotationPresent(Path.class)); - Path path = cls.getAnnotation(Path.class); - Assert.assertEquals("myURI", path.value()); - - Produces produces = cls.getAnnotation(Produces.class); - Assert.assertEquals("application/xml", produces.value()[0]); - - Consumes consumes = cls.getAnnotation(Consumes.class); - Assert.assertEquals("application/json", consumes.value()[1]); - - Field field = cls.getField("delegate"); - Assert.assertSame(Resource.class, field.getType()); - - Assert.assertTrue(Modifier.isPublic(field.getModifiers())); - Assert.assertTrue(Modifier.isStatic(field.getModifiers())); - - Assert.assertTrue(Resource.class.isAssignableFrom(cls)); - - Resource resource = new MockedResource(); - field.set(null, resource); - - Resource resourceProxy = (Resource)cls.newInstance(); - Assert.assertNull(resourceProxy.get()); - resourceProxy.create("123"); - Assert.assertEquals("123", resourceProxy.get()); - resourceProxy.update("ABC"); - Assert.assertEquals("ABC", resourceProxy.get()); - resourceProxy.delete(); - Assert.assertNull(resourceProxy.get()); - } -} |