Author: bdaw
Date: 2009-06-22 04:42:23 -0400 (Mon, 22 Jun 2009)
New Revision: 621
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
Log:
add manageTransactionDuringBootstrap hibernate store switch
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
===================================================================
---
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-06-19
10:44:38 UTC (rev 620)
+++
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-06-22
08:42:23 UTC (rev 621)
@@ -119,6 +119,8 @@
public static final String POPULATE_IDENTITY_OBJECT_TYPES =
"populateIdentityObjectTypes";
public static final String IS_REALM_AWARE = "isRealmAware";
+
+ public static final String MANAGE_TRANSACTION_DURING_BOOTSTRAP =
"manageTransactionDuringBootstrap";
public static final String ALLOW_NOT_DEFINED_ATTRIBUTES =
"allowNotDefinedAttributes";
@@ -142,6 +144,8 @@
private boolean isAllowNotDefinedIdentityObjectTypes = false;
+ private boolean isManageTransactionDuringBootstrap = true;
+
// TODO: rewrite this into some more handy object
private IdentityStoreConfigurationMetaData configurationMD;
@@ -192,6 +196,13 @@
String populateMembershipTypes =
configurationMD.getOptionSingleValue(POPULATE_MEMBERSHIP_TYPES);
String populateIdentityObjectTypes =
configurationMD.getOptionSingleValue(POPULATE_IDENTITY_OBJECT_TYPES);
+ String manageTransactionDuringBootstrap =
configurationMD.getOptionSingleValue(MANAGE_TRANSACTION_DURING_BOOTSTRAP);
+
+ if (manageTransactionDuringBootstrap != null &&
manageTransactionDuringBootstrap.equalsIgnoreCase("false"))
+ {
+ this.isAllowNotDefinedAttributes = false;
+ }
+
sessionFactory = bootstrapHibernateSessionFactory(configurationContext);
Session hibernateSession = sessionFactory.openSession();
@@ -223,6 +234,11 @@
attributeMappings = Collections.unmodifiableMap(attributeMappings);
+ if (isManageTransactionDuringBootstrap())
+ {
+ hibernateSession.getTransaction().begin();
+ }
+
if (populateMembershipTypes != null &&
populateMembershipTypes.equalsIgnoreCase("true"))
{
List<String> memberships = new LinkedList<String>();
@@ -304,12 +320,10 @@
try
{
- hibernateSession.getTransaction().begin();
realm = (HibernateRealm)hibernateSession.
createCriteria(HibernateRealm.class).add(Restrictions.eq("name",
DEFAULT_REALM_NAME)).uniqueResult();
- hibernateSession.getTransaction().commit();
}
catch (HibernateException e)
@@ -317,11 +331,19 @@
// Realm does not exist
}
+
+
+
if (realm == null)
{
addRealm(hibernateSession, DEFAULT_REALM_NAME);
}
+ if (isManageTransactionDuringBootstrap())
+ {
+ hibernateSession.getTransaction().commit();
+ }
+
hibernateSession.flush();
hibernateSession.close();
@@ -2197,7 +2219,7 @@
{
throw new IdentityException("IdentityObjectType[" + type.getName() +
"] not present in the store.");
}
-
+
return hibernateType;
}
@@ -2270,8 +2292,8 @@
public void populateObjectTypes(Session hibernateSession, String[] typeNames) throws
Exception
{
- hibernateSession.getTransaction().begin();
+
for (String typeName : typeNames)
{
@@ -2288,15 +2310,11 @@
}
- hibernateSession.getTransaction().commit();
-
}
public void populateRelationshipTypes(Session hibernateSession, String[] typeNames)
throws Exception
{
- hibernateSession.getTransaction().begin();
-
for (String typeName : typeNames)
{
HibernateIdentityObjectRelationshipType hibernateType =
(HibernateIdentityObjectRelationshipType)hibernateSession.
@@ -2310,14 +2328,11 @@
}
- hibernateSession.getTransaction().commit();
}
-
public void populateCredentialTypes(Session hibernateSession, String[] typeNames)
throws Exception
{
- hibernateSession.getTransaction().begin();
for (String typeName : typeNames)
{
@@ -2332,7 +2347,6 @@
}
- hibernateSession.getTransaction().commit();
}
@@ -2342,12 +2356,10 @@
try
{
- hibernateSession.getTransaction().begin();
HibernateRealm realm = new HibernateRealm(realmName);
hibernateSession.persist(realm);
- hibernateSession.getTransaction().commit();
}
catch (Exception e)
@@ -2505,6 +2517,8 @@
return isAllowNotDefinedIdentityObjectTypes;
}
-
-
+ public boolean isManageTransactionDuringBootstrap()
+ {
+ return isManageTransactionDuringBootstrap;
+ }
}
Show replies by date