diff --git a/.github/workflows/deploy-mvn-central-release.yml b/.github/workflows/deploy-mvn-central-release.yml index e7a05b6..980428c 100644 --- a/.github/workflows/deploy-mvn-central-release.yml +++ b/.github/workflows/deploy-mvn-central-release.yml @@ -33,11 +33,11 @@ jobs: ref: ${{ env.BRANCH }} fetch-depth: 0 - name: Setup Java JDK and Maven - uses: ontimize/setup-java-maven-gitAction@v4 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' - server-id: ossrh + server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_CENTRAL_TOKEN gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} diff --git a/.github/workflows/deploy-mvn-central-snapshot-manual.yml b/.github/workflows/deploy-mvn-central-snapshot-manual.yml index 535cb95..d7f2286 100644 --- a/.github/workflows/deploy-mvn-central-snapshot-manual.yml +++ b/.github/workflows/deploy-mvn-central-snapshot-manual.yml @@ -19,11 +19,11 @@ jobs: - name : Checkout repository code uses: actions/checkout@v3 - name: Setup Java JDK and Maven - uses: ontimize/setup-java-maven-gitAction@v4 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' - server-id: ossrh + server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_CENTRAL_TOKEN gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} diff --git a/.github/workflows/deploy-mvn-central-snapshot.yml b/.github/workflows/deploy-mvn-central-snapshot.yml index 5801842..4bce2c6 100644 --- a/.github/workflows/deploy-mvn-central-snapshot.yml +++ b/.github/workflows/deploy-mvn-central-snapshot.yml @@ -15,11 +15,11 @@ jobs: - name : Checkout repository code uses: actions/checkout@v3 - name: Setup Java JDK and Maven - uses: ontimize/setup-java-maven-gitAction@v4 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' - server-id: ossrh + server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_CENTRAL_TOKEN gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} diff --git a/.github/workflows/prepare-release-by-PR.yml b/.github/workflows/prepare-release-by-PR.yml index d28331d..f3c3a0e 100644 --- a/.github/workflows/prepare-release-by-PR.yml +++ b/.github/workflows/prepare-release-by-PR.yml @@ -1,5 +1,11 @@ name: Prepare a release by a pull request -on: workflow_dispatch +on: + workflow_dispatch: + inputs: + version: + description: 'Optional. Enter a new custom version instead of default existing one.' + type: string + required: false jobs: Prepare-a-release-by-a-pull-request: runs-on: ubuntu-latest @@ -21,12 +27,33 @@ jobs: - name: Get framework version to release id: version run: | - var_version=$(mvn help:evaluate -q -Dexpression=project.version -DforceStdout) + var_version="" + if ${{ github.event.inputs.version != '' }}; then + var_version=${{ github.event.inputs.version }} + else + var_version=$(mvn help:evaluate -q -Dexpression=project.version -DforceStdout) + fi echo "version=$var_version" >> $GITHUB_OUTPUT - name: Set author identity run: | git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}" git config --global user.email "${{ secrets.CI_COMMIT_MAIL }}" + - name: Prepare CHANGELOG.md + run: | + version=$(echo "${{ steps.version.outputs.version }}" | sed 's/-SNAPSHOT//' ) + date=$(date +%F) + version_header="## [$version] - $date" + sed -i "/^## \[Unreleased\]/a $version_header" CHANGELOG.md + pattern="^\[unreleased\]: https://github.com/.*/compare/" + linenum=$(grep -n "$pattern" CHANGELOG.md | cut -d: -f1) + linecontent=$(sed -n "${linenum}p" CHANGELOG.md) + linecontent=$(echo "$linecontent" | sed -E "s|^\[[^]]+\]|[$version]|") + linecontent=$(echo "$linecontent" | sed -E "s|\.\.\.HEAD|...$version|") + sed -i "${linenum}a $linecontent" CHANGELOG.md + linecontent=$(sed -n "${linenum}p" CHANGELOG.md) + linecontent=$(echo "$linecontent" | sed -E "s|(compare/).*?(.\.\.\HEAD)|\1$version\2|") + sed -i "${linenum}s|.*|$linecontent|" CHANGELOG.md + git add CHANGELOG.md - name: Prepare version to release id: tag run: | @@ -51,4 +78,4 @@ jobs: - name: Create pull request run: | version=${{ steps.tag.outputs.version }} - gh pr create -B main -H release/$version --title "Merge release/$version into main" --body "Created by a GitHub Action → Prepare a release by a pull request" --label "release" \ No newline at end of file + gh pr create -B main -H release/$version --title "Merge release/$version into main" --body "Created by a GitHub Action → Prepare a release by a pull request" --label "release" diff --git a/.github/workflows/send-release-mail.yml b/.github/workflows/send-release-mail.yml index 3504126..36ec56d 100644 --- a/.github/workflows/send-release-mail.yml +++ b/.github/workflows/send-release-mail.yml @@ -38,7 +38,7 @@ jobs: ref: ${{ env.BRANCH }} fetch-depth: 0 - name: Setup Java JDK and Maven - uses: ontimize/setup-java-maven-gitAction@v4 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' diff --git a/CHANGELOG.md b/CHANGELOG.md index b842660..3e36240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ ## [Unreleased] +## [3.6.0] - 2025-06-25 +* **TypeMappingsUtils.java**: Add *FLOAT* and *DOUBLE* as different types. +* **DynamicJasperHelper.java**: Fix return data for *DOUBLE* or *FLOAT*. ## [3.5.0] - 2025-04-28 ### Fixed 🐛 * **Report store**: Fixed problems when using parameters of Jasper Report. It was added new `ReportStoreParamsDto` object into `fillReport` API method for allowing customization of parameters as types, formattings, etc. @@ -66,7 +69,8 @@ public InputStream generateReport(final ReportParamsDto reportParamsDto) ### Added ✔️ * **Report on-demand**: On-demand reports can now be created with the help of Jasper Reports via HTTP requests. The parameters for creating these reports can be stored in preferences for later use. -[unreleased]: https://github.com/ontimize/ontimize-jee-report/compare/3.5.0...HEAD +[unreleased]: https://github.com/ontimize/ontimize-jee-report/compare/3.6.0...HEAD +[3.6.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.5.0...3.6.0 [3.5.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.4.0...3.5.0 [3.4.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.3.0...3.4.0 [3.3.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.2.0...3.3.0 diff --git a/ontimize-jee-report-common/pom.xml b/ontimize-jee-report-common/pom.xml index ca5eded..4fbbda3 100644 --- a/ontimize-jee-report-common/pom.xml +++ b/ontimize-jee-report-common/pom.xml @@ -5,7 +5,7 @@ com.ontimize.jee.report ontimize-jee-report - 3.5.0 + 3.6.0 ontimize-jee-report-common @@ -76,17 +76,6 @@ https://github.com/ontimize/ontimize-jee-report/tree/master - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ - - - com.ontimize.jee diff --git a/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java b/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java index 48e483e..96fe3e7 100644 --- a/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java +++ b/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java @@ -11,199 +11,191 @@ public class TypeMappingsUtils { - public static final String STRING = "String", - BOOLEAN = "Boolean", - BINARY = "Binary", - DOUBLE = "Double", - DATE = "Date", - INTEGER = "Integer", - BIGDECIMAL = "BigDecimal", - - STRING_PATH = "java.lang.String", - BOOLEAN_PATH = "java.lang.Boolean", - OBJECT_PATH = "java.lang.Object", - FLOAT_PATH = "java.lang.Float", - DOUBLE_PATH = "java.lang.Double", - DATE_PATH = "java.util.Date", - TIMESTAMP_PATH = "ava.sql.Timestamp", - INTEGER_PATH = "java.lang.Integer", - BIGDECIMAL_PATH = "java.math.BigDecimal"; - - @SuppressWarnings("rawtypes") - public static Class getClass(int type) { - switch (type) { - case Types.VARCHAR: - case Types.LONGVARCHAR: - case Types.CLOB: - return String.class; - - case Types.INTEGER: - case Types.SMALLINT: - case Types.TINYINT: - case Types.BIGINT: - return Integer.class; - - case Types.BIT: - case Types.BOOLEAN: - return Boolean.class; - - case Types.DOUBLE: - case Types.DECIMAL: - case Types.REAL: - case Types.FLOAT: - return Double.class; - - case Types.NUMERIC: - return BigDecimal.class; - - case Types.DATE: - case Types.TIME: - case Types.TIMESTAMP: - return Date.class; - - case Types.BINARY: - case Types.LONGVARBINARY: - case Types.VARBINARY: - case Types.ARRAY: - case Types.BLOB: - case Types.OTHER: - return Object.class; - } + public static final String STRING = "String", + BOOLEAN = "Boolean", + BINARY = "Binary", + DOUBLE = "Double", + DATE = "Date", + INTEGER = "Integer", + FLOAT = "Float", + LONG = "Long", + BIGDECIMAL = "BigDecimal", + + STRING_PATH = "java.lang.String", + BOOLEAN_PATH = "java.lang.Boolean", + OBJECT_PATH = "java.lang.Object", + FLOAT_PATH = "java.lang.Float", + DOUBLE_PATH = "java.lang.Double", + DATE_PATH = "java.util.Date", + TIMESTAMP_PATH = "java.sql.Timestamp", + INTEGER_PATH = "java.lang.Integer", + LONG_PATH = "java.lang.Long", + BIGDECIMAL_PATH = "java.math.BigDecimal"; + + @SuppressWarnings("rawtypes") + public static Class getClass(int type) { + switch (type) { + case Types.VARCHAR: + case Types.LONGVARCHAR: + case Types.CLOB: + return String.class; + case Types.BIGINT: + return Long.class; + case Types.INTEGER: + case Types.SMALLINT: + case Types.TINYINT: + return Integer.class; + case Types.BIT: + case Types.BOOLEAN: + return Boolean.class; + case Types.FLOAT: + return Float.class; + case Types.DOUBLE: + case Types.DECIMAL: + case Types.REAL: + return Double.class; + case Types.NUMERIC: + return BigDecimal.class; + case Types.DATE: + case Types.TIME: + case Types.TIMESTAMP: + return Date.class; + case Types.BINARY: + case Types.LONGVARBINARY: + case Types.VARBINARY: + case Types.ARRAY: + case Types.BLOB: + case Types.OTHER: return Object.class; } - - @SuppressWarnings("rawtypes") - public static Class getClass(String type) { - return getClass(getSQLType(type)); - } - - public static String getClassName(int type) { - switch (type) { - case Types.VARCHAR: - case Types.LONGVARCHAR: - case Types.CLOB: - return STRING_PATH; - - case Types.INTEGER: - case Types.SMALLINT: - case Types.TINYINT: - case Types.BIGINT: - return INTEGER_PATH; - - case Types.BIT: - case Types.BOOLEAN: - return BOOLEAN_PATH; - - case Types.DOUBLE: - case Types.DECIMAL: - case Types.REAL: - case Types.FLOAT: - return DOUBLE_PATH; - - case Types.NUMERIC: - return BIGDECIMAL_PATH; - - case Types.DATE: - case Types.TIME: - case Types.TIMESTAMP: - return DATE_PATH; - - case Types.BINARY: - case Types.LONGVARBINARY: - case Types.VARBINARY: - case Types.ARRAY: - case Types.BLOB: - case Types.OTHER: - return OBJECT_PATH; - } + return Object.class; + } + + @SuppressWarnings("rawtypes") + public static Class getClass(String type) { + return getClass(getSQLType(type)); + } + + public static String getClassName(int type) { + switch (type) { + case Types.VARCHAR: + case Types.LONGVARCHAR: + case Types.CLOB: + return STRING_PATH; + case Types.BIGINT: + return LONG_PATH; + case Types.INTEGER: + case Types.SMALLINT: + case Types.TINYINT: + return INTEGER_PATH; + case Types.BIT: + case Types.BOOLEAN: + return BOOLEAN_PATH; + case Types.FLOAT: + return FLOAT_PATH; + case Types.DOUBLE: + case Types.DECIMAL: + case Types.REAL: + return DOUBLE_PATH; + case Types.NUMERIC: + return BIGDECIMAL_PATH; + case Types.DATE: + case Types.TIME: + case Types.TIMESTAMP: + return DATE_PATH; + case Types.BINARY: + case Types.LONGVARBINARY: + case Types.VARBINARY: + case Types.ARRAY: + case Types.BLOB: + case Types.OTHER: return OBJECT_PATH; } - - public static String getClassName(String type) { - return getClassName(getSQLType(type)); - } - - public static int getSQLTypeFromClassName(final String className) { - switch (className) { - case STRING_PATH: - return Types.VARCHAR; - - case INTEGER_PATH: - return Types.INTEGER; - - case BOOLEAN_PATH: - return Types.BOOLEAN; - - case FLOAT_PATH: - return Types.FLOAT; - - case DOUBLE_PATH: - return Types.DOUBLE; - - case BIGDECIMAL_PATH: - return Types.NUMERIC; - - case DATE_PATH: - return Types.DATE; - - case TIMESTAMP_PATH: - return Types.TIMESTAMP; - - } - return Types.OTHER; + return OBJECT_PATH; + } + + public static String getClassName(String type) { + return getClassName(getSQLType(type)); + } + + public static int getSQLTypeFromClassName(final String className) { + switch (className) { + case STRING_PATH: + return Types.VARCHAR; + case INTEGER_PATH: + return Types.INTEGER; + case LONG_PATH: + return Types.BIGINT; + case BOOLEAN_PATH: + return Types.BOOLEAN; + case FLOAT_PATH: + return Types.FLOAT; + case DOUBLE_PATH: + return Types.DOUBLE; + case BIGDECIMAL_PATH: + return Types.NUMERIC; + case DATE_PATH: + return Types.DATE; + case TIMESTAMP_PATH: + return Types.TIMESTAMP; } - - public static int getSQLType(String type) { - int returned = Types.OTHER; - if (type.equalsIgnoreCase(STRING)) { - returned = Types.VARCHAR; - } else if (type.equalsIgnoreCase(BOOLEAN)) { - returned = Types.BOOLEAN; - } else if (type.equalsIgnoreCase(BINARY)) { - returned = Types.BINARY; - } else if (type.equalsIgnoreCase(DOUBLE)) { - returned = Types.DOUBLE; - } else if (type.equalsIgnoreCase(BIGDECIMAL)) { - returned = Types.NUMERIC; - }else if (type.equalsIgnoreCase(DATE)) { - returned = Types.DATE; - } else if (type.equalsIgnoreCase(INTEGER)) { - returned = Types.INTEGER; - } - - // Returns java.sql.Types.OTHER - return returned; + return Types.OTHER; + } + + public static int getSQLType(String type) { + int returned = Types.OTHER; + if (type.equalsIgnoreCase(STRING)) { + returned = Types.VARCHAR; + } else if (type.equalsIgnoreCase(BOOLEAN)) { + returned = Types.BOOLEAN; + } else if (type.equalsIgnoreCase(BINARY)) { + returned = Types.BINARY; + } else if (type.equalsIgnoreCase(DOUBLE)) { + returned = Types.DOUBLE; + } else if (type.equalsIgnoreCase(FLOAT)) { + returned = Types.FLOAT; + } else if (type.equalsIgnoreCase(LONG)) { + returned = Types.BIGINT; + } else if (type.equalsIgnoreCase(BIGDECIMAL)) { + returned = Types.NUMERIC; + } else if (type.equalsIgnoreCase(DATE)) { + returned = Types.DATE; + } else if (type.equalsIgnoreCase(INTEGER)) { + returned = Types.INTEGER; } - - /** - * Transforms current Map with SQL types as strings in a new Map with SQL types as integers. - */ - @SuppressWarnings({"rawtypes", "deprecation", "unchecked"}) - public static Map convertStrSQLMap2IntSQLMap(Map m) { - HashMap newMap = new HashMap(m.size()); - - Set k = m.keySet(); - Collection v = m.values(); - - Iterator ik = k.iterator(); - Iterator iv = v.iterator(); - - while (ik.hasNext() && iv.hasNext()) { - Object o = ik.next(); - if (!(o instanceof String)) { - iv.next(); - continue; - } - String key = (String) o; - - o = iv.next(); - if (!(o instanceof String)) { - continue; - } - String value = (String) o; - - newMap.put(key, new Integer(getSQLType(value))); - } - return newMap; + return returned; + } + + /** + * Transforms current Map with SQL types as strings in a new Map with SQL types + * as integers. + */ + @SuppressWarnings({ "rawtypes", "deprecation", "unchecked" }) + public static Map convertStrSQLMap2IntSQLMap(Map m) { + HashMap newMap = new HashMap(m.size()); + + Set k = m.keySet(); + Collection v = m.values(); + + Iterator ik = k.iterator(); + Iterator iv = v.iterator(); + + while (ik.hasNext() && iv.hasNext()) { + Object o = ik.next(); + if (!(o instanceof String)) { + iv.next(); + continue; + } + String key = (String) o; + + o = iv.next(); + if (!(o instanceof String)) { + continue; + } + String value = (String) o; + + newMap.put(key, new Integer(getSQLType(value))); } + return newMap; + } } diff --git a/ontimize-jee-report-jacoco/pom.xml b/ontimize-jee-report-jacoco/pom.xml index 6241009..b212d4c 100644 --- a/ontimize-jee-report-jacoco/pom.xml +++ b/ontimize-jee-report-jacoco/pom.xml @@ -4,7 +4,7 @@ com.ontimize.jee.report ontimize-jee-report - 3.5.0 + 3.6.0 ontimize-jee-report-jacoco diff --git a/ontimize-jee-report-rest/pom.xml b/ontimize-jee-report-rest/pom.xml index 387275c..9d72276 100644 --- a/ontimize-jee-report-rest/pom.xml +++ b/ontimize-jee-report-rest/pom.xml @@ -5,7 +5,7 @@ com.ontimize.jee.report ontimize-jee-report - 3.5.0 + 3.6.0 ontimize-jee-report-rest @@ -76,17 +76,6 @@ https://github.com/ontimize/ontimize-jee-report/tree/master - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ - - - ${project.groupId} diff --git a/ontimize-jee-report-server/pom.xml b/ontimize-jee-report-server/pom.xml index 7d37f13..b7d4532 100644 --- a/ontimize-jee-report-server/pom.xml +++ b/ontimize-jee-report-server/pom.xml @@ -4,7 +4,7 @@ com.ontimize.jee.report ontimize-jee-report - 3.5.0 + 3.6.0 ontimize-jee-report-server @@ -75,17 +75,6 @@ https://github.com/ontimize/ontimize-jee-report/tree/master - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ - - - ${project.groupId} diff --git a/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java b/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java index a547478..92ce1e5 100644 --- a/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java +++ b/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; public class DynamicJasperHelper implements ApplicationContextAware { @@ -36,7 +37,7 @@ public DynamicJasperHelper() { } public String getColumnPattern(final ColumnMetadata columnMetadata, final ColumnStyleParamsDto columnStyleParamsDto, - final Locale locale) { + final Locale locale) { String pattern = null; if (columnMetadata != null) { Class aClass = TypeMappingsUtils.getClass(columnMetadata.getType()); @@ -46,17 +47,18 @@ public String getColumnPattern(final ColumnMetadata columnMetadata, final Column return pattern; } - public Map getColumnMetadata(final String service, final String path, final String entity, final List columns, - FilterParameter filters, Boolean advQuery) throws DynamicReportException { + public Map getColumnMetadata(final String service, final String path, final String entity, + final List columns, FilterParameter filters, Boolean advQuery) throws DynamicReportException { Map columnMetadataMap = new HashMap<>(); List stringColumns = getColumnsFromDto(columns); - Map defaultSqlColumnTypes = getSQLColumnTypes(service, path, entity, stringColumns, filters, advQuery); + Map defaultSqlColumnTypes = getSQLColumnTypes(service, path, entity, stringColumns, filters, + advQuery); for (ColumnDto col : columns) { String id = col.getId(); int type = defaultSqlColumnTypes.containsKey(id) ? defaultSqlColumnTypes.get(id) : Types.OTHER; - if(hasRenderForColumn(col)){ + if (hasRenderForColumn(col)) { int auxType = retrieveTypeFromRenderer(col); - if(auxType != -1) { + if (auxType != -1) { type = auxType; } } @@ -68,28 +70,41 @@ public Map getColumnMetadata(final String service, final return columnMetadataMap; } - public Map getSQLColumnTypes(final String service, final String path, final String entity, - final List columns, FilterParameter filters, Boolean advQuery) throws DynamicReportException { - Map sqlTypes = new HashMap<>(); - Object bean = this.getApplicationContextUtils().getServiceBean(service, path); - - Map kv = (filters != null && filters.getFilter()!=null) ? filters.getFilter() : new HashMap<>(); - - EntityResult entityResult; - if (Boolean.TRUE.equals(advQuery)) { - List sqlOrders = new ArrayList<>(); - entityResult = (EntityResult) ReflectionTools.invoke(bean, entity.concat("PaginationQuery"), - kv, columns, Integer.MAX_VALUE, 0, sqlOrders); - } else { - entityResult = (EntityResult) ReflectionTools.invoke(bean, - entity.concat("Query"), kv, columns); + final List columns, FilterParameter filters, Boolean advQuery) throws DynamicReportException { + Map result = new HashMap<>(); + + if (filters == null || filters.getSqltypes() == null) { + Object bean = this.getApplicationContextUtils().getServiceBean(service, path); + + Map kv = (filters != null && filters.getFilter() != null) ? filters.getFilter() + : new HashMap<>(); + + EntityResult entityResult; + if (Boolean.TRUE.equals(advQuery)) { + List sqlOrders = new ArrayList<>(); + entityResult = (EntityResult) ReflectionTools.invoke(bean, entity.concat("PaginationQuery"), kv, + columns, Integer.MAX_VALUE, 0, sqlOrders); + } else { + entityResult = (EntityResult) ReflectionTools.invoke(bean, entity.concat("Query"), kv, columns); + } + + if (entityResult.getCode() == EntityResult.OPERATION_SUCCESSFUL) { + return entityResult.getColumnSQLTypes(); + } + return result; } - if (entityResult.getCode() == EntityResult.OPERATION_SUCCESSFUL) { - return entityResult.getColumnSQLTypes(); + Map sqlTypes = filters.getSqltypes(); + + for (String column : columns) { + if (sqlTypes.containsKey(column)) { + result.put(column, (Integer) sqlTypes.get(column)); + } else { + } } - return sqlTypes; + + return result; } public List getColumnsFromDto(List columnsDto) { @@ -98,11 +113,12 @@ public List getColumnsFromDto(List columnsDto) { return columns; } - - public void evaluateServiceRenderer(EntityResultDataSource entityResultDataSource, List columns) throws DynamicReportException { + public void evaluateServiceRenderer(EntityResultDataSource entityResultDataSource, List columns) + throws DynamicReportException { if (entityResultDataSource != null && columns != null) { for (ColumnDto columnDto : columns) { - RendererDto renderer = columnDto.getColumnStyle() != null ? columnDto.getColumnStyle().getRenderer() : null; + RendererDto renderer = columnDto.getColumnStyle() != null ? columnDto.getColumnStyle().getRenderer() + : null; if (renderer instanceof ServiceRendererDto) { ServiceRendererDto serviceRendererDto = (ServiceRendererDto) renderer; if (StringUtils.isBlank(serviceRendererDto.getService())) { @@ -114,19 +130,21 @@ public void evaluateServiceRenderer(EntityResultDataSource entityResultDataSourc } if (StringUtils.isBlank(serviceRendererDto.getKeyColumn())) { - throw new IllegalArgumentException("'keyColumn' argument not found on ServiceRendererDto bean!"); + throw new IllegalArgumentException( + "'keyColumn' argument not found on ServiceRendererDto bean!"); } if (StringUtils.isBlank(serviceRendererDto.getValueColumn())) { - throw new IllegalArgumentException("'valueColumn' argument not found on ServiceRendererDto bean!"); + throw new IllegalArgumentException( + "'valueColumn' argument not found on ServiceRendererDto bean!"); } Map map = new HashMap<>(); List cols = serviceRendererDto.getColumns(); - Object bean = this.getApplicationContextUtils().getServiceBean(serviceRendererDto.getService(), serviceRendererDto.getPath()); + Object bean = this.getApplicationContextUtils().getServiceBean(serviceRendererDto.getService(), + serviceRendererDto.getPath()); EntityResult eR_renderer = (EntityResult) ReflectionTools.invoke(bean, - serviceRendererDto.getEntity().concat("Query"), - map, cols); + serviceRendererDto.getEntity().concat("Query"), map, cols); Map renderData = new HashMap<>(); renderData.put(serviceRendererDto.getKeyColumn(), eR_renderer); @@ -135,7 +153,7 @@ public void evaluateServiceRenderer(EntityResultDataSource entityResultDataSourc Map renderInfo = new HashMap<>(); renderInfo.put(serviceRendererDto.getKeyColumn(), serviceRendererDto); entityResultDataSource.addRendererInfo(renderInfo); - } else if(renderer instanceof BooleanRendererDto) { + } else if (renderer instanceof BooleanRendererDto) { BooleanRendererDto booleanRendererDto = (BooleanRendererDto) renderer; Map renderInfo = new HashMap<>(); @@ -148,7 +166,8 @@ public void evaluateServiceRenderer(EntityResultDataSource entityResultDataSourc } protected boolean hasRenderForColumn(final ColumnDto column) { - if (column != null && column.getColumnStyle() != null && column.getColumnStyle().getRenderer() instanceof Renderer) { + if (column != null && column.getColumnStyle() != null + && column.getColumnStyle().getRenderer() instanceof Renderer) { return Boolean.TRUE; } return Boolean.FALSE; @@ -159,15 +178,15 @@ protected int retrieveTypeFromRenderer(final ColumnDto column) throws DynamicRep if (column != null && column.getColumnStyle() != null) { if (column.getColumnStyle().getRenderer() instanceof ServiceRendererDto) { ServiceRendererDto serviceRendererDto = (ServiceRendererDto) column.getColumnStyle().getRenderer(); - Map rendererSqlColumnTypes = - getSQLColumnTypes(serviceRendererDto.getService(), serviceRendererDto.getPath(), - serviceRendererDto.getEntity(), serviceRendererDto.getColumns(), null, false); + Map rendererSqlColumnTypes = getSQLColumnTypes(serviceRendererDto.getService(), + serviceRendererDto.getPath(), serviceRendererDto.getEntity(), serviceRendererDto.getColumns(), + null, false); type = rendererSqlColumnTypes.get(serviceRendererDto.getValueColumn()); - } else if(column.getColumnStyle().getRenderer() instanceof BooleanRendererDto) { + } else if (column.getColumnStyle().getRenderer() instanceof BooleanRendererDto) { BooleanRendererDto booleanRendererDto = (BooleanRendererDto) column.getColumnStyle().getRenderer(); - if(BooleanRendererDto.STRING_TYPE.equals(booleanRendererDto.getRenderType())) { + if (BooleanRendererDto.STRING_TYPE.equals(booleanRendererDto.getRenderType())) { type = Types.VARCHAR; - } else if(BooleanRendererDto.NUMBER_TYPE.equals(booleanRendererDto.getRenderType())) { + } else if (BooleanRendererDto.NUMBER_TYPE.equals(booleanRendererDto.getRenderType())) { type = Types.INTEGER; } } diff --git a/pom.xml b/pom.xml index de97731..c56e1a4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.ontimize.jee.report ontimize-jee-report - 3.5.0 + 3.6.0 pom @@ -86,17 +86,6 @@ https://github.com/ontimize/ontimize-jee-report/tree/master - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ - - - 5.11.0 1.3.2 @@ -113,6 +102,7 @@ 3.0.0-M1 3.2.1 + 0.7.0 @@ -207,11 +197,6 @@ ${maven.compiler.target} - - org.apache.maven.plugins - maven-deploy-plugin - ${deploy.plugin.version} - org.apache.maven.plugins maven-source-plugin @@ -276,8 +261,8 @@ - sonatype-snapshot - https://s01.oss.sonatype.org/content/repositories/snapshots/ + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ false @@ -308,8 +293,8 @@ generate-version - sonatype-snapshot - https://s01.oss.sonatype.org/content/repositories/snapshots/ + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ false @@ -331,14 +316,13 @@ maven-javadoc-plugin - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.7 + org.sonatype.central + central-publishing-maven-plugin + ${central-publishing-maven-plugin.version} true - ossrh - https://s01.oss.sonatype.org/ - true + central + true @@ -372,8 +356,8 @@ jacoco - sonatype-snapshot - https://s01.oss.sonatype.org/content/repositories/snapshots/ + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ false