|
a/src/main/java/net/timbusproject/extractors/modules/tavernaextractor/TavernaExtractor.java |
|
b/src/main/java/net/timbusproject/extractors/modules/tavernaextractor/TavernaExtractor.java |
|
... |
|
... |
49 |
import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
|
49 |
import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
|
50 |
import net.sf.taverna.t2.workflowmodel.processor.activity.DisabledActivity;
|
50 |
import net.sf.taverna.t2.workflowmodel.processor.activity.DisabledActivity;
|
51 |
import net.sf.taverna.t2.workflowmodel.processor.activity.UnrecognizedActivity;
|
51 |
import net.sf.taverna.t2.workflowmodel.processor.activity.UnrecognizedActivity;
|
52 |
import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationTypeMismatchException;
|
52 |
import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationTypeMismatchException;
|
53 |
import net.sf.taverna.t2.workflowmodel.serialization.DeserializationException;
|
53 |
import net.sf.taverna.t2.workflowmodel.serialization.DeserializationException;
|
54 |
import net.timbusproject.extractors.core.*;
|
|
|
55 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.*;
|
54 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.*;
|
56 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.Container;
|
55 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.Container;
|
57 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.Container.Orientation;
|
56 |
import net.timbusproject.extractors.modules.tavernaextractor.utils.Container.Orientation;
|
58 |
import org.apache.batik.swing.JSVGCanvas;
|
57 |
import org.apache.batik.swing.JSVGCanvas;
|
59 |
import org.apache.commons.lang.StringUtils;
|
58 |
import org.apache.commons.lang.StringUtils;
|
|
... |
|
... |
61 |
import org.dom4j.DocumentException;
|
60 |
import org.dom4j.DocumentException;
|
62 |
import org.dom4j.DocumentHelper;
|
61 |
import org.dom4j.DocumentHelper;
|
63 |
import org.eclipse.emf.common.util.URI;
|
62 |
import org.eclipse.emf.common.util.URI;
|
64 |
import org.eclipse.emf.ecore.resource.Resource;
|
63 |
import org.eclipse.emf.ecore.resource.Resource;
|
65 |
import org.eclipse.emf.ecore.resource.ResourceSet;
|
64 |
import org.eclipse.emf.ecore.resource.ResourceSet;
|
66 |
import org.osgi.framework.BundleContext;
|
|
|
67 |
import org.osgi.framework.Version;
|
|
|
68 |
import org.osgi.service.log.LogService;
|
65 |
import org.osgi.service.log.LogService;
|
69 |
import org.sbaresearch.licensecheck.LicenseCheck;
|
66 |
import org.sbaresearch.licensecheck.LicenseCheck;
|
70 |
import org.springframework.beans.factory.annotation.Autowired;
|
67 |
import org.slf4j.Logger;
|
|
|
68 |
import org.slf4j.LoggerFactory;
|
71 |
import org.w3c.dom.NodeList;
|
69 |
import org.w3c.dom.NodeList;
|
72 |
import org.xml.sax.SAXException;
|
70 |
import org.xml.sax.SAXException;
|
73 |
import uk.ac.bolton.archimate.editor.model.viewpoints.IViewpoint;
|
71 |
import uk.ac.bolton.archimate.editor.model.viewpoints.IViewpoint;
|
74 |
import uk.ac.bolton.archimate.model.*;
|
72 |
import uk.ac.bolton.archimate.model.*;
|
75 |
import uk.ac.bolton.archimate.model.impl.BusinessEvent;
|
73 |
import uk.ac.bolton.archimate.model.impl.BusinessEvent;
|
|
... |
|
... |
92 |
|
90 |
|
93 |
/**
|
91 |
/**
|
94 |
* @author Rudolf Mayer (rmayer@sba-research.org)
|
92 |
* @author Rudolf Mayer (rmayer@sba-research.org)
|
95 |
* @author Marco Unterberger (munterberger@sba-research.org)
|
93 |
* @author Marco Unterberger (munterberger@sba-research.org)
|
96 |
*/
|
94 |
*/
|
97 |
public class TavernaExtractor extends CommandLineLauncher implements IExtractor {
|
95 |
public class TavernaExtractor extends CommandLineLauncher {
|
98 |
|
96 |
|
99 |
private IArchimateFactory factory;
|
97 |
private IArchimateFactory factory;
|
100 |
private Map<String, IDiagramModelArchimateObject> elementModelObjectMap;
|
98 |
private Map<String, IDiagramModelArchimateObject> elementModelObjectMap;
|
101 |
private List<IRelationship> relations;
|
99 |
private List<IRelationship> relations;
|
102 |
private IArchimateDiagramModel layeredView;
|
100 |
private IArchimateDiagramModel layeredView;
|
|
... |
|
... |
175 |
private IApplicationFunction callScriptApplicationFunction = null;
|
173 |
private IApplicationFunction callScriptApplicationFunction = null;
|
176 |
private IApplicationFunction callWebServiceApplicationFunction = null;
|
174 |
private IApplicationFunction callWebServiceApplicationFunction = null;
|
177 |
private IApplicationFunction callToolInvocationFunction = null;
|
175 |
private IApplicationFunction callToolInvocationFunction = null;
|
178 |
|
176 |
|
179 |
private Dataflow dataflow;
|
177 |
private Dataflow dataflow;
|
180 |
|
|
|
181 |
private SSHManager sshManager;
|
178 |
private SSHManager sshManager;
|
182 |
|
179 |
private Logger LOGGER = LoggerFactory.getLogger(TavernaExtractor.class);
|
183 |
@Autowired
|
|
|
184 |
private BundleContext bundleContext;
|
|
|
185 |
|
|
|
186 |
@Autowired
|
|
|
187 |
private LogService LOGGER;
|
|
|
188 |
|
180 |
|
189 |
public TavernaExtractor(){}
|
181 |
public TavernaExtractor(){}
|
190 |
|
182 |
|
191 |
public TavernaExtractor(boolean verbose) {
|
183 |
public TavernaExtractor(boolean verbose) {
|
192 |
//intenionally left empty in OSGi version
|
|
|
193 |
}
|
184 |
}
|
194 |
|
185 |
|
195 |
public TavernaExtractor(SSHManager sshManager) {
|
186 |
public TavernaExtractor(SSHManager sshManager) {
|
196 |
this.sshManager = sshManager;
|
187 |
this.sshManager = sshManager;
|
197 |
}
|
188 |
}
|
|
... |
|
... |
257 |
return this.businessProcesses.getElements();
|
248 |
return this.businessProcesses.getElements();
|
258 |
}
|
249 |
}
|
259 |
|
250 |
|
260 |
public List<IArchimateElement> getBusinessObjects() {
|
251 |
public List<IArchimateElement> getBusinessObjects() {
|
261 |
return this.businessObjects.getElements();
|
252 |
return this.businessObjects.getElements();
|
262 |
}
|
|
|
263 |
|
|
|
264 |
|
|
|
265 |
/*
|
|
|
266 |
OSGi behaviour
|
|
|
267 |
*/
|
|
|
268 |
@Override
|
|
|
269 |
public String getName() {
|
|
|
270 |
if(bundleContext != null)
|
|
|
271 |
return bundleContext.getBundle().getHeaders().get("Bundle-Name");
|
|
|
272 |
|
|
|
273 |
return String.valueOf("");
|
|
|
274 |
}
|
|
|
275 |
|
|
|
276 |
@Override
|
|
|
277 |
public String getSymbolicName() {
|
|
|
278 |
return bundleContext.getBundle().getSymbolicName();
|
|
|
279 |
}
|
|
|
280 |
|
|
|
281 |
@Override
|
|
|
282 |
public Version getVersion() {
|
|
|
283 |
return bundleContext.getBundle().getVersion();
|
|
|
284 |
}
|
|
|
285 |
|
|
|
286 |
@Override
|
|
|
287 |
public EnumSet<OperatingSystem> getSupportedOperatingSystems() {
|
|
|
288 |
return EnumSet.of(OperatingSystem.LINUX, OperatingSystem.OSX, OperatingSystem.WINDOWS);
|
|
|
289 |
}
|
|
|
290 |
|
|
|
291 |
@Override
|
|
|
292 |
public HashMap<String, Parameter> getParameters() {
|
|
|
293 |
HashMap<String, Parameter> parameters = new HashMap<>();
|
|
|
294 |
Parameter defaultParameter = new Parameter(false, true, ParameterType.STRING);
|
|
|
295 |
parameters.put("user", new Parameter(false));
|
|
|
296 |
parameters.put("password", new Parameter(true));
|
|
|
297 |
parameters.put("port", new Parameter(false, ParameterType.NUMBER));
|
|
|
298 |
parameters.put("fqdn", new Parameter(false));
|
|
|
299 |
parameters.put("tavernaHome", defaultParameter);
|
|
|
300 |
parameters.put("archimateOutputPath", defaultParameter);
|
|
|
301 |
parameters.put("inputFileName", defaultParameter);
|
|
|
302 |
return parameters;
|
|
|
303 |
}
|
|
|
304 |
|
|
|
305 |
@Override
|
|
|
306 |
public String extract(Endpoint endpoint, boolean b) throws Exception {
|
|
|
307 |
|
|
|
308 |
// setting in- and output files
|
|
|
309 |
|
|
|
310 |
//TODO ?? detect OS of endpoint and apply to paths ??
|
|
|
311 |
|
|
|
312 |
Path tavernaHome = Paths.get(endpoint.getProperty("tavernaHome"));
|
|
|
313 |
String archimateOutputPath = endpoint.getProperty("archimateOutputPath");
|
|
|
314 |
String inputFileName = endpoint.getProperty("inputFileName");
|
|
|
315 |
|
|
|
316 |
System.out.println(tavernaHome);
|
|
|
317 |
System.out.println(archimateOutputPath);
|
|
|
318 |
System.out.println(inputFileName);
|
|
|
319 |
|
|
|
320 |
SSHManager _sshManager = new SSHManager(endpoint.getProperty("fqdn")
|
|
|
321 |
,new Integer(endpoint.getProperty("port")),
|
|
|
322 |
endpoint.getProperty("user"),
|
|
|
323 |
endpoint.getProperty("password"));
|
|
|
324 |
TavernaExtractor extractor = new TavernaExtractor(_sshManager);
|
|
|
325 |
TavernaExtractor.setTavernaHome(tavernaHome);
|
|
|
326 |
TavernaExtractor.setArchimateOutputPath(archimateOutputPath);
|
|
|
327 |
TavernaExtractor.setInputFileName(inputFileName);
|
|
|
328 |
|
|
|
329 |
// starts the execution
|
|
|
330 |
extractor.process();
|
|
|
331 |
|
|
|
332 |
return new String("Extraction finished.");
|
|
|
333 |
}
|
253 |
}
|
334 |
|
254 |
|
335 |
/*
|
255 |
/*
|
336 |
* // Transform a Taverna (t2flow) file to an Archimate file ///////////////
|
256 |
* // Transform a Taverna (t2flow) file to an Archimate file ///////////////
|
337 |
*/
|
257 |
*/
|
338 |
public void process() throws EditException, OpenDataflowException, InvalidOptionException,
|
258 |
public void process() throws EditException, OpenDataflowException, InvalidOptionException,
|
339 |
InvalidDataflowException, TokenOrderException, ReadInputException, DatabaseConfigurationException,
|
259 |
InvalidDataflowException, TokenOrderException, ReadInputException, DatabaseConfigurationException,
|
340 |
CMException, IOException, DeserializationException, IterationTypeMismatchException {
|
260 |
CMException, IOException, DeserializationException, IterationTypeMismatchException {
|
341 |
|
261 |
|
342 |
LOGGER.log(LogService.LOG_INFO, "Start Taverna Extractor ...");
|
262 |
LOGGER.info( "Start Taverna Extractor ...");
|
343 |
|
263 |
|
344 |
//setup
|
264 |
//setup
|
345 |
TavernaExtractor.setTavernaHomeLib(TavernaExtractor.getTavernaHome().resolve("lib"));
|
265 |
TavernaExtractor.setTavernaHomeLib(TavernaExtractor.getTavernaHome().resolve("lib"));
|
346 |
TavernaExtractor.setTavernaHomeRepo(TavernaExtractor.getTavernaHome().resolve("repository"));
|
266 |
TavernaExtractor.setTavernaHomeRepo(TavernaExtractor.getTavernaHome().resolve("repository"));
|
347 |
|
267 |
|
348 |
validateDirectories(TavernaExtractor.getTavernaHome(), TavernaExtractor.getTavernaHomeLib(), TavernaExtractor.getTavernaHomeRepo());
|
268 |
validateDirectories(TavernaExtractor.getTavernaHome(), TavernaExtractor.getTavernaHomeLib(), TavernaExtractor.getTavernaHomeRepo());
|
349 |
|
269 |
|
350 |
LOGGER.log(LogService.LOG_INFO, "TavernaHome is set to [" + TavernaExtractor.getTavernaHome() + "].");
|
270 |
LOGGER.info( "TavernaHome is set to [" + TavernaExtractor.getTavernaHome() + "].");
|
351 |
LOGGER.log(LogService.LOG_INFO, "TavernaHomeLib is set to [" + TavernaExtractor.getTavernaHomeLib() + "].");
|
271 |
LOGGER.info( "TavernaHomeLib is set to [" + TavernaExtractor.getTavernaHomeLib() + "].");
|
352 |
LOGGER.log(LogService.LOG_INFO, "TavernaHomeRepo is set to [" + TavernaExtractor.getTavernaHomeRepo() + "].");
|
272 |
LOGGER.info( "TavernaHomeRepo is set to [" + TavernaExtractor.getTavernaHomeRepo() + "].");
|
353 |
LOGGER.log(LogService.LOG_INFO, "Workflow input file is [" + TavernaExtractor.getInputFileName() + "].");
|
273 |
LOGGER.info( "Workflow input file is [" + TavernaExtractor.getInputFileName() + "].");
|
354 |
LOGGER.log(LogService.LOG_INFO, "Archimate output file is [" + TavernaExtractor.getArchimateOutputPath() + "].");
|
274 |
LOGGER.info( "Archimate output file is [" + TavernaExtractor.getArchimateOutputPath() + "].");
|
355 |
|
275 |
|
356 |
inputPorts = new Container(Orientation.VERTICAL);
|
276 |
inputPorts = new Container(Orientation.VERTICAL);
|
357 |
outputPorts = new Container(Orientation.VERTICAL);
|
277 |
outputPorts = new Container(Orientation.VERTICAL);
|
358 |
businessObjects = new Container(Orientation.HORIZONTAL);
|
278 |
businessObjects = new Container(Orientation.HORIZONTAL);
|
359 |
businessProcesses = new Container(Orientation.HORIZONTAL);
|
279 |
businessProcesses = new Container(Orientation.HORIZONTAL);
|
|
... |
|
... |
401 |
|
321 |
|
402 |
if (file.exists()) {
|
322 |
if (file.exists()) {
|
403 |
workflowURL = file.toURI().toURL();
|
323 |
workflowURL = file.toURI().toURL();
|
404 |
}
|
324 |
}
|
405 |
|
325 |
|
406 |
LOGGER.log(LogService.LOG_INFO, "Reading workflow from " + workflowURL);
|
326 |
LOGGER.info( "Reading workflow from " + workflowURL);
|
407 |
dataflow = openDataflow(workflowURL);
|
327 |
dataflow = openDataflow(workflowURL);
|
408 |
} catch (NullPointerException npe) {
|
328 |
} catch (NullPointerException npe) {
|
409 |
npe.printStackTrace();
|
329 |
npe.printStackTrace();
|
410 |
LOGGER.log(LogService.LOG_ERROR, "ERROR reading workflow from [" + inputFileName + "]." + npe.getMessage());
|
330 |
LOGGER.error( "ERROR reading workflow from [" + inputFileName + "]." + npe.getMessage());
|
411 |
return;
|
331 |
return;
|
412 |
}
|
332 |
}
|
413 |
|
333 |
|
414 |
// current classpath
|
334 |
// current classpath
|
415 |
String classpath = System.getProperty("java.class.path");
|
335 |
String classpath = System.getProperty("java.class.path");
|
|
... |
|
... |
528 |
String jarLocation = jarDep.getAbsolutePath();
|
448 |
String jarLocation = jarDep.getAbsolutePath();
|
529 |
repoBundle.getProperties().add(createDepProperties(jarLocation));
|
449 |
repoBundle.getProperties().add(createDepProperties(jarLocation));
|
530 |
}
|
450 |
}
|
531 |
}
|
451 |
}
|
532 |
else{
|
452 |
else{
|
533 |
LOGGER.log(LogService.LOG_ERROR, "ERROR: "+TavernaExtractor.getTavernaHomeRepo().toFile()+" is not a directory. No further dependecies processing.");
|
453 |
LOGGER.error( "ERROR: "+TavernaExtractor.getTavernaHomeRepo().toFile()+" is not a directory. No further dependecies processing.");
|
534 |
}
|
454 |
}
|
535 |
// --- END Taverna ---
|
455 |
// --- END Taverna ---
|
536 |
|
456 |
|
537 |
// --- BEGIN Events ---
|
457 |
// --- BEGIN Events ---
|
538 |
// Start Event
|
458 |
// Start Event
|
|
... |
|
... |
559 |
OS_SYSTEM_INFO, infrastructureFolder, nodeElements);
|
479 |
OS_SYSTEM_INFO, infrastructureFolder, nodeElements);
|
560 |
ArchiUtils.initRelationNodeElement(factory.createUsedByRelationship(), operatingSystem, java, relationsFolder,
|
480 |
ArchiUtils.initRelationNodeElement(factory.createUsedByRelationship(), operatingSystem, java, relationsFolder,
|
561 |
nodeElements);
|
481 |
nodeElements);
|
562 |
// --- END CREATING DEFAULT ELEMENTS ---
|
482 |
// --- END CREATING DEFAULT ELEMENTS ---
|
563 |
|
483 |
|
564 |
LOGGER.log(LogService.LOG_DEBUG, "Process Input ports");
|
484 |
LOGGER.debug("Process Input ports");
|
565 |
for (DataflowInputPort inputPort : dataflow.getInputPorts()) {
|
485 |
for (DataflowInputPort inputPort : dataflow.getInputPorts()) {
|
566 |
IBusinessObject port_business = ArchiUtils.initElement(factory.createBusinessObject(), inputPort.getName(),
|
486 |
IBusinessObject port_business = ArchiUtils.initElement(factory.createBusinessObject(), inputPort.getName(),
|
567 |
businessFolder, inputPorts);
|
487 |
businessFolder, inputPorts);
|
568 |
IDataObject port_data = ArchiUtils.initElement(factory.createDataObject(), inputPort.getName(),
|
488 |
IDataObject port_data = ArchiUtils.initElement(factory.createDataObject(), inputPort.getName(),
|
569 |
applicationFolder, dataObjects);
|
489 |
applicationFolder, dataObjects);
|
|
... |
|
... |
575 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), port_data, port_business, relationsFolder,
|
495 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), port_data, port_business, relationsFolder,
|
576 |
relations);
|
496 |
relations);
|
577 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), port_infrastructure, port_data,
|
497 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), port_infrastructure, port_data,
|
578 |
relationsFolder, relations);
|
498 |
relationsFolder, relations);
|
579 |
}
|
499 |
}
|
580 |
LOGGER.log(LogService.LOG_DEBUG, "Process Output ports");
|
500 |
LOGGER.debug("Process Output ports");
|
581 |
for (DataflowOutputPort outputPort : dataflow.getOutputPorts()) {
|
501 |
for (DataflowOutputPort outputPort : dataflow.getOutputPorts()) {
|
582 |
IBusinessObject port_business = ArchiUtils.initElement(factory.createBusinessObject(),
|
502 |
IBusinessObject port_business = ArchiUtils.initElement(factory.createBusinessObject(),
|
583 |
outputPort.getName(), businessFolder, outputPorts);
|
503 |
outputPort.getName(), businessFolder, outputPorts);
|
584 |
IDataObject port_data = ArchiUtils.initElement(factory.createDataObject(), outputPort.getName(),
|
504 |
IDataObject port_data = ArchiUtils.initElement(factory.createDataObject(), outputPort.getName(),
|
585 |
applicationFolder, dataObjects);
|
505 |
applicationFolder, dataObjects);
|
|
... |
|
... |
672 |
//sshManager.send(...);
|
592 |
//sshManager.send(...);
|
673 |
|
593 |
|
674 |
resource.getContents().add(model);
|
594 |
resource.getContents().add(model);
|
675 |
resource.save(null);
|
595 |
resource.save(null);
|
676 |
|
596 |
|
677 |
LOGGER.log(LogService.LOG_INFO, "Wrote model successfully to " + outFile.getAbsolutePath());
|
597 |
LOGGER.info( "Wrote model successfully to " + outFile.getAbsolutePath());
|
678 |
}
|
598 |
}
|
679 |
|
599 |
|
680 |
public void processWebServiceActivity(IFolder businessFolder, IFolder infrastructureFolder,
|
600 |
public void processWebServiceActivity(IFolder businessFolder, IFolder infrastructureFolder,
|
681 |
IFolder applicationFolder, IFolder relationsFolder, IApplicationComponent workflowApplicationComponent,
|
601 |
IFolder applicationFolder, IFolder relationsFolder, IApplicationComponent workflowApplicationComponent,
|
682 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
602 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
|
... |
|
... |
690 |
String type = null;
|
610 |
String type = null;
|
691 |
IProperty prop = factory.createProperty();
|
611 |
IProperty prop = factory.createProperty();
|
692 |
IProperty locationProp = factory.createProperty();
|
612 |
IProperty locationProp = factory.createProperty();
|
693 |
if (a instanceof WSDLActivity) {
|
613 |
if (a instanceof WSDLActivity) {
|
694 |
|
614 |
|
695 |
LOGGER.log(LogService.LOG_DEBUG, "WSDL Service found = " + processor.getLocalName());
|
615 |
LOGGER.debug("WSDL Service found = " + processor.getLocalName());
|
696 |
type = "SOAP";
|
616 |
type = "SOAP";
|
697 |
WSDLActivity wsdlActivity = (WSDLActivity) a;
|
617 |
WSDLActivity wsdlActivity = (WSDLActivity) a;
|
698 |
prop.setKey("WSDL_Location");
|
618 |
prop.setKey("WSDL_Location");
|
699 |
prop.setValue(wsdlActivity.getConfiguration().getWsdl());
|
619 |
prop.setValue(wsdlActivity.getConfiguration().getWsdl());
|
700 |
externalNode.getProperties().add(prop);
|
620 |
externalNode.getProperties().add(prop);
|
|
... |
|
... |
702 |
locationProp = createDepProperties(WSDLActivity.class);
|
622 |
locationProp = createDepProperties(WSDLActivity.class);
|
703 |
}
|
623 |
}
|
704 |
|
624 |
|
705 |
if (a instanceof RESTActivity) {
|
625 |
if (a instanceof RESTActivity) {
|
706 |
|
626 |
|
707 |
LOGGER.log(LogService.LOG_DEBUG, "RESTful Service found = " + processor.getLocalName());
|
627 |
LOGGER.debug("RESTful Service found = " + processor.getLocalName());
|
708 |
type = "HTTP";
|
628 |
type = "HTTP";
|
709 |
RESTActivity restActivity = (RESTActivity) a;
|
629 |
RESTActivity restActivity = (RESTActivity) a;
|
710 |
prop.setKey("URL");
|
630 |
prop.setKey("URL");
|
711 |
prop.setValue(restActivity.getConfiguration().getUrlSignature());
|
631 |
prop.setValue(restActivity.getConfiguration().getUrlSignature());
|
712 |
externalNode.getProperties().add(prop);
|
632 |
externalNode.getProperties().add(prop);
|
|
... |
|
... |
792 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
712 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
793 |
IApplicationFunction callWebServiceApplicationFunction, Processor processor, String processorName,
|
713 |
IApplicationFunction callWebServiceApplicationFunction, Processor processor, String processorName,
|
794 |
Activity<?> a) {
|
714 |
Activity<?> a) {
|
795 |
|
715 |
|
796 |
if (!(a instanceof RshellActivity)) {
|
716 |
if (!(a instanceof RshellActivity)) {
|
797 |
LOGGER.log(LogService.LOG_INFO, "Activity [" + a + "] is not an instance of RshellActivity. Stop further processing!");
|
717 |
LOGGER.info( "Activity [" + a + "] is not an instance of RshellActivity. Stop further processing!");
|
798 |
return;
|
718 |
return;
|
799 |
}
|
719 |
}
|
800 |
|
720 |
|
801 |
RshellActivity rshellActivity = (RshellActivity) a;
|
721 |
RshellActivity rshellActivity = (RshellActivity) a;
|
802 |
|
722 |
|
|
... |
|
... |
887 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
807 |
HashMap<Processor, IBusinessProcess> processorProcessMap,
|
888 |
IApplicationFunction callWebServiceApplicationFunction, Processor processor, String processorName,
|
808 |
IApplicationFunction callWebServiceApplicationFunction, Processor processor, String processorName,
|
889 |
Activity<?> a, boolean isExternal) {
|
809 |
Activity<?> a, boolean isExternal) {
|
890 |
|
810 |
|
891 |
if (!(a instanceof ExternalToolActivity)) {
|
811 |
if (!(a instanceof ExternalToolActivity)) {
|
892 |
LOGGER.log(LogService.LOG_INFO, "Activity [" + a + "] is not an instance of ExternalToolActivity. Stop further processing!");
|
812 |
LOGGER.info( "Activity [" + a + "] is not an instance of ExternalToolActivity. Stop further processing!");
|
893 |
return;
|
813 |
return;
|
894 |
}
|
814 |
}
|
895 |
|
815 |
|
896 |
ExternalToolActivity externalInvocation = (ExternalToolActivity) a;
|
816 |
ExternalToolActivity externalInvocation = (ExternalToolActivity) a;
|
897 |
|
817 |
|
|
... |
|
... |
999 |
IFolder applicationFolder, IFolder relationsFolder, IApplicationComponent workflowApplicationComponent,
|
919 |
IFolder applicationFolder, IFolder relationsFolder, IApplicationComponent workflowApplicationComponent,
|
1000 |
HashMap<Processor, IBusinessProcess> processorProcessMap, Processor processor, Activity<?> a)
|
920 |
HashMap<Processor, IBusinessProcess> processorProcessMap, Processor processor, Activity<?> a)
|
1001 |
throws IOException {
|
921 |
throws IOException {
|
1002 |
beanshellScripts.add((BeanshellActivity) a);
|
922 |
beanshellScripts.add((BeanshellActivity) a);
|
1003 |
|
923 |
|
1004 |
LOGGER.log(LogService.LOG_DEBUG, "Beanshell script found = " + processor.getLocalName());
|
924 |
LOGGER.debug("Beanshell script found = " + processor.getLocalName());
|
1005 |
|
925 |
|
1006 |
// create external application service for each business process/function
|
926 |
// create external application service for each business process/function
|
1007 |
if (callScriptApplicationFunction == null) {
|
927 |
if (callScriptApplicationFunction == null) {
|
1008 |
|
928 |
|
1009 |
callScriptApplicationFunction = ArchiUtils.initElement(factory.createApplicationFunction(),
|
929 |
callScriptApplicationFunction = ArchiUtils.initElement(factory.createApplicationFunction(),
|
|
... |
|
... |
1085 |
Iterator<String> iter = conf.getLocalDependencies().iterator();
|
1005 |
Iterator<String> iter = conf.getLocalDependencies().iterator();
|
1086 |
while (iter.hasNext()) {
|
1006 |
while (iter.hasNext()) {
|
1087 |
|
1007 |
|
1088 |
String item = iter.next();
|
1008 |
String item = iter.next();
|
1089 |
|
1009 |
|
1090 |
LOGGER.log(LogService.LOG_DEBUG, "\t Dependency for " + processor.getLocalName() + " [" + item + "]");
|
1010 |
LOGGER.debug("\t Dependency for " + processor.getLocalName() + " [" + item + "]");
|
1091 |
|
1011 |
|
1092 |
IArtifact beanshellScriptDep = (IArtifact) ArchiUtils.initElement(factory.createArtifact(), item,
|
1012 |
IArtifact beanshellScriptDep = (IArtifact) ArchiUtils.initElement(factory.createArtifact(), item,
|
1093 |
infrastructureFolder, nodeElements);
|
1013 |
infrastructureFolder, nodeElements);
|
1094 |
|
1014 |
|
1095 |
ArchiUtils.initRelationNodeElement(factory.createAssociationRelationship(), script, beanshellScriptDep,
|
1015 |
ArchiUtils.initRelationNodeElement(factory.createAssociationRelationship(), script, beanshellScriptDep,
|
|
... |
|
... |
1107 |
Path pathToDep = Paths.get(fileName);
|
1027 |
Path pathToDep = Paths.get(fileName);
|
1108 |
if (Files.exists(pathToDep)) {
|
1028 |
if (Files.exists(pathToDep)) {
|
1109 |
String license = licenseCheck.extract(pathToDep.toAbsolutePath().toString());
|
1029 |
String license = licenseCheck.extract(pathToDep.toAbsolutePath().toString());
|
1110 |
|
1030 |
|
1111 |
if (license.equals("Unknown license")) {
|
1031 |
if (license.equals("Unknown license")) {
|
1112 |
LOGGER.log(LogService.LOG_DEBUG, "\t Unknown license for dependency [" + item + "].");
|
1032 |
LOGGER.debug("\t Unknown license for dependency [" + item + "].");
|
1113 |
}
|
1033 |
}
|
1114 |
|
1034 |
|
1115 |
if (license != null && !license.equals("Unknown license")) {
|
1035 |
if (license != null && !license.equals("Unknown license")) {
|
1116 |
|
1036 |
|
1117 |
LOGGER.log(LogService.LOG_DEBUG, "\t Found license [" + license + "] for dependency [" + item + "].");
|
1037 |
LOGGER.debug("\t Found license [" + license + "] for dependency [" + item + "].");
|
1118 |
|
1038 |
|
1119 |
// create constraint element for dependency
|
1039 |
// create constraint element for dependency
|
1120 |
IConstraint licenseConstraint = ArchiUtils.initElement(factory.createConstraint(), license,
|
1040 |
IConstraint licenseConstraint = ArchiUtils.initElement(factory.createConstraint(), license,
|
1121 |
motivationFolder, infrastructure);
|
1041 |
motivationFolder, infrastructure);
|
1122 |
|
1042 |
|
1123 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), beanshellScriptDep,
|
1043 |
ArchiUtils.initRelation(factory.createRealisationRelationship(), beanshellScriptDep,
|
1124 |
licenseConstraint, relationsFolder, relations);
|
1044 |
licenseConstraint, relationsFolder, relations);
|
1125 |
}
|
1045 |
}
|
1126 |
} else {
|
1046 |
} else {
|
1127 |
LOGGER.log(LogService.LOG_ERROR, "\t ERROR: Jar file [" + fileName + "] not found!");
|
1047 |
LOGGER.error( "\t ERROR: Jar file [" + fileName + "] not found!");
|
1128 |
}
|
1048 |
}
|
1129 |
}
|
1049 |
}
|
1130 |
}
|
1050 |
}
|
1131 |
}
|
1051 |
}
|
1132 |
|
1052 |
|
|
... |
|
... |
1501 |
}
|
1421 |
}
|
1502 |
|
1422 |
|
1503 |
externalInfrastructureModelGroup.setBounds(0, starting_y, overall_X, 150);
|
1423 |
externalInfrastructureModelGroup.setBounds(0, starting_y, overall_X, 150);
|
1504 |
overall_Y += 150;
|
1424 |
overall_Y += 150;
|
1505 |
|
1425 |
|
1506 |
LOGGER.log(LogService.LOG_DEBUG, "drawExternalInfrastructureServices.getElements().size() = "
|
1426 |
LOGGER.debug("drawExternalInfrastructureServices.getElements().size() = "
|
1507 |
+ infrastructureServices.getElements().size());
|
1427 |
+ infrastructureServices.getElements().size());
|
1508 |
|
1428 |
|
1509 |
Map<String, int[]> boundsMap = ArchiLayoutUtils.getBoundsForElements(infrastructureServices.getElements(),
|
1429 |
Map<String, int[]> boundsMap = ArchiLayoutUtils.getBoundsForElements(infrastructureServices.getElements(),
|
1510 |
infrastructureServices.orientation);
|
1430 |
infrastructureServices.orientation);
|
1511 |
for (IArchimateElement element : infrastructureServices.getElements()) {
|
1431 |
for (IArchimateElement element : infrastructureServices.getElements()) {
|
|
... |
|
... |
1585 |
}
|
1505 |
}
|
1586 |
if (relation.getTarget() == null) {
|
1506 |
if (relation.getTarget() == null) {
|
1587 |
return;
|
1507 |
return;
|
1588 |
}
|
1508 |
}
|
1589 |
|
1509 |
|
1590 |
LOGGER.log(LogService.LOG_DEBUG, "drawing relation [" + relation.getSource().getName() + "("
|
1510 |
LOGGER.debug("drawing relation [" + relation.getSource().getName() + "("
|
1591 |
+ relation.getSource().eClass().getName() + ")] --> [" + relation.getTarget().getName() + "("
|
1511 |
+ relation.getSource().eClass().getName() + ")] --> [" + relation.getTarget().getName() + "("
|
1592 |
+ relation.getTarget().eClass().getName() + ")]");
|
1512 |
+ relation.getTarget().eClass().getName() + ")]");
|
1593 |
|
1513 |
|
1594 |
IDiagramModelArchimateObject source = elementModelObjectMap.get(relation.getSource().getId());
|
1514 |
IDiagramModelArchimateObject source = elementModelObjectMap.get(relation.getSource().getId());
|
1595 |
IDiagramModelArchimateObject target = elementModelObjectMap.get(relation.getTarget().getId());
|
1515 |
IDiagramModelArchimateObject target = elementModelObjectMap.get(relation.getTarget().getId());
|
|
... |
|
... |
1618 |
|
1538 |
|
1619 |
for (IArchimateElement element : layout.getGraph().getVertices()) {
|
1539 |
for (IArchimateElement element : layout.getGraph().getVertices()) {
|
1620 |
|
1540 |
|
1621 |
int x = (int) ((AbstractLayout<IArchimateElement, IArchimateElement>) layout).getX(element);
|
1541 |
int x = (int) ((AbstractLayout<IArchimateElement, IArchimateElement>) layout).getX(element);
|
1622 |
int y = (int) ((AbstractLayout<IArchimateElement, IArchimateElement>) layout).getY(element);
|
1542 |
int y = (int) ((AbstractLayout<IArchimateElement, IArchimateElement>) layout).getY(element);
|
1623 |
LOGGER.log(LogService.LOG_DEBUG, element.getName() + "[" + x + "][" + y + "]");
|
1543 |
LOGGER.debug(element.getName() + "[" + x + "][" + y + "]");
|
1624 |
items.put(element, new Point(x, y));
|
1544 |
items.put(element, new Point(x, y));
|
1625 |
}
|
1545 |
}
|
1626 |
return items;
|
1546 |
return items;
|
1627 |
}
|
1547 |
}
|
1628 |
|
1548 |
|
|
... |
|
... |
1693 |
portProperty.setKey("Port");
|
1613 |
portProperty.setKey("Port");
|
1694 |
portProperty.setValue(document.selectSingleNode("//port").getText());
|
1614 |
portProperty.setValue(document.selectSingleNode("//port").getText());
|
1695 |
props.add(portProperty);
|
1615 |
props.add(portProperty);
|
1696 |
|
1616 |
|
1697 |
} catch (DocumentException e) {
|
1617 |
} catch (DocumentException e) {
|
1698 |
LOGGER.log(LogService.LOG_ERROR, "ERROR parsing external tool invocation mechanism. " + e.getMessage());
|
1618 |
LOGGER.error( "ERROR parsing external tool invocation mechanism. " + e.getMessage());
|
1699 |
}
|
1619 |
}
|
1700 |
|
1620 |
|
1701 |
IProperty commandProperty = factory.createProperty();
|
1621 |
IProperty commandProperty = factory.createProperty();
|
1702 |
commandProperty.setKey("Command");
|
1622 |
commandProperty.setKey("Command");
|
1703 |
commandProperty.setValue(configuration.getUseCaseDescription().getCommand());
|
1623 |
commandProperty.setValue(configuration.getUseCaseDescription().getCommand());
|
|
... |
|
... |
1730 |
|
1650 |
|
1731 |
private void printPortInformation(Processor processor) {
|
1651 |
private void printPortInformation(Processor processor) {
|
1732 |
|
1652 |
|
1733 |
if (processor != null) {
|
1653 |
if (processor != null) {
|
1734 |
for (ProcessorInputPort inputPort : processor.getInputPorts()) {
|
1654 |
for (ProcessorInputPort inputPort : processor.getInputPorts()) {
|
1735 |
LOGGER.log(LogService.LOG_DEBUG, "--> Port = " + inputPort.getName() + "[depth = " + inputPort.getDepth() + "]");
|
1655 |
LOGGER.debug("--> Port = " + inputPort.getName() + "[depth = " + inputPort.getDepth() + "]");
|
1736 |
}
|
1656 |
}
|
1737 |
for (ProcessorOutputPort outputPort : processor.getOutputPorts()) {
|
1657 |
for (ProcessorOutputPort outputPort : processor.getOutputPorts()) {
|
1738 |
LOGGER.log(LogService.LOG_DEBUG, "<-- Port = " + outputPort.getName() + "[depth = " + outputPort.getDepth() + "]");
|
1658 |
LOGGER.debug("<-- Port = " + outputPort.getName() + "[depth = " + outputPort.getDepth() + "]");
|
1739 |
}
|
1659 |
}
|
1740 |
}
|
1660 |
}
|
1741 |
}
|
1661 |
}
|
1742 |
|
1662 |
|
1743 |
private List<Processor> findStartingProcessors(Dataflow dataflow) {
|
1663 |
private List<Processor> findStartingProcessors(Dataflow dataflow) {
|
|
... |
|
... |
1757 |
if (ArchiUtils.isValueProcessor(processor)) {
|
1677 |
if (ArchiUtils.isValueProcessor(processor)) {
|
1758 |
break;
|
1678 |
break;
|
1759 |
}
|
1679 |
}
|
1760 |
|
1680 |
|
1761 |
if (hasNoPrecedentProcessor(processor, outputPorts)) {
|
1681 |
if (hasNoPrecedentProcessor(processor, outputPorts)) {
|
1762 |
LOGGER.log(LogService.LOG_DEBUG, "Processor '" + processor.getLocalName() + "' has no precendent processors.");
|
1682 |
LOGGER.debug("Processor '" + processor.getLocalName() + "' has no precendent processors.");
|
1763 |
startingProcessors.add(processor);
|
1683 |
startingProcessors.add(processor);
|
1764 |
}
|
1684 |
}
|
1765 |
}
|
1685 |
}
|
1766 |
return startingProcessors;
|
1686 |
return startingProcessors;
|
1767 |
}
|
1687 |
}
|
|
... |
|
... |
1778 |
List<Processor> endingProcessors = new ArrayList<Processor>();
|
1698 |
List<Processor> endingProcessors = new ArrayList<Processor>();
|
1779 |
for (Processor processor : dataflow.getProcessors()) {
|
1699 |
for (Processor processor : dataflow.getProcessors()) {
|
1780 |
|
1700 |
|
1781 |
// detect if first step processor
|
1701 |
// detect if first step processor
|
1782 |
if (hasNoSucceedProcessor(processor, inputPorts)) {
|
1702 |
if (hasNoSucceedProcessor(processor, inputPorts)) {
|
1783 |
LOGGER.log(LogService.LOG_DEBUG, "Processor '" + processor.getLocalName() + "' has no succeed processors.");
|
1703 |
LOGGER.debug("Processor '" + processor.getLocalName() + "' has no succeed processors.");
|
1784 |
endingProcessors.add(processor);
|
1704 |
endingProcessors.add(processor);
|
1785 |
}
|
1705 |
}
|
1786 |
}
|
1706 |
}
|
1787 |
return endingProcessors;
|
1707 |
return endingProcessors;
|
1788 |
}
|
1708 |
}
|
|
... |
|
... |
1831 |
// Dot to SVG
|
1751 |
// Dot to SVG
|
1832 |
File svgTmp = new File(tmpDirPath + File.separator + "tavernaExtractorToArchimate.dot.svg");
|
1752 |
File svgTmp = new File(tmpDirPath + File.separator + "tavernaExtractorToArchimate.dot.svg");
|
1833 |
|
1753 |
|
1834 |
String[] COMMAND = { TavernaExtractor.getDotLocation(), "-Tsvg", dotTmp.getAbsolutePath(), "-o", svgTmp.getAbsolutePath() };
|
1754 |
String[] COMMAND = { TavernaExtractor.getDotLocation(), "-Tsvg", dotTmp.getAbsolutePath(), "-o", svgTmp.getAbsolutePath() };
|
1835 |
|
1755 |
|
1836 |
LOGGER.log(LogService.LOG_DEBUG, "Running command '" + StringUtils.join(COMMAND, " ") + "'.");
|
1756 |
LOGGER.debug("Running command '" + StringUtils.join(COMMAND, " ") + "'.");
|
1837 |
|
1757 |
|
1838 |
ProcessBuilder proc = new ProcessBuilder(COMMAND);
|
1758 |
ProcessBuilder proc = new ProcessBuilder(COMMAND);
|
1839 |
Process process = proc.start();
|
1759 |
Process process = proc.start();
|
1840 |
|
1760 |
|
1841 |
InputStream stderr = process.getErrorStream();
|
1761 |
InputStream stderr = process.getErrorStream();
|
|
... |
|
... |
1885 |
try {
|
1805 |
try {
|
1886 |
Integer x = (int) Math.abs(Double.parseDouble(nodeList.item(i).getTextContent()));
|
1806 |
Integer x = (int) Math.abs(Double.parseDouble(nodeList.item(i).getTextContent()));
|
1887 |
Integer y = (int) Math.abs(Double.parseDouble(nodeList.item(i + 1).getTextContent()));
|
1807 |
Integer y = (int) Math.abs(Double.parseDouble(nodeList.item(i + 1).getTextContent()));
|
1888 |
map.put(key, new Point(x, y));
|
1808 |
map.put(key, new Point(x, y));
|
1889 |
} catch (NumberFormatException nfe) {
|
1809 |
} catch (NumberFormatException nfe) {
|
1890 |
LOGGER.log(LogService.LOG_ERROR, "ERROR: Unable to convert to integer. " + nfe.getMessage());
|
1810 |
LOGGER.error( "ERROR: Unable to convert to integer. " + nfe.getMessage());
|
1891 |
map.put(key, new Point(1, 1));
|
1811 |
map.put(key, new Point(1, 1));
|
1892 |
}
|
1812 |
}
|
1893 |
}
|
1813 |
}
|
1894 |
|
1814 |
|
1895 |
for (Entry<String, Point> entry : map.entrySet()) {
|
1815 |
for (Entry<String, Point> entry : map.entrySet()) {
|
|
... |
|
... |
1945 |
|
1865 |
|
1946 |
String processorName = processor.getLocalName();
|
1866 |
String processorName = processor.getLocalName();
|
1947 |
|
1867 |
|
1948 |
for (Activity<?> a : processor.getActivityList()) {
|
1868 |
for (Activity<?> a : processor.getActivityList()) {
|
1949 |
|
1869 |
|
1950 |
LOGGER.log(LogService.LOG_DEBUG, processorName + " [" + processor.getActivityList().size() + "] -> "
|
1870 |
LOGGER.debug(processorName + " [" + processor.getActivityList().size() + "] -> "
|
1951 |
+ a.getClass().getName());
|
1871 |
+ a.getClass().getName());
|
1952 |
|
1872 |
|
1953 |
printPortInformation(processor);
|
1873 |
printPortInformation(processor);
|
1954 |
|
1874 |
|
1955 |
// TODO UnrecognizedActivity detected !!
|
1875 |
// TODO UnrecognizedActivity detected !!
|
1956 |
if (a instanceof UnrecognizedActivity) {
|
1876 |
if (a instanceof UnrecognizedActivity) {
|
1957 |
LOGGER.log(LogService.LOG_ERROR, "PROBLEM: UnrecognizedActivity detected! ");
|
1877 |
LOGGER.error( "PROBLEM: UnrecognizedActivity detected! ");
|
1958 |
}
|
1878 |
}
|
1959 |
// TODO DisabledActivity detected !!
|
1879 |
// TODO DisabledActivity detected !!
|
1960 |
// From the javadoc: A disabled activity is a wrapper for an Activity that is offline or similarly
|
1880 |
// From the javadoc: A disabled activity is a wrapper for an Activity that is offline or similarly
|
1961 |
// disabled
|
1881 |
// disabled
|
1962 |
if (a instanceof DisabledActivity) {
|
1882 |
if (a instanceof DisabledActivity) {
|
1963 |
LOGGER.log(LogService.LOG_ERROR, "PROBLEM: DisabledActivity detected! ");
|
1883 |
LOGGER.error( "PROBLEM: DisabledActivity detected! ");
|
1964 |
// TODO: create a note element with information
|
1884 |
// TODO: create a note element with information
|
1965 |
}
|
1885 |
}
|
1966 |
|
1886 |
|
1967 |
// nested worklfow
|
1887 |
// nested worklfow
|
1968 |
if (a instanceof DataflowActivity) {
|
1888 |
if (a instanceof DataflowActivity) {
|
|
... |
|
... |
2147 |
for (Processor processor : dataflow.getProcessors()) {
|
2067 |
for (Processor processor : dataflow.getProcessors()) {
|
2148 |
boolean isValueProcessor = ArchiUtils.isValueProcessor(processor);
|
2068 |
boolean isValueProcessor = ArchiUtils.isValueProcessor(processor);
|
2149 |
|
2069 |
|
2150 |
for (ProcessorOutputPort processorOutputPort : processor.getOutputPorts()) {
|
2070 |
for (ProcessorOutputPort processorOutputPort : processor.getOutputPorts()) {
|
2151 |
|
2071 |
|
2152 |
LOGGER.log(LogService.LOG_DEBUG, "Process processorOutputPort = '" + processorOutputPort.getName() + "'");
|
2072 |
LOGGER.debug("Process processorOutputPort = '" + processorOutputPort.getName() + "'");
|
2153 |
|
2073 |
|
2154 |
for (Datalink datalink : processorOutputPort.getOutgoingLinks()) {
|
2074 |
for (Datalink datalink : processorOutputPort.getOutgoingLinks()) {
|
2155 |
|
2075 |
|
2156 |
EventHandlingInputPort sink = datalink.getSink();
|
2076 |
EventHandlingInputPort sink = datalink.getSink();
|
2157 |
|
2077 |
|
|
... |
|
... |
2193 |
IOrJunction mergeJunction = loopsJunctions.get(processor);
|
2113 |
IOrJunction mergeJunction = loopsJunctions.get(processor);
|
2194 |
|
2114 |
|
2195 |
ArchiUtils.initRelation(factory.createTriggeringRelationship(), mergeJunction,
|
2115 |
ArchiUtils.initRelation(factory.createTriggeringRelationship(), mergeJunction,
|
2196 |
splitJunction, relationsFolder, relations);
|
2116 |
splitJunction, relationsFolder, relations);
|
2197 |
|
2117 |
|
2198 |
LOGGER.log(LogService.LOG_DEBUG, "loop detected between [" + startProcessor.getLocalName() + "] --> ["
|
2118 |
LOGGER.debug("loop detected between [" + startProcessor.getLocalName() + "] --> ["
|
2199 |
+ processor.getLocalName() + "]");
|
2119 |
+ processor.getLocalName() + "]");
|
2200 |
}
|
2120 |
}
|
2201 |
}
|
2121 |
}
|
2202 |
|
2122 |
|
2203 |
Processor targetProcessor = ((ProcessorInputPortImpl) sink).getProcessor();
|
2123 |
Processor targetProcessor = ((ProcessorInputPortImpl) sink).getProcessor();
|
|
... |
|
... |
2249 |
|
2169 |
|
2250 |
// 2. create business object
|
2170 |
// 2. create business object
|
2251 |
IBusinessObject businessObject = ArchiUtils.initElement(factory.createBusinessObject(),
|
2171 |
IBusinessObject businessObject = ArchiUtils.initElement(factory.createBusinessObject(),
|
2252 |
sink.getName(), businessFolder, businessObjects);
|
2172 |
sink.getName(), businessFolder, businessObjects);
|
2253 |
|
2173 |
|
2254 |
LOGGER.log(LogService.LOG_DEBUG, "\t BusinessObject for datalink '" + datalink.getSource().getName() + " -> "
|
2174 |
LOGGER.debug("\t BusinessObject for datalink '" + datalink.getSource().getName() + " -> "
|
2255 |
+ sink.getName() + "' created.");
|
2175 |
+ sink.getName() + "' created.");
|
2256 |
|
2176 |
|
2257 |
if (processorObjectMapping.get(processor) == null) {
|
2177 |
if (processorObjectMapping.get(processor) == null) {
|
2258 |
processorObjectMapping.put(processor, new ArrayList<IBusinessObject>());
|
2178 |
processorObjectMapping.put(processor, new ArrayList<IBusinessObject>());
|
2259 |
}
|
2179 |
}
|