This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch feature/SLING-13050-integration-tests
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git

commit 86d5eee4b42c18de851e7e73a0bc47b1c50c6538
Author: Stefan Seifert <[email protected]>
AuthorDate: Fri Jan 9 15:27:25 2026 +0100

    introduce parent pom and reactor pom and move main module to "impl" folder
---
 .gitignore                                         |   2 +-
 bnd.bnd => impl/bnd.bnd                            |   0
 pom.xml => impl/pom.xml                            |   3 +
 .../sling/models/impl/AdapterImplementations.java  |   0
 .../models/impl/DisposalCallbackRegistryImpl.java  |   0
 .../apache/sling/models/impl/ExportServlet.java    |   0
 .../models/impl/FirstImplementationPicker.java     |   0
 .../models/impl/MapBackedInvocationHandler.java    |   0
 .../sling/models/impl/ModelAdapterFactory.java     |   0
 .../impl/ModelAdapterFactoryConfiguration.java     |   0
 .../models/impl/ModelConfigurationPrinter.java     |   0
 .../models/impl/ModelPackageBundleListener.java    |   0
 .../apache/sling/models/impl/ReflectionUtil.java   |   0
 .../ResourceOverridingJakartaRequestWrapper.java   |   0
 .../impl/ResourceOverridingRequestWrapper.java     |   0
 .../impl/ResourceTypeBasedResourcePicker.java      |   0
 .../java/org/apache/sling/models/impl/Result.java  |   0
 .../impl/SlingModelsScriptEngineFactory.java       |   0
 .../sling/models/impl/ThreadInvocationCounter.java |   0
 .../models/impl/injectors/AbstractInjector.java    |   0
 .../models/impl/injectors/BindingsInjector.java    |   0
 .../impl/injectors/ChildResourceInjector.java      |   0
 .../models/impl/injectors/OSGiServiceInjector.java |   0
 .../impl/injectors/RequestAttributeInjector.java   |   0
 .../impl/injectors/ResourcePathInjector.java       |   0
 .../sling/models/impl/injectors/SelfInjector.java  |   0
 .../models/impl/injectors/SlingObjectInjector.java |   0
 .../models/impl/injectors/ValueMapInjector.java    |   0
 .../impl/model/AbstractInjectableElement.java      |   0
 .../models/impl/model/ConstructorParameter.java    |   0
 .../sling/models/impl/model/InjectableElement.java |   0
 .../sling/models/impl/model/InjectableField.java   |   0
 .../sling/models/impl/model/InjectableMethod.java  |   0
 .../apache/sling/models/impl/model/ModelClass.java |   0
 .../models/impl/model/ModelClassConstructor.java   |   0
 .../impl/model/OptionalTypedInjectableElement.java |   0
 .../impl/model/ParameterCountInjectComparator.java |   0
 .../impl/via/AbstractResourceTypeViaProvider.java  |   0
 .../models/impl/via/BeanPropertyViaProvider.java   |   0
 .../models/impl/via/ChildResourceViaProvider.java  |   0
 .../impl/via/ForcedResourceTypeViaProvider.java    |   0
 .../impl/via/OriginalResourceTypeViaProvider.java  |   0
 .../impl/via/ResourceSuperTypeViaProvider.java     |   0
 .../ResourceTypeForcingJakartaRequestWrapper.java  |   0
 .../via/ResourceTypeForcingRequestWrapper.java     |   0
 .../via/ResourceTypeForcingResourceWrapper.java    |   0
 .../sling/models/impl/AdapterFactoryTest.java      |   0
 .../models/impl/AdapterImplementationsTest.java    |   0
 .../sling/models/impl/AnnotationConflictsTest.java |   0
 .../org/apache/sling/models/impl/CachingTest.java  |   0
 .../apache/sling/models/impl/ConstructorTest.java  |   0
 .../models/impl/ConstructorVisibilityTest.java     |   0
 .../sling/models/impl/CustomInjectorTest.java      |   0
 .../models/impl/DefaultInterfaceMethodTest.java    |   0
 .../org/apache/sling/models/impl/DefaultTest.java  |   0
 .../sling/models/impl/ExtraDefaultTests.java       |   0
 .../sling/models/impl/ImplementsExtendsTest.java   |   0
 .../impl/InjectorSpecificAnnotationTest.java       |   0
 .../models/impl/InterfaceInheritanceTest.java      |   0
 .../sling/models/impl/InvalidAdaptationsTest.java  |   0
 .../sling/models/impl/ModelAdapterFactoryTest.java |   0
 ...apterFactory_ImplementationPickerOrderTest.java |   0
 .../ModelAdapterFactory_InjectorOrderTest.java     |   0
 .../impl/ModelPackageBundleListenerTest.java       |   0
 .../sling/models/impl/MultipleInjectorTest.java    |   0
 .../sling/models/impl/OSGiInjectionTest.java       |   0
 .../sling/models/impl/OptionalObjectsTest.java     |   0
 .../sling/models/impl/OptionalPrimitivesTest.java  |   0
 .../ParameterizedTypeFromRequestAttributeTest.java |   0
 .../sling/models/impl/PostConstructTest.java       |   0
 .../sling/models/impl/ReflectionUtilTest.java      |   0
 .../sling/models/impl/RequestDisposalTest.java     |   0
 .../sling/models/impl/RequestInjectionTest.java    |   0
 .../sling/models/impl/RequestWrapperTest.java      |   0
 .../models/impl/ResourceModelClassesTest.java      |   0
 .../models/impl/ResourceModelConstructorTest.java  |   0
 .../models/impl/ResourceModelInterfacesTest.java   |   0
 ...esourceOverridingJakartaRequestWrapperTest.java |   0
 .../impl/ResourceOverridingRequestWrapperTest.java |   0
 .../models/impl/ResourcePathInjectionTest.java     |   0
 .../sling/models/impl/SelfDependencyTest.java      |   0
 .../sling/models/impl/ServicePropertiesMap.java    |   0
 .../impl/StaticInjectionAPFLoadOrderTest.java      |   0
 .../java/org/apache/sling/models/impl/ViaTest.java |   0
 .../implpicker/FirstImplementationPickerTest.java  |   0
 .../models/impl/injector/CustomAnnotation.java     |   0
 .../impl/injector/CustomAnnotationInjector.java    |   0
 .../sling/models/impl/injector/SimpleInjector.java |   0
 .../impl/injectors/BindingsInjectorTest.java       |   0
 .../injectors/RequestAttributeInjectorTest.java    |   0
 .../impl/injectors/ResourcePathInjectorTest.java   |   0
 .../injectors/ResourceResolverInjectorTest.java    |   0
 .../models/impl/injectors/SelfInjectorTest.java    |   0
 .../injectors/SlingObjectInjectorRequestTest.java  |   0
 .../SlingObjectInjectorResourceResolverTest.java   |   0
 .../injectors/SlingObjectInjectorResourceTest.java |   0
 .../impl/injectors/ValueMapInjectorTest.java       |   0
 .../via/AbstractResourceTypeViaProviderTest.java   |   0
 .../impl/via/BeanPropertyViaProviderTest.java      |   0
 .../impl/via/ChildResourceViaProviderTest.java     |   0
 .../via/ForcedResourceTypeViaProviderTest.java     |   0
 .../via/OriginalResourceTypeViaProviderTest.java   |   0
 .../impl/via/ResourceSuperTypeViaProviderTest.java |   0
 ...sourceTypeForcingJakartaRequestWrapperTest.java |   0
 .../via/ResourceTypeForcingRequestWrapperTest.java |   0
 .../models/testmodels/classes/ArrayOSGiModel.java  |   0
 .../testmodels/classes/ArrayPrimitivesModel.java   |   0
 .../testmodels/classes/ArrayWrappersModel.java     |   0
 .../models/testmodels/classes/BindingsModel.java   |   0
 .../models/testmodels/classes/CachedModel.java     |   0
 .../classes/CachedModelWithAdapterTypes12.java     |   0
 .../classes/CachedModelWithAdapterTypes23.java     |   0
 .../classes/CachedModelWithSelfReference.java      |   0
 .../models/testmodels/classes/ChildModel.java      |   0
 .../testmodels/classes/ChildResourceModel.java     |   0
 .../testmodels/classes/ChildResourceViaModel.java  |   0
 .../testmodels/classes/ChildValueMapModel.java     |   0
 .../classes/CollectionDefaultsModel.java           |   0
 .../testmodels/classes/CollectionOSGiModel.java    |   0
 .../classes/ConstructorWithExceptionModel.java     |   0
 .../testmodels/classes/DefaultPrimitivesModel.java |   0
 .../testmodels/classes/DefaultStringModel.java     |   0
 .../testmodels/classes/DefaultWrappersModel.java   |   0
 .../classes/DirectCyclicSelfDependencyModel.java   |   0
 .../classes/FailingPostConstructModel.java         |   0
 .../classes/FalsePostConstructModel.java           |   0
 .../IndirectCyclicSelfDependencyModelA.java        |   0
 .../IndirectCyclicSelfDependencyModelB.java        |   0
 .../classes/InjectorSpecificAnnotationModel.java   |   0
 .../classes/InvalidConstructorModel.java           |   0
 .../classes/InvalidModelWithMissingAnnotation.java |   0
 .../testmodels/classes/ListDefaultsModel.java      |   0
 .../sling/models/testmodels/classes/ListModel.java |   0
 .../models/testmodels/classes/ListOSGiModel.java   |   0
 .../testmodels/classes/OptionalArrayOSGiModel.java |   0
 .../testmodels/classes/OptionalListOSGiModel.java  |   0
 .../testmodels/classes/OptionalObjectsModel.java   |   0
 .../classes/OptionalPrimitivesModel.java           |   0
 .../models/testmodels/classes/ParentModel.java     |   0
 .../testmodels/classes/RequestOSGiModel.java       |   0
 .../classes/ResourceModelWithRequiredField.java    |   0
 ...urceModelWithRequiredFieldOptionalStrategy.java |   0
 .../classes/ResourcePathAllOptionalModel.java      |   0
 .../testmodels/classes/ResourcePathModel.java      |   0
 .../classes/ResourcePathModelWrapping.java         |   0
 .../classes/ResourcePathPartialModel.java          |   0
 .../testmodels/classes/SelfDependencyModelA.java   |   0
 .../testmodels/classes/SelfDependencyModelB.java   |   0
 .../models/testmodels/classes/SetOSGiModel.java    |   0
 .../SimpleModelWithInvalidSecondAnnotation.java    |   0
 .../models/testmodels/classes/SimpleOSGiModel.java |   0
 .../testmodels/classes/SimplePropertyModel.java    |   0
 .../sling/models/testmodels/classes/SubClass.java  |   0
 .../classes/SubClassOverriddenPostConstruct.java   |   0
 .../models/testmodels/classes/SuperClass.java      |   0
 .../classes/SuperclassConstructorModel.java        |   0
 .../testmodels/classes/TruePostConstructModel.java |   0
 .../models/testmodels/classes/UncachedModel.java   |   0
 .../sling/models/testmodels/classes/ViaModel.java  |   0
 .../classes/WithOneConstructorModel.java           |   0
 .../classes/WithThreeConstructorsModel.java        |   0
 .../classes/WithTwoConstructorsModel.java          |   0
 .../testmodels/classes/annotations/Hidden.java     |   0
 .../classes/annotations/OtherAnnotation.java       |   0
 .../constructorinjection/BindingsModel.java        |   0
 .../DefaultPrimitivesModel.java                    |   0
 .../constructorinjection/DefaultStringModel.java   |   0
 .../constructorinjection/DefaultWrappersModel.java |   0
 .../InjectorSpecificAnnotationModel.java           |   0
 .../constructorinjection/ListOSGiModel.java        |   0
 .../classes/constructorinjection/NoNameModel.java  |   0
 .../OptionalPrimitivesModel.java                   |   0
 .../classes/constructorinjection/ParentModel.java  |   0
 .../constructorinjection/SimpleOSGiModel.java      |   0
 .../ViaRequestSuffixModel.java                     |   0
 .../WithThreeConstructorsOneInjectModel.java       |   0
 .../PackagePrivateConstructorModel.java            |   0
 .../PrivateConstructorModel.java                   |   0
 .../ProtectedConstructorModel.java                 |   0
 .../implextend/EvenSimplerPropertyModel.java       |   0
 .../implextend/ExtendsClassPropertyModel.java      |   0
 .../ImplementsInterfacePropertyModel.java          |   0
 .../ImplementsInterfacePropertyModel2.java         |   0
 .../InvalidImplementsInterfacePropertyModel.java   |   0
 .../implextend/InvalidSampleServiceInterface.java  |   0
 .../classes/implextend/SampleServiceInterface.java |   0
 .../classes/implextend/SimplePropertyModel.java    |   0
 .../models/testmodels/interfaces/AdapterType1.java |   0
 .../models/testmodels/interfaces/AdapterType2.java |   0
 .../models/testmodels/interfaces/AdapterType3.java |   0
 .../models/testmodels/interfaces/CachedModel.java  |   0
 .../models/testmodels/interfaces/ChildModel.java   |   0
 .../testmodels/interfaces/ChildResourceModel.java  |   0
 .../testmodels/interfaces/ChildValueMapModel.java  |   0
 .../interfaces/ModelWithDefaultMethods.java        |   0
 .../interfaces/OptionalPrimitivesModel.java        |   0
 .../models/testmodels/interfaces/ParentModel.java  |   0
 .../interfaces/PropertyModelWithDefaults.java      |   0
 .../interfaces/ResourceModelWithRequiredField.java |   0
 .../testmodels/interfaces/ServiceInterface.java    |   0
 .../testmodels/interfaces/SimplePropertyModel.java |   0
 .../testmodels/interfaces/SubClassModel.java       |   0
 .../testmodels/interfaces/SuperClassModel.java     |   0
 .../testmodels/interfaces/UncachedModel.java       |   0
 .../models/testutil/ModelAdapterFactoryUtil.java   |   0
 parent/pom.xml                                     |  55 +++++
 pom.xml                                            | 253 +--------------------
 207 files changed, 71 insertions(+), 242 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0a3f3d1..ea97cd3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-/target
+target/
 .vscode
 .idea
 .classpath
diff --git a/bnd.bnd b/impl/bnd.bnd
similarity index 100%
rename from bnd.bnd
rename to impl/bnd.bnd
diff --git a/pom.xml b/impl/pom.xml
similarity index 99%
copy from pom.xml
copy to impl/pom.xml
index 2e3f5c2..951d7d3 100644
--- a/pom.xml
+++ b/impl/pom.xml
@@ -19,12 +19,14 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
     <modelVersion>4.0.0</modelVersion>
+
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-bundle-parent</artifactId>
         <version>62</version>
         <relativePath />
     </parent>
+
     <artifactId>org.apache.sling.models.impl</artifactId>
     <version>2.0.1-SNAPSHOT</version>
     <name>Apache Sling Models Implementation</name>
@@ -36,6 +38,7 @@
         <tag>org.apache.sling.models.impl-1.7.2</tag>
         
<url>https://github.com/apache/sling-org-apache-sling-models-impl.git</url>
     </scm>
+
     <properties>
         
<project.build.outputTimestamp>2025-08-27T03:14:05Z</project.build.outputTimestamp>
         <sling.java.version>17</sling.java.version>
diff --git 
a/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java 
b/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/AdapterImplementations.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/DisposalCallbackRegistryImpl.java 
b/impl/src/main/java/org/apache/sling/models/impl/DisposalCallbackRegistryImpl.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/DisposalCallbackRegistryImpl.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/DisposalCallbackRegistryImpl.java
diff --git a/src/main/java/org/apache/sling/models/impl/ExportServlet.java 
b/impl/src/main/java/org/apache/sling/models/impl/ExportServlet.java
similarity index 100%
rename from src/main/java/org/apache/sling/models/impl/ExportServlet.java
rename to impl/src/main/java/org/apache/sling/models/impl/ExportServlet.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/FirstImplementationPicker.java 
b/impl/src/main/java/org/apache/sling/models/impl/FirstImplementationPicker.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/FirstImplementationPicker.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/FirstImplementationPicker.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/MapBackedInvocationHandler.java 
b/impl/src/main/java/org/apache/sling/models/impl/MapBackedInvocationHandler.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/MapBackedInvocationHandler.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/MapBackedInvocationHandler.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java 
b/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
similarity index 100%
rename from src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactoryConfiguration.java
 
b/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactoryConfiguration.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ModelAdapterFactoryConfiguration.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactoryConfiguration.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ModelConfigurationPrinter.java 
b/impl/src/main/java/org/apache/sling/models/impl/ModelConfigurationPrinter.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ModelConfigurationPrinter.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ModelConfigurationPrinter.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java 
b/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
diff --git a/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java 
b/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java
similarity index 100%
rename from src/main/java/org/apache/sling/models/impl/ReflectionUtil.java
rename to impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapper.java
 
b/impl/src/main/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapper.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapper.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapper.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapper.java
 
b/impl/src/main/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapper.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapper.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapper.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ResourceTypeBasedResourcePicker.java
 
b/impl/src/main/java/org/apache/sling/models/impl/ResourceTypeBasedResourcePicker.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ResourceTypeBasedResourcePicker.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ResourceTypeBasedResourcePicker.java
diff --git a/src/main/java/org/apache/sling/models/impl/Result.java 
b/impl/src/main/java/org/apache/sling/models/impl/Result.java
similarity index 100%
rename from src/main/java/org/apache/sling/models/impl/Result.java
rename to impl/src/main/java/org/apache/sling/models/impl/Result.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/SlingModelsScriptEngineFactory.java
 
b/impl/src/main/java/org/apache/sling/models/impl/SlingModelsScriptEngineFactory.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/SlingModelsScriptEngineFactory.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/SlingModelsScriptEngineFactory.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/ThreadInvocationCounter.java 
b/impl/src/main/java/org/apache/sling/models/impl/ThreadInvocationCounter.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/ThreadInvocationCounter.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/ThreadInvocationCounter.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/AbstractInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/AbstractInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/AbstractInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/AbstractInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java 
b/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
 
b/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/ConstructorParameter.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/ConstructorParameter.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/ConstructorParameter.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/ConstructorParameter.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/InjectableElement.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/InjectableElement.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/InjectableElement.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/InjectableElement.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/InjectableField.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/InjectableField.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/InjectableField.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/InjectableField.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/InjectableMethod.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/InjectableMethod.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/InjectableMethod.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/InjectableMethod.java
diff --git a/src/main/java/org/apache/sling/models/impl/model/ModelClass.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/ModelClass.java
similarity index 100%
rename from src/main/java/org/apache/sling/models/impl/model/ModelClass.java
rename to impl/src/main/java/org/apache/sling/models/impl/model/ModelClass.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/ModelClassConstructor.java 
b/impl/src/main/java/org/apache/sling/models/impl/model/ModelClassConstructor.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/ModelClassConstructor.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/ModelClassConstructor.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/OptionalTypedInjectableElement.java
 
b/impl/src/main/java/org/apache/sling/models/impl/model/OptionalTypedInjectableElement.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/OptionalTypedInjectableElement.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/OptionalTypedInjectableElement.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/model/ParameterCountInjectComparator.java
 
b/impl/src/main/java/org/apache/sling/models/impl/model/ParameterCountInjectComparator.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/model/ParameterCountInjectComparator.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/model/ParameterCountInjectComparator.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProvider.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java 
b/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java 
b/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProvider.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProvider.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProvider.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProvider.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProvider.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapper.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapper.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapper.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapper.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapper.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapper.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapper.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapper.java
diff --git 
a/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingResourceWrapper.java
 
b/impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingResourceWrapper.java
similarity index 100%
rename from 
src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingResourceWrapper.java
rename to 
impl/src/main/java/org/apache/sling/models/impl/via/ResourceTypeForcingResourceWrapper.java
diff --git a/src/test/java/org/apache/sling/models/impl/AdapterFactoryTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/AdapterFactoryTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/AdapterFactoryTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/AdapterFactoryTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/AnnotationConflictsTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/AnnotationConflictsTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/AnnotationConflictsTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/AnnotationConflictsTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/CachingTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/CachingTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/CachingTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/CachingTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/ConstructorTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ConstructorTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/ConstructorTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/ConstructorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ConstructorVisibilityTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ConstructorVisibilityTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ConstructorVisibilityTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ConstructorVisibilityTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/CustomInjectorTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/CustomInjectorTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/CustomInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/CustomInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/DefaultInterfaceMethodTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/DefaultInterfaceMethodTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/DefaultInterfaceMethodTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/DefaultInterfaceMethodTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/DefaultTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/DefaultTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/DefaultTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/DefaultTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/ExtraDefaultTests.java 
b/impl/src/test/java/org/apache/sling/models/impl/ExtraDefaultTests.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/ExtraDefaultTests.java
rename to impl/src/test/java/org/apache/sling/models/impl/ExtraDefaultTests.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ImplementsExtendsTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ImplementsExtendsTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ImplementsExtendsTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ImplementsExtendsTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/InjectorSpecificAnnotationTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/InjectorSpecificAnnotationTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/InjectorSpecificAnnotationTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/InjectorSpecificAnnotationTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/InterfaceInheritanceTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/InterfaceInheritanceTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/InterfaceInheritanceTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/InterfaceInheritanceTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/InvalidAdaptationsTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/InvalidAdaptationsTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/InvalidAdaptationsTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/InvalidAdaptationsTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ParameterizedTypeFromRequestAttributeTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ParameterizedTypeFromRequestAttributeTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ParameterizedTypeFromRequestAttributeTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ParameterizedTypeFromRequestAttributeTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/PostConstructTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/PostConstructTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/PostConstructTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/PostConstructTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/ReflectionUtilTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ReflectionUtilTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/ReflectionUtilTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ReflectionUtilTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/RequestDisposalTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/RequestDisposalTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/RequestDisposalTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/RequestDisposalTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/RequestInjectionTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/RequestInjectionTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/RequestInjectionTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/RequestInjectionTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/RequestWrapperTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/RequestWrapperTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/RequestWrapperTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/RequestWrapperTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapperTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapperTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapperTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourceOverridingJakartaRequestWrapperTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapperTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapperTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapperTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourceOverridingRequestWrapperTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ResourcePathInjectionTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ResourcePathInjectionTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/ResourcePathInjectionTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ResourcePathInjectionTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/SelfDependencyTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/SelfDependencyTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/SelfDependencyTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/SelfDependencyTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/ServicePropertiesMap.java 
b/impl/src/test/java/org/apache/sling/models/impl/ServicePropertiesMap.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/ServicePropertiesMap.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/ServicePropertiesMap.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/StaticInjectionAPFLoadOrderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/StaticInjectionAPFLoadOrderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/StaticInjectionAPFLoadOrderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/StaticInjectionAPFLoadOrderTest.java
diff --git a/src/test/java/org/apache/sling/models/impl/ViaTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java
similarity index 100%
rename from src/test/java/org/apache/sling/models/impl/ViaTest.java
rename to impl/src/test/java/org/apache/sling/models/impl/ViaTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/implpicker/FirstImplementationPickerTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/implpicker/FirstImplementationPickerTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/implpicker/FirstImplementationPickerTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/implpicker/FirstImplementationPickerTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotation.java 
b/impl/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotation.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injector/CustomAnnotation.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotation.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotationInjector.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotationInjector.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injector/CustomAnnotationInjector.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injector/CustomAnnotationInjector.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injector/SimpleInjector.java 
b/impl/src/test/java/org/apache/sling/models/impl/injector/SimpleInjector.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injector/SimpleInjector.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injector/SimpleInjector.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/BindingsInjectorTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/BindingsInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/BindingsInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/BindingsInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/RequestAttributeInjectorTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/RequestAttributeInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/RequestAttributeInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/RequestAttributeInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/ResourcePathInjectorTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/ResourcePathInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/ResourcePathInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/ResourcePathInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/ResourceResolverInjectorTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/ResourceResolverInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/ResourceResolverInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/ResourceResolverInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/SelfInjectorTest.java 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/SelfInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/SelfInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/SelfInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorRequestTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorRequestTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorRequestTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorRequestTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceResolverTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceResolverTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceResolverTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceResolverTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/SlingObjectInjectorResourceTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/injectors/ValueMapInjectorTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/injectors/ValueMapInjectorTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/injectors/ValueMapInjectorTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/injectors/ValueMapInjectorTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/AbstractResourceTypeViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/BeanPropertyViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/BeanPropertyViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/BeanPropertyViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/BeanPropertyViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/ChildResourceViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/ChildResourceViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/ChildResourceViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/ChildResourceViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/OriginalResourceTypeViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProviderTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProviderTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProviderTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/ResourceSuperTypeViaProviderTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapperTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapperTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapperTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingJakartaRequestWrapperTest.java
diff --git 
a/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapperTest.java
 
b/impl/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapperTest.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapperTest.java
rename to 
impl/src/test/java/org/apache/sling/models/impl/via/ResourceTypeForcingRequestWrapperTest.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ArrayOSGiModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ArrayOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ArrayPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ArrayPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ArrayWrappersModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayWrappersModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ArrayWrappersModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ArrayWrappersModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/BindingsModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/BindingsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/BindingsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/BindingsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CachedModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CachedModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes12.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes12.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes12.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes12.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes23.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes23.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes23.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithAdapterTypes23.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithSelfReference.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithSelfReference.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithSelfReference.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CachedModelWithSelfReference.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ChildModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ChildModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceViaModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceViaModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceViaModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildResourceViaModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ChildValueMapModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildValueMapModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ChildValueMapModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ChildValueMapModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CollectionDefaultsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CollectionDefaultsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CollectionDefaultsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CollectionDefaultsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/CollectionOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/CollectionOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/CollectionOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/CollectionOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ConstructorWithExceptionModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ConstructorWithExceptionModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ConstructorWithExceptionModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ConstructorWithExceptionModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/DefaultPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/DefaultPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/DefaultStringModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultStringModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/DefaultStringModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultStringModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/DefaultWrappersModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultWrappersModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/DefaultWrappersModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/DefaultWrappersModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/DirectCyclicSelfDependencyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/DirectCyclicSelfDependencyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/DirectCyclicSelfDependencyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/DirectCyclicSelfDependencyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/FailingPostConstructModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/FailingPostConstructModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/FailingPostConstructModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/FailingPostConstructModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/FalsePostConstructModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/FalsePostConstructModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/FalsePostConstructModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/FalsePostConstructModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelA.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelA.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelA.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelA.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelB.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelB.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelB.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/IndirectCyclicSelfDependencyModelB.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/InjectorSpecificAnnotationModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/InjectorSpecificAnnotationModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/InjectorSpecificAnnotationModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/InjectorSpecificAnnotationModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/InvalidConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/InvalidConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/InvalidConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/InvalidConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/InvalidModelWithMissingAnnotation.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/InvalidModelWithMissingAnnotation.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/InvalidModelWithMissingAnnotation.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/InvalidModelWithMissingAnnotation.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ListDefaultsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ListDefaultsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ListDefaultsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ListDefaultsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ListModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ListModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ListModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ListModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ListOSGiModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ListOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ListOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ListOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/OptionalArrayOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalArrayOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/OptionalArrayOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalArrayOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/OptionalListOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalListOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/OptionalListOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalListOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/OptionalObjectsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalObjectsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/OptionalObjectsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalObjectsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/OptionalPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/OptionalPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/OptionalPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ParentModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ParentModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ParentModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ParentModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/RequestOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/RequestOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/RequestOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/RequestOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredField.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredField.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredField.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredField.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredFieldOptionalStrategy.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredFieldOptionalStrategy.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredFieldOptionalStrategy.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourceModelWithRequiredFieldOptionalStrategy.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathAllOptionalModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathAllOptionalModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathAllOptionalModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathAllOptionalModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModelWrapping.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModelWrapping.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModelWrapping.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathModelWrapping.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathPartialModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathPartialModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathPartialModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ResourcePathPartialModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelA.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelA.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelA.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelA.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelB.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelB.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelB.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SelfDependencyModelB.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SetOSGiModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SetOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SetOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SetOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SimpleModelWithInvalidSecondAnnotation.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SimpleModelWithInvalidSecondAnnotation.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SimpleModelWithInvalidSecondAnnotation.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SimpleModelWithInvalidSecondAnnotation.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SimpleOSGiModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SimpleOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SimpleOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SimpleOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SimplePropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SimplePropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SimplePropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SimplePropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SubClass.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SubClass.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SubClass.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SubClass.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SubClassOverriddenPostConstruct.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SubClassOverriddenPostConstruct.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SubClassOverriddenPostConstruct.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SubClassOverriddenPostConstruct.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SuperClass.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SuperClass.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SuperClass.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SuperClass.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/SuperclassConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/SuperclassConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/SuperclassConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/SuperclassConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/TruePostConstructModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/TruePostConstructModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/TruePostConstructModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/TruePostConstructModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/UncachedModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/UncachedModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/UncachedModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/UncachedModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/ViaModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/ViaModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/ViaModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/ViaModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/WithOneConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/WithOneConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/WithOneConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/WithOneConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/WithThreeConstructorsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/WithThreeConstructorsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/WithThreeConstructorsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/WithThreeConstructorsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/WithTwoConstructorsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/WithTwoConstructorsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/WithTwoConstructorsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/WithTwoConstructorsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/annotations/Hidden.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/annotations/Hidden.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/annotations/Hidden.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/annotations/Hidden.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/annotations/OtherAnnotation.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/annotations/OtherAnnotation.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/annotations/OtherAnnotation.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/annotations/OtherAnnotation.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/BindingsModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/BindingsModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/BindingsModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/BindingsModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultStringModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultStringModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultStringModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultStringModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultWrappersModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultWrappersModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultWrappersModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/DefaultWrappersModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/InjectorSpecificAnnotationModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/InjectorSpecificAnnotationModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/InjectorSpecificAnnotationModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/InjectorSpecificAnnotationModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ListOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ListOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ListOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ListOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/NoNameModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/NoNameModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/NoNameModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/NoNameModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/OptionalPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/OptionalPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/OptionalPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/OptionalPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ParentModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ParentModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ParentModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ParentModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/SimpleOSGiModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/SimpleOSGiModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/SimpleOSGiModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/SimpleOSGiModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ViaRequestSuffixModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ViaRequestSuffixModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ViaRequestSuffixModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/ViaRequestSuffixModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/WithThreeConstructorsOneInjectModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/WithThreeConstructorsOneInjectModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/WithThreeConstructorsOneInjectModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorinjection/WithThreeConstructorsOneInjectModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PackagePrivateConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PackagePrivateConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PackagePrivateConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PackagePrivateConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PrivateConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PrivateConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PrivateConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/PrivateConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/ProtectedConstructorModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/ProtectedConstructorModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/ProtectedConstructorModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/constructorvisibility/ProtectedConstructorModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/EvenSimplerPropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/EvenSimplerPropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/EvenSimplerPropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/EvenSimplerPropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ExtendsClassPropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ExtendsClassPropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/ExtendsClassPropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ExtendsClassPropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel2.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel2.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel2.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/ImplementsInterfacePropertyModel2.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidImplementsInterfacePropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidImplementsInterfacePropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidImplementsInterfacePropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidImplementsInterfacePropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidSampleServiceInterface.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidSampleServiceInterface.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidSampleServiceInterface.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/InvalidSampleServiceInterface.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SampleServiceInterface.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SampleServiceInterface.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/SampleServiceInterface.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SampleServiceInterface.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SimplePropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SimplePropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/classes/implextend/SimplePropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/classes/implextend/SimplePropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType1.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType1.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType1.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType1.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType2.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType2.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType2.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType2.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType3.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType3.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType3.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/AdapterType3.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/CachedModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/CachedModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/CachedModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/CachedModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ChildModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildResourceModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildResourceModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ChildResourceModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildResourceModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildValueMapModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildValueMapModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ChildValueMapModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ChildValueMapModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ModelWithDefaultMethods.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ModelWithDefaultMethods.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ModelWithDefaultMethods.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ModelWithDefaultMethods.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/OptionalPrimitivesModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/OptionalPrimitivesModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/OptionalPrimitivesModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/OptionalPrimitivesModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ParentModel.java 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ParentModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ParentModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ParentModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/PropertyModelWithDefaults.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/PropertyModelWithDefaults.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/PropertyModelWithDefaults.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/PropertyModelWithDefaults.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ResourceModelWithRequiredField.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ResourceModelWithRequiredField.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ResourceModelWithRequiredField.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ResourceModelWithRequiredField.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/ServiceInterface.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ServiceInterface.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/ServiceInterface.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/ServiceInterface.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/SimplePropertyModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SimplePropertyModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/SimplePropertyModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SimplePropertyModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/SubClassModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SubClassModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/SubClassModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SubClassModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/SuperClassModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SuperClassModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/SuperClassModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/SuperClassModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testmodels/interfaces/UncachedModel.java
 
b/impl/src/test/java/org/apache/sling/models/testmodels/interfaces/UncachedModel.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testmodels/interfaces/UncachedModel.java
rename to 
impl/src/test/java/org/apache/sling/models/testmodels/interfaces/UncachedModel.java
diff --git 
a/src/test/java/org/apache/sling/models/testutil/ModelAdapterFactoryUtil.java 
b/impl/src/test/java/org/apache/sling/models/testutil/ModelAdapterFactoryUtil.java
similarity index 100%
rename from 
src/test/java/org/apache/sling/models/testutil/ModelAdapterFactoryUtil.java
rename to 
impl/src/test/java/org/apache/sling/models/testutil/ModelAdapterFactoryUtil.java
diff --git a/parent/pom.xml b/parent/pom.xml
new file mode 100644
index 0000000..b6c772b
--- /dev/null
+++ b/parent/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling-bundle-parent</artifactId>
+        <version>62</version>
+        <relativePath />
+    </parent>
+
+    <artifactId>org.apache.sling.models.impl.parent</artifactId>
+    <version>2.0.1-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache Sling Models Implementation - Parent</name>
+
+    <scm>
+        
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git</connection>
+        
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git</developerConnection>
+        <tag>HEAD</tag>
+        
<url>https://github.com/apache/sling-org-apache-sling-models-impl.git</url>
+    </scm>
+
+    <properties>
+        
<project.build.outputTimestamp>2025-08-27T03:14:05Z</project.build.outputTimestamp>
+        <sling.java.version>17</sling.java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.models.api</artifactId>
+            <version>2.0.0</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/pom.xml b/pom.xml
index 2e3f5c2..a7f30b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,250 +19,21 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
     <modelVersion>4.0.0</modelVersion>
+
     <parent>
         <groupId>org.apache.sling</groupId>
-        <artifactId>sling-bundle-parent</artifactId>
-        <version>62</version>
-        <relativePath />
+        <artifactId>org.apache.sling.models.impl.parent</artifactId>
+        <version>2.0.1-SNAPSHOT</version>
+        <relativePath>parent/pom.xml</relativePath>
     </parent>
-    <artifactId>org.apache.sling.models.impl</artifactId>
-    <version>2.0.1-SNAPSHOT</version>
-    <name>Apache Sling Models Implementation</name>
-    <description>Apache Sling Models Implementation</description>
 
-    <scm>
-        
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git</connection>
-        
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git</developerConnection>
-        <tag>org.apache.sling.models.impl-1.7.2</tag>
-        
<url>https://github.com/apache/sling-org-apache-sling-models-impl.git</url>
-    </scm>
-    <properties>
-        
<project.build.outputTimestamp>2025-08-27T03:14:05Z</project.build.outputTimestamp>
-        <sling.java.version>17</sling.java.version>
-    </properties>
+    <artifactId>org.apache.sling.models.impl.reactor</artifactId>
+    <version>2.0.1-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache Sling Models Implementation - Reactor</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.models.api</artifactId>
-            <version>2.0.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.framework</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.component</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.util.tracker</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.http.whiteboard</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <!-- OSGi annotations -->
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.component.annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation.versioning</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <!-- regular compile-time dependencies -->
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-            <version>4.0.1</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.servlet</groupId>
-            <artifactId>jakarta.servlet-api</artifactId>
-            <version>6.0.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.http.wrappers</artifactId>
-            <version>1.1.10</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.18.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.api</artifactId>
-            <version>3.0.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.scripting.api</artifactId>
-            <version>2.2.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.util.converter</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <!-- Artifact is shaded and inlined, only some classes included (see 
above) -->
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.scripting.core</artifactId>
-            <version>3.0.0</version>
-            <scope>compile</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>org.apache.felix.utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.jetbrains</groupId>
-            <artifactId>annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <!-- Test dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.osgi-mock.junit4</artifactId>
-            <version>3.5.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>4.4.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-junit</artifactId>
-            <version>2.0.0.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.servlet-helpers</artifactId>
-            <version>2.0.0</version>
-            <scope>test</scope>
-        </dependency>
-        <!-- transitive depedendencies of org.apache.sling.servlet-helpers -->
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-collections4</artifactId>
-            <version>4.1</version>
-            <scope>test</scope>
-        </dependency>
-        <!-- for testing the annotations -->
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>5.3.39</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-            <version>1.3.2</version>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <phase>package</phase>
-                        <configuration>
-                            <createSourcesJar>true</createSourcesJar>
-                            <shadeSourcesContent>true</shadeSourcesContent>
-                            <artifactSet>
-                                <includes>
-                                    
<include>org.apache.sling:org.apache.sling.scripting.core</include>
-                                </includes>
-                            </artifactSet>
-                            <relocations>
-                                <relocation>
-                                    
<pattern>org.apache.sling.scripting.core.impl.helper</pattern>
-                                    
<shadedPattern>slingmodelsimpl.org.apache.sling.scripting.core.impl.helper</shadedPattern>
-                                </relocation>
-                            </relocations>
-                            <filters>
-                                <filter>
-                                    
<artifact>org.apache.sling:org.apache.sling.scripting.core</artifact>
-                                    <includes>
-                                        
<include>org/apache/sling/scripting/core/impl/helper/ProtectedBindings*</include>
-                                    </includes>
-                                </filter>
-                            </filters>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>dependency-reduced-pom.xml</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <configuration>
-                    <attach>false</attach>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+    <modules>
+        <module>parent</module>
+        <module>impl</module>
+    </modules>
 </project>

Reply via email to