Example usage for org.springframework.transaction.support TransactionCallback TransactionCallback

List of usage examples for org.springframework.transaction.support TransactionCallback TransactionCallback

Introduction

In this page you can find the example usage for org.springframework.transaction.support TransactionCallback TransactionCallback.

Prototype

TransactionCallback

Source Link

Usage

From source file:org.fireflow.pdl.fpdl20.test.service.callback.WebServiceStartProcess4KTP.java

@Test
public void testCallbackService() {
    final WorkflowSession session = WorkflowSessionFactory.createWorkflowSession(runtimeContext,
            FireWorkflowSystem.getInstance());
    final WorkflowStatement stmt = session.createWorkflowStatement(FpdlConstants.PROCESS_TYPE_FPDL20);

    //0??/*from   www .  ja  va  2  s . com*/
    final WorkflowProcess process = getWorkflowProcess();

    //1???
    transactionTemplate.execute(new TransactionCallback() {
        public Object doInTransaction(TransactionStatus arg0) {

            //?
            try {

                stmt.uploadProcessObject(process, true, null, null);
            } catch (InvalidModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }
    });

    //2?CallbackManagerinit?Webservice
    WebServiceManager callbackManager = this.runtimeContext.getEngineModule(WebServiceManager.class,
            FpdlConstants.PROCESS_TYPE_FPDL20);
    try {
        callbackManager.publishAllCallbackServices();
    } catch (WebservicePublishException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        Thread.currentThread().sleep(30 * 60 * 1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    //JaxwsWebservice      
    //      Environment env = runtimeContext.getEngineModule(Environment.class, FpdlConstants.PROCESS_TYPE_FPDL20);
    //      URL url = null;
    //      try{
    //         url = new URL(env.getWebserviceContextPath()+serviceQName.getLocalPart()+"?wsdl");
    //      }catch(Exception e){
    //         e.printStackTrace();
    //      }
    //      
    //      javax.xml.ws.Service jawsService = javax.xml.ws.Service.create(url, serviceQName);
    //      Dispatch<Source> dispatch = jawsService.createDispatch(portQName, Source.class, javax.xml.ws.Service.Mode.PAYLOAD);
    //      
    //      String messageStr = "<cal:acceptRequest  xmlns:cal=\""+targetNsUri+"\">"+
    //                        "<cal:id>"+bizId+"</cal:id>"+
    //                        "<cal:approveResult>"+approveResult+"</cal:approveResult>"+
    //                        "</cal:acceptRequest>";
    //      java.io.ByteArrayInputStream byteInStream = new java.io.ByteArrayInputStream(messageStr.getBytes());
    //      StreamSource source = new StreamSource(byteInStream);
    //      
    //      Source response = dispatch.invoke(source);
    //      
    //      DOMResult result = new DOMResult();
    ////      StreamResult result = new StreamResult(System.out);
    //      Transformer transformer = null;
    //      try {
    //         TransformerFactory transformerFactory = TransformerFactory.newInstance();   
    //         transformer = transformerFactory.newTransformer();
    //         transformer.transform(response, result);   
    //      } catch (TransformerConfigurationException e) {
    //         throw new RuntimeException("Couldn't parse response stream.", e);
    //      } catch (TransformerException e) {
    //         throw new RuntimeException("Couldn't parse response stream.", e);
    //      }
    //   
    //      Document theResponsePayload = (Document)result.getNode();
    //      Assert.assertNotNull(theResponsePayload);
    //      JXPathContext jxpathContext = JXPathContext.newContext(theResponsePayload);
    //      jxpathContext.registerNamespace("ns0", targetNsUri);
    //      String response2 = (String)jxpathContext.getValue("ns0:acceptResponse/ns0:response2");
    //      String response1 = (String)jxpathContext.getValue("ns0:acceptResponse/ns0:response1");
    //      Assert.assertEquals(responseResult, response2);
    //      
    //      Assert.assertNotNull(response1);
    //      
    //      this.processInstanceId = response1;
    //      
    //      
    //      this.assertResult(session);
}

From source file:org.fireflow.pdl.fpdl20.test.service.callback.WebserviceStartProcessTest.java

@Test
public void testCallbackService() {
    final WorkflowSession session = WorkflowSessionFactory.createWorkflowSession(runtimeContext,
            FireWorkflowSystem.getInstance());
    final WorkflowStatement stmt = session.createWorkflowStatement(FpdlConstants.PROCESS_TYPE_FPDL20);

    //0??//  w  w  w.java2 s. c  o m
    final WorkflowProcess process = getWorkflowProcess();

    //1???
    transactionTemplate.execute(new TransactionCallback() {
        public Object doInTransaction(TransactionStatus arg0) {

            //?
            try {

                stmt.uploadProcessObject(process, true, null, null);
            } catch (InvalidModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }
    });

    //2?CallbackManagerinit?Webservice
    WebServiceManager callbackManager = this.runtimeContext.getEngineModule(WebServiceManager.class,
            FpdlConstants.PROCESS_TYPE_FPDL20);
    try {
        callbackManager.publishAllCallbackServices();
    } catch (WebservicePublishException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    //JaxwsWebservice      
    Environment env = runtimeContext.getEngineModule(Environment.class, FpdlConstants.PROCESS_TYPE_FPDL20);
    URL url = null;
    try {
        String contextPath = env.getWebserviceContextPath();
        if (!contextPath.startsWith("/")) {
            contextPath = "/" + contextPath;
        }
        if (!contextPath.endsWith("/")) {
            contextPath = contextPath + "/";
        }
        String address = "http://" + env.getWebserviceIP() + ":" + Integer.toString(env.getWebservicePort())
                + contextPath;

        url = new URL(address + serviceQName.getLocalPart() + "?wsdl");
    } catch (Exception e) {
        e.printStackTrace();
    }

    javax.xml.ws.Service jawsService = javax.xml.ws.Service.create(url, serviceQName);
    Dispatch<Source> dispatch = jawsService.createDispatch(portQName, Source.class,
            javax.xml.ws.Service.Mode.PAYLOAD);

    String messageStr = "<cal:acceptRequest  xmlns:cal=\"" + targetNsUri + "\">" + "<cal:id>" + bizId
            + "</cal:id>" + "<cal:approveResult>" + approveResult + "</cal:approveResult>"
            + "</cal:acceptRequest>";
    java.io.ByteArrayInputStream byteInStream = new java.io.ByteArrayInputStream(messageStr.getBytes());
    StreamSource source = new StreamSource(byteInStream);

    Source response = dispatch.invoke(source);

    DOMResult result = new DOMResult();
    //      StreamResult result = new StreamResult(System.out);
    Transformer transformer = null;
    try {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        transformer = transformerFactory.newTransformer();
        transformer.transform(response, result);
    } catch (TransformerConfigurationException e) {
        throw new RuntimeException("Couldn't parse response stream.", e);
    } catch (TransformerException e) {
        throw new RuntimeException("Couldn't parse response stream.", e);
    }

    Document theResponsePayload = (Document) result.getNode();
    Assert.assertNotNull(theResponsePayload);
    JXPathContext jxpathContext = JXPathContext.newContext(theResponsePayload);
    jxpathContext.registerNamespace("ns0", targetNsUri);
    String response2 = (String) jxpathContext.getValue("ns0:acceptResponse/ns0:response2");
    String response1 = (String) jxpathContext.getValue("ns0:acceptResponse/ns0:response1");
    Assert.assertEquals(responseResult, response2);

    Assert.assertNotNull(response1);

    this.processInstanceId = response1;

    this.assertResult(session);
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessDescriptorImpl uploadProcessXml(String sessionId, final String processXml, final int version)
        throws EngineException {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessDescriptorImpl descriptor = (ProcessDescriptorImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    try {
                        return statement.uploadProcessXml(processXml, version);
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    }//from   w ww  .  ja va2  s  . c  om
                }

            });
    return descriptor;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl createProcessInstance1(String sessionId, final String workflowProcessId)
        throws InvalidModelException, WorkflowProcessNotFoundException {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.createProcessInstance(workflowProcessId);
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    }/* www .  jav  a2s  .c o m*/
                    return processInstance;
                }

            });
    return procInst;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl createProcessInstance2(String sessionId, final String workflowProcessId,
        final int version) throws InvalidModelException, WorkflowProcessNotFoundException {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.createProcessInstance(workflowProcessId, version);
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    }//from www. jav a 2  s  . c om
                    return processInstance;
                }

            });
    return procInst;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl createProcessInstance4(String sessionId, final String workflowProcessId,
        final int version, final String subProcessId)
        throws InvalidModelException, WorkflowProcessNotFoundException {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.createProcessInstance(workflowProcessId, version,
                                subProcessId);
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    }/*from   ww  w. j a va2 s.  c o  m*/
                    return processInstance;
                }

            });
    return procInst;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl createProcessInstance3(String sessionId, final String workflowProcessId,
        final String subProcessId) throws InvalidModelException, WorkflowProcessNotFoundException {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.createProcessInstance(workflowProcessId, subProcessId);
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    }/*from  w w  w  . j  a v  a 2 s.  co  m*/
                    return processInstance;
                }

            });
    return procInst;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl runProcessInstance(String sessionId, final String processInstanceId,
        final String bizId, final MapConvertor mapConvertor) {
    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    processInstance = statement.runProcessInstance(processInstanceId, bizId,
                            mapConvertor.getMap());

                    return processInstance;
                }//from  w ww.j  av a 2s  . c om

            });
    return procInst;
}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl startProcess2(String sessionId, final String workflowProcessId, final int version,
        final String bizId, final MapConvertor mapConvertor)
        throws InvalidModelException, WorkflowProcessNotFoundException, InvalidOperationException {

    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.startProcess(workflowProcessId, version, bizId,
                                mapConvertor.getMap());
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    } catch (InvalidOperationException e) {
                        throw new EngineException(e);
                    }/* www. j a  va2  s . c om*/
                    return processInstance;
                }

            });
    return procInst;

}

From source file:org.fireflow.server.WorkflowEngineServiceInternalImpl.java

@SuppressWarnings("unchecked")
public ProcessInstanceImpl startProcess4(String sessionId, final String workflowProcessId, final int version,
        final String subProcessId, final String bizId, final MapConvertor mapConvertor)
        throws InvalidModelException, WorkflowProcessNotFoundException, InvalidOperationException {

    final WorkflowSessionLocalImpl session = validateSession(sessionId);
    final WorkflowStatementLocalImpl statement = (WorkflowStatementLocalImpl) session.createWorkflowStatement();
    ProcessInstanceImpl procInst = (ProcessInstanceImpl) springTransactionTemplate
            .execute(new TransactionCallback() {

                public Object doInTransaction(TransactionStatus status) {
                    ProcessInstance processInstance = null;
                    try {
                        processInstance = statement.startProcess(workflowProcessId, version, subProcessId,
                                bizId, mapConvertor.getMap());
                    } catch (InvalidModelException e) {
                        throw new EngineException(e);
                    } catch (WorkflowProcessNotFoundException e) {
                        throw new EngineException(e);
                    } catch (InvalidOperationException e) {
                        throw new EngineException(e);
                    }//  w ww  .  j  av a2s . co  m
                    return processInstance;
                }

            });
    return procInst;

}