|
From: <bsc...@us...> - 2013-03-28 13:48:50
|
Revision: 16175
http://unicore.svn.sourceforge.net/unicore/?rev=16175&view=rev
Author: bschuller
Date: 2013-03-28 13:48:39 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
update tracer to 6.6.0 base libs
Modified Paths:
--------------
workflow/trunk/tracer/pom.xml
workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/InitTracer.java
workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceDBImpl.java
workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceImpl.java
workflow/trunk/tracer/src/test/java/org/chemomentum/tracer/test/TestTracerLocal.java
Removed Paths:
-------------
workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/Main.java
workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceKernel.java
Modified: workflow/trunk/tracer/pom.xml
===================================================================
--- workflow/trunk/tracer/pom.xml 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/pom.xml 2013-03-28 13:48:39 UTC (rev 16175)
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>eu.unicore.workflow</groupId>
<artifactId>tracer</artifactId>
- <version>2.3.0</version>
+ <version>2.4.0-rc</version>
<packaging>jar</packaging>
<description>Trace service</description>
@@ -17,7 +17,7 @@
<dependency>
<groupId>eu.unicore.workflow</groupId>
<artifactId>server-common</artifactId>
- <version>2.3.0</version>
+ <version>2.4.0-rc</version>
</dependency>
</dependencies>
Modified: workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/InitTracer.java
===================================================================
--- workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/InitTracer.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/InitTracer.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -1,5 +1,20 @@
package org.chemomentum.tracer;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.chemomentum.common.ws.ITrace;
+
+import de.fzj.unicore.persist.PersistenceProperties;
+import de.fzj.unicore.uas.impl.UASWSResourceImpl;
+import de.fzj.unicore.wsrflite.Home;
+import de.fzj.unicore.wsrflite.Kernel;
+import de.fzj.unicore.wsrflite.xmlbeans.impl.WSResourceImpl;
+import eu.unicore.util.Log;
+
/**
*
* Startup Runnable for uas.onstartup
@@ -8,8 +23,58 @@
*/
public class InitTracer implements Runnable {
+ private static final Logger logger=Log.getLogger(Log.SERVICES,InitTracer.class);
+
+ private final Kernel kernel;
+
+ public InitTracer(Kernel kernel){
+ this.kernel=kernel;
+ }
+
public void run() {
- TraceKernel.getKernel();
+ logger.info("Initializing Tracing Service...");
+
+ boolean serviceDeployed=true;
+ try{
+ serviceDeployed=createDefaultInstance();
+ }catch(Exception ex){
+ throw new RuntimeException(ex);
+ }
+ if(serviceDeployed){
+ String dbDir=kernel.getPersistenceProperties().getValue(PersistenceProperties.DB_DIRECTORY);
+ setupTraceDB(kernel, dbDir);
+ }
}
+
+ public static void setupTraceDB(Kernel kernel, String dbDir){
+ ITraceDB traceDB = new TraceDBImpl(
+ kernel.getContainerProperties().getThreadingServices().getScheduledExecutorService(),
+ dbDir);
+ kernel.setAttribute(ITraceDB.class, traceDB);
+ }
+ protected boolean createDefaultInstance() throws Exception{
+ Home home=kernel.getHome(ITrace.ServiceName);
+ if(home!=null){
+ //check if instance already exists
+ try{
+ if(home.get(TraceHomeImpl.DEFAULT_RESOURCE)!=null)return true;
+ }catch(Exception e){
+ //ok, does not exist
+ }
+
+ Map<String,Object>map=new HashMap<String,Object>();
+ map.put(WSResourceImpl.INIT_UNIQUE_ID,TraceHomeImpl.DEFAULT_RESOURCE);
+
+ //set lifetime to 100 years
+ Calendar c1=new GregorianCalendar();
+ c1.add(Calendar.YEAR,100);
+ map.put(WSResourceImpl.INIT_INITIAL_TERMINATION_TIME,c1);
+ map.put(UASWSResourceImpl.INITPARAM_PUBLISH_TO_REGISTRY,Boolean.TRUE);
+ home.createWSRFServiceInstance(map);
+ return true;
+ }
+ return false;
+ }
+
}
Deleted: workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/Main.java
===================================================================
--- workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/Main.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/Main.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -1,76 +0,0 @@
-/*
- * created on 29.07.2006
- *(c) Forschungszentrum Juelich GmbH
- */
-package org.chemomentum.tracer;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.namespace.QName;
-
-import org.chemomentum.common.util.Config;
-import org.chemomentum.common.ws.ITrace;
-
-import de.fzj.unicore.uas.UAS;
-/**
- * start the tracer service (in standalone server usage)
- *
- * @author schuller
- */
-public class Main {
-
- protected static String my_hostname = "localhost";
- protected static String my_port = "7779";
- protected static Logger logger=Logger.getLogger(Main.class.getName());
-
- // fallbacks when services config file can not be read
- public static String getWSRFConfig()
- {
-
- return "<services>\n"
- //some properties
- + "<property name=\"unicore.wsrflite.port\" value=\""+my_port+"\"/>\n"
- //the tracer service
- + "<service name=\""+ITrace.ServiceName+"\" wsrf=\"false\">\n"
- + "<interface class=\"" + ITrace.class.getName() + "\"/>\n"
- + "<implementation class=\"" + TraceImpl.class.getName()
- + "\"/>\n"
- + "</service>\n"
- +"</services>"
- ;
-
- }
-
- public void start(){
- logger.log(Level.INFO,"Starting Tracer service.");
- try{
- if(System.getProperty(Config.CONFIGFILE) == null) System.setProperty(Config.CONFIGFILE, "conf/uas.config");
- UAS uas = new UAS(System.getProperty(Config.CONFIGFILE));
- uas.startSynchronous();
-
- }catch(Exception e){
- logger.log(Level.SEVERE,"Error while deploying services.",e);
- }
-
- try {
- Config.scheduleComponentFinder();
- // initialize Tracing web service
- TraceKernel.getKernel();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- logger.log(Level.SEVERE,"",e);
- }
- logger.log(Level.INFO,"Tracer prototype server started.");
- }
-
-
- public QName getPortType()
- {
- return ITrace.PORT;
- }
-
- public static void main(String[] args){
- new Main().start();
- }
-}
Modified: workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceDBImpl.java
===================================================================
--- workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceDBImpl.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceDBImpl.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -39,14 +39,13 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.log4j.Logger;
-import org.chemomentum.common.util.Config;
import org.chemomentum.common.ws.ITrace;
import org.chemomentum.tracer.xmlbeans.EntryDocument.Entry;
-import de.fzj.unicore.uas.util.LogUtil;
-import de.fzj.unicore.wsrflite.ResourcePool;
+import eu.unicore.util.Log;
/**
* @author demuth
@@ -54,6 +53,8 @@
*/
public class TraceDBImpl implements ITraceDB {
+ private static final Logger logger=Log.getLogger(Log.SERVICES,TraceDBImpl.class);
+
protected Connection _conn;
private PreparedStatement _psInsertEntry;
@@ -63,12 +64,16 @@
protected String shutdownStatement="SHUTDOWN";
- private static final Logger logger=LogUtil.getLogger(LogUtil.SERVICES,TraceDBImpl.class);
-
private String dbname = "TracingDB";
- public TraceDBImpl()
+ private final ScheduledExecutorService executor;
+
+ private final String dbDir;
+
+ public TraceDBImpl(ScheduledExecutorService executor, String dbDir)
{
+ this.executor=executor;
+ this.dbDir=dbDir;
//create connection
try {
Class.forName(jdbcDriver);
@@ -145,7 +150,7 @@
* async erite
*/
public void writeAsync(final Entry entry) {
- ResourcePool.getExecutorService().execute(new Runnable(){
+ executor.execute(new Runnable(){
public void run(){
write(entry);
}
@@ -154,9 +159,8 @@
protected String createConnString(String dbname){
-
- String dir=Config.getProperty(Config.TRACER_DB_DIR);
- if(dir==null){
+ String dir=dbDir;
+ if(dbDir==null){
dir=System.getProperty("java.io.tmpdir");
logger.info("Using fallback directory as storage: "+dir);
}
Modified: workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceImpl.java
===================================================================
--- workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceImpl.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceImpl.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -106,6 +106,10 @@
}
}
+ protected ITraceDB getTraceDB(){
+ return kernel.getAttribute(ITraceDB.class);
+ }
+
@Override
protected void addWSResourceInterfaces(BPSupportImpl baseProfile) {
super.addWSResourceInterfaces(baseProfile);
@@ -154,7 +158,7 @@
}
if(e.getSourceID() == null) continue;
e.setTimeStamp(Calendar.getInstance());
- TraceKernel.getKernel().getTraceDB().writeAsync(e);
+ getTraceDB().writeAsync(e);
}
@@ -177,7 +181,7 @@
Trace trace = filtered.addNewFilterEntriesResponse().addNewTrace();
ResultSet r = null;
- ITraceDB traceDB = TraceKernel.getKernel().getTraceDB();
+ ITraceDB traceDB = getTraceDB();
if(field.equalsIgnoreCase(TIMESTAMP)) r = traceDB.query("SELECT * FROM entries WHERE "+field+" "+pattern);
else r = traceDB.query("SELECT * FROM entries WHERE "+field+" LIKE '"+pattern+"'");
trace.setEntryArray(ResultSet2EntryArray(r,columns));
@@ -205,7 +209,7 @@
ResultSet r;
String sql;
sql = QueryToSQLConverter.convertToNumberOfMessagesQuery(descr);
- r = TraceKernel.getKernel().getTraceDB().query(sql);
+ r = getTraceDB().query(sql);
r.next();
BigInteger anzahl=BigInteger.valueOf(r.getLong(1));
filtered.addNewFilterEntriesResponse().setNumberOfMessages(anzahl);
@@ -236,7 +240,7 @@
//get sql statement
sql = QueryToSQLConverter.convertToMessageQuery(descr,i);
- r = TraceKernel.getKernel().getTraceDB().query(sql);
+ r = getTraceDB().query(sql);
//get entries of resultset
Entry[] entries=ResultSet2EntryArray(r,(String[]) descr.getAttributes().toArray(new String[0]));
Deleted: workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceKernel.java
===================================================================
--- workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceKernel.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/main/java/org/chemomentum/tracer/TraceKernel.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -1,122 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2006 Forschungszentrum Juelich GmbH
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * (1) Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer at the end. Redistributions in
- * binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other
- * materials provided with the distribution.
- *
- * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * DISCLAIMER
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- ********************************************************************************/
-package org.chemomentum.tracer;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.chemomentum.common.util.Config;
-import org.chemomentum.common.ws.ITrace;
-
-import de.fzj.unicore.uas.impl.UASWSResourceImpl;
-import de.fzj.unicore.uas.util.LogUtil;
-import de.fzj.unicore.wsrflite.Home;
-import de.fzj.unicore.wsrflite.Kernel;
-import de.fzj.unicore.wsrflite.xmlbeans.impl.WSResourceImpl;
-
-/**
- * @author demuth
- *
- */
-public class TraceKernel {
-
- private static final Logger logger=LogUtil.getLogger(LogUtil.SERVICES,TraceKernel.class);
-
- protected static TraceKernel kernel;
- protected ITraceDB traceDB;
-
- private TraceKernel(){
- logger.info("Initializing Tracing Service...");
- traceDB = new TraceDBImpl();
- if(!Config.isUnitTesting())
- {
-
- createDefaultInstance();
- }
- }
-
- public static TraceKernel getKernel()
- {
- if(kernel == null) kernel = new TraceKernel();
- return kernel;
- }
-
-
-
-
- protected void createDefaultInstance() {
- try {
- Home home=Kernel.getKernel().getHome(ITrace.ServiceName);
- if(home!=null){
- //check if instance already exists
- try{
- if(home.get(TraceHomeImpl.DEFAULT_RESOURCE)!=null)return;
- }catch(Exception e){
- //ok, does not exist
- }
-
- Map<String,Object>map=new HashMap<String,Object>();
- map.put(WSResourceImpl.INIT_UNIQUE_ID,TraceHomeImpl.DEFAULT_RESOURCE);
-
- //set lifetime to 100 years
- Calendar c1=new GregorianCalendar();
- c1.add(Calendar.YEAR,100);
- map.put(WSResourceImpl.INIT_INITIAL_TERMINATION_TIME,c1);
- map.put(UASWSResourceImpl.INITPARAM_PUBLISH_TO_REGISTRY,Boolean.TRUE);
- home.createWSRFServiceInstance(map);
- }
- }catch(Exception e){
- logger.error("Could not add "+TraceHomeImpl.DEFAULT_RESOURCE,e);
-
- }
- }
-
- /**
- * @return the traceDB
- */
- public ITraceDB getTraceDB() {
- return traceDB;
- }
-
- /**
- * @param traceDB the traceDB to set
- */
- public void setTraceDB(ITraceDB traceDB) {
- this.traceDB = traceDB;
- }
-
-
-
-}
Modified: workflow/trunk/tracer/src/test/java/org/chemomentum/tracer/test/TestTracerLocal.java
===================================================================
--- workflow/trunk/tracer/src/test/java/org/chemomentum/tracer/test/TestTracerLocal.java 2013-03-28 13:12:47 UTC (rev 16174)
+++ workflow/trunk/tracer/src/test/java/org/chemomentum/tracer/test/TestTracerLocal.java 2013-03-28 13:48:39 UTC (rev 16175)
@@ -37,28 +37,26 @@
import java.util.List;
import java.util.Map;
-import org.chemomentum.common.util.Config;
import org.chemomentum.common.ws.IServiceOrchestrator;
import org.chemomentum.common.ws.ITrace;
import org.chemomentum.common.ws.IWorkflowFactory;
+import org.chemomentum.tracer.ITraceDB;
+import org.chemomentum.tracer.InitTracer;
import org.chemomentum.tracer.TraceHomeImpl;
-import org.chemomentum.tracer.TraceKernel;
import org.chemomentum.tracer.client.AndMessageQuery;
import org.chemomentum.tracer.client.IMessageQuery;
import org.chemomentum.tracer.client.PatternMessageQuery;
import org.chemomentum.tracer.client.TraceClient;
import org.chemomentum.tracer.client.TraceQueryDescription;
+import org.chemomentum.tracer.xmlbeans.EntryDocument.Entry;
import org.chemomentum.tracer.xmlbeans.FilterEntriesResponseDocument;
import org.chemomentum.tracer.xmlbeans.SendTraceRequestDocument;
-import org.chemomentum.tracer.xmlbeans.EntryDocument.Entry;
import org.chemomentum.tracer.xmlbeans.TraceDocument.Trace;
import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionDocument;
import org.w3.x2005.x08.addressing.EndpointReferenceType;
import de.fzj.unicore.uas.util.Pair;
-import de.fzj.unicore.wsrflite.DeploymentManager;
import de.fzj.unicore.wsrflite.Home;
-import de.fzj.unicore.wsrflite.Kernel;
import de.fzj.unicore.wsrflite.Service;
import de.fzj.unicore.wsrflite.ServiceConfiguration;
import de.fzj.unicore.wsrflite.xfire.LocalTestCase;
@@ -71,15 +69,21 @@
@Override
protected void addServices() throws Exception {
- ServiceConfiguration c=XFireServiceFactory.generateServiceConfig("Trace",ITrace.class,TraceHomeImpl.class,false);
+ ServiceConfiguration c=XFireServiceFactory.generateServiceConfig(kernel,"Trace",ITrace.class,TraceHomeImpl.class,false);
Service s=new XFireServiceFactory().build(c);
- DeploymentManager.getInstance().deployService(s);
+ kernel.getDeploymentManager().deployService(s);
+ InitTracer.setupTraceDB(kernel, "target/data");
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
+
+ protected ITraceDB getTraceDB(){
+ return kernel.getAttribute(ITraceDB.class);
+ }
+
public void test1() throws Exception{
@@ -89,12 +93,11 @@
WSUtilities.addUGSRefparamToEpr(epr, "test");
init.put(WSResourceImpl.INIT_UNIQUE_ID, "test");
- Home h=Kernel.getKernel().getHome("Trace");
+ Home h=kernel.getHome("Trace");
h.createWSRFServiceInstance(init);
- Config.setUnitTesting(true);
- TraceKernel.getKernel().getTraceDB().clear(); // make sure test db is empty at startup!
- TraceClient client = new TraceClient(epr, Kernel.getKernel().getSecurityProperties());
+ getTraceDB().clear(); // make sure test db is empty at startup!
+ TraceClient client = new TraceClient(epr, kernel.getClientConfiguration());
SendTraceRequestDocument r = createTrace();
client.trace(r);
@@ -108,7 +111,7 @@
assertEquals(expected,resultSetSize);
}
- TraceKernel.getKernel().getTraceDB().clear(); // make sure test db is empty at shutdown!
+ getTraceDB().clear(); // make sure test db is empty at shutdown!
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|