Difference between revisions of "EclipseLink/Examples/DBWS/DBWSBuilder using ANT and javac"

From Eclipsepedia

Jump to: navigation, search
(DBWSBuilder using javac)
(DBWSBuilder using javac)
Line 95: Line 95:
 
The following code snippet shows  
 
The following code snippet shows  
 
<source lang="java">
 
<source lang="java">
          builder = new DBWSBuilder();
+
    builder = new DBWSBuilder();
         
+
 
          builder.setProjectName("simpleSP");
+
    builder.setProjectName("simpleSP");
          builder.setLogLevel("fine");
+
    builder.setLogLevel("fine");
          builder.setUsername("SCOTT");
+
    builder.setUsername("SCOTT");
          builder.setPassword("TIGER");
+
    builder.setPassword("TIGER");
          builder.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
+
    builder.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
          builder.setDriver("oracle.jdbc.OracleDriver");
+
    builder.setDriver("oracle.jdbc.OracleDriver");
          builder.setPlatformClassname("org.eclipse.persistence.platform.database.oracle.Oracle11Platform);
+
    builder.setPlatformClassname("org.eclipse.persistence.platform.database.oracle.Oracle11Platform);
         
+
 
          ProcedureOperationModel procOpModel = new ProcedureOperationModel();
+
    ProcedureOperationModel procOpModel = new ProcedureOperationModel();
          procOpModel.setName("VarcharTest");
+
    procOpModel.setName("VarcharTest");
          procOpModel.setCatalogPattern("TOPLEVEL");
+
    procOpModel.setCatalogPattern("TOPLEVEL");
          procOpModel.setProcedurePattern("VarcharSP");
+
    procOpModel.setProcedurePattern("VarcharSP");
          procOpModel.setReturnType("xsd:int");
+
    procOpModel.setReturnType("xsd:int");
          builder.addOperation(procOpModel);
+
    builder.addOperation(procOpModel);
         
+
 
          TableOperationModel tableOpModel = new TableOperationModel();
+
    TableOperationModel tableOpModel = new TableOperationModel();
          tableOpModel.setSchemaPattern("%");
+
    tableOpModel.setSchemaPattern("%");
          tableOpModel.setTablePattern("SIMPLESP");
+
    tableOpModel.setTablePattern("SIMPLESP");
          procOpModel = new ProcedureOperationModel();
+
    procOpModel = new ProcedureOperationModel();
          procOpModel.setName("GetAllTest");
+
    procOpModel.setName("GetAllTest");
          procOpModel.setCatalogPattern("TOPLEVEL");
+
    procOpModel.setCatalogPattern("TOPLEVEL");
          procOpModel.setProcedurePattern("GetAll");
+
    procOpModel.setProcedurePattern("GetAll");
          procOpModel.setIsCollection(true);
+
    procOpModel.setIsCollection(true);
          procOpModel.setReturnType("simplespType");
+
    procOpModel.setReturnType("simplespType");
          tableOpModel.addOperation(procOpModel);
+
    tableOpModel.addOperation(procOpModel);
          builder.addOperation(tableOpModel);
+
    builder.addOperation(tableOpModel);
  
          XRPackager xrPackager = new JSR109WebServicePackager();
+
    XRPackager xrPackager = new JSR109WebServicePackager();
          xrPackager.setDBWSBuilder(builder);
+
    xrPackager.setDBWSBuilder(builder);
          builder.setPackager(xrPackager);
+
    builder.setPackager(xrPackager);
          xrPackager.setSessionsFileName(builder.getSessionsFileName());
+
    xrPackager.setSessionsFileName(builder.getSessionsFileName());
          xrPackager.setStageDir(new File("."));
+
    xrPackager.setStageDir(new File("."));
 
            
 
            
          builder.start();
+
    builder.start();
 
</source>
 
</source>
  
 
[[Category:EclipseLink/Example/DBWS|ANT Builder]]
 
[[Category:EclipseLink/Example/DBWS|ANT Builder]]

Revision as of 11:46, 10 August 2012

Contents

DBWSBuilder using ANT

This example illustrates how DBWSBuilder can be invoked from ANT generating all of the required artifacts to the file system, compiling them, and finally packaging them in a web archive that can be deployed to an active WebLogic instance.

File layout for this example:

   <example-root>
   |
   |  build.properties
   |  build.xml
   |  dbws-builder.xml
   | 
   \---jlib
   |
   |   eclipselink.jar
   |   eclipselink-dbwsutils.jar
   |   javax.servlet.jar
   |   javax.wsdl.jar
   |   ojdbc6.jar
   |   org.eclipse.persistence.oracleddlparser.jar
   |
   \---stage
   |
   |   (Artifacts will be generated here, most notably simpletable.war)
   |

To run the DBWS builder in this example, simply type ant in the example-root directory. The builder packages the generated artifacts into the web archive simpletable.war, which is placed the the stage directory. This .war file can then be deployed to WebLogic.

dbws-builder.xml

Following is the builder XML file used in this example:

<?xml version="1.0" encoding="UTF-8"?>
<dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <properties>
    <property name="projectName">simpletable</property>
    ... database properties
  </properties>
 
  <table
    schemaPattern="SCOTT"
    tableNamePattern="SIMPLETABLE"
  />
</dbws-builder>

build.xml

Following is the build XML file used for this example:

<?xml version="1.0"?>
<project name="simpletable" default="build">
  <property file="${basedir}/build.properties"/>
 
  <path id="build.path">
    <fileset
      dir="${jlib.dir}"
      includes="eclipselink.jar 
                eclipselink-dbwsutils.jar 
                org.eclipse.persistence.oracleddlparser.jar 
                javax.wsdl.jar 
                javax.servlet.jar 
                ojdbc6.jar"
      >
    </fileset>
  </path>
 
  <target name="build">
    <java
      classname="org.eclipse.persistence.tools.dbws.DBWSBuilder"
      fork="true"
      classpathRef="build.path"
      >
      <arg line="-builderFile ${dbws.builder.file} -stageDir ${stage.dir} -packageAs ${server.platform} ${ant.project.name}.war"/>
    </java>
  </target>
</project>

build.properties

Following is the build properties file used for this example:

custom = true
build.sysclasspath=ignore
 
stage.dir=${basedir}/stage
jlib.dir=${basedir}/jlib
server.platform=wls
dbws.builder.file=dbws-builder.xml

DBWSBuilder using javac

This example illustrates how DBWSBuilder can be invoked using javac generating all of the required artifacts to the file system, compiling them, and finally packaging them in a web archive that can be deployed to an active WebLogic instance.

A given builder XML file is parsed by the OXM Project org.eclipse.persistence.tools.dbws.DBWSBuilderModelProject producing model objects that represent properties, table and procedure operations. The public class org.eclipse.persistence.tools.dbws.DBWSBuilder can also be populated programmatically through property setters (i.e. setDriver(), setUrl(), etc.) and the operation setter addOperation(OperationModel operation).

The following code snippet shows

    builder = new DBWSBuilder();
 
    builder.setProjectName("simpleSP");
    builder.setLogLevel("fine");
    builder.setUsername("SCOTT");
    builder.setPassword("TIGER");
    builder.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
    builder.setDriver("oracle.jdbc.OracleDriver");
    builder.setPlatformClassname("org.eclipse.persistence.platform.database.oracle.Oracle11Platform);
 
    ProcedureOperationModel procOpModel = new ProcedureOperationModel();
    procOpModel.setName("VarcharTest");
    procOpModel.setCatalogPattern("TOPLEVEL");
    procOpModel.setProcedurePattern("VarcharSP");
    procOpModel.setReturnType("xsd:int");
    builder.addOperation(procOpModel);
 
    TableOperationModel tableOpModel = new TableOperationModel();
    tableOpModel.setSchemaPattern("%");
    tableOpModel.setTablePattern("SIMPLESP");
    procOpModel = new ProcedureOperationModel();
    procOpModel.setName("GetAllTest");
    procOpModel.setCatalogPattern("TOPLEVEL");
    procOpModel.setProcedurePattern("GetAll");
    procOpModel.setIsCollection(true);
    procOpModel.setReturnType("simplespType");
    tableOpModel.addOperation(procOpModel);
    builder.addOperation(tableOpModel);
 
    XRPackager xrPackager = new JSR109WebServicePackager();
    xrPackager.setDBWSBuilder(builder);
    builder.setPackager(xrPackager);
    xrPackager.setSessionsFileName(builder.getSessionsFileName());
    xrPackager.setStageDir(new File("."));
 
    builder.start();