Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/DBWS/DBWSBuilderAPI"

(DBWSBuilder API)
m (Replacing page with 'For "Using DBWSBuilder API," see http://www.eclipse.org/eclipselink/documentation/2.4/dbws/overview002.htm Category: DBWS')
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
==DBWSBuilder API==
+
For "Using DBWSBuilder API," see http://www.eclipse.org/eclipselink/documentation/2.4/dbws/overview002.htm
<onlyinclude>
+
The EclipseLink DBWS design-time utility - <tt>DBWSBuilder</tt> - is a Java application that generates EclipseLink DBWS files and assembles them into deployable archives. <br />
+
It is normally invoked from the command-line via its <code>main</code> method:
+
<css>
+
  .source-text {padding: 1em; border: 1px solid; color: black; background-color: #ffffff;}
+
</css>
+
<source lang="text">
+
prompt > dbwsbuilder.cmd -builderFile {path_to_builder.xml} -stageDir {path_to_stageDir} -packageAs {packager}
+
</source>
+
The given builder XML file is parsed:
+
<css>
+
  .source-xml {padding: 1em; border: 1px solid; color: black; background-color: #ffffff;}
+
</css>
+
<source lang="xml">
+
<?xml version="1.0" encoding="UTF-8"?>
+
<dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
    <properties>
+
        <property name="projectName">test</property>
+
        <property name="driver">oracle.jdbc.OracleDriver</property>
+
        <property name="password">tiger</property>
+
        <property name="url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
+
        <property name="username">scott</property>
+
    </properties>
+
    <table
+
      catalogPattern="%"
+
      schemaPattern="SCOTT"
+
      tableNamePattern="EMP"
+
    />
+
</dbws-builder>
+
</source>
+
by the OXM Project <code>o.e.p.tools.dbws.DBWSBuilderModelProject</code> producing model objects that represent <tt>properties</tt> and <tt>&lt;table&gt;</tt> operations. Thus the public class <b><code>org.eclipse.persistence.tools.dbws.DBWSBuilder</code></b> can be populated
+
programmatically through property setters (i.e. <b><code>setDriver()</code></b>, <b><code>setUrl()</code></b>)  - table or procedure operations<br/>
+
can be added via the public <b><code>addDbTable()</code></b> and <b><code>addDbStoredProcedure()</code></b> methods; SQL operations via <b><code>addSqlOperation()</code></b>.
+
 
+
The <tt>packager</tt> specified on the command-line is represented by a class that implements the <code>o.e.p.tools.dbws.DBWSPackager</code> interface. There is a hierarchy of concrete implementations of this interface:
+
[[Image:DBWSPackagerHierarchy.png]]
+
 
+
The primary responsibility of a <code>DBWSPackager</code> is to provide <code>java.io.OutputStream</code>'s for the output generated by <code>DBWSBuilder</code>:
+
<source lang="java" enclose="div">
+
    // call-backs for stream management
+
    public OutputStream getSchemaStream() throws FileNotFoundException;
+
    public void closeSchemaStream(OutputStream schemaStream);
+
 
+
    public OutputStream getSessionsStream(String sessionsFileName) throws FileNotFoundException;
+
    public void closeSessionsStream(OutputStream sessionsStream);
+
 
+
    public OutputStream getServiceStream() throws FileNotFoundException;
+
    public void closeServiceStream(OutputStream serviceStream);
+
 
+
    public OutputStream getOrStream() throws FileNotFoundException;
+
    public void closeOrStream(OutputStream orStream);
+
 
+
    public OutputStream getOxStream() throws FileNotFoundException;
+
    public void closeOxStream(OutputStream oxStream);
+
 
+
    public OutputStream getWSDLStream() throws FileNotFoundException;
+
    public void closeWSDLStream(OutputStream wsdlStream);
+
 
+
    public OutputStream getSWARefStream() throws FileNotFoundException;
+
    public void closeSWARefStream(OutputStream swarefStream);
+
 
+
    public OutputStream getWebXmlStream() throws FileNotFoundException;
+
    public void closeWebXmlStream(OutputStream webXmlStream);
+
 
+
    public OutputStream getProviderClassStream() throws FileNotFoundException;
+
    public void closeProviderClassStream(OutputStream codeGenProviderStream);
+
 
+
    public OutputStream getProviderSourceStream() throws FileNotFoundException;
+
    public void closeProviderSourceStream(OutputStream sourceProviderStream);
+
</source>
+
Once all the model objects have been built, the builder is invoked either through the <b><code>start()</code></b> method,
+
or alternatively via the <b><code>build(...)</code></b> metho, which overrides the streams from the <code>DBWSPackager</code>,
+
allowing the user to managed the streams.
+
<source lang="java" enclose="div">
+
public void start() ...
+
 
+
public void build(OutputStream dbwsSchemaStream, OutputStream dbwsSessionsStream,
+
        OutputStream dbwsServiceStream, OutputStream dbwsOrStream, OutputStream dbwsOxStream,
+
        OutputStream swarefStream, OutputStream webXmlStream, OutputStream wsdlStream,
+
        OutputStream codeGenProviderStream, OutputStream sourceProviderStream, Logger logger)
+
...
+
</source>
+
 
+
</onlyinclude>
+
  
 
[[Category: DBWS]]
 
[[Category: DBWS]]

Latest revision as of 08:48, 1 November 2012

For "Using DBWSBuilder API," see http://www.eclipse.org/eclipselink/documentation/2.4/dbws/overview002.htm

Back to the top