From 5ea8f0e2af53562c1507e8fb5a3ede2af5c5de6c Mon Sep 17 00:00:00 2001
From: Erik Brakkee <erik@brakkee.org>
Date: Sat, 24 Apr 2010 18:54:12 +0000
Subject: [PATCH] Separating security into a part that depends only on the JPA
 and into a the tests that require a specific implementation. Reason is that
 current JPA 2.0 implementations are not available on the central maven repo
 so removing a dependency on them in the pom allows the security stuff to be
 still published in the central maven repo.

---
 security/impl/pom.xml                         | 101 +++++++++++++++++
 .../security/authorization/AllOperation.java  |   0
 .../authorization/AnyUserCondition.java       |   0
 .../authorization/AuthorizationException.java |   0
 .../AuthorizationInitializer.java             |   0
 .../authorization/AuthorizationResult.java    |   0
 .../authorization/AuthorizationRule.java      |   0
 .../authorization/AuthorizationService.java   |   0
 .../authorization/CreateOperation.java        |   0
 .../DefaultAuthorizationService.java          |   0
 .../DefaultOperationRegistry.java             |   0
 .../authorization/DeleteOperation.java        |   0
 .../authorization/GroupUserCondition.java     |   0
 .../authorization/IsaOperationCondition.java  |   0
 .../security/authorization/Operation.java     |   0
 .../authorization/OperationCondition.java     |   0
 .../authorization/OperationRegistry.java      |   0
 .../security/authorization/PathCondition.java |   0
 .../security/authorization/ReadOperation.java |   0
 .../authorization/RegexpPathCondition.java    |   0
 .../StartsWithPathCondition.java              |   0
 .../authorization/UrlAuthorizationRule.java   |   0
 .../security/authorization/UserCondition.java |   0
 .../authorization/WriteOperation.java         |   0
 .../hibernate/AuthorizationMappingFiles.java  |   0
 .../PersistentAuthorizationService.java       |   0
 .../encryption/Md5HexMessageDigester.java     |   0
 .../security/encryption/MessageDigester.java  |   0
 .../org/wamblee/usermgt/AbstractUserSet.java  |   0
 .../main/java/org/wamblee/usermgt/Group.java  |   0
 .../java/org/wamblee/usermgt/GroupSet.java    |   0
 .../org/wamblee/usermgt/InMemoryGroupSet.java |   0
 .../org/wamblee/usermgt/InMemoryUserSet.java  |   0
 .../org/wamblee/usermgt/JaasUserAccessor.java |   0
 .../org/wamblee/usermgt/NameValidator.java    |   0
 .../wamblee/usermgt/RegexpNameValidator.java  |   0
 .../main/java/org/wamblee/usermgt/User.java   |   0
 .../org/wamblee/usermgt/UserAccessor.java     |   0
 .../wamblee/usermgt/UserAdminInitializer.java |   0
 .../wamblee/usermgt/UserAdministration.java   |   0
 .../usermgt/UserAdministrationImpl.java       |   0
 .../usermgt/UserGroupRepositoryComponent.java |   0
 .../org/wamblee/usermgt/UserMgtException.java |   0
 .../java/org/wamblee/usermgt/UserSet.java     |   0
 .../hibernate/AuthorizationComponent.java     |   0
 .../AuthorizationLightComponent.java          |   0
 .../usermgt/hibernate/HibernateGroupSet.java  |   0
 .../usermgt/hibernate/HibernateUserSet.java   |   0
 .../UserAdministrationComponent.java          |   0
 .../UserAdministrationLightComponent.java     |   0
 .../UsermgtHibernateMappingFiles.java         |   0
 .../resources/hbm/AuthorizationRule.hbm.xml   |   0
 .../hbm/AuthorizationService.hbm.xml          |   0
 .../src/main/resources/hbm/Group.hbm.xml      |   0
 .../resources/hbm/OperationCondition.hbm.xml  |   0
 .../hbm/OperationCondition.hbm.xmlxx          |   0
 .../hbm/PageAuthorizationRule.hbm.xml         |   0
 .../main/resources/hbm/PathCondition.hbm.xml  |   0
 .../hbm/PhotoAuthorizationRule.hbm.xml        |   0
 .../hbm/TestAuthorizationRule.hbm.xml         |   0
 .../src/main/resources/hbm/User.hbm.xml       |   0
 .../main/resources/hbm/UserCondition.hbm.xml  |   0
 .../src/main/resources/hbm/ehcache.xml        |   0
 .../main/resources/hbm/hibernate.properties   |   0
 .../org.wamblee.security.ehcache.xml          |   0
 .../org.wamblee.security.authorization.xml    |   0
 ....wamblee.security.usermgt-repositories.xml |   0
 .../spring/org.wamblee.security.usermgt.xml   |   0
 .../AuthorizationServiceTest.java             |   0
 .../DefaultOperationRegistryTest.java         |   0
 .../RegexpPathConditionTest.java              |   0
 .../StartsWithPathConditionTest.java          |   0
 .../authorization/TestAuthorizationRule.java  |   0
 .../security/authorization/TestResource.java  |   0
 .../authorization/TestUserAccessor.java       |   0
 .../UrlAuthorizationRuleTest.java             |   0
 .../PersistentAuthorizationServiceTest.java   |   0
 .../encryption/MessageDigesterTest.java       |   0
 .../wamblee/usermgt/InMemoryGroupSetTest.java |   0
 .../wamblee/usermgt/InMemoryUserSetTest.java  |   0
 .../usermgt/UserAdministrationImplTest.java   |   0
 .../org/wamblee/usermgt/UsermgtTestUtils.java |   0
 .../hibernate/HibernateGroupSetTest.java      |   0
 .../HibernateUserAdministrationTest.java      |   0
 .../hibernate/HibernateUserSetTest.java       |   0
 .../UserMgtRepositoryTestContainer.java       |   0
 ...t.org.wamblee.security.database.properties |   0
 ...st.org.wamblee.security.usermgt.properties |   0
 .../test.org.wamblee.security.datasource.xml  |   0
 .../test.org.wamblee.security.properties.xml  |   0
 ...test.org.wamblee.security.useraccessor.xml |   0
 ...rg.wamblee.security.usermgtinitializer.xml |   0
 security/jpatest/pom.xml                      | 101 +++++++++++++++++
 security/pom.xml                              | 106 ++++--------------
 94 files changed, 222 insertions(+), 86 deletions(-)
 create mode 100644 security/impl/pom.xml
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AllOperation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AuthorizationException.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AuthorizationInitializer.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AuthorizationResult.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/AuthorizationService.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/CreateOperation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/DefaultOperationRegistry.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/DeleteOperation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/Operation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/OperationCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/OperationRegistry.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/PathCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/ReadOperation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/UserCondition.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/WriteOperation.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/hibernate/AuthorizationMappingFiles.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationService.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/encryption/Md5HexMessageDigester.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/security/encryption/MessageDigester.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/AbstractUserSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/Group.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/GroupSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/InMemoryGroupSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/InMemoryUserSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/JaasUserAccessor.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/NameValidator.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/RegexpNameValidator.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/User.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserAccessor.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserAdminInitializer.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserAdministration.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserAdministrationImpl.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserGroupRepositoryComponent.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserMgtException.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/UserSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationComponent.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationLightComponent.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/HibernateGroupSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/HibernateUserSet.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationComponent.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationLightComponent.java (100%)
 rename security/{ => impl}/src/main/java/org/wamblee/usermgt/hibernate/UsermgtHibernateMappingFiles.java (100%)
 rename security/{ => impl}/src/main/resources/hbm/AuthorizationRule.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/AuthorizationService.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/Group.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/OperationCondition.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/OperationCondition.hbm.xmlxx (100%)
 rename security/{ => impl}/src/main/resources/hbm/PageAuthorizationRule.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/PathCondition.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/PhotoAuthorizationRule.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/TestAuthorizationRule.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/User.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/UserCondition.hbm.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/ehcache.xml (100%)
 rename security/{ => impl}/src/main/resources/hbm/hibernate.properties (100%)
 rename security/{ => impl}/src/main/resources/properties/org.wamblee.security.ehcache.xml (100%)
 rename security/{ => impl}/src/main/resources/spring/org.wamblee.security.authorization.xml (100%)
 rename security/{ => impl}/src/main/resources/spring/org.wamblee.security.usermgt-repositories.xml (100%)
 rename security/{ => impl}/src/main/resources/spring/org.wamblee.security.usermgt.xml (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/AuthorizationServiceTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/DefaultOperationRegistryTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/RegexpPathConditionTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/StartsWithPathConditionTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/TestResource.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/UrlAuthorizationRuleTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/security/encryption/MessageDigesterTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/InMemoryGroupSetTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/UsermgtTestUtils.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/hibernate/HibernateGroupSetTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserAdministrationTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java (100%)
 rename security/{ => impl}/src/test/java/org/wamblee/usermgt/hibernate/UserMgtRepositoryTestContainer.java (100%)
 rename security/{ => impl}/src/test/resources/properties/test.org.wamblee.security.database.properties (100%)
 rename security/{ => impl}/src/test/resources/properties/test.org.wamblee.security.usermgt.properties (100%)
 rename security/{ => impl}/src/test/resources/spring/test.org.wamblee.security.datasource.xml (100%)
 rename security/{ => impl}/src/test/resources/spring/test.org.wamblee.security.properties.xml (100%)
 rename security/{ => impl}/src/test/resources/spring/test.org.wamblee.security.useraccessor.xml (100%)
 rename security/{ => impl}/src/test/resources/spring/test.org.wamblee.security.usermgtinitializer.xml (100%)
 create mode 100644 security/jpatest/pom.xml

diff --git a/security/impl/pom.xml b/security/impl/pom.xml
new file mode 100644
index 00000000..89d75e9e
--- /dev/null
+++ b/security/impl/pom.xml
@@ -0,0 +1,101 @@
+<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">
+
+  <parent>
+    <groupId>org.wamblee</groupId>
+    <artifactId>wamblee-utils</artifactId>
+    <version>0.2.2-SNAPSHOT</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.wamblee</groupId>
+  <artifactId>wamblee-security-impl</artifactId>
+  <packaging>jar</packaging>
+  <name>/security/impl</name>
+  <url>http://wamblee.org</url>
+  <dependencies>
+
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-general</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-general</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-test-enterprise</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-spring</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-spring</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-general</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-spring</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-spring</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-hibernate-jpa</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-beans</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-hibernate3</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.hibernate</groupId>
+          <artifactId>hibernate</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-aop</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.transaction</groupId>
+      <artifactId>transaction-api</artifactId>
+      <version>1.1</version>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+</project>
diff --git a/security/src/main/java/org/wamblee/security/authorization/AllOperation.java b/security/impl/src/main/java/org/wamblee/security/authorization/AllOperation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AllOperation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AllOperation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AuthorizationException.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationException.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AuthorizationException.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationException.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AuthorizationInitializer.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationInitializer.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AuthorizationInitializer.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationInitializer.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AuthorizationResult.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationResult.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AuthorizationResult.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationResult.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/AuthorizationService.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationService.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/AuthorizationService.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationService.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/CreateOperation.java b/security/impl/src/main/java/org/wamblee/security/authorization/CreateOperation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/CreateOperation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/CreateOperation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/DefaultOperationRegistry.java b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultOperationRegistry.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/DefaultOperationRegistry.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/DefaultOperationRegistry.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/DeleteOperation.java b/security/impl/src/main/java/org/wamblee/security/authorization/DeleteOperation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/DeleteOperation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/DeleteOperation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/Operation.java b/security/impl/src/main/java/org/wamblee/security/authorization/Operation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/Operation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/Operation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/OperationCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/OperationCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/OperationCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/OperationCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/OperationRegistry.java b/security/impl/src/main/java/org/wamblee/security/authorization/OperationRegistry.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/OperationRegistry.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/OperationRegistry.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/PathCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/PathCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/PathCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/PathCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/ReadOperation.java b/security/impl/src/main/java/org/wamblee/security/authorization/ReadOperation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/ReadOperation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/ReadOperation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java b/security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/UserCondition.java b/security/impl/src/main/java/org/wamblee/security/authorization/UserCondition.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/UserCondition.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/UserCondition.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/WriteOperation.java b/security/impl/src/main/java/org/wamblee/security/authorization/WriteOperation.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/WriteOperation.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/WriteOperation.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/hibernate/AuthorizationMappingFiles.java b/security/impl/src/main/java/org/wamblee/security/authorization/hibernate/AuthorizationMappingFiles.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/hibernate/AuthorizationMappingFiles.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/hibernate/AuthorizationMappingFiles.java
diff --git a/security/src/main/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationService.java b/security/impl/src/main/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationService.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationService.java
rename to security/impl/src/main/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationService.java
diff --git a/security/src/main/java/org/wamblee/security/encryption/Md5HexMessageDigester.java b/security/impl/src/main/java/org/wamblee/security/encryption/Md5HexMessageDigester.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/encryption/Md5HexMessageDigester.java
rename to security/impl/src/main/java/org/wamblee/security/encryption/Md5HexMessageDigester.java
diff --git a/security/src/main/java/org/wamblee/security/encryption/MessageDigester.java b/security/impl/src/main/java/org/wamblee/security/encryption/MessageDigester.java
similarity index 100%
rename from security/src/main/java/org/wamblee/security/encryption/MessageDigester.java
rename to security/impl/src/main/java/org/wamblee/security/encryption/MessageDigester.java
diff --git a/security/src/main/java/org/wamblee/usermgt/AbstractUserSet.java b/security/impl/src/main/java/org/wamblee/usermgt/AbstractUserSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/AbstractUserSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/AbstractUserSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/Group.java b/security/impl/src/main/java/org/wamblee/usermgt/Group.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/Group.java
rename to security/impl/src/main/java/org/wamblee/usermgt/Group.java
diff --git a/security/src/main/java/org/wamblee/usermgt/GroupSet.java b/security/impl/src/main/java/org/wamblee/usermgt/GroupSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/GroupSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/GroupSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/InMemoryGroupSet.java b/security/impl/src/main/java/org/wamblee/usermgt/InMemoryGroupSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/InMemoryGroupSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/InMemoryGroupSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/InMemoryUserSet.java b/security/impl/src/main/java/org/wamblee/usermgt/InMemoryUserSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/InMemoryUserSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/InMemoryUserSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/JaasUserAccessor.java b/security/impl/src/main/java/org/wamblee/usermgt/JaasUserAccessor.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/JaasUserAccessor.java
rename to security/impl/src/main/java/org/wamblee/usermgt/JaasUserAccessor.java
diff --git a/security/src/main/java/org/wamblee/usermgt/NameValidator.java b/security/impl/src/main/java/org/wamblee/usermgt/NameValidator.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/NameValidator.java
rename to security/impl/src/main/java/org/wamblee/usermgt/NameValidator.java
diff --git a/security/src/main/java/org/wamblee/usermgt/RegexpNameValidator.java b/security/impl/src/main/java/org/wamblee/usermgt/RegexpNameValidator.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/RegexpNameValidator.java
rename to security/impl/src/main/java/org/wamblee/usermgt/RegexpNameValidator.java
diff --git a/security/src/main/java/org/wamblee/usermgt/User.java b/security/impl/src/main/java/org/wamblee/usermgt/User.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/User.java
rename to security/impl/src/main/java/org/wamblee/usermgt/User.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserAccessor.java b/security/impl/src/main/java/org/wamblee/usermgt/UserAccessor.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserAccessor.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserAccessor.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserAdminInitializer.java b/security/impl/src/main/java/org/wamblee/usermgt/UserAdminInitializer.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserAdminInitializer.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserAdminInitializer.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserAdministration.java b/security/impl/src/main/java/org/wamblee/usermgt/UserAdministration.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserAdministration.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserAdministration.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserAdministrationImpl.java b/security/impl/src/main/java/org/wamblee/usermgt/UserAdministrationImpl.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserAdministrationImpl.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserAdministrationImpl.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserGroupRepositoryComponent.java b/security/impl/src/main/java/org/wamblee/usermgt/UserGroupRepositoryComponent.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserGroupRepositoryComponent.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserGroupRepositoryComponent.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserMgtException.java b/security/impl/src/main/java/org/wamblee/usermgt/UserMgtException.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserMgtException.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserMgtException.java
diff --git a/security/src/main/java/org/wamblee/usermgt/UserSet.java b/security/impl/src/main/java/org/wamblee/usermgt/UserSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/UserSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/UserSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationComponent.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationComponent.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationComponent.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationComponent.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationLightComponent.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationLightComponent.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationLightComponent.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/AuthorizationLightComponent.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/HibernateGroupSet.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/HibernateGroupSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/HibernateGroupSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/HibernateGroupSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/HibernateUserSet.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/HibernateUserSet.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/HibernateUserSet.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/HibernateUserSet.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationComponent.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationComponent.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationComponent.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationComponent.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationLightComponent.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationLightComponent.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationLightComponent.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/UserAdministrationLightComponent.java
diff --git a/security/src/main/java/org/wamblee/usermgt/hibernate/UsermgtHibernateMappingFiles.java b/security/impl/src/main/java/org/wamblee/usermgt/hibernate/UsermgtHibernateMappingFiles.java
similarity index 100%
rename from security/src/main/java/org/wamblee/usermgt/hibernate/UsermgtHibernateMappingFiles.java
rename to security/impl/src/main/java/org/wamblee/usermgt/hibernate/UsermgtHibernateMappingFiles.java
diff --git a/security/src/main/resources/hbm/AuthorizationRule.hbm.xml b/security/impl/src/main/resources/hbm/AuthorizationRule.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/AuthorizationRule.hbm.xml
rename to security/impl/src/main/resources/hbm/AuthorizationRule.hbm.xml
diff --git a/security/src/main/resources/hbm/AuthorizationService.hbm.xml b/security/impl/src/main/resources/hbm/AuthorizationService.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/AuthorizationService.hbm.xml
rename to security/impl/src/main/resources/hbm/AuthorizationService.hbm.xml
diff --git a/security/src/main/resources/hbm/Group.hbm.xml b/security/impl/src/main/resources/hbm/Group.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/Group.hbm.xml
rename to security/impl/src/main/resources/hbm/Group.hbm.xml
diff --git a/security/src/main/resources/hbm/OperationCondition.hbm.xml b/security/impl/src/main/resources/hbm/OperationCondition.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/OperationCondition.hbm.xml
rename to security/impl/src/main/resources/hbm/OperationCondition.hbm.xml
diff --git a/security/src/main/resources/hbm/OperationCondition.hbm.xmlxx b/security/impl/src/main/resources/hbm/OperationCondition.hbm.xmlxx
similarity index 100%
rename from security/src/main/resources/hbm/OperationCondition.hbm.xmlxx
rename to security/impl/src/main/resources/hbm/OperationCondition.hbm.xmlxx
diff --git a/security/src/main/resources/hbm/PageAuthorizationRule.hbm.xml b/security/impl/src/main/resources/hbm/PageAuthorizationRule.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/PageAuthorizationRule.hbm.xml
rename to security/impl/src/main/resources/hbm/PageAuthorizationRule.hbm.xml
diff --git a/security/src/main/resources/hbm/PathCondition.hbm.xml b/security/impl/src/main/resources/hbm/PathCondition.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/PathCondition.hbm.xml
rename to security/impl/src/main/resources/hbm/PathCondition.hbm.xml
diff --git a/security/src/main/resources/hbm/PhotoAuthorizationRule.hbm.xml b/security/impl/src/main/resources/hbm/PhotoAuthorizationRule.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/PhotoAuthorizationRule.hbm.xml
rename to security/impl/src/main/resources/hbm/PhotoAuthorizationRule.hbm.xml
diff --git a/security/src/main/resources/hbm/TestAuthorizationRule.hbm.xml b/security/impl/src/main/resources/hbm/TestAuthorizationRule.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/TestAuthorizationRule.hbm.xml
rename to security/impl/src/main/resources/hbm/TestAuthorizationRule.hbm.xml
diff --git a/security/src/main/resources/hbm/User.hbm.xml b/security/impl/src/main/resources/hbm/User.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/User.hbm.xml
rename to security/impl/src/main/resources/hbm/User.hbm.xml
diff --git a/security/src/main/resources/hbm/UserCondition.hbm.xml b/security/impl/src/main/resources/hbm/UserCondition.hbm.xml
similarity index 100%
rename from security/src/main/resources/hbm/UserCondition.hbm.xml
rename to security/impl/src/main/resources/hbm/UserCondition.hbm.xml
diff --git a/security/src/main/resources/hbm/ehcache.xml b/security/impl/src/main/resources/hbm/ehcache.xml
similarity index 100%
rename from security/src/main/resources/hbm/ehcache.xml
rename to security/impl/src/main/resources/hbm/ehcache.xml
diff --git a/security/src/main/resources/hbm/hibernate.properties b/security/impl/src/main/resources/hbm/hibernate.properties
similarity index 100%
rename from security/src/main/resources/hbm/hibernate.properties
rename to security/impl/src/main/resources/hbm/hibernate.properties
diff --git a/security/src/main/resources/properties/org.wamblee.security.ehcache.xml b/security/impl/src/main/resources/properties/org.wamblee.security.ehcache.xml
similarity index 100%
rename from security/src/main/resources/properties/org.wamblee.security.ehcache.xml
rename to security/impl/src/main/resources/properties/org.wamblee.security.ehcache.xml
diff --git a/security/src/main/resources/spring/org.wamblee.security.authorization.xml b/security/impl/src/main/resources/spring/org.wamblee.security.authorization.xml
similarity index 100%
rename from security/src/main/resources/spring/org.wamblee.security.authorization.xml
rename to security/impl/src/main/resources/spring/org.wamblee.security.authorization.xml
diff --git a/security/src/main/resources/spring/org.wamblee.security.usermgt-repositories.xml b/security/impl/src/main/resources/spring/org.wamblee.security.usermgt-repositories.xml
similarity index 100%
rename from security/src/main/resources/spring/org.wamblee.security.usermgt-repositories.xml
rename to security/impl/src/main/resources/spring/org.wamblee.security.usermgt-repositories.xml
diff --git a/security/src/main/resources/spring/org.wamblee.security.usermgt.xml b/security/impl/src/main/resources/spring/org.wamblee.security.usermgt.xml
similarity index 100%
rename from security/src/main/resources/spring/org.wamblee.security.usermgt.xml
rename to security/impl/src/main/resources/spring/org.wamblee.security.usermgt.xml
diff --git a/security/src/test/java/org/wamblee/security/authorization/AuthorizationServiceTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/AuthorizationServiceTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/AuthorizationServiceTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/AuthorizationServiceTest.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/DefaultOperationRegistryTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/DefaultOperationRegistryTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/DefaultOperationRegistryTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/DefaultOperationRegistryTest.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/RegexpPathConditionTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/RegexpPathConditionTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/RegexpPathConditionTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/RegexpPathConditionTest.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/StartsWithPathConditionTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/StartsWithPathConditionTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/StartsWithPathConditionTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/StartsWithPathConditionTest.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java b/security/impl/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/TestResource.java b/security/impl/src/test/java/org/wamblee/security/authorization/TestResource.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/TestResource.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/TestResource.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java b/security/impl/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/UrlAuthorizationRuleTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/UrlAuthorizationRuleTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/UrlAuthorizationRuleTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/UrlAuthorizationRuleTest.java
diff --git a/security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java b/security/impl/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java
rename to security/impl/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java
diff --git a/security/src/test/java/org/wamblee/security/encryption/MessageDigesterTest.java b/security/impl/src/test/java/org/wamblee/security/encryption/MessageDigesterTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/security/encryption/MessageDigesterTest.java
rename to security/impl/src/test/java/org/wamblee/security/encryption/MessageDigesterTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/InMemoryGroupSetTest.java b/security/impl/src/test/java/org/wamblee/usermgt/InMemoryGroupSetTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/InMemoryGroupSetTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/InMemoryGroupSetTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java b/security/impl/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java b/security/impl/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/UsermgtTestUtils.java b/security/impl/src/test/java/org/wamblee/usermgt/UsermgtTestUtils.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/UsermgtTestUtils.java
rename to security/impl/src/test/java/org/wamblee/usermgt/UsermgtTestUtils.java
diff --git a/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateGroupSetTest.java b/security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateGroupSetTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/hibernate/HibernateGroupSetTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateGroupSetTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserAdministrationTest.java b/security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserAdministrationTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserAdministrationTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserAdministrationTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java b/security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java
rename to security/impl/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java
diff --git a/security/src/test/java/org/wamblee/usermgt/hibernate/UserMgtRepositoryTestContainer.java b/security/impl/src/test/java/org/wamblee/usermgt/hibernate/UserMgtRepositoryTestContainer.java
similarity index 100%
rename from security/src/test/java/org/wamblee/usermgt/hibernate/UserMgtRepositoryTestContainer.java
rename to security/impl/src/test/java/org/wamblee/usermgt/hibernate/UserMgtRepositoryTestContainer.java
diff --git a/security/src/test/resources/properties/test.org.wamblee.security.database.properties b/security/impl/src/test/resources/properties/test.org.wamblee.security.database.properties
similarity index 100%
rename from security/src/test/resources/properties/test.org.wamblee.security.database.properties
rename to security/impl/src/test/resources/properties/test.org.wamblee.security.database.properties
diff --git a/security/src/test/resources/properties/test.org.wamblee.security.usermgt.properties b/security/impl/src/test/resources/properties/test.org.wamblee.security.usermgt.properties
similarity index 100%
rename from security/src/test/resources/properties/test.org.wamblee.security.usermgt.properties
rename to security/impl/src/test/resources/properties/test.org.wamblee.security.usermgt.properties
diff --git a/security/src/test/resources/spring/test.org.wamblee.security.datasource.xml b/security/impl/src/test/resources/spring/test.org.wamblee.security.datasource.xml
similarity index 100%
rename from security/src/test/resources/spring/test.org.wamblee.security.datasource.xml
rename to security/impl/src/test/resources/spring/test.org.wamblee.security.datasource.xml
diff --git a/security/src/test/resources/spring/test.org.wamblee.security.properties.xml b/security/impl/src/test/resources/spring/test.org.wamblee.security.properties.xml
similarity index 100%
rename from security/src/test/resources/spring/test.org.wamblee.security.properties.xml
rename to security/impl/src/test/resources/spring/test.org.wamblee.security.properties.xml
diff --git a/security/src/test/resources/spring/test.org.wamblee.security.useraccessor.xml b/security/impl/src/test/resources/spring/test.org.wamblee.security.useraccessor.xml
similarity index 100%
rename from security/src/test/resources/spring/test.org.wamblee.security.useraccessor.xml
rename to security/impl/src/test/resources/spring/test.org.wamblee.security.useraccessor.xml
diff --git a/security/src/test/resources/spring/test.org.wamblee.security.usermgtinitializer.xml b/security/impl/src/test/resources/spring/test.org.wamblee.security.usermgtinitializer.xml
similarity index 100%
rename from security/src/test/resources/spring/test.org.wamblee.security.usermgtinitializer.xml
rename to security/impl/src/test/resources/spring/test.org.wamblee.security.usermgtinitializer.xml
diff --git a/security/jpatest/pom.xml b/security/jpatest/pom.xml
new file mode 100644
index 00000000..8d0e3d1d
--- /dev/null
+++ b/security/jpatest/pom.xml
@@ -0,0 +1,101 @@
+<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">
+
+  <parent>
+    <groupId>org.wamblee</groupId>
+    <artifactId>wamblee-utils</artifactId>
+    <version>0.2.2-SNAPSHOT</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.wamblee</groupId>
+  <artifactId>wamblee-security-jpatest</artifactId>
+  <packaging>jar</packaging>
+  <name>/security/jpatest</name>
+  <url>http://wamblee.org</url>
+  <dependencies>
+
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-general</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-general</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-test-enterprise</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-spring</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-spring</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-system-general</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-spring</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-support-spring</artifactId>
+      <type>test-jar</type>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.wamblee</groupId>
+      <artifactId>wamblee-hibernate-jpa</artifactId>
+      <version>0.2.2-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-beans</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-hibernate3</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.hibernate</groupId>
+          <artifactId>hibernate</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-aop</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.transaction</groupId>
+      <artifactId>transaction-api</artifactId>
+      <version>1.1</version>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+</project>
diff --git a/security/pom.xml b/security/pom.xml
index 6cfc2073..9ef6a9df 100644
--- a/security/pom.xml
+++ b/security/pom.xml
@@ -9,93 +9,27 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.wamblee</groupId>
   <artifactId>wamblee-security</artifactId>
-  <packaging>jar</packaging>
+  <packaging>pom</packaging>
   <name>/security</name>
   <url>http://wamblee.org</url>
-  <dependencies>
-
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-support-general</artifactId>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-support-general</artifactId>
-      <type>test-jar</type>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-test-enterprise</artifactId>
-      <version>0.2.2-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-system-spring</artifactId>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-system-spring</artifactId>
-      <type>test-jar</type>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-system-general</artifactId>
-      <type>test-jar</type>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-support-spring</artifactId>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-support-spring</artifactId>
-      <type>test-jar</type>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.wamblee</groupId>
-      <artifactId>wamblee-hibernate-jpa</artifactId>
-      <version>0.2.2-SNAPSHOT</version>
-    </dependency>
-
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-beans</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-hibernate3</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.hibernate</groupId>
-          <artifactId>hibernate</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-aop</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.transaction</groupId>
-      <artifactId>transaction-api</artifactId>
-      <version>1.1</version>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
 
+  <modules>
+    <module>impl</module>
+  </modules>
+
+  <profiles>
+    <profile>
+      <id>all</id>
+      <activation>
+        <property>
+          <name>!performRelease</name>
+        </property>
+      </activation>
+      <modules>
+        <module>jpatest</module>
+      </modules>
+    </profile>
+  </profiles>
+
+  
 </project>
-- 
2.31.1