-package compbio.ws.server;\r
-\r
-import java.io.File;\r
-import java.util.List;\r
-\r
-import javax.jws.WebService;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import compbio.data.msa.JABAService;\r
-import compbio.data.msa.MsaWS;\r
-import compbio.data.sequence.Alignment;\r
-import compbio.data.sequence.JpredAlignment;\r
-import compbio.data.sequence.FastaSequence;\r
-import compbio.engine.AsyncExecutor;\r
-import compbio.engine.Configurator;\r
-import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.engine.client.Executable;\r
-import compbio.engine.client.SkeletalExecutable;\r
-import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobStatus;\r
-import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.Limit;\r
-import compbio.metadata.LimitsManager;\r
-import compbio.metadata.Option;\r
-import compbio.metadata.Preset;\r
-import compbio.metadata.PresetManager;\r
-import compbio.metadata.ResultNotAvailableException;\r
-import compbio.metadata.RunnerConfig;\r
-import compbio.metadata.WrongParameterException;\r
-import compbio.runner.Util;\r
-import compbio.runner.predictors.Jpred;\r
-\r
-@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = JABAService.SERVICE_NAMESPACE, serviceName = "JpredWS")\r
-public class JpredWS implements MsaWS<Jpred> {\r
-\r
- private static Logger log = Logger.getLogger(JpredWS.class);\r
-\r
- private static final RunnerConfig<Jpred> jpredOptions = Util.getSupportedOptions(Jpred.class);\r
- private static final PresetManager<Jpred> jpredPresets = Util.getPresets(Jpred.class);\r
- private static final LimitsManager<Jpred> limitMan = compbio.engine.client.Util.getLimits(new Jpred().getType());\r
-\r
- @Override\r
- public String align(List<FastaSequence> sequences)\r
- throws JobSubmissionException {\r
-\r
- WSUtil.validateFastaInput(sequences);\r
- ConfiguredExecutable<Jpred> confClust = init(sequences);\r
- return WSUtil.align(sequences, confClust, log, "align", getLimit(""));\r
- }\r
-\r
- ConfiguredExecutable<Jpred> init(List<FastaSequence> dataSet)\r
- throws JobSubmissionException {\r
- Jpred jpred = new Jpred();\r
- jpred.setInput(SkeletalExecutable.INPUT);\r
- jpred.setOutput(SkeletalExecutable.OUTPUT);\r
- jpred.setError(SkeletalExecutable.ERROR);\r
- ConfiguredExecutable<Jpred> confJpred = Configurator.configureExecutable(jpred, dataSet);\r
- // Set the number of threads for the cluster execution from conf file\r
- if (confJpred.getExecProvider() == Executable.ExecProvider.Cluster) {\r
- int clusterCpuNum = SkeletalExecutable.getClusterCpuNum(jpred.getType());\r
- if (clusterCpuNum != 0) {\r
- jpred.setNCore(clusterCpuNum);\r
- }\r
- }\r
- return confJpred;\r
- }\r
-\r
- @Override\r
- public String presetAlign(List<FastaSequence> sequences,\r
- Preset<Jpred> preset) throws JobSubmissionException,\r
- WrongParameterException {\r
- WSUtil.validateFastaInput(sequences);\r
- if (preset == null) {\r
- throw new WrongParameterException("Preset must be provided!");\r
- }\r
- Limit<Jpred> limit = getLimit(preset.getName());\r
- ConfiguredExecutable<Jpred> confClust = init(sequences);\r
- confClust.addParameters(preset.getOptions());\r
- return WSUtil.align(sequences, confClust, log, "presetAlign", limit);\r
- }\r
-\r
- @Override\r
- public String customAlign(List<FastaSequence> sequences,\r
- List<Option<Jpred>> options) throws JobSubmissionException,\r
- WrongParameterException {\r
- WSUtil.validateFastaInput(sequences);\r
- ConfiguredExecutable<Jpred> confClust = init(sequences);\r
- List<String> params = WSUtil.getCommands(options, Jpred.KEY_VALUE_SEPARATOR);\r
- confClust.addParameters(params);\r
- log.info("Setting parameters: " + params);\r
- return WSUtil.align(sequences, confClust, log, "customAlign", getLimit(""));\r
- }\r
-\r
- @Override\r
- public RunnerConfig<Jpred> getRunnerOptions() {\r
- return jpredOptions;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- public Alignment getResult(String jobId) throws ResultNotAvailableException {\r
- WSUtil.validateJobId(jobId);\r
- AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
- ConfiguredExecutable<Jpred> jpred = (ConfiguredExecutable<Jpred>) asyncEngine.getResults(jobId);\r
- return (Alignment)jpred.getResults();\r
- }\r
-\r
- @Override\r
- public Limit<Jpred> getLimit(String presetName) {\r
- if (limitMan == null) {\r
- // No limit is configured\r
- return null;\r
- }\r
- Limit<Jpred> limit = limitMan.getLimitByName(presetName);\r
- return limit;\r
- }\r
-\r
- @Override\r
- public LimitsManager<Jpred> getLimits() {\r
- return limitMan;\r
- }\r
-\r
- @Override\r
- public boolean cancelJob(String jobId) {\r
- WSUtil.validateJobId(jobId);\r
- boolean result = WSUtil.cancelJob(jobId);\r
- return result;\r
- }\r
-\r
- @Override\r
- public JobStatus getJobStatus(String jobId) {\r
- WSUtil.validateJobId(jobId);\r
- JobStatus status = WSUtil.getJobStatus(jobId);\r
- return status;\r
- }\r
-\r
- @Override\r
- public PresetManager<Jpred> getPresets() {\r
- return jpredPresets;\r
- }\r
-\r
- @Override\r
- public ChunkHolder pullExecStatistics(String jobId, long position) {\r
- WSUtil.validateJobId(jobId);\r
- String file = Configurator.getWorkDirectory(jobId) + File.separator + Jpred.getStatFile();\r
- ChunkHolder cholder = WSUtil.pullFile(file, position);\r
- return cholder;\r
- }\r
-\r
-}\r
+//package compbio.ws.server;\r
+//\r
+//import java.io.File;\r
+//import java.util.List;\r
+//\r
+//import javax.jws.WebService;\r
+//\r
+//import org.apache.log4j.Logger;\r
+//\r
+//import compbio.data.msa.JABAService;\r
+//import compbio.data.msa.MsaWS;\r
+//import compbio.data.sequence.Alignment;\r
+//import compbio.data.sequence.JpredAlignment;\r
+//import compbio.data.sequence.FastaSequence;\r
+//import compbio.engine.AsyncExecutor;\r
+//import compbio.engine.Configurator;\r
+//import compbio.engine.client.ConfiguredExecutable;\r
+//import compbio.engine.client.Executable;\r
+//import compbio.engine.client.SkeletalExecutable;\r
+//import compbio.engine.client.EngineUtil;\r
+//import compbio.metadata.ChunkHolder;\r
+//import compbio.metadata.JobStatus;\r
+//import compbio.metadata.JobSubmissionException;\r
+//import compbio.metadata.Limit;\r
+//import compbio.metadata.LimitsManager;\r
+//import compbio.metadata.Option;\r
+//import compbio.metadata.Preset;\r
+//import compbio.metadata.PresetManager;\r
+//import compbio.metadata.ResultNotAvailableException;\r
+//import compbio.metadata.RunnerConfig;\r
+//import compbio.metadata.WrongParameterException;\r
+//import compbio.runner.RunnerUtil;\r
+//import compbio.runner.predictors.Jpred;\r
+//\r
+//@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "JpredWS")\r
+//public class JpredWS implements MsaWS<Jpred> {\r
+//\r
+// private static Logger log = Logger.getLogger(JpredWS.class);\r
+//\r
+// private static final RunnerConfig<Jpred> jpredOptions = RunnerUtil.getSupportedOptions(Jpred.class);\r
+// private static final PresetManager<Jpred> jpredPresets = RunnerUtil.getPresets(Jpred.class);\r
+// private static final LimitsManager<Jpred> limitMan = EngineUtil.getLimits(new Jpred().getType());\r
+//\r
+// @Override\r
+// public String align(List<FastaSequence> sequences)\r
+// throws JobSubmissionException {\r
+// WSUtil.validateFastaInput(sequences);\r
+// ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+// return WSUtil.align(sequences, confClust, log, "align", getLimit(""));\r
+// }\r
+//\r
+// ConfiguredExecutable<Jpred> init(List<FastaSequence> dataSet)\r
+// throws JobSubmissionException {\r
+// Jpred jpred = new Jpred();\r
+// jpred.setInput(SkeletalExecutable.INPUT);\r
+// jpred.setOutput(SkeletalExecutable.OUTPUT);\r
+// jpred.setError(SkeletalExecutable.ERROR);\r
+// ConfiguredExecutable<Jpred> confJpred = Configurator.configureExecutable(jpred, dataSet);\r
+// // Set the number of threads for the cluster execution from conf file\r
+// if (confJpred.getExecProvider() == Executable.ExecProvider.Cluster) {\r
+// int clusterCpuNum = SkeletalExecutable.getClusterCpuNum(jpred.getType());\r
+// if (clusterCpuNum != 0) {\r
+// jpred.setNCore(clusterCpuNum);\r
+// }\r
+// }\r
+// return confJpred;\r
+// }\r
+//\r
+// @Override\r
+// public String presetAlign(List<FastaSequence> sequences,\r
+// Preset<Jpred> preset) throws JobSubmissionException,\r
+// WrongParameterException {\r
+// WSUtil.validateFastaInput(sequences);\r
+// if (preset == null) {\r
+// throw new WrongParameterException("Preset must be provided!");\r
+// }\r
+// Limit<Jpred> limit = getLimit(preset.getName());\r
+// ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+// confClust.addParameters(preset.getOptions());\r
+// return WSUtil.align(sequences, confClust, log, "presetAlign", limit);\r
+// }\r
+//\r
+// @Override\r
+// public String customAlign(List<FastaSequence> sequences,\r
+// List<Option<Jpred>> options) throws JobSubmissionException,\r
+// WrongParameterException {\r
+// WSUtil.validateFastaInput(sequences);\r
+// ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+// List<String> params = WSUtil.getCommands(options, Jpred.KEY_VALUE_SEPARATOR);\r
+// confClust.addParameters(params);\r
+// log.info("Setting parameters: " + params);\r
+// return WSUtil.align(sequences, confClust, log, "customAlign", getLimit(""));\r
+// }\r
+//\r
+// @Override\r
+// public RunnerConfig<Jpred> getRunnerOptions() {\r
+// return jpredOptions;\r
+// }\r
+//\r
+// @SuppressWarnings("unchecked")\r
+// @Override\r
+// public Alignment getResult(String jobId) throws ResultNotAvailableException {\r
+// WSUtil.validateJobId(jobId);\r
+// AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
+// ConfiguredExecutable<Jpred> jpred = (ConfiguredExecutable<Jpred>) asyncEngine.getResults(jobId);\r
+// return (Alignment)jpred.getResults();\r
+// }\r
+//\r
+// @Override\r
+// public Limit<Jpred> getLimit(String presetName) {\r
+// if (limitMan == null) {\r
+// // No limit is configured\r
+// return null;\r
+// }\r
+// Limit<Jpred> limit = limitMan.getLimitByName(presetName);\r
+// return limit;\r
+// }\r
+//\r
+// @Override\r
+// public LimitsManager<Jpred> getLimits() {\r
+// return limitMan;\r
+// }\r
+//\r
+// @Override\r
+// public boolean cancelJob(String jobId) {\r
+// WSUtil.validateJobId(jobId);\r
+// boolean result = WSUtil.cancelJob(jobId);\r
+// return result;\r
+// }\r
+//\r
+// @Override\r
+// public JobStatus getJobStatus(String jobId) {\r
+// WSUtil.validateJobId(jobId);\r
+// JobStatus status = WSUtil.getJobStatus(jobId);\r
+// return status;\r
+// }\r
+//\r
+// @Override\r
+// public PresetManager<Jpred> getPresets() {\r
+// return jpredPresets;\r
+// }\r
+//\r
+// @Override\r
+// public ChunkHolder pullExecStatistics(String jobId, long position) {\r
+// WSUtil.validateJobId(jobId);\r
+// String file = Configurator.getWorkDirectory(jobId) + File.separator + Jpred.getStatFile();\r
+// ChunkHolder cholder = WSUtil.pullFile(file, position);\r
+// return cholder;\r
+// }\r
+//\r
+//}\r