summaryrefslogtreecommitdiff
path: root/qadevOOo/runner/convwatch/DB.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/runner/convwatch/DB.java')
-rw-r--r--qadevOOo/runner/convwatch/DB.java541
1 files changed, 541 insertions, 0 deletions
diff --git a/qadevOOo/runner/convwatch/DB.java b/qadevOOo/runner/convwatch/DB.java
new file mode 100644
index 000000000000..4f6ab74a738b
--- /dev/null
+++ b/qadevOOo/runner/convwatch/DB.java
@@ -0,0 +1,541 @@
+package convwatch;
+
+import java.sql.Connection;
+import java.util.StringTokenizer;
+import java.util.ArrayList;
+import helper.OSHelper;
+
+// import convwatch.DBHelper;
+
+public class DB extends DBHelper
+{
+ private static DB m_aDB = null;
+
+ // private ctor
+ private DB()
+ {
+ }
+
+ private static synchronized DB getDB()
+ {
+ if (m_aDB == null)
+ {
+ m_aDB = new DB();
+ }
+ return m_aDB;
+ }
+
+ private String m_sSourceVersion;
+ private String m_sDestinationVersion;
+ private String m_sDocumentPool;
+ private String m_sEnvironment;
+ private String m_sDocID;
+ private String m_sDBDistinct;
+
+ public static void init(String _sDBInfoString)
+ {
+ if (_sDBInfoString == null) return;
+ getDB().fillVariables(_sDBInfoString);
+ getDB().updatestate_status("source started");
+ }
+
+ public static void test()
+ {
+ getDB().sql_test();
+ }
+
+ public static void source_start()
+ {
+ getDB().updatestate_status("source started");
+ }
+
+ public static void source_finished()
+ {
+ getDB().updatestate_status( "source finished");
+ }
+
+ public static void source_failed(String _sMessage)
+ {
+ getDB().updatestate_status("source failed");
+ getDB().updateinfo_status(_sMessage);
+ }
+
+ public static void destination_start()
+ {
+ getDB().updatestate_status("destination started");
+ }
+
+ public static void destination_finished()
+ {
+ getDB().updatestate_status("PASSED-OK");
+ }
+
+ public static void destination_failed(String _sStatus, String _sMessage)
+ {
+ getDB().updatestate_status(_sStatus);
+ getDB().updateinfo_status(_sMessage);
+ }
+ public static void writeNumberOfPages(int _nPages)
+ {
+ getDB().updatepagecount_documents(_nPages);
+ }
+ public static void writeErrorFile(String _sErrorFile)
+ {
+ getDB().updateerrorfile_status(_sErrorFile);
+ }
+ public static void writeHTMLFile(String _sHTMLFile)
+ {
+ getDB().updatehtmlfile_status(_sHTMLFile);
+ }
+
+ public static void writeToDB(String _sFilename,
+ String _sBasename,
+ String _sFileFormat,
+ String _sBuildID,
+ String _sSourceType,
+ int _nResolution )
+ {
+ GlobalLogWriter.get().println("DB: Filename:" + _sFilename);
+ GlobalLogWriter.get().println("DB: Basename:" + _sBasename);
+ GlobalLogWriter.get().println("DB: FileFormat:" + _sFileFormat);
+ GlobalLogWriter.get().println("DB: BuildID:" + _sBuildID);
+ GlobalLogWriter.get().println("DB: SourceType:" + _sSourceType);
+ GlobalLogWriter.get().println("DB: Resolution:" + _nResolution);
+ }
+
+ private String getEnvironment()
+ {
+ if (OSHelper.isWindows())
+ {
+ return "wntmsci";
+ }
+ else if ( OSHelper.isSolarisIntel())
+ {
+ return "unxsoli";
+ }
+ else if ( OSHelper.isSolarisSparc())
+ {
+ return "unxsols";
+ }
+ else if ( OSHelper.isLinuxIntel())
+ {
+ return "unxlngi";
+ }
+ else
+ {
+ GlobalLogWriter.get().println("DB: Unknown environment.");
+ GlobalLogWriter.get().println("DB: os.name := " + System.getProperty("os.name").toLowerCase());
+ GlobalLogWriter.get().println("DB: os.arch := " + System.getProperty("os.arch"));
+ return "";
+ }
+ }
+
+ // fill some db access important variables with values given out of a simple string
+ // DOC_COMPARATOR_DB_INFO_STRING=p:m220,c:m224,d:demo_lla,src:m220,dest:m224,doc:demo_lla,id:294,distinct:81
+
+ private void fillVariables(String _sInfo)
+ {
+ fillDBConnection(_sInfo);
+ m_sEnvironment = getEnvironment();
+
+ StringTokenizer aTokenizer = new StringTokenizer(_sInfo,",",false);
+ while (aTokenizer.hasMoreTokens())
+ {
+ String sPart = aTokenizer.nextToken();
+ if (sPart.startsWith("p:"))
+ {
+ m_sSourceVersion = sPart.substring(2);
+ GlobalLogWriter.get().println("DB: source version: " + m_sSourceVersion);
+ }
+ else if (sPart.startsWith("src:"))
+ {
+ m_sSourceVersion = sPart.substring(4);
+ GlobalLogWriter.get().println("DB: source version: " + m_sSourceVersion);
+ }
+ else if (sPart.startsWith("c:"))
+ {
+ m_sDestinationVersion = sPart.substring(2);
+ GlobalLogWriter.get().println("DB: destination version: " + m_sDestinationVersion);
+ }
+ else if (sPart.startsWith("dest:"))
+ {
+ m_sDestinationVersion = sPart.substring(5);
+ GlobalLogWriter.get().println("DB: destination version: " + m_sDestinationVersion);
+ }
+ else if (sPart.startsWith("d:"))
+ {
+ m_sDocumentPool = sPart.substring(2);
+ GlobalLogWriter.get().println("DB: documentpool version: " + m_sDocumentPool);
+ }
+ else if (sPart.startsWith("doc:"))
+ {
+ m_sDocumentPool = sPart.substring(4);
+ GlobalLogWriter.get().println("DB: documentpool version: " + m_sDocumentPool);
+ }
+ else if (sPart.startsWith("id:"))
+ {
+ m_sDocID = sPart.substring(3);
+ GlobalLogWriter.get().println("DB: docid: " + m_sDocID);
+ }
+ else if (sPart.startsWith("distinct:"))
+ {
+ m_sDBDistinct = sPart.substring(9);
+ GlobalLogWriter.get().println("DB: distinct: " + m_sDBDistinct);
+ }
+ else
+ {
+ }
+ }
+ }
+
+ // public static void insertinto_file(String _sFilename,
+ // String _sBasename,
+ // String _sFileFormat,
+ // String _sBuildID,
+ // String _sSourceType,
+ // int _nResolution )
+ // {
+ // Connection aCon = new ShareConnection().getConnection();
+ //
+ // String sFilename = _sFilename.replace('\\', '/');
+ //
+ // String sDeleteOld = "DELETE FROM file WHERE filename = " + Quote(sFilename);
+ // ExecSQL(aCon, sDeleteOld);
+ //
+ // String sValueLine = "type, filename, basename, fileformat, buildid, resolution, date";
+ // StringBuffer aDataLine = new StringBuffer();
+ // aDataLine.append( Quote(_sSourceType) ) . append( sComma ) .
+ // append( Quote( sFilename) ) . append( sComma ) .
+ // append( Quote( _sBasename) ) . append( sComma ) .
+ // append( Quote( _sFileFormat) ) . append( sComma ) .
+ // append( Quote( _sBuildID) ) . append( sComma ) .
+ // append( _nResolution) . append( sComma ) .
+ // append( Quote( today() ) );
+ //
+ // SQLinsertValues(aCon, "file", sValueLine, aDataLine.toString());
+ // }
+
+ // public static void updatestate_currentdocs(String _sFilename,
+ // String _sState)
+ // {
+ // Connection aCon = new ShareConnection().getConnection();
+ //
+ // String sFilename = _sFilename.replace('\\', '/');
+ //
+ // // String sDeleteOld = "DELETE FROM file WHERE filename = " + Quote(sFilename);
+ // // ExecSQL(aCon, sDeleteOld);
+ //
+ // String sSet = "state=" + Quote(_sState);
+ // String sWhere = getWhereClause() + sAND + "name=" + Quote(sFilename);
+ // SQLupdateValue( aCon, "currentdocs", sSet, sWhere );
+ // }
+
+ private void sql_test()
+ {
+ String sUUID = getDBDistinct();
+ System.out.println("UUID: " + sUUID);
+ }
+
+ public ArrayList QuerySQL(Connection _aCon, String _sSQL)
+ {
+ java.sql.Statement oStmt = null;
+ Connection oCon = null;
+ ArrayList aResultList = new ArrayList();
+ try
+ {
+ oStmt = _aCon.createStatement();
+
+ java.sql.ResultSet aResultSet = oStmt.executeQuery(_sSQL);
+ java.sql.ResultSetMetaData aResultSetMetaData = aResultSet.getMetaData();
+
+ int nColumnCount = aResultSetMetaData.getColumnCount(); // java sql starts with '1'
+ // String[] aColumnName = new String[nColumnCount];
+ // for(int i=1;i<nColumnCount;i++)
+ // {
+ // String aColumnName[i - 1] = aResultSetMetaData.getColumnName(i);
+ // }
+
+ while( aResultSet.next() )
+ {
+ StringBuffer aResult = new StringBuffer();
+ try
+ {
+ Object aObj = null;
+
+
+ aResult.append("sqlresult: ");
+ for (int i=1;i<=nColumnCount;i++)
+ {
+ String sColumnName = aResultSetMetaData.getColumnName(i);
+ aResult.append(sColumnName).append("=");
+ String sValue;
+ int nSQLType = aResultSetMetaData.getColumnType(i);
+ switch(nSQLType)
+ {
+ case java.sql.Types.VARCHAR:
+ sValue = "'" + aResultSet.getString(i) + "'";
+ break;
+ case java.sql.Types.INTEGER:
+ {
+ int nValue = aResultSet.getInt(i);
+ sValue = String.valueOf(nValue);
+ break;
+ }
+
+ default:
+ sValue = "UNSUPPORTED TYPE";
+ }
+ aResult.append(sValue).append(", ");
+ // String sName = aObj.getClass().getName();
+ // System.out.println("sqlresult: Class name: " + sName);
+ }
+ String sResult = aResult.toString();
+ aResultList.add(sResult);
+ // System.out.println(sResult);
+ }
+ catch (java.sql.SQLException e)
+ {
+ }
+ }
+ }
+ catch (java.sql.SQLException e)
+ {
+ String sError = e.getMessage();
+ GlobalLogWriter.get().println("DB: Original SQL error: " + sError);
+ // throw new ValueNotFoundException("Cant execute SQL: " + _sSQL);
+ }
+ return aResultList;
+ }
+
+ private void updatestate_status(String _sStatus)
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ // String sInfo = _sInfo.replace('\\', '/');
+
+ // String sDeleteOld = "DELETE FROM file WHERE filename = " + Quote(sFilename);
+ // ExecSQL(aCon, sDeleteOld);
+
+ String sSet = "state=" + Quote(_sStatus);
+ String sWhere = getWhereClause();
+ if (sWhere.length() > 0)
+ {
+ SQLupdateValue( aCon, "status", sSet, sWhere );
+ }
+ }
+ private void updateinfo_status(String _sInfo)
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ // String sInfo = _sInfo.replace('\\', '/');
+
+ // String sDeleteOld = "DELETE FROM file WHERE filename = " + Quote(sFilename);
+ // ExecSQL(aCon, sDeleteOld);
+
+ String sSet = "info=" + Quote(_sInfo);
+ String sWhere = getWhereClause();
+ SQLupdateValue( aCon, "status", sSet, sWhere );
+ }
+ private void updateerrorfile_status(String _sErrorFile)
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ String sErrorFile = _sErrorFile.replace('\\', '/');
+
+ String sSet = "errorfile=" + Quote(sErrorFile);
+ String sWhere = getWhereClause();
+ SQLupdateValue( aCon, "status", sSet, sWhere );
+ }
+ private void updatehtmlfile_status(String _sHtmlFile)
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ String sHtmlFile = _sHtmlFile.replace('\\', '/');
+
+ String sSet = "htmlfile=" + Quote(sHtmlFile);
+ String sWhere = getWhereClause();
+ SQLupdateValue( aCon, "status", sSet, sWhere );
+ }
+ private void updatepagecount_documents(int _nPageCount)
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ String sSet = "pagecount=" + _nPageCount;
+ String sWhere = getWhereClause();
+ SQLupdateValue( aCon, "documents", sSet, sWhere );
+
+ }
+
+
+ private String getWhereClause()
+ {
+ StringBuffer aWhereClause = new StringBuffer();
+ // WHERE environment='' and referenceversion='' and currentversion='' and documentpool=''
+ // aWhere.append( "environment" ). append(sEqual) . append(Quote(m_sEnvironment)) .
+ // append(sAND) .
+ // append( "referenceversion" ). append(sEqual) . append(Quote(m_sSourceVersion)) .
+ // append(sAND) .
+ // append( "currentversion" ). append(sEqual) . append(Quote(m_sDestinationVersion)) .
+ // append(sAND) .
+ // append( "documentpool" ). append(sEqual) . append(Quote(m_sDocumentPool));
+ boolean bAND = false;
+ if (m_sDocID != null)
+ {
+ aWhereClause.append( "docid" ). append(sEqual) . append(m_sDocID);
+ bAND = true;
+ }
+ if (bAND)
+ {
+ aWhereClause.append(sAND);
+ }
+ if (m_sDBDistinct != null)
+ {
+ aWhereClause.append( "dbdistinct2" ). append(sEqual) . append(Quote(m_sDBDistinct));
+ }
+ return aWhereClause.toString();
+ }
+
+ private String getDBDistinct()
+ {
+ Connection aCon = new ShareConnection().getConnection();
+
+ String sSQL = "SELECT uuid()";
+ ArrayList aResultList = QuerySQL(aCon, sSQL);
+
+ for (int i=0;i<aResultList.size();i++)
+ {
+ String sResult = (String)aResultList.get(i);
+
+ StringTokenizer aTokenizer = new StringTokenizer(sResult,",",false);
+ while (aTokenizer.hasMoreTokens())
+ {
+ String sToken = aTokenizer.nextToken();
+ // System.out.println("PART: " + sToken);
+ int nIndex = sToken.indexOf("uuid()=");
+ // System.out.println("Index " + nIndex);
+ int nIndexTuettel = sToken.indexOf("'", nIndex);
+ // System.out.println("IndexTuettel " + nIndexTuettel);
+ int nIndexTuettel2 = sToken.lastIndexOf("'");
+ // System.out.println("IndexTuettel2 " + nIndexTuettel2);
+ String sUuid = sToken.substring(nIndexTuettel + 1, nIndexTuettel2);
+ // if (sPart.startsWith("p:"))
+ // {
+ // m_sSourceVersion = sPart.substring(2);
+ // GlobalLogWriter.get().println("DB: source version: " + m_sSourceVersion);
+ // }
+ return sUuid;
+ }
+ // System.out.println(sResult);
+ }
+
+ return "0";
+ }
+
+ public static void insertinto_documentcompare(String _sSourceVersion, String _sSourceName, String _sSourceCreatorType,
+ String _sDestinationVersion, String _sDestinationName, String _sDestinationCreatorType,
+ String _sDocumentPoolDir, String _sDocumentPoolName, String _sMailAddress,
+ String _sSpecial, String _sParentDistinct)
+ {
+ getDB().insertinto_documentcompare_impl( _sSourceVersion, _sSourceName, _sSourceCreatorType,
+ _sDestinationVersion, _sDestinationName, _sDestinationCreatorType,
+ _sDocumentPoolDir, _sDocumentPoolName, _sMailAddress,
+ _sSpecial, _sParentDistinct);
+ }
+
+ private void insertinto_documentcompare_impl(String _sSourceVersion, String _sSourceName, String _sSourceCreatorType,
+ String _sDestinationVersion, String _sDestinationName, String _sDestinationCreatorType,
+ String _sDocumentPoolDir, String _sDocumentPoolName, String _sMailAddress,
+ String _sSpecial, String _sParentDistinct)
+ {
+ // $sSQLInsert = "INSERT INTO documentcompare
+ if (_sParentDistinct == null)
+ {
+ _sParentDistinct = "";
+ }
+
+ Connection aCon = new ShareConnection().getConnection();
+
+ String sValueLine="dbdistinct2, environment, sourceversion, sourcename, sourcecreatortype, destinationversion, destinationname, destinationcreatortype, documentpoolpath, documentpool, mailfeedback, state, special, parentdistinct, startdate";
+ String sDocumentPoolDir = _sDocumentPoolDir.replace('\\', '/');
+ StringBuffer aDataLine = new StringBuffer();
+ aDataLine.append( Quote(getDBDistinct()) ) . append( sComma ) .
+ append( Quote( getEnvironment()) ) . append( sComma ) .
+ append( Quote( _sSourceVersion) ) . append( sComma ) .
+ append( Quote( _sSourceName) ) . append( sComma ) .
+ append( Quote( _sSourceCreatorType ) ) . append( sComma ) .
+ append( Quote( _sDestinationVersion) ) . append( sComma ) .
+ append( Quote( _sDestinationName) ) . append( sComma ) .
+ append( Quote( _sDestinationCreatorType ) ) . append( sComma ) .
+ append( Quote( sDocumentPoolDir) ) . append( sComma ) .
+ append( Quote( _sDocumentPoolName) ) . append( sComma ) .
+ append( Quote( _sMailAddress) ) . append( sComma ) .
+ append( Quote( "new" )) . append ( sComma ) .
+ append( Quote( _sSpecial ) ) . append( sComma ) .
+ append( Quote( _sParentDistinct ) ) . append( sComma ) .
+ append( Quote( today() ));
+
+ SQLinsertValues(aCon, "documentcompare", sValueLine, aDataLine.toString());
+ }
+
+ // public static void filesRemove(String _sDBInfoString)
+ // {
+ // if (_sDBInfoString == null) return;
+ // fillVariables(_sDBInfoString);
+ //
+ // Connection aCon = new ShareConnection().getConnection();
+ //
+ // String sDeleteSQL = "DELETE FROM currentdocs WHERE " + getWhereClause();
+ //
+ // ExecSQL(aCon, sDeleteSQL);
+ // }
+ //
+ // public static void fileInsert(String _sDBInfoString,
+ // String _sFilename,
+ // String _sRemovePath)
+ // {
+ // if (_sDBInfoString == null) return;
+ // fillVariables(_sDBInfoString);
+ //
+ // String sFilename = _sFilename.replace('\\', '/');
+ //
+ // Connection aCon = new ShareConnection().getConnection();
+ //
+ // String sValueLine = "environment, referenceversion, currentversion, documentpool, name, state";
+ // StringBuffer aDataLine = new StringBuffer();
+ // aDataLine.append( Quote(m_sEnvironment) ) . append( sComma ) .
+ // append( Quote( m_sSourceVersion) ) . append( sComma ) .
+ // append( Quote( m_sDestinationVersion) ) . append( sComma ) .
+ // append( Quote( m_sDocumentPool) ) . append( sComma ) .
+ // append( Quote( sFilename) ) . append( sComma ) .
+ // append( Quote( "undone"));
+ //
+ // SQLinsertValues(aCon, "currentdocs", sValueLine, aDataLine.toString());
+ // }
+
+
+ // public static void insertinto_file(String _sFilename, String _sFileFormat, String _sBuildID)
+ // {
+ // Connection aCon = new ShareConnection().getConnection();
+ //
+ // String sValueLine = "type, filename, fileformat, buildid, date";
+ // StringBuffer aDataLine = new StringBuffer();
+ // aDataLine.append( "1" ) . append( sComma ) .
+ // append( Quote( _sFilename) ) . append( sComma ) .
+ // append( Quote( _sFileFormat) ) . append( sComma ) .
+ // append( Quote( _sBuildID) ) . append( sComma ) .
+ // append( Quote( today() ) );
+ //
+ // SQLinsertValues(aCon, "file", sValueLine, aDataLine.toString());
+ // }
+
+ // public static void main( String[] args )
+ // {
+ //
+ // String _sFilename = "";
+ // String _sFileFormat = "";
+ // String _sBuildID = "";
+ //
+ // // insertinto_file("c:\temp\test.txt", "test", "txt", "nix", "", 0);
+ // fillVariables("p:m128,c:m134,d:demo");
+ // }
+}