From aab294f4a86fee2569e7728a97649708f39b1f48 Mon Sep 17 00:00:00 2001 From: Mohit Sinha Date: Tue, 23 Apr 2019 22:26:46 +0700 Subject: [PATCH 1/3] JdbcSupport added utility function for getting localDateTime after considering the timezone of the tenant. --- .../infrastructure/core/domain/JdbcSupport.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/JdbcSupport.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/JdbcSupport.java index 380a7fe49..ca5f8cd1b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/JdbcSupport.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/JdbcSupport.java @@ -29,6 +29,8 @@ import org.joda.time.LocalDate; import org.joda.time.LocalTime; import org.springframework.jdbc.support.JdbcUtils; +import static org.apache.fineract.infrastructure.core.service.DateUtils.getDateTimeZoneOfTenant; + /** * Support for retrieving possibly null values from jdbc recordset delegating to * springs {@link JdbcUtils} where possible. @@ -44,6 +46,15 @@ public class JdbcSupport { return dateTime; } + public static DateTime getLocalDateTime(final ResultSet rs, final String columnName) throws SQLException { + DateTime dateTime = null; + final Timestamp dateValue = rs.getTimestamp(columnName); + if (dateValue != null) { + dateTime = new DateTime(dateValue.getTime()).withZone(getDateTimeZoneOfTenant()); + } + return dateTime; + } + public static LocalDate getLocalDate(final ResultSet rs, final String columnName) throws SQLException { LocalDate localDate = null; final Date dateValue = rs.getDate(columnName); From c5f3689289c0a918f3e076979b34598b0f83fb58 Mon Sep 17 00:00:00 2001 From: Awasum Yannick Date: Fri, 26 Apr 2019 13:35:45 +0100 Subject: [PATCH 2/3] FINERACT-751 Fix CenterIntegrationTest Case --- .../CenterIntegrationTest.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java index d923ee570..77ca0154c 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java @@ -199,61 +199,64 @@ public class CenterIntegrationTest { @Test public void testStaffAssignmentDuringCenterCreation() { - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); + final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); System.out.println("--------------creating first staff with id-------------" + staffId); Assert.assertNotNull(staffId); - int centerWithStaffId = CenterHelper.createCenterWithStaffId(this.requestSpec, this.responseSpec, staffId); - CenterDomain center = CenterHelper.retrieveByID(centerWithStaffId, requestSpec, responseSpec); + final int centerWithStaffId = CenterHelper.createCenterWithStaffId(this.requestSpec, this.responseSpec, staffId); + final CenterDomain center = CenterHelper.retrieveByID(centerWithStaffId, requestSpec, responseSpec); Assert.assertNotNull(center); Assert.assertTrue(center.getId() == centerWithStaffId); - Assert.assertTrue(center.getStaffId() == staffId); + Assert.assertTrue(center.getStaffId().intValue() == staffId); Assert.assertTrue(center.isActive() == true); } @Test public void testAssignStaffToCenter() { - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); + final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); System.out.println("--------------creating first staff with id-------------" + staffId); Assert.assertNotNull(staffId); - Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); + final Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); CenterHelper.verifyCenterCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), + final HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, + this.responseSpec, groupID.toString(), staffId.longValue()); assertEquals("Verify assigned staff id is the same as id sent", assignStaffToCenterResponseMap.get("staffId"), staffId); - CenterDomain center = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); + final CenterDomain center = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); Assert.assertNotNull(center); - Assert.assertTrue(center.getId() == groupID); - Assert.assertTrue(center.getStaffId() == staffId); + Assert.assertTrue(center.getId().intValue() == groupID); + Assert.assertTrue(center.getStaffId().intValue() == staffId); } @Test public void testUnassignStaffToCenter() { - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); + final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); System.out.println("--------------creating first staff with id-------------" + staffId); Assert.assertNotNull(staffId); - Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); + final Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); CenterHelper.verifyCenterCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), + final HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, + this.responseSpec, groupID.toString(), staffId.longValue()); assertEquals("Verify assigned staff id is the same as id sent", assignStaffToCenterResponseMap.get("staffId"), staffId); - CenterDomain centerWithStaffAssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); + final CenterDomain centerWithStaffAssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); Assert.assertNotNull(centerWithStaffAssigned); - Assert.assertTrue(centerWithStaffAssigned.getId() == groupID); - Assert.assertTrue(centerWithStaffAssigned.getStaffId() == staffId); + Assert.assertTrue(centerWithStaffAssigned.getId().intValue() == groupID); + Assert.assertTrue(centerWithStaffAssigned.getStaffId().intValue() == staffId); - HashMap unassignStaffToCenterResponseMap = (HashMap) CenterHelper.unassignStaff(this.requestSpec, this.responseSpec, groupID.toString(), + final HashMap unassignStaffToCenterResponseMap = (HashMap) CenterHelper.unassignStaff(this.requestSpec, + this.responseSpec, groupID.toString(), staffId.longValue()); assertEquals("Verify staffId is null after unassigning ", unassignStaffToCenterResponseMap.get("staffId"), null); - CenterDomain centerWithStaffUnssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); + final CenterDomain centerWithStaffUnssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); Assert.assertNotNull(centerWithStaffUnssigned); - Assert.assertTrue(centerWithStaffUnssigned.getId() == groupID); + Assert.assertTrue(centerWithStaffUnssigned.getId().intValue() == groupID); Assert.assertTrue(centerWithStaffUnssigned.getStaffId() == null); } From 7ffed1db764393328c196558a8b3ba849123b1ff Mon Sep 17 00:00:00 2001 From: Vishwas Babu A J Date: Thu, 9 May 2019 12:57:40 -0700 Subject: [PATCH 3/3] Revert "Adding a compress response filter,registering filter" This reverts commit eb5ad448fa6cb365dad7e2691f4c6f7e9bb1c196. --- .../core/boot/WebXmlConfiguration.java | 3 -- .../core/filters/ResponseCompressFilter.java | 43 ------------------ .../core/writer/GZipResponseWriter.java | 45 ------------------- 3 files changed, 91 deletions(-) delete mode 100644 fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/filters/ResponseCompressFilter.java delete mode 100644 fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/writer/GZipResponseWriter.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/WebXmlConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/WebXmlConfiguration.java index ce2b7e3d8..6a8f702b9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/WebXmlConfiguration.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/WebXmlConfiguration.java @@ -21,7 +21,6 @@ package org.apache.fineract.infrastructure.core.boot; import javax.servlet.Filter; import javax.servlet.Servlet; -import org.apache.fineract.infrastructure.core.filters.ResponseCompressFilter; import org.apache.fineract.infrastructure.core.filters.ResponseCorsFilter; import org.apache.fineract.infrastructure.security.filter.TenantAwareBasicAuthenticationFilter; import org.springframework.beans.factory.annotation.Autowired; @@ -64,8 +63,6 @@ public class WebXmlConfiguration { jerseyServletRegistration.addInitParameter("com.sun.jersey.spi.container.ContainerResponseFilters", ResponseCorsFilter.class.getName()); jerseyServletRegistration.addInitParameter("com.sun.jersey.config.feature.DisableWADL", "true"); - jerseyServletRegistration.addInitParameter("com.sun.jersey.spi.container.ContainerResponseFilters", - ResponseCompressFilter.class.getName()); // debugging for development: // jerseyServletRegistration.addInitParameter("com.sun.jersey.spi.container.ContainerRequestFilters", // LoggingFilter.class.getName()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/filters/ResponseCompressFilter.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/filters/ResponseCompressFilter.java deleted file mode 100644 index 67185bf95..000000000 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/filters/ResponseCompressFilter.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.infrastructure.core.filters; - -import com.sun.jersey.spi.container.ContainerRequest; -import com.sun.jersey.spi.container.ContainerResponse; -import com.sun.jersey.spi.container.ContainerResponseFilter; -import org.apache.fineract.infrastructure.core.writer.GZipResponseWriter; - -import javax.ws.rs.core.HttpHeaders; - -/** - * Filter that compresses the response using gzip - */ - -public class ResponseCompressFilter implements ContainerResponseFilter { - - @Override - public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { - if (request.getRequestHeaders().getFirst(HttpHeaders.ACCEPT_ENCODING).contains("gzip")) { - response.getHttpHeaders().add(HttpHeaders.CONTENT_ENCODING, "gzip"); - response.setContainerResponseWriter( new GZipResponseWriter(response.getContainerResponseWriter())); - } - - return response; - } -} diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/writer/GZipResponseWriter.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/writer/GZipResponseWriter.java deleted file mode 100644 index 1368798ec..000000000 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/writer/GZipResponseWriter.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.infrastructure.core.writer; - -import com.sun.jersey.spi.container.ContainerResponse; -import com.sun.jersey.spi.container.ContainerResponseWriter; -import java.io.IOException; -import java.io.OutputStream; -import java.util.zip.GZIPOutputStream; - -public class GZipResponseWriter implements ContainerResponseWriter { - private final ContainerResponseWriter crw; - - private GZIPOutputStream gos; - - public GZipResponseWriter(ContainerResponseWriter crw) { - this.crw = crw; - } - - public OutputStream writeStatusAndHeaders(long contentLength, ContainerResponse response) throws IOException { - gos = new GZIPOutputStream(crw.writeStatusAndHeaders(-1, response)); - return gos; - } - - public void finish() throws IOException { - gos.finish(); - crw.finish(); - } -}