X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=webservices%2Fcompbio%2Fws%2Fserver%2FClustalWS.java;h=3ba7d62bfe1265220a8a6b641081a637bd1e8784;hb=a966c1a63f4365f34a0567514dee6d1bc4d3af91;hp=93d0c7f534181a172ac74b8fb59105dc0d144b2a;hpb=021b24f125d8b1e8390e99b4a835469dabdd7be1;p=jabaws.git diff --git a/webservices/compbio/ws/server/ClustalWS.java b/webservices/compbio/ws/server/ClustalWS.java index 93d0c7f..3ba7d62 100644 --- a/webservices/compbio/ws/server/ClustalWS.java +++ b/webservices/compbio/ws/server/ClustalWS.java @@ -1,6 +1,6 @@ -/* Copyright (c) 2009 Peter Troshin +/* Copyright (c) 2011 Peter Troshin * - * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0 + * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0 * * This library is free software; you can redistribute it and/or modify it under the terms of the * Apache License version 2 as published by the Apache Software Foundation @@ -21,18 +21,18 @@ package compbio.ws.server; import java.io.File; import java.util.List; -import javax.annotation.Resource; import javax.jws.WebService; -import javax.xml.ws.WebServiceContext; import org.apache.log4j.Logger; +import compbio.data.msa.JABAService; import compbio.data.msa.MsaWS; import compbio.data.sequence.Alignment; import compbio.data.sequence.FastaSequence; import compbio.engine.AsyncExecutor; import compbio.engine.Configurator; import compbio.engine.client.ConfiguredExecutable; +import compbio.engine.client.SkeletalExecutable; import compbio.metadata.ChunkHolder; import compbio.metadata.JobStatus; import compbio.metadata.JobSubmissionException; @@ -46,20 +46,12 @@ import compbio.metadata.RunnerConfig; import compbio.metadata.WrongParameterException; import compbio.runner.Util; import compbio.runner.msa.ClustalW; -import compbio.util.Timer; -import compbio.ws.client.Services; -@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "ClustalWS") +@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = JABAService.SERVICE_NAMESPACE, serviceName = "ClustalWS") public class ClustalWS implements MsaWS { - // Ask for resource injection - @Resource - private WebServiceContext wsContext; - private static Logger log = Logger.getLogger(ClustalWS.class); - private static volatile WSLogger logger; - private static final RunnerConfig clustalOptions = Util .getSupportedOptions(ClustalW.class); @@ -69,35 +61,21 @@ public class ClustalWS implements MsaWS { private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new ClustalW().getType()); - /* - * Initialise the logger. This cannot be done in the constructor as the - * WebServiceContext is not available at the object construction time - */ - private WSLogger getLogger() { - if (logger == null) { - synchronized (ClustalWS.class) { - if (logger == null) { - logger = WSLogger.getStatLogger(Services.ClustalWS, - wsContext); - } - } - } - return logger; - } - @Override public String align(List sequences) throws JobSubmissionException { WSUtil.validateFastaInput(sequences); ConfiguredExecutable confClust = init(sequences); - return WSUtil.align(sequences, confClust, getLogger(), "align", - getLimit("")); + return WSUtil.align(sequences, confClust, log, "align", getLimit("")); } ConfiguredExecutable init(List dataSet) throws JobSubmissionException { ClustalW clustal = new ClustalW(); + clustal.setInput(SkeletalExecutable.INPUT) + .setOutput(SkeletalExecutable.OUTPUT) + .setError(SkeletalExecutable.ERROR); ConfiguredExecutable confClust = Configurator .configureExecutable(clustal, dataSet); return confClust; @@ -114,8 +92,7 @@ public class ClustalWS implements MsaWS { Limit limit = getLimit(preset.getName()); ConfiguredExecutable confClust = init(sequences); confClust.addParameters(preset.getOptions()); - return WSUtil.align(sequences, confClust, getLogger(), "presetAlign", - limit); + return WSUtil.align(sequences, confClust, log, "presetAlign", limit); } @Override @@ -128,39 +105,35 @@ public class ClustalWS implements MsaWS { ClustalW.KEY_VALUE_SEPARATOR); confClust.addParameters(params); log.info("Setting parameters: " + params); - return WSUtil.align(sequences, confClust, getLogger(), "customAlign", + return WSUtil.align(sequences, confClust, log, "customAlign", getLimit("")); } @Override public RunnerConfig getRunnerOptions() { - Timer timer = Timer.getMilliSecondsTimer(); - getLogger().logAll(timer, "getRunnerOptions"); return clustalOptions; } @SuppressWarnings("unchecked") @Override public Alignment getResult(String jobId) throws ResultNotAvailableException { - Timer timer = Timer.getMilliSecondsTimer(); + WSUtil.validateJobId(jobId); AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId); ConfiguredExecutable clustal = (ConfiguredExecutable) asyncEngine .getResults(jobId); Alignment al = clustal.getResults(); - getLogger().log(timer, "getResults", jobId); + return al; } @Override public Limit getLimit(String presetName) { - Timer timer = Timer.getMilliSecondsTimer(); if (limitMan == null) { // No limit is configured return null; } Limit limit = limitMan.getLimitByName(presetName); - getLogger().logAll(timer, "getLimit"); return limit; } @@ -171,37 +144,30 @@ public class ClustalWS implements MsaWS { @Override public boolean cancelJob(String jobId) { - Timer timer = Timer.getMilliSecondsTimer(); WSUtil.validateJobId(jobId); boolean result = WSUtil.cancelJob(jobId); - getLogger().logFine(timer, "Cancel"); return result; } @Override public JobStatus getJobStatus(String jobId) { - Timer timer = Timer.getMilliSecondsTimer(); WSUtil.validateJobId(jobId); JobStatus status = WSUtil.getJobStatus(jobId); - getLogger().logFine(timer, "getJobStatus"); return status; } @Override public PresetManager getPresets() { - Timer timer = Timer.getMilliSecondsTimer(); - getLogger().logAll(timer, "pullExecStatistics"); return clustalPresets; } @Override public ChunkHolder pullExecStatistics(String jobId, long position) { - Timer timer = Timer.getMilliSecondsTimer(); + WSUtil.validateJobId(jobId); String file = Configurator.getWorkDirectory(jobId) + File.separator + ClustalW.getStatFile(); ChunkHolder cholder = WSUtil.pullFile(file, position); - getLogger().logFine(timer, "pullExecStatistics"); return cholder; }