diff --git a/cit-esi-api/pom.xml b/cit-esi-api/pom.xml index a39b844..d8b782e 100644 --- a/cit-esi-api/pom.xml +++ b/cit-esi-api/pom.xml @@ -79,18 +79,6 @@ json - pentaho-reporting-engine - pentaho-reporting-engine-classic-core - - - pentaho-library - libloader - - - pentaho-library - libbase - - org.apache.poi poi @@ -118,6 +106,59 @@ org.drools drools-compiler + + + pentaho-reporting-engine + pentaho-reporting-engine-classic-core + jar + + + pentaho-reporting-engine + pentaho-reporting-engine-classic-extensions + jar + + + pentaho-library + libbase + + + pentaho-library + libdocbundle + + + pentaho-library + libfonts + + + pentaho-library + libformat + + + pentaho-library + libformula + + + pentaho-library + libloader + + + pentaho-library + librepository + + + pentaho-library + libserializer + + + pentaho-library + libxml + + + pentaho-library + libswing + 1.2.4 + + diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCloseConnectionDBSql.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCloseConnectionDBSql.java deleted file mode 100644 index 85c1b75..0000000 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCloseConnectionDBSql.java +++ /dev/null @@ -1,26 +0,0 @@ -package br.com.centralit.esi.api.execution.component; - -import java.sql.Connection; -import java.sql.SQLException; - -import br.com.centralit.esi.api.runtime.RuntimeEnvironment; -import br.com.centralit.esi.exception.EsiExecutionException; - -public class ExecuteCloseConnectionDBSql { - public static void execute(RuntimeEnvironment runtimeEnvironment) { - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); - if (connName != null){ - Connection connection = (Connection) runtimeEnvironment.getObject(connName); - if (connection != null){ - try { - connection.close(); - } catch (SQLException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } - connection = null; - } - runtimeEnvironment.addOrUpdateObject(connName, null); - } - } -} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCommitTransactionSql.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCommitTransactionSql.java deleted file mode 100644 index 3e93711..0000000 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCommitTransactionSql.java +++ /dev/null @@ -1,32 +0,0 @@ -package br.com.centralit.esi.api.execution.component; - -import java.sql.Connection; -import java.sql.SQLException; - -import br.com.centralit.esi.api.runtime.RuntimeEnvironment; -import br.com.centralit.esi.exception.EsiExecutionException; - -public class ExecuteCommitTransactionSql { - public static void execute(RuntimeEnvironment runtimeEnvironment) { - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); - if (connName != null){ - Connection connection = (Connection) runtimeEnvironment.getObject(connName); - if (connection != null){ - try { - connection.commit(); - } catch (SQLException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } finally{ - try { - connection.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - connection = null; - } - } - runtimeEnvironment.addOrUpdateObject(connName, null); - } - } -} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteConectaIniciaTransactionSql.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteConectaIniciaTransactionSql.java deleted file mode 100644 index d9d5273..0000000 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteConectaIniciaTransactionSql.java +++ /dev/null @@ -1,85 +0,0 @@ -package br.com.centralit.esi.api.execution.component; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import javax.sql.DataSource; - -import br.com.centralit.esi.api.runtime.RuntimeEnvironment; -import br.com.centralit.esi.exception.EsiExecutionException; - -public class ExecuteConectaIniciaTransactionSql { - public static void execute(RuntimeEnvironment runtimeEnvironment) { - String driverClassName = (String) runtimeEnvironment.getObject("DRIVERCLASSNAME"); - String pathConnection = (String) runtimeEnvironment.getObject("PATHCONNECTION"); - String userName = (String) runtimeEnvironment.getObject("USERNAME"); - String password = (String) runtimeEnvironment.getObject("PASSWORD"); - - String connType = (String) runtimeEnvironment.getObject("CONNTYPE"); - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); - - String autoCommit = (String) runtimeEnvironment.getObject("AUTOCOMMIT"); - if (autoCommit == null){ - autoCommit = "S"; - } - if (connType == null){ - connType = ""; - } - - - Connection connection = null; - - try { - if (connType.trim().equalsIgnoreCase("JNDI")){ - String contexto = (String) runtimeEnvironment.getObject("JNDICONTEXT"); - String tipo = (String) runtimeEnvironment.getObject("JNDITYPE"); - - Context cnx = new InitialContext(); - DataSource ds; - ds = (DataSource) cnx.lookup(contexto + tipo); - connection = ds.getConnection(); - }else{ - try { - Class.forName(driverClassName); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } - connection = DriverManager.getConnection(pathConnection, userName, password); - } - } catch (SQLException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } catch (NamingException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } - - if (connection != null) { - try { - if (autoCommit.trim().toUpperCase().equalsIgnoreCase("S") || autoCommit.trim().toUpperCase().equalsIgnoreCase("Y") - || autoCommit.trim().toUpperCase().equalsIgnoreCase("TRUE")){ - connection.setAutoCommit(true); - }else{ - connection.setAutoCommit(false); - } - } catch (SQLException e) { - e.printStackTrace(); - try { - connection.close(); - } catch (SQLException e1) { - } - connection = null; - throw new EsiExecutionException(e); - } - runtimeEnvironment.addOrUpdateObject(connName, connection); - } else { - System.out.println("ExecutaIniciaTransactionSql: Failed to make connection!"); - throw new EsiExecutionException(); - } - } -} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBClose.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBClose.java new file mode 100644 index 0000000..b08156c --- /dev/null +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBClose.java @@ -0,0 +1,26 @@ +package br.com.centralit.esi.api.execution.component; + +import java.sql.Connection; +import java.sql.SQLException; + +import br.com.centralit.esi.api.runtime.RuntimeEnvironment; +import br.com.centralit.esi.exception.EsiExecutionException; + +public class ExecuteDBClose { + public static void execute(RuntimeEnvironment runtimeEnvironment) { + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); + if (connName != null){ + Connection connection = (Connection) runtimeEnvironment.getObject(connName); + if (connection != null){ + try { + connection.close(); + } catch (SQLException e) { + e.printStackTrace(); + throw new EsiExecutionException(e); + } + connection = null; + } + runtimeEnvironment.addOrUpdateObject(connName, null); + } + } +} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBCommit.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBCommit.java new file mode 100644 index 0000000..7b9901f --- /dev/null +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBCommit.java @@ -0,0 +1,32 @@ +package br.com.centralit.esi.api.execution.component; + +import java.sql.Connection; +import java.sql.SQLException; + +import br.com.centralit.esi.api.runtime.RuntimeEnvironment; +import br.com.centralit.esi.exception.EsiExecutionException; + +public class ExecuteDBCommit { + public static void execute(RuntimeEnvironment runtimeEnvironment) { + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); + if (connName != null){ + Connection connection = (Connection) runtimeEnvironment.getObject(connName); + if (connection != null){ + try { + connection.commit(); + } catch (SQLException e) { + e.printStackTrace(); + throw new EsiExecutionException(e); + } finally{ + try { + connection.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + connection = null; + } + } + runtimeEnvironment.addOrUpdateObject(connName, null); + } + } +} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBConnect.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBConnect.java new file mode 100644 index 0000000..c5ed288 --- /dev/null +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBConnect.java @@ -0,0 +1,85 @@ +package br.com.centralit.esi.api.execution.component; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import javax.sql.DataSource; + +import br.com.centralit.esi.api.runtime.RuntimeEnvironment; +import br.com.centralit.esi.exception.EsiExecutionException; + +public class ExecuteDBConnect { + public static void execute(RuntimeEnvironment runtimeEnvironment) { + String driverClassName = (String) runtimeEnvironment.getObject("DRIVERCLASSNAME"); + String pathConnection = (String) runtimeEnvironment.getObject("PATHCONNECTION"); + String userName = (String) runtimeEnvironment.getObject("USERNAME"); + String password = (String) runtimeEnvironment.getObject("PASSWORD"); + + String connType = (String) runtimeEnvironment.getObject("CONNTYPE"); + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME"); + + String autoCommit = (String) runtimeEnvironment.getObject("AUTOCOMMIT"); + if (autoCommit == null){ + autoCommit = "S"; + } + if (connType == null){ + connType = ""; + } + + + Connection connection = null; + + try { + if (connType.trim().equalsIgnoreCase("JNDI")){ + String contexto = (String) runtimeEnvironment.getObject("JNDICONTEXT"); + String tipo = (String) runtimeEnvironment.getObject("JNDITYPE"); + + Context cnx = new InitialContext(); + DataSource ds; + ds = (DataSource) cnx.lookup(contexto + tipo); + connection = ds.getConnection(); + }else{ + try { + Class.forName(driverClassName); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + throw new EsiExecutionException(e); + } + connection = DriverManager.getConnection(pathConnection, userName, password); + } + } catch (SQLException e) { + e.printStackTrace(); + throw new EsiExecutionException(e); + } catch (NamingException e) { + e.printStackTrace(); + throw new EsiExecutionException(e); + } + + if (connection != null) { + try { + if (autoCommit.trim().toUpperCase().equalsIgnoreCase("S") || autoCommit.trim().toUpperCase().equalsIgnoreCase("Y") + || autoCommit.trim().toUpperCase().equalsIgnoreCase("TRUE")){ + connection.setAutoCommit(true); + }else{ + connection.setAutoCommit(false); + } + } catch (SQLException e) { + e.printStackTrace(); + try { + connection.close(); + } catch (SQLException e1) { + } + connection = null; + throw new EsiExecutionException(e); + } + runtimeEnvironment.addOrUpdateObject(connName, connection); + } else { + System.out.println("ExecutaIniciaTransactionSql: Failed to make connection!"); + throw new EsiExecutionException(); + } + } +} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecutePentahoReport.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecutePentahoReport.java index 6547c03..c195db3 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecutePentahoReport.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecutePentahoReport.java @@ -13,6 +13,7 @@ import org.pentaho.reporting.engine.classic.core.modules.misc.datafactory.sql.SQ import org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.PdfReportUtil; import org.pentaho.reporting.engine.classic.core.modules.output.table.html.HtmlReportUtil; import org.pentaho.reporting.engine.classic.core.modules.output.table.xls.ExcelReportUtil; +import org.pentaho.reporting.engine.classic.core.wizard.RelationalAutoGeneratorPreProcessor; import org.pentaho.reporting.libraries.resourceloader.ResourceException; import br.com.centralit.esi.api.enumerated.DataSourceTypeEnum; @@ -20,7 +21,7 @@ import br.com.centralit.esi.api.enumerated.ReportFormatTypeEnum; import br.com.centralit.esi.api.runtime.RuntimeEnvironment; import br.com.centralit.esi.api.util.ConvertUtilsESI; import br.com.centralit.esi.api.util.DefaultConvertUtils; -import br.com.centralit.esi.api.util.PentahooReportUtil; +import br.com.centralit.esi.api.util.PentahoReportUtil; import br.com.centralit.esi.exception.EsiExecutionException; public class ExecutePentahoReport { @@ -89,8 +90,9 @@ public class ExecutePentahoReport { driverConnectionProvider.setUrl(pathConnection); driverConnectionProvider.setProperty("user", username); driverConnectionProvider.setProperty("password", password); - dataFactory = new SQLReportDataFactory(driverConnectionProvider); + dataFactory = new SQLReportDataFactory(driverConnectionProvider); } + sqlQueries = sqlQueries.replaceAll("\r", "\n"); sqlQueries = sqlQueries.replaceAll(";", "\n"); String[] linesQueries = sqlQueries.split("\n"); @@ -105,9 +107,9 @@ public class ExecutePentahoReport { } } } - PentahooReportUtil pentahooReportUtil = new PentahooReportUtil(); try { - MasterReport report = pentahooReportUtil.getCompleteReportDefinition(pathReport, mapParms, dataFactory); + MasterReport report = PentahoReportUtil.getCompleteReportDefinition(pathReport, mapParms, dataFactory); + report.addPreProcessor(new RelationalAutoGeneratorPreProcessor()); if (outType.equalsIgnoreCase(ReportFormatTypeEnum.HTML.getId())){ try { HtmlReportUtil.createDirectoryHTML(report, outPathReport); @@ -116,12 +118,7 @@ public class ExecutePentahoReport { throw new EsiExecutionException(e); } }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.PDF.getId())){ - try { - PdfReportUtil.createPDF(report, outPathReport); - } catch (IOException | ReportProcessingException e) { - e.printStackTrace(); - throw new EsiExecutionException(e); - } + PdfReportUtil.createPDF(report, outPathReport); }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.EXCEL.getId())){ try { ExcelReportUtil.createXLSX(report, outPathReport); diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteReplace.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteReplace.java new file mode 100644 index 0000000..1401a91 --- /dev/null +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteReplace.java @@ -0,0 +1,61 @@ +package br.com.centralit.esi.api.execution.component; + +import br.com.centralit.esi.api.enumerated.ReplacementTypeEnum; +import br.com.centralit.esi.api.runtime.RuntimeEnvironment; + +public class ExecuteReplace { + public static void execute(RuntimeEnvironment runtimeEnvironment) { + String valuesReplace = (String) runtimeEnvironment.getObject("VALUESREPLACE"); + String typeReplace = (String) runtimeEnvironment.getObject("TYPEREPLACE"); + if (valuesReplace == null){ + valuesReplace = ""; + } + if (typeReplace == null){ + typeReplace = ""; + } + valuesReplace = valuesReplace.replaceAll("\r", "\n"); + valuesReplace = valuesReplace.replaceAll(";", "\n"); + + String[] linesParms = valuesReplace.split("\n"); + if (linesParms != null){ + for(int i = 0; i < linesParms.length; i++){ + if (linesParms[i] != null && !linesParms[i].trim().equalsIgnoreCase("")){ + String[] prop = linesParms[i].split("->"); + if (prop != null && prop.length > 2){ + if (prop[0] != null){ + String nomeVariavel = prop[0].trim(); + String value = (String) runtimeEnvironment.getObject(nomeVariavel); + if (value == null){ + value = ""; + } + String nomeRegex = null; + if (prop[1] != null){ + nomeRegex = prop[1].trim(); + } + if (nomeRegex == null){ + nomeRegex = "##NULL##"; //Se entrar aqui eh que tem alguma coisa errada. + } + String nomeRepl = null; + if (prop[2] != null){ + nomeRepl = prop[2].trim(); + } + if (nomeRepl == null){ + nomeRepl = "##NULL##"; + } + + if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEALL.getId())){ + value = value.replaceAll(nomeRegex, nomeRepl); + }else if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEFIRST.getId())){ + value = value.replaceFirst(nomeRegex, nomeRepl); + }else{ + value = value.replaceAll(nomeRegex, nomeRepl); + } + runtimeEnvironment.addOrUpdateObject(nomeVariavel, value); + } + } + } + } + } + + } +} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteSubstituir.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteSubstituir.java deleted file mode 100644 index c485abe..0000000 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteSubstituir.java +++ /dev/null @@ -1,61 +0,0 @@ -package br.com.centralit.esi.api.execution.component; - -import br.com.centralit.esi.api.enumerated.ReplacementTypeEnum; -import br.com.centralit.esi.api.runtime.RuntimeEnvironment; - -public class ExecuteSubstituir { - public static void execute(RuntimeEnvironment runtimeEnvironment) { - String valuesReplace = (String) runtimeEnvironment.getObject("VALUESREPLACE"); - String typeReplace = (String) runtimeEnvironment.getObject("TYPEREPLACE"); - if (valuesReplace == null){ - valuesReplace = ""; - } - if (typeReplace == null){ - typeReplace = ""; - } - valuesReplace = valuesReplace.replaceAll("\r", "\n"); - valuesReplace = valuesReplace.replaceAll(";", "\n"); - - String[] linesParms = valuesReplace.split("\n"); - if (linesParms != null){ - for(int i = 0; i < linesParms.length; i++){ - if (linesParms[i] != null && !linesParms[i].trim().equalsIgnoreCase("")){ - String[] prop = linesParms[i].split("->"); - if (prop != null && prop.length > 2){ - if (prop[0] != null){ - String nomeVariavel = prop[0].trim(); - String value = (String) runtimeEnvironment.getObject(nomeVariavel); - if (value == null){ - value = ""; - } - String nomeRegex = null; - if (prop[1] != null){ - nomeRegex = prop[1].trim(); - } - if (nomeRegex == null){ - nomeRegex = "##NULL##"; //Se entrar aqui eh que tem alguma coisa errada. - } - String nomeRepl = null; - if (prop[2] != null){ - nomeRepl = prop[2].trim(); - } - if (nomeRepl == null){ - nomeRepl = "##NULL##"; - } - - if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEALL.getId())){ - value = value.replaceAll(nomeRegex, nomeRepl); - }else if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEFIRST.getId())){ - value = value.replaceFirst(nomeRegex, nomeRepl); - }else{ - value = value.replaceAll(nomeRegex, nomeRepl); - } - runtimeEnvironment.addOrUpdateObject(nomeVariavel, value); - } - } - } - } - } - - } -} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseCloseServiceImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseCloseServiceImpl.java index adc413a..c0b417c 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseCloseServiceImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseCloseServiceImpl.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service; import br.com.centralit.esi.api.design.model.FlowElement; import br.com.centralit.esi.api.design.model.connector.DatabaseClose; -import br.com.centralit.esi.api.execution.component.ExecuteCloseConnectionDBSql; +import br.com.centralit.esi.api.execution.component.ExecuteDBClose; import br.com.centralit.esi.api.execution.dao.WorkItemDao; import br.com.centralit.esi.api.execution.model.ProcessInstance; import br.com.centralit.esi.api.execution.model.WorkItem; @@ -36,7 +36,7 @@ public class WorkItemDatabaseCloseServiceImpl extends WorkItemServiceImpl imp runtimeEnvironment.addOrUpdateObject("VALUESREPLACE", element.getReplaceValues()); runtimeEnvironment.addOrUpdateObject("TYPEREPLACE", element.getReplacementType().getId()); - ExecuteSubstituir.execute(runtimeEnvironment); + ExecuteReplace.execute(runtimeEnvironment); complete(runtimeEnvironment, workItem); return retrieveTargets(runtimeEnvironment,workItem); diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/PentahoReportManagerImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/PentahoReportManagerImpl.java index e0316e9..c35ca58 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/PentahoReportManagerImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/PentahoReportManagerImpl.java @@ -23,7 +23,7 @@ import br.com.centralit.esi.api.resource.model.ReportDataSource; import br.com.centralit.esi.api.resource.model.ReportVersion; import br.com.centralit.esi.api.resource.service.PentahoReportManager; import br.com.centralit.esi.api.util.DefaultConvertUtils; -import br.com.centralit.esi.api.util.PentahooReportUtil; +import br.com.centralit.esi.api.util.PentahoReportUtil; import br.com.centralit.esi.exception.EsiExecutionException; @Component("pentahoReportManager") @@ -67,7 +67,7 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta public byte[] execute(ReportVersion report, HashMap inputMap) { byte[] buffer = null; - String path = ResourceTypeEnum.REPORT.getPath(); + String path = report.buildBasePath(); String pathReport = servletContext.getRealPath(path+"/"+report.getFileName()); @@ -76,11 +76,10 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta ReportFormatTypeEnum outType = ReportFormatTypeEnum.PDF; DefaultConvertUtils.registerDefaultConverts(); - PentahooReportUtil pentahooReportUtil = new PentahooReportUtil(); MasterReport masterReport = null; try { SQLReportDataFactory dataSource = this.buildDataSource(report, inputMap); - masterReport = pentahooReportUtil.getCompleteReportDefinition(pathReport, params, dataSource); + masterReport = PentahoReportUtil.getCompleteReportDefinition(pathReport, params, dataSource); } catch (MalformedURLException e) { e.printStackTrace(); throw new EsiExecutionException(e); @@ -89,21 +88,21 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta throw new EsiExecutionException(e); } - String outputPath = ""; + String outputPath = servletContext.getRealPath(ResourceTypeEnum.REPORT.getPath()+"/"+report.getFileName()); try{ switch (outType) { case HTML: - outputPath = pathReport.replaceAll(".prpt", ".html"); + outputPath = outputPath.replaceAll(".prpt", ".html"); HtmlReportUtil.createDirectoryHTML(masterReport, outputPath); break; case PDF: - outputPath = pathReport.replaceAll(".prpt", ".pdf"); + outputPath = outputPath.replaceAll(".prpt", ".pdf"); PdfReportUtil.createPDF(masterReport, outputPath); break; case EXCEL: - outputPath = pathReport.replaceAll(".prpt", ".xlsx"); + outputPath = outputPath.replaceAll(".prpt", ".xlsx"); ExcelReportUtil.createXLSX(masterReport, outputPath); break; @@ -118,9 +117,8 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta throw new EsiExecutionException(e); } - String fullPath = servletContext.getRealPath(outputPath); try { - FileInputStream is = new FileInputStream(fullPath); + FileInputStream is = new FileInputStream(outputPath); buffer = new byte[is.available()]; is.read(buffer); is.close(); diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahoReportUtil.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahoReportUtil.java new file mode 100644 index 0000000..4f860ca --- /dev/null +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahoReportUtil.java @@ -0,0 +1,68 @@ +package br.com.centralit.esi.api.util; + +import java.io.File; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.util.Map; + +import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot; +import org.pentaho.reporting.engine.classic.core.DataFactory; +import org.pentaho.reporting.engine.classic.core.MasterReport; +import org.pentaho.reporting.libraries.resourceloader.Resource; +import org.pentaho.reporting.libraries.resourceloader.ResourceException; +import org.pentaho.reporting.libraries.resourceloader.ResourceManager; + +public class PentahoReportUtil { + /** + * Performs the basic initialization required to generate a report + */ + private PentahoReportUtil() { + ClassicEngineBoot.getInstance().start(); + } + + public static MasterReport getCompleteReportDefinition(String pathReport, Map parameters, DataFactory dataFactory) throws MalformedURLException, ResourceException { + MasterReport report = getReportDefinition(pathReport); + // Add any parameters to the report + Map reportParameters = null; + if (parameters != null){ + reportParameters = parameters; + } + if (null != reportParameters) { + for (String key : reportParameters.keySet()) { + report.getParameterValues().put(key, reportParameters.get(key)); + } + } + if (dataFactory != null) { + report.setDataFactory(dataFactory); + } + // Return the completed report + return report; + } + + /** + * Returns the report definition which will be used to generate the report. + * In this case, the report will be loaded and parsed from a file contained + * in this package. + * + * @return the loaded and parsed report definition to be used in report + * generation. + * @throws MalformedURLException + * @throws ResourceException + */ + private static MasterReport getReportDefinition(String pathReport) throws MalformedURLException, ResourceException { + // Using the classloader, get the URL to the reportDefinition file + // NOTE: We will re-use the report definition from SAMPLE1 + //final ClassLoader classloader = this.getClass().getClassLoader(); + //URL reportDefinitionURL = classloader.getResource("org/pentaho/reporting/engine/classic/samples/Sample1.prpt"); + File f = new File(pathReport); + URI uri = f.toURI(); + URL reportDefinitionURL = uri.toURL(); + // Parse the report file + final ResourceManager resourceManager = new ResourceManager(); + resourceManager.registerDefaults(); + final Resource directly = resourceManager.createDirectly(reportDefinitionURL, MasterReport.class); + return (MasterReport) directly.getResource(); + } + +} diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahooReportUtil.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahooReportUtil.java deleted file mode 100644 index d454759..0000000 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahooReportUtil.java +++ /dev/null @@ -1,69 +0,0 @@ -package br.com.centralit.esi.api.util; - -import java.io.File; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URL; -import java.util.Map; - -import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot; -import org.pentaho.reporting.engine.classic.core.DataFactory; -import org.pentaho.reporting.engine.classic.core.MasterReport; -import org.pentaho.reporting.libraries.resourceloader.Resource; -import org.pentaho.reporting.libraries.resourceloader.ResourceException; -import org.pentaho.reporting.libraries.resourceloader.ResourceManager; - -public class PentahooReportUtil { - /** - * Performs the basic initialization required to generate a report - */ - public PentahooReportUtil() { - // Initialize the reporting engine - ClassicEngineBoot.getInstance().start(); - } - - public MasterReport getCompleteReportDefinition(String pathReport, Map parameters, DataFactory dataFactory) throws MalformedURLException, ResourceException { - MasterReport report = getReportDefinition(pathReport); - // Add any parameters to the report - Map reportParameters = null; - if (parameters != null){ - reportParameters = parameters; - } - if (null != reportParameters) { - for (String key : reportParameters.keySet()) { - report.getParameterValues().put(key, reportParameters.get(key)); - } - } - if (dataFactory != null) { - report.setDataFactory(dataFactory); - } - // Return the completed report - return report; - } - - /** - * Returns the report definition which will be used to generate the report. - * In this case, the report will be loaded and parsed from a file contained - * in this package. - * - * @return the loaded and parsed report definition to be used in report - * generation. - * @throws MalformedURLException - * @throws ResourceException - */ - private MasterReport getReportDefinition(String pathReport) throws MalformedURLException, ResourceException { - // Using the classloader, get the URL to the reportDefinition file - // NOTE: We will re-use the report definition from SAMPLE1 - //final ClassLoader classloader = this.getClass().getClassLoader(); - //URL reportDefinitionURL = classloader.getResource("org/pentaho/reporting/engine/classic/samples/Sample1.prpt"); - File f = new File(pathReport); - URI uri = f.toURI(); - URL reportDefinitionURL = uri.toURL(); - // Parse the report file - final ResourceManager resourceManager = new ResourceManager(); - resourceManager.registerDefaults(); - final Resource directly = resourceManager.createDirectly(reportDefinitionURL, MasterReport.class); - return (MasterReport) directly.getResource(); - } - -} diff --git a/cit-esi-web/src/main/resources/spring/applicationContext.xml b/cit-esi-web/src/main/resources/spring/applicationContext.xml index 963ea1e..a39228c 100644 --- a/cit-esi-web/src/main/resources/spring/applicationContext.xml +++ b/cit-esi-web/src/main/resources/spring/applicationContext.xml @@ -40,6 +40,7 @@ + -- libgit2 0.21.2