[java-opensaml] branch main updated: Refactor remaining test classes and split core into api/impl.

Scott Cantor cantor.2 at osu.edu
Thu Sep 15 19:21:46 UTC 2022


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=997d1ed780608068fd93747f150194fdd55e2a78

The following commit(s) were added to refs/heads/main by this push:
     new 997d1ed78 Refactor remaining test classes and split core into api/impl.
997d1ed78 is described below

commit 997d1ed780608068fd93747f150194fdd55e2a78
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Sep 15 15:21:43 2022 -0400

    Refactor remaining test classes and split core into api/impl.
---
 opensaml-bom/pom.xml                               |   7 +++++-
 {opensaml-core => opensaml-core-api}/.checkstyle   |   0
 {opensaml-core => opensaml-core-api}/.gitignore    |   0
 {opensaml-core => opensaml-core-api}/pom.xml       |  10 ++++-----
 .../src/main/java/org/opensaml/core/Version.java   |   0
 .../org/opensaml/core/config/Configuration.java    |   0
 .../core/config/ConfigurationPropertiesSource.java |   0
 .../opensaml/core/config/ConfigurationService.java |   0
 .../core/config/InitializationException.java       |   0
 .../core/config/InitializationService.java         |   0
 .../java/org/opensaml/core/config/Initializer.java |   0
 .../org/opensaml/core/config/package-info.java     |   0
 ...actFilesystemConfigurationPropertiesSource.java |   0
 .../ClasspathConfigurationPropertiesSource.java    |   0
 .../config/provider/MapBasedConfiguration.java     |   0
 ...ystemPropertyConfigurationPropertiesSource.java |   0
 ...rtyFilesystemConfigurationPropertiesSource.java |   0
 .../ThreadLocalConfigurationPropertiesHolder.java  |   0
 .../ThreadLocalConfigurationPropertiesSource.java  |   0
 .../core/config/provider/package-info.java         |   0
 .../opensaml/core/criterion/EntityIdCriterion.java |   0
 .../core/criterion/SatisfyAnyCriterion.java        |   0
 .../org/opensaml/core/criterion/package-info.java  |   0
 .../core/metrics/LoggerDrivenMetricFilter.java     |   0
 .../org/opensaml/core/metrics/MetricsSupport.java  |   0
 .../org/opensaml/core/metrics/package-info.java    |   0
 .../main/java/org/opensaml/core/package-info.java  |   0
 .../xml/AbstractElementExtensibleXMLObject.java    |   0
 ...stractElementExtensibleXMLObjectMarshaller.java |   0
 ...ractElementExtensibleXMLObjectUnmarshaller.java |   0
 .../core/xml/AbstractExtensibleXMLObject.java      |   0
 .../xml/AbstractExtensibleXMLObjectMarshaller.java |   0
 .../AbstractExtensibleXMLObjectUnmarshaller.java   |   0
 .../org/opensaml/core/xml/AbstractXMLObject.java   |   0
 .../core/xml/AbstractXMLObjectBuilder.java         |   0
 .../core/xml/AttributeExtensibleXMLObject.java     |   0
 .../java/org/opensaml/core/xml/BaseBearing.java    |   0
 .../core/xml/ElementExtensibleXMLObject.java       |   0
 .../main/java/org/opensaml/core/xml/IdBearing.java |   0
 .../java/org/opensaml/core/xml/LangBearing.java    |   0
 .../main/java/org/opensaml/core/xml/Namespace.java |   0
 .../org/opensaml/core/xml/NamespaceManager.java    |   0
 .../java/org/opensaml/core/xml/SpaceBearing.java   |   0
 .../main/java/org/opensaml/core/xml/XMLObject.java |   0
 .../org/opensaml/core/xml/XMLObjectBuilder.java    |   0
 .../opensaml/core/xml/XMLObjectBuilderFactory.java |   0
 .../org/opensaml/core/xml/XMLRuntimeException.java |   0
 .../AbstractXMLObjectProviderInitializer.java      |   0
 .../xml/config/GlobalParserPoolInitializer.java    |   0
 .../core/xml/config/XMLConfigurationException.java |   0
 .../opensaml/core/xml/config/XMLConfigurator.java  |   0
 .../xml/config/XMLObjectProviderInitializer.java   |   0
 .../core/xml/config/XMLObjectProviderRegistry.java |   0
 .../config/XMLObjectProviderRegistrySupport.java   |   0
 .../org/opensaml/core/xml/config/package-info.java |   0
 .../core/xml/io/AbstractXMLObjectMarshaller.java   |   0
 .../core/xml/io/AbstractXMLObjectUnmarshaller.java |   0
 .../java/org/opensaml/core/xml/io/Marshaller.java  |   0
 .../opensaml/core/xml/io/MarshallerFactory.java    |   0
 .../opensaml/core/xml/io/MarshallingException.java |   0
 .../org/opensaml/core/xml/io/Unmarshaller.java     |   0
 .../opensaml/core/xml/io/UnmarshallerFactory.java  |   0
 .../core/xml/io/UnmarshallingException.java        |   0
 .../org/opensaml/core/xml/io/package-info.java     |   0
 .../java/org/opensaml/core/xml/package-info.java   |   0
 ...actConditionalLoadXMLObjectLoadSaveManager.java |   0
 .../ConditionalLoadXMLObjectLoadSaveManager.java   |   0
 .../xml/persist/FilesystemLoadSaveManager.java     |   2 +-
 .../core/xml/persist/MapLoadSaveManager.java       |   0
 .../core/xml/persist/XMLObjectLoadSaveManager.java |   0
 .../opensaml/core/xml/persist/package-info.java    |   0
 .../java/org/opensaml/core/xml/schema/XSAny.java   |   0
 .../opensaml/core/xml/schema/XSBase64Binary.java   |   0
 .../org/opensaml/core/xml/schema/XSBoolean.java    |   0
 .../opensaml/core/xml/schema/XSBooleanValue.java   |   0
 .../org/opensaml/core/xml/schema/XSDateTime.java   |   0
 .../org/opensaml/core/xml/schema/XSInteger.java    |   0
 .../java/org/opensaml/core/xml/schema/XSQName.java |   0
 .../org/opensaml/core/xml/schema/XSString.java     |   0
 .../java/org/opensaml/core/xml/schema/XSURI.java   |   0
 .../org/opensaml/core/xml/schema/package-info.java |   0
 .../xml/util/AbstractSimpleSingletonFactory.java   |   0
 .../core/xml/util/AbstractSingletonFactory.java    |   0
 .../xml/util/AbstractWrappedSingletonFactory.java  |   0
 .../org/opensaml/core/xml/util/AttributeMap.java   |   0
 .../java/org/opensaml/core/xml/util/IDIndex.java   |   0
 .../xml/util/IndexedXMLObjectChildrenList.java     |   0
 .../opensaml/core/xml/util/SingletonFactory.java   |   0
 .../core/xml/util/XMLAttributeSupport.java         |   0
 .../core/xml/util/XMLObjectChildrenList.java       |   0
 .../opensaml/core/xml/util/XMLObjectSource.java    |   0
 .../opensaml/core/xml/util/XMLObjectSupport.java   |   0
 .../org/opensaml/core/xml/util/package-info.java   |   0
 .../src/main/resources/schema/XMLSchema.dtd        |   0
 .../src/main/resources/schema/XMLSchema.xsd        |   0
 .../src/main/resources/schema/datatypes.dtd        |   0
 .../src/main/resources/schema/xml.xsd              |   0
 .../main/resources/schema/xmltooling-config.xsd    |   0
 .../core/config/ConfigurationServiceTest.java      |   0
 ...ClasspathConfigurationPropertiesSourceTest.java |   0
 ...ilesystemConfigurationPropertiesSourceTest.java |   0
 ...readLocalConfigurationPropertiesSourceTest.java |   0
 .../opensaml/core/metrics/MetricsSupportTest.java  |   0
 .../src/test/resources/logback-test.xml            |   0
 .../src/test/resources/opensaml-config.properties  |   0
 {opensaml-core => opensaml-core-impl}/.checkstyle  |   0
 {opensaml-core => opensaml-core-impl}/.gitignore   |   0
 {opensaml-core => opensaml-core-impl}/pom.xml      |  25 ++++++++++++++++-----
 .../core/metrics/impl/DisabledCounter.java         |   0
 .../core/metrics/impl/DisabledHistogram.java       |   0
 .../opensaml/core/metrics/impl/DisabledMeter.java  |   0
 .../opensaml/core/metrics/impl/DisabledMetric.java |   0
 .../opensaml/core/metrics/impl/DisabledTimer.java  |   0
 .../core/metrics/impl}/FilteredMetricRegistry.java |   7 +-----
 .../metrics/impl/MetricRegistryInitializer.java    |   1 -
 .../opensaml/core/metrics/impl/package-info.java   |   0
 .../persist/impl/PassthroughSourceStrategy.java    |   0
 .../SegmentingIntermediateDirectoryStrategy.java   |   0
 .../core/xml/schema/impl/XSAnyBuilder.java         |   0
 .../opensaml/core/xml/schema/impl/XSAnyImpl.java   |   0
 .../core/xml/schema/impl/XSAnyMarshaller.java      |   0
 .../core/xml/schema/impl/XSAnyUnmarshaller.java    |   0
 .../xml/schema/impl/XSBase64BinaryBuilder.java     |   0
 .../core/xml/schema/impl/XSBase64BinaryImpl.java   |   0
 .../xml/schema/impl/XSBase64BinaryMarshaller.java  |   0
 .../schema/impl/XSBase64BinaryUnmarshaller.java    |   0
 .../core/xml/schema/impl/XSBooleanBuilder.java     |   0
 .../core/xml/schema/impl/XSBooleanImpl.java        |   0
 .../core/xml/schema/impl/XSBooleanMarshaller.java  |   0
 .../xml/schema/impl/XSBooleanUnmarshaller.java     |   0
 .../core/xml/schema/impl/XSDateTimeBuilder.java    |   0
 .../core/xml/schema/impl/XSDateTimeImpl.java       |   0
 .../core/xml/schema/impl/XSDateTimeMarshaller.java |   0
 .../xml/schema/impl/XSDateTimeUnmarshaller.java    |   0
 .../core/xml/schema/impl/XSIntegerBuilder.java     |   0
 .../core/xml/schema/impl/XSIntegerImpl.java        |   0
 .../core/xml/schema/impl/XSIntegerMarshaller.java  |   0
 .../xml/schema/impl/XSIntegerUnmarshaller.java     |   0
 .../core/xml/schema/impl/XSQNameBuilder.java       |   0
 .../opensaml/core/xml/schema/impl/XSQNameImpl.java |   0
 .../core/xml/schema/impl/XSQNameMarshaller.java    |   0
 .../core/xml/schema/impl/XSQNameUnmarshaller.java  |   0
 .../core/xml/schema/impl/XSStringBuilder.java      |   0
 .../core/xml/schema/impl/XSStringImpl.java         |   0
 .../core/xml/schema/impl/XSStringMarshaller.java   |   0
 .../core/xml/schema/impl/XSStringUnmarshaller.java |   0
 .../core/xml/schema/impl/XSURIBuilder.java         |   0
 .../opensaml/core/xml/schema/impl/XSURIImpl.java   |   0
 .../core/xml/schema/impl/XSURIMarshaller.java      |   0
 .../core/xml/schema/impl/XSURIUnmarshaller.java    |   0
 .../core/xml/schema/impl/package-info.java         |   0
 .../services/org.opensaml.core.config.Initializer  |   0
 .../src/main/resources/default-config.xml          |   0
 .../src/main/resources/schema-config.xml           |   0
 .../core/xml/config/tests}/ConfigurationTest.java  |   6 ++++-
 .../config/tests}/InitializationServiceTest.java   |   5 ++++-
 .../tests}/XMLObjectProviderInitializerTest.java   |   4 +++-
 .../impl}/FilesystemLoadSaveManagerTest.java       |   3 ++-
 .../xml/persist/impl}/MapLoadSaveManagerTest.java  |   3 ++-
 ...egmentingIntermediateDirectoryStrategyTest.java |   0
 .../core/xml/schema/impl}/XSBase64BinaryTest.java  |   5 +++--
 .../core/xml/schema/impl}/XSBooleanTest.java       |   6 +++--
 .../core/xml/schema/impl}/XSDateTimeTest.java      |  11 ++++-----
 .../core/xml/schema/impl}/XSIntegerTest.java       |   5 +++--
 .../core/xml/schema/impl}/XSQNameTest.java         |   5 +++--
 .../core/xml/schema/impl}/XSStringTest.java        |   5 +++--
 .../opensaml/core/xml/schema/impl}/XSURITest.java  |   5 +++--
 .../core/xml/tests}/AbstractXMLObjectTest.java     |   3 ++-
 .../opensaml/core/xml/tests}/ElementProxyTest.java |   3 ++-
 .../opensaml/core/xml/tests}/IDAttributeTest.java  |   3 ++-
 .../opensaml/core/xml/tests}/MarshallingTest.java  |   2 +-
 .../core/xml/tests}/NamespaceManagerTest.java      |   6 ++++-
 .../core/xml/tests}/UnmarshallingSecurityTest.java |   2 +-
 .../core/xml/tests}/UnmarshallingTest.java         |   2 +-
 .../core/xml/tests}/XMLObjectXSIAttribsTest.java   |   2 +-
 .../core/xml/util/tests}/AttributeMapTest.java     |   3 ++-
 .../tests}/IndexedXMLObjectChildrenListTest.java   |   3 ++-
 .../xml/util/tests}/XMLObjectChildrenListTest.java |   3 ++-
 .../core/xml/util/tests}/XMLObjectSourceTest.java  |   3 ++-
 .../core/xml/util/tests}/XMLObjectSupportTest.java |   3 ++-
 .../src/test/resources/logback-test.xml            |   0
 .../org/opensaml/core/xml/IDAttribute.xml          |   0
 .../org/opensaml/core/xml/IDAttributeGlobal.xml    |   0
 .../core/xml/IDAttributeWithAttributeMap.xml       |   0
 .../core/xml/IDAttributeWithChildrenList.xml       |   0
 .../org/opensaml/core/xml/SOAPMessage.xml          |   0
 .../opensaml/core/xml/SOAPMessageWithContent.xml   |   0
 .../org/opensaml/core/xml/SimpleXMLObjectNil.xml   |   0
 .../SimpleXMLObjectNoNamespaceSchemaLocation.xml   |   0
 .../core/xml/SimpleXMLObjectSchemaLocation.xml     |   0
 .../core/xml/SimpleXMLObjectWithAttribute.xml      |   0
 .../core/xml/SimpleXMLObjectWithCDATAInContent.xml |   0
 .../core/xml/SimpleXMLObjectWithChildren.xml       |   0
 .../SimpleXMLObjectWithCommentBetweenChildren.xml  |   0
 .../xml/SimpleXMLObjectWithCommentInContent.xml    |   0
 .../core/xml/SimpleXMLObjectWithContent.xml        |   0
 .../org/opensaml/core/xml/UnknownContent.xml       |   0
 .../core/xml/config/IDAttributeConfiguration.xml   |   0
 .../core/xml/config/InvalidConfiguration.xml       |   0
 .../xml/config/NonexistantClassConfiguration.xml   |   0
 .../xml/config/SimpleXMLObjectConfiguration.xml    |   0
 .../test/resources/org/opensaml/core/xml/keys.jks  | Bin
 .../core/xml/schema/impl}/xsBase64Binary.xml       |   0
 .../opensaml/core/xml/schema/impl}/xsBoolean.xml   |   0
 .../core/xml/schema/impl}/xsDateTime-basic.xml     |   0
 .../core/xml/schema/impl}/xsDateTime-canonical.xml |   0
 .../xml/schema/impl}/xsDateTime-nofractional.xml   |   0
 .../opensaml/core/xml/schema/impl}/xsInteger.xml   |   0
 .../org/opensaml/core/xml/schema/impl}/xsQName.xml |   0
 .../opensaml/core/xml/schema/impl}/xsString.xml    |   0
 .../org/opensaml/core/xml/schema/impl}/xsURI.xml   |   0
 opensaml-messaging-api/pom.xml                     |   2 +-
 opensaml-messaging-impl/pom.xml                    |  11 ++++++---
 opensaml-parent/pom.xml                            |   5 +++--
 opensaml-profile-api/pom.xml                       |   2 +-
 opensaml-profile-impl/pom.xml                      |  10 +--------
 opensaml-saml-api/pom.xml                          |   2 +-
 opensaml-saml-impl/pom.xml                         |  15 ++++++-------
 opensaml-security-api/pom.xml                      |  10 +--------
 .../crypto/ec/curves/AbstractNamedCurve.java       |   2 +-
 opensaml-security-impl/pom.xml                     |  19 ++++++++++++----
 .../security/crypto/dh/tests}/BaseDHTest.java      |   2 +-
 .../security/crypto/dh/tests}/DHSupportTest.java   |   3 ++-
 .../crypto/ec/curves/tests}/NamedCurvesTest.java   |   5 +++--
 .../crypto/ec/tests}/BaseNamedCurveTest.java       |   2 +-
 .../security/crypto/ec/tests}/ECSupportTest.java   |   4 +++-
 .../ec/tests}/EnhancedECParameterSpecTest.java     |   2 +-
 .../crypto/ec/tests}/NamedCurveRegistryTest.java   |   5 ++++-
 opensaml-soap-api/pom.xml                          |   2 +-
 opensaml-soap-impl/pom.xml                         |  16 ++++++-------
 opensaml-storage-api/pom.xml                       |   5 +++++
 opensaml-testing/pom.xml                           |   2 +-
 .../core/testing/InitializerBaseTestCase.java      |   0
 .../core/testing/OpenSAMLInitBaseTestCase.java     |   0
 .../testing/TestXMLObjectProviderInitializer.java  |   0
 .../core/testing/XMLObjectBaseTestCase.java        |   0
 .../testing/XMLObjectProviderBaseTestCase.java     |   0
 .../XMLObjectProviderInitializerBaseTestCase.java  |   0
 .../opensaml/core/xml/mock/SimpleXMLObject.java    |   0
 .../core/xml/mock/SimpleXMLObjectBuilder.java      |   0
 .../core/xml/mock/SimpleXMLObjectMarshaller.java   |   0
 .../core/xml/mock/SimpleXMLObjectUnmarshaller.java |   0
 ...nsaml.core.config.ConfigurationPropertiesSource |   0
 .../services/org.opensaml.core.config.Initializer  |   0
 .../src/main}/resources/xmltooling-config.xml      |   0
 opensaml-tests-bom/pom.xml                         |   9 +++++++-
 opensaml-xacml-api/pom.xml                         |   2 +-
 opensaml-xacml-impl/pom.xml                        |  11 ++++++---
 opensaml-xacml-saml-api/pom.xml                    |   2 +-
 opensaml-xacml-saml-impl/pom.xml                   |   5 ++---
 opensaml-xmlsec-api/pom.xml                        |   9 +-------
 opensaml-xmlsec-impl/pom.xml                       |  15 +++++--------
 .../xmlsec/crypto/tests}/XMLSigningUtilTest.java   |   3 ++-
 .../tests}/KeyDerivationSupportTest.java           |   4 +++-
 254 files changed, 198 insertions(+), 141 deletions(-)

diff --git a/opensaml-bom/pom.xml b/opensaml-bom/pom.xml
index c33c17e94..c837fa881 100644
--- a/opensaml-bom/pom.xml
+++ b/opensaml-bom/pom.xml
@@ -20,7 +20,12 @@
         <dependencies>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>opensaml-core</artifactId>
+                <artifactId>opensaml-core-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>opensaml-core-impl</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
diff --git a/opensaml-core/.checkstyle b/opensaml-core-api/.checkstyle
similarity index 100%
copy from opensaml-core/.checkstyle
copy to opensaml-core-api/.checkstyle
diff --git a/opensaml-core/.gitignore b/opensaml-core-api/.gitignore
similarity index 100%
copy from opensaml-core/.gitignore
copy to opensaml-core-api/.gitignore
diff --git a/opensaml-core/pom.xml b/opensaml-core-api/pom.xml
similarity index 93%
copy from opensaml-core/pom.xml
copy to opensaml-core-api/pom.xml
index 1de55ff7b..04bc3ad88 100644
--- a/opensaml-core/pom.xml
+++ b/opensaml-core-api/pom.xml
@@ -11,9 +11,9 @@
         <relativePath>../opensaml-parent</relativePath>
     </parent>
 
-    <name>OpenSAML :: Core</name>
-    <description>Core</description>
-    <artifactId>opensaml-core</artifactId>
+    <name>OpenSAML :: Core API</name>
+    <description>Core API</description>
+    <artifactId>opensaml-core-api</artifactId>
     <packaging>jar</packaging>
 
     <properties>
@@ -28,8 +28,8 @@
         </dependency>
 
         <dependency>
-        	<groupId>com.google.guava</groupId>
-        	<artifactId>guava</artifactId>
+       	    <groupId>com.google.guava</groupId>
+       	    <artifactId>guava</artifactId>
         </dependency>
 
         <dependency>
diff --git a/opensaml-core/src/main/java/org/opensaml/core/Version.java b/opensaml-core-api/src/main/java/org/opensaml/core/Version.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/Version.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/Version.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/Configuration.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/Configuration.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/Configuration.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/Configuration.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/ConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/ConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationService.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/ConfigurationService.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationService.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/ConfigurationService.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/InitializationException.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/InitializationException.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/InitializationException.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/InitializationException.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/InitializationService.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/InitializationService.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/Initializer.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/Initializer.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/Initializer.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/Initializer.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/AbstractFilesystemConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/AbstractFilesystemConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/AbstractFilesystemConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/AbstractFilesystemConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/MapBasedConfiguration.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/MapBasedConfiguration.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/MapBasedConfiguration.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/MapBasedConfiguration.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/SystemPropertyConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/SystemPropertyConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/SystemPropertyConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/SystemPropertyConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/SystemPropertyFilesystemConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/SystemPropertyFilesystemConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/SystemPropertyFilesystemConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/SystemPropertyFilesystemConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesHolder.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesHolder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesHolder.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesHolder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/provider/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/config/provider/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/config/provider/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/config/provider/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/criterion/EntityIdCriterion.java b/opensaml-core-api/src/main/java/org/opensaml/core/criterion/EntityIdCriterion.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/criterion/EntityIdCriterion.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/criterion/EntityIdCriterion.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/criterion/SatisfyAnyCriterion.java b/opensaml-core-api/src/main/java/org/opensaml/core/criterion/SatisfyAnyCriterion.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/criterion/SatisfyAnyCriterion.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/criterion/SatisfyAnyCriterion.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/criterion/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/criterion/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/criterion/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/criterion/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/LoggerDrivenMetricFilter.java b/opensaml-core-api/src/main/java/org/opensaml/core/metrics/LoggerDrivenMetricFilter.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/LoggerDrivenMetricFilter.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/metrics/LoggerDrivenMetricFilter.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/MetricsSupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/metrics/MetricsSupport.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/MetricsSupport.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/metrics/MetricsSupport.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/metrics/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/metrics/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectMarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectMarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectUnmarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectUnmarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractElementExtensibleXMLObjectUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectMarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectMarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectUnmarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectUnmarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractExtensibleXMLObjectUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObjectBuilder.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractXMLObjectBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObjectBuilder.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AbstractXMLObjectBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/AttributeExtensibleXMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/AttributeExtensibleXMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/AttributeExtensibleXMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/AttributeExtensibleXMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/BaseBearing.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/BaseBearing.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/BaseBearing.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/BaseBearing.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/ElementExtensibleXMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/ElementExtensibleXMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/ElementExtensibleXMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/ElementExtensibleXMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/IdBearing.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/IdBearing.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/IdBearing.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/IdBearing.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/LangBearing.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/LangBearing.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/LangBearing.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/LangBearing.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/Namespace.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/Namespace.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/Namespace.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/Namespace.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/NamespaceManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/NamespaceManager.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/NamespaceManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/NamespaceManager.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/SpaceBearing.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/SpaceBearing.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/SpaceBearing.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/SpaceBearing.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObject.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObject.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObjectBuilder.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/XMLObjectBuilder.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/XMLRuntimeException.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLRuntimeException.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/XMLRuntimeException.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLRuntimeException.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/GlobalParserPoolInitializer.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/GlobalParserPoolInitializer.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/GlobalParserPoolInitializer.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/GlobalParserPoolInitializer.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurationException.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLConfigurationException.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurationException.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLConfigurationException.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderInitializer.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderInitializer.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderInitializer.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderInitializer.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistry.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistry.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistry.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistry.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/config/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/config/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectUnmarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectUnmarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/Marshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/Marshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/Marshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/Marshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/MarshallerFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/MarshallerFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/MarshallerFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/MarshallerFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/MarshallingException.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/MarshallingException.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/MarshallingException.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/MarshallingException.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/Unmarshaller.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/Unmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/Unmarshaller.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/Unmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/UnmarshallerFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/UnmarshallerFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/UnmarshallerFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/UnmarshallerFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/UnmarshallingException.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/UnmarshallingException.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/UnmarshallingException.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/UnmarshallingException.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/io/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/io/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/io/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/AbstractConditionalLoadXMLObjectLoadSaveManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/AbstractConditionalLoadXMLObjectLoadSaveManager.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/AbstractConditionalLoadXMLObjectLoadSaveManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/AbstractConditionalLoadXMLObjectLoadSaveManager.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/ConditionalLoadXMLObjectLoadSaveManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/ConditionalLoadXMLObjectLoadSaveManager.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/ConditionalLoadXMLObjectLoadSaveManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/ConditionalLoadXMLObjectLoadSaveManager.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java
similarity index 99%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java
index 21ce3936f..614965c65 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java
+++ b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManager.java
@@ -412,7 +412,7 @@ public class FilesystemLoadSaveManager<T extends XMLObject> extends AbstractCond
      * @return the constructed File instance for the target file
      * @throws IOException if there is a fatal error constructing or evaluating the candidate target path
      */
-    protected File buildFile(final String key) throws IOException {
+    public File buildFile(final String key) throws IOException {
         File parentDirectory = baseDirectory;
         if (intermediateDirectoryStrategy != null) {
             final List<String> intermediateDirs = intermediateDirectoryStrategy.apply(key);
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/MapLoadSaveManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/MapLoadSaveManager.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/MapLoadSaveManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/MapLoadSaveManager.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/XMLObjectLoadSaveManager.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/XMLObjectLoadSaveManager.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/XMLObjectLoadSaveManager.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/XMLObjectLoadSaveManager.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/persist/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSAny.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSAny.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSAny.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSAny.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBase64Binary.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBase64Binary.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBase64Binary.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBase64Binary.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBoolean.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBoolean.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBoolean.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBoolean.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBooleanValue.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBooleanValue.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSBooleanValue.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSBooleanValue.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSDateTime.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSDateTime.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSDateTime.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSDateTime.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSInteger.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSInteger.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSInteger.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSInteger.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSQName.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSQName.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSQName.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSQName.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSString.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSString.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSString.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSString.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSURI.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSURI.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/XSURI.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/XSURI.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/schema/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractSimpleSingletonFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractSimpleSingletonFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractSimpleSingletonFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractSimpleSingletonFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractSingletonFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractSingletonFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractSingletonFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractSingletonFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractWrappedSingletonFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractWrappedSingletonFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/AbstractWrappedSingletonFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AbstractWrappedSingletonFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/AttributeMap.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AttributeMap.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/AttributeMap.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/AttributeMap.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/IDIndex.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/IDIndex.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/IDIndex.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/IDIndex.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenList.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenList.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenList.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenList.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/SingletonFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/SingletonFactory.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/SingletonFactory.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/SingletonFactory.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLAttributeSupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLAttributeSupport.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLAttributeSupport.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLAttributeSupport.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectChildrenList.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectChildrenList.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectChildrenList.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectChildrenList.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectSource.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSource.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectSource.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSource.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/util/package-info.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/util/package-info.java
rename to opensaml-core-api/src/main/java/org/opensaml/core/xml/util/package-info.java
diff --git a/opensaml-core/src/main/resources/schema/XMLSchema.dtd b/opensaml-core-api/src/main/resources/schema/XMLSchema.dtd
similarity index 100%
rename from opensaml-core/src/main/resources/schema/XMLSchema.dtd
rename to opensaml-core-api/src/main/resources/schema/XMLSchema.dtd
diff --git a/opensaml-core/src/main/resources/schema/XMLSchema.xsd b/opensaml-core-api/src/main/resources/schema/XMLSchema.xsd
similarity index 100%
rename from opensaml-core/src/main/resources/schema/XMLSchema.xsd
rename to opensaml-core-api/src/main/resources/schema/XMLSchema.xsd
diff --git a/opensaml-core/src/main/resources/schema/datatypes.dtd b/opensaml-core-api/src/main/resources/schema/datatypes.dtd
similarity index 100%
rename from opensaml-core/src/main/resources/schema/datatypes.dtd
rename to opensaml-core-api/src/main/resources/schema/datatypes.dtd
diff --git a/opensaml-core/src/main/resources/schema/xml.xsd b/opensaml-core-api/src/main/resources/schema/xml.xsd
similarity index 100%
rename from opensaml-core/src/main/resources/schema/xml.xsd
rename to opensaml-core-api/src/main/resources/schema/xml.xsd
diff --git a/opensaml-core/src/main/resources/schema/xmltooling-config.xsd b/opensaml-core-api/src/main/resources/schema/xmltooling-config.xsd
similarity index 100%
rename from opensaml-core/src/main/resources/schema/xmltooling-config.xsd
rename to opensaml-core-api/src/main/resources/schema/xmltooling-config.xsd
diff --git a/opensaml-core/src/test/java/org/opensaml/core/config/ConfigurationServiceTest.java b/opensaml-core-api/src/test/java/org/opensaml/core/config/ConfigurationServiceTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/config/ConfigurationServiceTest.java
rename to opensaml-core-api/src/test/java/org/opensaml/core/config/ConfigurationServiceTest.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSourceTest.java b/opensaml-core-api/src/test/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSourceTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSourceTest.java
rename to opensaml-core-api/src/test/java/org/opensaml/core/config/provider/ClasspathConfigurationPropertiesSourceTest.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/config/provider/FilesystemConfigurationPropertiesSourceTest.java b/opensaml-core-api/src/test/java/org/opensaml/core/config/provider/FilesystemConfigurationPropertiesSourceTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/config/provider/FilesystemConfigurationPropertiesSourceTest.java
rename to opensaml-core-api/src/test/java/org/opensaml/core/config/provider/FilesystemConfigurationPropertiesSourceTest.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSourceTest.java b/opensaml-core-api/src/test/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSourceTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSourceTest.java
rename to opensaml-core-api/src/test/java/org/opensaml/core/config/provider/ThreadLocalConfigurationPropertiesSourceTest.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/metrics/MetricsSupportTest.java b/opensaml-core-api/src/test/java/org/opensaml/core/metrics/MetricsSupportTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/metrics/MetricsSupportTest.java
rename to opensaml-core-api/src/test/java/org/opensaml/core/metrics/MetricsSupportTest.java
diff --git a/opensaml-core/src/test/resources/logback-test.xml b/opensaml-core-api/src/test/resources/logback-test.xml
similarity index 100%
copy from opensaml-core/src/test/resources/logback-test.xml
copy to opensaml-core-api/src/test/resources/logback-test.xml
diff --git a/opensaml-core/src/test/resources/opensaml-config.properties b/opensaml-core-api/src/test/resources/opensaml-config.properties
similarity index 100%
rename from opensaml-core/src/test/resources/opensaml-config.properties
rename to opensaml-core-api/src/test/resources/opensaml-config.properties
diff --git a/opensaml-core/.checkstyle b/opensaml-core-impl/.checkstyle
similarity index 100%
rename from opensaml-core/.checkstyle
rename to opensaml-core-impl/.checkstyle
diff --git a/opensaml-core/.gitignore b/opensaml-core-impl/.gitignore
similarity index 100%
rename from opensaml-core/.gitignore
rename to opensaml-core-impl/.gitignore
diff --git a/opensaml-core/pom.xml b/opensaml-core-impl/pom.xml
similarity index 80%
rename from opensaml-core/pom.xml
rename to opensaml-core-impl/pom.xml
index 1de55ff7b..779d8e207 100644
--- a/opensaml-core/pom.xml
+++ b/opensaml-core-impl/pom.xml
@@ -11,25 +11,31 @@
         <relativePath>../opensaml-parent</relativePath>
     </parent>
 
-    <name>OpenSAML :: Core</name>
-    <description>Core</description>
-    <artifactId>opensaml-core</artifactId>
+    <name>OpenSAML :: Core Implementation</name>
+    <description>Core Implementation</description>
+    <artifactId>opensaml-core-impl</artifactId>
     <packaging>jar</packaging>
 
     <properties>
-        <automatic.module.name>org.opensaml.core</automatic.module.name>
+        <automatic.module.name>org.opensaml.core.impl</automatic.module.name>
     </properties>
 
     <dependencies>
         <!-- Compile Dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
         </dependency>
 
         <dependency>
-        	<groupId>com.google.guava</groupId>
-        	<artifactId>guava</artifactId>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
         </dependency>
 
         <dependency>
@@ -42,6 +48,13 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-testing</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
         <dependency>
             <groupId>org.xmlunit</groupId>
             <artifactId>xmlunit-core</artifactId>
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledCounter.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledCounter.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledCounter.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledCounter.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledHistogram.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledHistogram.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledHistogram.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledHistogram.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledMeter.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledMeter.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledMeter.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledMeter.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledMetric.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledMetric.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledMetric.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledMetric.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledTimer.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledTimer.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/DisabledTimer.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/DisabledTimer.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/FilteredMetricRegistry.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/FilteredMetricRegistry.java
similarity index 94%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/FilteredMetricRegistry.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/FilteredMetricRegistry.java
index 7da815151..3bb59b357 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/metrics/FilteredMetricRegistry.java
+++ b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/FilteredMetricRegistry.java
@@ -15,18 +15,13 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.metrics;
+package org.opensaml.core.metrics.impl;
 
 import java.util.Collection;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import org.opensaml.core.metrics.impl.DisabledCounter;
-import org.opensaml.core.metrics.impl.DisabledHistogram;
-import org.opensaml.core.metrics.impl.DisabledMeter;
-import org.opensaml.core.metrics.impl.DisabledTimer;
-
 import com.codahale.metrics.Counter;
 import com.codahale.metrics.Histogram;
 import com.codahale.metrics.Meter;
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java
similarity index 97%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java
index 28d22188e..3a622072b 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java
+++ b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/MetricRegistryInitializer.java
@@ -22,7 +22,6 @@ import javax.annotation.Nonnull;
 import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.core.config.InitializationException;
 import org.opensaml.core.config.Initializer;
-import org.opensaml.core.metrics.FilteredMetricRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/opensaml-core/src/main/java/org/opensaml/core/metrics/impl/package-info.java b/opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/metrics/impl/package-info.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/metrics/impl/package-info.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/impl/PassthroughSourceStrategy.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/persist/impl/PassthroughSourceStrategy.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/impl/PassthroughSourceStrategy.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/persist/impl/PassthroughSourceStrategy.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategy.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategy.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategy.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategy.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSAnyUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSBooleanUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSDateTimeUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSIntegerUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSQNameUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSStringUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSStringUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIBuilder.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIBuilder.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIBuilder.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIBuilder.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIImpl.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIImpl.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIImpl.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIImpl.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIMarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIMarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIMarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIMarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIUnmarshaller.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/XSURIUnmarshaller.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/XSURIUnmarshaller.java
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/package-info.java b/opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/package-info.java
similarity index 100%
rename from opensaml-core/src/main/java/org/opensaml/core/xml/schema/impl/package-info.java
rename to opensaml-core-impl/src/main/java/org/opensaml/core/xml/schema/impl/package-info.java
diff --git a/opensaml-core/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer b/opensaml-core-impl/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
similarity index 100%
rename from opensaml-core/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
rename to opensaml-core-impl/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
diff --git a/opensaml-core/src/main/resources/default-config.xml b/opensaml-core-impl/src/main/resources/default-config.xml
similarity index 100%
rename from opensaml-core/src/main/resources/default-config.xml
rename to opensaml-core-impl/src/main/resources/default-config.xml
diff --git a/opensaml-core/src/main/resources/schema-config.xml b/opensaml-core-impl/src/main/resources/schema-config.xml
similarity index 100%
rename from opensaml-core/src/main/resources/schema-config.xml
rename to opensaml-core-impl/src/main/resources/schema-config.xml
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/config/ConfigurationTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/ConfigurationTest.java
similarity index 96%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/config/ConfigurationTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/ConfigurationTest.java
index 5677e408e..4bda1da1b 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/config/ConfigurationTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/ConfigurationTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.config;
+package org.opensaml.core.xml.config.tests;
 
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeClass;
@@ -35,6 +35,10 @@ import net.shibboleth.utilities.java.support.xml.XMLParserException;
 import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.core.config.provider.ThreadLocalConfigurationPropertiesHolder;
 import org.opensaml.core.xml.XMLObjectBuilder;
+import org.opensaml.core.xml.config.XMLConfigurationException;
+import org.opensaml.core.xml.config.XMLConfigurator;
+import org.opensaml.core.xml.config.XMLObjectProviderRegistry;
+import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.Unmarshaller;
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/config/InitializationServiceTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/InitializationServiceTest.java
similarity index 91%
rename from opensaml-core/src/test/java/org/opensaml/core/config/InitializationServiceTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/InitializationServiceTest.java
index 7361698c0..88467ec2e 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/config/InitializationServiceTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/InitializationServiceTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.config;
+package org.opensaml.core.xml.config.tests;
 
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
@@ -23,6 +23,9 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.Assert;
 import java.util.Properties;
 
+import org.opensaml.core.config.ConfigurationService;
+import org.opensaml.core.config.InitializationException;
+import org.opensaml.core.config.InitializationService;
 import org.opensaml.core.config.provider.ThreadLocalConfigurationPropertiesHolder;
 import org.opensaml.core.xml.config.XMLObjectProviderRegistry;
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/config/XMLObjectProviderInitializerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/XMLObjectProviderInitializerTest.java
similarity index 90%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/config/XMLObjectProviderInitializerTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/XMLObjectProviderInitializerTest.java
index dd68e12c8..6c359f1cc 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/config/XMLObjectProviderInitializerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/config/tests/XMLObjectProviderInitializerTest.java
@@ -15,13 +15,15 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.config;
+package org.opensaml.core.xml.config.tests;
 
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.core.config.Initializer;
 import org.opensaml.core.testing.XMLObjectProviderInitializerBaseTestCase;
+import org.opensaml.core.xml.config.XMLObjectProviderInitializer;
+import org.opensaml.core.xml.config.XMLObjectProviderRegistry;
 import org.opensaml.core.xml.schema.XSString;
 
 /**
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManagerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/FilesystemLoadSaveManagerTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManagerTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/FilesystemLoadSaveManagerTest.java
index 6297d49d1..4de7fc617 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/persist/FilesystemLoadSaveManagerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/FilesystemLoadSaveManagerTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.persist;
+package org.opensaml.core.xml.persist.impl;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -39,6 +39,7 @@ import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.XMLRuntimeException;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.mock.SimpleXMLObject;
+import org.opensaml.core.xml.persist.FilesystemLoadSaveManager;
 import org.opensaml.core.xml.persist.impl.PassthroughSourceStrategy;
 import org.opensaml.core.xml.persist.impl.SegmentingIntermediateDirectoryStrategy;
 import org.opensaml.core.xml.util.XMLObjectSource;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/persist/MapLoadSaveManagerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/MapLoadSaveManagerTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/persist/MapLoadSaveManagerTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/MapLoadSaveManagerTest.java
index aa1a53859..f3d53ec4f 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/persist/MapLoadSaveManagerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/MapLoadSaveManagerTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.persist;
+package org.opensaml.core.xml.persist.impl;
 
 import java.io.IOException;
 import java.time.Instant;
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.mock.SimpleXMLObject;
+import org.opensaml.core.xml.persist.MapLoadSaveManager;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategyTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategyTest.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategyTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/persist/impl/SegmentingIntermediateDirectoryStrategyTest.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBase64BinaryTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
similarity index 95%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBase64BinaryTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
index 21a28c5ce..fe63c64e9 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBase64BinaryTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSBase64Binary;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +44,7 @@ public class XSBase64BinaryTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsBase64Binary.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsBase64Binary.xml";
         expectedXMLObjectQName = new QName("urn:example.org:foo", "bar", "foo");
         expectedValue = "abcdABCDE===";
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBooleanTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
similarity index 94%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBooleanTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
index f79d9bbd0..9991be0b8 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSBooleanTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,8 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSBoolean;
+import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +45,7 @@ public class XSBooleanTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsBoolean.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsBoolean.xml";
         expectedXMLObjectQName = new QName("urn:example.org:foo", "bar", "foo");
         expectedValue = "true";
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSDateTimeTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
similarity index 96%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSDateTimeTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
index 054f625a9..7b91fbcb0 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSDateTimeTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -34,6 +34,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSDateTime;
 import org.w3c.dom.Document;
 
 /**
@@ -58,7 +59,7 @@ public class XSDateTimeTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        String testDocumentLocation = "/org/opensaml/core/xml/schema/xsDateTime-basic.xml";
+        String testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsDateTime-basic.xml";
         
         XMLObjectBuilder<XSDateTime> xsdtBuilder = builderFactory.getBuilderOrThrow(XSDateTime.TYPE_NAME);
         XSDateTime xsDateTime = xsdtBuilder.buildObject(expectedXMLObjectQName, XSDateTime.TYPE_NAME);
@@ -79,7 +80,7 @@ public class XSDateTimeTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testUnmarshall() throws XMLParserException, UnmarshallingException{
-        String testDocumentLocation = "/org/opensaml/core/xml/schema/xsDateTime-basic.xml";
+        String testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsDateTime-basic.xml";
         
         Document document = parserPool.parse(XSDateTimeTest.class.getResourceAsStream(testDocumentLocation));
 
@@ -100,7 +101,7 @@ public class XSDateTimeTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testUnmarshallCanonical() throws XMLParserException, UnmarshallingException{
-        String testDocumentLocation = "/org/opensaml/core/xml/schema/xsDateTime-canonical.xml";
+        String testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsDateTime-canonical.xml";
         
         Document document = parserPool.parse(XSDateTimeTest.class.getResourceAsStream(testDocumentLocation));
 
@@ -121,7 +122,7 @@ public class XSDateTimeTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testUnmarshallNoFractional() throws XMLParserException, UnmarshallingException{
-        String testDocumentLocation = "/org/opensaml/core/xml/schema/xsDateTime-nofractional.xml";
+        String testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsDateTime-nofractional.xml";
         expectedValue = expectedValue.truncatedTo(ChronoUnit.SECONDS);
         
         Document document = parserPool.parse(XSDateTimeTest.class.getResourceAsStream(testDocumentLocation));
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSIntegerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
similarity index 95%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSIntegerTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
index 6d3372f38..37383d706 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSIntegerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSInteger;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +44,7 @@ public class XSIntegerTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsInteger.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsInteger.xml";
         expectedXMLObjectQName = new QName("urn:example.org:foo", "bar", "foo");
         expectedValue = 1967;
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSQNameTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
similarity index 95%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSQNameTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
index fd38937b6..2a437c488 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSQNameTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSQName;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +44,7 @@ public class XSQNameTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsQName.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsQName.xml";
         expectedXMLObjectQName = new QName("urn:example.org:foo", "bar", "foo");
         expectedValue = new QName("urn:example.org:baz", "SomeValue", "baz");
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSStringTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
similarity index 95%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSStringTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
index 3032c74e8..6f7fa8f67 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSStringTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSString;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +44,7 @@ public class XSStringTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsString.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsString.xml";
         expectedXMLObjectQName = new QName("urn:example.org:foo", "bar", "foo");
         expectedValue = "test";
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSURITest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
similarity index 95%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSURITest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
index 8d03f2f28..af9583361 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/schema/XSURITest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.schema;
+package org.opensaml.core.xml.schema.impl;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,7 @@ import org.opensaml.core.xml.io.Marshaller;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.schema.XSURI;
 import org.w3c.dom.Document;
 
 /**
@@ -43,7 +44,7 @@ public class XSURITest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     protected void setUp() throws Exception{
-        testDocumentLocation = "/org/opensaml/core/xml/schema/xsURI.xml";
+        testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsURI.xml";
         expectedXMLObjectQName = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AttributeValue", "saml");
         expectedValue = "urn:test:foo:bar:baz";
     }
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/AbstractXMLObjectTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/AbstractXMLObjectTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/AbstractXMLObjectTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/AbstractXMLObjectTest.java
index c0e4e2b68..75a350680 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/AbstractXMLObjectTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/AbstractXMLObjectTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -23,6 +23,7 @@ import java.io.IOException;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
+import org.opensaml.core.xml.AbstractXMLObject;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.core.xml.mock.SimpleXMLObject;
 import org.opensaml.core.xml.util.XMLObjectSource;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/ElementProxyTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/ElementProxyTest.java
similarity index 97%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/ElementProxyTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/ElementProxyTest.java
index a37e5fc64..cee37e0ff 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/ElementProxyTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/ElementProxyTest.java
@@ -15,13 +15,14 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
 import net.shibboleth.utilities.java.support.xml.XMLParserException;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
+import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/IDAttributeTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/IDAttributeTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/IDAttributeTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/IDAttributeTest.java
index 2bda8742d..93d41ba66 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/IDAttributeTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/IDAttributeTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
@@ -28,6 +28,7 @@ import net.shibboleth.utilities.java.support.xml.QNameSupport;
 import net.shibboleth.utilities.java.support.xml.XMLParserException;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
+import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.core.xml.io.Unmarshaller;
 import org.opensaml.core.xml.io.UnmarshallingException;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/MarshallingTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/MarshallingTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/MarshallingTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/MarshallingTest.java
index 839be70dd..f234aeea4 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/MarshallingTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/MarshallingTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/NamespaceManagerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/NamespaceManagerTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
index a173f92f7..d4a8a9905 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/NamespaceManagerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -30,6 +30,10 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.XMLConstants;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
+import org.opensaml.core.xml.Namespace;
+import org.opensaml.core.xml.NamespaceManager;
+import org.opensaml.core.xml.XMLObject;
+import org.opensaml.core.xml.XMLObjectBuilder;
 import org.opensaml.core.xml.schema.XSAny;
 
 /**
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingSecurityTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingSecurityTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingSecurityTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingSecurityTest.java
index 5324ffa0e..b500f2044 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingSecurityTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingSecurityTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.io.Unmarshaller;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingTest.java
index 3e3ab0647..e2b18d11b 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/UnmarshallingTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/UnmarshallingTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import java.util.List;
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectXSIAttribsTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/XMLObjectXSIAttribsTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectXSIAttribsTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/XMLObjectXSIAttribsTest.java
index 6bdb7b2b5..9b7d46bfb 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectXSIAttribsTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/XMLObjectXSIAttribsTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml;
+package org.opensaml.core.xml.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/util/AttributeMapTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/util/AttributeMapTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
index 9f00ec2d4..ad7e6eeb5 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/util/AttributeMapTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.util;
+package org.opensaml.core.xml.util.tests;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -34,6 +34,7 @@ import org.opensaml.core.xml.Namespace;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.XMLObjectBuilder;
 import org.opensaml.core.xml.schema.XSAny;
+import org.opensaml.core.xml.util.AttributeMap;
 
 /**
  * Test the NamespaceManger used by XMLObjects.
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenListTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/IndexedXMLObjectChildrenListTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenListTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/IndexedXMLObjectChildrenListTest.java
index acb6fc689..c154f2bbd 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/util/IndexedXMLObjectChildrenListTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/IndexedXMLObjectChildrenListTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.util;
+package org.opensaml.core.xml.util.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
@@ -26,6 +26,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.mock.SimpleXMLObject;
 import org.opensaml.core.xml.mock.SimpleXMLObjectBuilder;
+import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
 
 /**
  * Test case for {@link org.opensaml.core.xml.util.IndexedXMLObjectChildrenList}. Note that this test only tests those
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectChildrenListTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectChildrenListTest.java
similarity index 98%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectChildrenListTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectChildrenListTest.java
index 278ed71a5..ea51ec0a3 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectChildrenListTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectChildrenListTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.util;
+package org.opensaml.core.xml.util.tests;
 
 import org.testng.annotations.Test;
 import org.testng.Assert;
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.opensaml.core.xml.mock.SimpleXMLObject;
 import org.opensaml.core.xml.mock.SimpleXMLObjectBuilder;
+import org.opensaml.core.xml.util.XMLObjectChildrenList;
 
 /**
  * Test case for {@link org.opensaml.core.xml.util.XMLObjectChildrenList}
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSourceTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSourceTest.java
similarity index 96%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSourceTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSourceTest.java
index d8d719877..2e6317d1a 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSourceTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSourceTest.java
@@ -15,10 +15,11 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.util;
+package org.opensaml.core.xml.util.tests;
 
 import java.util.Arrays;
 
+import org.opensaml.core.xml.util.XMLObjectSource;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSupportTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSupportTest.java
similarity index 99%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSupportTest.java
rename to opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSupportTest.java
index fa43bd44d..42e8b8fcc 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSupportTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/XMLObjectSupportTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.core.xml.util;
+package org.opensaml.core.xml.util.tests;
 
 import javax.xml.namespace.QName;
 
@@ -27,6 +27,7 @@ import org.opensaml.core.xml.io.UnmarshallingException;
 import org.opensaml.core.xml.mock.SimpleXMLObject;
 import org.opensaml.core.xml.mock.SimpleXMLObjectBuilder;
 import org.opensaml.core.xml.schema.XSString;
+import org.opensaml.core.xml.util.XMLObjectSupport;
 import org.opensaml.core.xml.util.XMLObjectSupport.CloneOutputOption;
 import org.testng.Assert;
 import org.testng.annotations.Test;
diff --git a/opensaml-core/src/test/resources/logback-test.xml b/opensaml-core-impl/src/test/resources/logback-test.xml
similarity index 100%
rename from opensaml-core/src/test/resources/logback-test.xml
rename to opensaml-core-impl/src/test/resources/logback-test.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttribute.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttribute.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttribute.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttribute.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeGlobal.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeGlobal.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeGlobal.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeGlobal.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeWithAttributeMap.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeWithAttributeMap.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeWithAttributeMap.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeWithAttributeMap.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeWithChildrenList.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeWithChildrenList.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/IDAttributeWithChildrenList.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/IDAttributeWithChildrenList.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SOAPMessage.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SOAPMessage.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SOAPMessage.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SOAPMessage.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SOAPMessageWithContent.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SOAPMessageWithContent.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SOAPMessageWithContent.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SOAPMessageWithContent.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNil.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNil.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNil.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNil.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNoNamespaceSchemaLocation.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNoNamespaceSchemaLocation.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNoNamespaceSchemaLocation.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectNoNamespaceSchemaLocation.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectSchemaLocation.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectSchemaLocation.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectSchemaLocation.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectSchemaLocation.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithAttribute.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithAttribute.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithAttribute.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithAttribute.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCDATAInContent.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCDATAInContent.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCDATAInContent.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCDATAInContent.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithChildren.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithChildren.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithChildren.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithChildren.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentBetweenChildren.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentBetweenChildren.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentBetweenChildren.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentBetweenChildren.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentInContent.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentInContent.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentInContent.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithCommentInContent.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithContent.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithContent.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithContent.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/SimpleXMLObjectWithContent.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/UnknownContent.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/UnknownContent.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/UnknownContent.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/UnknownContent.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/config/IDAttributeConfiguration.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/IDAttributeConfiguration.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/config/IDAttributeConfiguration.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/IDAttributeConfiguration.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/config/InvalidConfiguration.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/InvalidConfiguration.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/config/InvalidConfiguration.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/InvalidConfiguration.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/config/NonexistantClassConfiguration.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/NonexistantClassConfiguration.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/config/NonexistantClassConfiguration.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/NonexistantClassConfiguration.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/config/SimpleXMLObjectConfiguration.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/SimpleXMLObjectConfiguration.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/config/SimpleXMLObjectConfiguration.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/config/SimpleXMLObjectConfiguration.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/keys.jks b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/keys.jks
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/keys.jks
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/keys.jks
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsBase64Binary.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsBase64Binary.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsBase64Binary.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsBase64Binary.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsBoolean.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsBoolean.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsBoolean.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsBoolean.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-basic.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-basic.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-basic.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-basic.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-canonical.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-canonical.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-canonical.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-canonical.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-nofractional.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-nofractional.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsDateTime-nofractional.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsDateTime-nofractional.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsInteger.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsInteger.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsInteger.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsInteger.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsQName.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsQName.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsQName.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsQName.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsString.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsString.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsString.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsString.xml
diff --git a/opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsURI.xml b/opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsURI.xml
similarity index 100%
rename from opensaml-core/src/test/resources/org/opensaml/core/xml/schema/xsURI.xml
rename to opensaml-core-impl/src/test/resources/org/opensaml/core/xml/schema/impl/xsURI.xml
diff --git a/opensaml-messaging-api/pom.xml b/opensaml-messaging-api/pom.xml
index 8039bc2f4..e7185abc8 100644
--- a/opensaml-messaging-api/pom.xml
+++ b/opensaml-messaging-api/pom.xml
@@ -25,7 +25,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-messaging-impl/pom.xml b/opensaml-messaging-impl/pom.xml
index 3a65ab6d7..80a0320ef 100644
--- a/opensaml-messaging-impl/pom.xml
+++ b/opensaml-messaging-impl/pom.xml
@@ -24,7 +24,7 @@
 		<!-- Compile Dependencies -->
 		<dependency>
 			<groupId>${project.groupId}</groupId>
-			<artifactId>opensaml-core</artifactId>
+			<artifactId>opensaml-core-api</artifactId>
 			<version>${project.version}</version>
 		</dependency>
 		<dependency>
@@ -46,11 +46,16 @@
 		<!-- Runtime Dependencies -->
 
 		<!-- Test Dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-impl</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
 		<dependency>
 			<groupId>${project.groupId}</groupId>
-			<artifactId>opensaml-core</artifactId>
+			<artifactId>opensaml-testing</artifactId>
 			<version>${project.version}</version>
-			<type>test-jar</type>
 			<scope>test</scope>
 		</dependency>
         <dependency>
diff --git a/opensaml-parent/pom.xml b/opensaml-parent/pom.xml
index 7707bb1f1..af583e0a4 100644
--- a/opensaml-parent/pom.xml
+++ b/opensaml-parent/pom.xml
@@ -27,7 +27,7 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>../opensaml-core</module>
+        <module>../opensaml-core-api</module>
         <module>../opensaml-storage-api</module>
         <module>../opensaml-security-api</module>
         <module>../opensaml-xmlsec-api</module>
@@ -36,7 +36,9 @@
         <module>../opensaml-saml-api</module>
         <module>../opensaml-xacml-api</module>
         <module>../opensaml-xacml-saml-api</module>
+        <module>../opensaml-profile-api</module>
 
+        <module>../opensaml-core-impl</module>
         <module>../opensaml-storage-impl</module>
         <module>../opensaml-security-impl</module>
         <module>../opensaml-xmlsec-impl</module>
@@ -45,7 +47,6 @@
         <module>../opensaml-saml-impl</module>
         <module>../opensaml-xacml-impl</module>
         <module>../opensaml-xacml-saml-impl</module>
-        <module>../opensaml-profile-api</module>
         <module>../opensaml-profile-impl</module>
         
         <module>../opensaml-spring</module>
diff --git a/opensaml-profile-api/pom.xml b/opensaml-profile-api/pom.xml
index 86c25f4c5..cc55cb948 100644
--- a/opensaml-profile-api/pom.xml
+++ b/opensaml-profile-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/opensaml-profile-impl/pom.xml b/opensaml-profile-impl/pom.xml
index 2201e2654..6a0f35678 100644
--- a/opensaml-profile-impl/pom.xml
+++ b/opensaml-profile-impl/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -73,14 +73,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>opensaml-testing</artifactId>
diff --git a/opensaml-saml-api/pom.xml b/opensaml-saml-api/pom.xml
index be229a846..95a40ecc5 100644
--- a/opensaml-saml-api/pom.xml
+++ b/opensaml-saml-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-saml-impl/pom.xml b/opensaml-saml-impl/pom.xml
index 1adc28eae..583d44506 100644
--- a/opensaml-saml-impl/pom.xml
+++ b/opensaml-saml-impl/pom.xml
@@ -24,7 +24,13 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-impl</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -145,13 +151,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>opensaml-storage-impl</artifactId>
diff --git a/opensaml-security-api/pom.xml b/opensaml-security-api/pom.xml
index b8b0ac13a..18c0b7270 100644
--- a/opensaml-security-api/pom.xml
+++ b/opensaml-security-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -77,14 +77,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
         <dependency>
             <groupId>${shib-shared.groupId}</groupId>
             <artifactId>shib-networking-spring</artifactId>
diff --git a/opensaml-security-api/src/main/java/org/opensaml/security/crypto/ec/curves/AbstractNamedCurve.java b/opensaml-security-api/src/main/java/org/opensaml/security/crypto/ec/curves/AbstractNamedCurve.java
index 2322065bd..f19ec76ed 100644
--- a/opensaml-security-api/src/main/java/org/opensaml/security/crypto/ec/curves/AbstractNamedCurve.java
+++ b/opensaml-security-api/src/main/java/org/opensaml/security/crypto/ec/curves/AbstractNamedCurve.java
@@ -79,7 +79,7 @@ public abstract class AbstractNamedCurve extends AbstractInitializableComponent
      * 
      * @return the parameter spec instance, or null if can not be built
      */
-    @Nullable protected ECParameterSpec buildParameterSpec() {
+    @Nullable public ECParameterSpec buildParameterSpec() {
         ECParameterSpec jcaSpec = ECSupport.convert(ECNamedCurveTable.getParameterSpec(getObjectIdentifier()));
         if (jcaSpec != null) {
             log.trace("Inited NamedCurve ECParameterSpec from BC curve table for name '{}', OID '{}'",
diff --git a/opensaml-security-impl/pom.xml b/opensaml-security-impl/pom.xml
index de4f02fc8..7f59f0ee7 100644
--- a/opensaml-security-impl/pom.xml
+++ b/opensaml-security-impl/pom.xml
@@ -24,7 +24,13 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
         
@@ -78,12 +84,11 @@
         <!-- Test Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-impl</artifactId>
             <version>${project.version}</version>
-            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
-        
+
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>opensaml-testing</artifactId>
@@ -97,6 +102,12 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <scope>test</scope>
+        </dependency>
+
         <dependency>
             <groupId>org.ldaptive</groupId>
             <artifactId>ldaptive</artifactId>
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/BaseDHTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/BaseDHTest.java
similarity index 96%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/BaseDHTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/BaseDHTest.java
index d6bf6b44a..95ad15747 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/BaseDHTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/BaseDHTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.dh;
+package org.opensaml.security.crypto.dh.tests;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.testng.annotations.DataProvider;
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/DHSupportTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/DHSupportTest.java
similarity index 98%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/DHSupportTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/DHSupportTest.java
index 6edc2dc0a..7699d3a7b 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/dh/DHSupportTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/dh/tests/DHSupportTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.dh;
+package org.opensaml.security.crypto.dh.tests;
 
 import java.math.BigInteger;
 import java.security.KeyFactory;
@@ -26,6 +26,7 @@ import javax.crypto.interfaces.DHPublicKey;
 import javax.crypto.spec.DHPublicKeySpec;
 
 import org.opensaml.security.crypto.JCAConstants;
+import org.opensaml.security.crypto.dh.DHSupport;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/curves/NamedCurvesTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/curves/tests/NamedCurvesTest.java
similarity index 96%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/curves/NamedCurvesTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/curves/tests/NamedCurvesTest.java
index 92cf3e3a1..a6a8fe09d 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/curves/NamedCurvesTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/curves/tests/NamedCurvesTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.ec.curves;
+package org.opensaml.security.crypto.ec.curves.tests;
 
 import java.security.interfaces.ECPublicKey;
 import java.security.spec.ECGenParameterSpec;
@@ -25,11 +25,12 @@ import java.util.Set;
 import org.bouncycastle.jce.ECNamedCurveTable;
 import org.opensaml.security.crypto.JCAConstants;
 import org.opensaml.security.crypto.KeySupport;
-import org.opensaml.security.crypto.ec.BaseNamedCurveTest;
 import org.opensaml.security.crypto.ec.ECSupport;
 import org.opensaml.security.crypto.ec.EnhancedECParameterSpec;
 import org.opensaml.security.crypto.ec.NamedCurve;
 import org.opensaml.security.crypto.ec.NamedCurveRegistry;
+import org.opensaml.security.crypto.ec.curves.AbstractNamedCurve;
+import org.opensaml.security.crypto.ec.tests.BaseNamedCurveTest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/BaseNamedCurveTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/BaseNamedCurveTest.java
similarity index 96%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/BaseNamedCurveTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/BaseNamedCurveTest.java
index be6b4a263..54a3c63b9 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/BaseNamedCurveTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/BaseNamedCurveTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.ec;
+package org.opensaml.security.crypto.ec.tests;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.testng.annotations.DataProvider;
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/ECSupportTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/ECSupportTest.java
similarity index 97%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/ECSupportTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/ECSupportTest.java
index 82d0d564c..0cd95d8ab 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/ECSupportTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/ECSupportTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.ec;
+package org.opensaml.security.crypto.ec.tests;
 
 import java.math.BigInteger;
 import java.security.KeyPair;
@@ -30,6 +30,8 @@ import java.util.Set;
 import org.bouncycastle.jce.ECNamedCurveTable;
 import org.opensaml.security.crypto.JCAConstants;
 import org.opensaml.security.crypto.KeySupport;
+import org.opensaml.security.crypto.ec.ECSupport;
+import org.opensaml.security.crypto.ec.NamedCurve;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/EnhancedECParameterSpecTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/EnhancedECParameterSpecTest.java
similarity index 98%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/EnhancedECParameterSpecTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/EnhancedECParameterSpecTest.java
index 8cc8a9205..70e7abb5f 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/EnhancedECParameterSpecTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/EnhancedECParameterSpecTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.ec;
+package org.opensaml.security.crypto.ec.tests;
 
 import java.security.KeyPairGenerator;
 import java.security.interfaces.ECPublicKey;
diff --git a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/NamedCurveRegistryTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/NamedCurveRegistryTest.java
similarity index 98%
rename from opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/NamedCurveRegistryTest.java
rename to opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/NamedCurveRegistryTest.java
index 3731e8497..05f838f1c 100644
--- a/opensaml-security-api/src/test/java/org/opensaml/security/crypto/ec/NamedCurveRegistryTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/crypto/ec/tests/NamedCurveRegistryTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.security.crypto.ec;
+package org.opensaml.security.crypto.ec.tests;
 
 import java.security.spec.ECParameterSpec;
 import java.util.Properties;
@@ -26,6 +26,9 @@ import org.bouncycastle.jce.ECNamedCurveTable;
 import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.core.config.provider.ThreadLocalConfigurationPropertiesHolder;
 import org.opensaml.security.config.GlobalNamedCurveRegistryInitializer;
+import org.opensaml.security.crypto.ec.ECSupport;
+import org.opensaml.security.crypto.ec.NamedCurve;
+import org.opensaml.security.crypto.ec.NamedCurveRegistry;
 import org.opensaml.security.crypto.ec.curves.Secp256r1;
 import org.opensaml.security.crypto.ec.curves.Secp384r1;
 import org.opensaml.security.crypto.ec.curves.Secp521r1;
diff --git a/opensaml-soap-api/pom.xml b/opensaml-soap-api/pom.xml
index 57f83337e..19c06ffa3 100644
--- a/opensaml-soap-api/pom.xml
+++ b/opensaml-soap-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-soap-impl/pom.xml b/opensaml-soap-impl/pom.xml
index 518a2695a..471e201e4 100644
--- a/opensaml-soap-impl/pom.xml
+++ b/opensaml-soap-impl/pom.xml
@@ -24,7 +24,13 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-impl</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -86,14 +92,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>opensaml-testing</artifactId>
diff --git a/opensaml-storage-api/pom.xml b/opensaml-storage-api/pom.xml
index 64efbb0ad..f9ad91d2f 100644
--- a/opensaml-storage-api/pom.xml
+++ b/opensaml-storage-api/pom.xml
@@ -22,6 +22,11 @@
 
     <dependencies>
         <!-- Compile Dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
 
         <!-- Provided Dependencies -->
 
diff --git a/opensaml-testing/pom.xml b/opensaml-testing/pom.xml
index 2ac7152ca..10ac545ad 100644
--- a/opensaml-testing/pom.xml
+++ b/opensaml-testing/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/InitializerBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/InitializerBaseTestCase.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/InitializerBaseTestCase.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/InitializerBaseTestCase.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/OpenSAMLInitBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/OpenSAMLInitBaseTestCase.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/OpenSAMLInitBaseTestCase.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/OpenSAMLInitBaseTestCase.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/TestXMLObjectProviderInitializer.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/TestXMLObjectProviderInitializer.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/TestXMLObjectProviderInitializer.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/TestXMLObjectProviderInitializer.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectProviderBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectProviderBaseTestCase.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectProviderBaseTestCase.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectProviderBaseTestCase.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectProviderInitializerBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectProviderInitializerBaseTestCase.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/testing/XMLObjectProviderInitializerBaseTestCase.java
rename to opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectProviderInitializerBaseTestCase.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObject.java b/opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObject.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObject.java
rename to opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObject.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectBuilder.java b/opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectBuilder.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectBuilder.java
rename to opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectBuilder.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectMarshaller.java b/opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectMarshaller.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectMarshaller.java
rename to opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectMarshaller.java
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectUnmarshaller.java b/opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectUnmarshaller.java
similarity index 100%
rename from opensaml-core/src/test/java/org/opensaml/core/xml/mock/SimpleXMLObjectUnmarshaller.java
rename to opensaml-testing/src/main/java/org/opensaml/core/xml/mock/SimpleXMLObjectUnmarshaller.java
diff --git a/opensaml-core/src/test/resources/META-INF/services/org.opensaml.core.config.ConfigurationPropertiesSource b/opensaml-testing/src/main/resources/META-INF/services/org.opensaml.core.config.ConfigurationPropertiesSource
similarity index 100%
rename from opensaml-core/src/test/resources/META-INF/services/org.opensaml.core.config.ConfigurationPropertiesSource
rename to opensaml-testing/src/main/resources/META-INF/services/org.opensaml.core.config.ConfigurationPropertiesSource
diff --git a/opensaml-core/src/test/resources/META-INF/services/org.opensaml.core.config.Initializer b/opensaml-testing/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
similarity index 100%
rename from opensaml-core/src/test/resources/META-INF/services/org.opensaml.core.config.Initializer
rename to opensaml-testing/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
diff --git a/opensaml-core/src/test/resources/xmltooling-config.xml b/opensaml-testing/src/main/resources/xmltooling-config.xml
similarity index 100%
rename from opensaml-core/src/test/resources/xmltooling-config.xml
rename to opensaml-testing/src/main/resources/xmltooling-config.xml
diff --git a/opensaml-tests-bom/pom.xml b/opensaml-tests-bom/pom.xml
index 19866bda5..91ea7d1f2 100644
--- a/opensaml-tests-bom/pom.xml
+++ b/opensaml-tests-bom/pom.xml
@@ -20,7 +20,14 @@
         <dependencies>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>opensaml-core</artifactId>
+                <artifactId>opensaml-core-api</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>opensaml-core-impl</artifactId>
                 <version>${project.version}</version>
                 <type>test-jar</type>
                 <scope>test</scope>
diff --git a/opensaml-xacml-api/pom.xml b/opensaml-xacml-api/pom.xml
index 3bd711c39..7f0003575 100644
--- a/opensaml-xacml-api/pom.xml
+++ b/opensaml-xacml-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-xacml-impl/pom.xml b/opensaml-xacml-impl/pom.xml
index 9f3e46352..691c886f3 100644
--- a/opensaml-xacml-impl/pom.xml
+++ b/opensaml-xacml-impl/pom.xml
@@ -24,7 +24,13 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-impl</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -46,9 +52,8 @@
         <!-- Test Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-testing</artifactId>
             <version>${project.version}</version>
-            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
 
diff --git a/opensaml-xacml-saml-api/pom.xml b/opensaml-xacml-saml-api/pom.xml
index d06717c5f..26bffbfb9 100644
--- a/opensaml-xacml-saml-api/pom.xml
+++ b/opensaml-xacml-saml-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
diff --git a/opensaml-xacml-saml-impl/pom.xml b/opensaml-xacml-saml-impl/pom.xml
index ab2b1dc1a..eed4120a4 100644
--- a/opensaml-xacml-saml-impl/pom.xml
+++ b/opensaml-xacml-saml-impl/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <!-- TODO this should be removed -->
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -62,9 +62,8 @@
         <!-- Test Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-testing</artifactId>
             <version>${project.version}</version>
-            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         
diff --git a/opensaml-xmlsec-api/pom.xml b/opensaml-xmlsec-api/pom.xml
index 7773ee7b5..a4e2f6b30 100644
--- a/opensaml-xmlsec-api/pom.xml
+++ b/opensaml-xmlsec-api/pom.xml
@@ -24,7 +24,7 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -60,13 +60,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     
     <scm>
diff --git a/opensaml-xmlsec-impl/pom.xml b/opensaml-xmlsec-impl/pom.xml
index 284fe26cc..d0026856b 100644
--- a/opensaml-xmlsec-impl/pom.xml
+++ b/opensaml-xmlsec-impl/pom.xml
@@ -24,7 +24,12 @@
         <!-- Compile Dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
+            <artifactId>opensaml-core-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>opensaml-core-impl</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
@@ -70,14 +75,6 @@
         <!-- Runtime Dependencies -->
 
         <!-- Test Dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>opensaml-core</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>opensaml-testing</artifactId>
diff --git a/opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/crypto/XMLSigningUtilTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/crypto/tests/XMLSigningUtilTest.java
similarity index 98%
rename from opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/crypto/XMLSigningUtilTest.java
rename to opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/crypto/tests/XMLSigningUtilTest.java
index 4b9de9eb8..195331b59 100644
--- a/opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/crypto/XMLSigningUtilTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/crypto/tests/XMLSigningUtilTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.xmlsec.crypto;
+package org.opensaml.xmlsec.crypto.tests;
 
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
@@ -37,6 +37,7 @@ import org.opensaml.security.SecurityException;
 import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.CredentialSupport;
 import org.opensaml.security.crypto.KeySupport;
+import org.opensaml.xmlsec.crypto.XMLSigningUtil;
 import org.opensaml.xmlsec.signature.support.SignatureConstants;
 
 /**
diff --git a/opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/derivation/KeyDerivationSupportTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/derivation/tests/KeyDerivationSupportTest.java
similarity index 95%
rename from opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/derivation/KeyDerivationSupportTest.java
rename to opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/derivation/tests/KeyDerivationSupportTest.java
index 6aeb75711..8b4d32aec 100644
--- a/opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/derivation/KeyDerivationSupportTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/derivation/tests/KeyDerivationSupportTest.java
@@ -15,10 +15,12 @@
  * limitations under the License.
  */
 
-package org.opensaml.xmlsec.derivation;
+package org.opensaml.xmlsec.derivation.tests;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.security.crypto.JCAConstants;
+import org.opensaml.xmlsec.derivation.KeyDerivationException;
+import org.opensaml.xmlsec.derivation.KeyDerivationSupport;
 import org.opensaml.xmlsec.encryption.support.EncryptionConstants;
 import org.testng.Assert;
 import org.testng.annotations.Test;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list