-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
REPORT-770 : Add a user interface component that enables viewing and …
…searching logs, Add an automated task to delete these logs after a certain period of time and added Tests
- Loading branch information
Showing
11 changed files
with
253 additions
and
4 deletions.
There are no files selected for viewing
69 changes: 69 additions & 0 deletions
69
api-tests/src/test/java/org/openmrs/module/reporting/evaluation/DeleteOldLogsTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/** | ||
* This Source Code Form is subject to the terms of the Mozilla Public License, | ||
* v. 2.0. If a copy of the MPL was not distributed with this file, You can | ||
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under | ||
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license. | ||
* | ||
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS | ||
* graphic logo is a trademark of OpenMRS Inc. | ||
*/ | ||
package org.openmrs.module.reporting.evaluation; | ||
|
||
import java.io.File; | ||
import java.io.IOException; | ||
import java.nio.file.Path; | ||
import java.nio.file.Paths; | ||
|
||
import org.junit.Assert; | ||
import org.junit.Before; | ||
import org.junit.Test; | ||
import org.openmrs.module.reporting.ReportingConstants; | ||
import org.openmrs.util.OpenmrsUtil; | ||
|
||
public class DeleteOldLogsTest { | ||
|
||
File baseDir = OpenmrsUtil.getDirectoryInApplicationDataDirectory(ReportingConstants.REPORT_RESULTS_DIRECTORY_NAME); | ||
|
||
Path test= Paths.get(baseDir.getAbsolutePath(),"test.reportlog"); | ||
File test_file = test.toFile(); | ||
|
||
@Before | ||
public void init() throws IOException { | ||
test_file.createNewFile(); | ||
} | ||
|
||
@Test | ||
public void Should_DeleteLogFlesExceedingSevendays() throws IOException { | ||
//Setting the file to exist over seven days | ||
long exceedingDays = 8 ; | ||
test_file.setLastModified(exceedingDays * (24 * 60 * 60 * 1000)); | ||
|
||
// asserting that the file exists befor the servlet DeleteOldLogs is called | ||
Assert.assertTrue(test_file.exists()); | ||
|
||
DeleteOldLogFiles delete = new DeleteOldLogFiles (); | ||
delete.deleteOldLogs(); | ||
|
||
//Asserting that the Log file will be deleted after seven days | ||
Assert.assertFalse(test_file.exists()); | ||
} | ||
|
||
@Test | ||
public void Should_NotDeleteLogFilesBeforeSevenDayPass() throws IOException { | ||
|
||
// asserting that the file exists befor the servlet DeleteOldLogs is called | ||
Assert.assertTrue(test_file.exists()); | ||
|
||
DeleteOldLogFiles delete = new DeleteOldLogFiles (); | ||
delete.deleteOldLogs(); | ||
|
||
//Asserting that the Log file will Not be deleted after seven days | ||
Assert.assertTrue(test_file.exists()); | ||
} | ||
|
||
} | ||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
api/src/main/java/org/openmrs/module/reporting/evaluation/DeleteOldLogFiles.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
/** | ||
* This Source Code Form is subject to the terms of the Mozilla Public License, | ||
* v. 2.0. If a copy of the MPL was not distributed with this file, You can | ||
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under | ||
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license. | ||
* | ||
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS | ||
* graphic logo is a trademark of OpenMRS Inc. | ||
*/ | ||
|
||
package org.openmrs.module.reporting.evaluation; | ||
import java.io.File; | ||
import java.util.Date; | ||
|
||
import javax.servlet.ServletException; | ||
import javax.servlet.http.HttpServlet; | ||
|
||
import org.apache.commons.io.FilenameUtils; | ||
import org.apache.commons.lang3.StringUtils; | ||
import org.apache.commons.logging.Log; | ||
import org.apache.commons.logging.LogFactory; | ||
import org.openmrs.module.reporting.ReportingConstants; | ||
import org.openmrs.util.OpenmrsUtil; | ||
|
||
|
||
|
||
public class DeleteOldLogFiles extends HttpServlet { | ||
|
||
private static final long serialVersionUID = 1L; | ||
// Servlet to delete old Logs on module startup | ||
protected static final Log log = LogFactory.getLog(DeleteOldLogFiles.class); | ||
|
||
|
||
public void deleteOldLogs(){ | ||
//maximum number of days to keep log files is 7 | ||
long alloweddays = 7; | ||
File baseDir = OpenmrsUtil.getDirectoryInApplicationDataDirectory(ReportingConstants.REPORT_RESULTS_DIRECTORY_NAME); | ||
File[] fList = baseDir.listFiles(); | ||
|
||
if (fList != null){ | ||
for (File file : fList){ | ||
String fileExt = FilenameUtils.getExtension(file.toString()); | ||
if (file.isFile() && StringUtils.equals(fileExt, "reportlog")){ | ||
|
||
long diff = new Date().getTime() - file.lastModified(); | ||
long maximumTime = (alloweddays * (24 * 60 * 60 * 1000)); | ||
|
||
if (diff > maximumTime) { | ||
file.delete(); | ||
} | ||
|
||
} | ||
} | ||
|
||
} | ||
} | ||
|
||
@Override | ||
public void init() throws ServletException { | ||
deleteOldLogs(); | ||
} | ||
|
||
} | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -168,6 +168,15 @@ | |
ReportRequest.hbm.xml | ||
</mappingFiles> | ||
|
||
|
||
<!-- Servlets --> | ||
<servlet> | ||
<servlet-name>DeleteOldLogFiles</servlet-name> | ||
<servlet-class>@[email protected]</servlet-class> | ||
<load-on-startup>1</load-on-startup> | ||
</servlet> | ||
<!-- /Servlets --> | ||
|
||
<conditionalResources> | ||
<conditionalResource> | ||
<path>/lib/reporting-api-1.9.*</path> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters