public void serializeProcessDefinition(final File barFolder, final DesignProcessDefinition processDefinition) throws IOException { try { IOUtil.writeContentToFile(convertProcessToXml(processDefinition), new File(barFolder, PROCESS_DEFINITION_XML)); final String infos = generateInfosFromDefinition(processDefinition); IOUtil.writeContentToFile(getProcessInfos(infos), new File(barFolder, PROCESS_INFOS_FILE)); } catch (final FileNotFoundException e) { throw new IOException(e); } }
public ProcessDefinitionServiceImpl(final Recorder recorder, final ReadPersistenceService persistenceService, final EventService eventService, final SessionService sessionService, final ReadSessionAccessor sessionAccessor, final QueriableLoggerService queriableLoggerService, final DependencyService dependencyService, CacheService cacheService) { this.recorder = recorder; this.persistenceService = persistenceService; this.eventService = eventService; this.sessionService = sessionService; this.sessionAccessor = sessionAccessor; this.queriableLoggerService = queriableLoggerService; this.cacheService = cacheService; processDefinitionBARContribution = new ProcessDefinitionBARContribution(); }
private void addEventTriggerOnEvents(FlowElementContainerDefinition flowElementContainer) { /* * Add event trigger manually */ addEventTriggerOnIntermediateCatchEvent(flowElementContainer); addEventTriggerOnIntermediateThrowEvent(flowElementContainer); addEventTriggerOnEndEvent(flowElementContainer); addEventTriggerOnBoundaryEvent(flowElementContainer); addEventTriggerOnStartEvent(flowElementContainer); }
@Override public boolean readFromBarFolder(final BusinessArchive businessArchive, final File barFolder) throws IOException, InvalidBusinessArchiveFormatException { final File file = new File(barFolder, PROCESS_DEFINITION_XML); if (!file.exists()) { return false; } final DesignProcessDefinition processDefinition = deserializeProcessDefinition(file); businessArchive.setProcessDefinition(processDefinition); checkProcessInfos(barFolder, processDefinition); return true; }
public DesignProcessDefinition deserializeProcessDefinition(final File file) throws IOException, InvalidBusinessArchiveFormatException { String content = IOUtil.read(file); try { return convertXmlToProcess(content); } catch (final IOException e) { checkVersion(content); throw new InvalidBusinessArchiveFormatException(e); } }
@Override public DesignProcessDefinition getDesignProcessDefinition(long processDefinitionId) throws SProcessDefinitionNotFoundException, SBonitaReadException { try { return processDefinitionBARContribution.convertXmlToProcess(getProcessDeploymentInfo(processDefinitionId).getDesignContent().getContent()); } catch (IOException e) { throw new SBonitaReadException(e); } }
String getProcessContent(DesignProcessDefinition designProcessDefinition) throws IOException { return processDefinitionBARContribution.convertProcessToXml(designProcessDefinition); }
public DesignProcessDefinition convertXmlToProcess(String content) throws IOException { try (InputStream stream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8))) { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); unmarshaller .setSchema(SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(this.getClass().getResource("/ProcessDefinition.xsd"))); DesignProcessDefinition process = (DesignProcessDefinition) unmarshaller.unmarshal(stream); if (process.getActorInitiator() != null) { process.getActorInitiator().setInitiator(true); } addEventTriggerOnEvents(process.getFlowElementContainer()); return process; } catch (java.lang.UnsupportedOperationException | JAXBException | SAXException e) { throw new IOException("Failed to deserialize the XML string provided", e); } }
public DesignProcessDefinition deserializeProcessDefinition(final File file) throws IOException, InvalidBusinessArchiveFormatException { String content = IOUtil.read(file); try { return convertXmlToProcess(content); } catch (final IOException e) { checkVersion(content); throw new InvalidBusinessArchiveFormatException(e); } }
@Override public DesignProcessDefinition getDesignProcessDefinition(long processDefinitionId) throws SProcessDefinitionNotFoundException, SBonitaReadException { try { return processDefinitionBARContribution.convertXmlToProcess(getProcessDeploymentInfo(processDefinitionId).getDesignContent().getContent()); } catch (IOException e) { throw new SBonitaReadException(e); } }
@Override public boolean readFromBarFolder(final BusinessArchive businessArchive, final File barFolder) throws IOException, InvalidBusinessArchiveFormatException { final File file = new File(barFolder, PROCESS_DEFINITION_XML); if (!file.exists()) { return false; } final DesignProcessDefinition processDefinition = deserializeProcessDefinition(file); businessArchive.setProcessDefinition(processDefinition); checkProcessInfos(barFolder, processDefinition); return true; }
String getProcessContent(DesignProcessDefinition designProcessDefinition) throws IOException { return processDefinitionBARContribution.convertProcessToXml(designProcessDefinition); }
public DesignProcessDefinition convertXmlToProcess(String content) throws IOException { try (InputStream stream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8))) { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); unmarshaller .setSchema(SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(this.getClass().getResource("/ProcessDefinition.xsd"))); DesignProcessDefinition process = (DesignProcessDefinition) unmarshaller.unmarshal(stream); if (process.getActorInitiator() != null) { process.getActorInitiator().setInitiator(true); } addEventTriggerOnEvents(process.getFlowElementContainer()); return process; } catch (java.lang.UnsupportedOperationException | JAXBException | SAXException e) { throw new IOException("Failed to deserialize the XML string provided", e); } }
private void addEventTriggerOnEvents(FlowElementContainerDefinition flowElementContainer) { /* * Add event trigger manually */ addEventTriggerOnIntermediateCatchEvent(flowElementContainer); addEventTriggerOnIntermediateThrowEvent(flowElementContainer); addEventTriggerOnEndEvent(flowElementContainer); addEventTriggerOnBoundaryEvent(flowElementContainer); addEventTriggerOnStartEvent(flowElementContainer); }
public void serializeProcessDefinition(final File barFolder, final DesignProcessDefinition processDefinition) throws IOException { try { IOUtil.writeContentToFile(convertProcessToXml(processDefinition), new File(barFolder, PROCESS_DEFINITION_XML)); final String infos = generateInfosFromDefinition(processDefinition); IOUtil.writeContentToFile(getProcessInfos(infos), new File(barFolder, PROCESS_INFOS_FILE)); } catch (final FileNotFoundException e) { throw new IOException(e); } }
SProcessDefinition readSProcessDefinitionFromDatabase(long processId, SProcessDefinitionDeployInfo processDeploymentInfo) throws IOException, SReflectException, SCacheException { final DesignProcessDefinition objectFromXML = processDefinitionBARContribution.convertXmlToProcess(processDeploymentInfo.getDesignContent() .getContent()); SProcessDefinition sProcessDefinition = convertDesignProcessDefinition(objectFromXML); setIdOnProcessDefinition(sProcessDefinition, processId); storeProcessDefinitionInCache(sProcessDefinition, processDeploymentInfo.getLastUpdateDate()); return sProcessDefinition; }
private void addEventTriggerOnBoundaryEvent(FlowElementContainerDefinition flowElementContainer) { for (ActivityDefinition activity : flowElementContainer.getActivities()) { for (BoundaryEventDefinition boundaryEvent : activity.getBoundaryEventDefinitions()) { BoundaryEventDefinitionImpl boundaryEventImpl = (BoundaryEventDefinitionImpl) boundaryEvent; for (MessageEventTriggerDefinition messageEventTrigger : boundaryEvent.getMessageEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(messageEventTrigger); } for (ErrorEventTriggerDefinition errorEventTrigger : boundaryEvent.getErrorEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(errorEventTrigger); } for (SignalEventTriggerDefinition signalEventTrigger : boundaryEventImpl.getSignalEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(signalEventTrigger); } for (TimerEventTriggerDefinition timerEventTrigger : boundaryEvent.getTimerEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(timerEventTrigger); } } if (activity.getClass() == SubProcessDefinitionImpl.class) { addEventTriggerOnEvents(((SubProcessDefinitionImpl) activity).getSubProcessContainer()); } } }
public ProcessDefinitionServiceImpl(final Recorder recorder, final ReadPersistenceService persistenceService, final EventService eventService, final SessionService sessionService, final ReadSessionAccessor sessionAccessor, final QueriableLoggerService queriableLoggerService, final DependencyService dependencyService, CacheService cacheService) { this.recorder = recorder; this.persistenceService = persistenceService; this.eventService = eventService; this.sessionService = sessionService; this.sessionAccessor = sessionAccessor; this.queriableLoggerService = queriableLoggerService; this.cacheService = cacheService; processDefinitionBARContribution = new ProcessDefinitionBARContribution(); }
SProcessDefinition readSProcessDefinitionFromDatabase(long processId, SProcessDefinitionDeployInfo processDeploymentInfo) throws IOException, SReflectException, SCacheException { final DesignProcessDefinition objectFromXML = processDefinitionBARContribution.convertXmlToProcess(processDeploymentInfo.getDesignContent() .getContent()); SProcessDefinition sProcessDefinition = convertDesignProcessDefinition(objectFromXML); setIdOnProcessDefinition(sProcessDefinition, processId); storeProcessDefinitionInCache(sProcessDefinition, processDeploymentInfo.getLastUpdateDate()); return sProcessDefinition; }
private void addEventTriggerOnBoundaryEvent(FlowElementContainerDefinition flowElementContainer) { for (ActivityDefinition activity : flowElementContainer.getActivities()) { for (BoundaryEventDefinition boundaryEvent : activity.getBoundaryEventDefinitions()) { BoundaryEventDefinitionImpl boundaryEventImpl = (BoundaryEventDefinitionImpl) boundaryEvent; for (MessageEventTriggerDefinition messageEventTrigger : boundaryEvent.getMessageEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(messageEventTrigger); } for (ErrorEventTriggerDefinition errorEventTrigger : boundaryEvent.getErrorEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(errorEventTrigger); } for (SignalEventTriggerDefinition signalEventTrigger : boundaryEventImpl.getSignalEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(signalEventTrigger); } for (TimerEventTriggerDefinition timerEventTrigger : boundaryEvent.getTimerEventTriggerDefinitions()) { boundaryEventImpl.addEventTrigger(timerEventTrigger); } } if (activity.getClass() == SubProcessDefinitionImpl.class) { addEventTriggerOnEvents(((SubProcessDefinitionImpl) activity).getSubProcessContainer()); } } }