[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