log4j:WARN No appenders could be found for logger (org.jbpm.JbpmConfiguration).
log4j:WARN Please initialize the log4j system properly.
[Fatal Error] :9:30: Element type "service" must be followed by either 
attribute specifications, ">" or "/>".

<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>

        // A jbpm-context mechanism separates the jbpm core 
        // engine from the services that jbpm uses from 
        // the environment.  

        <jbpm-context>
                <service 
name='persistence'factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' 
/>
        </jbpm-context>

        // Also all the resource files that are used by jbpm are 
        // referenced from the jbpm.cfg.xml

        
        
        " +
        " +
        " +
        " +
        " +
</jbpm-configuration>

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd";>

<hibernate-configuration>
  <session-factory>

    <!-- jdbc connection properties -->
    org.hibernate.dialect.PostgreSQLDialect
    org.postgresql.Driver
    jdbc:postgresql://127.0.0.1:5432/admissao_funcional
    postgres
    adpt
        
    <!-- c3p0 connection pooling properties
    1
    3
    -->

    <!-- other hibernate properties -->
    true

    <!--identity mapping files -->
    <!-- uncomment if you don't want to use the default jBPM identity mgmgt 
component -->
    
    
    

    <!-- graph.def mapping files -->
    
    
    
    
    
    
    
    

    <!-- graph.node mapping files -->
    
    
    
    
    
    
    
    

    <!-- graph.action mapping files -->
    

    <!-- context.def mapping files -->
    
    

    <!-- taskmgmt.def mapping files -->
    
    
    
    

    <!-- module.def mapping files -->
    

    <!-- bytes mapping files -->
    

    <!-- file.def mapping files -->
    

    <!-- scheduler.def mapping files -->
    
    

    <!-- graph.exe mapping files -->
    
    
    
    

    <!-- module.exe mapping files -->
    
        
    <!-- context.exe mapping files -->
    
    
    
    
    
    
    
    
    
    

    <!-- taskmgmt.exe mapping files -->
    
    
    
    

    <!-- scheduler.exe mapping files -->
    

    <!-- logging mapping files -->
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

  </session-factory>
</hibernate-configuration>


package org.adept.ca2.process;

import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.*;

public class AdmissaoFuncional implements ActionHandler {
        private static final long serialVersionUID = 1L; 
        public void execute(ExecutionContext context)throws Exception {
                context.getContextInstance().createVariable("Inicio do processo 
de seleção de funcionários","Início");
        }
}


<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1"  name="Admissao-Funcional">
   <start-state name="Inicia seleção">
      
         
      
   </start-state>
   
      
      
   
   
      
      
      
      
   
   <end-state name="Fim da Seleção"></end-state>
   
      
   
   
      
   
</process-definition>

package org.adept.ca2.dao;

import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import junit.framework.TestCase;
import java.util.List;

/**
 * @author Luís Augusto Machado Moretto
 * @see Adept-Systems
 */

public class AdmissaoDAO extends TestCase  {
        private static JbpmConfiguration jbpmConf = 
JbpmConfiguration.getInstance("conf/config.jbpm.xml");

        public AdmissaoDAO() {
                super();// Chama o construtor da classe pai :>
        }

        public void setUp() {
                this.jbpmConf.createSchema();// Cria o esquema
        }

        public void dropDown() {
                this.jbpmConf.dropSchema();
        }

        public void testSimplePersistence() {
                // Between the 3 method calls below, all data is passed via the
                // database. Here, in this unit test, these 3 methods are 
executed
                // right after each other because we want to test a complete 
process
                // scenario. But in reality, these methods represent different
                // requests to a server.

                // Since we start with a clean, empty in-memory database, we 
have to
                // deploy the process first. In reality, this is done once by 
the
                // process developer.
                deployProcessDefinition();

                // Suppose we want to start a process instance (=process 
execution)
                // when a user submits a form in a web application...
                processInstanceIsCreatedWhenUserSubmitsWebappForm();

                // Then, later, upon the arrival of an asynchronous message the
                // execution must continue.
                theProcessInstanceContinuesWhenAnAsyncMessageIsReceived();
        }

        public void deployProcessDefinition() {
                // This test shows a process definition and one execution
                String uri = "Admissao-Funcional.par/processdefinition.xml";
                ProcessDefinition processDefinition = 
ProcessDefinition.parseXmlResource(uri);

                // Lookup the pojo persistence context-builder that is 
configured above
                JbpmContext jbpmContext = this.jbpmConf.createJbpmContext();
                try {
                        // Deploy the process definition in the database
                        jbpmContext.deployProcessDefinition(processDefinition);

                } finally {
                        // Tear down the pojo persistence context.
                        // This includes flush the SQL for inserting the 
process definition
                        // to the database.
                        jbpmContext.close();
                }
        }

        public void processInstanceIsCreatedWhenUserSubmitsWebappForm() {
                // The code in this method could be inside a struts-action
                // or a JSF managed bean.

                // Lookup the pojo persistence context-builder that is 
configured above
                JbpmContext jbpmContext = this.jbpmConf.createJbpmContext();
                try {

                        ProcessDefinition processDefinition = 
jbpmContext.getGraphSession().findLatestProcessDefinition("hello world");

                        // With the processDefinition that we retrieved from 
the database,
                        // we
                        // can create an execution of the process definition 
just like in
                        // the
                        // hello world example (which was without persistence).
                        ProcessInstance processInstance = new 
ProcessInstance(processDefinition);
                        /**
                         * 
                         * @see Inicializa o parse do XML
                         * */
                        
                        assertNotNull("A definição do processo não pode ser 
null:<",processDefinition);
                        
                        /**
                         * 
                         * @see Cria uma instância do processo na raiz -> 
Inicia seleção 
                         * */

                        processInstance = new 
ProcessInstance(processDefinition);
                        assertEquals("Inicio do processo de selecção de 
funcionários",processInstance.getRootToken().getNode().getName(),"Inicia 
seleção");
                        processInstance.signal();
                        jbpmContext.save(processInstance);

                        /**
                         * 
                         * @see transição do processo
                         * @Estado de seleção dos candidatos 
                         * */
                        
                        assertEquals("Processo no estado de seleção dos 
candidatos",processInstance.getRootToken().getNode().getName(),"Seleciona 
candidatos");
                        processInstance.signal();
                        
                        /**
                         * 
                         * @see transição do processo
                         * @Estado de Entrevistas com os candidatos
                         * */
                        
                        assertEquals("Processo de seleção na fase de 
entrevistas",processInstance.getRootToken().getNode().getName(),"Entrevista");
                        processInstance.signal();
                        
                        /**
                         * 
                         * @see transição do processo
                         * @Estado de validação do perfil funcional do candidato
                         * */
                        
                        assertEquals("Processo de validação do perfil funcional 
do candidato",processInstance.getRootToken().getNode().getName(),"Possui perfil 
funcional");
                        processInstance.signal();
                        
                        /**
                         * 
                         * @see transição do processo
                         * @Estado de contratação do funcionário
                         * */
                        
                        assertEquals("Processo de seleção na fase de 
contratação do(s) 
funcionário(s)",processInstance.getRootToken().getNode().getName(),"Contrata 
funcionário");
                        processInstance.signal();
                        
                        /**
                         * 
                         * @see transição do processo
                         * @Estado final do processo
                         * */
                        
                        assertEquals("Processo de seleção 
finalizado",processInstance.getRootToken().getNode().getName(),"Fim da 
Seleção");
                        assertTrue("Fim da seleção",processInstance.hasEnded());


                } finally {
                        // Tear down the pojo persistence context.
                        jbpmContext.close();
                }
        }

        public void theProcessInstanceContinuesWhenAnAsyncMessageIsReceived() {
                // The code in this method could be the content of a message 
driven
                // bean.

                // Lookup the pojo persistence context-builder that is 
configured above
                JbpmContext jbpmContext = this.jbpmConf.createJbpmContext();
                try {

                        // First, we need to get the process instance back out 
of the
                        // database.
                        // There are several options to know what process 
instance we are
                        // dealing
                        // with here. The easiest in this simple test case is 
just to look
                        // for
                        // the full list of process instances. That should give 
us only one
                        // result. So let's look up the process definition.

                        ProcessDefinition processDefinition = 
jbpmContext.getGraphSession().findLatestProcessDefinition("hello world");

                        // Now, we search for all process instances of this 
process
                        // definition.
                        List processInstances = 
jbpmContext.getGraphSession().findProcessInstances(processDefinition.getId());

                        // Because we know that in the context of this unit 
test, there is
                        // only one execution. In real life, the 
processInstanceId can be
                        // extracted from the content of the message that 
arrived or from
                        // the user making a choice.
                        ProcessInstance processInstance = 
(ProcessInstance)processInstances.get(0);

                        // Now we can continue the execution. Note that the 
processInstance
                        // delegates signals to the main path of execution 
(=the root
                        // token).
                        processInstance.signal();

                        // After this signal, we know the process execution 
should have
                        // arrived in the end-state.
                        assertTrue(processInstance.hasEnded());

                        // Now we can update the state of the execution in the 
database
                        jbpmContext.save(processInstance);

                } finally {
                        // Tear down the pojo persistence context.
                        jbpmContext.close();
                }
        }
}



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923673#3923673

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923673


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to