Browse Source

Added some additional logging at the INFO level. Fixed the default Log4J.properties file to only output INFO and above to the console.

master
Drew Short 11 years ago
parent
commit
17688dcb17
  1. 2
      buildWithoutTests.sh
  2. 1
      src/includes/log4j.properties
  3. 2
      src/includes/startCLI.sh
  4. 2
      src/includes/startGUI.sh
  5. 2
      src/main/java/com/sothr/imagetools/AppCLI.java
  6. 11
      src/main/scala/com/sothr/imagetools/Engine.scala
  7. 3
      src/main/scala/com/sothr/imagetools/image/Image.scala
  8. 21
      src/main/scala/com/sothr/imagetools/image/ImageService.scala

2
buildWithoutTests.sh

@ -0,0 +1,2 @@
#!/bin/bash
mvn -Dmaven.test.skip=true clean jfx:jar

1
src/includes/log4j.properties

@ -2,6 +2,7 @@ log4j.rootLogger=DEBUG, C, DL, IL, EL
# Console Output # Console Output
log4j.appender.C=org.apache.log4j.ConsoleAppender log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Threshold=INFO
log4j.appender.C.layout=org.apache.log4j.EnhancedPatternLayout log4j.appender.C.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %-5p [%c{3.}] - %m%n log4j.appender.C.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %-5p [%c{3.}] - %m%n

2
src/includes/startCLI.sh

@ -4,7 +4,7 @@ command=""
correct=false correct=false
while true; do while true; do
read -p "Please enter and commandline arguments you would like to include: " args read -p "Please enter and commandline arguments you would like to include: " args
command="-Xmx1.5G -cp ${project.name}-${project.version}-jfx.jar:lib/* com.sothr.imagetools.AppCLI $args"
command="-Xmx1500m -cp ${project.name}-${project.version}-jfx.jar:lib/* com.sothr.imagetools.AppCLI $args"
echo "Is \"$command\" accurate? (yes/no)" echo "Is \"$command\" accurate? (yes/no)"
select yn in "Yes" "No"; do select yn in "Yes" "No"; do
case $yn in case $yn in

2
src/includes/startGUI.sh

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
echo "Welcome to Image Tools version: ${project.version}" echo "Welcome to Image Tools version: ${project.version}"
command="-Xmx1.5G -jar ${project.name}-${project.version}-jfx.jar"
command="-Xmx1500m -jar ${project.name}-${project.version}-jfx.jar"
java $command java $command

2
src/main/java/com/sothr/imagetools/AppCLI.java

@ -27,7 +27,7 @@ class AppCLI {
CommandLine cmd = parser.parse(options, args); CommandLine cmd = parser.parse(options, args);
process(cmd); process(cmd);
} catch (Exception ex) { } catch (Exception ex) {
logger.error("Unhandled exception in AppCLI", ex);
logger.error("Unhandled exception in AppCLI",ex);
} }
} }

11
src/main/scala/com/sothr/imagetools/Engine.scala

@ -18,16 +18,21 @@ class Engine() extends Logging{
debug(s"Looking for images in directory: $directoryPath") debug(s"Looking for images in directory: $directoryPath")
val images:mutable.MutableList[Image] = new mutable.MutableList[Image]() val images:mutable.MutableList[Image] = new mutable.MutableList[Image]()
val directory:File = new File(directoryPath) val directory:File = new File(directoryPath)
var count = 0
if (directory.isDirectory) { if (directory.isDirectory) {
val files = directory.listFiles(imageFilter) val files = directory.listFiles(imageFilter)
debug(s"Found ${files.length} files that are images in directory: $directoryPath")
info(s"Found ${files.length} files that are images in directory: $directoryPath")
for (file <- files) { for (file <- files) {
count += 1
if (count % 25 == 0) info(s"Processed ${count}/${files.size}")
if (imageCache.isKeyInCache(file.getAbsolutePath)) { if (imageCache.isKeyInCache(file.getAbsolutePath)) {
images += imageCache.get(file.getAbsolutePath).getObjectValue.asInstanceOf[Image] images += imageCache.get(file.getAbsolutePath).getObjectValue.asInstanceOf[Image]
} else { } else {
val image = ImageService.getImage(file) val image = ImageService.getImage(file)
imageCache.put(new Element(file.getAbsolutePath, image))
images += image
if (image != null) {
imageCache.put(new Element(file.getAbsolutePath, image))
images += image
}
} }
} }
} else { } else {

3
src/main/scala/com/sothr/imagetools/image/Image.scala

@ -2,8 +2,9 @@ package com.sothr.imagetools.image
import com.sothr.imagetools.dto.ImageHashDTO import com.sothr.imagetools.dto.ImageHashDTO
import com.sothr.imagetools.hash.HashService import com.sothr.imagetools.hash.HashService
import grizzled.slf4j.Logging
class Image(val imagePath:String, val thumbnailPath:String, val imageSize:Tuple2[Int,Int], var hashes:ImageHashDTO = null) {
class Image(val imagePath:String, val thumbnailPath:String, val imageSize:Tuple2[Int,Int], var hashes:ImageHashDTO = null) extends Serializable with Logging{
var imageType:ImageType = ImageType.SingleFrameImage var imageType:ImageType = ImageType.SingleFrameImage

21
src/main/scala/com/sothr/imagetools/image/ImageService.scala

@ -7,17 +7,24 @@ import java.io.File
import com.sothr.imagetools.image.Image import com.sothr.imagetools.image.Image
import com.sothr.imagetools.hash.HashService import com.sothr.imagetools.hash.HashService
import javax.imageio.ImageIO import javax.imageio.ImageIO
import java.io.IOException
object ImageService extends Logging { object ImageService extends Logging {
def getImage(file:File):Image = { def getImage(file:File):Image = {
val thumbnailPath = getThumbnailPath(file)
val bufferedImage = ImageIO.read(file)
val hashes = HashService.getImageHashes(bufferedImage, file.getAbsolutePath)
val imageSize = { (bufferedImage.getWidth, bufferedImage.getHeight) }
val image = new Image(file.getAbsolutePath, thumbnailPath, imageSize, hashes)
debug(s"Created image: $image")
image
try {
val thumbnailPath = getThumbnailPath(file)
val bufferedImage = ImageIO.read(file)
val hashes = HashService.getImageHashes(bufferedImage, file.getAbsolutePath)
val imageSize = { (bufferedImage.getWidth, bufferedImage.getHeight) }
val image = new Image(file.getAbsolutePath, thumbnailPath, imageSize, hashes)
debug(s"Created image: $image")
return image
} catch {
case ioe:IOException => error(s"Error processing ${file.getAbsolutePath}", ioe)
case ex:Exception => error(s"Error processing ${file.getAbsolutePath}", ex)
}
null
} }
def getThumbnailPath(file:File):String = { def getThumbnailPath(file:File):String = {

Loading…
Cancel
Save