[jbpm-commits] JBoss JBPM SVN: r3216 - in projects/balalaika/trunk: war/src/main/java/org/jboss/balalaika and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Dec 5 05:27:03 EST 2008


Author: heiko.braun at jboss.com
Date: 2008-12-05 05:27:03 -0500 (Fri, 05 Dec 2008)
New Revision: 3216

Modified:
   projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtEngineFactory.java
   projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtService.java
   projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/IntegrationConfig.java
   projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/RenderMetaData.java
   projects/balalaika/trunk/war/src/main/java/org/jboss/balalaika/ReportFacade.java
Log:
Docs and comments

Modified: projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtEngineFactory.java
===================================================================
--- projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtEngineFactory.java	2008-12-05 10:02:33 UTC (rev 3215)
+++ projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtEngineFactory.java	2008-12-05 10:27:03 UTC (rev 3216)
@@ -28,6 +28,8 @@
 import org.eclipse.birt.core.exception.BirtException;
 
 /**
+ * Constructs an {@link IReportEngine} from {@link org.jboss.balalaika.IntegrationConfig}
+ * 
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public class BirtEngineFactory

Modified: projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtService.java
===================================================================
--- projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtService.java	2008-12-05 10:02:33 UTC (rev 3215)
+++ projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/BirtService.java	2008-12-05 10:27:03 UTC (rev 3216)
@@ -27,7 +27,16 @@
 import org.apache.commons.logging.LogFactory;
 
 /**
- * jBPM BIRT integration.
+ * Core BIRT service component. Requires to step through the lifecycle
+ * before it can be used:
+ * <ul>
+ * <li>create: constructs a BIRT engine and platform
+ * <li>start:
+ * <li>stop: 
+ * <li>destroy: destroy engine and shutdown platform
+ *
+ * @see org.eclipse.birt.report.engine.api.IReportEngine#destroy() 
+ * @see org.eclipse.birt.core.framework.Platform#shutdown()
  * 
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
@@ -38,26 +47,35 @@
    private IReportEngine engine;
    private IntegrationConfig iConfig;
 
-   public BirtService()
+   private enum State  {NONE, CREATED, STARTED, STOPPED, DESTROYED};
+   private State currentState = State.NONE;
+
+   public BirtService(IntegrationConfig iConfig)
    {
-      // TODO: runtime configuration
-      this.iConfig = new IntegrationConfig();
+      this.iConfig = iConfig;
    }
 
    public void create()
    {
       this.engine = BirtEngineFactory.newInstance(iConfig);
       log.info("Service created: " +this.engine);
+      currentState = State.CREATED;
    }
 
    public void start()
    {
-
+      if(currentState!=State.CREATED)
+         throw new IllegalStateException("Please call create lifecylce before starting the service");
+      
+      currentState = State.STARTED;
    }
 
    public void stop()
    {
+      if(currentState!=State.STARTED)
+         throw new IllegalStateException("Please call start lifecylce before stopping the service");
 
+      currentState = State.STOPPED;
    }
 
    public void destroy()
@@ -66,10 +84,14 @@
          engine.destroy();
       Platform.shutdown();
       log.info("Service destroyed");
+      currentState = State.DESTROYED;
    }
 
    public String render(RenderMetaData metaData)
    {
+      if( (currentState==State.CREATED || currentState==State.STARTED) == false)
+         throw new IllegalStateException("Cannot render in state " + currentState);
+      
       String outputFileName = null;
 
       log.debug("Render " + metaData);
@@ -146,4 +168,9 @@
    {
       return reportFile.substring( 0, reportFile.indexOf("."));
    }
+
+   public State getCurrentState()
+   {
+      return currentState;
+   }
 }

Modified: projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/IntegrationConfig.java
===================================================================
--- projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/IntegrationConfig.java	2008-12-05 10:02:33 UTC (rev 3215)
+++ projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/IntegrationConfig.java	2008-12-05 10:27:03 UTC (rev 3216)
@@ -22,6 +22,8 @@
 package org.jboss.balalaika;
 
 /**
+ * Adopts an integration layout (i.e. working directories) to BIRT configuration.
+ *
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public class IntegrationConfig

Modified: projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/RenderMetaData.java
===================================================================
--- projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/RenderMetaData.java	2008-12-05 10:02:33 UTC (rev 3215)
+++ projects/balalaika/trunk/core/src/main/java/org/jboss/balalaika/RenderMetaData.java	2008-12-05 10:27:03 UTC (rev 3216)
@@ -22,6 +22,8 @@
 package org.jboss.balalaika;
 
 /**
+ * Drives a {@link org.jboss.balalaika.BirtService#render(RenderMetaData)} call.
+ * 
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public class RenderMetaData

Modified: projects/balalaika/trunk/war/src/main/java/org/jboss/balalaika/ReportFacade.java
===================================================================
--- projects/balalaika/trunk/war/src/main/java/org/jboss/balalaika/ReportFacade.java	2008-12-05 10:02:33 UTC (rev 3215)
+++ projects/balalaika/trunk/war/src/main/java/org/jboss/balalaika/ReportFacade.java	2008-12-05 10:27:03 UTC (rev 3216)
@@ -48,7 +48,9 @@
 
    public ReportFacade()
    {
-      this.birtService = new BirtService();
+      // TODO: external configuration
+      IntegrationConfig iConfig = new IntegrationConfig();
+      this.birtService = new BirtService(iConfig);
       this.birtService.create();
    }
 




More information about the jbpm-commits mailing list