widana

da

Nov 6th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.87 KB | None | 0 0
  1. package org.jleaf.erp.sls.services;
  2. import java.io.InputStream;
  3.  
  4. import org.jleaf.baseservices.AbstractService;
  5. import org.jleaf.baseservices.AbstractServiceAppContext;
  6. import org.jleaf.core.Dto;
  7. import org.jleaf.core.GeneralConstants;
  8. import org.jleaf.erp.master.MasterConstants;
  9. import org.jleaf.erp.master.MasterProperties;
  10. import org.jleaf.erp.sls.services.AbstractSalesService;
  11. import org.jleaf.workflow.core.ApplicationContextProvider;
  12. import org.jleaf.workflow.core.engine.Workflow;
  13. import org.jleaf.workflow.core.engine.WorkflowExecutor;
  14. import org.jleaf.workflow.core.engine.WorkflowFactory;
  15. import org.jleaf.workflow.core.engine.WorkflowLoader;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.core.io.Resource;
  19. import org.xml.sax.InputSource;
  20.  
  21.  
  22. public abstract class AbstractSalesServiceForIndocom extends AbstractService {
  23.  
  24.     private static final Logger log = LoggerFactory.getLogger(AbstractSalesService.class);
  25.     private Workflow workflow;
  26.     private WorkflowExecutor executor;
  27.  
  28.     public void loadWorkflow(long tenantId) {
  29.         AbstractServiceAppContext context = SalesServiceAppContext.getInstance();
  30.  
  31.         WorkflowLoader loader = (WorkflowLoader) context.getContext().getBean("workflowLoader");
  32.         executor = (WorkflowExecutor) context.getContext().getBean("workflowExecutor");
  33.  
  34.         // Load workflow once
  35.         // Locate workflow resource
  36.         Resource res = ApplicationContextProvider.getApplicationContext().getResource("classpath:org/jleaf/erp/workflow-master.xml");
  37.         InputStream is;
  38.  
  39.         log.info("Load resource finished..." + res);
  40.  
  41.         try {
  42.             is = res.getInputStream();
  43.  
  44.             // Load xml to workflow object
  45.             workflow = loader.load(tenantId, is);
  46.  
  47.             // Set executor to use specified workflow
  48.             executor.setWorkflow(workflow);
  49.  
  50.             Workflow workflow = WorkflowFactory.getWorkflow();
  51.  
  52.             log.debug("schemeInputStream : "+ res);    
  53.            
  54.             WorkflowFactory.loadSchemes(workflow, new InputSource(res.getInputStream()));
  55.            
  56.            
  57.         } catch (Exception e) {
  58.             log.error("Could not load workflow. Error message: " + e.getMessage());
  59.             e.printStackTrace();
  60.         }
  61.     }
  62.  
  63.     @Override
  64.     public final AbstractServiceAppContext getServiceAppContext() {
  65.         AbstractServiceAppContext context = SalesServiceAppContext.getInstance();
  66.  
  67.         return context;
  68.     }
  69.  
  70.     /**
  71.      * Get workflow object
  72.      *
  73.      * @return the workflow
  74.      */
  75.     public Workflow getWorkflow() {
  76.         return workflow;
  77.     }
  78.  
  79.     /**
  80.      * Get workflow executor
  81.      *
  82.      * @return the executor
  83.      */
  84.     public WorkflowExecutor getExecutor() {
  85.         return executor;
  86.     }
  87.  
  88.     public boolean isTransactionOk(Dto output) {
  89.         if (output.getString("status").equals(GeneralConstants.FAIL)) {
  90.             return false;
  91.         }
  92.         return true;
  93.     }
  94.  
  95.     @Override
  96.     public String getPassKey() {
  97.         return MasterProperties.getProperties().getProperty(MasterConstants.PROP_PASS_KEY);
  98.     }
  99.    
  100. }
Add Comment
Please, Sign In to add comment