[overlord-commits] Overlord SVN: r902 - report-server/trunk/core/src/main/java/org/jboss/bpm/report.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Thu Dec 10 09:47:54 EST 2009


Author: heiko.braun at jboss.com
Date: 2009-12-10 09:47:54 -0500 (Thu, 10 Dec 2009)
New Revision: 902

Modified:
   report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java
Log:
Fix report init on tomcat (fallback to -Dcatalina-home)

Modified: report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java
===================================================================
--- report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java	2009-12-10 14:41:55 UTC (rev 901)
+++ report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java	2009-12-10 14:47:54 UTC (rev 902)
@@ -83,11 +83,10 @@
   {
     if(!isInitialized)
     {
-      JMXServerConfig jmxConfig = new JMXServerConfig();
-      IntegrationConfig iConfig = new IntegrationConfig();
+      File serverDataDir = resolveDataDir();
 
-      File severDataDir = jmxConfig.getServerDataDir();
-      String absServerDataDir = severDataDir.getAbsolutePath();
+      IntegrationConfig iConfig = new IntegrationConfig();      
+      String absServerDataDir = serverDataDir.getAbsolutePath();
 
       String birtDataDir = absServerDataDir + "/birt";
       String defaultBirtHome = birtDataDir + "/ReportEngine";
@@ -124,6 +123,28 @@
     }
   }
 
+  private File resolveDataDir()
+  {
+    JMXServerConfig jmxConfig = null;
+    File serverDataDir = null;
+    try
+    {
+      jmxConfig = new JMXServerConfig();
+      serverDataDir = jmxConfig.getServerDataDir();
+    }
+    catch (Exception e)
+    {
+      // fallback on on CATALINA_HOME or blow up
+      log.warn("Resolving serverDataDir based on -Dcatalina.home");
+      if(System.getProperty("catalina.home")!=null)
+        serverDataDir = new File(System.getProperty("catalina.home"));
+      else
+        throw new IllegalStateException("Neither JMX config nor '-Dcatalina.home' available to resolve serverDataDir");
+    }
+
+    return serverDataDir;
+  }
+
   @GET
   @Path("render/{fileName}")
   @Produces("text/html")
@@ -170,17 +191,17 @@
   {
 
     assertBirtAvailability();
-    
+
     try
     {
       RenderMetaData renderMeta = defaultRenderMetaData(fileName, request);
       Map<String,String> postParams = convertRequestParametersToMap(request);
       renderMeta.getParameters().putAll(postParams);
-      
+
       String outputFileName = birtService.render(renderMeta);
       String absoluteFile = birtService.getIntegrationConfig().getOutputDir() + outputFileName;
       log.debug("Render " + absoluteFile);
-      
+
       return Response.ok().type("text/html").build();
     }
     catch(Throwable e1)
@@ -199,7 +220,7 @@
   )
   {
     assertBirtAvailability();
-    
+
     String imageDir = birtService.getIntegrationConfig().getImageDirectory();
     String absName = imageDir + fileName;
     File imageFile = new File(absName);
@@ -207,7 +228,7 @@
       throw new IllegalArgumentException("Image " +absName+" doesn't exist");
     return Response.ok(imageFile).build();
   }
-  
+
   private RenderMetaData defaultRenderMetaData(String fileName, HttpServletRequest request)
   {
     RenderMetaData renderMeta = new RenderMetaData();
@@ -289,7 +310,7 @@
   public Response getReportConfig()
   {
     assertBirtAvailability();
-    
+
     List<ReportReference> refs = birtService.getReportReferences();
     String json = new GsonBuilder().create().toJson(refs);
     return Response.ok(json).build();



More information about the overlord-commits mailing list