diff --git a/cleanLogs.sh b/cleanLogs.sh
deleted file mode 100755
index 354870c..0000000
--- a/cleanLogs.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-rm ImageTools.debug
-rm ImageTools.debug.*
-rm ImageTools.info
-rm ImageTools.info.*
-rm ImageTools.err
-rm ImageTools.err.*
diff --git a/LICENSE b/cli/LICENSE
similarity index 100%
rename from LICENSE
rename to cli/LICENSE
diff --git a/cli/README.md b/cli/README.md
new file mode 100644
index 0000000..6ad4487
--- /dev/null
+++ b/cli/README.md
@@ -0,0 +1,6 @@
+ImageTools v0.1.0-DEV
+==========
+http://imagetools.sothr.com
+----------
+
+Management application for image collections.
diff --git a/cli/pom.xml b/cli/pom.xml
new file mode 100644
index 0000000..ad9a611
--- /dev/null
+++ b/cli/pom.xml
@@ -0,0 +1,121 @@
+
+ 4.0.0
+
+
+ com.sothr.imagetools
+ Parent
+ 1.0.0
+ ../parent
+
+
+ com.sothr.imagetools
+ ImageTools-CLI
+ 0.1.0-DEV
+ jar
+
+ Image-Tools-CLI
+ The Command Line Interface for Image-Tools
+ http://imagetools.sothr.com
+
+ Sothr Software
+
+
+
+
+ com.sothr.imagetools
+ ImageTools-Engine
+
+
+ ch.qos.logback
+ logback-core
+
+
+ ch.qos.logback
+ logback-classic
+
+
+ ch.qos.logback
+ logback-access
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.clapper
+ grizzled-slf4j_${scala.binary.version}
+
+
+ org.scala-lang
+ scala-library
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+ package
+
+ jar
+
+
+
+
+ true
+ lib/
+ com.sothr.imagetools.AppCLI
+
+
+
+ ${project.build.directory}/release
+
+
+
+
+
+
+ maven-antrun-plugin
+ 1.4
+
+
+ prepare
+ process-resources
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+ package
+ package
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
diff --git a/src/includes/LICENSE b/cli/src/includes/LICENSE
similarity index 100%
rename from src/includes/LICENSE
rename to cli/src/includes/LICENSE
diff --git a/src/includes/README.md b/cli/src/includes/README.md
similarity index 100%
rename from src/includes/README.md
rename to cli/src/includes/README.md
diff --git a/src/includes/logback.xml b/cli/src/includes/logback.xml
similarity index 100%
rename from src/includes/logback.xml
rename to cli/src/includes/logback.xml
diff --git a/src/includes/startGUI.sh b/cli/src/includes/startCLI.sh
similarity index 100%
rename from src/includes/startGUI.sh
rename to cli/src/includes/startCLI.sh
diff --git a/src/main/java/com/sothr/imagetools/AppCLI.java b/cli/src/main/java/com/sothr/imagetools/AppCLI.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/AppCLI.java
rename to cli/src/main/java/com/sothr/imagetools/AppCLI.java
diff --git a/engine/LICENSE b/engine/LICENSE
new file mode 100644
index 0000000..0dcd862
--- /dev/null
+++ b/engine/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Drew Short
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/engine/README.md
similarity index 100%
rename from README.md
rename to engine/README.md
diff --git a/engine/pom.xml b/engine/pom.xml
new file mode 100644
index 0000000..37916ea
--- /dev/null
+++ b/engine/pom.xml
@@ -0,0 +1,208 @@
+
+ 4.0.0
+
+
+ com.sothr.imagetools
+ Parent
+ 1.0.0
+ ../parent
+
+
+ com.sothr.imagetools
+ ImageTools-Engine
+ 0.1.1-DEV
+ jar
+
+ Image-Tools-Engine
+ An image collection management utility
+ http://imagetools.sothr.com
+
+ Sothr Software
+
+
+
+
+ junit
+ junit
+ test
+
+
+ org.scalatest
+ scalatest_${scala.binary.version}
+ test
+
+
+ ch.qos.logback
+ logback-core
+
+
+ ch.qos.logback
+ logback-classic
+
+
+ ch.qos.logback
+ logback-access
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.clapper
+ grizzled-slf4j_${scala.binary.version}
+
+
+ org.scala-lang
+ scala-library
+
+
+ net.coobird
+ thumbnailator
+
+
+ com.typesafe
+ config
+
+
+ net.sourceforge.jtransforms
+ jtransforms
+
+
+ commons-cli
+ commons-cli
+
+
+ commons-codec
+ commons-codec
+
+
+ javax.transaction
+ jta
+
+
+ net.sf.ehcache
+ ehcache
+
+
+ com.typesafe.akka
+ akka-actor_${scala.binary.version}
+
+
+ com.typesafe.akka
+ akka-slf4j_${scala.binary.version}
+
+
+ com.h2database
+ h2
+
+
+ org.hibernate
+ hibernate-core
+
+
+ org.hibernate
+ hibernate-ehcache
+
+
+ net.sf.ehcache
+ ehcache-core
+
+
+ org.hibernate
+ hibernate-c3p0
+
+
+ org.commonjava.googlecode.markdown4j
+ markdown4j
+
+
+ com.jsuereth
+ scala-arm_${scala.binary.version}
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.7
+
+ false
+
+
+
+
+ org.scalatest
+ scalatest-maven-plugin
+ 1.0-RC2
+
+ ${project.build.directory}/surefire-reports
+ .
+ WDF TestSuite.txt
+ -Xmx128m
+
+
+
+ test
+
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+ package
+
+ jar
+
+
+
+
+ true
+ lib/
+
+
+
+ ${project.build.directory}/release
+
+
+
+
+
+
+
+ maven-antrun-plugin
+ 1.4
+
+
+ prepare
+ process-resources
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
diff --git a/sample/sample_01_large.jpg b/engine/sample/sample_01_large.jpg
similarity index 100%
rename from sample/sample_01_large.jpg
rename to engine/sample/sample_01_large.jpg
diff --git a/sample/sample_01_medium.jpg b/engine/sample/sample_01_medium.jpg
similarity index 100%
rename from sample/sample_01_medium.jpg
rename to engine/sample/sample_01_medium.jpg
diff --git a/sample/sample_01_small.jpg b/engine/sample/sample_01_small.jpg
similarity index 100%
rename from sample/sample_01_small.jpg
rename to engine/sample/sample_01_small.jpg
diff --git a/engine/src/includes/LICENSE b/engine/src/includes/LICENSE
new file mode 100644
index 0000000..0dcd862
--- /dev/null
+++ b/engine/src/includes/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Drew Short
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/main/java/com/sothr/imagetools/AppConfig.java b/engine/src/main/java/com/sothr/imagetools/AppConfig.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/AppConfig.java
rename to engine/src/main/java/com/sothr/imagetools/AppConfig.java
diff --git a/src/main/java/com/sothr/imagetools/errors/ImageToolsException.java b/engine/src/main/java/com/sothr/imagetools/errors/ImageToolsException.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/errors/ImageToolsException.java
rename to engine/src/main/java/com/sothr/imagetools/errors/ImageToolsException.java
diff --git a/src/main/java/com/sothr/imagetools/image/ImageType.java b/engine/src/main/java/com/sothr/imagetools/image/ImageType.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/image/ImageType.java
rename to engine/src/main/java/com/sothr/imagetools/image/ImageType.java
diff --git a/src/main/java/com/sothr/imagetools/util/ResourceLoader.java b/engine/src/main/java/com/sothr/imagetools/util/ResourceLoader.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/util/ResourceLoader.java
rename to engine/src/main/java/com/sothr/imagetools/util/ResourceLoader.java
diff --git a/src/main/resources/application.conf b/engine/src/main/resources/application.conf
similarity index 100%
rename from src/main/resources/application.conf
rename to engine/src/main/resources/application.conf
diff --git a/src/main/resources/documents/about.md b/engine/src/main/resources/documents/about.md
similarity index 100%
rename from src/main/resources/documents/about.md
rename to engine/src/main/resources/documents/about.md
diff --git a/src/main/resources/ehcache.xml b/engine/src/main/resources/ehcache.xml
similarity index 100%
rename from src/main/resources/ehcache.xml
rename to engine/src/main/resources/ehcache.xml
diff --git a/src/main/resources/hibernate.cfg.xml b/engine/src/main/resources/hibernate.cfg.xml
similarity index 100%
rename from src/main/resources/hibernate.cfg.xml
rename to engine/src/main/resources/hibernate.cfg.xml
diff --git a/src/main/resources/hibernate/Image.hbm.xml b/engine/src/main/resources/hibernate/Image.hbm.xml
similarity index 100%
rename from src/main/resources/hibernate/Image.hbm.xml
rename to engine/src/main/resources/hibernate/Image.hbm.xml
diff --git a/src/main/resources/hibernate/ImageHash.hbm.xml b/engine/src/main/resources/hibernate/ImageHash.hbm.xml
similarity index 100%
rename from src/main/resources/hibernate/ImageHash.hbm.xml
rename to engine/src/main/resources/hibernate/ImageHash.hbm.xml
diff --git a/src/main/resources/logback-minimum-config.xml b/engine/src/main/resources/logback-minimum-config.xml
similarity index 100%
rename from src/main/resources/logback-minimum-config.xml
rename to engine/src/main/resources/logback-minimum-config.xml
diff --git a/src/main/scala/com/sothr/imagetools/dao/HibernateUtil.scala b/engine/src/main/scala/com/sothr/imagetools/dao/HibernateUtil.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/dao/HibernateUtil.scala
rename to engine/src/main/scala/com/sothr/imagetools/dao/HibernateUtil.scala
diff --git a/src/main/scala/com/sothr/imagetools/dao/ImageDAO.scala b/engine/src/main/scala/com/sothr/imagetools/dao/ImageDAO.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/dao/ImageDAO.scala
rename to engine/src/main/scala/com/sothr/imagetools/dao/ImageDAO.scala
diff --git a/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala b/engine/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
rename to engine/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
diff --git a/src/main/scala/com/sothr/imagetools/engine/ConcurrentEngine.scala b/engine/src/main/scala/com/sothr/imagetools/engine/ConcurrentEngine.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/engine/ConcurrentEngine.scala
rename to engine/src/main/scala/com/sothr/imagetools/engine/ConcurrentEngine.scala
diff --git a/src/main/scala/com/sothr/imagetools/engine/Engine.scala b/engine/src/main/scala/com/sothr/imagetools/engine/Engine.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/engine/Engine.scala
rename to engine/src/main/scala/com/sothr/imagetools/engine/Engine.scala
diff --git a/src/main/scala/com/sothr/imagetools/engine/SequentialEngine.scala b/engine/src/main/scala/com/sothr/imagetools/engine/SequentialEngine.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/engine/SequentialEngine.scala
rename to engine/src/main/scala/com/sothr/imagetools/engine/SequentialEngine.scala
diff --git a/src/main/scala/com/sothr/imagetools/hash/AHash.scala b/engine/src/main/scala/com/sothr/imagetools/hash/AHash.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/hash/AHash.scala
rename to engine/src/main/scala/com/sothr/imagetools/hash/AHash.scala
diff --git a/src/main/scala/com/sothr/imagetools/hash/DHash.scala b/engine/src/main/scala/com/sothr/imagetools/hash/DHash.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/hash/DHash.scala
rename to engine/src/main/scala/com/sothr/imagetools/hash/DHash.scala
diff --git a/src/main/scala/com/sothr/imagetools/hash/HashService.scala b/engine/src/main/scala/com/sothr/imagetools/hash/HashService.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/hash/HashService.scala
rename to engine/src/main/scala/com/sothr/imagetools/hash/HashService.scala
diff --git a/src/main/scala/com/sothr/imagetools/hash/PHash.scala b/engine/src/main/scala/com/sothr/imagetools/hash/PHash.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/hash/PHash.scala
rename to engine/src/main/scala/com/sothr/imagetools/hash/PHash.scala
diff --git a/src/main/scala/com/sothr/imagetools/hash/PerceptualHasher.scala b/engine/src/main/scala/com/sothr/imagetools/hash/PerceptualHasher.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/hash/PerceptualHasher.scala
rename to engine/src/main/scala/com/sothr/imagetools/hash/PerceptualHasher.scala
diff --git a/src/main/scala/com/sothr/imagetools/image/Image.scala b/engine/src/main/scala/com/sothr/imagetools/image/Image.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/image/Image.scala
rename to engine/src/main/scala/com/sothr/imagetools/image/Image.scala
diff --git a/src/main/scala/com/sothr/imagetools/image/ImageFilter.scala b/engine/src/main/scala/com/sothr/imagetools/image/ImageFilter.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/image/ImageFilter.scala
rename to engine/src/main/scala/com/sothr/imagetools/image/ImageFilter.scala
diff --git a/src/main/scala/com/sothr/imagetools/image/ImageService.scala b/engine/src/main/scala/com/sothr/imagetools/image/ImageService.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/image/ImageService.scala
rename to engine/src/main/scala/com/sothr/imagetools/image/ImageService.scala
diff --git a/src/main/scala/com/sothr/imagetools/image/SimilarImages.scala b/engine/src/main/scala/com/sothr/imagetools/image/SimilarImages.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/image/SimilarImages.scala
rename to engine/src/main/scala/com/sothr/imagetools/image/SimilarImages.scala
diff --git a/src/main/scala/com/sothr/imagetools/ui/component/ImageTile.scala b/engine/src/main/scala/com/sothr/imagetools/ui/component/ImageTile.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/ui/component/ImageTile.scala
rename to engine/src/main/scala/com/sothr/imagetools/ui/component/ImageTile.scala
diff --git a/src/main/scala/com/sothr/imagetools/ui/component/ImageTileFactory.scala b/engine/src/main/scala/com/sothr/imagetools/ui/component/ImageTileFactory.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/ui/component/ImageTileFactory.scala
rename to engine/src/main/scala/com/sothr/imagetools/ui/component/ImageTileFactory.scala
diff --git a/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala b/engine/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala
rename to engine/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/DirectoryFilter.scala b/engine/src/main/scala/com/sothr/imagetools/util/DirectoryFilter.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/DirectoryFilter.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/DirectoryFilter.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/Hamming.scala b/engine/src/main/scala/com/sothr/imagetools/util/Hamming.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/Hamming.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/Hamming.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/PropertiesService.scala b/engine/src/main/scala/com/sothr/imagetools/util/PropertiesService.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/PropertiesService.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/PropertiesService.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/PropertyEnum.scala b/engine/src/main/scala/com/sothr/imagetools/util/PropertyEnum.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/PropertyEnum.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/PropertyEnum.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/Timing.scala b/engine/src/main/scala/com/sothr/imagetools/util/Timing.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/Timing.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/Timing.scala
diff --git a/src/main/scala/com/sothr/imagetools/util/Version.scala b/engine/src/main/scala/com/sothr/imagetools/util/Version.scala
similarity index 100%
rename from src/main/scala/com/sothr/imagetools/util/Version.scala
rename to engine/src/main/scala/com/sothr/imagetools/util/Version.scala
diff --git a/src/test/java/com/sothr/imagetools/AppTest.java b/engine/src/test/java/com/sothr/imagetools/AppTest.java
similarity index 100%
rename from src/test/java/com/sothr/imagetools/AppTest.java
rename to engine/src/test/java/com/sothr/imagetools/AppTest.java
diff --git a/src/test/resources/application.conf b/engine/src/test/resources/application.conf
similarity index 100%
rename from src/test/resources/application.conf
rename to engine/src/test/resources/application.conf
diff --git a/src/test/resources/ehcache.xml b/engine/src/test/resources/ehcache.xml
similarity index 100%
rename from src/test/resources/ehcache.xml
rename to engine/src/test/resources/ehcache.xml
diff --git a/src/test/resources/hibernate.cfg.xml b/engine/src/test/resources/hibernate.cfg.xml
similarity index 100%
rename from src/test/resources/hibernate.cfg.xml
rename to engine/src/test/resources/hibernate.cfg.xml
diff --git a/src/test/resources/hibernate/Image.hbm.xml b/engine/src/test/resources/hibernate/Image.hbm.xml
similarity index 100%
rename from src/test/resources/hibernate/Image.hbm.xml
rename to engine/src/test/resources/hibernate/Image.hbm.xml
diff --git a/src/test/resources/hibernate/ImageHash.hbm.xml b/engine/src/test/resources/hibernate/ImageHash.hbm.xml
similarity index 100%
rename from src/test/resources/hibernate/ImageHash.hbm.xml
rename to engine/src/test/resources/hibernate/ImageHash.hbm.xml
diff --git a/src/test/resources/logback-minimum-config.xml b/engine/src/test/resources/logback-minimum-config.xml
similarity index 100%
rename from src/test/resources/logback-minimum-config.xml
rename to engine/src/test/resources/logback-minimum-config.xml
diff --git a/src/test/scala/com/sothr/imagetools/BaseTest.scala b/engine/src/test/scala/com/sothr/imagetools/BaseTest.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/BaseTest.scala
rename to engine/src/test/scala/com/sothr/imagetools/BaseTest.scala
diff --git a/src/test/scala/com/sothr/imagetools/EngineTest.scala b/engine/src/test/scala/com/sothr/imagetools/EngineTest.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/EngineTest.scala
rename to engine/src/test/scala/com/sothr/imagetools/EngineTest.scala
diff --git a/src/test/scala/com/sothr/imagetools/ScalaAppTest.scala b/engine/src/test/scala/com/sothr/imagetools/ScalaAppTest.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/ScalaAppTest.scala
rename to engine/src/test/scala/com/sothr/imagetools/ScalaAppTest.scala
diff --git a/src/test/scala/com/sothr/imagetools/TestParams.scala b/engine/src/test/scala/com/sothr/imagetools/TestParams.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/TestParams.scala
rename to engine/src/test/scala/com/sothr/imagetools/TestParams.scala
diff --git a/src/test/scala/com/sothr/imagetools/hash/HashServiceTest.scala b/engine/src/test/scala/com/sothr/imagetools/hash/HashServiceTest.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/hash/HashServiceTest.scala
rename to engine/src/test/scala/com/sothr/imagetools/hash/HashServiceTest.scala
diff --git a/src/test/scala/com/sothr/imagetools/image/ImageFilterTest.scala b/engine/src/test/scala/com/sothr/imagetools/image/ImageFilterTest.scala
similarity index 100%
rename from src/test/scala/com/sothr/imagetools/image/ImageFilterTest.scala
rename to engine/src/test/scala/com/sothr/imagetools/image/ImageFilterTest.scala
diff --git a/todo b/engine/todo
similarity index 100%
rename from todo
rename to engine/todo
diff --git a/gui/LICENSE b/gui/LICENSE
new file mode 100644
index 0000000..0dcd862
--- /dev/null
+++ b/gui/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Drew Short
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/gui/README.md b/gui/README.md
new file mode 100644
index 0000000..6ad4487
--- /dev/null
+++ b/gui/README.md
@@ -0,0 +1,6 @@
+ImageTools v0.1.0-DEV
+==========
+http://imagetools.sothr.com
+----------
+
+Management application for image collections.
diff --git a/gui/pom.xml b/gui/pom.xml
new file mode 100644
index 0000000..37aaa81
--- /dev/null
+++ b/gui/pom.xml
@@ -0,0 +1,125 @@
+
+ 4.0.0
+
+
+ com.sothr.imagetools
+ Parent
+ 1.0.0
+ ../parent
+
+
+ com.sothr.imagetools
+ ImageTools-GUI
+ 0.1.0-DEV
+ jar
+
+ Image-Tools-GUI
+ The Graphical User Interface for Image-Tools
+ http://imagetools.sothr.com
+
+ Sothr Software
+
+
+
+
+ com.sothr.imagetools
+ ImageTools-Engine
+
+
+ ch.qos.logback
+ logback-core
+
+
+ ch.qos.logback
+ logback-classic
+
+
+ ch.qos.logback
+ logback-access
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.clapper
+ grizzled-slf4j_${scala.binary.version}
+
+
+ org.scala-lang
+ scala-library
+
+
+ org.commonjava.googlecode.markdown4j
+ markdown4j
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+ package
+
+ jar
+
+
+
+
+ true
+ lib/
+ com.sothr.imagetools.App
+
+
+
+ ${project.build.directory}/release
+
+
+
+
+
+
+ maven-antrun-plugin
+ 1.4
+
+
+ prepare
+ process-resources
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+ package
+ package
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
diff --git a/gui/src/includes/LICENSE b/gui/src/includes/LICENSE
new file mode 100644
index 0000000..0dcd862
--- /dev/null
+++ b/gui/src/includes/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Drew Short
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/gui/src/includes/README.md b/gui/src/includes/README.md
new file mode 100644
index 0000000..79077b6
--- /dev/null
+++ b/gui/src/includes/README.md
@@ -0,0 +1,6 @@
+ImageTools v${project.version}
+==========
+${project.url}
+----------
+
+Management application for image collections.
diff --git a/gui/src/includes/logback.xml b/gui/src/includes/logback.xml
new file mode 100644
index 0000000..4d0b07f
--- /dev/null
+++ b/gui/src/includes/logback.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ false
+ [%date{HH:mm:ss}] %-5level [%c{16}] - %message%n
+
+
+ INFO
+
+
+
+
+ ImageTools.debug
+
+ false
+ [%date{yy-MM-dd HH:mm:ss}] %-5level [%c{16}] - %message%n
+
+
+ DEBUG
+
+
+ 1
+ ImageTools.debug.%i
+
+
+ 5MB
+
+
+
+
+ ImageTools.info
+
+ false
+ [%date{yy-MM-dd HH:mm:ss}] %-5level [%c{16}] - %message%n
+
+
+ INFO
+
+
+ 1
+ ImageTools.info.%i
+
+
+ 500KB
+
+
+
+
+ ImageTools.err
+
+ false
+ [%.16thread] [%date{yy-MM-dd HH:mm:ss}] %-5level [%c{16}] - %message%n
+
+
+ ERROR
+
+
+ 1
+ ImageTools.err.%i
+
+
+ 500KB
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/gui/src/includes/startGUI.sh b/gui/src/includes/startGUI.sh
new file mode 100755
index 0000000..c3ec40b
--- /dev/null
+++ b/gui/src/includes/startGUI.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+echo "Welcome to Image Tools version: ${project.version}"
+command="-Xmx1500m -jar ${project.name}-${project.version}.jar"
+java $command
diff --git a/src/main/java/com/sothr/imagetools/App.java b/gui/src/main/java/com/sothr/imagetools/App.java
similarity index 100%
rename from src/main/java/com/sothr/imagetools/App.java
rename to gui/src/main/java/com/sothr/imagetools/App.java
diff --git a/src/main/resources/fxml/mainapp/MainApp.fxml b/gui/src/main/resources/fxml/mainapp/MainApp.fxml
similarity index 100%
rename from src/main/resources/fxml/mainapp/MainApp.fxml
rename to gui/src/main/resources/fxml/mainapp/MainApp.fxml
diff --git a/src/main/resources/test.jpg b/gui/src/main/resources/test.jpg
similarity index 100%
rename from src/main/resources/test.jpg
rename to gui/src/main/resources/test.jpg
diff --git a/parent/pom.xml b/parent/pom.xml
new file mode 100644
index 0000000..5e0eafb
--- /dev/null
+++ b/parent/pom.xml
@@ -0,0 +1,375 @@
+
+ 4.0.0
+
+ com.sothr.imagetools
+ Parent
+ 1.0.0
+
+ pom
+ Image-Tools-Parent
+
+
+
+ sonatype-releases
+ http://oss.sonatype.org/content/repositories/releases
+
+
+ clojars.org
+ http://clojars.org/repo
+
+
+
+
+ 0.1.1-DEV
+ UTF-8
+ 1.8
+ 2.11
+ 2.11.2
+ 4.11
+ 2.2.1
+ 1.1.2
+ 1.7.7
+ 1.0.2
+ 2.3.5
+ 1.1
+ 2.8.0
+ 1.2
+ 1.9
+ 2.4.0
+ 1.2.0
+ [0.4, 0.5)
+ 1.3.175
+ 4.3.0.Final
+ 2.6.6
+ 2.2-cj-1.0
+ 1.4
+
+
+
+
+
+ com.sothr.imagetools
+ ImageTools-Engine
+ ${imagetools.engine.version}
+
+
+ junit
+ junit
+ ${lib.junit.version}
+ test
+
+
+ org.scalatest
+ scalatest_${scala.binary.version}
+ ${lib.scalatest.version}
+ test
+
+
+ ch.qos.logback
+ logback-core
+ ${lib.logback.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${lib.logback.version}
+
+
+ ch.qos.logback
+ logback-access
+ ${lib.logback.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${lib.slf4j.version}
+
+
+ org.clapper
+ grizzled-slf4j_${scala.binary.version}
+ ${lib.grizzled-slf4j.version}
+
+
+ org.scala-lang
+ scala-library
+ ${lib.scala-library.version}
+
+
+ net.coobird
+ thumbnailator
+ ${lib.thumbnailator.version}
+
+
+ com.typesafe
+ config
+ ${lib.typesafe-config.version}
+
+
+ net.sourceforge.jtransforms
+ jtransforms
+ ${lib.jtransforms.version}
+
+
+ commons-cli
+ commons-cli
+ ${lib.commons-cli.version}
+
+
+ commons-codec
+ commons-codec
+ ${lib.commons-codec.version}
+
+
+ javax.transaction
+ jta
+ ${lib.jta.version}
+
+
+ net.sf.ehcache
+ ehcache
+ ${lib.ehcache.version}
+
+
+ com.typesafe.akka
+ akka-actor_2.11
+ ${lib.akka.version}
+
+
+ com.typesafe.akka
+ akka-slf4j_${scala.binary.version}
+ ${lib.akka.version}
+
+
+ com.h2database
+ h2
+ ${lib.h2database.version}
+
+
+ org.hibernate
+ hibernate-core
+ ${lib.hibernate.version}
+
+
+ org.hibernate
+ hibernate-ehcache
+ ${lib.hibernate.version}
+
+
+ net.sf.ehcache
+ ehcache-core
+ ${lib.hibernate.ehcache.version}
+
+
+ org.hibernate
+ hibernate-c3p0
+ ${lib.hibernate.version}
+
+
+ org.commonjava.googlecode.markdown4j
+ markdown4j
+ ${lib.markdown4j.version}
+
+
+ com.jsuereth
+ scala-arm_${scala.binary.version}
+ ${lib.scala-arm.version}
+
+
+
+
+
+
+ src/main/resources
+ true
+
+ **/*.conf
+ **/*.properties
+ **/*.info
+ **/*.md
+
+
+
+ src/main/resources
+ false
+
+ **/*.conf
+ **/*.properties
+ **/*.info
+ **/*.md
+
+
+
+
+
+ src/test/resources
+ true
+
+ **/*.conf
+ **/*.properties
+ **/*.info
+ **/*.md
+
+
+
+ src/test/resources
+ false
+
+ **/*.conf
+ **/*.properties
+ **/*.info
+ **/*.md
+
+
+
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+ 3.1.6
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.6
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.7
+
+ true
+
+
+
+
+ com.code54.mojo
+ buildversion-plugin
+ 1.0.3
+
+
+
+ set-properties
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ ${jdk.version}
+
+
+
+ compile
+
+ compile
+
+
+
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+
+
+ scala-compile-first
+ process-resources
+
+ add-source
+ compile
+
+
+
+ scala-test-compile
+ process-test-resources
+
+ testCompile
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 2.6
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+ runtime
+
+ ${project.build.directory}/release/lib
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.6
+
+
+ copy-resources
+ initialize
+
+ copy-resources
+
+
+ ${project.build.directory}
+
+
+ src/includes
+ true
+
+
+
+
+
+ copy-resources-package
+ package
+
+ copy-resources
+
+
+ ${project.build.directory}/release
+
+
+ src/includes
+ true
+
+ version.info
+ name.info
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 792541b..f8ec85a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.sothr.imagetools
Image-Tools
0.1.1-DEV
- jar
+ pom
Image-Tools
An image collection management utility
@@ -14,449 +14,12 @@
Sothr Software
-
-
- sonatype-releases
- http://oss.sonatype.org/content/repositories/releases
-
-
- clojars.org
- http://clojars.org/repo
-
-
+
+ parent
+ engine
+ cli
+
+ gui
+
-
- UTF-8
- 1.8
- 2.11
- 2.11.2
- 4.11
- 2.2.1
- 1.1.2
- 1.7.7
- 1.0.2
- 2.3.5
- 1.1
- 2.8.0
- 1.2
- 1.9
- 2.4.0
- 1.2.0
- [0.4, 0.5)
- 1.3.175
- 4.3.0.Final
- 2.6.6
- 2.2-cj-1.0
- 1.4
-
-
-
-
- junit
- junit
- ${lib.junit.version}
- test
-
-
- org.scalatest
- scalatest_${scala.binary.version}
- ${lib.scalatest.version}
- test
-
-
- ch.qos.logback
- logback-core
- ${lib.logback.version}
-
-
- ch.qos.logback
- logback-classic
- ${lib.logback.version}
-
-
- ch.qos.logback
- logback-access
- ${lib.logback.version}
-
-
- org.slf4j
- slf4j-api
- ${lib.slf4j.version}
-
-
- org.clapper
- grizzled-slf4j_${scala.binary.version}
- ${lib.grizzled-slf4j.version}
-
-
- org.scala-lang
- scala-library
- ${lib.scala-library.version}
-
-
- net.coobird
- thumbnailator
- ${lib.thumbnailator.version}
-
-
- com.typesafe
- config
- ${lib.typesafe-config.version}
-
-
- net.sourceforge.jtransforms
- jtransforms
- ${lib.jtransforms.version}
-
-
- commons-cli
- commons-cli
- ${lib.commons-cli.version}
-
-
- commons-codec
- commons-codec
- ${lib.commons-codec.version}
-
-
- javax.transaction
- jta
- ${lib.jta.version}
-
-
- net.sf.ehcache
- ehcache
- ${lib.ehcache.version}
-
-
- com.typesafe.akka
- akka-actor_2.11
- ${lib.akka.version}
-
-
- com.typesafe.akka
- akka-slf4j_${scala.binary.version}
- ${lib.akka.version}
-
-
- com.h2database
- h2
- ${lib.h2database.version}
-
-
- org.hibernate
- hibernate-core
- ${lib.hibernate.version}
-
-
- org.hibernate
- hibernate-ehcache
- ${lib.hibernate.version}
-
-
- net.sf.ehcache
- ehcache-core
- ${lib.hibernate.ehcache.version}
-
-
- org.hibernate
- hibernate-c3p0
- ${lib.hibernate.version}
-
-
- org.commonjava.googlecode.markdown4j
- markdown4j
- ${lib.markdown4j.version}
-
-
- com.jsuereth
- scala-arm_${scala.binary.version}
- ${lib.scala-arm.version}
-
-
-
-
-
-
- src/main/resources
- true
-
- **/*.conf
- **/*.properties
- **/*.info
- **/*.md
-
-
-
- src/main/resources
- false
-
- **/*.conf
- **/*.properties
- **/*.info
- **/*.md
-
-
-
-
-
- src/test/resources
- true
-
- **/*.conf
- **/*.properties
- **/*.info
- **/*.md
-
-
-
- src/test/resources
- false
-
- **/*.conf
- **/*.properties
- **/*.info
- **/*.md
-
-
-
-
-
-
- net.alchim31.maven
- scala-maven-plugin
- 3.1.6
-
-
- org.apache.maven.plugins
- maven-resources-plugin
- 2.6
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.7
-
- false
-
-
-
-
- org.scalatest
- scalatest-maven-plugin
- 1.0-RC2
-
- ${project.build.directory}/surefire-reports
- .
- WDF TestSuite.txt
- -Xmx128m
-
-
-
- test
-
- test
-
-
-
-
-
-
- com.code54.mojo
- buildversion-plugin
- 1.0.3
-
-
-
- set-properties
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
-
- ${jdk.version}
-
-
-
- compile
-
- compile
-
-
-
-
-
-
- net.alchim31.maven
- scala-maven-plugin
-
-
- scala-compile-first
- process-resources
-
- add-source
- compile
-
-
-
- scala-test-compile
- process-test-resources
-
- testCompile
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- 2.6
-
-
- copy-dependencies
- package
-
- copy-dependencies
-
-
- runtime
-
- ${project.build.directory}/release/lib
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-resources-plugin
- 2.6
-
-
- copy-resources
- initialize
-
- copy-resources
-
-
- ${project.build.directory}
-
-
- src/includes
- true
-
-
-
-
-
- copy-resources-package
- package
-
- copy-resources
-
-
- ${project.build.directory}/release
-
-
- src/includes
- true
-
- version.info
- name.info
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.4
-
-
- package
-
- jar
-
-
-
-
- true
- lib/
- com.sothr.imagetools.App
-
-
-
- ${project.build.directory}/release
-
-
-
-
-
-
-
- maven-antrun-plugin
- 1.4
-
-
- prepare
- process-resources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- run
-
-
-
- package
- package
-
-
-
-
-
-
-
-
- run
-
-
-
-
-
-
diff --git a/src/includes/name.info b/src/includes/name.info
deleted file mode 100644
index b290e78..0000000
--- a/src/includes/name.info
+++ /dev/null
@@ -1 +0,0 @@
-${project.name}
diff --git a/src/includes/startCLI.sh b/src/includes/startCLI.sh
deleted file mode 100755
index 50c53dc..0000000
--- a/src/includes/startCLI.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-echo "Welcome to Image Tools version: ${project.version}"
-args=""
-while (( "$#" )); do
- args="$args $1"
- shift
-done
-command="-Xmx1500m -cp ${project.name}-${project.version}.jar:lib/* com.sothr.imagetools.AppCLI"
-correct=false
-#Check for existing commands and use them instead of asking if possible
-if [[ -z "$args" ]]
-then
- while true; do
- read -p "Please enter and commandline arguments you would like to include: " args
- command="$command $args"
- echo "Is \"$command\" accurate? (yes/no)"
- select yn in "Yes" "No"; do
- case $yn in
- Yes ) correct=true; java $command; exit;;
- No ) break;;
- esac
- done
- case $correct in
- true ) break;;
- esac
- done
-else
- command="$command $args"
- echo "Is \"$command\" accurate? (yes/no)"
- select yn in "Yes" "No"; do
- case $yn in
- Yes ) java $command; exit;;
- No ) exit;;
- esac
- done
-fi
diff --git a/src/includes/version.info b/src/includes/version.info
deleted file mode 100644
index 5856c45..0000000
--- a/src/includes/version.info
+++ /dev/null
@@ -1 +0,0 @@
-${build-version}