You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by ip...@apache.org on 2005/01/06 22:36:16 UTC

svn commit: r124451 - /incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java /incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java

Author: ips
Date: Thu Jan  6 13:36:14 2005
New Revision: 124451

URL: http://svn.apache.org/viewcvs?view=rev&rev=124451
Log:
now has only one output option (-o)

Modified:
   incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java
   incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java?view=diff&rev=124451&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java&r1=124450&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java&r2=124451
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java	(original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/i18n/Keys.java	Thu Jan  6 13:36:14 2005
@@ -40,7 +40,7 @@
     String RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND";
 
     /**
-     * @msg output directory for generated source files.
+     * @msg Output directory for generated files.
      */
     String OPT_OUTPUT_DIR_FOR_GEN_SRC = "OPT_OUTPUT_DIR_FOR_GEN_SRC";
 
@@ -70,7 +70,7 @@
     String WARN_EMPTY_WSDLS = "WARN_EMPTY_WSDLS";
 
     /**
-     * @msg Calling Wsdl2Java with: {0} wsdl files, {1} src dir, {2} classes dir.
+     * @msg Calling Wsdl2Java with: {0} wsdl files, {1} output dir.
      */
     String WSDL4J_PASSED_ARGUMENTS = "WSDL4J_PASSED_ARGUMENTS";
 

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java?view=diff&rev=124451&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java&r1=124450&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java&r2=124451
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java	(original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java	Thu Jan  6 13:36:14 2005
@@ -41,6 +41,7 @@
 import org.apache.ws.util.i18n.Messages;
 import org.apache.xmlbeans.impl.common.XmlErrorPrinter;
 import org.apache.xmlbeans.impl.tool.SchemaCompiler;
+
 import javax.wsdl.Definition;
 import javax.wsdl.Service;
 import javax.wsdl.factory.WSDLFactory;
@@ -64,655 +65,641 @@
  */
 public class Wsdl2Java
 {
-   private static final Messages MSG = MessagesImpl.getInstance(  );
+    private static final Messages MSG = MessagesImpl.getInstance();
+
+    /**
+     * DOCUMENT_ME
+     */
+    protected static final Options CMD_LINE_OPTIONS = new Options();
+
+    static
+    {
+        initCmdLineOptions();
+    }
 
-   /**
-    * DOCUMENT_ME
-    */
-   protected static final Options CMD_LINE_OPTIONS = new Options(  );
-
-   static
-   {
-      initCmdLineOptions(  );
-   }
-
-   private File[]           m_wsdlFiles;
-   private File             m_srcOutputDir;
-   private File             m_jarOutputDir;
-   private Wsdl2JavaOptions m_options;
-   private Map              m_portTypeInfoMap = new HashMap(  );
-   private File             m_srcXmlBeansDir;
-   private WSDLReader       m_wsdlReader;
-
-    /**
-    * Creates a new {@link Wsdl2Java} object.
-    *
-    * @param wsdlFiles        DOCUMENT_ME
-    * @param srcOutputDir     DOCUMENT_ME
-    * @param classesOutputDir DOCUMENT_ME
-    * @param options          DOCUMENT_ME
-    */
-   public Wsdl2Java( File[]           wsdlFiles,
-                     File             srcOutputDir,
-                     File             classesOutputDir,
-                     Wsdl2JavaOptions options ) throws Exception
-    {
-      m_wsdlFiles = wsdlFiles;
-      if ( m_wsdlFiles.length == 0 )
-      {
-         System.out.println( MSG.getMessage( Keys.WARN_EMPTY_WSDLS ) );
-      }
-      m_srcXmlBeansDir  = new File(srcOutputDir, "xmlbeans");
-      m_srcOutputDir    = new File(srcOutputDir, "java");
-      m_jarOutputDir    = classesOutputDir;
-      m_options         = ( options != null ) ? options : new Wsdl2JavaOptions(  );
-      m_wsdlReader = WSDLFactory.newInstance(  ).newWSDLReader(  );
-      initVelocity(  );
-      initPortTypeInfoMap(  );
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @return DOCUMENT_ME
-    */
-   public File getJarOutputDir(  )
-   {
-      return m_jarOutputDir;
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @return DOCUMENT_ME
-    */
-   public Wsdl2JavaOptions getOptions(  )
-   {
-      return m_options;
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @return DOCUMENT_ME
-    */
-   public File getSrcOutputDir(  )
-   {
-      return m_srcOutputDir;
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @return DOCUMENT_ME
-    */
-   public File[] getWsdlFiles(  )
-   {
-      return m_wsdlFiles;
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @throws Exception DOCUMENT_ME
-    */
-   public void generate(  )
-   throws Exception
-   {
-      for ( int i = 0; i < m_wsdlFiles.length; i++ )
-      {
-          processWsdlFile( m_wsdlFiles[i] );
-      }
-   }
+    private File[] m_wsdlFiles;
+    private Wsdl2JavaOptions m_options;
+    private Map m_portTypeInfoMap = new HashMap();
+    private WSDLReader m_wsdlReader;
+    private File m_outputDir;
+    private File m_javaSrcOutputDir;
+    private File m_xBeanSrcOutputDir;
+    private File m_classesOutputDir;
+    private File m_libOutputDir;
+
+    /**
+     * Creates a new {@link Wsdl2Java} object.
+     *
+     * @param wsdlFiles DOCUMENT_ME
+     * @param outputDir DOCUMENT_ME
+     * @param options   DOCUMENT_ME
+     */
+    public Wsdl2Java( File[] wsdlFiles,
+                      File outputDir,
+                      Wsdl2JavaOptions options ) throws Exception
+    {
+        m_wsdlFiles = wsdlFiles;
+        if ( m_wsdlFiles.length == 0 )
+        {
+            System.out.println( MSG.getMessage( Keys.WARN_EMPTY_WSDLS ) );
+        }
+        m_outputDir = outputDir;
+        m_javaSrcOutputDir = new File( outputDir, "src/java" );
+        m_xBeanSrcOutputDir = new File( outputDir, "src/xmlbeans" );
+        m_classesOutputDir = new File( outputDir, "classes" );
+        m_libOutputDir = new File( outputDir, "lib" );
+        m_options = ( options != null ) ? options : new Wsdl2JavaOptions();
+        m_wsdlReader = WSDLFactory.newInstance().newWSDLReader();
+        initVelocity();
+        initPortTypeInfoMap();
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @return DOCUMENT_ME
+     */
+    public Wsdl2JavaOptions getOptions()
+    {
+        return m_options;
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @return DOCUMENT_ME
+     */
+    public File getOutputDir()
+    {
+        return m_outputDir;
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @return DOCUMENT_ME
+     */
+    public File[] getWsdlFiles()
+    {
+        return m_wsdlFiles;
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @throws Exception DOCUMENT_ME
+     */
+    public void generate()
+            throws Exception
+    {
+        for ( int i = 0; i < m_wsdlFiles.length; i++ )
+        {
+            processWsdlFile( m_wsdlFiles[i] );
+        }
+    }
 
     private void processWsdlFile( File wsdlFile )
             throws Exception
     {
         System.out.println( "Processing WSDL file \"" + wsdlFile + "\"..." );
-        Definition def         = m_wsdlReader.readWSDL( wsdlFile.getPath(  ) );
-        Iterator   serviceIter = def.getServices(  ).values(  ).iterator(  );
-        while ( serviceIter.hasNext(  ) )
-        {
-           Service            service     = (Service) serviceIter.next(  );
-           ResourceDefinition resourceDef = new ResourceDefinitionImpl( def, service );
-           System.out.println( "Processing WSRF service \"" + resourceDef.getName() + "\"..." );
-           processTemplates( resourceDef, wsdlFile );
+        Definition def = m_wsdlReader.readWSDL( wsdlFile.getPath() );
+        Iterator serviceIter = def.getServices().values().iterator();
+        while ( serviceIter.hasNext() )
+        {
+            Service service = (Service) serviceIter.next();
+            ResourceDefinition resourceDef = new ResourceDefinitionImpl( def, service );
+            System.out.println( "Processing WSRF service \"" + resourceDef.getName() + "\"..." );
+            processTemplates( resourceDef, wsdlFile );
         }
         generateXmlBeans( wsdlFile );
     }
 
     /**
-    * DOCUMENT_ME
-    *
-    * @param args DOCUMENT_ME
-    *
-    * @throws ParseException DOCUMENT_ME
-    */
-   public static void main( String[] args )
-   throws ParseException
-   {
-      CommandLine cmdLine = new PosixParser(  ).parse( CMD_LINE_OPTIONS, args, true );
-      checkForRequiredOption( cmdLine, Opts.SRC_OUTPUT_DIR );
-      checkForRequiredOption( cmdLine, Opts.JAR_OUTPUT_DIR );
-      File             srcOutputDir     = new File( cmdLine.getOptionValue( Opts.SRC_OUTPUT_DIR ) );
-      File             classesOutputDir = new File( cmdLine.getOptionValue( Opts.JAR_OUTPUT_DIR ) );
-
-      Wsdl2JavaOptions options = new Wsdl2Java.Wsdl2JavaOptions(  );
-
-      if ( cmdLine.hasOption( Opts.CLASSPATH ) )
-      {
-         options.setClasspath( cmdLine.getOptionValue( Opts.CLASSPATH ) );
-      }
-
-      if ( cmdLine.hasOption( Opts.VERBOSE ) )
-      {
-         options.setVerbose( Boolean.valueOf( cmdLine.getOptionValue( Opts.VERBOSE ) ).booleanValue(  ) );
-      }
-
-      if ( cmdLine.hasOption( Opts.DEBUG ) )
-      {
-         options.setVerbose( Boolean.valueOf( cmdLine.getOptionValue( Opts.DEBUG ) ).booleanValue(  ) );
-      }
-
-      File[] wsdlFiles = new File[cmdLine.getArgs(  ).length];
-      for ( int i = 0; i < cmdLine.getArgs(  ).length; i++ )
-      {
-         wsdlFiles[i] = new File( cmdLine.getArgs(  )[i] );
-      }
-
-      try
-      {
-         System.out.println( MSG.getMessage( Keys.WSDL4J_PASSED_ARGUMENTS,
-                                             Integer.toString( wsdlFiles.length ),
-                                             srcOutputDir.toString(  ),
-                                             classesOutputDir.toString(  ) ) );
-         new Wsdl2Java( wsdlFiles, srcOutputDir, classesOutputDir, options ).generate(  );
-      }
-      catch ( Exception e )
-      {
-         e.printStackTrace(  );
-         System.exit( 1 );
-      }
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @param ptName DOCUMENT_ME
-    *
-    * @return DOCUMENT_ME
-    */
-   protected PortType2JavaInfo getPortType2JavaInfo( QName ptName )
-   {
-      return (PortType2JavaInfo) m_portTypeInfoMap.get( ptName );
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @param ptInfo DOCUMENT_ME
-    */
-   protected void addPortType2JavaInfo( PortType2JavaInfo ptInfo )
-   {
-      m_portTypeInfoMap.put( ptInfo.getName(  ),
-                             ptInfo );
-   }
-
-   private static void checkForRequiredOption( CommandLine cmdLine,
-                                               String      opt )
-   {
-      if ( !cmdLine.hasOption( opt ) )
-      {
-         System.err.println( MSG.getMessage( Keys.OPT_REQUIRED, opt ) );
-         System.exit( 1 );
-      }
-   }
-
-   private static void initCmdLineOptions(  )
-   {
-      CMD_LINE_OPTIONS.addOption( Opts.SRC_OUTPUT_DIR,
-                                  LongOpts.SRC_OUTPUT_DIR,
-                                  true,
-                                  MSG.getMessage( Keys.OPT_OUTPUT_DIR_FOR_GEN_SRC ) );
-      CMD_LINE_OPTIONS.addOption( Opts.JAR_OUTPUT_DIR,
-                                  LongOpts.JAR_OUTPUT_DIR,
-                                  true,
-                                  MSG.getMessage( Keys.OPT_OUTPUT_DIR_FOR_GEN_JAR ) );
-      CMD_LINE_OPTIONS.addOption( Opts.VERBOSE,
-                                  LongOpts.VERBOSE,
-                                  false,
-                                  MSG.getMessage( Keys.OPT_ENABLE_VERBOSE ) );
-      CMD_LINE_OPTIONS.addOption( Opts.DEBUG,
-                                  LongOpts.DEBUG,
-                                  false,
-                                  MSG.getMessage( Keys.OPT_ENABLE_DEBUG ) );
-      CMD_LINE_OPTIONS.addOption( Opts.CLASSPATH,
-                                  LongOpts.CLASSPATH,
-                                  false,
-                                  MSG.getMessage( Keys.OPT_CLASSPATH_SENT_TO_XMLBEANS ) );
-   }
-
-   private String getJarFileName( File wsdlFile )
-   {
-      String wsdlFileName = wsdlFile.getName(  );
-      wsdlFileName    = wsdlFileName.substring( 0,
-                                                wsdlFileName.lastIndexOf( "." ) );
-      wsdlFileName = wsdlFileName + ".jar";
-      return wsdlFileName;
-   }
-
-   private File getPackageDir( String targetNamespace )
-   {
-      String javaPackageName = GenerationUtils.getJavaPackageName( targetNamespace );
-      return new File( m_srcOutputDir,
-                       javaPackageName.replace( '.', '/' ) );
-   }
-
-   private File getTempDir(  )
-   {
-      String userTempDir = System.getProperty( "java.io.tmpdir" );
-      File   userDir = new File( userTempDir );
-      userDir.mkdirs(  );
-      File tempClassesDir = new File( userDir, "tmp" + new Date(  ).getTime(  ) );
-      tempClassesDir.mkdir(  );
-      return tempClassesDir;
-   }
-
-   private ServiceProperties buildServiceProperties( ResourceDefinition resourceDef,
-                                                     String             wsdlFileName )
-   {
-      ServiceProperties props           = new ServiceProperties(  );
-      String            targetNamespace = resourceDef.getDefinition(  ).getTargetNamespace(  );
-      props.setPackageName( GenerationUtils.getJavaPackageName( targetNamespace ) );
-      String serviceName = resourceDef.getName();
-      String upperCaseServiceName = getUpperCaseServiceName(serviceName);
-      props.setServiceName( upperCaseServiceName );
-       props.setJarDir(m_jarOutputDir.getAbsolutePath());
-       props.setSrcDir(m_srcOutputDir.getAbsolutePath());
-       props.setClassesDir(new File(m_srcOutputDir.getParentFile().getParentFile(),"classes").getAbsolutePath());
-      props.setEndpointURL( resourceDef.getEndpointURL());
-      props.setEndpointServiceName(serviceName);
-      props.setServiceImplements( ImplementsListBuilder.getServiceImplementsList( resourceDef, m_portTypeInfoMap ) );
-      props.setNamespace( targetNamespace );
-      props.setPrefix( GenerationUtils.getPrefix( targetNamespace ) );
-      props.setCustomMappings( GenerationUtils.getOperationInfoMap( resourceDef ) );
-      props.setHasProperties(resourceDef.hasProperties());
-      QName[] customPropertyNames = resourceDef.getCustomPropertyNames(  );
-      Map     customPropMap = new HashMap(  );
-      for ( int i = 0; i < customPropertyNames.length; i++ )
-      {
-         QName  customPropertyName = customPropertyNames[i];
-         String propName = customPropertyName.getLocalPart(  ).toUpperCase(  );
-         int    count    = 2;
-         while ( customPropMap.containsKey( propName ) )
-         {
-            propName = propName + count;
-            count++;
-         }
-
-         customPropMap.put( propName, customPropertyName );
-      }
-
-      props.setPropertyMap( customPropMap );
-      props.setResourceImplements( ImplementsListBuilder.getResourceImplementsList( resourceDef, m_portTypeInfoMap ) );
-      props.setPropertyDocumentName( XmlBeanNameUtils.getDocumentElementXmlBeanClassName( resourceDef
-                                                                                          .getPropertiesDocumentName(  ) ) );
-      props.setWsdlName( wsdlFileName );
-
-      props.setResourcekey( new QName( targetNamespace, "ResourceID" ) );
-      Iterator ptNameIter = resourceDef.getImplementedResourceCapabilities(  ).keySet(  ).iterator(  );
-      while ( ptNameIter.hasNext(  ) )
-      {
-         QName             ptName = (QName) ptNameIter.next(  );
-         PortType2JavaInfo ptInfo = (PortType2JavaInfo) m_portTypeInfoMap.get( ptName );
-         if ( ptInfo != null )
-         {
-            if ( ptInfo.getResourceTemplateFileName(  ) != null )
+     * DOCUMENT_ME
+     *
+     * @param args DOCUMENT_ME
+     *
+     * @throws ParseException DOCUMENT_ME
+     */
+    public static void main( String[] args )
+            throws ParseException
+    {
+        CommandLine cmdLine = new PosixParser().parse( CMD_LINE_OPTIONS, args, true );
+        checkForRequiredOption( cmdLine, Opts.OUTPUT_DIR );
+        File outputDir = new File( cmdLine.getOptionValue( Opts.OUTPUT_DIR ) );
+
+        Wsdl2JavaOptions options = new Wsdl2Java.Wsdl2JavaOptions();
+
+        if ( cmdLine.hasOption( Opts.CLASSPATH ) )
+        {
+            options.setClasspath( cmdLine.getOptionValue( Opts.CLASSPATH ) );
+        }
+
+        if ( cmdLine.hasOption( Opts.VERBOSE ) )
+        {
+            options.setVerbose( Boolean.valueOf( cmdLine.getOptionValue( Opts.VERBOSE ) ).booleanValue() );
+        }
+
+        if ( cmdLine.hasOption( Opts.DEBUG ) )
+        {
+            options.setVerbose( Boolean.valueOf( cmdLine.getOptionValue( Opts.DEBUG ) ).booleanValue() );
+        }
+
+        File[] wsdlFiles = new File[cmdLine.getArgs().length];
+        for ( int i = 0; i < cmdLine.getArgs().length; i++ )
+        {
+            wsdlFiles[i] = new File( cmdLine.getArgs()[i] );
+        }
+
+        try
+        {
+            System.out.println( MSG.getMessage( Keys.WSDL4J_PASSED_ARGUMENTS,
+                    Integer.toString( wsdlFiles.length ),
+                    outputDir ) );
+            new Wsdl2Java( wsdlFiles, outputDir, options ).generate();
+        }
+        catch ( Exception e )
+        {
+            e.printStackTrace();
+            System.exit( 1 );
+        }
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @param ptName DOCUMENT_ME
+     *
+     * @return DOCUMENT_ME
+     */
+    protected PortType2JavaInfo getPortType2JavaInfo( QName ptName )
+    {
+        return (PortType2JavaInfo) m_portTypeInfoMap.get( ptName );
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @param ptInfo DOCUMENT_ME
+     */
+    protected void addPortType2JavaInfo( PortType2JavaInfo ptInfo )
+    {
+        m_portTypeInfoMap.put( ptInfo.getName(),
+                ptInfo );
+    }
+
+    private static void checkForRequiredOption( CommandLine cmdLine,
+                                                String opt )
+    {
+        if ( !cmdLine.hasOption( opt ) )
+        {
+            System.err.println( MSG.getMessage( Keys.OPT_REQUIRED, opt ) );
+            System.exit( 1 );
+        }
+    }
+
+    private static void initCmdLineOptions()
+    {
+        CMD_LINE_OPTIONS.addOption( Opts.OUTPUT_DIR,
+                LongOpts.OUTPUT_DIR,
+                true,
+                MSG.getMessage( Keys.OPT_OUTPUT_DIR_FOR_GEN_SRC ) );
+        CMD_LINE_OPTIONS.addOption( Opts.CLASSPATH,
+                LongOpts.CLASSPATH,
+                true,
+                MSG.getMessage( Keys.OPT_CLASSPATH_SENT_TO_XMLBEANS ) );
+        CMD_LINE_OPTIONS.addOption( Opts.VERBOSE,
+                LongOpts.VERBOSE,
+                false,
+                MSG.getMessage( Keys.OPT_ENABLE_VERBOSE ) );
+        CMD_LINE_OPTIONS.addOption( Opts.DEBUG,
+                LongOpts.DEBUG,
+                false,
+                MSG.getMessage( Keys.OPT_ENABLE_DEBUG ) );
+    }
+
+    private String getJarFileName( File wsdlFile )
+    {
+        String wsdlFileName = wsdlFile.getName();
+        String baseName = wsdlFileName.substring( 0, wsdlFileName.lastIndexOf( "." ) );
+        return baseName + "-xbeans.jar";
+    }
+
+    private File getPackageDir( String targetNamespace )
+    {
+        String javaPackageName = GenerationUtils.getJavaPackageName( targetNamespace );
+        return new File( m_javaSrcOutputDir,
+                javaPackageName.replace( '.', '/' ) );
+    }
+
+    private File getTempDir()
+    {
+        String userTempDir = System.getProperty( "java.io.tmpdir" );
+        File userDir = new File( userTempDir );
+        userDir.mkdirs();
+        File tempClassesDir = new File( userDir, "tmp" + new Date().getTime() );
+        tempClassesDir.mkdir();
+        return tempClassesDir;
+    }
+
+    private ServiceProperties buildServiceProperties( ResourceDefinition resourceDef,
+                                                      String wsdlFileName )
+    {
+        ServiceProperties props = new ServiceProperties();
+        String targetNamespace = resourceDef.getDefinition().getTargetNamespace();
+        props.setPackageName( GenerationUtils.getJavaPackageName( targetNamespace ) );
+        String serviceName = resourceDef.getName();
+        String upperCaseServiceName = getUpperCaseServiceName( serviceName );
+        props.setServiceName( upperCaseServiceName );
+        props.setJarDir( m_libOutputDir.getAbsolutePath() );
+        props.setSrcDir( m_javaSrcOutputDir.getAbsolutePath() );
+        props.setClassesDir( m_classesOutputDir.getAbsolutePath() );
+        props.setEndpointURL( resourceDef.getEndpointURL() );
+        props.setEndpointServiceName( serviceName );
+        props.setServiceImplements( ImplementsListBuilder.getServiceImplementsList( resourceDef, m_portTypeInfoMap ) );
+        props.setNamespace( targetNamespace );
+        props.setPrefix( GenerationUtils.getPrefix( targetNamespace ) );
+        props.setCustomMappings( GenerationUtils.getOperationInfoMap( resourceDef ) );
+        props.setHasProperties( resourceDef.hasProperties() );
+        QName[] customPropertyNames = resourceDef.getCustomPropertyNames();
+        Map customPropMap = new HashMap();
+        for ( int i = 0; i < customPropertyNames.length; i++ )
+        {
+            QName customPropertyName = customPropertyNames[i];
+            String propName = customPropertyName.getLocalPart().toUpperCase();
+            int count = 2;
+            while ( customPropMap.containsKey( propName ) )
             {
-               props.addResourceIncludeFile( ptInfo.getResourceTemplateFileName(  ) );
+                propName = propName + count;
+                count++;
             }
 
-            if ( ptInfo.getServiceTemplateFileName(  ) != null )
+            customPropMap.put( propName, customPropertyName );
+        }
+
+        props.setPropertyMap( customPropMap );
+        props.setResourceImplements( ImplementsListBuilder.getResourceImplementsList( resourceDef, m_portTypeInfoMap ) );
+        props.setPropertyDocumentName(
+                XmlBeanNameUtils.getDocumentElementXmlBeanClassName(
+                        resourceDef
+                .getPropertiesDocumentName() ) );
+        props.setWsdlName( wsdlFileName );
+
+        props.setResourcekey( new QName( targetNamespace, "ResourceID" ) );
+        Iterator ptNameIter = resourceDef.getImplementedResourceCapabilities().keySet().iterator();
+        while ( ptNameIter.hasNext() )
+        {
+            QName ptName = (QName) ptNameIter.next();
+            PortType2JavaInfo ptInfo = (PortType2JavaInfo) m_portTypeInfoMap.get( ptName );
+            if ( ptInfo != null )
             {
-               props.addServiceIncludeFile( ptInfo.getServiceTemplateFileName(  ) );
+                if ( ptInfo.getResourceTemplateFileName() != null )
+                {
+                    props.addResourceIncludeFile( ptInfo.getResourceTemplateFileName() );
+                }
+
+                if ( ptInfo.getServiceTemplateFileName() != null )
+                {
+                    props.addServiceIncludeFile( ptInfo.getServiceTemplateFileName() );
+                }
             }
-         }
-      }
-
-      return props;
-   }
+        }
+        return props;
+    }
 
-   private void generateXmlBeans( File wsdlFile )
-   throws Exception
-   {
-      System.out.println( "Generating XMLBeans for WSDL file \"" + wsdlFile + "\"..." );
-      SchemaCompiler.Parameters scompParams = new SchemaCompiler.Parameters(  );
-      scompParams.setSrcDir( m_srcXmlBeansDir );
-
-      File tempClassesDir = getTempDir(  );
-
-      scompParams.setClassesDir( tempClassesDir );
-      scompParams.setWsdlFiles( new File[]
-                                {
-                                   wsdlFile
-                                } );
-      scompParams.setDownload( true );
-      scompParams.setClasspath( m_options.getClasspath(  ) );
-      scompParams.setVerbose( m_options.isVerbose(  ) );
-      scompParams.setDebug( m_options.isDebug(  ) );
-      final boolean   beNoisy        = true;
-      XmlErrorPrinter xErrorListener = new XmlErrorPrinter( beNoisy, null );
-      scompParams.setErrorListener( xErrorListener );
-      m_srcOutputDir.mkdirs(  ); // necessary?
-      m_jarOutputDir.mkdirs(  ); // necessary?
-      String wsdlJarFileName = getJarFileName( wsdlFile );
-      scompParams.setOutputJar( new File( m_jarOutputDir, wsdlJarFileName ) );
-      try
-      {
-         if ( !SchemaCompiler.compile( scompParams ) )
-         {
-            throw new Exception( xErrorListener.toString(  ) );
-         }
-         //copy wsdl to subdir of src
-         copyWsdlFile(wsdlFile);
-      }
-      finally
-      {
-         //delete the temp directory
-         FileUtils.deleteDirectory( tempClassesDir );
-      }
-   }
+    private void generateXmlBeans( File wsdlFile )
+            throws Exception
+    {
+        System.out.println( "Generating XMLBeans for WSDL file \"" + wsdlFile + "\"..." );
+        SchemaCompiler.Parameters scompParams = new SchemaCompiler.Parameters();
+        scompParams.setSrcDir( m_xBeanSrcOutputDir );
+        File tempClassesDir = getTempDir();
+        scompParams.setClassesDir( tempClassesDir );
+        scompParams.setWsdlFiles( new File[]
+        {
+            wsdlFile
+        } );
+        scompParams.setDownload( true );
+        scompParams.setClasspath( m_options.getClasspath() );
+        scompParams.setVerbose( m_options.isVerbose() );
+        scompParams.setDebug( m_options.isDebug() );
+        final boolean beNoisy = true;
+        XmlErrorPrinter xErrorListener = new XmlErrorPrinter( beNoisy, null );
+        scompParams.setErrorListener( xErrorListener );
+        //m_javaSrcOutputDir.mkdirs(  ); // necessary?
+        m_libOutputDir.mkdirs(  );
+        String wsdlJarFileName = getJarFileName( wsdlFile );
+        scompParams.setOutputJar( new File( m_libOutputDir, wsdlJarFileName ) );
+        try
+        {
+            if ( !SchemaCompiler.compile( scompParams ) )
+            {
+                throw new Exception( xErrorListener.toString() );
+            }
+            //copy wsdl to subdir of src
+            copyWsdlFile( wsdlFile );
+        }
+        finally
+        {
+            //delete the temp directory
+            FileUtils.deleteDirectory( tempClassesDir );
+        }
+    }
 
-    private void copyWsdlFile(File wsdlFile)
+    private void copyWsdlFile( File wsdlFile )
             throws IOException
     {
-        File wsdlDir = new File(m_srcOutputDir, "wsdl");
+        File wsdlDir = new File( m_javaSrcOutputDir, "wsdl" );
         wsdlDir.mkdirs();
-        FileUtils.copyFile(wsdlFile, new File(wsdlDir,wsdlFile.getName()));
+        FileUtils.copyFile( wsdlFile, new File( wsdlDir, wsdlFile.getName() ) );
+    }
+
+    private void initPortTypeInfoMap()
+    {
+        addPortType2JavaInfo( new GetResourcePropertyPortType2JavaInfo() );
+        addPortType2JavaInfo( new GetMultipleResourcePropertiesPortType2JavaInfo() );
+        addPortType2JavaInfo( new SetResourcePropertiesPortType2JavaInfo() );
+        addPortType2JavaInfo( new QueryResourcePropertiesPortType2JavaInfo() );
+        addPortType2JavaInfo( new ImmediateResourceTerminationPortType2JavaInfo() );
+        addPortType2JavaInfo( new ScheduledResourceTerminationPortType2JavaInfo() );
+    }
+
+    private void initVelocity()
+            throws Exception
+    {
+        Velocity.addProperty( Velocity.RESOURCE_LOADER, "classpath" );
+        Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".class",
+                "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader" );
+        Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".cache", "false" );
+        Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".modificationCheckInterval", "2" );
+        Velocity.init();
+    }
+
+    private void processTemplate( VelocityContext context,
+                                  String templateLocation,
+                                  File outputFile )
+            throws Exception
+    {
+        /*
+         *  get the Template object.  This is the parsed version of your
+         *  template input file.  Note that getTemplate() can throw
+         *   ResourceNotFoundException : if it doesn't find the template
+         *   ParseErrorException : if there is something wrong with the VTL
+         *   Exception : if something else goes wrong (this is generally
+         *        indicative of as serious problem...)
+         */
+        try
+        {
+            Template template = Velocity.getTemplate( templateLocation );
+
+            /*
+             *  Now have the template engine process your template using the
+             *  data placed into the context.  Think of it as a  'merge'
+             *  of the template and the data to produce the output stream.
+             */
+            FileWriter writer = new FileWriter( outputFile );
+            if ( template != null )
+            {
+                template.merge( context, writer );
+            }
+
+            writer.flush();
+            writer.close();
+        }
+        catch ( Exception e )
+        {
+            System.err.println( "Error processing template " + templateLocation );
+            e.printStackTrace();
+        }
     }
 
-    private void initPortTypeInfoMap(  )
-   {
-      addPortType2JavaInfo( new GetResourcePropertyPortType2JavaInfo(  ) );
-      addPortType2JavaInfo( new GetMultipleResourcePropertiesPortType2JavaInfo(  ) );
-      addPortType2JavaInfo( new SetResourcePropertiesPortType2JavaInfo(  ) );
-      addPortType2JavaInfo( new QueryResourcePropertiesPortType2JavaInfo(  ) );
-      addPortType2JavaInfo( new ImmediateResourceTerminationPortType2JavaInfo(  ) );
-      addPortType2JavaInfo( new ScheduledResourceTerminationPortType2JavaInfo(  ) );
-   }
-
-   private void initVelocity(  )
-   throws Exception
-   {
-      Velocity.addProperty( Velocity.RESOURCE_LOADER, "classpath" );
-      Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".class",
-                            "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader" );
-      Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".cache", "false" );
-      Velocity.setProperty( "classpath." + Velocity.RESOURCE_LOADER + ".modificationCheckInterval", "2" );
-      Velocity.init(  );
-   }
-
-   private void processTemplate( VelocityContext context,
-                                 String          templateLocation,
-                                 File            outputFile )
-   throws Exception
-   {
-      /*
-       *  get the Template object.  This is the parsed version of your
-       *  template input file.  Note that getTemplate() can throw
-       *   ResourceNotFoundException : if it doesn't find the template
-       *   ParseErrorException : if there is something wrong with the VTL
-       *   Exception : if something else goes wrong (this is generally
-       *        indicative of as serious problem...)
-       */
-      try
-      {
-         Template template = Velocity.getTemplate( templateLocation );
-
-         /*
-          *  Now have the template engine process your template using the
-          *  data placed into the context.  Think of it as a  'merge'
-          *  of the template and the data to produce the output stream.
-          */
-         FileWriter writer = new FileWriter( outputFile );
-         if ( template != null )
-         {
-            template.merge( context, writer );
-         }
-
-         writer.flush(  );
-         writer.close(  );
-      }
-      catch ( Exception e )
-      {
-         System.err.println( "Error processing template " + templateLocation );
-         e.printStackTrace(  );
-      }
-   }
-
-   private void processTemplates( ResourceDefinition resourceDef,
-                                  File               wsdlFile )
-   throws Exception
-   {
-       String serviceName = getUpperCaseServiceName(resourceDef.getName());
-       try
-      {
-         VelocityContext   context = new VelocityContext(  );
-         ServiceProperties props = buildServiceProperties( resourceDef, wsdlFile.getName() );
-
-         //add to context
-         context.put( "generated", props );
-         context.put( "qnames",
-                      new ConstQNames(  ) );
-
-         //generate files
-         File packageDir = getPackageDir( resourceDef.getDefinition(  ).getTargetNamespace(  ) );
-         packageDir.mkdirs(  );
-         File outputFile = new File( packageDir, "Abstract" + serviceName + "Service.java" );
-         processTemplate( context, "templates/AbstractService.vm", outputFile );
-
-         outputFile = new File( packageDir, serviceName + "Service.java" );
-
-         //only generate if it doesn't exist
-         if ( !outputFile.exists(  ) )
-         {
-            processTemplate( context, "templates/Service.vm", outputFile );
-         }
-
-         outputFile = new File( packageDir, "Abstract" + serviceName + "Resource.java" );
-         processTemplate( context, "templates/AbstractResource.vm", outputFile );
-
-         outputFile = new File( packageDir, serviceName + "Resource.java" );
-
-         //only generate if it doesn't exist
-         if ( !outputFile.exists(  ) )
-         {
-            processTemplate( context, "templates/Resource.vm", outputFile );
-         }
-
-         outputFile = new File( packageDir, serviceName + "Home.java" );
-
-         //only generate if it doesn't exist
-         if ( !outputFile.exists(  ) )
-         {
-            processTemplate( context, "templates/Home.vm", outputFile );
-         }
-
-         //only if they implemented properties does this make sense.
-         if ( resourceDef.hasProperties(  ) )
-         {
-            outputFile = new File( packageDir, serviceName + "PropertyQNames.java" );
-            processTemplate( context, "templates/PropertyQNames.vm", outputFile );
-         }
-
-         outputFile = new File( packageDir, serviceName + "_deploy.wsdd" );
-         processTemplate( context, "templates/deploy.vm", outputFile );
-
-         outputFile = new File( packageDir, serviceName + "_jndi-config.xml" );
-         processTemplate( context, "templates/jndi.vm", outputFile );
-
-         outputFile = new File( packageDir, serviceName + "CustomOperationsPortType.java" );
-         processTemplate( context, "templates/CustomOperationsPortType.vm", outputFile );
-
-         outputFile = new File( m_srcOutputDir.getParentFile().getParentFile(), "build.xml" );
-         processTemplate( context, "templates/build.xml.vm", outputFile );
-
-         outputFile = new File( m_srcOutputDir.getParentFile().getParentFile(), "build.properties" );
-         processTemplate( context, "templates/build.properties.vm", outputFile );
-      }
-      catch ( Exception e )
-      {
-         e.printStackTrace(  );
-      }
-   }
+    private void processTemplates( ResourceDefinition resourceDef,
+                                   File wsdlFile )
+            throws Exception
+    {
+        String serviceName = getUpperCaseServiceName( resourceDef.getName() );
+        try
+        {
+            VelocityContext context = new VelocityContext();
+            ServiceProperties props = buildServiceProperties( resourceDef, wsdlFile.getName() );
+
+            //add to context
+            context.put( "generated", props );
+            context.put( "qnames",
+                    new ConstQNames() );
+
+            //generate files
+            File packageDir = getPackageDir( resourceDef.getDefinition().getTargetNamespace() );
+            packageDir.mkdirs();
+            File outputFile = new File( packageDir, "Abstract" + serviceName + "Service.java" );
+            processTemplate( context, "templates/AbstractService.vm", outputFile );
+
+            outputFile = new File( packageDir, serviceName + "Service.java" );
+
+            //only generate if it doesn't exist
+            if ( !outputFile.exists() )
+            {
+                processTemplate( context, "templates/Service.vm", outputFile );
+            }
+
+            outputFile = new File( packageDir, "Abstract" + serviceName + "Resource.java" );
+            processTemplate( context, "templates/AbstractResource.vm", outputFile );
+
+            outputFile = new File( packageDir, serviceName + "Resource.java" );
+
+            //only generate if it doesn't exist
+            if ( !outputFile.exists() )
+            {
+                processTemplate( context, "templates/Resource.vm", outputFile );
+            }
+
+            outputFile = new File( packageDir, serviceName + "Home.java" );
+
+            //only generate if it doesn't exist
+            if ( !outputFile.exists() )
+            {
+                processTemplate( context, "templates/Home.vm", outputFile );
+            }
+
+            //only if they implemented properties does this make sense.
+            if ( resourceDef.hasProperties() )
+            {
+                outputFile = new File( packageDir, serviceName + "PropertyQNames.java" );
+                processTemplate( context, "templates/PropertyQNames.vm", outputFile );
+            }
+
+            outputFile = new File( packageDir, serviceName + "_deploy.wsdd" );
+            processTemplate( context, "templates/deploy.vm", outputFile );
+
+            outputFile = new File( packageDir, serviceName + "_jndi-config.xml" );
+            processTemplate( context, "templates/jndi.vm", outputFile );
+
+            outputFile = new File( packageDir, serviceName + "CustomOperationsPortType.java" );
+            processTemplate( context, "templates/CustomOperationsPortType.vm", outputFile );
+
+            outputFile = new File( m_javaSrcOutputDir.getParentFile().getParentFile(), "build.xml" );
+            processTemplate( context, "templates/build.xml.vm", outputFile );
+
+            outputFile = new File( m_javaSrcOutputDir.getParentFile().getParentFile(), "build.properties" );
+            processTemplate( context, "templates/build.properties.vm", outputFile );
+        }
+        catch ( Exception e )
+        {
+            e.printStackTrace();
+        }
+    }
 
-    private String getUpperCaseServiceName(String name)
+    private String getUpperCaseServiceName( String name )
     {
         String serviceName = StringUtils.capitalize( name );
         return serviceName;
     }
 
     /**
-    * DOCUMENT_ME
-    *
-    * @version $Revision: 1.8 $
-    * @author $author$
-    */
-   static interface LongOpts
-   {
-      /** DOCUMENT_ME */
-      String SRC_OUTPUT_DIR = "srcOutputDir";
-
-      /** DOCUMENT_ME */
-      String JAR_OUTPUT_DIR = "jarOutputDir";
-
-      /** DOCUMENT_ME */
-      String VERBOSE = "verbose";
-
-      /** DOCUMENT_ME */
-      String DEBUG = "debug";
-
-      /** DOCUMENT_ME */
-      String CLASSPATH = "classpath";
-
-      /** DOCUMENT_ME */
-      String SINGLETON = "singleton";
-
-      /** DOCUMENT_ME */
-      String RESOURCE_KEY = "resourceKey";
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @version $Revision: 1.8 $
-    * @author $author$
-    */
-   static interface Opts
-   {
-      /** DOCUMENT_ME */
-      String SRC_OUTPUT_DIR = "s";
-
-      /** DOCUMENT_ME */
-      String JAR_OUTPUT_DIR = "j";
-
-      /** DOCUMENT_ME */
-      String VERBOSE = "v";
-
-      /** DOCUMENT_ME */
-      String DEBUG = "d";
-
-      /** DOCUMENT_ME */
-      String CLASSPATH = "C";
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @author $author$
-    * @version $Revision: 1.8 $
-    */
-   public static class Wsdl2JavaOptions
-   {
-      private boolean m_verbose;
-      private boolean m_debug;
-      private File[]  m_classpath;
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @param classpath DOCUMENT_ME
-       */
-      public void setClasspath( File[] classpath )
-      {
-         m_classpath = classpath;
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @param classpath DOCUMENT_ME
-       */
-      public void setClasspath( String classpath )
-      {
-         List classpathItems = new ArrayList(  );
-         for ( StringTokenizer tokenizer = new StringTokenizer( classpath, File.pathSeparator );
-               tokenizer.hasMoreTokens(  ); )
-         {
-            classpathItems.add( new File( tokenizer.nextToken(  ) ) );
-         }
-
-         m_classpath = (File[]) classpathItems.toArray( new File[0] );
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @return DOCUMENT_ME
-       */
-      public File[] getClasspath(  )
-      {
-         return m_classpath;
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @param debug DOCUMENT_ME
-       */
-      public void setDebug( boolean debug )
-      {
-         m_debug = debug;
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @return DOCUMENT_ME
-       */
-      public boolean isDebug(  )
-      {
-         return m_debug;
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @param verbose DOCUMENT_ME
-       */
-      public void setVerbose( boolean verbose )
-      {
-         m_verbose = verbose;
-      }
-
-      /**
-       * DOCUMENT_ME
-       *
-       * @return DOCUMENT_ME
-       */
-      public boolean isVerbose(  )
-      {
-         return m_verbose;
-      }
-   }
+     * DOCUMENT_ME
+     *
+     * @author $author$
+     * @version $Revision: 1.8 $
+     */
+    static interface LongOpts
+    {
+        /**
+         * DOCUMENT_ME
+         */
+        String OUTPUT_DIR = "outputDir";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String VERBOSE = "verbose";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String DEBUG = "debug";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String CLASSPATH = "classpath";
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @author $author$
+     * @version $Revision: 1.8 $
+     */
+    static interface Opts
+    {
+        /**
+         * DOCUMENT_ME
+         */
+        String OUTPUT_DIR = "o";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String VERBOSE = "v";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String DEBUG = "d";
+
+        /**
+         * DOCUMENT_ME
+         */
+        String CLASSPATH = "C";
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @author $author$
+     * @version $Revision: 1.8 $
+     */
+    public static class Wsdl2JavaOptions
+    {
+        private boolean m_verbose;
+        private boolean m_debug;
+        private File[] m_classpath;
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @param classpath DOCUMENT_ME
+         */
+        public void setClasspath( File[] classpath )
+        {
+            m_classpath = classpath;
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @param classpath DOCUMENT_ME
+         */
+        public void setClasspath( String classpath )
+        {
+            List classpathItems = new ArrayList();
+            for ( StringTokenizer tokenizer = new StringTokenizer( classpath, File.pathSeparator );
+                  tokenizer.hasMoreTokens(); )
+            {
+                classpathItems.add( new File( tokenizer.nextToken() ) );
+            }
+
+            m_classpath = (File[]) classpathItems.toArray( new File[0] );
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @return DOCUMENT_ME
+         */
+        public File[] getClasspath()
+        {
+            return m_classpath;
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @param debug DOCUMENT_ME
+         */
+        public void setDebug( boolean debug )
+        {
+            m_debug = debug;
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @return DOCUMENT_ME
+         */
+        public boolean isDebug()
+        {
+            return m_debug;
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @param verbose DOCUMENT_ME
+         */
+        public void setVerbose( boolean verbose )
+        {
+            m_verbose = verbose;
+        }
+
+        /**
+         * DOCUMENT_ME
+         *
+         * @return DOCUMENT_ME
+         */
+        public boolean isVerbose()
+        {
+            return m_verbose;
+        }
+    }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org