diff --git a/embedded-ldap-core/pom.xml b/embedded-ldap-core/pom.xml
new file mode 100644
index 0000000..60a0918
--- /dev/null
+++ b/embedded-ldap-core/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+
+ embedded-ldap-parent
+ org.zapodot
+ 0.9-SNAPSHOT
+
+
+ embedded-ldap-core
+
+
+
+ com.unboundid
+ unboundid-ldapsdk
+ ${unboundid-ldapsdk.version}
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ net.bytebuddy
+ byte-buddy
+ ${byte-buddy.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+
diff --git a/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java
similarity index 95%
rename from src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java
index 45191d9..b73a258 100644
--- a/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java
+++ b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapServer.java
@@ -53,7 +53,7 @@ public interface EmbeddedLdapServer {
*
*
* @return the port number that the embedded server is listening to
- * @see org.zapodot.junit.ldap.EmbeddedLdapRuleBuilder#bindingToAddress(String)
+ * @see org.zapodot.junit.ldap.internal.AbstractEmbeddedLdapBuilder#bindingToAddress(String)
*/
int embeddedServerPort();
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java
similarity index 98%
rename from src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java
index e5326ea..5e03337 100644
--- a/src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java
+++ b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/AbstractEmbeddedLdapBuilder.java
@@ -20,8 +20,8 @@
import java.util.Objects;
/**
- * A builder providing a fluent way of defining {@link org.zapodot.junit.ldap.EmbeddedLdapRule}
- * or {@link org.zapodot.junit.ldap.junit5.EmbeddedLdapExtension} instances.
+ * A builder providing a fluent way of defining EmbeddedLdapRule
+ * or EmbeddedLdapExtension instances.
*/
public abstract class AbstractEmbeddedLdapBuilder> {
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/AuthenticationConfiguration.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/AuthenticationConfiguration.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/AuthenticationConfiguration.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/AuthenticationConfiguration.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java
similarity index 99%
rename from src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java
index 161ee12..b848614 100644
--- a/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java
+++ b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapServerImpl.java
@@ -28,7 +28,7 @@ abstract class EmbeddedLdapServerImpl implements EmbeddedLdapServer {
private static final String JAVA_RT_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
- private static Logger logger = LoggerFactory.getLogger(EmbeddedLdapExtensionImpl.class);
+ private static Logger logger = LoggerFactory.getLogger(EmbeddedLdapServerImpl.class);
private final InMemoryDirectoryServer inMemoryDirectoryServer;
private final AuthenticationConfiguration authenticationConfiguration;
private LDAPConnection ldapConnection;
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextInterceptor.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextInterceptor.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextInterceptor.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextInterceptor.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxy.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxy.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxy.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxy.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactory.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactory.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactory.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactory.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/jndi/DirContextProxy.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/DirContextProxy.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/jndi/DirContextProxy.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/jndi/DirContextProxy.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/package-info.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/package-info.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/package-info.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/package-info.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPConnectionProxy.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPConnectionProxy.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPConnectionProxy.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPConnectionProxy.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactory.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactory.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactory.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactory.java
diff --git a/src/main/java/org/zapodot/junit/ldap/package-info.java b/embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/package-info.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/package-info.java
rename to embedded-ldap-core/src/main/java/org/zapodot/junit/ldap/package-info.java
diff --git a/embedded-ldap-junit/pom.xml b/embedded-ldap-junit/pom.xml
new file mode 100644
index 0000000..16ac926
--- /dev/null
+++ b/embedded-ldap-junit/pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+
+
+ embedded-ldap-parent
+ org.zapodot
+ 0.9-SNAPSHOT
+
+
+ embedded-ldap-junit
+
+
+
+ org.zapodot
+ embedded-ldap-core
+ ${project.version}
+
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+ test
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+ ${bouncycastle.version}
+ test
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+ ${bouncycastle.version}
+ test
+
+
+
diff --git a/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRule.java b/embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRule.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRule.java
rename to embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRule.java
diff --git a/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilder.java b/embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilder.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilder.java
rename to embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilder.java
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java b/embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java
old mode 100755
new mode 100644
similarity index 93%
rename from src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java
rename to embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java
index 9f33d28..e55bd7f
--- a/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java
+++ b/embedded-ldap-junit/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapRuleImpl.java
@@ -15,7 +15,7 @@ public static EmbeddedLdapRule createForConfiguration(final InMemoryDirectorySer
final AuthenticationConfiguration authenticationConfiguration,
final List ldifs) {
try {
- return new EmbeddedLdapRuleImpl(createServer(inMemoryDirectoryServerConfig, ldifs),
+ return new EmbeddedLdapRuleImpl(EmbeddedLdapServerImpl.createServer(inMemoryDirectoryServerConfig, ldifs),
authenticationConfiguration);
} catch (LDAPException e) {
throw new IllegalStateException("Can not initiate in-memory LDAP server due to an exception", e);
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilderTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilderTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilderTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleBuilderTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleClassRuleTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleClassRuleTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleClassRuleTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleClassRuleTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomSchemaDuplicatedTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomSchemaDuplicatedTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomSchemaDuplicatedTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomSchemaDuplicatedTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomStandardAndCustomSchemaTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomStandardAndCustomSchemaTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomStandardAndCustomSchemaTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomStandardAndCustomSchemaTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutSchemaTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutSchemaTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutSchemaTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutSchemaTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutStandardSchemaTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutStandardSchemaTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutStandardSchemaTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleCustomWithoutStandardSchemaTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleMultipleDSNs.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleMultipleDSNs.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleMultipleDSNs.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleMultipleDSNs.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleNoAuthTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleNoAuthTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleNoAuthTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleNoAuthTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStandardContext.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStandardContext.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStandardContext.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStandardContext.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStarttlsTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStarttlsTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStarttlsTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleStarttlsTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithListeningAddressProvidedTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithListeningAddressProvidedTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithListeningAddressProvidedTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithListeningAddressProvidedTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithSpacesTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithSpacesTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithSpacesTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/EmbeddedLdapRuleWithSpacesTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/internal/AuthenticationConfigurationTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/AuthenticationConfigurationTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/internal/AuthenticationConfigurationTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/AuthenticationConfigurationTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactoryTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactoryTest.java
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactoryTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/jndi/ContextProxyFactoryTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactoryTest.java b/embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactoryTest.java
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactoryTest.java
rename to embedded-ldap-junit/src/test/java/org/zapodot/junit/ldap/internal/unboundid/LDAPInterfaceProxyFactoryTest.java
diff --git a/src/test/resources/custom-schema.ldif b/embedded-ldap-junit/src/test/resources/custom-schema.ldif
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/custom-schema.ldif
rename to embedded-ldap-junit/src/test/resources/custom-schema.ldif
diff --git a/src/test/resources/example.ldif b/embedded-ldap-junit/src/test/resources/example.ldif
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/example.ldif
rename to embedded-ldap-junit/src/test/resources/example.ldif
diff --git a/src/test/resources/folder with space/example.ldif b/embedded-ldap-junit/src/test/resources/folder with space/example.ldif
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/folder with space/example.ldif
rename to embedded-ldap-junit/src/test/resources/folder with space/example.ldif
diff --git a/src/test/resources/folder/.placeholder b/embedded-ldap-junit/src/test/resources/folder/.placeholder
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/folder/.placeholder
rename to embedded-ldap-junit/src/test/resources/folder/.placeholder
diff --git a/src/test/resources/invalid.ldif b/embedded-ldap-junit/src/test/resources/invalid.ldif
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/invalid.ldif
rename to embedded-ldap-junit/src/test/resources/invalid.ldif
diff --git a/src/test/resources/standard-schema.ldif b/embedded-ldap-junit/src/test/resources/standard-schema.ldif
old mode 100755
new mode 100644
similarity index 100%
rename from src/test/resources/standard-schema.ldif
rename to embedded-ldap-junit/src/test/resources/standard-schema.ldif
diff --git a/embedded-ldap-junit5/pom.xml b/embedded-ldap-junit5/pom.xml
new file mode 100644
index 0000000..b366ad8
--- /dev/null
+++ b/embedded-ldap-junit5/pom.xml
@@ -0,0 +1,35 @@
+
+
+
+ embedded-ldap-parent
+ org.zapodot
+ 0.9-SNAPSHOT
+
+ 4.0.0
+
+ embedded-ldap-junit5
+
+
+
+ org.zapodot
+ embedded-ldap-core
+ ${project.version}
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit5.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit5.version}
+ test
+
+
+
diff --git a/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapExtensionImpl.java b/embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapExtensionImpl.java
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapExtensionImpl.java
rename to embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/internal/EmbeddedLdapExtensionImpl.java
diff --git a/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtension.java b/embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtension.java
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtension.java
rename to embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtension.java
diff --git a/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilder.java b/embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilder.java
similarity index 100%
rename from src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilder.java
rename to embedded-ldap-junit5/src/main/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilder.java
diff --git a/embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java b/embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java
new file mode 100644
index 0000000..bb8c546
--- /dev/null
+++ b/embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java
@@ -0,0 +1,99 @@
+package org.zapodot.junit.ldap.junit5;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+class EmbeddedLdapExtensionBuilderTest {
+
+ @Test
+ void bindingToLegalPort() {
+ assertNotNull(EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(9999));
+ }
+
+ @Test
+ void testPrematureLdapConnection() {
+ assertThrows(IllegalStateException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().build().ldapConnection()
+ );
+ }
+
+ @Test
+ void testPrematureContext() {
+ assertThrows(IllegalStateException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().build().context()
+ );
+ }
+
+ @Test
+ void testUnknownLDIF() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().importingLdifs("nonExisting.ldif").build()
+ );
+ }
+
+ @Test
+ void testNullLDIF() {
+ assertNotNull(EmbeddedLdapExtensionBuilder.newInstance().importingLdifs(null).build());
+
+ }
+
+ @Test
+ void testIllegalDSN() {
+ assertThrows(IllegalStateException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().usingBindDSN("bindDsn").build()
+ );
+ }
+
+ @Test
+ void testIllegalPort() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(Integer.MIN_VALUE).build()
+ );
+ }
+
+ @Test
+ void testSchemaNotFound() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().withSchema("non-existing-schema.ldif").build()
+ );
+ }
+
+ @Test
+ void testSchemaIsNotAFile() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().withSchema("folder").build()
+ );
+ }
+
+ @Test
+ void testSchemaIsInvalid() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().withSchema("invalid.ldif").build()
+ );
+ }
+
+ @Test
+ void testSchemaFileUnsupportedIsInvalid() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().withSchema("\"#%¤&&%/¤##¤¤").build()
+ );
+ }
+
+ @Test
+ void testInvalidPort() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(Integer.MAX_VALUE)
+ );
+ }
+
+ @Test
+ void testInvalidBindAddress() {
+ assertThrows(IllegalArgumentException.class, () ->
+ EmbeddedLdapExtensionBuilder.newInstance().bindingToAddress("åpsldfåpl")
+ );
+ }
+
+
+}
diff --git a/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionStaticTest.java b/embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionStaticTest.java
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionStaticTest.java
rename to embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionStaticTest.java
diff --git a/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionTest.java b/embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionTest.java
similarity index 100%
rename from src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionTest.java
rename to embedded-ldap-junit5/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionTest.java
diff --git a/embedded-ldap-junit5/src/test/resources/example.ldif b/embedded-ldap-junit5/src/test/resources/example.ldif
new file mode 100644
index 0000000..5eb286a
--- /dev/null
+++ b/embedded-ldap-junit5/src/test/resources/example.ldif
@@ -0,0 +1,28 @@
+version: 1
+
+dn: dc=zapodot,dc=org
+objectClass: domain
+objectClass: top
+dc: zapodot
+
+dn: ou=groups,dc=zapodot,dc=org
+objectclass: top
+objectclass: organizationalUnit
+ou: groups
+
+dn: ou=people,dc=zapodot,dc=org
+objectclass: top
+objectclass: organizationalUnit
+ou: people
+
+dn: cn=Sondre Eikanger Kvalo,ou=people,dc=zapodot,dc=org
+objectclass: top
+objectclass: person
+objectclass: organizationalPerson
+objectclass: inetOrgPerson
+uid: zapodot
+userPassword: password
+cn: Sondre Eikanger Kvalo
+cn:: U29uZHJlIEVpa2FuZ2VyIEt2YWzDuA==
+sn: Person
+description: Developer
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 98871af..e659959 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,10 +5,18 @@
4.0.0
org.zapodot
- embedded-ldap-junit
+ embedded-ldap-parent
+ pom
0.9-SNAPSHOT
+
+
+ embedded-ldap-core
+ embedded-ldap-junit
+ embedded-ldap-junit5
+
+
${project.artifactId}
- Library that provides a JUnit rule for setting up an in-memory LDAP server by using the glorious Unboundid LDAP SDK
+ Library that provides a JUnit rule and extension for setting up an in-memory LDAP server by using the glorious Unboundid LDAP SDK
https://github.com/zapodot/embedded-ldap-junit
2015
@@ -42,69 +50,7 @@
3.0.0-M3
8
-
-
- com.unboundid
- unboundid-ldapsdk
- ${unboundid-ldapsdk.version}
-
-
- junit
- junit
- ${junit.version}
-
-
- org.junit.jupiter
- junit-jupiter-api
- ${junit5.version}
- true
-
-
- com.google.guava
- guava
- ${guava.version}
-
-
- net.bytebuddy
- byte-buddy
- ${byte-buddy.version}
-
-
- org.slf4j
- slf4j-api
- ${slf4j.version}
-
-
- ch.qos.logback
- logback-classic
- ${logback.version}
- test
-
-
- org.bouncycastle
- bcprov-jdk15on
- ${bouncycastle.version}
- test
-
-
- org.bouncycastle
- bcpkix-jdk15on
- ${bouncycastle.version}
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.7.0
- test
-
-
- org.junit.vintage
- junit-vintage-engine
- ${junit5.version}
- test
-
-
+
diff --git a/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java b/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java
deleted file mode 100644
index 77d0d1e..0000000
--- a/src/test/java/org/zapodot/junit/ldap/junit5/EmbeddedLdapExtensionBuilderTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.zapodot.junit.ldap.junit5;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertNotNull;
-
-public class EmbeddedLdapExtensionBuilderTest {
-
- @Test
- public void bindingToLegalPort() {
- assertNotNull(EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(9999));
- }
-
- @Test(expected = IllegalStateException.class)
- public void testPrematureLdapConnection() throws Exception {
- EmbeddedLdapExtensionBuilder.newInstance().build().ldapConnection();
-
- }
-
- @Test(expected = IllegalStateException.class)
- public void testPrematureContext() throws Exception {
- EmbeddedLdapExtensionBuilder.newInstance().build().context();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testUnknownLDIF() {
- EmbeddedLdapExtensionBuilder.newInstance().importingLdifs("nonExisting.ldif").build();
-
- }
-
- @Test
- public void testNullLDIF() {
- assertNotNull(EmbeddedLdapExtensionBuilder.newInstance().importingLdifs(null).build());
-
- }
-
- @Test(expected = IllegalStateException.class)
- public void testIllegalDSN() {
- EmbeddedLdapExtensionBuilder.newInstance().usingBindDSN("bindDsn").build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIllegalPort() {
- EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(Integer.MIN_VALUE).build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testSchemaNotFound() {
- EmbeddedLdapExtensionBuilder.newInstance().withSchema("non-existing-schema.ldif").build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testSchemaIsNotAFile() {
- EmbeddedLdapExtensionBuilder.newInstance().withSchema("folder").build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testSchemaIsInvalid() {
- EmbeddedLdapExtensionBuilder.newInstance().withSchema("invalid.ldif").build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testSchemaFileUnsupportedIsInvalid() {
- EmbeddedLdapExtensionBuilder.newInstance().withSchema("\"#%¤&&%/¤##¤¤").build();
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testInvalidPort() {
- EmbeddedLdapExtensionBuilder.newInstance().bindingToPort(Integer.MAX_VALUE);
-
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testInvalidBindAddress() {
- EmbeddedLdapExtensionBuilder.newInstance().bindingToAddress("åpsldfåpl");
-
- }
-
-
-}