Ok here it is below.
(Maybe I should start a blog ;-), or independent paid consultancy ;-)) )

  | public class JbpmLifeCycleListener {
  |     
  |     /** Keylogger. */
  |     private static KeyLogger keyLogger = 
KeyLoggerFactory.getLogger(JbpmLifeCycleListener.class);
  |     
  |     /** Jbpm configuration */
  |     private JbpmConfiguration _jbpmConfiguration; 
  |     
  |     /** Resource. */
  |     private Resource configuration;
  |     
  |     /** SessionFactory */
  |     private SessionFactory sessionFactory;
  |     
  |     /** Set the configuration file resource. */
  |     @Required
  |     public void setConfiguration(Resource configuration) {
  |             this.configuration = configuration;
  |     }
  | 
  |     /** Set the hibernate session factory. */
  |     @Required
  |     public void setSessionFactory(SessionFactory sessionFactory) {
  |             this.sessionFactory = sessionFactory;
  |     }
  |     
  |     /**
  |      * Performs work after creation of JbpmConfiguration.
  |      */
  |     public void start() {
  |             initJBPMConfiguration();
  |             if (null != _jbpmConfiguration) {
  |                     afterCreation(_jbpmConfiguration);
  |             }
  |     }
  |     
  |     /**
  |      * Initialize the [EMAIL PROTECTED] JbpmConfiguration}
  |      *
  |      */
  |     public void initJBPMConfiguration() {
  |             if (null == _jbpmConfiguration) {
  |                     try {
  |                             _jbpmConfiguration = 
JbpmConfiguration.parseInputStream(configuration.getInputStream());
  |                             JbpmContext jbpmContext = 
_jbpmConfiguration.createJbpmContext();
  |                             ServiceFactory svF = 
_jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
  |                             
  |                             // Configure it to start its own transaction 
and open hibernate session
  |                             DbPersistenceServiceFactory dbF = 
(DbPersistenceServiceFactory)svF;
  |                             dbF.setTransactionEnabled(true);
  |                             dbF.setCurrentSessionEnabled(false);
  |                             try {
  |                               jbpmContext.setSessionFactory(sessionFactory);
  |                             } 
  |                             
  |                             finally {
  |                               if (null != jbpmContext) jbpmContext.close();
  |                             }
  |                     } catch (IOException e) {
  |                             
keyLogger.log(DefaultLogKeyMessageConstants.GENERIC_ERROR_MESSAGE, new 
String[]{"Unable" +
  |                                             "to retrieve 
JBPMConfiguration"});
  |                     }
  |             }
  | 
  |     }
  |     
  |     /**
  |      * Performs work before destruction JbpmConfiguration.
  |      */
  |     public void stop() {
  |             initJBPMConfiguration();
  |             if (null != _jbpmConfiguration) {
  |                     beforeDestroy(_jbpmConfiguration);
  |             }
  |     }
  |     
  |     /**
  |      * Called after creation of the jbpm configuration to perform 
additional tasks.
  |      * @param configuration jbpmConfiguration
  |      */
  |     public void afterCreation(JbpmConfiguration configuration) {
  |             keyLogger.debug("Starting job executor...");
  |             configuration.startJobExecutor();
  |             keyLogger.debug("Job executor started.");
  |     }
  |     
  |     /**
  |      * Called before destruction of the jbpm configuration.
  |      * @param configuration
  |      */
  |     public void beforeDestroy(JbpmConfiguration configuration) {
  |             keyLogger.debug("Stopping job executor...");
  |             configuration.getJobExecutor().stop();
  |             keyLogger.debug("Job executor stopped.");
  |     }
  | 
  | }

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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4094124
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to