[Minor] cleaned up warnings in code and cleaned up pom.xml

This commit is contained in:
Robert von Burg 2012-11-19 22:44:07 +01:00
parent bb7042524f
commit 2fc807fe11
13 changed files with 353 additions and 390 deletions

315
pom.xml
View File

@ -1,192 +1,151 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.eitchnet</groupId>
<artifactId>ch.eitchnet.utils</artifactId>
<packaging>jar</packaging>
<version>0.1.0-SNAPSHOT</version>
<name>ch.eitchnet.utils</name>
<url>https://github.com/eitch/ch.eitchnet.utils</url>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>ch.eitchnet</groupId>
<artifactId>ch.eitchnet.utils</artifactId>
<packaging>jar</packaging>
<version>0.1.0-SNAPSHOT</version>
<name>ch.eitchnet.utils</name>
<url>https://github.com/eitch/ch.eitchnet.utils</url>
<!-- POM Reference: http://maven.apache.org/pom.html#Licenses -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<inceptionYear>2011</inceptionYear>
<licenses>
<license>
<name>GNU Lesser General Public License</name>
<url>http://www.gnu.org/licenses/lgpl.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>eitchnet.ch</name>
<url>http://blog.eitchnet.ch</url>
</organization>
<developers>
<developer>
<id>eitch</id>
<name>Robert von Vurg</name>
<email>eitch@eitchnet.ch</email>
<url>http://blog.eitchnet.ch</url>
<organization>eitchnet.ch</organization>
<organizationUrl>http://blog.eitchnet.ch</organizationUrl>
<roles>
<role>architect</role>
<role>developer</role>
</roles>
<timezone>+1</timezone>
<properties>
<picUrl>http://localhost</picUrl>
</properties>
</developer>
</developers>
<!-- POM Reference: http://maven.apache.org/pom.html#Licenses -->
<issueManagement>
<system>Github Issues</system>
<url>https://github.com/eitch/ch.eitchnet.utils/issues</url>
</issueManagement>
<inceptionYear>2011</inceptionYear>
<licenses>
<license>
<name>GNU Lesser General Public License</name>
<url>http://www.gnu.org/licenses/lgpl.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>eitchnet.ch</name>
<url>http://blog.eitchnet.ch</url>
</organization>
<developers>
<developer>
<id>eitch</id>
<name>Robert von Vurg</name>
<email>eitch@eitchnet.ch</email>
<url>http://blog.eitchnet.ch</url>
<organization>eitchnet.ch</organization>
<organizationUrl>http://blog.eitchnet.ch</organizationUrl>
<roles>
<role>architect</role>
<role>developer</role>
</roles>
<timezone>+1</timezone>
<properties>
<picUrl>http://localhost</picUrl>
</properties>
</developer>
</developers>
<!--
<ciManagement>
<system>continuum</system>
<url>http://127.0.0.1:8080/continuum</url>
<notifiers>
<notifier>
<type>mail</type>
<sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure>
<sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning>
<configuration><address>continuum@127.0.0.1</address></configuration>
</notifier>
</notifiers>
</ciManagement>
<issueManagement>
<system>Github Issues</system>
<url>https://github.com/eitch/ch.eitchnet.utils/issues</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>User List</name>
<subscribe>user-subscribe@127.0.0.1</subscribe>
<unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
<post>user@127.0.0.1</post>
<archive>http://127.0.0.1/user/</archive>
<otherArchives>
<otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive>
</otherArchives>
</mailingList>
</mailingLists>
-->
<!-- <ciManagement> <system>continuum</system> <url>http://127.0.0.1:8080/continuum</url>
<notifiers> <notifier> <type>mail</type> <sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure> <sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning> <configuration><address>continuum@127.0.0.1</address></configuration>
</notifier> </notifiers> </ciManagement> <mailingLists> <mailingList> <name>User
List</name> <subscribe>user-subscribe@127.0.0.1</subscribe> <unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
<post>user@127.0.0.1</post> <archive>http://127.0.0.1/user/</archive> <otherArchives>
<otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive> </otherArchives>
</mailingList> </mailingLists> -->
<scm>
<connection>scm:git:https://github.com/eitch/ch.eitchnet.utils.git</connection>
<developerConnection>scm:git:git@github.com:eitch/ch.eitchnet.utils.git</developerConnection>
<url>https://github.com/eitch/ch.eitchnet.utils</url>
</scm>
<scm>
<connection>scm:git:https://github.com/eitch/ch.eitchnet.utils.git</connection>
<developerConnection>scm:git:git@github.com:eitch/ch.eitchnet.utils.git</developerConnection>
<url>https://github.com/eitch/ch.eitchnet.utils</url>
</scm>
<!--
<repositories>
<repository>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<id>codehausSnapshots</id>
<name>Codehaus Snapshots</name>
<url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
...
</pluginRepositories>
-->
<!-- <repositories> <repository> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>true</enabled>
<updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy>
</snapshots> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout> </repository> </repositories> <pluginRepositories>
... </pluginRepositories> -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadJavadocs>true</downloadJavadocs>
<downloadSources>true</downloadSources>
</configuration>
</plugin>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadJavadocs>true</downloadJavadocs>
<downloadSources>true</downloadSources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<!--mainClass>ch.eitchnet.App</mainClass -->
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<!--mainClass>ch.eitchnet.App</mainClass-->
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.3</version>
<configuration>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
</plugins>
</build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.3</version>
<configuration>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -47,13 +47,13 @@ public class RmiFileDeletion implements Serializable {
* @return the fileType
*/
public String getFileType() {
return fileType;
return this.fileType;
}
/**
* @return the fileName
*/
public String getFileName() {
return fileName;
return this.fileName;
}
}

View File

@ -80,7 +80,7 @@ public class RmiFileHandler {
validateFileType(fileType);
// evaluate the path where the file should reside
File file = new File(basePath + "/" + fileType, filePart.getFileName());
File file = new File(this.basePath + "/" + fileType, filePart.getFileName());
// now evaluate the file exists
if (!file.canRead()) {
@ -102,9 +102,9 @@ public class RmiFileHandler {
// variables defining the part of the file we're going to return
long requestOffset = filePart.getPartOffset();
int requestSize = filePart.getPartLength();
if (requestSize > MAX_PART_SIZE) {
if (requestSize > RmiFileHandler.MAX_PART_SIZE) {
throw new RuntimeException("The requested part size " + requestSize + " is greater than the allowed "
+ MAX_PART_SIZE);
+ RmiFileHandler.MAX_PART_SIZE);
}
// validate lengths and offsets
@ -125,7 +125,7 @@ public class RmiFileHandler {
long l = Math.min(requestSize, remaining);
// this is a fail safe
if (l > MAX_PART_SIZE)
if (l > RmiFileHandler.MAX_PART_SIZE)
throw new RuntimeException("Something went wrong. Min of requestSize and remaining is > MAX_PART_SIZE!");
// this is the size of the array we want to return
@ -163,7 +163,7 @@ public class RmiFileHandler {
try {
fin.close();
} catch (IOException e) {
logger.error("Error while closing FileInputStream: " + e.getLocalizedMessage());
RmiFileHandler.logger.error("Error while closing FileInputStream: " + e.getLocalizedMessage());
}
}
}
@ -190,7 +190,7 @@ public class RmiFileHandler {
validateFileType(fileType);
// evaluate the path where the file should reside
File dstFile = new File(basePath + "/" + fileType, filePart.getFileName());
File dstFile = new File(this.basePath + "/" + fileType, filePart.getFileName());
// if the file already exists, then this may not be a start part
if (filePart.getPartOffset() == 0 && dstFile.exists()) {
@ -231,7 +231,7 @@ public class RmiFileHandler {
validateFileType(fileType);
// evaluate the path where the file should reside
File fileToDelete = new File(basePath + "/" + fileType, fileDeletion.getFileName());
File fileToDelete = new File(this.basePath + "/" + fileType, fileDeletion.getFileName());
// delete the file
return FileHelper.deleteFiles(new File[] { fileToDelete }, true);

View File

@ -64,7 +64,7 @@ public class RmiFilePart implements Serializable {
* @return the fileLength
*/
public long getFileLength() {
return fileLength;
return this.fileLength;
}
/**
@ -79,7 +79,7 @@ public class RmiFilePart implements Serializable {
* @return the fileHash
*/
public String getFileHash() {
return fileHash;
return this.fileHash;
}
/**
@ -94,14 +94,14 @@ public class RmiFilePart implements Serializable {
* @return the fileType
*/
public String getFileType() {
return fileType;
return this.fileType;
}
/**
* @return the partOffset
*/
public long getPartOffset() {
return partOffset;
return this.partOffset;
}
/**
@ -116,7 +116,7 @@ public class RmiFilePart implements Serializable {
* @return the partLength
*/
public int getPartLength() {
return partLength;
return this.partLength;
}
/**
@ -131,7 +131,7 @@ public class RmiFilePart implements Serializable {
* @return the partBytes
*/
public byte[] getPartBytes() {
return partBytes;
return this.partBytes;
}
/**
@ -146,7 +146,7 @@ public class RmiFilePart implements Serializable {
* @return the lastPart
*/
public boolean isLastPart() {
return lastPart;
return this.lastPart;
}
/**
@ -161,6 +161,6 @@ public class RmiFilePart implements Serializable {
* @return the fileName
*/
public String getFileName() {
return fileName;
return this.fileName;
}
}

View File

@ -40,10 +40,10 @@ public class RmiHelper {
/**
* @param rmiFileClient
* @param filePart
* @param origFilePart
* @param dstFile
*/
public static void downloadFile(RMIFileClient rmiFileClient, RmiFilePart filePart, File dstFile) {
public static void downloadFile(RMIFileClient rmiFileClient, RmiFilePart origFilePart, File dstFile) {
// here we don't overwrite, the caller must make sure the destination file does not exist
if (dstFile.exists())
@ -51,56 +51,59 @@ public class RmiHelper {
+ " already exists. Delete it first, if you want to overwrite it!");
try {
RmiFilePart tmpPart = origFilePart;
int loops = 0;
int startLength = filePart.getPartLength();
int startLength = tmpPart.getPartLength();
while (true) {
loops += 1;
// get the next part
filePart = rmiFileClient.requestFile(filePart);
tmpPart = rmiFileClient.requestFile(tmpPart);
// validate length of data
if (filePart.getPartLength() != filePart.getPartBytes().length)
throw new RuntimeException("Invalid FilePart. Part length is not as long as the bytes passed "
+ filePart.getPartLength() + " / " + filePart.getPartBytes().length);
if (tmpPart.getPartLength() != tmpPart.getPartBytes().length)
throw new RuntimeException("Invalid tmpPart. Part length is not as long as the bytes passed "
+ tmpPart.getPartLength() + " / " + tmpPart.getPartBytes().length);
// validate offset is size of file
if (filePart.getPartOffset() != dstFile.length()) {
if (tmpPart.getPartOffset() != dstFile.length()) {
throw new RuntimeException("The part offset $offset is not at the end of the file "
+ filePart.getPartOffset() + " / " + dstFile.length());
+ tmpPart.getPartOffset() + " / " + dstFile.length());
}
// append the part
FileHelper.appendFilePart(dstFile, filePart.getPartBytes());
FileHelper.appendFilePart(dstFile, tmpPart.getPartBytes());
// update the offset
filePart.setPartOffset(filePart.getPartOffset() + filePart.getPartBytes().length);
tmpPart.setPartOffset(tmpPart.getPartOffset() + tmpPart.getPartBytes().length);
// break if the offset is past the length of the file
if (filePart.getPartOffset() >= filePart.getFileLength())
if (tmpPart.getPartOffset() >= tmpPart.getFileLength())
break;
}
logger.info(filePart.getFileType() + ": " + filePart.getFileName() + ": Requested " + loops
+ " parts. StartSize: " + startLength + " EndSize: " + filePart.getPartLength());
RmiHelper.logger.info(tmpPart.getFileType() + ": " + tmpPart.getFileName() + ": Requested " + loops
+ " parts. StartSize: " + startLength + " EndSize: " + tmpPart.getPartLength());
// validate that the offset is at the end of the file
if (filePart.getPartOffset() != filePart.getFileLength()) {
throw new RuntimeException("Offset " + filePart.getPartOffset() + " is not at file length "
+ filePart.getFileLength() + " after reading all the file parts!");
if (tmpPart.getPartOffset() != origFilePart.getFileLength()) {
throw new RuntimeException("Offset " + tmpPart.getPartOffset() + " is not at file length "
+ origFilePart.getFileLength() + " after reading all the file parts!");
}
// now validate hashes
String dstFileHash = StringHelper.getHexString(FileHelper.hashFileSha256(dstFile));
if (!dstFileHash.equals(filePart.getFileHash())) {
throw new RuntimeException("Downloading the file " + filePart.getFileName()
+ " failed because the hashes don't match. Expected: " + filePart.getFileHash() + " / Actual: "
+ dstFileHash);
if (!dstFileHash.equals(origFilePart.getFileHash())) {
throw new RuntimeException("Downloading the file " + origFilePart.getFileName()
+ " failed because the hashes don't match. Expected: " + origFilePart.getFileHash()
+ " / Actual: " + dstFileHash);
}
} catch (Exception e) {
if (e instanceof RuntimeException)
throw (RuntimeException) e;
throw new RuntimeException("Downloading the file " + filePart.getFileName()
throw new RuntimeException("Downloading the file " + origFilePart.getFileName()
+ " failed because of an underlying exception " + e.getLocalizedMessage());
}
}
@ -194,7 +197,7 @@ public class RmiHelper {
offset = nextOffset;
}
logger.info(filePart.getFileType() + ": " + filePart.getFileName() + ": Sent " + loops
RmiHelper.logger.info(filePart.getFileType() + ": " + filePart.getFileName() + ": Sent " + loops
+ " parts. StartSize: " + startLength + " EndSize: " + filePart.getPartLength());
} catch (Exception e) {
@ -207,7 +210,7 @@ public class RmiHelper {
try {
inputStream.close();
} catch (IOException e) {
logger.error("Exception while closing FileInputStream " + e.getLocalizedMessage());
RmiHelper.logger.error("Exception while closing FileInputStream " + e.getLocalizedMessage());
}
}
}

View File

@ -79,7 +79,7 @@ public class FileHelper {
try {
bufferedReader.close();
} catch (IOException e) {
logger.error("Failed to close BufferedReader: " + e.getLocalizedMessage());
FileHelper.logger.error("Failed to close BufferedReader: " + e.getLocalizedMessage());
}
}
}
@ -115,7 +115,7 @@ public class FileHelper {
* @return true if all went well, and false if it did not work. The log will contain the problems encountered
*/
public final static boolean deleteFile(File file, boolean log) {
return deleteFiles(new File[] { file }, log);
return FileHelper.deleteFiles(new File[] { file }, log);
}
/**
@ -132,28 +132,28 @@ public class FileHelper {
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isDirectory()) {
boolean done = deleteFiles(file.listFiles(), log);
boolean done = FileHelper.deleteFiles(file.listFiles(), log);
if (!done) {
worked = false;
logger.warn("Could not empty the directory: " + file.getAbsolutePath());
FileHelper.logger.warn("Could not empty the directory: " + file.getAbsolutePath());
} else {
done = file.delete();
if (done) {
if (log)
logger.info("Deleted DIR " + file.getAbsolutePath());
FileHelper.logger.info("Deleted DIR " + file.getAbsolutePath());
} else {
worked = false;
logger.warn("Could not delete the directory: " + file.getAbsolutePath());
FileHelper.logger.warn("Could not delete the directory: " + file.getAbsolutePath());
}
}
} else {
boolean done = file.delete();
if (done) {
if (log)
logger.info("Deleted FILE " + file.getAbsolutePath());
FileHelper.logger.info("Deleted FILE " + file.getAbsolutePath());
} else {
worked = false;
logger.warn(("Could not delete the file: " + file.getAbsolutePath()));
FileHelper.logger.warn(("Could not delete the file: " + file.getAbsolutePath()));
}
}
}
@ -195,7 +195,7 @@ public class FileHelper {
String fromFileMD5 = StringHelper.getHexString(FileHelper.hashFileMd5(fromFile));
String toFileMD5 = StringHelper.getHexString(FileHelper.hashFileMd5(toFile));
if (!fromFileMD5.equals(toFileMD5)) {
logger.error("Copying failed, as MD5 sums are not equal: " + fromFileMD5 + " / " + toFileMD5);
FileHelper.logger.error("Copying failed, as MD5 sums are not equal: " + fromFileMD5 + " / " + toFileMD5);
toFile.delete();
return false;
@ -204,7 +204,7 @@ public class FileHelper {
// cleanup if files are not the same length
if (fromFile.length() != toFile.length()) {
logger.error("Copying failed, as new files are not the same length: " + fromFile.length() + " / "
FileHelper.logger.error("Copying failed, as new files are not the same length: " + fromFile.length() + " / "
+ toFile.length());
toFile.delete();
@ -213,7 +213,7 @@ public class FileHelper {
} catch (Exception e) {
logger.error(e, e);
FileHelper.logger.error(e, e);
return false;
} finally {
@ -222,7 +222,7 @@ public class FileHelper {
try {
inBuffer.close();
} catch (IOException e) {
logger.error("Error closing BufferedInputStream" + e);
FileHelper.logger.error("Error closing BufferedInputStream" + e);
}
}
@ -230,7 +230,7 @@ public class FileHelper {
try {
outBuffer.close();
} catch (IOException e) {
logger.error("Error closing BufferedOutputStream" + e);
FileHelper.logger.error("Error closing BufferedOutputStream" + e);
}
}
}
@ -254,11 +254,11 @@ public class FileHelper {
return true;
}
logger.warn("Simple File.renameTo failed, trying copy/delete...");
FileHelper.logger.warn("Simple File.renameTo failed, trying copy/delete...");
// delete if copy was successful, otherwise move will fail
if (FileHelper.copy(fromFile, toFile, true)) {
logger.info("Deleting fromFile: " + fromFile.getAbsolutePath());
FileHelper.logger.info("Deleting fromFile: " + fromFile.getAbsolutePath());
return fromFile.delete();
}
@ -372,7 +372,7 @@ public class FileHelper {
* @return the humanized form of the files size
*/
public final static String humanizeFileSize(File file) {
return humanizeFileSize(file.length());
return FileHelper.humanizeFileSize(file.length());
}
/**
@ -407,7 +407,7 @@ public class FileHelper {
* @return the hash as a byte array
*/
public static byte[] hashFileMd5(File file) {
return hashFile(file, "MD5");
return FileHelper.hashFile(file, "MD5");
}
/**
@ -420,7 +420,7 @@ public class FileHelper {
* @return the hash as a byte array
*/
public static byte[] hashFileSha1(File file) {
return hashFile(file, "SHA-1");
return FileHelper.hashFile(file, "SHA-1");
}
/**
@ -433,7 +433,7 @@ public class FileHelper {
* @return the hash as a byte array
*/
public static byte[] hashFileSha256(File file) {
return hashFile(file, "SHA-256");
return FileHelper.hashFile(file, "SHA-256");
}
/**
@ -492,7 +492,7 @@ public class FileHelper {
try {
outputStream.close();
} catch (IOException e) {
logger.error("Exception while closing FileOutputStream " + e.getLocalizedMessage());
FileHelper.logger.error("Exception while closing FileOutputStream " + e.getLocalizedMessage());
}
}
}

View File

@ -63,9 +63,9 @@ public class Log4jConfigurator {
* Configures log4j with the default {@link ConsoleAppender}
*/
public static synchronized void configure() {
cleanupOldWatchdog();
Log4jConfigurator.cleanupOldWatchdog();
BasicConfigurator.resetConfiguration();
BasicConfigurator.configure(new ConsoleAppender(getDefaulLayout()));
BasicConfigurator.configure(new ConsoleAppender(Log4jConfigurator.getDefaulLayout()));
Logger.getRootLogger().setLevel(Level.INFO);
}
@ -119,13 +119,13 @@ public class Log4jConfigurator {
+ log4JPath.getAbsolutePath());
// now perform the loading
loadLog4jConfiguration(log4JPath);
Log4jConfigurator.loadLog4jConfiguration(log4JPath);
} catch (Exception e) {
Log4jConfigurator.configure();
logger.error(e, e);
logger.error("Log4j COULD NOT BE INITIALIZED. Please check the log4j configuration file exists at "
Log4jConfigurator.logger.error(e, e);
Log4jConfigurator.logger.error("Log4j COULD NOT BE INITIALIZED. Please check the log4j configuration file exists at "
+ log4JPath.getAbsolutePath());
}
@ -152,7 +152,7 @@ public class Log4jConfigurator {
throw new RuntimeException("log4jConfigPath may not be null!");
// first clean up any old watch dog in case of a programmatic re-load of the configuration
cleanupOldWatchdog();
Log4jConfigurator.cleanupOldWatchdog();
// get the root directory
String userDir = System.getProperty("user.dir");
@ -184,16 +184,16 @@ public class Log4jConfigurator {
// XXX if the server is in a web context, then we may not use the
// FileWatchDog
BasicConfigurator.resetConfiguration();
watchDog = new Log4jPropertyWatchDog(pathNameToLog4jTemp);
watchDog.start();
Log4jConfigurator.watchDog = new Log4jPropertyWatchDog(pathNameToLog4jTemp);
Log4jConfigurator.watchDog.start();
logger.info("Log4j is configured to use and watch file " + pathNameToLog4jTemp);
Log4jConfigurator.logger.info("Log4j is configured to use and watch file " + pathNameToLog4jTemp);
} catch (Exception e) {
Log4jConfigurator.configure();
logger.error(e, e);
logger.error("Log4j COULD NOT BE INITIALIZED. Please check the log4j configuration file at "
Log4jConfigurator.logger.error(e, e);
Log4jConfigurator.logger.error("Log4j COULD NOT BE INITIALIZED. Please check the log4j configuration file at "
+ log4jConfigPath);
} finally {
@ -201,14 +201,14 @@ public class Log4jConfigurator {
try {
fin.close();
} catch (IOException e) {
logger.error("Exception closing input file: " + e, e);
Log4jConfigurator.logger.error("Exception closing input file: " + e, e);
}
}
if (fout != null) {
try {
fout.close();
} catch (IOException e) {
logger.error("Exception closing output file: " + e, e);
Log4jConfigurator.logger.error("Exception closing output file: " + e, e);
}
}
}
@ -229,9 +229,9 @@ public class Log4jConfigurator {
if (clazz == null)
throw new RuntimeException("clazz may not be null!");
InputStream resourceAsStream = clazz.getResourceAsStream("/" + FILE_LOG4J);
InputStream resourceAsStream = clazz.getResourceAsStream("/" + Log4jConfigurator.FILE_LOG4J);
if (resourceAsStream == null) {
throw new RuntimeException("The resource '" + FILE_LOG4J + "' could not be found for class "
throw new RuntimeException("The resource '" + Log4jConfigurator.FILE_LOG4J + "' could not be found for class "
+ clazz.getName());
}
@ -240,13 +240,13 @@ public class Log4jConfigurator {
log4jProperties.load(resourceAsStream);
// and then
loadLog4jConfiguration(log4jProperties);
Log4jConfigurator.loadLog4jConfiguration(log4jProperties);
} catch (Exception e) {
Log4jConfigurator.configure();
logger.error(e, e);
logger.error("Log4j COULD NOT BE INITIALIZED. Please check that the log4j configuration file '"
+ FILE_LOG4J + "' exists as a resource for class " + clazz.getName()
Log4jConfigurator.logger.error(e, e);
Log4jConfigurator.logger.error("Log4j COULD NOT BE INITIALIZED. Please check that the log4j configuration file '"
+ Log4jConfigurator.FILE_LOG4J + "' exists as a resource for class " + clazz.getName()
+ " and is a valid properties configuration");
}
}
@ -272,19 +272,19 @@ public class Log4jConfigurator {
throw new RuntimeException("log4jProperties may not be null!");
// first clean up any old watch dog in case of a programmatic re-load of the configuration
cleanupOldWatchdog();
Log4jConfigurator.cleanupOldWatchdog();
// replace any variables
StringHelper.replaceProperties(log4jProperties, System.getProperties());
// now configure log4j
PropertyConfigurator.configure(log4jProperties);
logger.info("Log4j is configured using the given properties.");
Log4jConfigurator.logger.info("Log4j is configured using the given properties.");
} catch (Exception e) {
Log4jConfigurator.configure();
logger.error(e, e);
logger.error("Log4j COULD NOT BE INITIALIZED. The given log4jProperties seem not to be valid!");
Log4jConfigurator.logger.error(e, e);
Log4jConfigurator.logger.error("Log4j COULD NOT BE INITIALIZED. The given log4jProperties seem not to be valid!");
}
}
@ -293,17 +293,17 @@ public class Log4jConfigurator {
*/
public static synchronized void cleanupOldWatchdog() {
// clean up an old watch dog
if (watchDog != null) {
logger.info("Stopping old Log4j watchdog.");
watchDog.interrupt();
if (Log4jConfigurator.watchDog != null) {
Log4jConfigurator.logger.info("Stopping old Log4j watchdog.");
Log4jConfigurator.watchDog.interrupt();
try {
watchDog.join(1000l);
Log4jConfigurator.watchDog.join(1000l);
} catch (InterruptedException e) {
logger.error("Oops. Could not terminate an old WatchDog.");
Log4jConfigurator.logger.error("Oops. Could not terminate an old WatchDog.");
} finally {
watchDog = null;
Log4jConfigurator.watchDog = null;
}
logger.info("Done.");
Log4jConfigurator.logger.info("Done.");
}
}
}

View File

@ -44,7 +44,7 @@ public class Log4jPropertyWatchDog extends Thread {
/**
* The delay to observe between every check. By default set {@link #DEFAULT_DELAY}.
*/
protected long delay = DEFAULT_DELAY;
protected long delay = Log4jPropertyWatchDog.DEFAULT_DELAY;
protected File file;
protected long lastModif = 0;
@ -57,7 +57,7 @@ public class Log4jPropertyWatchDog extends Thread {
protected Log4jPropertyWatchDog(String filename) {
super("FileWatchdog");
this.filename = filename;
file = new File(filename);
this.file = new File(filename);
setDaemon(true);
checkAndConfigure();
}
@ -75,24 +75,24 @@ public class Log4jPropertyWatchDog extends Thread {
protected void checkAndConfigure() {
boolean fileExists;
try {
fileExists = file.exists();
fileExists = this.file.exists();
} catch (SecurityException e) {
LogLog.warn("Was not allowed to read check file existance, file:[" + filename + "].");
interrupted = true; // there is no point in continuing
LogLog.warn("Was not allowed to read check file existance, file:[" + this.filename + "].");
this.interrupted = true; // there is no point in continuing
return;
}
if (fileExists) {
long l = file.lastModified(); // this can also throw a SecurityException
if (l > lastModif) { // however, if we reached this point this
lastModif = l; // is very unlikely.
long l = this.file.lastModified(); // this can also throw a SecurityException
if (l > this.lastModif) { // however, if we reached this point this
this.lastModif = l; // is very unlikely.
doOnChange();
warnedAlready = false;
this.warnedAlready = false;
}
} else {
if (!warnedAlready) {
LogLog.debug("[" + filename + "] does not exist.");
warnedAlready = true;
if (!this.warnedAlready) {
LogLog.debug("[" + this.filename + "] does not exist.");
this.warnedAlready = true;
}
}
}
@ -102,7 +102,7 @@ public class Log4jPropertyWatchDog extends Thread {
*/
public void doOnChange() {
PropertyConfigurator propertyConfigurator = new PropertyConfigurator();
propertyConfigurator.doConfigure(filename, LogManager.getLoggerRepository());
propertyConfigurator.doConfigure(this.filename, LogManager.getLoggerRepository());
}
/**
@ -110,12 +110,12 @@ public class Log4jPropertyWatchDog extends Thread {
*/
@Override
public void run() {
while (!interrupted) {
while (!this.interrupted) {
try {
Thread.sleep(delay);
Thread.sleep(this.delay);
} catch (InterruptedException e) {
// no interruption expected
interrupted = true;
this.interrupted = true;
}
checkAndConfigure();
}

View File

@ -45,7 +45,7 @@ public class ProcessHelper {
Thread errorIn = new Thread("errorIn") {
@Override
public void run() {
readStream(sb, "[ERROR] ", errorStream);
ProcessHelper.readStream(sb, "[ERROR] ", errorStream);
}
};
errorIn.start();
@ -55,7 +55,7 @@ public class ProcessHelper {
Thread infoIn = new Thread("infoIn") {
@Override
public void run() {
readStream(sb, "[INFO] ", inputStream);
ProcessHelper.readStream(sb, "[INFO] ", inputStream);
}
};
infoIn.start();
@ -72,7 +72,7 @@ public class ProcessHelper {
throw new RuntimeException("Failed to perform command: "
+ e.getLocalizedMessage(), e);
} catch (InterruptedException e) {
logger.error("Interrupted!");
ProcessHelper.logger.error("Interrupted!");
sb.append("[FATAL] Interrupted");
return new ProcessResult(-1, sb.toString(), e);
}
@ -102,7 +102,7 @@ public class ProcessHelper {
Thread errorIn = new Thread("errorIn") {
@Override
public void run() {
readStream(sb, "[ERROR] ", errorStream);
ProcessHelper.readStream(sb, "[ERROR] ", errorStream);
}
};
errorIn.start();
@ -112,7 +112,7 @@ public class ProcessHelper {
Thread infoIn = new Thread("infoIn") {
@Override
public void run() {
readStream(sb, "[INFO] ", inputStream);
ProcessHelper.readStream(sb, "[INFO] ", inputStream);
}
};
infoIn.start();
@ -129,7 +129,7 @@ public class ProcessHelper {
throw new RuntimeException("Failed to perform command: "
+ e.getLocalizedMessage(), e);
} catch (InterruptedException e) {
logger.error("Interrupted!");
ProcessHelper.logger.error("Interrupted!");
sb.append("[FATAL] Interrupted");
return new ProcessResult(-1, sb.toString(), e);
}
@ -165,33 +165,33 @@ public class ProcessHelper {
ProcessResult processResult;
if (SystemHelper.isLinux()) {
processResult = runCommand("xdg-open " + pdfPath.getAbsolutePath());
processResult = ProcessHelper.runCommand("xdg-open " + pdfPath.getAbsolutePath());
} else if (SystemHelper.isMacOS()) {
processResult = runCommand("open " + pdfPath.getAbsolutePath());
processResult = ProcessHelper.runCommand("open " + pdfPath.getAbsolutePath());
} else if (SystemHelper.isWindows()) {
// remove the first char (/) from the report path (/D:/temp.....)
String pdfFile = pdfPath.getAbsolutePath();
if (pdfFile.charAt(0) == '/')
pdfFile = pdfFile.substring(1);
processResult = runCommand("rundll32 url.dll,FileProtocolHandler "
processResult = ProcessHelper.runCommand("rundll32 url.dll,FileProtocolHandler "
+ pdfFile);
} else {
throw new UnsupportedOperationException("Unexpected OS: "
+ SystemHelper.osName);
}
logProcessResult(processResult);
ProcessHelper.logProcessResult(processResult);
}
public static void logProcessResult(ProcessResult processResult) {
if (processResult.returnValue == 0) {
logger.info("Process executed successfully");
ProcessHelper.logger.info("Process executed successfully");
} else if (processResult.returnValue == -1) {
logger.error("Process execution failed:\n"
ProcessHelper.logger.error("Process execution failed:\n"
+ processResult.processOutput);
logger.error(processResult.t, processResult.t);
ProcessHelper.logger.error(processResult.t, processResult.t);
} else {
logger.info("Process execution was not successful with return value:"
ProcessHelper.logger.info("Process execution was not successful with return value:"
+ processResult.returnValue
+ "\n"
+ processResult.processOutput);

View File

@ -59,8 +59,8 @@ public class StringHelper {
for (byte b : raw) {
int v = b & 0xFF;
hex[index++] = HEX_CHAR_TABLE[v >>> 4];
hex[index++] = HEX_CHAR_TABLE[v & 0xF];
hex[index++] = StringHelper.HEX_CHAR_TABLE[v >>> 4];
hex[index++] = StringHelper.HEX_CHAR_TABLE[v & 0xF];
}
return new String(hex, "ASCII");
@ -103,7 +103,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashMd5(String string) {
return hashMd5(string.getBytes());
return StringHelper.hashMd5(string.getBytes());
}
/**
@ -116,7 +116,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashMd5(byte[] bytes) {
return hash("MD5", bytes);
return StringHelper.hash("MD5", bytes);
}
/**
@ -129,7 +129,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashSha1(String string) {
return hashSha1(string.getBytes());
return StringHelper.hashSha1(string.getBytes());
}
/**
@ -142,7 +142,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashSha1(byte[] bytes) {
return hash("SHA-1", bytes);
return StringHelper.hash("SHA-1", bytes);
}
/**
@ -155,7 +155,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashSha256(String string) {
return hashSha256(string.getBytes());
return StringHelper.hashSha256(string.getBytes());
}
/**
@ -168,7 +168,7 @@ public class StringHelper {
* @return the hash or null, if an exception was thrown
*/
public static byte[] hashSha256(byte[] bytes) {
return hash("SHA-256", bytes);
return StringHelper.hash("SHA-256", bytes);
}
/**
@ -209,7 +209,7 @@ public class StringHelper {
* @return the new string
*/
public static String normalizeLength(String value, int length, boolean beginning, char c) {
return normalizeLength(value, length, beginning, false, c);
return StringHelper.normalizeLength(value, length, beginning, false, c);
}
/**
@ -235,20 +235,21 @@ public class StringHelper {
if (value.length() < length) {
while (value.length() != length) {
String tmp = value;
while (tmp.length() != length) {
if (beginning) {
value = c + value;
tmp = c + tmp;
} else {
value = value + c;
tmp = tmp + c;
}
}
return value;
return tmp;
} else if (shorten) {
logger.warn("Shortening length of value: " + value);
logger.warn("Length is: " + value.length() + " max: " + length);
StringHelper.logger.warn("Shortening length of value: " + value);
StringHelper.logger.warn("Length is: " + value.length() + " max: " + length);
return value.substring(0, length);
}
@ -263,7 +264,7 @@ public class StringHelper {
* returned
*/
public static String replaceSystemPropertiesIn(String value) {
return replacePropertiesIn(System.getProperties(), value);
return StringHelper.replacePropertiesIn(System.getProperties(), value);
}
/**
@ -278,41 +279,41 @@ public class StringHelper {
*
* @return a new string with all defined properties replaced or if an error occurred the original value is returned
*/
public static String replacePropertiesIn(Properties properties, String value) {
public static String replacePropertiesIn(Properties properties, String alue) {
// keep copy of original value
String origValue = value;
// get a copy of the value
String tmpValue = alue;
// get first occurrence of $ character
int pos = -1;
int stop = 0;
// loop on $ character positions
while ((pos = value.indexOf('$', pos + 1)) != -1) {
while ((pos = tmpValue.indexOf('$', pos + 1)) != -1) {
// if pos+1 is not { character then continue
if (value.charAt(pos + 1) != '{') {
if (tmpValue.charAt(pos + 1) != '{') {
continue;
}
// find end of sequence with } character
stop = value.indexOf('}', pos + 1);
stop = tmpValue.indexOf('}', pos + 1);
// if no stop found, then break as another sequence should be able to start
if (stop == -1) {
logger.error("Sequence starts at offset " + pos + " but does not end!");
value = origValue;
StringHelper.logger.error("Sequence starts at offset " + pos + " but does not end!");
tmpValue = alue;
break;
}
// get sequence enclosed by pos and stop
String sequence = value.substring(pos + 2, stop);
String sequence = tmpValue.substring(pos + 2, stop);
// make sure sequence doesn't contain $ { } characters
if (sequence.contains("$") || sequence.contains("{") || sequence.contains("}")) {
logger.error("Enclosed sequence in offsets " + pos + " - " + stop
StringHelper.logger.error("Enclosed sequence in offsets " + pos + " - " + stop
+ " contains one of the illegal chars: $ { }: " + sequence);
value = origValue;
tmpValue = alue;
break;
}
@ -326,10 +327,10 @@ public class StringHelper {
}
// property exists, so replace in value
value = value.replace("${" + sequence + "}", property);
tmpValue = tmpValue.replace("${" + sequence + "}", property);
}
return value;
return tmpValue;
}
/**
@ -340,7 +341,7 @@ public class StringHelper {
* the properties in which the values must have any ${...} replaced by values of the respective key
*/
public static void replaceProperties(Properties properties) {
replaceProperties(properties, null);
StringHelper.replaceProperties(properties, null);
}
/**

View File

@ -34,7 +34,7 @@ public class SystemHelper {
}
public static SystemHelper getInstance() {
return instance;
return SystemHelper.instance;
}
public static final String osName = System.getProperty("os.name");
@ -55,7 +55,7 @@ public class SystemHelper {
*/
@Override
public String toString() {
return asString();
return SystemHelper.asString();
}
/**
@ -63,15 +63,15 @@ public class SystemHelper {
*/
public static String asString() {
StringBuilder sb = new StringBuilder();
sb.append(osName);
sb.append(SystemHelper.osName);
sb.append(" ");
sb.append(osArch);
sb.append(SystemHelper.osArch);
sb.append(" ");
sb.append(osVersion);
sb.append(SystemHelper.osVersion);
sb.append(" ");
sb.append("on Java " + javaVendor);
sb.append("on Java " + SystemHelper.javaVendor);
sb.append(" version ");
sb.append(javaVersion);
sb.append(SystemHelper.javaVersion);
return sb.toString();
}
@ -80,23 +80,23 @@ public class SystemHelper {
}
public static boolean isMacOS() {
return osName.startsWith("Mac");
return SystemHelper.osName.startsWith("Mac");
}
public static boolean isWindows() {
return osName.startsWith("Win");
return SystemHelper.osName.startsWith("Win");
}
public static boolean isLinux() {
return osName.startsWith("Lin");
return SystemHelper.osName.startsWith("Lin");
}
public static boolean is32bit() {
return osArch.equals("x86") || osArch.equals("i386") || osArch.equals("i686");
return SystemHelper.osArch.equals("x86") || SystemHelper.osArch.equals("i386") || SystemHelper.osArch.equals("i686");
}
public static boolean is64bit() {
return osArch.equals("x86_64") || osArch.equals("amd64");
return SystemHelper.osArch.equals("x86_64") || SystemHelper.osArch.equals("amd64");
}
public static String getMaxMemory() {
@ -112,7 +112,7 @@ public class SystemHelper {
}
public static String getMemorySummary() {
return "Memory available " + getMaxMemory() + " / Used: " + getUsedMemory() + " / Free:" + getFreeMemory();
return "Memory available " + SystemHelper.getMaxMemory() + " / Used: " + SystemHelper.getUsedMemory() + " / Free:" + SystemHelper.getFreeMemory();
}
/**
@ -150,7 +150,7 @@ public class SystemHelper {
* if the property is not set and def is null
*/
public static Boolean getPropertyBool(String context, String key, Boolean def) throws RuntimeException {
return Boolean.valueOf(getProperty(context, key, def == null ? null : def.toString()));
return Boolean.valueOf(SystemHelper.getProperty(context, key, def == null ? null : def.toString()));
}
/**
@ -163,7 +163,7 @@ public class SystemHelper {
* if the property is not set and def is null
*/
public static Integer getPropertyInt(String context, String key, Integer def) throws RuntimeException {
return Integer.valueOf(getProperty(context, key, def == null ? null : def.toString()));
return Integer.valueOf(SystemHelper.getProperty(context, key, def == null ? null : def.toString()));
}
/**
@ -176,6 +176,6 @@ public class SystemHelper {
* if the property is not set and def is null
*/
public static Double getPropertyDouble(String context, String key, Double def) throws RuntimeException {
return Double.valueOf(getProperty(context, key, def == null ? null : def.toString()));
return Double.valueOf(SystemHelper.getProperty(context, key, def == null ? null : def.toString()));
}
}

View File

@ -71,8 +71,8 @@ public class ObjectCache<T extends ITransactionObject> {
this.object = object;
this.operation = operation;
if (logger.isDebugEnabled()) {
logger.debug("Instanciated Cache: ID" + this.id + " / " + key + " OP: " + this.operation + " / "
if (ObjectCache.logger.isDebugEnabled()) {
ObjectCache.logger.debug("Instanciated Cache: ID" + this.id + " / " + key + " OP: " + this.operation + " / "
+ object.toString());
}
}
@ -83,8 +83,8 @@ public class ObjectCache<T extends ITransactionObject> {
* @param object
*/
public void setObject(T object) {
if (logger.isDebugEnabled()) {
logger.debug("Updating ID " + this.id + " to value " + object.toString());
if (ObjectCache.logger.isDebugEnabled()) {
ObjectCache.logger.debug("Updating ID " + this.id + " to value " + object.toString());
}
this.object = object;
}
@ -95,8 +95,8 @@ public class ObjectCache<T extends ITransactionObject> {
* @param newOperation
*/
public void setOperation(Operation newOperation) {
if (logger.isDebugEnabled()) {
logger.debug("Updating Operation of ID " + this.id + " from " + this.operation + " to " + newOperation);
if (ObjectCache.logger.isDebugEnabled()) {
ObjectCache.logger.debug("Updating Operation of ID " + this.id + " from " + this.operation + " to " + newOperation);
}
this.operation = newOperation;
}
@ -105,27 +105,27 @@ public class ObjectCache<T extends ITransactionObject> {
* @return the id
*/
public long getId() {
return id;
return this.id;
}
/**
* @return the key
*/
public String getKey() {
return key;
return this.key;
}
/**
* @return the object
*/
public T getObject() {
return object;
return this.object;
}
/**
* @return the operation
*/
public Operation getOperation() {
return operation;
return this.operation;
}
}

View File

@ -117,11 +117,11 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public void add(String key, T objectToAdd) {
if (logger.isDebugEnabled())
logger.debug("add object " + objectToAdd + " with key " + key);
if (ObjectFilter.logger.isDebugEnabled())
ObjectFilter.logger.debug("add object " + objectToAdd + " with key " + key);
// add the key to the set
keySet.add(key);
this.keySet.add(key);
// BEWARE: you fix a bug here, be sure to update BOTH tables on the logic.
long id = objectToAdd.getTransactionID();
@ -131,14 +131,14 @@ public class ObjectFilter<T extends ITransactionObject> {
id = dispenseID();
objectToAdd.setTransactionID(id);
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToAdd, Operation.ADD);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
ObjectCache<T> cached = cache.get(Long.valueOf(objectToAdd.getTransactionID()));
ObjectCache<T> cached = this.cache.get(Long.valueOf(objectToAdd.getTransactionID()));
if (cached == null) {
// The object got an ID during this run, but was not added to the cache.
// Hence, we add it now, with the current operation.
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToAdd, Operation.ADD);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
String existingKey = cached.getKey();
if (!existingKey.equals(key)) {
@ -197,11 +197,11 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public void update(String key, T objectToUpdate) {
if (logger.isDebugEnabled())
logger.debug("update object " + objectToUpdate + " with key " + key);
if (ObjectFilter.logger.isDebugEnabled())
ObjectFilter.logger.debug("update object " + objectToUpdate + " with key " + key);
// add the key to the keyset
keySet.add(key);
this.keySet.add(key);
// BEWARE: you fix a bug here, be sure to update BOTH tables on the logic.
long id = objectToUpdate.getTransactionID();
@ -209,14 +209,14 @@ public class ObjectFilter<T extends ITransactionObject> {
id = dispenseID();
objectToUpdate.setTransactionID(id);
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToUpdate, Operation.MODIFY);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
ObjectCache<T> cached = cache.get(Long.valueOf(objectToUpdate.getTransactionID()));
ObjectCache<T> cached = this.cache.get(Long.valueOf(objectToUpdate.getTransactionID()));
if (cached == null) {
// The object got an ID during this run, but was not added to this cache.
// Hence, we add it now, with the current operation.
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToUpdate, Operation.MODIFY);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
String existingKey = cached.getKey();
if (!existingKey.equals(key)) {
@ -275,25 +275,25 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public void remove(String key, T objectToRemove) {
if (logger.isDebugEnabled())
logger.debug("remove object " + objectToRemove + " with key " + key);
if (ObjectFilter.logger.isDebugEnabled())
ObjectFilter.logger.debug("remove object " + objectToRemove + " with key " + key);
// add the key to the keyset
keySet.add(key);
this.keySet.add(key);
// BEWARE: you fix a bug here, be sure to update BOTH tables on the logic.
long id = objectToRemove.getTransactionID();
if (id == ITransactionObject.UNSET) {
id = dispenseID();
objectToRemove.setTransactionID(id);
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToRemove, Operation.REMOVE);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
ObjectCache<T> cached = cache.get(Long.valueOf(id));
ObjectCache<T> cached = this.cache.get(Long.valueOf(id));
if (cached == null) {
// The object got an ID during this run, but was not added to this cache.
// Hence, we add it now, with the current operation.
ObjectCache<T> cacheObj = new ObjectCache<T>(key, objectToRemove, Operation.REMOVE);
cache.put(id, cacheObj);
this.cache.put(id, cacheObj);
} else {
String existingKey = cached.getKey();
if (!existingKey.equals(key)) {
@ -315,7 +315,7 @@ public class ObjectFilter<T extends ITransactionObject> {
case ADD:
// this is a case where we're removing the object from the cache, since we are
// removing it now and it was added previously.
cache.remove(Long.valueOf(id));
this.cache.remove(Long.valueOf(id));
break;
case MODIFY:
cached.setObject(objectToRemove);
@ -448,7 +448,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public List<T> getAdded(String key) {
List<T> addedObjects = new LinkedList<T>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.ADD && (objectCache.getKey().equals(key))) {
addedObjects.add(objectCache.getObject());
@ -468,7 +468,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public <V extends T> List<V> getAdded(Class<V> clazz, String key) {
List<V> addedObjects = new LinkedList<V>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.ADD && (objectCache.getKey().equals(key))) {
if (objectCache.getObject().getClass() == clazz) {
@ -490,7 +490,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public List<T> getUpdated(String key) {
List<T> updatedObjects = new LinkedList<T>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.MODIFY && (objectCache.getKey().equals(key))) {
updatedObjects.add(objectCache.getObject());
@ -508,7 +508,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public <V extends T> List<V> getUpdated(Class<V> clazz, String key) {
List<V> updatedObjects = new LinkedList<V>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.MODIFY && (objectCache.getKey().equals(key))) {
if (objectCache.getObject().getClass() == clazz) {
@ -530,7 +530,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public List<T> getRemoved(String key) {
List<T> removedObjects = new LinkedList<T>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.REMOVE && (objectCache.getKey().equals(key))) {
removedObjects.add(objectCache.getObject());
@ -548,7 +548,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public <V extends T> List<V> getRemoved(Class<V> clazz, String key) {
List<V> removedObjects = new LinkedList<V>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getOperation() == Operation.REMOVE && (objectCache.getKey().equals(key))) {
if (objectCache.getObject().getClass() == clazz) {
@ -571,7 +571,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public List<T> getAll(String key) {
List<T> allObjects = new LinkedList<T>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getKey().equals(key)) {
allObjects.add(objectCache.getObject());
@ -590,7 +590,7 @@ public class ObjectFilter<T extends ITransactionObject> {
*/
public List<ObjectCache<T>> getCache(String key) {
List<ObjectCache<T>> allCache = new LinkedList<ObjectCache<T>>();
Collection<ObjectCache<T>> allObjs = cache.values();
Collection<ObjectCache<T>> allObjs = this.cache.values();
for (ObjectCache<T> objectCache : allObjs) {
if (objectCache.getKey().equals(key)) {
allCache.add(objectCache);
@ -605,26 +605,26 @@ public class ObjectFilter<T extends ITransactionObject> {
* @return The set containing the keys of that have been added to the filter.
*/
public Set<String> keySet() {
return keySet;
return this.keySet;
}
/**
* Clear the cache.
*/
public void clearCache() {
cache.clear();
keySet.clear();
this.cache.clear();
this.keySet.clear();
}
/**
* @return get a unique transaction ID
*/
public synchronized long dispenseID() {
id++;
if (id == Long.MAX_VALUE) {
logger.error("Rolling IDs of objectFilter back to 1. Hope this is fine.");
id = 1;
ObjectFilter.id++;
if (ObjectFilter.id == Long.MAX_VALUE) {
ObjectFilter.logger.error("Rolling IDs of objectFilter back to 1. Hope this is fine.");
ObjectFilter.id = 1;
}
return id;
return ObjectFilter.id;
}
}