From c3691f5e887c9f561097702ae8f04d7ef3d485d4 Mon Sep 17 00:00:00 2001 From: Jeremy Bauer Date: Thu, 5 Feb 2009 03:31:15 +0000 Subject: [PATCH] OPENJPA-849 Committing code and corresponding tests contributed by Dianne Richards git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@740991 13f79535-47bb-0310-9956-ffa450edef68 --- .../persistence/EntityManagerFactoryImpl.java | 26 +++++++++++-------- .../persistence/EntityManagerImpl.java | 25 +++++++++++++----- .../OpenJPAEntityManagerFactory.java | 2 +- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java index 6c803b8d8..e90fe05ba 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java @@ -18,23 +18,18 @@ */ package org.apache.openjpa.persistence; -import java.io.InputStream; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Set; import javax.persistence.Cache; import javax.persistence.EntityManagerFactory; -import javax.persistence.QueryBuilder; - import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.enhance.Reflection; import org.apache.openjpa.kernel.AutoDetach; @@ -71,7 +66,6 @@ public class EntityManagerFactoryImpl private transient Constructor _plan = null; private transient StoreCache _cache = null; private transient QueryResultCache _queryCache = null; - private Set _supportedPropertyKeys; /** * Default constructor provided for auto-instantiation. @@ -104,9 +98,20 @@ public class EntityManagerFactoryImpl public OpenJPAConfiguration getConfiguration() { return _factory.getConfiguration(); } - - public Properties getProperties() { - return _factory.getProperties(); + + /* + * @see javax.persistence.EntityManagerFactory#getProperties() + * + * This does not return the password property. + */ + public Map getProperties() { + Map properties = _factory.getAllProperties(); + + // Remove the password property + properties.remove("javax.persistence.jdbc.password"); + properties.remove("openjpa.ConnectionPassword"); + + return properties; } public Object putUserObject(Object key, Object val) { @@ -350,7 +355,6 @@ public class EntityManagerFactoryImpl } public Set getSupportedProperties() { - throw new UnsupportedOperationException( - "JPA 2.0 - Method not yet implemented"); + return _factory.getSupportedProperties(); } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index 4662fe1be..3db7b691e 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -31,6 +31,7 @@ import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; +import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Map; import java.util.Set; @@ -964,7 +965,7 @@ public class EntityManagerImpl return _broker.getCachePreparedQuery() ? getConfiguration().getQuerySQLCacheInstance() : null; } - + /** * Gets the prepared query cached by the given key. * @@ -975,7 +976,6 @@ public class EntityManagerImpl return (cache == null) ? null : cache.get(id); } - public void setFlushMode(FlushModeType flushMode) { assertNotCloseInvoked(); _broker.assertOpen(); @@ -1442,9 +1442,23 @@ public class EntityManagerImpl "JPA 2.0 - Method not yet implemented"); } + /* + * @see javax.persistence.EntityManager#getProperties() + * + * This does not return the password property. + */ public Map getProperties() { - throw new UnsupportedOperationException( - "JPA 2.0 - Method not yet implemented"); + Map currentProperties = _broker.getProperties(); + + // Convert the map into a map + Map finalMap = + new HashMap(currentProperties); + + // Remove the password property + finalMap.remove("javax.persistence.jdbc.password"); + finalMap.remove("openjpa.ConnectionPassword"); + + return finalMap; } public OpenJPAQueryBuilder getQueryBuilder() { @@ -1452,8 +1466,7 @@ public class EntityManagerImpl } public Set getSupportedProperties() { - throw new UnsupportedOperationException( - "JPA 2.0 - Method not yet implemented"); + return _broker.getSupportedProperties(); } public void lock(Object entity, LockModeType lockMode, Map getProperties(); /** * Put the specified key-value pair into the map of user objects.