Author: amita
Date: Sat Dec  8 07:44:04 2007
New Revision: 602484

URL: http://svn.apache.org/viewvc?rev=602484&view=rev
Log:
TUSCANY-1923 Plugin for DBtoXSDGenerator tool and modifications to tool itself

Added:
    incubator/tuscany/java/das/plugin/
    incubator/tuscany/java/das/plugin/pom.xml
    incubator/tuscany/java/das/plugin/src/
    incubator/tuscany/java/das/plugin/src/main/
    incubator/tuscany/java/das/plugin/src/main/java/
    incubator/tuscany/java/das/plugin/src/main/java/org/
    incubator/tuscany/java/das/plugin/src/main/java/org/apache/
    incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/
    
incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/
    
incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/GeneratorMojo.java
    
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/ModelXSDGenOption.java
Modified:
    incubator/tuscany/java/das/distribution/binary/pom.xml
    incubator/tuscany/java/das/distribution/binary/src/main/assembly/das.xml
    incubator/tuscany/java/das/pom.xml
    incubator/tuscany/java/das/tools/readme.htm
    
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToSchemaFile.java
    
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToXSDGenerator.java
    
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/SchemaFileToXSD.java
    incubator/tuscany/java/das/tools/src/test/resources/DBConnectionConfig.xml
    incubator/tuscany/java/das/tools/src/test/resources/dbConfig.xml

Modified: incubator/tuscany/java/das/distribution/binary/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/distribution/binary/pom.xml?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/distribution/binary/pom.xml (original)
+++ incubator/tuscany/java/das/distribution/binary/pom.xml Sat Dec  8 07:44:04 
2007
@@ -63,6 +63,12 @@
           <artifactId>tuscany-das-sample-transaction</artifactId>
           <version>${das.version}</version>
       </dependency>
+      
+       <dependency>
+          <groupId>org.apache.tuscany.das</groupId>
+          <artifactId>tuscany-das-tools</artifactId>
+          <version>${das.version}</version>
+      </dependency>      
     </dependencies>
 
     <build>

Modified: 
incubator/tuscany/java/das/distribution/binary/src/main/assembly/das.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/distribution/binary/src/main/assembly/das.xml?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/distribution/binary/src/main/assembly/das.xml 
(original)
+++ incubator/tuscany/java/das/distribution/binary/src/main/assembly/das.xml 
Sat Dec  8 07:44:04 2007
@@ -83,7 +83,7 @@
                
<outputDirectory>tuscany-das-${das.version}/samples/customer</outputDirectory>
                <fileMode>0644</fileMode>
             </file>
-            <!-- include ajax das sample -->
+            <!-- include customer sample -->
             <file>
                
<source>../../samples/customer/target/sample-customer.jar</source>
                
<outputDirectory>tuscany-das-${das.version}/samples/customer</outputDirectory>
@@ -112,6 +112,20 @@
                
<outputDirectory>tuscany-das-${das.version}/samples/transaction</outputDirectory>
                <fileMode>0644</fileMode>
             </file>
+            
+            <!-- include readme for tuscany-das-tools -->
+            <file>
+               <source>../../tools/readme.htm</source>
+               
<outputDirectory>tuscany-das-${das.version}/tuscany-das-tools</outputDirectory>
+               <fileMode>0644</fileMode>
+            </file>
+            <!-- include das-tools -->
+            <file>
+               <source>../../tools/target/tuscany-das-tools.jar</source>
+               
<outputDirectory>tuscany-das-${das.version}/tuscany-das-tools</outputDirectory>
+               <fileMode>0644</fileMode>
+            </file>
+            
         </files>
 
 
@@ -144,6 +158,15 @@
                    
<include>org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec</include>
                    
<include>org.apache.tuscany.das.samples:tuscany-das-sample-dbconfig</include>
                </includes>         
+           <fileMode>0644</fileMode>
+        </dependencySet>
+
+        <!-- DAS tools - torque dependency-->
+        <dependencySet>
+           
<outputDirectory>tuscany-das-${das.version}/tuscany-das-tools</outputDirectory>
+               <includes>
+                   <include>torque:torque-gen</include>
+               </includes>
            <fileMode>0644</fileMode>
         </dependencySet>
         

Added: incubator/tuscany/java/das/plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/plugin/pom.xml?rev=602484&view=auto
==============================================================================
--- incubator/tuscany/java/das/plugin/pom.xml (added)
+++ incubator/tuscany/java/das/plugin/pom.xml Sat Dec  8 07:44:04 2007
@@ -0,0 +1,107 @@
+<?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>
+    <parent>
+        <groupId>org.apache.tuscany.das</groupId>
+        <artifactId>tuscany-das</artifactId>
+        <version>1.0-incubating-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>tuscany-das-plugin</artifactId>
+    <packaging>maven-plugin</packaging>
+    <name>Tuscany DAS Maven Plugin</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>2.0.4</version>
+            <scope>compile</scope>
+        </dependency>
+       <dependency>
+           <groupId>org.apache.maven</groupId>
+           <artifactId>maven-model</artifactId>
+           <version>2.0.4</version>
+       </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-project</artifactId>
+            <version>2.0.4</version>
+            <scope>compile</scope>
+        </dependency>       
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-descriptor</artifactId>
+            <version>2.0.4</version>
+            <scope>compile</scope>
+        </dependency>                
+
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>10.2.2.0</version>
+        </dependency>
+
+        <dependency>
+                   <groupId>torque</groupId>
+                   <artifactId>torque-gen</artifactId>
+                   <version>3.3-RC2</version>
+               </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.das</groupId>
+            <artifactId>tuscany-das-tools</artifactId>
+            <version>${das.version}</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+       
+    <profiles>
+        <profile>
+                       <id>plugin-test</id>       
+           <build>
+                       <plugins>
+                           <plugin>
+                               <groupId>org.apache.tuscany.das</groupId>
+                               <artifactId>tuscany-das-plugin</artifactId>
+                               <version>${das.version}</version>
+                               <executions>
+                                   <execution>
+                                       <id>dbToxsd</id>
+                                       <phase>generate-resources</phase>
+                                       <configuration>
+                                           
<schemaFile>${basedir}/target/schema.xml</schemaFile>
+                                           
<modelFile>${basedir}/target/sdoModel.xsd</modelFile>
+                                           
<driverClass>org.apache.derby.jdbc.EmbeddedDriver</driverClass>
+                                           
<databaseURL>jdbc:derby:${basedir}/../rdb/target/dastest</databaseURL>
+                                           <schemaName>APP</schemaName>
+                                       </configuration>                        
+                                       <goals>
+                                           <goal>generate</goal>
+                                       </goals>
+                                   </execution>
+                                 </executions>             
+                           </plugin>      
+                       </plugins>
+       </build>
+    </profile>
+   </profiles>
+        
+</project>
\ No newline at end of file

Added: 
incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/GeneratorMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/GeneratorMojo.java?rev=602484&view=auto
==============================================================================
--- 
incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/GeneratorMojo.java
 (added)
+++ 
incubator/tuscany/java/das/plugin/src/main/java/org/apache/tuscany/das/plugin/GeneratorMojo.java
 Sat Dec  8 07:44:04 2007
@@ -0,0 +1,111 @@
+/**
+ *
+ *  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.das.plugin;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.tuscany.das.rdb.util.DBToXSDGenerator;
+import org.apache.tuscany.das.rdb.util.ModelXSDGenOption;
+
+/**
+ * @goal generate
+ * @phase generate-resources
+ * @description Generate XSD Model files from DB Schema or db schema XML file
+ */
+public class GeneratorMojo extends AbstractMojo {
+    /**
+     * The file containing db schema in xml
+     *
+     * @parameter property="schemaFile"
+     */
+    private String schemaFile;
+
+    /**
+     * The file that will contain Static SDO Model XSD
+     * @parameter
+     */
+    private String modelFile;
+
+    /**
+     * Specifies the driverClass to use for connecting to database.
+     *
+     * @parameter
+     */
+    private String driverClass;
+
+    /**
+     * Specifies the databaseURL
+     *
+     * @parameter
+     */
+    private String databaseURL;
+
+    /**
+     * DB Schema name.
+     *
+     * @parameter
+     */
+    private String schemaName;
+
+    /**
+     * Optional user name.
+     *
+     * @parameter
+     */
+    private String userName;
+
+    /**
+     * Optional password.
+     *
+     * @parameter
+     */
+    private String password;
+
+    public void execute() throws MojoExecutionException {
+       //if driverClass, databaseURL and schemaName present, use it to connect 
to DB ,
+       //if any from these 3 is absent, and schemaFile is present use it as 
input
+       ModelXSDGenOption mo =  new ModelXSDGenOption();
+        if (null != driverClass && null != databaseURL && null != schemaName 
&& null != schemaFile) {
+               mo.setDriverClass(driverClass);
+               mo.setDatabaseURL(databaseURL);
+               mo.setSchemaName(schemaName);
+               mo.setUserName(userName);
+               mo.setPassword(password);
+               mo.setSchemaFile(schemaFile);
+               mo.setModelFile(modelFile);
+
+               try {
+                       DBToXSDGenerator.getModelFileFromDB(mo);
+               } catch(Exception e) {
+                       throw new MojoExecutionException(e.getMessage());
+               }
+        } else if(null != schemaFile) {
+               mo.setSchemaFile(schemaFile);
+               mo.setModelFile(modelFile); //if null, STDOUT
+               try {
+                       DBToXSDGenerator.getModelFileFromSchemaFile(mo);
+               } catch(Exception e) {
+                       throw new MojoExecutionException(e.getMessage());
+               }
+        } else {
+               throw new MojoExecutionException("Provide DB Connection info or 
DB Schema XML file!");
+        }
+    }
+}
\ No newline at end of file

Modified: incubator/tuscany/java/das/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/pom.xml?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/pom.xml (original)
+++ incubator/tuscany/java/das/pom.xml Sat Dec  8 07:44:04 2007
@@ -141,6 +141,7 @@
                 <module>rdb</module>
                 <module>samples</module>
                 <module>tools</module>
+                <module>plugin</module>
             </modules>
         </profile>
         
@@ -150,6 +151,7 @@
                 <module>rdb</module>
                 <module>samples</module>
                 <module>tools</module>
+                <module>plugin</module>
                 <module>distribution/binary</module>
                 <module>distribution/source</module>
             </modules>

Modified: incubator/tuscany/java/das/tools/readme.htm
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/readme.htm?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/tools/readme.htm (original)
+++ incubator/tuscany/java/das/tools/readme.htm Sat Dec  8 07:44:04 2007
@@ -40,9 +40,12 @@
 
  <br>
  <ul>
-  <li>getModelFileFromDB(dbInfoFile); - connect to database and convert DB 
Schema to XSD Model XSDs </li>
-  <li>getModelFileFromSchemaFile(schemaFileName, SDOModelFileName); - no DB 
Connection needed, but need Apache Torque output of DB schema file </li>
-  <li>getSchemaFileFromDB(dbInfoFile); - connect to database and use Apache 
Torque to get DB Schema xml file </li>
+  <li>getModelFileFromDB(String dbInfoFile) - connect to database and convert 
DB Schema to XSD Model XSDs </li>
+  <li>getModelFileFromSchemaFile(String schemaFileName, String 
SDOModelFileName) - no DB Connection needed, but need Apache Torque output of 
DB schema file </li>
+  <li>getSchemaFileFromDB(String dbInfoFile) - connect to database and use 
Apache Torque to get DB Schema xml file </li>
+  <li>getModelFileFromDB(ModelXSDGenOption mo) - connect to database and 
convert DB Schema to XSD Model XSDs </li>
+  <li>getModelFileFromSchemaFile(ModelXSDGenOption mo) - no DB Connection 
needed, but need Apache Torque output of DB schema file </li>
+  <li>ModelXSDGenOption holds - schemaFile, modelFile, driverClass, 
databaseURL, schemaName, userName, password</li>
 </ul>
   
 To build the Tuscany DAS DBToXSDGenerator tool, perform the following steps 
<br>
@@ -52,7 +55,7 @@
 <li> --->To run as a standalone tool, call the above listed methods from 
DBToXSDGenerator </li>
 </ul>
 
-<b>Assumption</b> Database exists and contains required tables, 
constraints.<br>
+<b>Assumption</b> Database exists and contains required tables, constraints. 
Required Driver jar is in classpath<br>
 
 <ul  style="border-right-style: solid; border-left-style: solid; 
border-top-style: solid; border-bottom-style: solid">
  <b>Example dbInfoFile</b><br>

Modified: 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToSchemaFile.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToSchemaFile.java?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToSchemaFile.java
 (original)
+++ 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToSchemaFile.java
 Sat Dec  8 07:44:04 2007
@@ -30,32 +30,25 @@
 
 public class DBToSchemaFile {
        private static final Logger logger = 
Logger.getLogger(DBToSchemaFile.class);
-       
-       private static String driverClass = null;
-       private static String url = null;
-       private static String schemaName = null;
-       private static String userName = null;
-       private static String password = null;
-       private static String schemaFileName = null;//should not be null
-       private static String modelFileName = null;//if null STDOUT
+       private static ModelXSDGenOption mo = null;//schemaFileName should not 
be null. id modelFileName null STDOUT
        
        protected static void schemaFileFromDB() throws Exception {
                Project p = new Project();
            p.setBaseDir(new File("."));
                TorqueJDBCTransformTask tsk = new TorqueJDBCTransformTask();
                tsk.setProject(p);
-               tsk.setDbDriver(driverClass);
-               tsk.setDbUrl(url);
+               tsk.setDbDriver(mo.getDriverClass());
+               tsk.setDbUrl(mo.getDatabaseURL());
                tsk.setSameJavaName(true);
-               tsk.setDbSchema(schemaName);
+               tsk.setDbSchema(mo.getSchemaName());
                tsk.setTaskName("jdbc");
-               tsk.setDbUser(userName);
-               tsk.setDbPassword(password);
-               if(!schemaFileName.equals("")) {
-                       File schemaFile = new File( schemaFileName);
+               tsk.setDbUser(mo.getUserName());
+               tsk.setDbPassword(mo.getPassword());
+               if(!mo.getSchemaFile().trim().equals("")) {
+                       File schemaFile = new File( mo.getSchemaFile());
                        schemaFile.createNewFile();
                }
-               tsk.setOutputFile(schemaFileName);
+               tsk.setOutputFile(mo.getSchemaFile());
                tsk.execute();
        }
        
@@ -63,7 +56,7 @@
                XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
                
                XMLStreamReader reader = xmlFactory.createXMLStreamReader(new 
InputStreamReader(DBToXSDGenerator.getStream(dbInfoFileName)));
-
+               mo = new ModelXSDGenOption();
         while (true) {
             int event = reader.next();
             if(javax.xml.stream.XMLStreamConstants.END_DOCUMENT == event) {
@@ -73,22 +66,22 @@
             switch (event) {            
                    case javax.xml.stream.XMLStreamConstants.START_ELEMENT: {
                       if 
(reader.getName().getLocalPart().equals("ConnectionProperties")) {
-                               driverClass = reader.getAttributeValue(null, 
"driverClass");
-                               url = reader.getAttributeValue(null, 
"databaseURL");
-                               schemaName = reader.getAttributeValue(null, 
"schemaName");
-                               userName = reader.getAttributeValue(null, 
"userName");
-                               if(userName == null)
-                                       userName = "";
-                               password = reader.getAttributeValue(null, 
"password");
-                               if(password == null)
-                                       password = "";
+                          mo.setDriverClass(reader.getAttributeValue(null, 
"driverClass"));
+                          mo.setDatabaseURL(reader.getAttributeValue(null, 
"databaseURL"));
+                          mo.setSchemaName(reader.getAttributeValue(null, 
"schemaName"));
+                          mo.setUserName(reader.getAttributeValue(null, 
"userName"));
+                               if(mo.getUserName() == null)
+                                       mo.setUserName("");
+                               mo.setPassword(reader.getAttributeValue(null, 
"password"));
+                               if(mo.getPassword() == null)
+                                       mo.setPassword("");
                        } else if 
(reader.getName().getLocalPart().equals("ConnectionInfo")) {                  
                                //ignore
                        } else if 
(reader.getName().getLocalPart().equals("Config")) {
                                //ignore
                        } else if 
(reader.getName().getLocalPart().equals("OutFiles")) {                        
-                               schemaFileName = reader.getAttributeValue(null, 
"schemaFile");
-                               modelFileName = reader.getAttributeValue(null, 
"modelFile");
+                               mo.setSchemaFile(reader.getAttributeValue(null, 
"schemaFile"));
+                               mo.setModelFile(reader.getAttributeValue(null, 
"modelFile"));
                        } else {
                                throw new RuntimeException("not got dbInfo  - 
tableNames List or connectionInfo:"+reader.getName()+":");
                        }
@@ -98,36 +91,29 @@
         }
         
         if (logger.isDebugEnabled()) {
-                       logger.debug("driverClass:"+driverClass);
-                       logger.debug("url:"+url);
-                       logger.debug("schemaName:"+schemaName);
-                       logger.debug("schemaFileName:"+schemaFileName);
-                       logger.debug("modelFileName:"+modelFileName);
-                       logger.debug("userName:"+userName);
-                       logger.debug("password:"+password);
+                       logger.debug("driverClass:"+mo.getDriverClass());
+                       logger.debug("url:"+mo.getDatabaseURL());
+                       logger.debug("schemaName:"+mo.getSchemaName());
+                       logger.debug("schemaFileName:"+mo.getSchemaFile());
+                       logger.debug("modelFileName:"+mo.getModelFile());
+                       logger.debug("userName:"+mo.getUserName());
+                       logger.debug("password:"+mo.getPassword());
                }            
 
-        if(driverClass == null || url == null || schemaName == null || 
schemaFileName == null || modelFileName == null) {
+        if(mo.getDriverClass() == null || mo.getDatabaseURL() == null || 
mo.getSchemaName() == null || mo.getSchemaFile() == null 
+                       || mo.getModelFile() == null) {
           throw new RuntimeException("Required inputs missing - check 
driverClass, url, schemaName, schemaFile, modelFile!");
         }
 
         return;
     }
 
-       protected static String getSchemaFileName() {
-               return schemaFileName;
-       }
-
-       protected static void setSchemaFileName(String schemaFileName) {
-               DBToSchemaFile.schemaFileName = schemaFileName;
-       }
-
-       protected static String getModelFileName() {
-               return modelFileName;
+       public static ModelXSDGenOption getMo() {
+               return mo;
        }
 
-       protected static void setModelFileName(String modelFileName) {
-               DBToSchemaFile.modelFileName = modelFileName;
+       public static void setMo(ModelXSDGenOption mo) {
+               DBToSchemaFile.mo = mo;
        }
        
 }

Modified: 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToXSDGenerator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToXSDGenerator.java?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToXSDGenerator.java
 (original)
+++ 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/DBToXSDGenerator.java
 Sat Dec  8 07:44:04 2007
@@ -34,22 +34,52 @@
        /**
         * If user supplies schemaFileName and modelFileName will use it 
instead of the one from DBToSchemaFile.
         * schemaFile should exist. If modelFileName is null, will use STDOUT.
-        * @param schemaFileName then one with Torque output
+        * @param schemaFileName the result of Torque output
         * @throws Exception
         */
        public static void getModelFileFromSchemaFile(String schemaFileName, 
String modelFileName) throws Exception {
+               if(schemaFileName == null || schemaFileName.trim().equals("")) {
+                       throw new RuntimeException("Null or empty 
schemaFileName");
+               }
+               
                SchemaFileToXSD.convert(schemaFileName, modelFileName);
        }
        
        /**
+        * If user supplies schemaFileName and modelFileName through 
ModelXSDGenOption, will use it instead of 
+        * the one from DBToSchemaFile. schemaFile should exist. If 
modelFileName is null, will use STDOUT.
+        * @param ModelXSDGenOption 
+        * @throws Exception
+        */
+       public static void getModelFileFromSchemaFile(ModelXSDGenOption mo) 
throws Exception {
+               getModelFileFromSchemaFile(mo.getSchemaFile(), 
mo.getModelFile());
+       }
+       
+       /**
         * All in one
-        * @param dbInfoFileName
+        * @param dbInfoFileName e.g. DBConnectionConfig.xml
         * @throws Exception
         */
        public static void getModelFileFromDB(String dbInfoFileName) throws 
Exception {
                DBToSchemaFile.read(dbInfoFileName);
                DBToSchemaFile.schemaFileFromDB();
-               getModelFileFromSchemaFile(DBToSchemaFile.getSchemaFileName(), 
DBToSchemaFile.getModelFileName());
+               getModelFileFromSchemaFile(DBToSchemaFile.getMo());
+       }
+       
+       /**
+        * Useful for plugin
+        */
+       public static void getModelFileFromDB(ModelXSDGenOption mo) throws 
Exception {
+               if(mo.getSchemaFile() == null || 
mo.getSchemaFile().trim().equals("") || 
+                       mo.getDriverClass() == null || 
mo.getDriverClass().trim().equals("") || 
+                       mo.getDatabaseURL() == null || 
mo.getDatabaseURL().trim().equals("") ||
+                       mo.getSchemaName() == null || 
mo.getSchemaName().trim().equals("")) {
+                       throw new RuntimeException("Required inputs missing - 
check driverClass, url, schemaName, schemaFile!");
+               }
+               
+               DBToSchemaFile.setMo(mo);       
+               DBToSchemaFile.schemaFileFromDB();
+               
getModelFileFromSchemaFile(DBToSchemaFile.getMo().getSchemaFile(), 
DBToSchemaFile.getMo().getModelFile());
        }
        
     protected static InputStream getStream(String fileName) {

Added: 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/ModelXSDGenOption.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/ModelXSDGenOption.java?rev=602484&view=auto
==============================================================================
--- 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/ModelXSDGenOption.java
 (added)
+++ 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/ModelXSDGenOption.java
 Sat Dec  8 07:44:04 2007
@@ -0,0 +1,134 @@
+/**
+ *
+ *  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.das.rdb.util;
+
+import java.io.File;
+
+public class ModelXSDGenOption {
+
+    /**
+     * Name of the schema file
+     *
+     * @parameter
+     */
+    private String schemaFile;
+
+    /**
+     * Name of the model file
+     *
+     * @parameter
+     */
+    private String modelFile;
+
+    /**
+     * Name of the DBDriver class Name
+     *
+     * @parameter
+     */
+    private String driverClass;
+
+    /**
+     * Name of the DB URL
+     *
+     * @parameter
+     */
+    private String databaseURL;
+    
+    /**
+     * Name of the DB Schema Name
+     *
+     * @parameter
+     */    
+    private String schemaName;
+
+    /**
+     * Optional user name.
+     *
+     * @parameter
+     */
+    private String userName;
+
+    /**
+     * Optional password.
+     *
+     * @parameter
+     */
+    private String password;
+
+    public ModelXSDGenOption() {
+    }
+
+       public String getSchemaFile() {
+               return schemaFile;
+       }
+
+       public void setSchemaFile(String schemaFile) {
+               this.schemaFile = schemaFile;
+       }
+
+       public String getModelFile() {
+               return modelFile;
+       }
+
+       public void setModelFile(String modelFile) {
+               this.modelFile = modelFile;
+       }
+
+       public String getDriverClass() {
+               return driverClass;
+       }
+
+       public void setDriverClass(String driverClass) {
+               this.driverClass = driverClass;
+       }
+
+       public String getDatabaseURL() {
+               return databaseURL;
+       }
+
+       public void setDatabaseURL(String databaseURL) {
+               this.databaseURL = databaseURL;
+       }
+
+       public String getSchemaName() {
+               return schemaName;
+       }
+
+       public void setSchemaName(String schemaName) {
+               this.schemaName = schemaName;
+       }
+
+       public String getUserName() {
+               return userName;
+       }
+
+       public void setUserName(String userName) {
+               this.userName = userName;
+       }
+
+       public String getPassword() {
+               return password;
+       }
+
+       public void setPassword(String password) {
+               this.password = password;
+       }
+       
+}

Modified: 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/SchemaFileToXSD.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/SchemaFileToXSD.java?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/SchemaFileToXSD.java
 (original)
+++ 
incubator/tuscany/java/das/tools/src/main/java/org/apache/tuscany/das/rdb/util/SchemaFileToXSD.java
 Sat Dec  8 07:44:04 2007
@@ -130,7 +130,7 @@
                String startLine = "<xsd:schema 
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"; 
xmlns:this=\"http:///org.apache.tuscany.das.rdb.test/schemaModel.xsd\"; 
targetNamespace=\"http:///org.apache.tuscany.das.rdb.test/schemaModel.xsd\";>\n";
                String endLine = "</xsd:schema>"; 
                        
-               if(xsdModelFileName != null) {
+               if(xsdModelFileName != null && 
!xsdModelFileName.trim().equals("")) {
                        writeFilesToDir = true;
                }
                

Modified: 
incubator/tuscany/java/das/tools/src/test/resources/DBConnectionConfig.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/test/resources/DBConnectionConfig.xml?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/tools/src/test/resources/DBConnectionConfig.xml 
(original)
+++ incubator/tuscany/java/das/tools/src/test/resources/DBConnectionConfig.xml 
Sat Dec  8 07:44:04 2007
@@ -1,34 +1,31 @@
 <?xml version="1.0" encoding="ASCII"?>
 <!--
-  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
+       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.
+-->
+<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd";>
 
-  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.
- -->
- <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd";> 
-    
-    <!--Uncomment below for derby test-->
+       <!--Uncomment below for derby test-->
        <ConnectionInfo>
                <ConnectionProperties
                        driverClass="org.apache.derby.jdbc.EmbeddedDriver"
-                       databaseURL="jdbc:derby:target/dastest;create=true"
-                       schemaName = "APP"
-                       loginTimeout="600000"/>
-       </ConnectionInfo>
-       <OutFiles
-               schemaFile="target/dbSchema.txt"
-               modelFile="target/schemaModel.xsd"
-       />
+                       databaseURL="jdbc:derby:target/dastest;create=true" 
schemaName="APP"
+               />
+       </ConnectionInfo>
+       <OutFiles schemaFile="target/dbSchema.txt"
+               modelFile="target/schemaModel.xsd" />
 </Config>

Modified: incubator/tuscany/java/das/tools/src/test/resources/dbConfig.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/tools/src/test/resources/dbConfig.xml?rev=602484&r1=602483&r2=602484&view=diff
==============================================================================
--- incubator/tuscany/java/das/tools/src/test/resources/dbConfig.xml (original)
+++ incubator/tuscany/java/das/tools/src/test/resources/dbConfig.xml Sat Dec  8 
07:44:04 2007
@@ -1,32 +1,34 @@
 <?xml version="1.0" encoding="ASCII"?>
 <!--
-  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.
- -->
+       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.
+-->
 <DBConfig xmlns="http:///org.apache.tuscany.das.rdb/dbconfig.xsd";>
        <ConnectionInfo>
-               <ConnectionProperties 
-                       driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
-                       databaseURL="jdbc:derby:target/dastest; create = true" 
-                       loginTimeout="600000"/>
+               <ConnectionProperties
+                       driverClass="org.apache.derby.jdbc.EmbeddedDriver"
+                       databaseURL="jdbc:derby:target/dastest; create = true"
+                       />
        </ConnectionInfo>
-       <Table name="STATES" SQLCreate="CREATE TABLE STATES (ID INT PRIMARY KEY 
NOT NULL, NAME VARCHAR(2))">
+       <Table name="STATES"
+               SQLCreate="CREATE TABLE STATES (ID INT PRIMARY KEY NOT NULL, 
NAME VARCHAR(2))">
        </Table>
-       <Table name="CITIES" SQLCreate="CREATE TABLE CITIES (ID INT PRIMARY KEY 
NOT NULL, NAME VARCHAR(50), STATES_ID INTEGER,  
-       CONSTRAINT FK1 FOREIGN KEY (STATES_ID) REFERENCES  STATES (ID) ON 
DELETE NO ACTION ON UPDATE NO ACTION)"        >
+       <Table name="CITIES"
+               SQLCreate="CREATE TABLE CITIES (ID INT PRIMARY KEY NOT NULL, 
NAME VARCHAR(50), STATES_ID INTEGER,  
+       CONSTRAINT FK1 FOREIGN KEY (STATES_ID) REFERENCES  STATES (ID) ON 
DELETE NO ACTION ON UPDATE NO ACTION)">
        </Table>
 </DBConfig>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to