102 lines
3.3 KiB
Plaintext
102 lines
3.3 KiB
Plaintext
<%@ jet
|
|
imports="
|
|
org.talend.designer.codegen.config.CodeGeneratorArgument
|
|
org.talend.core.model.process.INode
|
|
org.talend.core.model.process.ElementParameterParser
|
|
org.talend.core.model.metadata.IMetadataTable
|
|
org.talend.core.model.metadata.types.JavaTypesManager
|
|
org.talend.core.model.metadata.MappingTypeRetriever
|
|
org.talend.core.model.metadata.MetadataTalendType
|
|
org.talend.core.model.process.IConnection
|
|
java.util.List
|
|
java.util.ArrayList
|
|
java.util.Map
|
|
java.util.HashMap
|
|
"
|
|
skeleton="../templates/db_output_bulk.skeleton"
|
|
%>
|
|
<%@ include file="../templates/DB/Output/HelpClass.javajet"%>
|
|
<%
|
|
class DBOutputBeginUtil extends DefaultDBOutputUtil{
|
|
private String frameworkType;
|
|
private String dbRootPath;
|
|
public void beforeComponentProcess(INode node){
|
|
super.beforeComponentProcess(node);
|
|
cid = node.getUniqueName();
|
|
this.frameworkType = ElementParameterParser.getValue(node,"__FRAMEWORK_TYPE__");
|
|
this.dbRootPath = ElementParameterParser.getValue(node, "__DBPATH__");
|
|
if(("EMBEDED").equals(frameworkType)){
|
|
%>
|
|
//set the root path of the database
|
|
System.setProperty("derby.system.home",<%=dbRootPath%>);
|
|
<%
|
|
}else{
|
|
String connectionFlag = ElementParameterParser.getValue(node, "__CONNECTION_FLAG__");
|
|
if(("false").equals(connectionFlag)) {
|
|
%>
|
|
org.apache.derby.drda.NetworkServerControl serverControl_<%=cid%>;
|
|
serverControl_<%=cid%> = new org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(<%=dbhost%>),Integer.parseInt(<%=dbport%>));
|
|
//start server
|
|
serverControl_<%=cid%>.start(new java.io.PrintWriter(System.out,true));
|
|
boolean isServerUp_<%=cid%> = false;
|
|
int timeOut_<%=cid%> = 5;
|
|
while(!isServerUp_<%=cid%> && timeOut_<%=cid%> > 0) {
|
|
try {
|
|
timeOut_<%=cid%>--;
|
|
/*
|
|
* testing for connection to see if the network server is up and running.
|
|
* if server is not ready yet, this method will throw an exception.
|
|
*/
|
|
serverControl_<%=cid%>.ping();
|
|
isServerUp_<%=cid%> = true;
|
|
} catch(java.lang.Exception e) {
|
|
//Unable to obtain a connection to network server, trying again after 3000 ms.
|
|
Thread.currentThread().sleep(3000);
|
|
}
|
|
}
|
|
if(!isServerUp_<%=cid%>) {
|
|
/*
|
|
* can not obtain a connection to network server.
|
|
*/
|
|
throw new java.lang.Exception("Can not obtain a connection to network server");
|
|
}
|
|
//derby network server started.
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
public String getDirverClassName(INode node){
|
|
if(("EMBEDED").equals(frameworkType)){
|
|
return "org.apache.derby.jdbc.EmbeddedDriver";
|
|
} else {
|
|
if(("JCCJDBC").equals(frameworkType)){
|
|
return "com.ibm.db2.jcc.DB2Driver";
|
|
} else{
|
|
return "org.apache.derby.jdbc.ClientDriver";
|
|
}
|
|
}
|
|
}
|
|
public void setURL(INode node) {
|
|
if(("EMBEDED").equals(frameworkType)){
|
|
%>
|
|
String url_<%=cid%> = "jdbc:derby:" + <%=dbname%>;
|
|
<%
|
|
}
|
|
else
|
|
{
|
|
if(("JCCJDBC").equals(frameworkType)){
|
|
%>
|
|
String url_<%=cid%> = "jdbc:derby:net://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%>;
|
|
<%
|
|
} else{
|
|
%>
|
|
String url_<%=cid%> = "jdbc:derby://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%>;
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dbOutputBeginUtil = new DBOutputBeginUtil();
|
|
%>
|
|
<%@ include file="../templates/DB/Output/AbstractDBOutputBegin.javajet"%>
|