diff --git a/core-tiger/.gitignore b/core-tiger/.gitignore
deleted file mode 100644
index 73df60d8..00000000
--- a/core-tiger/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-target
-.classpath
-.project
-.settings
diff --git a/core-tiger/.springBeans b/core-tiger/.springBeans
deleted file mode 100644
index 34b281cf..00000000
--- a/core-tiger/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- 1
-
-
-
-
-
-
-
-
-
-
diff --git a/core-tiger/build.gradle b/core-tiger/build.gradle
deleted file mode 100644
index 6995c7c4..00000000
--- a/core-tiger/build.gradle
+++ /dev/null
@@ -1,15 +0,0 @@
-plugins {
- id 'io.spring.convention.spring-module'
-}
-
-dependencies {
- management platform(project(":spring-ldap-dependencies"))
- api project(":spring-ldap-core")
- api "org.springframework:spring-tx"
-
- testImplementation platform('org.junit:junit-bom')
- testImplementation "org.junit.vintage:junit-vintage-engine"
- testImplementation "junit:junit"
- testImplementation "org.easymock:easymock"
- testImplementation "org.assertj:assertj-core"
-}
diff --git a/core-tiger/src/assemble/bin-with-source.xml b/core-tiger/src/assemble/bin-with-source.xml
deleted file mode 100644
index 7aea3312..00000000
--- a/core-tiger/src/assemble/bin-with-source.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
- assembly
-
- dir
-
- false
-
-
- target
-
- *.jar
-
- dist
-
-
- src/main/java
-
- **/*.java
-
- src
-
-
-
diff --git a/core-tiger/src/main/java/org/springframework/ldap/core/simple/AbstractParameterizedContextMapper.java b/core-tiger/src/main/java/org/springframework/ldap/core/simple/AbstractParameterizedContextMapper.java
deleted file mode 100644
index f8a5ac3d..00000000
--- a/core-tiger/src/main/java/org/springframework/ldap/core/simple/AbstractParameterizedContextMapper.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2005-2013 the original author or authors.
- *
- * Licensed 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
- *
- * https://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.
- */
-package org.springframework.ldap.core.simple;
-
-import org.springframework.ldap.core.DirContextOperations;
-
-/**
- * Abstract superclass that may be used instead of implementing
- * {@link ParameterizedContextMapper} directly. Subclassing from this superclass,
- * the supplied context will be automatically cast to
- * DirContextOperations. Note that if you use your own
- * DirObjectFactory, this implementation will fail with a
- * ClassCastException.
- *
- * @author Mattias Hellborg Arthursson
- * @deprecated Core classes are parameterized as of 2.0.
- */
-public abstract class AbstractParameterizedContextMapper implements ParameterizedContextMapper {
-
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.ldap.core.ContextMapper#mapFromContext(java.lang.Object)
- */
- public final T mapFromContext(Object ctx) {
- return doMapFromContext((DirContextOperations) ctx);
- }
-
- /**
- * Map a single DirContextOperation to an object. The
- * supplied instance is the object supplied to
- * {@link #mapFromContext(Object)} cast to a
- * DirContextOperations.
- *
- * @param ctx the context to map to an object.
- * @return an object built from the data in the context.
- */
- protected abstract T doMapFromContext(DirContextOperations ctx);
-
-}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ContextMapperCallbackHandlerWithControls.java b/core-tiger/src/main/java/org/springframework/ldap/core/simple/ContextMapperCallbackHandlerWithControls.java
deleted file mode 100644
index 5e3701e2..00000000
--- a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ContextMapperCallbackHandlerWithControls.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2005-2013 the original author or authors.
- *
- * Licensed 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
- *
- * https://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.
- */
-package org.springframework.ldap.core.simple;
-
-import org.springframework.ldap.core.ContextMapperCallbackHandler;
-import org.springframework.ldap.core.ObjectRetrievalException;
-
-import javax.naming.Binding;
-import javax.naming.NameClassPair;
-import javax.naming.ldap.HasControls;
-
-/**
- * Currently only per request controls can be inspected via the post process
- * method on a context processor. If a request control gives a different value
- * for each search result, then this cannot be inspected using the existing
- * support classes. An example control that requires this feature would be
- * 1.3.6.1.4.1.42.2.27.9.5.8 Account usability control, that can be used with
- * for example the Sun ONE or the OpenDS directory servers.
- *
- * The extended callback handler can pass hasControls to mapper.
- *
- * @author Tim Terry
- * @author Ulrik Sandberg
- * @deprecated use {@link org.springframework.ldap.core.support.ContextMapperCallbackHandlerWithControls} instead.
- */
-public class ContextMapperCallbackHandlerWithControls extends ContextMapperCallbackHandler {
-
- private ParameterizedContextMapperWithControls> mapper = null;
-
- public ContextMapperCallbackHandlerWithControls(final ParameterizedContextMapperWithControls> mapper) {
- super(mapper);
- this.mapper = mapper;
- }
-
- /*
- * @see org.springframework.ldap.core.ContextMapperCallbackHandler#
- * getObjectFromNameClassPair(javax.naming.NameClassPair)
- */
- public Object getObjectFromNameClassPair(final NameClassPair nameClassPair) {
- if (!(nameClassPair instanceof Binding)) {
- throw new IllegalArgumentException("Parameter must be an instance of Binding");
- }
-
- Binding binding = (Binding) nameClassPair;
- Object object = binding.getObject();
- if (object == null) {
- throw new ObjectRetrievalException("Binding did not contain any object.");
- }
- Object result = null;
- if (nameClassPair instanceof HasControls) {
- result = mapper.mapFromContextWithControls(object, (HasControls) nameClassPair);
- }
- else {
- result = mapper.mapFromContext(object);
- }
- return result;
- }
-}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapper.java b/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapper.java
deleted file mode 100644
index d504c659..00000000
--- a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2005-2010 the original author or authors.
- *
- * Licensed 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
- *
- * https://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.
- */
-package org.springframework.ldap.core.simple;
-
-import org.springframework.ldap.core.ContextMapper;
-
-import javax.naming.Binding;
-import javax.naming.directory.SearchResult;
-
-/**
- * Extension of the {@link ContextMapper} interface. Uses Java 5 covariant
- * return types to override the return type of the
- * {@link #mapFromContext(Object)} method to be the type parameter T.
- *
- * @param
- * @deprecated Core classes are parameterized as of 2.0.
- */
-public interface ParameterizedContextMapper extends ContextMapper {
-
- /**
- * Map a single LDAP Context to an object. The supplied Object
- * ctx is the object from a single {@link SearchResult},
- * {@link Binding}, or a lookup operation.
- *
- * @param ctx the context to map to an object.
- * @return an object built from the data in the context.
- */
- T mapFromContext(Object ctx);
-}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapperWithControls.java b/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapperWithControls.java
deleted file mode 100644
index a7134d2e..00000000
--- a/core-tiger/src/main/java/org/springframework/ldap/core/simple/ParameterizedContextMapperWithControls.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2005-2013 the original author or authors.
- *
- * Licensed 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
- *
- * https://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.
- */
-package org.springframework.ldap.core.simple;
-
-import javax.naming.ldap.HasControls;
-
-/**
- * Extension of the {@link ParameterizedContextMapper} interface that allows
- * controls to be passed to the mapper implementation. Uses Java 5 covariant
- * return types to override the return type of the
- * {@link #mapFromContextWithControls(Object, HasControls)} method to be the
- * type parameter T.
- *
- * @author Tim Terry
- * @author Ulrik Sandberg
- * @param return type of the {@link #mapFromContextWithControls(Object, HasControls)} method.
- * @deprecated use {@link org.springframework.ldap.core.support.ContextMapperWithControls} instead.
- */
-public interface ParameterizedContextMapperWithControls extends ParameterizedContextMapper {
-
- T mapFromContextWithControls(final Object ctx, final HasControls hasControls);
-}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/core/simple/SimpleLdapOperations.java b/core-tiger/src/main/java/org/springframework/ldap/core/simple/SimpleLdapOperations.java
deleted file mode 100644
index f695dd90..00000000
--- a/core-tiger/src/main/java/org/springframework/ldap/core/simple/SimpleLdapOperations.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright 2005-2013 the original author or authors.
- *
- * Licensed 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
- *
- * https://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.
- */
-package org.springframework.ldap.core.simple;
-
-import org.springframework.dao.IncorrectResultSizeDataAccessException;
-import org.springframework.ldap.NamingException;
-import org.springframework.ldap.core.ContextSource;
-import org.springframework.ldap.core.DirContextOperations;
-import org.springframework.ldap.core.DirContextProcessor;
-import org.springframework.ldap.core.LdapOperations;
-
-import javax.naming.Name;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.SearchControls;
-import java.util.List;
-
-/**
- * LDAP operations interface usable on Java 5 and above, exposing a set of
- * common LDAP operations.
- *
- * @author Mattias Hellborg Arthursson
- * @deprecated Core classes are parameterized as of 2.0.
- */
-public interface SimpleLdapOperations {
-
- /**
- * Get the wrapped LdapOperations instance.
- *
- * @return the wrapped LdapOperations instance.
- * @throws NamingException if any error occurs.
- */
- LdapOperations getLdapOperations();
-
- /**
- * Search for a List of type T using the supplied filter and link
- * ParameterizedContextMapper.
- *
- * @param base Base DN relative to the base of the ContextSource - where to
- * start the search.
- * @param filter Search filter.
- * @param mapper the Mapper to supply all results to.
- * @return a List of type T containing objects for all entries found, as
- * mapped by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- */
- List search(String base, String filter,
- ParameterizedContextMapper mapper);
-
- /**
- * Search for a List of type T using the supplied filter and link
- * ParameterizedContextMapper.
- *
- * @param base Base DN relative to the base of the ContextSource - where to
- * start the search.
- * @param filter Search filter.
- * @param mapper the Mapper to supply all results to.
- * @return a List of type T containing objects for all entries found, as
- * mapped by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- List search(Name base, String filter,
- ParameterizedContextMapper mapper);
-
- /**
- * Search for a List of type T using the supplied filter, SearchControls,
- * DirContextProcessor and ParameterizedContextMapper.
- *
- * @param base Base DN relative to the base of the ContextSource - where to
- * start the search.
- * @param filter Search filter.
- * @param controls the SearchControls. Make sure that the returningObjFlag
- * is set to true.
- * @param mapper the Mapper to supply all results to.
- * @param processor the DirContextProcessor to be used for applying pre/post
- * processing on the DirContext instance.
- * @return a List of type T containing objects for all entries found, as
- * mapped by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- */
- List search(String base, String filter, SearchControls controls,
- ParameterizedContextMapper mapper, DirContextProcessor processor);
-
- /**
- * Search for a List of type T using the supplied filter, SearchControls,
- * DirContextProcessor and ParameterizedContextMapper.
- *
- * @param base Base DN relative to the base of the ContextSource - where to
- * start the search.
- * @param filter Search filter.
- * @param controls the SearchControls. Make sure that the returningObjFlag
- * is set to true.
- * @param mapper the Mapper to supply all results to.
- * @param processor the DirContextProcessor to be used for applying pre/post
- * processing on the DirContext instance.
- * @return a List of type T containing objects for all entries found, as
- * mapped by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- List search(Name base, String filter, SearchControls controls,
- ParameterizedContextMapper mapper, DirContextProcessor processor);
-
- /**
- * Perform a lookup of the specified DN and map the result using the mapper.
- *
- * @param dn the Distinguished Name to look up.
- * @param mapper the mapper to use.
- * @return the mapped object, as received by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- */
- T lookup(String dn, ParameterizedContextMapper mapper);
-
- /**
- * Perform a lookup of the specified DN and map the result using the mapper.
- *
- * @param dn the Distinguished Name to look up.
- * @param mapper the mapper to use.
- * @return the mapped object, as received by the ParameterizedContextMapper.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- T lookup(Name dn, ParameterizedContextMapper mapper);
-
- /**
- * Perform a search for a unique entry matching the specified search
- * criteria and return the found object. If no entry is found or if there
- * are more than one matching entry, an
- * {@link IncorrectResultSizeDataAccessException} is thrown.
- * @param base the DN to use as the base of the search.
- * @param filter the search filter.
- * @param mapper the mapper to use for the search.
- * @return the single object returned by the mapper that matches the search
- * criteria.
- * @throws IncorrectResultSizeDataAccessException if the result is not one
- * unique entry
- * @since 1.3
- */
- T searchForObject(String base, String filter,
- ParameterizedContextMapper mapper);
-
- /**
- * Perform a search for a unique entry matching the specified search
- * criteria and return the found object. If no entry is found or if there
- * are more than one matching entry, an
- * {@link IncorrectResultSizeDataAccessException} is thrown.
- * @param base the DN to use as the base of the search.
- * @param filter the search filter.
- * @param mapper the mapper to use for the search.
- * @return the single object returned by the mapper that matches the search
- * criteria.
- * @throws IncorrectResultSizeDataAccessException if the result is not one
- * unique entry
- * @since 1.3
- */
- T searchForObject(Name base, String filter,
- ParameterizedContextMapper mapper);
-
- /**
- * Look up the specified DN, and automatically cast it to a
- * {@link DirContextOperations} instance.
- *
- * @param dn The Distinguished Name of the entry to look up.
- * @return A {@link DirContextOperations} instance constructed from the
- * found entry.
- * @throws NamingException if any error occurs.
- */
- DirContextOperations lookupContext(String dn);
-
- /**
- * Look up the specified DN, and automatically cast it to a
- * {@link DirContextOperations} instance.
- *
- * @param dn The Distinguished Name of the entry to look up.
- * @return A {@link DirContextOperations} instance constructed from the
- * found entry.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- DirContextOperations lookupContext(Name dn);
-
- /**
- * Create an entry in the LDAP tree. The attributes used to create the entry
- * are either retrieved from the obj parameter or the
- * attributes parameter (or both). One of these parameters may
- * be null but not both.
- *
- * @param dn The distinguished name to bind the object and attributes to.
- * @param obj The object to bind, may be null. Typically a DirContext
- * implementation.
- * @param attributes The attributes to bind, may be null.
- * @throws NamingException if any error occurs.
- */
- void bind(String dn, Object obj, Attributes attributes);
-
- /**
- * Create an entry in the LDAP tree. The attributes used to create the entry
- * are either retrieved from the obj parameter or the
- * attributes parameter (or both). One of these parameters may
- * be null but not both.
- *
- * @param dn The distinguished name to bind the object and attributes to.
- * @param obj The object to bind, may be null. Typically a DirContext
- * implementation.
- * @param attributes The attributes to bind, may be null.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- void bind(Name dn, Object obj, Attributes attributes);
-
- /**
- * Bind the data in the supplied context in the tree. All specified
- * Attributes in will be bound to the DN set on the instance.
- *
- * @param ctx the context to bind
- * @throws IllegalStateException if no DN is set or if the instance is in
- * update mode.
- * @since 1.3
- */
- void bind(DirContextOperations ctx);
-
- /**
- * Remove an entry from the LDAP tree. The entry must not have any children.
- *
- * @param dn The distinguished name to unbind.
- * @throws NamingException if any error occurs.
- */
- void unbind(String dn);
-
- /**
- * Remove an entry from the LDAP tree. The entry must not have any children.
- *
- * @param dn The distinguished name to unbind.
- * @throws NamingException if any error occurs.
- * @since 1.3
- */
- void unbind(Name dn);
-
- /**
- * Modify the Attributes of the entry corresponding to the supplied
- * {@link DirContextOperations} instance. The instance should have been
- * received from the {@link #lookupContext(String)} operation, and then
- * modified to match the current state of the matching domain object, e.g.:
- *
- *
- *
- * @param ctx the entry to update in the LDAP tree.
- * @throws NamingException if any error occurs.
- */
- void modifyAttributes(DirContextOperations ctx);
-
- /**
- * Utility method to perform a simple LDAP 'bind' authentication. Search for
- * the LDAP entry to authenticate using the supplied base DN and filter; use
- * the DN of the found entry together with the password as input to
- * {@link ContextSource#getContext(String, String)}, thus authenticating the
- * entry.
- *
- *
- * @param base the DN to use as the base of the search.
- * @param filter the search filter - must result in a unique result.
- * @param password the password to use for authentication.
- * @return true if the authentication was successful,
- * false otherwise.
- * @since 1.3
- */
- boolean authenticate(String base, String filter, String password);
-
- /**
- * Utility method to perform a simple LDAP 'bind' authentication. Search for
- * the LDAP entry to authenticate using the supplied base DN and filter; use
- * the DN of the found entry together with the password as input to
- * {@link ContextSource#getContext(String, String)}, thus authenticating the
- * entry.
- *