You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/12/07 10:09:31 UTC

[02/30] cayenne git commit: CAY-2377. Cleanup org.apache.cayenne.map

CAY-2377. Cleanup org.apache.cayenne.map


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/4af8de54
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/4af8de54
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/4af8de54

Branch: refs/heads/master
Commit: 4af8de54d6b7bcf997e03cf7981a0790151e8509
Parents: 5a912ad
Author: Arseni Bulatski <an...@gmail.com>
Authored: Wed Oct 25 13:32:52 2017 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Wed Nov 15 10:27:46 2017 +0300

----------------------------------------------------------------------
 .../java/org/apache/cayenne/map/DataMap.java    |  75 ------------
 .../java/org/apache/cayenne/map/Embeddable.java |  19 ---
 .../org/apache/cayenne/map/EntityListener.java  |  79 ------------
 .../cayenne/map/EntityListenerFactory.java      |  44 -------
 .../org/apache/cayenne/map/EntityResolver.java  |  70 -----------
 .../java/org/apache/cayenne/map/ObjEntity.java  | 121 -------------------
 .../apache/cayenne/map/MockEntityResolver.java  |   6 -
 .../cayenne/map/MockMappingNamespace.java       |   4 -
 docs/doc/src/main/resources/UPGRADE.txt         |  32 ++++-
 9 files changed, 30 insertions(+), 420 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index 1cffde2..f52f5b5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -146,11 +146,6 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	private SortedMap<String, SQLResult> results;
 
 	/**
-	 * @deprecated since 4.0 unused as listeners are no longer tied to a DataMap.
-	 */
-	private List<EntityListener> defaultEntityListeners;
-
-	/**
 	 * @since 3.1
 	 */
 	protected transient Resource configurationSource;
@@ -180,7 +175,6 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 		dbEntityMap = new TreeMap<>();
 		procedureMap = new TreeMap<>();
 		queryDescriptorMap = new TreeMap<>();
-		defaultEntityListeners = new ArrayList<>(3);
 		results = new TreeMap<>();
 		setName(mapName);
 		initWithProperties(properties);
@@ -720,75 +714,6 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	}
 
 	/**
-	 * Returns an unmodifiable list of default {@link EntityListener} objects.
-	 * Note that since the order of listeners is significant a list, not just a
-	 * generic Collection is returned.
-	 * 
-	 * @since 3.0
-	 * @deprecated since 4.0 unused as listeners are no longer tied to a
-	 *             DataMap.
-	 */
-	@Deprecated
-	public List<EntityListener> getDefaultEntityListeners() {
-		return Collections.unmodifiableList(defaultEntityListeners);
-	}
-
-	/**
-	 * Adds a new EntityListener.
-	 * 
-	 * @since 3.0
-	 * @throws IllegalArgumentException
-	 *             if a listener for the same class name is already registered.
-	 * @deprecated since 4.0 unused as listeners are no longer tied to a
-	 *             DataMap.
-	 */
-	@Deprecated
-	public void addDefaultEntityListener(EntityListener listener) {
-		for (EntityListener next : defaultEntityListeners) {
-			if (listener.getClassName().equals(next.getClassName())) {
-				throw new IllegalArgumentException("Duplicate default listener for " + next.getClassName());
-			}
-		}
-
-		defaultEntityListeners.add(listener);
-	}
-
-	/**
-	 * Removes a listener matching class name.
-	 * 
-	 * @since 3.0
-	 * @deprecated since 4.0 unused as listeners are no longer tied to a
-	 *             DataMap.
-	 */
-	@Deprecated
-	public void removeDefaultEntityListener(String className) {
-		Iterator<EntityListener> it = defaultEntityListeners.iterator();
-		while (it.hasNext()) {
-			EntityListener next = it.next();
-			if (className.equals(next.getClassName())) {
-				it.remove();
-				break;
-			}
-		}
-	}
-
-	/**
-	 * @since 3.0
-	 * @deprecated since 4.0 unused, as listeners are no longer tied to a
-	 *             DataMap.
-	 */
-	@Deprecated
-	public EntityListener getDefaultEntityListener(String className) {
-		for (EntityListener listener : defaultEntityListeners) {
-			if (className.equals(listener.getClassName())) {
-				return listener;
-			}
-		}
-
-		return null;
-	}
-
-	/**
 	 * Returns all DbEntities in this DataMap.
 	 */
 	public Collection<DbEntity> getDbEntities() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/Embeddable.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Embeddable.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Embeddable.java
index d6a354e..f784e64 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Embeddable.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Embeddable.java
@@ -74,25 +74,6 @@ public class Embeddable implements ConfigurationNode, XMLSerializable, Serializa
 	}
 
 	/**
-	 * Returns Java class of the embeddable.
-	 * 
-	 * @deprecated since 4.0 this method based on statically defined class
-	 *             loading algorithm is not going to work in environments like
-	 *             OSGi. {@link AdhocObjectFactory} should be used as it can
-	 *             provide the environment-specific class loading policy.
-	 */
-	@Deprecated
-	public Class<?> getJavaClass() {
-		String name = getClassName();
-
-		try {
-			return Util.getJavaClass(name);
-		} catch (ClassNotFoundException e) {
-			throw new CayenneRuntimeException("Failed to load class " + name + ": " + e.getMessage(), e);
-		}
-	}
-
-	/**
 	 * Returns EmbeddableAttribute of this Embeddable that maps to
 	 * <code>dbAttribute</code> parameter. Returns null if no such attribute is
 	 * found.

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListener.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListener.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListener.java
deleted file mode 100644
index f9486bc..0000000
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListener.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*****************************************************************
- *   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.
- ****************************************************************/
-package org.apache.cayenne.map;
-
-import java.io.Serializable;
-
-import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
-import org.apache.cayenne.util.XMLEncoder;
-import org.apache.cayenne.util.XMLSerializable;
-
-/**
- * A mapping descriptor of an entity listener class that declares one or more
- * callback methods to be notified of the entity events.
- * 
- * @since 3.0
- * @deprecated since 4.0, as EntityResolver no longer loads listeners from its
- *             DataMaps.
- */
-@Deprecated
-public class EntityListener implements Serializable, XMLSerializable {
-
-    protected String className;
-    protected CallbackMap callbacks;
-
-    public EntityListener() {
-        this(null);
-    }
-
-    public EntityListener(String className) {
-        this.className = className;
-        this.callbacks = new CallbackMap();
-    }
-
-    public String getClassName() {
-        return className;
-    }
-
-    public void setClassName(String className) {
-        this.className = className;
-    }
-
-    /**
-     * Returns an object that stores callback methods of this listener.
-     * 
-     * @return callback map
-     */
-    public CallbackMap getCallbackMap() {
-        return callbacks;
-    }
-
-    @Override
-    public void encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate) {
-        encoder.print("<entity-listener class=\"");
-        encoder.print(className);
-        encoder.println("\">");
-        encoder.indent(1);
-
-        getCallbackMap().encodeCallbacksAsXML(encoder);
-
-        encoder.indent(-1);
-        encoder.println("</entity-listener>");
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java
deleted file mode 100644
index 5457967..0000000
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*****************************************************************
- *   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.
- ****************************************************************/
-package org.apache.cayenne.map;
-
-/**
- * A factory used to create entity listeners. By default listeners are created
- * using a noop constructor on the listener class, however if a user needs to
- * customize listener creation process (e.g. perform dependency injection,
- * etc.), a custom factory can be installed on the EntityResolver.
- * EntityListenerFactory also supports defining listener interfaces, not just
- * classes).
- * 
- * @since 3.0
- * @deprecated since 4.0, as EntityResolver no longer loads listeners from its
- *             DataMaps.
- */
-public interface EntityListenerFactory {
-
-    /**
-     * Creates an instance of entity listener of a given class. "entity"
-     * parameter denotes ObjEntity for which the listener is installed. It is
-     * null if this is a default listener.
-     * 
-     * @return a listener of the given class. May return null to indicate that a
-     *         configured listener should be suppressed.
-     */
-    Object createListener(EntityListener listenerMapping, ObjEntity entity);
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
index 8d4cd5d..74668ac 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
@@ -56,9 +56,6 @@ public class EntityResolver implements MappingNamespace, Serializable {
     protected static final Logger logger = LoggerFactory.getLogger(EntityResolver.class);
     protected static AtomicLong incrementer = new AtomicLong();
 
-    @Deprecated
-    protected boolean indexedByClass;
-
     protected Collection<DataMap> maps;
     protected transient MappingNamespace mappingCache;
     protected EntityResolver clientEntityResolver;
@@ -507,51 +504,11 @@ public class EntityResolver implements MappingNamespace, Serializable {
         return entity;
     }
 
-    /**
-     * @deprecated since 4.0, use {@link #getObjEntity(Class)}.
-     */
-    public ObjEntity lookupObjEntity(Class<?> entityClass) {
-        return getObjEntity(entityClass);
-    }
-
     public ObjEntity getObjEntity(Persistent object) {
         checkMappingCache();
         return mappingCache.getObjEntity(object);
     }
 
-    /**
-     * Looks in the DataMap's that this object was created with for the
-     * ObjEntity that services the specified data Object
-     * 
-     * @return the required ObjEntity, or null if none matches the specifier
-     * @since 4.0 a corresponding getObjEntity method should be used.
-     */
-    @Deprecated
-    public ObjEntity lookupObjEntity(Object object) {
-        if (object instanceof ObjEntity) {
-            return (ObjEntity) object;
-        }
-
-        if (object instanceof Persistent) {
-            ObjectId id = ((Persistent) object).getObjectId();
-            if (id != null) {
-                return getObjEntity(id.getEntityName());
-            }
-        } else if (object instanceof Class) {
-            return getObjEntity((Class<?>) object);
-        }
-
-        return getObjEntity(object.getClass());
-    }
-
-    /**
-     * @deprecated since 4.0 use {@link #getProcedure(String)}.
-     */
-    @Deprecated
-    public Procedure lookupProcedure(String procedureName) {
-        return getProcedure(procedureName);
-    }
-
     public synchronized void removeDataMap(DataMap map) {
         if (maps.remove(map)) {
             refreshMappingCache();
@@ -559,23 +516,6 @@ public class EntityResolver implements MappingNamespace, Serializable {
     }
 
     /**
-     * @deprecated since 4.0. There's no replacement. This property is
-     *             meaningless and is no longer respected by the code.
-     */
-    @Deprecated
-    public boolean isIndexedByClass() {
-        return indexedByClass;
-    }
-
-    /**
-     * @deprecated since 4.0. There's no replacement. This property is
-     *             meaningless.
-     */
-    public void setIndexedByClass(boolean b) {
-        indexedByClass = b;
-    }
-
-    /**
      * Returns an object that compiles and stores {@link ClassDescriptor}
      * instances for all entities.
      * 
@@ -613,16 +553,6 @@ public class EntityResolver implements MappingNamespace, Serializable {
     }
 
     /**
-     * @since 3.0
-     * @deprecated since 4.0 this method does nothing, as EntityResolver no
-     *             longer loads listeners from its DataMaps.
-     */
-    @Deprecated
-    public void setEntityListenerFactory(EntityListenerFactory entityListenerFactory) {
-        // noop
-    }
-
-    /**
      * Java default deserialization seems not to invoke constructor by default -
      * invoking it manually
      */

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
index 536d2cf..5c5dcf4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
@@ -80,16 +80,8 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
     protected String clientClassName;
     protected String clientSuperClassName;
 
-    @Deprecated
-    protected List<EntityListener> entityListeners;
     protected CallbackMap callbacks;
 
-    @Deprecated
-    protected boolean excludingDefaultListeners;
-
-    @Deprecated
-    protected boolean excludingSuperclassListeners;
-
     protected Map<String, String> attributeOverrides;
 
     public ObjEntity() {
@@ -100,7 +92,6 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
         setName(name);
         this.lockType = LOCK_TYPE_NONE;
         this.callbacks = new CallbackMap();
-        this.entityListeners = new ArrayList<>(2);
         this.attributeOverrides = new TreeMap<>();
     }
 
@@ -279,75 +270,6 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
     }
 
     /**
-     * Returns an unmodifiable list of registered {@link EntityListener}
-     * objects. Note that since the order of listeners is significant a list,
-     * not just a generic Collection is returned.
-     * 
-     * @since 3.0
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public List<EntityListener> getEntityListeners() {
-        return Collections.unmodifiableList(entityListeners);
-    }
-
-    /**
-     * Adds a new EntityListener.
-     * 
-     * @since 3.0
-     * @throws IllegalArgumentException
-     *             if a listener for the same class name is already registered.
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public void addEntityListener(EntityListener listener) {
-        for (EntityListener next : entityListeners) {
-            if (listener.getClassName().equals(next.getClassName())) {
-                throw new IllegalArgumentException("Duplicate listener for " + next.getClassName());
-            }
-        }
-
-        entityListeners.add(listener);
-    }
-
-    /**
-     * Removes a listener matching class name.
-     * 
-     * @since 3.0
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public void removeEntityListener(String className) {
-        Iterator<EntityListener> it = entityListeners.iterator();
-        while (it.hasNext()) {
-            EntityListener next = it.next();
-            if (className.equals(next.getClassName())) {
-                it.remove();
-                break;
-            }
-        }
-    }
-
-    /**
-     * @since 3.0
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public EntityListener getEntityListener(String className) {
-        for (EntityListener next : entityListeners) {
-            if (className.equals(next.getClassName())) {
-                return next;
-            }
-        }
-
-        return null;
-    }
-
-    /**
      * Returns an object that stores callback methods of this entity.
      * 
      * @since 3.0
@@ -1223,47 +1145,4 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
         // does nothing currently
     }
 
-    /**
-     * Returns true if the default lifecycle listeners should not be notified of
-     * this entity lifecycle events.
-     * 
-     * @since 3.0
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public boolean isExcludingDefaultListeners() {
-        return excludingDefaultListeners;
-    }
-
-    /**
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public void setExcludingDefaultListeners(boolean excludingDefaultListeners) {
-        this.excludingDefaultListeners = excludingDefaultListeners;
-    }
-
-    /**
-     * Returns true if the lifeycle listeners defined on the superclasses should
-     * not be notified of this entity lifecycle events.
-     * 
-     * @since 3.0
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public boolean isExcludingSuperclassListeners() {
-        return excludingSuperclassListeners;
-    }
-
-    /**
-     * @deprecated since 4.0 unused, as listeners are no longer mapped in a
-     *             DataMap.
-     */
-    @Deprecated
-    public void setExcludingSuperclassListeners(boolean excludingSuperclassListeners) {
-        this.excludingSuperclassListeners = excludingSuperclassListeners;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
index b9169a4..a7eae6a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
@@ -32,12 +32,6 @@ public class MockEntityResolver extends EntityResolver {
         this.mockObjEntity = mockObjEntity;
     }
 
-    @Override
-    @Deprecated
-    public synchronized ObjEntity lookupObjEntity(Class aClass) {
-        return mockObjEntity;
-    }
-
     public synchronized ObjEntity lookupObjEntity(DataObject dataObject) {
         return mockObjEntity;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/cayenne-server/src/test/java/org/apache/cayenne/map/MockMappingNamespace.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockMappingNamespace.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockMappingNamespace.java
index 73cc8ff..c3fd5ee 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockMappingNamespace.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockMappingNamespace.java
@@ -40,10 +40,6 @@ public class MockMappingNamespace implements MappingNamespace {
 		return null;
 	}
 
-	public EntityListener getEntityListener(String className) {
-		return null;
-	}
-
 	public void addDbEntity(DbEntity entity) {
 		dbEntities.put(entity.getName(), entity);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4af8de54/docs/doc/src/main/resources/UPGRADE.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/UPGRADE.txt b/docs/doc/src/main/resources/UPGRADE.txt
index 7ffa685..27b9388 100644
--- a/docs/doc/src/main/resources/UPGRADE.txt
+++ b/docs/doc/src/main/resources/UPGRADE.txt
@@ -146,8 +146,36 @@ UPGRADING TO 4.1.M2
       in org.apache.cayenne.cache.EhCacheQueryCache;
       - removed ServerRuntimeBuilder builder() {since 4.0.M5 in favor of ServerRuntime#builder()} in org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
       - removed ServerRuntimeBuilder builder(String name) {since 4.0.M5 in favor of ServerRuntime#builder(String)} in org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
-
-
+      - removed ObjEntity lookupObjEntity(Class<?> entityClass) {since 4.0, use getObjEntity(Class)} in org.apache.cayenne.map.EntityResolver;
+      - removed synchronized ObjEntity lookupObjEntity(Class aClass) in org.apache.cayenne.map.MockEntityResolver;
+      - removed boolean isIndexedByClass() {since 4.0. There's no replacement. This property is meaningless and is no longer respected by the code} in org.apache.cayenne.map.EntityResolver;
+      - removed void setIndexedByClass(boolean b) {since 4.0. There's no replacement. This property is meaningless and is no longer
+      respected by the code} in org.apache.cayenne.map.EntityResolver;
+      - removed protected boolean indexedByClass; in org.apache.cayenne.map.EntityResolver;
+      - removed void setEntityListenerFactory(EntityListenerFactory entityListenerFactory); {since 4.0 this method does nothing, as EntityResolver no longer loads listeners from its DataMaps.}
+      in org.apache.cayenne.map.EntityResolver;
+      - removed Procedure lookupProcedure(String procedureName) {since 4.0 use getProcedure(String)} in org.apache.cayenne.map.EntityResolver;
+      - removed ObjEntity lookupObjEntity(Object object) {4.0 a corresponding getObjEntity method should be used} in org.apache.cayenne.map.EntityResolver;
+      - removed Class<?> getJavaClass() {since 4.0 this method based on statically defined class loading algorithm is not going to work in environments like OSGi.
+      AdhocObjectFactory should be used as it can provide the environment-specific class loading policy.} in prg.apache.cayenne.map.Embeddable;
+      - removed void addDefaultEntityListener(EntityListener listener) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed EntityListener getDefaultEntityListener(String className) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed List<EntityListener> getDefaultEntityListeners() {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed void removeDefaultEntityListener(String className) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed void removeDefaultEntityListener(String className) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed void addEntityListener(EntityListener listener) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed EntityListener getEntityListener(String className) {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed List<EntityListener> getEntityListeners() {since 4.0 unused, as listeners are no longer mapped in a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed boolean isExcludingDefaultListeners() {since 4.0 unused, as listeners are no longer mapped in a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed boolean isExcludingSuperclassListeners() {since 4.0 unused, as listeners are no longer mapped in a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed void removeEntityListener(String className) {since 4.0 unused, as listeners are no longer mapped in a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed void setExcludingDefaultListeners(boolean excludingDefaultListeners) {since 4.0 unused, as listeners are no longer mapped in a DataMap} in org.apache.cayenne.map.ObjEntity;
+      - removed void setExcludingSuperclassListeners(boolean excludingSuperclassListeners) in org.apache.cayenne.map.ObjEntity;
+      - removed boolean excludingDefaultListeners in org.apache.cayenne.map.ObjEntity;
+      - removed boolean excludingSuperclassListeners in org.apache.cayenne.map.ObjEntity;
+      - removed List<EntityListener> defaultEntityListeners; {since 4.0 unused as listeners are no longer tied to a DataMap} in org.apache.cayenne.map.DataMap;
+      - removed List<EntityListener> entityListeners;  in org.apache.cayenne.map.ObjEntity;
+      - removed EntityListener getEntityListener(String className) in org.apache.cayenne.map.MockMappingNamespace;
 
 UPGRADING TO 4.1.M1