Author: gk
Date: Fri Mar 7 10:53:14 2014
New Revision: 1575232
URL: http://svn.apache.org/r1575232
Log:
TRB-92. Adding support for custom Torque peer classes providing manager
integration. Testing could not yet be done without providing PeerImpl classes
decorated with peer interfaces, cft. TORQUE-309). Fetching the peer from the
already available classNames for user manager, etc is done by calling getPeer.
The attribute peerInterface in fulcrum-turbine-schema.xml is not yet used (cft.
TORQUE-309).
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
(with props)
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml
(with props)
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java
(with props)
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractEntityManager.java
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueRoleConfig.xml
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractEntityManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractEntityManager.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractEntityManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractEntityManager.java
Fri Mar 7 10:53:14 2014
@@ -34,6 +34,11 @@ public abstract class AbstractEntityMana
{
private String className;
private static final String CLASS_NAME_KEY = "className";
+
+ private Boolean customPeer = false; // used for torque which uses per
object peer classes
+
+ private String peerClassName;
+ private static final String PEER_CLASS_NAME_KEY = "peerClassName";
/**
* Avalon Service lifecycle method
@@ -41,6 +46,12 @@ public abstract class AbstractEntityMana
public void configure(Configuration conf) throws ConfigurationException
{
className = conf.getChild(CLASS_NAME_KEY).getValue();
+
+ peerClassName = conf.getChild( PEER_CLASS_NAME_KEY).getValue( null );
+ if (peerClassName != null) {
+ setPeerClassName( peerClassName );
+ setCustomPeer(true);
+ }
}
/**
@@ -60,4 +71,25 @@ public abstract class AbstractEntityMana
this.className = className;
}
+ public Boolean getCustomPeer()
+ {
+ return customPeer;
+ }
+
+ public void setCustomPeer( Boolean customPeer )
+ {
+ this.customPeer = customPeer;
+ }
+
+ public String getPeerClassName()
+ {
+ return peerClassName;
+ }
+
+ public void setPeerClassName( String peerClassName )
+ {
+ this.peerClassName = peerClassName;
+ }
+
+
}
Modified:
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml
(original)
+++ turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml Fri
Mar 7 10:53:14 2014
@@ -33,7 +33,7 @@
xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
http://db.apache.org/torque/4.0/templates/database.xsd">
- <table name="FULCRUM_TURBINE_PERMISSION" javaName="TorqueTurbinePermission"
idMethod="idbroker"
+ <table name="FULCRUM_TURBINE_PERMISSION" javaName="TorqueTurbinePermission"
idMethod="idbroker"
peerInterface="org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer"
baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbinePermission">
<column name="PERMISSION_ID" required="true" primaryKey="true"
type="INTEGER" javaName="EntityId" javaType="object"/>
<column name="PERMISSION_NAME" required="true" size="64" type="VARCHAR"
javaName="EntityName"/>
@@ -44,7 +44,7 @@
</table>
- <table name="FULCRUM_TURBINE_ROLE" javaName="TorqueTurbineRole"
idMethod="idbroker"
+ <table name="FULCRUM_TURBINE_ROLE" javaName="TorqueTurbineRole"
idMethod="idbroker"
peerInterface="org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer"
baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbineRole">
<column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"
javaName="EntityId" javaType="object"/>
<column name="ROLE_NAME" required="true" size="64" type="VARCHAR"
javaName="EntityName"/>
@@ -55,7 +55,7 @@
</table>
- <table name="FULCRUM_TURBINE_GROUP" javaName="TorqueTurbineGroup"
idMethod="idbroker"
+ <table name="FULCRUM_TURBINE_GROUP" javaName="TorqueTurbineGroup"
idMethod="idbroker"
peerInterface="org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer"
baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbineGroup">
<column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER"
javaName="EntityId" javaType="object"/>
<column name="GROUP_NAME" required="true" type="VARCHAR" size="64"
javaName="EntityName"/>
@@ -66,7 +66,7 @@
</table>
- <table name="FULCRUM_TURBINE_USER" javaName="TorqueTurbineUser"
idMethod="idbroker"
+ <table name="FULCRUM_TURBINE_USER" javaName="TorqueTurbineUser"
idMethod="idbroker"
peerInterface="org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer"
baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbineUser">
<column name="USER_ID" required="true" primaryKey="true" type="INTEGER"
javaName="EntityId" javaType="object"/>
<column name="LOGIN_NAME" required="true" size="64" type="VARCHAR"
javaName="EntityName"/>
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
Fri Mar 7 10:53:14 2014
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.fulcrum.security.entity.User;
import org.apache.fulcrum.security.spi.AbstractUserManager;
+import org.apache.fulcrum.security.torque.peer.Peer;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.EntityExistsException;
import org.apache.fulcrum.security.util.UnknownEntityException;
@@ -351,4 +352,5 @@ public abstract class TorqueAbstractUser
return user;
}
+
}
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,22 @@
+package org.apache.fulcrum.security.torque.om;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Tue Mar 04 14:21:36 CET 2014]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements. This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TorqueTurbineGroupPeerImpl
+ extends
org.apache.fulcrum.security.torque.om.BaseTorqueTurbineGroupPeerImpl
+ implements org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1393939296089L;
+
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineGroupPeerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,22 @@
+package org.apache.fulcrum.security.torque.om;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Tue Mar 04 14:21:36 CET 2014]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements. This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TorqueTurbinePermissionPeerImpl
+ extends
org.apache.fulcrum.security.torque.om.BaseTorqueTurbinePermissionPeerImpl
+ implements org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1393939296076L;
+
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbinePermissionPeerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,22 @@
+package org.apache.fulcrum.security.torque.om;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Tue Mar 04 14:21:36 CET 2014]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements. This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TorqueTurbineRolePeerImpl
+ extends org.apache.fulcrum.security.torque.om.BaseTorqueTurbineRolePeerImpl
+ implements org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1393939296083L;
+
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePeerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,22 @@
+package org.apache.fulcrum.security.torque.om;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Tue Mar 04 14:21:36 CET 2014]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements. This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TorqueTurbineUserPeerImpl
+ extends org.apache.fulcrum.security.torque.om.BaseTorqueTurbineUserPeerImpl
+ implements org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1393939296095L;
+
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserPeerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,14 @@
+package org.apache.fulcrum.security.torque.peer;
+
+/**
+ * This is a marker interface for {@link PeerManager#getPeerInstance(String)}.
+ * It allows to swap database operations action classes (called Peers in
Torque model).
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id$
+ *
+ */
+public interface Peer
+{
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,48 @@
+package org.apache.fulcrum.security.torque.peer;
+
+import org.apache.fulcrum.security.spi.AbstractEntityManager;
+import org.apache.fulcrum.security.util.DataBackendException;
+
+
+/**
+ * Use this manager in role-list, if you want to swap default peer classes.
+ * It gets automatically registered in {@literal
TorqueTurbine<Type>ManagerImpl classes. <Types> are: <User>, <Group>,
<Permission>, <Role>}.
+ * You have to register your {@literal <Type>PeerImpl classes} by adding the
{@link TorqueTurbinePeer} interface.
+ *
+ * If generating your ORM-classes from a Torque schema, you may have to delete
or provide your own baseClasses in the schema.
+ *
+ * @see <a
href="http://db.apache.org/torque/torque-4.0/documentation/orm-reference/database-4-0.xsd"
target=_blank>Torque 4.0 Schema</a>
+ * @see org.apache.fulcrum.security.torque.turbine
TorqueTurbine<Type>ManagerImpl referencing manager classes.
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id$
+ */
+public interface PeerManager
+{
+
+ String ROLE = PeerManager.class.getName();
+
+ /**
+ * Expects the class name of a Torque Peer class, which could be
instantiated.
+ * @see AbstractEntityManager#getPeerClassName()
+ *
+ * @param peerClassName the peerClassName
+ *
+ * @return a (cashed) peer class instance
+ */
+ public abstract <P extends Peer> P getPeerInstance(String peerClassName)
+ throws DataBackendException;
+
+ /**
+ * This method is provided to get more helpful exception messages.
+ *
+ * @param peerClassName
+ * @param class1 expected class the peers should implement
+ * @param className target class, i.e. the data object class type of the
Peer object. The data object for which the peer is provided.
+ * @return
+ * @throws DataBackendException
+ */
+ public abstract <P extends Peer> P getPeerInstance( String peerClassName,
Class<? extends Peer> class1, String className ) throws DataBackendException;
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,59 @@
+package org.apache.fulcrum.security.torque.peer;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.fulcrum.security.spi.AbstractManager;
+import org.apache.fulcrum.security.util.DataBackendException;
+
+/**
+ * Use this class, if you want to replace the default Torque Peer classes with
your own.
+ *
+ * To use it, the PeerImpl classes (usually generated) must implement
+ * at least the {@linkplain Peer} marker interface or some extended interface.
+ *
+ * @see PeerManager
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id$
+ *
+ */
+public class PeerManagerDefaultImpl extends AbstractManager
+ implements PeerManager, Disposable
+{
+
+ private Map<String,Peer> peers = new
ConcurrentHashMap<String,Peer>(4,0.75f,4);
+
+ @Override
+ public <P extends Peer> P getPeerInstance(String peerClassName) throws
DataBackendException
+ {
+ return getPeerInstance( peerClassName, Peer.class, null);
+ }
+
+ @SuppressWarnings( "unchecked" )
+ @Override
+ public <P extends Peer> P getPeerInstance( String peerClassName, Class<?
extends Peer> peerInterface , String className) throws DataBackendException
+ {
+ if (peers.containsKey(peerClassName )) {
+ getLogger().debug( " get cached PeerInstance():" + peers.get(
peerClassName ));
+ return (P) peers.get( peerClassName );
+ }
+ try
+ {
+ P peer = (P) Class.forName(peerClassName).newInstance();
+ getLogger().debug( " getPeerInstance():" + peer);
+ peers.put( peerClassName, peer );
+ return peer;
+ }
+ catch (ClassCastException e) {
+ throw new DataBackendException( e.getMessage()+ ".\nThe peer class
" + peerClassName + " should implement "+ peerInterface + "\n of generic type
<"+className +">.",e );
+ }
+ catch (Throwable e)
+ {
+ throw new DataBackendException("Problem creating instance of class
" + peerClassName, e);
+ }
+ }
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,29 @@
+package org.apache.fulcrum.security.torque.peer;
+
+import java.sql.Connection;
+import java.util.List;
+
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+
+/**
+ * This extension to the marker interface {@linkplain Peer} is to allow for
swappable Peer implementations
+ * in Turbine Torque Manager Implementations.
+ *
+ * @param <T> The data object type used by the Torque PeerImpl class.
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id$
+ */
+public interface TorqueTurbinePeer<T>
+ extends Peer
+{
+
+ List<T> doSelect( Criteria criteria,
+ Connection connection) throws TorqueException;
+
+ T retrieveByPK(Integer pk, Connection con)
+ throws TorqueException, NoRowsException,
TooManyRowsException;
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
Fri Mar 7 10:53:14 2014
@@ -24,7 +24,6 @@ import java.util.Set;
import org.apache.fulcrum.security.model.turbine.entity.TurbineGroup;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
Fri Mar 7 10:53:14 2014
@@ -22,8 +22,12 @@ import java.util.List;
import org.apache.fulcrum.security.entity.Group;
import org.apache.fulcrum.security.torque.TorqueAbstractGroupManager;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineGroup;
import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
+import org.apache.fulcrum.security.torque.peer.Peer;
+import org.apache.fulcrum.security.torque.peer.PeerManagable;
+import org.apache.fulcrum.security.torque.peer.PeerManager;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.torque.NoRowsException;
import org.apache.torque.TooManyRowsException;
import org.apache.torque.TorqueException;
@@ -34,8 +38,10 @@ import org.apache.torque.criteria.Criter
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public class TorqueTurbineGroupManagerImpl extends TorqueAbstractGroupManager
+public class TorqueTurbineGroupManagerImpl extends TorqueAbstractGroupManager
implements PeerManagable
{
+
+ PeerManager peerManager;
/**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectAllGroups(java.sql.Connection)
*/
@@ -43,8 +49,21 @@ public class TorqueTurbineGroupManagerIm
protected <T extends Group> List<T> doSelectAllGroups(Connection con)
throws TorqueException
{
Criteria criteria = new Criteria(TorqueTurbineGroupPeer.DATABASE_NAME);
+
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>)getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (List<T>) TorqueTurbineGroupPeer.doSelect(criteria, con);
+ }
+
- return (List<T>)TorqueTurbineGroupPeer.doSelect(criteria, con);
}
/**
@@ -53,7 +72,19 @@ public class TorqueTurbineGroupManagerIm
@SuppressWarnings("unchecked")
protected <T extends Group> T doSelectById(Integer id, Connection con)
throws NoRowsException, TooManyRowsException, TorqueException
{
- return (T) TorqueTurbineGroupPeer.retrieveByPK(id, con);
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>)
getPeerInstance()).retrieveByPK( id, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (T) TorqueTurbineGroupPeer.retrieveByPK(id, con);
+ }
+
}
/**
@@ -66,14 +97,43 @@ public class TorqueTurbineGroupManagerIm
criteria.where(TorqueTurbineGroupPeer.GROUP_NAME, name);
criteria.setIgnoreCase(true);
criteria.setSingleRecord(true);
-
- List<TorqueTurbineGroup> groups =
TorqueTurbineGroupPeer.doSelect(criteria, con);
+ List<T> groups = null;
+
+ if ( (getCustomPeer())) {
+ try
+ {
+
+ groups = ((TorqueTurbinePeer<T>) getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ groups = (List<T>) TorqueTurbineGroupPeer.doSelect(criteria, con);
+ }
if (groups.isEmpty())
{
throw new NoRowsException(name);
}
- return (T) groups.get(0);
+ return groups.get(0);
+ }
+
+ public Peer getPeerInstance() throws DataBackendException {
+ return getPeerManager().getPeerInstance(getPeerClassName(),
TorqueTurbinePeer.class, getClassName());
+ }
+
+ /**
+ * @return Returns the persistenceHelper.
+ */
+ public PeerManager getPeerManager()
+ {
+ if (peerManager == null)
+ {
+ peerManager = (PeerManager) resolve(PeerManager.ROLE);
+ }
+ return peerManager;
}
}
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
Fri Mar 7 10:53:14 2014
@@ -22,8 +22,12 @@ import java.util.List;
import org.apache.fulcrum.security.entity.Permission;
import org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager;
-import org.apache.fulcrum.security.torque.om.TorqueTurbinePermission;
import org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.peer.Peer;
+import org.apache.fulcrum.security.torque.peer.PeerManagable;
+import org.apache.fulcrum.security.torque.peer.PeerManager;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.torque.NoRowsException;
import org.apache.torque.TooManyRowsException;
import org.apache.torque.TorqueException;
@@ -34,8 +38,11 @@ import org.apache.torque.criteria.Criter
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public class TorqueTurbinePermissionManagerImpl extends
TorqueAbstractPermissionManager
+public class TorqueTurbinePermissionManagerImpl extends
TorqueAbstractPermissionManager implements PeerManagable
{
+
+ PeerManager peerManager;
+
/**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectAllPermissions(java.sql.Connection)
*/
@@ -43,8 +50,21 @@ public class TorqueTurbinePermissionMana
protected <T extends Permission> List<T>
doSelectAllPermissions(Connection con) throws TorqueException
{
Criteria criteria = new
Criteria(TorqueTurbinePermissionPeer.DATABASE_NAME);
+
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>) getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (List<T>)TorqueTurbinePermissionPeer.doSelect(criteria,
con);
+ }
- return (List<T>)TorqueTurbinePermissionPeer.doSelect(criteria, con);
+
}
/**
@@ -53,7 +73,18 @@ public class TorqueTurbinePermissionMana
@SuppressWarnings("unchecked")
protected <T extends Permission> T doSelectById(Integer id, Connection
con) throws NoRowsException, TooManyRowsException, TorqueException
{
- return (T) TorqueTurbinePermissionPeer.retrieveByPK(id, con);
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>)
getPeerInstance()).retrieveByPK(id, con);
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (T) TorqueTurbinePermissionPeer.retrieveByPK(id, con);
+ }
}
/**
@@ -66,8 +97,20 @@ public class TorqueTurbinePermissionMana
criteria.where(TorqueTurbinePermissionPeer.PERMISSION_NAME, name);
criteria.setIgnoreCase(true);
criteria.setSingleRecord(true);
-
- List<TorqueTurbinePermission> permissions =
TorqueTurbinePermissionPeer.doSelect(criteria, con);
+
+ List<T> permissions = null;
+ if ( (getCustomPeer())) {
+ try
+ {
+ permissions = ((TorqueTurbinePeer<T>)
getPeerInstance()).doSelect(criteria, con);
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ permissions = (List<T>)
TorqueTurbinePermissionPeer.doSelect(criteria, con);
+ }
if (permissions.isEmpty())
{
@@ -76,4 +119,20 @@ public class TorqueTurbinePermissionMana
return (T) permissions.get(0);
}
+
+ public Peer getPeerInstance() throws DataBackendException {
+ return getPeerManager().getPeerInstance(getPeerClassName(),
TorqueTurbinePeer.class, getClassName());
+ }
+
+ /**
+ * @return Returns the persistenceHelper.
+ */
+ public PeerManager getPeerManager()
+ {
+ if (peerManager == null)
+ {
+ peerManager = (PeerManager) resolve(PeerManager.ROLE);
+ }
+ return peerManager;
+ }
}
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
Fri Mar 7 10:53:14 2014
@@ -22,8 +22,12 @@ import java.util.List;
import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.torque.TorqueAbstractRoleManager;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineRole;
import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
+import org.apache.fulcrum.security.torque.peer.Peer;
+import org.apache.fulcrum.security.torque.peer.PeerManagable;
+import org.apache.fulcrum.security.torque.peer.PeerManager;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.torque.NoRowsException;
import org.apache.torque.TooManyRowsException;
import org.apache.torque.TorqueException;
@@ -34,8 +38,10 @@ import org.apache.torque.criteria.Criter
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public class TorqueTurbineRoleManagerImpl extends TorqueAbstractRoleManager
+public class TorqueTurbineRoleManagerImpl extends TorqueAbstractRoleManager
implements PeerManagable
{
+ PeerManager peerManager;
+
/**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectAllRoles(java.sql.Connection)
*/
@@ -44,7 +50,18 @@ public class TorqueTurbineRoleManagerImp
{
Criteria criteria = new Criteria(TorqueTurbineRolePeer.DATABASE_NAME);
- return (List<T>)TorqueTurbineRolePeer.doSelect(criteria, con);
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>) getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (List<T>)TorqueTurbineRolePeer.doSelect(criteria, con);
+ }
}
/**
@@ -53,7 +70,18 @@ public class TorqueTurbineRoleManagerImp
@SuppressWarnings("unchecked")
protected <T extends Role> T doSelectById(Integer id, Connection con)
throws NoRowsException, TooManyRowsException, TorqueException
{
- return (T) TorqueTurbineRolePeer.retrieveByPK(id, con);
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>)
getPeerInstance()).retrieveByPK( id, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (T) TorqueTurbineRolePeer.retrieveByPK(id, con);
+ }
}
/**
@@ -66,14 +94,42 @@ public class TorqueTurbineRoleManagerImp
criteria.where(TorqueTurbineRolePeer.ROLE_NAME, name);
criteria.setIgnoreCase(true);
criteria.setSingleRecord(true);
-
- List<TorqueTurbineRole> roles =
TorqueTurbineRolePeer.doSelect(criteria, con);
+
+ List<T> roles = null;
+ if ( (getCustomPeer())) {
+ try
+ {
+ roles = ((TorqueTurbinePeer<T>)getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ roles = (List<T>) TorqueTurbineRolePeer.doSelect(criteria, con);
+ }
if (roles.isEmpty())
{
throw new NoRowsException(name);
}
- return (T) roles.get(0);
+ return roles.get(0);
+ }
+
+ public Peer getPeerInstance() throws DataBackendException {
+ return getPeerManager().getPeerInstance(getPeerClassName(),
TorqueTurbinePeer.class, getClassName());
+ }
+
+ /**
+ * @return Returns the persistenceHelper.
+ */
+ public PeerManager getPeerManager()
+ {
+ if (peerManager == null)
+ {
+ peerManager = (PeerManager) resolve(PeerManager.ROLE);
+ }
+ return peerManager;
}
}
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
Fri Mar 7 10:53:14 2014
@@ -21,21 +21,31 @@ import java.sql.Connection;
import java.util.List;
import org.apache.fulcrum.security.entity.User;
+import org.apache.fulcrum.security.model.turbine.TurbineUserManager;
import org.apache.fulcrum.security.torque.TorqueAbstractUserManager;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineUser;
import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
+import org.apache.fulcrum.security.torque.peer.Peer;
+import org.apache.fulcrum.security.torque.peer.PeerManagable;
+import org.apache.fulcrum.security.torque.peer.PeerManager;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
import org.apache.torque.NoRowsException;
import org.apache.torque.TooManyRowsException;
import org.apache.torque.TorqueException;
import org.apache.torque.criteria.Criteria;
/**
* This implementation persists to a database via Torque.
+ *
*
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
- * @version $Id:$
+ * @version $Id$
*/
-public class TorqueTurbineUserManagerImpl extends TorqueAbstractUserManager
+public class TorqueTurbineUserManagerImpl extends TorqueAbstractUserManager
implements TurbineUserManager, PeerManagable
{
+ PeerManager peerManager;
+ private static final String ANON = "anon";
+
/**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractUserManager#doSelectAllUsers(java.sql.Connection)
*/
@@ -43,8 +53,19 @@ public class TorqueTurbineUserManagerImp
protected <T extends User> List<T> doSelectAllUsers(Connection con)
throws TorqueException
{
Criteria criteria = new Criteria(TorqueTurbineUserPeer.DATABASE_NAME);
-
- return (List<T>)TorqueTurbineUserPeer.doSelect(criteria, con);
+
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>) getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (List<T>) TorqueTurbineUserPeer.doSelect(criteria, con);
+ }
}
/**
@@ -53,7 +74,18 @@ public class TorqueTurbineUserManagerImp
@SuppressWarnings("unchecked")
protected <T extends User> T doSelectById(Integer id, Connection con)
throws NoRowsException, TooManyRowsException, TorqueException
{
- return (T) TorqueTurbineUserPeer.retrieveByPK(id, con);
+ if ( (getCustomPeer())) {
+ try
+ {
+ return ((TorqueTurbinePeer<T>)
getPeerInstance()).retrieveByPK( id, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ return (T) TorqueTurbineUserPeer.retrieveByPK(id, con);
+ }
}
/**
@@ -66,14 +98,84 @@ public class TorqueTurbineUserManagerImp
criteria.where(TorqueTurbineUserPeer.LOGIN_NAME, name);
criteria.setIgnoreCase(true);
criteria.setSingleRecord(true);
+
+ List<T> users = null;
+ if ( (getCustomPeer())) {
+ try
+ {
+ users = ((TorqueTurbinePeer<T>)getPeerInstance()).doSelect(
criteria, con );
+ }
+ catch ( DataBackendException e )
+ {
+ throw new TorqueException( e );
+ }
+ } else {
+ users = (List<T>) TorqueTurbineUserPeer.doSelect(criteria, con);
+ }
- List<TorqueTurbineUser> users =
TorqueTurbineUserPeer.doSelect(criteria, con);
if (users.isEmpty())
{
throw new NoRowsException(name);
}
- return (T) users.get(0);
+ return users.get(0);
+ }
+
+ /**
+ * Default implementation.
+ */
+ @Override
+ public <T extends User> T getAnonymousUser()
+ throws UnknownEntityException
+ {
+ try
+ {
+ T anonUser = getUser( ANON );
+ // add more, if needed
+ return anonUser;
+ }
+ catch ( DataBackendException e )
+ {
+ throw new UnknownEntityException( "Failed to load anonymous
user",e);
+ }
+ }
+
+ /**
+ * Default implementation.
+ */
+ @Override
+ public boolean isAnonymousUser( User u )
+ {
+ try
+ {
+ User anon = getAnonymousUser();
+ if (u.equals( anon ))
+ {
+ return true;
+ }
+ }
+ catch ( Exception e )
+ {
+ getLogger().error( "Failed to check user:" + e.getMessage(),e);
+ }
+ return false;
+ }
+
+ public Peer getPeerInstance() throws DataBackendException {
+ return getPeerManager().getPeerInstance(getPeerClassName(),
TorqueTurbinePeer.class, getClassName());
+ }
+
+ /**
+ * @return Returns the persistenceHelper.
+ */
+ @Override
+ public PeerManager getPeerManager()
+ {
+ if (peerManager == null)
+ {
+ peerManager = (PeerManager) resolve(PeerManager.ROLE);
+ }
+ return peerManager;
}
}
Modified:
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueRoleConfig.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueRoleConfig.xml?rev=1575232&r1=1575231&r2=1575232&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueRoleConfig.xml
(original)
+++ turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueRoleConfig.xml
Fri Mar 7 10:53:14 2014
@@ -57,5 +57,11 @@
name="org.apache.fulcrum.security.model.ACLFactory"
shorthand="aclFactory"
default-class="org.apache.fulcrum.security.model.turbine.TurbineACLFactory"/>
+ <!-- if you watn provide your own custom peer classes: -->
+ <role
+ name="org.apache.fulcrum.security.torque.peer.PeerManager"
+ shorthand="persistenceHelper"
+
default-class="org.apache.fulcrum.security.torque.peer.PeerManagerDefaultImpl"/>
+
</role-list>
Added:
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml
(added)
+++
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<my-system>
+ <securityService/>
+ <authenticator/>
+ <modelManager/>
+ <aclFactory/>
+
+ <!--
+ Requires peerClassName classes implement the TorqueTurbinePeer
interface (extension of interface org.apache.fulcrum.security.torque.peer).
+ Check the ClassCastExceptions.
+ -->
+ <userManager>
+
<className>org.apache.fulcrum.security.torque.om.TorqueTurbineUser</className>
+
<peerClassName>org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeerImpl</peerClassName>
+ </userManager>
+ <groupManager>
+
<className>org.apache.fulcrum.security.torque.om.TorqueTurbineGroup</className>
+
<peerClassName>org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeerImpl</peerClassName>
+ </groupManager>
+ <roleManager>
+
<className>org.apache.fulcrum.security.torque.om.TorqueTurbineRole</className>
+
<peerClassName>org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeerImpl</peerClassName>
+ </roleManager>
+ <permissionManager>
+
<className>org.apache.fulcrum.security.torque.om.TorqueTurbinePermission</className>
+
<peerClassName>org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeerImpl</peerClassName>
+ </permissionManager>
+
+ <peerManager/>
+
+ <torqueService>
+ <configfile>/src/test/Torque.properties</configfile>
+ </torqueService>
+</my-system>
Propchange:
turbine/fulcrum/trunk/security/torque/src/test/TurbineTorqueWithPeersComponentConfig.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java?rev=1575232&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java
Fri Mar 7 10:53:14 2014
@@ -0,0 +1,136 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ * 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.
+ */
+
+import org.apache.fulcrum.security.SecurityService;
+import
org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
+import org.apache.fulcrum.security.spi.AbstractEntityManager;
+import org.apache.fulcrum.security.torque.HsqlDB;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
+import org.apache.fulcrum.security.torque.peer.PeerManagable;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+
+/**
+ * @author <a href="mailto:[email protected]">Thomas Vandahl</a>
+ * @author <a href="[email protected]">Jürgen Hoffmann</a>
+ * @version $Id$
+ */
+public class TorquePeerTurbineModelManagerTest
+ extends AbstractTurbineModelManagerTest
+{
+ protected static HsqlDB hsqlDB = null;
+
+ public void setUp() throws Exception
+ {
+
+ try
+ {
+ hsqlDB = new HsqlDB("jdbc:hsqldb:.",
"src/test/fulcrum-turbine-schema.sql");
+ hsqlDB.addSQL("src/test/id-table-schema.sql");
+ hsqlDB.addSQL("src/test/fulcrum-turbine-schema-idtable-init.sql");
+
+ this.setRoleFileName("src/test/TurbineTorqueRoleConfig.xml");
+
+
this.setConfigurationFileName("src/test/TurbineTorqueWithPeersComponentConfig.xml");
+
+ // The successful Test requires that the PeerImpl classes (in
configuration file) implement the interface TorqueTurbinePeer,
+ // cft. ClassCastException messages.
+ // (interfaces could not yet automatically generated into Peers
with Torque, cft JIRA Issue TORQUE-309).
+
+ securityService = (SecurityService) lookup(SecurityService.ROLE);
+ super.setUp();
+ }
+ catch (Exception e)
+ {
+ fail(e.toString());
+ }
+
+ }
+
+ public void testCustomPeerSet() {
+ if (roleManager instanceof AbstractEntityManager) {
+ assertTrue( "As a custom Peer for RoleManager should be tested, a
peerClassName element should be set in the configuration file for
roleManager.", ((AbstractEntityManager)roleManager).getCustomPeer() == true);
+ }
+ if (roleManager instanceof PeerManagable) {
+ assertNotNull(((PeerManagable)roleManager).getPeerManager());
+ }
+ if (userManager instanceof PeerManagable) {
+ assertNotNull(((PeerManagable)userManager).getPeerManager());
+ }
+ if (groupManager instanceof PeerManagable) {
+ assertNotNull(((PeerManagable)groupManager).getPeerManager());
+ }
+ if (permissionManager instanceof PeerManagable) {
+ assertNotNull(((PeerManagable)permissionManager).getPeerManager());
+ }
+ }
+
+ public void tearDown()
+ {
+ // cleanup tables
+ try
+ {
+ Criteria criteria = new Criteria();
+ criteria.where(TorqueTurbineUserGroupRolePeer.USER_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbineUserGroupRolePeer.doDelete(criteria);
+
+ criteria = new Criteria();
+ criteria.where(TorqueTurbineRolePermissionPeer.ROLE_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbineRolePermissionPeer.doDelete(criteria);
+
+ criteria = new Criteria();
+ criteria.where(TorqueTurbineUserPeer.USER_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbineUserPeer.doDelete(criteria);
+
+ criteria = new Criteria();
+ criteria.where(TorqueTurbineGroupPeer.GROUP_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbineGroupPeer.doDelete(criteria);
+
+ criteria = new Criteria();
+ criteria.where(TorqueTurbineRolePeer.ROLE_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbineRolePeer.doDelete(criteria);
+
+ criteria = new Criteria();
+ criteria.where(TorqueTurbinePermissionPeer.PERMISSION_ID, 0,
Criteria.GREATER_THAN);
+ TorqueTurbinePermissionPeer.doDelete(criteria);
+ }
+ catch (TorqueException e)
+ {
+ fail(e.toString());
+ }
+
+ modelManager = null;
+ securityService = null;
+ }
+
+ /**
+ * Constructor for TorqueTurbineModelManagerTest.
+ * @param arg0
+ */
+ public TorquePeerTurbineModelManagerTest(String arg0)
+ {
+ super(arg0);
+ }
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TorquePeerTurbineModelManagerTest.java
------------------------------------------------------------------------------
svn:eol-style = native