Commit a7852aced5f82d4e4da101c663b6ef3cf886b8ef

Authored by Carlos Alberto
1 parent a1745259
Exists in master

Implementação dos recursos de relatório para pentaho

Showing 18 changed files with 349 additions and 313 deletions   Show diff stats
cit-esi-api/pom.xml
@@ -79,18 +79,6 @@ @@ -79,18 +79,6 @@
79 <artifactId>json</artifactId> 79 <artifactId>json</artifactId>
80 </dependency> 80 </dependency>
81 <dependency> 81 <dependency>
82 - <groupId>pentaho-reporting-engine</groupId>  
83 - <artifactId>pentaho-reporting-engine-classic-core</artifactId>  
84 - </dependency>  
85 - <dependency>  
86 - <groupId>pentaho-library</groupId>  
87 - <artifactId>libloader</artifactId>  
88 - </dependency>  
89 - <dependency>  
90 - <groupId>pentaho-library</groupId>  
91 - <artifactId>libbase</artifactId>  
92 - </dependency>  
93 - <dependency>  
94 <groupId>org.apache.poi</groupId> 82 <groupId>org.apache.poi</groupId>
95 <artifactId>poi</artifactId> 83 <artifactId>poi</artifactId>
96 </dependency> 84 </dependency>
@@ -118,6 +106,59 @@ @@ -118,6 +106,59 @@
118 <groupId>org.drools</groupId> 106 <groupId>org.drools</groupId>
119 <artifactId>drools-compiler</artifactId> 107 <artifactId>drools-compiler</artifactId>
120 </dependency> 108 </dependency>
  109 +
  110 + <dependency>
  111 + <groupId>pentaho-reporting-engine</groupId>
  112 + <artifactId>pentaho-reporting-engine-classic-core</artifactId>
  113 + <type>jar</type>
  114 + </dependency>
  115 + <dependency>
  116 + <groupId>pentaho-reporting-engine</groupId>
  117 + <artifactId>pentaho-reporting-engine-classic-extensions</artifactId>
  118 + <type>jar</type>
  119 + </dependency>
  120 + <dependency>
  121 + <groupId>pentaho-library</groupId>
  122 + <artifactId>libbase</artifactId>
  123 + </dependency>
  124 + <dependency>
  125 + <groupId>pentaho-library</groupId>
  126 + <artifactId>libdocbundle</artifactId>
  127 + </dependency>
  128 + <dependency>
  129 + <groupId>pentaho-library</groupId>
  130 + <artifactId>libfonts</artifactId>
  131 + </dependency>
  132 + <dependency>
  133 + <groupId>pentaho-library</groupId>
  134 + <artifactId>libformat</artifactId>
  135 + </dependency>
  136 + <dependency>
  137 + <groupId>pentaho-library</groupId>
  138 + <artifactId>libformula</artifactId>
  139 + </dependency>
  140 + <dependency>
  141 + <groupId>pentaho-library</groupId>
  142 + <artifactId>libloader</artifactId>
  143 + </dependency>
  144 + <dependency>
  145 + <groupId>pentaho-library</groupId>
  146 + <artifactId>librepository</artifactId>
  147 + </dependency>
  148 + <dependency>
  149 + <groupId>pentaho-library</groupId>
  150 + <artifactId>libserializer</artifactId>
  151 + </dependency>
  152 + <dependency>
  153 + <groupId>pentaho-library</groupId>
  154 + <artifactId>libxml</artifactId>
  155 + </dependency>
  156 + <dependency>
  157 + <groupId>pentaho-library</groupId>
  158 + <artifactId>libswing</artifactId>
  159 + <version>1.2.4</version>
  160 + </dependency>
  161 +
121 </dependencies> 162 </dependencies>
122 163
123 </project> 164 </project>
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCloseConnectionDBSql.java
@@ -1,26 +0,0 @@ @@ -1,26 +0,0 @@
1 -package br.com.centralit.esi.api.execution.component;  
2 -  
3 -import java.sql.Connection;  
4 -import java.sql.SQLException;  
5 -  
6 -import br.com.centralit.esi.api.runtime.RuntimeEnvironment;  
7 -import br.com.centralit.esi.exception.EsiExecutionException;  
8 -  
9 -public class ExecuteCloseConnectionDBSql {  
10 - public static void execute(RuntimeEnvironment runtimeEnvironment) {  
11 - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");  
12 - if (connName != null){  
13 - Connection connection = (Connection) runtimeEnvironment.getObject(connName);  
14 - if (connection != null){  
15 - try {  
16 - connection.close();  
17 - } catch (SQLException e) {  
18 - e.printStackTrace();  
19 - throw new EsiExecutionException(e);  
20 - }  
21 - connection = null;  
22 - }  
23 - runtimeEnvironment.addOrUpdateObject(connName, null);  
24 - }  
25 - }  
26 -}  
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteCommitTransactionSql.java
@@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
1 -package br.com.centralit.esi.api.execution.component;  
2 -  
3 -import java.sql.Connection;  
4 -import java.sql.SQLException;  
5 -  
6 -import br.com.centralit.esi.api.runtime.RuntimeEnvironment;  
7 -import br.com.centralit.esi.exception.EsiExecutionException;  
8 -  
9 -public class ExecuteCommitTransactionSql {  
10 - public static void execute(RuntimeEnvironment runtimeEnvironment) {  
11 - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");  
12 - if (connName != null){  
13 - Connection connection = (Connection) runtimeEnvironment.getObject(connName);  
14 - if (connection != null){  
15 - try {  
16 - connection.commit();  
17 - } catch (SQLException e) {  
18 - e.printStackTrace();  
19 - throw new EsiExecutionException(e);  
20 - } finally{  
21 - try {  
22 - connection.close();  
23 - } catch (SQLException e) {  
24 - e.printStackTrace();  
25 - }  
26 - connection = null;  
27 - }  
28 - }  
29 - runtimeEnvironment.addOrUpdateObject(connName, null);  
30 - }  
31 - }  
32 -}  
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteConectaIniciaTransactionSql.java
@@ -1,85 +0,0 @@ @@ -1,85 +0,0 @@
1 -package br.com.centralit.esi.api.execution.component;  
2 -  
3 -import java.sql.Connection;  
4 -import java.sql.DriverManager;  
5 -import java.sql.SQLException;  
6 -  
7 -import javax.naming.Context;  
8 -import javax.naming.InitialContext;  
9 -import javax.naming.NamingException;  
10 -import javax.sql.DataSource;  
11 -  
12 -import br.com.centralit.esi.api.runtime.RuntimeEnvironment;  
13 -import br.com.centralit.esi.exception.EsiExecutionException;  
14 -  
15 -public class ExecuteConectaIniciaTransactionSql {  
16 - public static void execute(RuntimeEnvironment runtimeEnvironment) {  
17 - String driverClassName = (String) runtimeEnvironment.getObject("DRIVERCLASSNAME");  
18 - String pathConnection = (String) runtimeEnvironment.getObject("PATHCONNECTION");  
19 - String userName = (String) runtimeEnvironment.getObject("USERNAME");  
20 - String password = (String) runtimeEnvironment.getObject("PASSWORD");  
21 -  
22 - String connType = (String) runtimeEnvironment.getObject("CONNTYPE");  
23 - String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");  
24 -  
25 - String autoCommit = (String) runtimeEnvironment.getObject("AUTOCOMMIT");  
26 - if (autoCommit == null){  
27 - autoCommit = "S";  
28 - }  
29 - if (connType == null){  
30 - connType = "";  
31 - }  
32 -  
33 -  
34 - Connection connection = null;  
35 -  
36 - try {  
37 - if (connType.trim().equalsIgnoreCase("JNDI")){  
38 - String contexto = (String) runtimeEnvironment.getObject("JNDICONTEXT");  
39 - String tipo = (String) runtimeEnvironment.getObject("JNDITYPE");  
40 -  
41 - Context cnx = new InitialContext();  
42 - DataSource ds;  
43 - ds = (DataSource) cnx.lookup(contexto + tipo);  
44 - connection = ds.getConnection();  
45 - }else{  
46 - try {  
47 - Class.forName(driverClassName);  
48 - } catch (ClassNotFoundException e) {  
49 - e.printStackTrace();  
50 - throw new EsiExecutionException(e);  
51 - }  
52 - connection = DriverManager.getConnection(pathConnection, userName, password);  
53 - }  
54 - } catch (SQLException e) {  
55 - e.printStackTrace();  
56 - throw new EsiExecutionException(e);  
57 - } catch (NamingException e) {  
58 - e.printStackTrace();  
59 - throw new EsiExecutionException(e);  
60 - }  
61 -  
62 - if (connection != null) {  
63 - try {  
64 - if (autoCommit.trim().toUpperCase().equalsIgnoreCase("S") || autoCommit.trim().toUpperCase().equalsIgnoreCase("Y")  
65 - || autoCommit.trim().toUpperCase().equalsIgnoreCase("TRUE")){  
66 - connection.setAutoCommit(true);  
67 - }else{  
68 - connection.setAutoCommit(false);  
69 - }  
70 - } catch (SQLException e) {  
71 - e.printStackTrace();  
72 - try {  
73 - connection.close();  
74 - } catch (SQLException e1) {  
75 - }  
76 - connection = null;  
77 - throw new EsiExecutionException(e);  
78 - }  
79 - runtimeEnvironment.addOrUpdateObject(connName, connection);  
80 - } else {  
81 - System.out.println("ExecutaIniciaTransactionSql: Failed to make connection!");  
82 - throw new EsiExecutionException();  
83 - }  
84 - }  
85 -}  
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBClose.java 0 → 100644
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +package br.com.centralit.esi.api.execution.component;
  2 +
  3 +import java.sql.Connection;
  4 +import java.sql.SQLException;
  5 +
  6 +import br.com.centralit.esi.api.runtime.RuntimeEnvironment;
  7 +import br.com.centralit.esi.exception.EsiExecutionException;
  8 +
  9 +public class ExecuteDBClose {
  10 + public static void execute(RuntimeEnvironment runtimeEnvironment) {
  11 + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");
  12 + if (connName != null){
  13 + Connection connection = (Connection) runtimeEnvironment.getObject(connName);
  14 + if (connection != null){
  15 + try {
  16 + connection.close();
  17 + } catch (SQLException e) {
  18 + e.printStackTrace();
  19 + throw new EsiExecutionException(e);
  20 + }
  21 + connection = null;
  22 + }
  23 + runtimeEnvironment.addOrUpdateObject(connName, null);
  24 + }
  25 + }
  26 +}
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBCommit.java 0 → 100644
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
  1 +package br.com.centralit.esi.api.execution.component;
  2 +
  3 +import java.sql.Connection;
  4 +import java.sql.SQLException;
  5 +
  6 +import br.com.centralit.esi.api.runtime.RuntimeEnvironment;
  7 +import br.com.centralit.esi.exception.EsiExecutionException;
  8 +
  9 +public class ExecuteDBCommit {
  10 + public static void execute(RuntimeEnvironment runtimeEnvironment) {
  11 + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");
  12 + if (connName != null){
  13 + Connection connection = (Connection) runtimeEnvironment.getObject(connName);
  14 + if (connection != null){
  15 + try {
  16 + connection.commit();
  17 + } catch (SQLException e) {
  18 + e.printStackTrace();
  19 + throw new EsiExecutionException(e);
  20 + } finally{
  21 + try {
  22 + connection.close();
  23 + } catch (SQLException e) {
  24 + e.printStackTrace();
  25 + }
  26 + connection = null;
  27 + }
  28 + }
  29 + runtimeEnvironment.addOrUpdateObject(connName, null);
  30 + }
  31 + }
  32 +}
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteDBConnect.java 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  1 +package br.com.centralit.esi.api.execution.component;
  2 +
  3 +import java.sql.Connection;
  4 +import java.sql.DriverManager;
  5 +import java.sql.SQLException;
  6 +
  7 +import javax.naming.Context;
  8 +import javax.naming.InitialContext;
  9 +import javax.naming.NamingException;
  10 +import javax.sql.DataSource;
  11 +
  12 +import br.com.centralit.esi.api.runtime.RuntimeEnvironment;
  13 +import br.com.centralit.esi.exception.EsiExecutionException;
  14 +
  15 +public class ExecuteDBConnect {
  16 + public static void execute(RuntimeEnvironment runtimeEnvironment) {
  17 + String driverClassName = (String) runtimeEnvironment.getObject("DRIVERCLASSNAME");
  18 + String pathConnection = (String) runtimeEnvironment.getObject("PATHCONNECTION");
  19 + String userName = (String) runtimeEnvironment.getObject("USERNAME");
  20 + String password = (String) runtimeEnvironment.getObject("PASSWORD");
  21 +
  22 + String connType = (String) runtimeEnvironment.getObject("CONNTYPE");
  23 + String connName = (String) runtimeEnvironment.getObject("CONNECTIONNAME");
  24 +
  25 + String autoCommit = (String) runtimeEnvironment.getObject("AUTOCOMMIT");
  26 + if (autoCommit == null){
  27 + autoCommit = "S";
  28 + }
  29 + if (connType == null){
  30 + connType = "";
  31 + }
  32 +
  33 +
  34 + Connection connection = null;
  35 +
  36 + try {
  37 + if (connType.trim().equalsIgnoreCase("JNDI")){
  38 + String contexto = (String) runtimeEnvironment.getObject("JNDICONTEXT");
  39 + String tipo = (String) runtimeEnvironment.getObject("JNDITYPE");
  40 +
  41 + Context cnx = new InitialContext();
  42 + DataSource ds;
  43 + ds = (DataSource) cnx.lookup(contexto + tipo);
  44 + connection = ds.getConnection();
  45 + }else{
  46 + try {
  47 + Class.forName(driverClassName);
  48 + } catch (ClassNotFoundException e) {
  49 + e.printStackTrace();
  50 + throw new EsiExecutionException(e);
  51 + }
  52 + connection = DriverManager.getConnection(pathConnection, userName, password);
  53 + }
  54 + } catch (SQLException e) {
  55 + e.printStackTrace();
  56 + throw new EsiExecutionException(e);
  57 + } catch (NamingException e) {
  58 + e.printStackTrace();
  59 + throw new EsiExecutionException(e);
  60 + }
  61 +
  62 + if (connection != null) {
  63 + try {
  64 + if (autoCommit.trim().toUpperCase().equalsIgnoreCase("S") || autoCommit.trim().toUpperCase().equalsIgnoreCase("Y")
  65 + || autoCommit.trim().toUpperCase().equalsIgnoreCase("TRUE")){
  66 + connection.setAutoCommit(true);
  67 + }else{
  68 + connection.setAutoCommit(false);
  69 + }
  70 + } catch (SQLException e) {
  71 + e.printStackTrace();
  72 + try {
  73 + connection.close();
  74 + } catch (SQLException e1) {
  75 + }
  76 + connection = null;
  77 + throw new EsiExecutionException(e);
  78 + }
  79 + runtimeEnvironment.addOrUpdateObject(connName, connection);
  80 + } else {
  81 + System.out.println("ExecutaIniciaTransactionSql: Failed to make connection!");
  82 + throw new EsiExecutionException();
  83 + }
  84 + }
  85 +}
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 @@ -13,6 +13,7 @@ import org.pentaho.reporting.engine.classic.core.modules.misc.datafactory.sql.SQ
13 import org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.PdfReportUtil; 13 import org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.PdfReportUtil;
14 import org.pentaho.reporting.engine.classic.core.modules.output.table.html.HtmlReportUtil; 14 import org.pentaho.reporting.engine.classic.core.modules.output.table.html.HtmlReportUtil;
15 import org.pentaho.reporting.engine.classic.core.modules.output.table.xls.ExcelReportUtil; 15 import org.pentaho.reporting.engine.classic.core.modules.output.table.xls.ExcelReportUtil;
  16 +import org.pentaho.reporting.engine.classic.core.wizard.RelationalAutoGeneratorPreProcessor;
16 import org.pentaho.reporting.libraries.resourceloader.ResourceException; 17 import org.pentaho.reporting.libraries.resourceloader.ResourceException;
17 18
18 import br.com.centralit.esi.api.enumerated.DataSourceTypeEnum; 19 import br.com.centralit.esi.api.enumerated.DataSourceTypeEnum;
@@ -20,7 +21,7 @@ import br.com.centralit.esi.api.enumerated.ReportFormatTypeEnum; @@ -20,7 +21,7 @@ import br.com.centralit.esi.api.enumerated.ReportFormatTypeEnum;
20 import br.com.centralit.esi.api.runtime.RuntimeEnvironment; 21 import br.com.centralit.esi.api.runtime.RuntimeEnvironment;
21 import br.com.centralit.esi.api.util.ConvertUtilsESI; 22 import br.com.centralit.esi.api.util.ConvertUtilsESI;
22 import br.com.centralit.esi.api.util.DefaultConvertUtils; 23 import br.com.centralit.esi.api.util.DefaultConvertUtils;
23 -import br.com.centralit.esi.api.util.PentahooReportUtil; 24 +import br.com.centralit.esi.api.util.PentahoReportUtil;
24 import br.com.centralit.esi.exception.EsiExecutionException; 25 import br.com.centralit.esi.exception.EsiExecutionException;
25 26
26 public class ExecutePentahoReport { 27 public class ExecutePentahoReport {
@@ -89,8 +90,9 @@ public class ExecutePentahoReport { @@ -89,8 +90,9 @@ public class ExecutePentahoReport {
89 driverConnectionProvider.setUrl(pathConnection); 90 driverConnectionProvider.setUrl(pathConnection);
90 driverConnectionProvider.setProperty("user", username); 91 driverConnectionProvider.setProperty("user", username);
91 driverConnectionProvider.setProperty("password", password); 92 driverConnectionProvider.setProperty("password", password);
92 - dataFactory = new SQLReportDataFactory(driverConnectionProvider); 93 + dataFactory = new SQLReportDataFactory(driverConnectionProvider);
93 } 94 }
  95 +
94 sqlQueries = sqlQueries.replaceAll("\r", "\n"); 96 sqlQueries = sqlQueries.replaceAll("\r", "\n");
95 sqlQueries = sqlQueries.replaceAll(";", "\n"); 97 sqlQueries = sqlQueries.replaceAll(";", "\n");
96 String[] linesQueries = sqlQueries.split("\n"); 98 String[] linesQueries = sqlQueries.split("\n");
@@ -105,9 +107,9 @@ public class ExecutePentahoReport { @@ -105,9 +107,9 @@ public class ExecutePentahoReport {
105 } 107 }
106 } 108 }
107 } 109 }
108 - PentahooReportUtil pentahooReportUtil = new PentahooReportUtil();  
109 try { 110 try {
110 - MasterReport report = pentahooReportUtil.getCompleteReportDefinition(pathReport, mapParms, dataFactory); 111 + MasterReport report = PentahoReportUtil.getCompleteReportDefinition(pathReport, mapParms, dataFactory);
  112 + report.addPreProcessor(new RelationalAutoGeneratorPreProcessor());
111 if (outType.equalsIgnoreCase(ReportFormatTypeEnum.HTML.getId())){ 113 if (outType.equalsIgnoreCase(ReportFormatTypeEnum.HTML.getId())){
112 try { 114 try {
113 HtmlReportUtil.createDirectoryHTML(report, outPathReport); 115 HtmlReportUtil.createDirectoryHTML(report, outPathReport);
@@ -116,12 +118,7 @@ public class ExecutePentahoReport { @@ -116,12 +118,7 @@ public class ExecutePentahoReport {
116 throw new EsiExecutionException(e); 118 throw new EsiExecutionException(e);
117 } 119 }
118 }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.PDF.getId())){ 120 }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.PDF.getId())){
119 - try {  
120 - PdfReportUtil.createPDF(report, outPathReport);  
121 - } catch (IOException | ReportProcessingException e) {  
122 - e.printStackTrace();  
123 - throw new EsiExecutionException(e);  
124 - } 121 + PdfReportUtil.createPDF(report, outPathReport);
125 }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.EXCEL.getId())){ 122 }else if (outType.equalsIgnoreCase(ReportFormatTypeEnum.EXCEL.getId())){
126 try { 123 try {
127 ExcelReportUtil.createXLSX(report, outPathReport); 124 ExcelReportUtil.createXLSX(report, outPathReport);
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteReplace.java 0 → 100644
@@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
  1 +package br.com.centralit.esi.api.execution.component;
  2 +
  3 +import br.com.centralit.esi.api.enumerated.ReplacementTypeEnum;
  4 +import br.com.centralit.esi.api.runtime.RuntimeEnvironment;
  5 +
  6 +public class ExecuteReplace {
  7 + public static void execute(RuntimeEnvironment runtimeEnvironment) {
  8 + String valuesReplace = (String) runtimeEnvironment.getObject("VALUESREPLACE");
  9 + String typeReplace = (String) runtimeEnvironment.getObject("TYPEREPLACE");
  10 + if (valuesReplace == null){
  11 + valuesReplace = "";
  12 + }
  13 + if (typeReplace == null){
  14 + typeReplace = "";
  15 + }
  16 + valuesReplace = valuesReplace.replaceAll("\r", "\n");
  17 + valuesReplace = valuesReplace.replaceAll(";", "\n");
  18 +
  19 + String[] linesParms = valuesReplace.split("\n");
  20 + if (linesParms != null){
  21 + for(int i = 0; i < linesParms.length; i++){
  22 + if (linesParms[i] != null && !linesParms[i].trim().equalsIgnoreCase("")){
  23 + String[] prop = linesParms[i].split("->");
  24 + if (prop != null && prop.length > 2){
  25 + if (prop[0] != null){
  26 + String nomeVariavel = prop[0].trim();
  27 + String value = (String) runtimeEnvironment.getObject(nomeVariavel);
  28 + if (value == null){
  29 + value = "";
  30 + }
  31 + String nomeRegex = null;
  32 + if (prop[1] != null){
  33 + nomeRegex = prop[1].trim();
  34 + }
  35 + if (nomeRegex == null){
  36 + nomeRegex = "##NULL##"; //Se entrar aqui eh que tem alguma coisa errada.
  37 + }
  38 + String nomeRepl = null;
  39 + if (prop[2] != null){
  40 + nomeRepl = prop[2].trim();
  41 + }
  42 + if (nomeRepl == null){
  43 + nomeRepl = "##NULL##";
  44 + }
  45 +
  46 + if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEALL.getId())){
  47 + value = value.replaceAll(nomeRegex, nomeRepl);
  48 + }else if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEFIRST.getId())){
  49 + value = value.replaceFirst(nomeRegex, nomeRepl);
  50 + }else{
  51 + value = value.replaceAll(nomeRegex, nomeRepl);
  52 + }
  53 + runtimeEnvironment.addOrUpdateObject(nomeVariavel, value);
  54 + }
  55 + }
  56 + }
  57 + }
  58 + }
  59 +
  60 + }
  61 +}
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/component/ExecuteSubstituir.java
@@ -1,61 +0,0 @@ @@ -1,61 +0,0 @@
1 -package br.com.centralit.esi.api.execution.component;  
2 -  
3 -import br.com.centralit.esi.api.enumerated.ReplacementTypeEnum;  
4 -import br.com.centralit.esi.api.runtime.RuntimeEnvironment;  
5 -  
6 -public class ExecuteSubstituir {  
7 - public static void execute(RuntimeEnvironment runtimeEnvironment) {  
8 - String valuesReplace = (String) runtimeEnvironment.getObject("VALUESREPLACE");  
9 - String typeReplace = (String) runtimeEnvironment.getObject("TYPEREPLACE");  
10 - if (valuesReplace == null){  
11 - valuesReplace = "";  
12 - }  
13 - if (typeReplace == null){  
14 - typeReplace = "";  
15 - }  
16 - valuesReplace = valuesReplace.replaceAll("\r", "\n");  
17 - valuesReplace = valuesReplace.replaceAll(";", "\n");  
18 -  
19 - String[] linesParms = valuesReplace.split("\n");  
20 - if (linesParms != null){  
21 - for(int i = 0; i < linesParms.length; i++){  
22 - if (linesParms[i] != null && !linesParms[i].trim().equalsIgnoreCase("")){  
23 - String[] prop = linesParms[i].split("->");  
24 - if (prop != null && prop.length > 2){  
25 - if (prop[0] != null){  
26 - String nomeVariavel = prop[0].trim();  
27 - String value = (String) runtimeEnvironment.getObject(nomeVariavel);  
28 - if (value == null){  
29 - value = "";  
30 - }  
31 - String nomeRegex = null;  
32 - if (prop[1] != null){  
33 - nomeRegex = prop[1].trim();  
34 - }  
35 - if (nomeRegex == null){  
36 - nomeRegex = "##NULL##"; //Se entrar aqui eh que tem alguma coisa errada.  
37 - }  
38 - String nomeRepl = null;  
39 - if (prop[2] != null){  
40 - nomeRepl = prop[2].trim();  
41 - }  
42 - if (nomeRepl == null){  
43 - nomeRepl = "##NULL##";  
44 - }  
45 -  
46 - if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEALL.getId())){  
47 - value = value.replaceAll(nomeRegex, nomeRepl);  
48 - }else if (typeReplace.equalsIgnoreCase(ReplacementTypeEnum.REPLACEFIRST.getId())){  
49 - value = value.replaceFirst(nomeRegex, nomeRepl);  
50 - }else{  
51 - value = value.replaceAll(nomeRegex, nomeRepl);  
52 - }  
53 - runtimeEnvironment.addOrUpdateObject(nomeVariavel, value);  
54 - }  
55 - }  
56 - }  
57 - }  
58 - }  
59 -  
60 - }  
61 -}  
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; @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
5 5
6 import br.com.centralit.esi.api.design.model.FlowElement; 6 import br.com.centralit.esi.api.design.model.FlowElement;
7 import br.com.centralit.esi.api.design.model.connector.DatabaseClose; 7 import br.com.centralit.esi.api.design.model.connector.DatabaseClose;
8 -import br.com.centralit.esi.api.execution.component.ExecuteCloseConnectionDBSql; 8 +import br.com.centralit.esi.api.execution.component.ExecuteDBClose;
9 import br.com.centralit.esi.api.execution.dao.WorkItemDao; 9 import br.com.centralit.esi.api.execution.dao.WorkItemDao;
10 import br.com.centralit.esi.api.execution.model.ProcessInstance; 10 import br.com.centralit.esi.api.execution.model.ProcessInstance;
11 import br.com.centralit.esi.api.execution.model.WorkItem; 11 import br.com.centralit.esi.api.execution.model.WorkItem;
@@ -36,7 +36,7 @@ public class WorkItemDatabaseCloseServiceImpl extends WorkItemServiceImpl&lt;Databa @@ -36,7 +36,7 @@ public class WorkItemDatabaseCloseServiceImpl extends WorkItemServiceImpl&lt;Databa
36 runtimeEnvironment.addOrUpdateObject("CONNECTIONNAME", 36 runtimeEnvironment.addOrUpdateObject("CONNECTIONNAME",
37 element.getConnectionName()); 37 element.getConnectionName());
38 38
39 - ExecuteCloseConnectionDBSql.execute(runtimeEnvironment); 39 + ExecuteDBClose.execute(runtimeEnvironment);
40 40
41 complete(runtimeEnvironment, workItem); 41 complete(runtimeEnvironment, workItem);
42 return retrieveTargets(runtimeEnvironment,workItem); 42 return retrieveTargets(runtimeEnvironment,workItem);
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseCommitServiceImpl.java
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service; @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
5 5
6 import br.com.centralit.esi.api.design.model.FlowElement; 6 import br.com.centralit.esi.api.design.model.FlowElement;
7 import br.com.centralit.esi.api.design.model.connector.DatabaseCommit; 7 import br.com.centralit.esi.api.design.model.connector.DatabaseCommit;
8 -import br.com.centralit.esi.api.execution.component.ExecuteCommitTransactionSql; 8 +import br.com.centralit.esi.api.execution.component.ExecuteDBCommit;
9 import br.com.centralit.esi.api.execution.dao.WorkItemDao; 9 import br.com.centralit.esi.api.execution.dao.WorkItemDao;
10 import br.com.centralit.esi.api.execution.model.ProcessInstance; 10 import br.com.centralit.esi.api.execution.model.ProcessInstance;
11 import br.com.centralit.esi.api.execution.model.WorkItem; 11 import br.com.centralit.esi.api.execution.model.WorkItem;
@@ -36,7 +36,7 @@ public class WorkItemDatabaseCommitServiceImpl extends WorkItemServiceImpl&lt;Datab @@ -36,7 +36,7 @@ public class WorkItemDatabaseCommitServiceImpl extends WorkItemServiceImpl&lt;Datab
36 runtimeEnvironment.addOrUpdateObject("CONNECTIONNAME", 36 runtimeEnvironment.addOrUpdateObject("CONNECTIONNAME",
37 element.getConnectionName()); 37 element.getConnectionName());
38 38
39 - ExecuteCommitTransactionSql.execute(runtimeEnvironment); 39 + ExecuteDBCommit.execute(runtimeEnvironment);
40 40
41 complete(runtimeEnvironment, workItem); 41 complete(runtimeEnvironment, workItem);
42 return retrieveTargets(runtimeEnvironment,workItem); 42 return retrieveTargets(runtimeEnvironment,workItem);
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemDatabaseConnectorServiceImpl.java
@@ -6,7 +6,7 @@ import org.springframework.stereotype.Service; @@ -6,7 +6,7 @@ import org.springframework.stereotype.Service;
6 import br.com.centralit.esi.api.design.model.FlowElement; 6 import br.com.centralit.esi.api.design.model.FlowElement;
7 import br.com.centralit.esi.api.design.model.connector.DatabaseConnector; 7 import br.com.centralit.esi.api.design.model.connector.DatabaseConnector;
8 import br.com.centralit.esi.api.enumerated.DatabaseConectorTypeEnum; 8 import br.com.centralit.esi.api.enumerated.DatabaseConectorTypeEnum;
9 -import br.com.centralit.esi.api.execution.component.ExecuteConectaIniciaTransactionSql; 9 +import br.com.centralit.esi.api.execution.component.ExecuteDBConnect;
10 import br.com.centralit.esi.api.execution.dao.WorkItemDao; 10 import br.com.centralit.esi.api.execution.dao.WorkItemDao;
11 import br.com.centralit.esi.api.execution.model.ProcessInstance; 11 import br.com.centralit.esi.api.execution.model.ProcessInstance;
12 import br.com.centralit.esi.api.execution.model.WorkItem; 12 import br.com.centralit.esi.api.execution.model.WorkItem;
@@ -60,7 +60,7 @@ public class WorkItemDatabaseConnectorServiceImpl extends WorkItemServiceImpl&lt;Da @@ -60,7 +60,7 @@ public class WorkItemDatabaseConnectorServiceImpl extends WorkItemServiceImpl&lt;Da
60 runtimeEnvironment.addOrUpdateObject("JNDITYPE", 60 runtimeEnvironment.addOrUpdateObject("JNDITYPE",
61 element.getJNDIName()); 61 element.getJNDIName());
62 62
63 - ExecuteConectaIniciaTransactionSql.execute(runtimeEnvironment); 63 + ExecuteDBConnect.execute(runtimeEnvironment);
64 64
65 complete(runtimeEnvironment, workItem); 65 complete(runtimeEnvironment, workItem);
66 return retrieveTargets(runtimeEnvironment,workItem); 66 return retrieveTargets(runtimeEnvironment,workItem);
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/component/WorkItemReplaceServiceImpl.java
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service; @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
5 5
6 import br.com.centralit.esi.api.design.model.FlowElement; 6 import br.com.centralit.esi.api.design.model.FlowElement;
7 import br.com.centralit.esi.api.design.model.component.Replace; 7 import br.com.centralit.esi.api.design.model.component.Replace;
8 -import br.com.centralit.esi.api.execution.component.ExecuteSubstituir; 8 +import br.com.centralit.esi.api.execution.component.ExecuteReplace;
9 import br.com.centralit.esi.api.execution.dao.WorkItemDao; 9 import br.com.centralit.esi.api.execution.dao.WorkItemDao;
10 import br.com.centralit.esi.api.execution.model.ProcessInstance; 10 import br.com.centralit.esi.api.execution.model.ProcessInstance;
11 import br.com.centralit.esi.api.execution.model.WorkItem; 11 import br.com.centralit.esi.api.execution.model.WorkItem;
@@ -36,7 +36,7 @@ public class WorkItemReplaceServiceImpl extends WorkItemServiceImpl&lt;Replace&gt; imp @@ -36,7 +36,7 @@ public class WorkItemReplaceServiceImpl extends WorkItemServiceImpl&lt;Replace&gt; imp
36 runtimeEnvironment.addOrUpdateObject("VALUESREPLACE", element.getReplaceValues()); 36 runtimeEnvironment.addOrUpdateObject("VALUESREPLACE", element.getReplaceValues());
37 runtimeEnvironment.addOrUpdateObject("TYPEREPLACE", element.getReplacementType().getId()); 37 runtimeEnvironment.addOrUpdateObject("TYPEREPLACE", element.getReplacementType().getId());
38 38
39 - ExecuteSubstituir.execute(runtimeEnvironment); 39 + ExecuteReplace.execute(runtimeEnvironment);
40 40
41 complete(runtimeEnvironment, workItem); 41 complete(runtimeEnvironment, workItem);
42 return retrieveTargets(runtimeEnvironment,workItem); 42 return retrieveTargets(runtimeEnvironment,workItem);
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; @@ -23,7 +23,7 @@ import br.com.centralit.esi.api.resource.model.ReportDataSource;
23 import br.com.centralit.esi.api.resource.model.ReportVersion; 23 import br.com.centralit.esi.api.resource.model.ReportVersion;
24 import br.com.centralit.esi.api.resource.service.PentahoReportManager; 24 import br.com.centralit.esi.api.resource.service.PentahoReportManager;
25 import br.com.centralit.esi.api.util.DefaultConvertUtils; 25 import br.com.centralit.esi.api.util.DefaultConvertUtils;
26 -import br.com.centralit.esi.api.util.PentahooReportUtil; 26 +import br.com.centralit.esi.api.util.PentahoReportUtil;
27 import br.com.centralit.esi.exception.EsiExecutionException; 27 import br.com.centralit.esi.exception.EsiExecutionException;
28 28
29 @Component("pentahoReportManager") 29 @Component("pentahoReportManager")
@@ -67,7 +67,7 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta @@ -67,7 +67,7 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta
67 public byte[] execute(ReportVersion report, HashMap<String, Object> inputMap) { 67 public byte[] execute(ReportVersion report, HashMap<String, Object> inputMap) {
68 byte[] buffer = null; 68 byte[] buffer = null;
69 69
70 - String path = ResourceTypeEnum.REPORT.getPath(); 70 + String path = report.buildBasePath();
71 71
72 String pathReport = servletContext.getRealPath(path+"/"+report.getFileName()); 72 String pathReport = servletContext.getRealPath(path+"/"+report.getFileName());
73 73
@@ -76,11 +76,10 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta @@ -76,11 +76,10 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta
76 ReportFormatTypeEnum outType = ReportFormatTypeEnum.PDF; 76 ReportFormatTypeEnum outType = ReportFormatTypeEnum.PDF;
77 77
78 DefaultConvertUtils.registerDefaultConverts(); 78 DefaultConvertUtils.registerDefaultConverts();
79 - PentahooReportUtil pentahooReportUtil = new PentahooReportUtil();  
80 MasterReport masterReport = null; 79 MasterReport masterReport = null;
81 try { 80 try {
82 SQLReportDataFactory dataSource = this.buildDataSource(report, inputMap); 81 SQLReportDataFactory dataSource = this.buildDataSource(report, inputMap);
83 - masterReport = pentahooReportUtil.getCompleteReportDefinition(pathReport, params, dataSource); 82 + masterReport = PentahoReportUtil.getCompleteReportDefinition(pathReport, params, dataSource);
84 } catch (MalformedURLException e) { 83 } catch (MalformedURLException e) {
85 e.printStackTrace(); 84 e.printStackTrace();
86 throw new EsiExecutionException(e); 85 throw new EsiExecutionException(e);
@@ -89,21 +88,21 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta @@ -89,21 +88,21 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta
89 throw new EsiExecutionException(e); 88 throw new EsiExecutionException(e);
90 } 89 }
91 90
92 - String outputPath = ""; 91 + String outputPath = servletContext.getRealPath(ResourceTypeEnum.REPORT.getPath()+"/"+report.getFileName());
93 try{ 92 try{
94 switch (outType) { 93 switch (outType) {
95 case HTML: 94 case HTML:
96 - outputPath = pathReport.replaceAll(".prpt", ".html"); 95 + outputPath = outputPath.replaceAll(".prpt", ".html");
97 HtmlReportUtil.createDirectoryHTML(masterReport, outputPath); 96 HtmlReportUtil.createDirectoryHTML(masterReport, outputPath);
98 break; 97 break;
99 98
100 case PDF: 99 case PDF:
101 - outputPath = pathReport.replaceAll(".prpt", ".pdf"); 100 + outputPath = outputPath.replaceAll(".prpt", ".pdf");
102 PdfReportUtil.createPDF(masterReport, outputPath); 101 PdfReportUtil.createPDF(masterReport, outputPath);
103 break; 102 break;
104 103
105 case EXCEL: 104 case EXCEL:
106 - outputPath = pathReport.replaceAll(".prpt", ".xlsx"); 105 + outputPath = outputPath.replaceAll(".prpt", ".xlsx");
107 ExcelReportUtil.createXLSX(masterReport, outputPath); 106 ExcelReportUtil.createXLSX(masterReport, outputPath);
108 break; 107 break;
109 108
@@ -118,9 +117,8 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta @@ -118,9 +117,8 @@ public class PentahoReportManagerImpl extends ReportManagerImpl implements Penta
118 throw new EsiExecutionException(e); 117 throw new EsiExecutionException(e);
119 } 118 }
120 119
121 - String fullPath = servletContext.getRealPath(outputPath);  
122 try { 120 try {
123 - FileInputStream is = new FileInputStream(fullPath); 121 + FileInputStream is = new FileInputStream(outputPath);
124 buffer = new byte[is.available()]; 122 buffer = new byte[is.available()];
125 is.read(buffer); 123 is.read(buffer);
126 is.close(); 124 is.close();
cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahoReportUtil.java 0 → 100644
@@ -0,0 +1,68 @@ @@ -0,0 +1,68 @@
  1 +package br.com.centralit.esi.api.util;
  2 +
  3 +import java.io.File;
  4 +import java.net.MalformedURLException;
  5 +import java.net.URI;
  6 +import java.net.URL;
  7 +import java.util.Map;
  8 +
  9 +import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;
  10 +import org.pentaho.reporting.engine.classic.core.DataFactory;
  11 +import org.pentaho.reporting.engine.classic.core.MasterReport;
  12 +import org.pentaho.reporting.libraries.resourceloader.Resource;
  13 +import org.pentaho.reporting.libraries.resourceloader.ResourceException;
  14 +import org.pentaho.reporting.libraries.resourceloader.ResourceManager;
  15 +
  16 +public class PentahoReportUtil {
  17 + /**
  18 + * Performs the basic initialization required to generate a report
  19 + */
  20 + private PentahoReportUtil() {
  21 + ClassicEngineBoot.getInstance().start();
  22 + }
  23 +
  24 + public static MasterReport getCompleteReportDefinition(String pathReport, Map<String, Object> parameters, DataFactory dataFactory) throws MalformedURLException, ResourceException {
  25 + MasterReport report = getReportDefinition(pathReport);
  26 + // Add any parameters to the report
  27 + Map<String, Object> reportParameters = null;
  28 + if (parameters != null){
  29 + reportParameters = parameters;
  30 + }
  31 + if (null != reportParameters) {
  32 + for (String key : reportParameters.keySet()) {
  33 + report.getParameterValues().put(key, reportParameters.get(key));
  34 + }
  35 + }
  36 + if (dataFactory != null) {
  37 + report.setDataFactory(dataFactory);
  38 + }
  39 + // Return the completed report
  40 + return report;
  41 + }
  42 +
  43 + /**
  44 + * Returns the report definition which will be used to generate the report.
  45 + * In this case, the report will be loaded and parsed from a file contained
  46 + * in this package.
  47 + *
  48 + * @return the loaded and parsed report definition to be used in report
  49 + * generation.
  50 + * @throws MalformedURLException
  51 + * @throws ResourceException
  52 + */
  53 + private static MasterReport getReportDefinition(String pathReport) throws MalformedURLException, ResourceException {
  54 + // Using the classloader, get the URL to the reportDefinition file
  55 + // NOTE: We will re-use the report definition from SAMPLE1
  56 + //final ClassLoader classloader = this.getClass().getClassLoader();
  57 + //URL reportDefinitionURL = classloader.getResource("org/pentaho/reporting/engine/classic/samples/Sample1.prpt");
  58 + File f = new File(pathReport);
  59 + URI uri = f.toURI();
  60 + URL reportDefinitionURL = uri.toURL();
  61 + // Parse the report file
  62 + final ResourceManager resourceManager = new ResourceManager();
  63 + resourceManager.registerDefaults();
  64 + final Resource directly = resourceManager.createDirectly(reportDefinitionURL, MasterReport.class);
  65 + return (MasterReport) directly.getResource();
  66 + }
  67 +
  68 +}
cit-esi-api/src/main/java/br/com/centralit/esi/api/util/PentahooReportUtil.java
@@ -1,69 +0,0 @@ @@ -1,69 +0,0 @@
1 -package br.com.centralit.esi.api.util;  
2 -  
3 -import java.io.File;  
4 -import java.net.MalformedURLException;  
5 -import java.net.URI;  
6 -import java.net.URL;  
7 -import java.util.Map;  
8 -  
9 -import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;  
10 -import org.pentaho.reporting.engine.classic.core.DataFactory;  
11 -import org.pentaho.reporting.engine.classic.core.MasterReport;  
12 -import org.pentaho.reporting.libraries.resourceloader.Resource;  
13 -import org.pentaho.reporting.libraries.resourceloader.ResourceException;  
14 -import org.pentaho.reporting.libraries.resourceloader.ResourceManager;  
15 -  
16 -public class PentahooReportUtil {  
17 - /**  
18 - * Performs the basic initialization required to generate a report  
19 - */  
20 - public PentahooReportUtil() {  
21 - // Initialize the reporting engine  
22 - ClassicEngineBoot.getInstance().start();  
23 - }  
24 -  
25 - public MasterReport getCompleteReportDefinition(String pathReport, Map<String, Object> parameters, DataFactory dataFactory) throws MalformedURLException, ResourceException {  
26 - MasterReport report = getReportDefinition(pathReport);  
27 - // Add any parameters to the report  
28 - Map<String, Object> reportParameters = null;  
29 - if (parameters != null){  
30 - reportParameters = parameters;  
31 - }  
32 - if (null != reportParameters) {  
33 - for (String key : reportParameters.keySet()) {  
34 - report.getParameterValues().put(key, reportParameters.get(key));  
35 - }  
36 - }  
37 - if (dataFactory != null) {  
38 - report.setDataFactory(dataFactory);  
39 - }  
40 - // Return the completed report  
41 - return report;  
42 - }  
43 -  
44 - /**  
45 - * Returns the report definition which will be used to generate the report.  
46 - * In this case, the report will be loaded and parsed from a file contained  
47 - * in this package.  
48 - *  
49 - * @return the loaded and parsed report definition to be used in report  
50 - * generation.  
51 - * @throws MalformedURLException  
52 - * @throws ResourceException  
53 - */  
54 - private MasterReport getReportDefinition(String pathReport) throws MalformedURLException, ResourceException {  
55 - // Using the classloader, get the URL to the reportDefinition file  
56 - // NOTE: We will re-use the report definition from SAMPLE1  
57 - //final ClassLoader classloader = this.getClass().getClassLoader();  
58 - //URL reportDefinitionURL = classloader.getResource("org/pentaho/reporting/engine/classic/samples/Sample1.prpt");  
59 - File f = new File(pathReport);  
60 - URI uri = f.toURI();  
61 - URL reportDefinitionURL = uri.toURL();  
62 - // Parse the report file  
63 - final ResourceManager resourceManager = new ResourceManager();  
64 - resourceManager.registerDefaults();  
65 - final Resource directly = resourceManager.createDirectly(reportDefinitionURL, MasterReport.class);  
66 - return (MasterReport) directly.getResource();  
67 - }  
68 -  
69 -}  
cit-esi-web/src/main/resources/spring/applicationContext.xml
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
40 <import resource="classpath*:spring/applicationContext-base.xml" /> 40 <import resource="classpath*:spring/applicationContext-base.xml" />
41 41
42 <bean id="esiAppUtils" class="br.com.centralit.esi.api.util.EsiAppUtils"/> 42 <bean id="esiAppUtils" class="br.com.centralit.esi.api.util.EsiAppUtils"/>
  43 + <bean id="PentahoReportUtil" class="br.com.centralit.esi.api.util.PentahoReportUtil"/>
43 <bean id="runtimeContext" class="br.com.centralit.esi.api.runtime.RuntimeContext"/> 44 <bean id="runtimeContext" class="br.com.centralit.esi.api.runtime.RuntimeContext"/>
44 45
45 <context:component-scan base-package="br.com.centralit.listener" /> 46 <context:component-scan base-package="br.com.centralit.listener" />