Author: mmerz Date: Fri Jan 7 17:06:30 2005 New Revision: 124596 URL: http://svn.apache.org/viewcvs?view=rev&rev=124596 Log: Cleaned up serialization of object models.
Modified: incubator/beehive/trunk/wsm/drt/build.xml incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java Modified: incubator/beehive/trunk/wsm/drt/build.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/build.xml?view=diff&rev=124596&p1=incubator/beehive/trunk/wsm/drt/build.xml&r1=124595&p2=incubator/beehive/trunk/wsm/drt/build.xml&r2=124596 ============================================================================== --- incubator/beehive/trunk/wsm/drt/build.xml (original) +++ incubator/beehive/trunk/wsm/drt/build.xml Fri Jan 7 17:06:30 2005 @@ -1,4 +1,5 @@ <?xml version="1.0" ?> + <project name="wsmdrt" default="drt"> <property environment="os"/> @@ -50,7 +51,6 @@ <target name="usage"> <echo message=""/> <echo message=""/> - <echo message="wsm drt"/> <echo message="================================================================"/> <echo message="| Usage |"/> <echo message="================================================================"/> @@ -128,7 +128,6 @@ </target> <target name="xbean"> - <!-- XMLBean build --> <taskdef name="xmlbeanbuild" classname="org.apache.xmlbeans.impl.tool.XMLBean"> <classpath> <path refid="drt.classpath"/> Modified: incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java?view=diff&rev=124596&p1=incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java&r1=124595&p2=incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java&r2=124596 ============================================================================== --- incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java (original) +++ incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessorTest.java Fri Jan 7 17:06:30 2005 @@ -50,7 +50,8 @@ */ public class XmlBeanWSDLProcessorTest extends TestCase { - private static final String BEEHIVE_HOME = System.getenv("BEEHIVE_HOME"); + private static final String BEEHIVE_HOME = System.getenv("BEEHIVE_HOME"); // todo: needs to go -- the build process has been updated, BEEHIVE_HOME obsoleted + private static final String CLASSNAME = "org.apache.beehive.wsm.jsr181.wsdl.StarWars"; Jsr181TypeMetadata serverModel; Jsr181TypeMetadata clientModel; @@ -59,9 +60,7 @@ File f = new File(BEEHIVE_HOME, "wsm/drt/tests/schemas/starwars.wsdl"); -// serverModel = (Jsr181TypeMetadata)WsmReflectionAnnotationProcessor -// .getInstance().getObjectModel(StarWars.class); - Class clazz = Class.forName("org.apache.beehive.wsm.jsr181.wsdl.StarWars"); + Class clazz = Class.forName(CLASSNAME); serverModel = Jsr181TypeMetadataImpl.load(clazz); XmlBeanWSDLProcessor xbwp = new XmlBeanWSDLProcessor(); Modified: incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java?view=diff&rev=124596&p1=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java&r1=124595&p2=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java&r2=124596 ============================================================================== --- incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java (original) +++ incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/model/Jsr181TypeMetadataImpl.java Fri Jan 7 17:06:30 2005 @@ -18,6 +18,7 @@ * $Header:$Factory */ +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; @@ -441,204 +442,6 @@ // empty } - /** - * Validate this (concrete) object model against contract (service endpoint - * interface): - * - If a service endpoint interface is referred, check if all declared - * methods are implemented by implementation bean - * - * Note that this can only be called for concrete object models! - * @throws ValidationException - * - * todo: store conrete object model in instance - public void validate() throws ValidationException { - // check if we have a service endpoint interface - String endpointInterface = getServiceEndpointInterface().trim(); - if (null == endpointInterface && 0 >= endpointInterface.length()) { - return; - } - - // load abstract object model - Jsr181TypeMetadataImpl aom = null; - try { - aom = (Jsr181TypeMetadataImpl) load(endpointInterface); - } - catch (IOException e) { - throw new ValidationException("Cannot load abstract object model: " + endpointInterface); - } - catch (ClassNotFoundException e) { - throw new ValidationException("Cannot load abstract object model: " + endpointInterface); - } - if (null == aom) { - throw new ValidationException("Cannot load abstract object model: " + endpointInterface); - } - - // check if all methods declared in the contract are implemented - for (Jsr181MethodMetadata aomMethod : aom.getMethods()) { - boolean foundImplementation = false; - for (Jsr181MethodMetadata myMethod : methodMap.values()) { - if (myMethod.equals(aomMethod)) { - foundImplementation = true; - break; - } - } - if (! foundImplementation) { - throw new ValidationException("Method not implemented by " + wsServiceName + ": " + aomMethod); - } - } - } - */ - - /** - * Verifies duplicated methods in object model. - * - * When a object model is created from the class having the following combinations - * of methods, duplicated methods will appear in the object model. - * Thus, we gotta prevent it. - * - * -------------------------------- - * @WebMethod(operationName = "Ope") - * @WebResult - * public boolean getNutty(int a); - * - * @WebMethod(operationName = "Ope") - * @WebResult - * public boolean getHome(int a); - * -------------------------------- - * or - * -------------------------------- - * @WebMethod(operationName = "Ope") - * @WebResult - * public boolean getNutty(int a); - * - * @WebMethod - * @WebResult - * public boolean Ope(int a); - * -------------------------------- - * - * - * Need better name of this method ... - private void validateDuplicatedMethods () throws ValidationException - { - Jsr181MethodMetadata[] methods = getMethods().toArray(new Jsr181MethodMetadata[]{}); - for ( int i = 0 ; i < methods.length ; i++ ) - { - Jsr181MethodMetadata method = methods[i]; - String methodName = method.getWmOperationName(); - for ( int k = 0 ; k < methods.length ; k++ ) - { - if ( i != k ) { // skip the same method. - - Jsr181MethodMetadata method_ = methods[k]; - if ( methodName.equals( method_.getWmOperationName() ) ) - { - // Found the duplicated method's name ! - // make sure just an overloading method or duplicated method signature. - - if ( hasSameParameterTypes ( method, method_ ) ) - { - if (0 < seiClassName.length()) - { - throw new ValidationException("There're duplicated operationName ( " - + method.getWmOperationName() + " ) of methods, ( " - + method.getJavaMethodName() + " ) and ( " - + method_.getJavaMethodName() + " ) , in class ( " - + seiClassName + " ) " + i + " != " + k ); - } - else - { - throw new ValidationException("There're duplicated operationName ( " - + method.getWmOperationName() + " ) of methods, ( " - + method.getJavaMethodName() + " ) and ( " - + method_.getJavaMethodName() + " ) , in class ( " - + sibClassName + " )" ); - } - } - } - } - } - } - } - */ - - /** - * Checks the specified two methods has same paramater types. - * - * @param m1 - * @param m2 - * @return boolean - private boolean hasSameParameterTypes ( Jsr181MethodMetadata m1, Jsr181MethodMetadata m2 ) - { - - Jsr181ParameterMetadata[] params1 = m1.getParams().toArray( new Jsr181ParameterMetadata[]{} ); - Jsr181ParameterMetadata[] params2 = m2.getParams().toArray( new Jsr181ParameterMetadata[]{} ); - - // check number of parameters. - if ( params1.length != params2.length ) - { - return false; - } - - for ( int i = 0 ; i < params1.length ; i++ ) - { - if ( params1[i].getJavaType() != params2[i].getJavaType() ) - { - return false; - } - } - - return true; - } - */ - - /** - * Compares the signature of specified methods. - * - * @param m - * @return - private boolean doesImplement(Class sibClass, Method m) { - if (null == m) { - return false; - } - - // search methods - boolean found = false; - for (Method _m : sibClass.getMethods()) { - // compare java method names; todo should this be the action/operation name instead? - if (!m.getName().equals(_m.getName())) { - continue; - } - - // compare return types - if (!m.getReturnType().equals(_m.getReturnType())) { - continue; - } - Type[] mTypes = m.getParameterTypes(); - Type[] _mTypes = _m.getParameterTypes(); - - // compare number of arguments - if (mTypes.length != _mTypes.length) { - continue; - } - - // compare argument types - boolean isEqual = true; - for (int i = 0; i < mTypes.length; i++) { - if (!mTypes[i].equals(_mTypes[i])) { - isEqual = false; - break; - } - } - if (isEqual) { - found = true; - break; - } - } - return found; - } - */ - - public DefinitionsDocument getWSDLAsDocument() throws IOException, XmlException { @@ -649,7 +452,6 @@ return null; } - /** * @return Returns the hcFileName. */ @@ -946,10 +748,19 @@ } /** + * Encapsulates the encoding of the pathname for object models. + * @param + * @return + */ + public static File getLocation(String className) { + return new File("models", className + ".ser"); + } + + /** * @param clazz */ public static Jsr181TypeMetadata load(Class clazz) throws IOException, ClassNotFoundException { - return load(clazz.getClassLoader().getResourceAsStream(clazz.getName() + ".ser")); + return load(clazz.getClassLoader().getResourceAsStream(getLocation(clazz.getName()).toString())); } /** Modified: incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java?view=diff&rev=124596&p1=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java&r1=124595&p2=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java&r2=124596 ============================================================================== --- incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java (original) +++ incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java Fri Jan 7 17:06:30 2005 @@ -116,8 +116,7 @@ if (null != endpointInterface && 0 < endpointInterface.length()) { // get object model for service endpoint interface - // todo: ".ser" needs to move into Jsr181TypeMetadataImpl - om = Jsr181TypeMetadataImpl.load(getClass().getClassLoader().getResourceAsStream(endpointInterface + ".ser")); + om = Jsr181TypeMetadataImpl.load(getClass().getClassLoader().getResourceAsStream(Jsr181TypeMetadataImpl.getLocation(endpointInterface).toString())); if (null == om) { messager.printError(classDecl.getPosition(), "cannot find service endpoint interface: " + endpointInterface); } @@ -137,8 +136,7 @@ // store the object model if (null != om) { - // todo: ".ser" needs to move into Jsr181TypeMetadataImpl - Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE, "", new File(classDecl.getQualifiedName() + ".ser")), om); + Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE, "", Jsr181TypeMetadataImpl.getLocation(classDecl.getQualifiedName())), om); } } @@ -153,8 +151,7 @@ // store the object model if (null != om) { - // todo: ".ser" needs to move into Jsr181TypeMetadataImpl - Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE, "", new File(interfaceDecl.getQualifiedName() + ".ser")), om); + Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE, "", Jsr181TypeMetadataImpl.getLocation(interfaceDecl.getQualifiedName())), om); } }
