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 <ancars...@gmail.com> Authored: Wed Oct 25 13:32:52 2017 +0300 Committer: Arseni Bulatski <ancars...@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