You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(39) |
Dec
(10) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(19) |
Feb
(150) |
Mar
(10) |
Apr
|
May
(8) |
Jun
(11) |
Jul
(27) |
Aug
(52) |
Sep
(35) |
Oct
(30) |
Nov
(18) |
Dec
(4) |
2008 |
Jan
(76) |
Feb
(121) |
Mar
(39) |
Apr
(55) |
May
(18) |
Jun
(49) |
Jul
(32) |
Aug
(4) |
Sep
(10) |
Oct
|
Nov
(3) |
Dec
(33) |
2009 |
Jan
(19) |
Feb
(87) |
Mar
(69) |
Apr
(38) |
May
(47) |
Jun
(20) |
Jul
(5) |
Aug
(76) |
Sep
(145) |
Oct
(34) |
Nov
(8) |
Dec
(68) |
2010 |
Jan
(150) |
Feb
(379) |
Mar
(191) |
Apr
(100) |
May
(525) |
Jun
(269) |
Jul
(127) |
Aug
(190) |
Sep
(190) |
Oct
(29) |
Nov
(147) |
Dec
(83) |
2011 |
Jan
(188) |
Feb
(81) |
Mar
(43) |
Apr
(97) |
May
(63) |
Jun
(129) |
Jul
(17) |
Aug
(124) |
Sep
(6) |
Oct
(20) |
Nov
(67) |
Dec
(23) |
2012 |
Jan
(6) |
Feb
(14) |
Mar
(181) |
Apr
(64) |
May
(102) |
Jun
(47) |
Jul
(26) |
Aug
(3) |
Sep
(1) |
Oct
(14) |
Nov
(13) |
Dec
(23) |
2013 |
Jan
(4) |
Feb
(14) |
Mar
(18) |
Apr
(14) |
May
(27) |
Jun
(27) |
Jul
(5) |
Aug
(2) |
Sep
(74) |
Oct
(79) |
Nov
(21) |
Dec
(97) |
2014 |
Jan
(6) |
Feb
(3) |
Mar
(8) |
Apr
|
May
(5) |
Jun
|
Jul
(9) |
Aug
(6) |
Sep
(3) |
Oct
(10) |
Nov
(6) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(25) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fc...@us...> - 2008-03-06 09:10:10
|
Revision: 720 http://openutils.svn.sourceforge.net/openutils/?rev=720&view=rev Author: fcarone Date: 2008-03-06 01:10:11 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-bshd5-2.0.2 Modified Paths: -------------- trunk/openutils-bshd5/pom.xml Modified: trunk/openutils-bshd5/pom.xml =================================================================== --- trunk/openutils-bshd5/pom.xml 2008-03-05 17:17:33 UTC (rev 719) +++ trunk/openutils-bshd5/pom.xml 2008-03-06 09:10:11 UTC (rev 720) @@ -8,7 +8,7 @@ </parent> <artifactId>openutils-bshd5</artifactId> <name>openutils base Spring-Hibernate DAO for java 5.0</name> - <version>2.0.2-SNAPSHOT</version> + <version>2.0.2</version> <description>openutils base Spring-Hibernate DAO for java 5.0</description> <dependencies> <dependency> @@ -105,4 +105,10 @@ <properties> <spring.version>2.5.1</spring.version> </properties> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-bshd5-2.0.2</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-bshd5-2.0.2</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-bshd5-2.0.2</url> + </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mup...@us...> - 2008-03-05 17:17:33
|
Revision: 719 http://openutils.svn.sourceforge.net/openutils/?rev=719&view=rev Author: muppet68 Date: 2008-03-05 09:17:33 -0800 (Wed, 05 Mar 2008) Log Message: ----------- NoLazy enhancement Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Added Paths: ----------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-05 17:08:56 UTC (rev 718) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-05 17:17:33 UTC (rev 719) @@ -18,6 +18,7 @@ import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; import it.openutils.spring.rmibernate.shared.LazyReference; +import it.openutils.spring.rmibernate.shared.NoLazyEnhancement; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; import java.lang.reflect.Field; @@ -249,6 +250,11 @@ return null; } + if (original.getClass() + .isAnnotationPresent(NoLazyEnhancement.class)) { + return original; + } + if (original.getClass().getName().startsWith("java.") && !((original instanceof Collection) || (original instanceof Map))) { Added: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java 2008-03-05 17:17:33 UTC (rev 719) @@ -0,0 +1,5 @@ +package it.openutils.spring.rmibernate.shared; + +public @interface NoLazyEnhancement { + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mup...@us...> - 2008-03-05 17:09:03
|
Revision: 718 http://openutils.svn.sourceforge.net/openutils/?rev=718&view=rev Author: muppet68 Date: 2008-03-05 09:08:56 -0800 (Wed, 05 Mar 2008) Log Message: ----------- Aggiunto metodo per ritornare solo sottoinsieme di propriet?\195?\160 di un oggetto Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2008-03-03 14:36:22 UTC (rev 717) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2008-03-05 17:08:56 UTC (rev 718) @@ -141,7 +141,22 @@ */ List<T> findFiltered(final T filter, final Order[] customOrder, final Map<String, FilterMetadata> metadata, final int maxResults, final int page, List<Criterion> additionalCriteria); + + /** + * Return properties from all objects related to the implementation of this DAO filtered using properties of the provided instance. + * @param filter an instance of the object with the properties you whish to filter on. + * @param customOrder order criterias + * @param metadata filter metadata + * @param maxResults maximum number of results + * @param page result page (first result is maxResults * page) + * @param additionalCriteria additional criteria + * @param properties properties to be returned + * @return list of properties from all objects + */ + List<?> findFilteredProperties(final T filter, final Order[] customOrder, final Map<String, FilterMetadata> metadata, + final int maxResults,final int page, List<Criterion> additionalCriteria, List<String> properties); + /** * Return all objects related to the implementation of this DAO filtered using properties of the provided instance. * @param filter an instance of the object with the properties you whish to filter on. Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2008-03-03 14:36:22 UTC (rev 717) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2008-03-05 17:08:56 UTC (rev 718) @@ -20,6 +20,9 @@ import org.hibernate.criterion.CriteriaSpecification; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; +import org.hibernate.criterion.ProjectionList; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Property; import org.hibernate.type.Type; import org.springframework.aop.framework.AopContext; import org.springframework.orm.hibernate3.HibernateCallback; @@ -331,7 +334,7 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") + @SuppressWarnings("unchecked") public List<T> findFiltered(T filter, Order[] customOrder, Map<String, FilterMetadata> metadata, int maxResults, int page, List<Criterion> additionalCriteria) { @@ -339,10 +342,40 @@ .getDefaultOrder(); return (List<T>) getHibernateTemplate().execute( - new HibernateCallbackForExecution(filter, page, maxResults, metadata, orderProperties, additionalCriteria)); + new HibernateCallbackForExecution( + filter, + page, + maxResults, + metadata, + orderProperties, + additionalCriteria, + null)); } /** + * + * {@inheritDoc} + */ + @SuppressWarnings("unchecked") + public List<?> findFilteredProperties(final T filter, final Order[] customOrder, + final Map<String, FilterMetadata> metadata, final int maxResults, final int page, + List<Criterion> additionalCriteria, List<String> properties) + { + final Order[] orderProperties = customOrder != null && customOrder.length > 0 ? customOrder : this + .getDefaultOrder(); + + return (List< ? >) getHibernateTemplate().execute( + new HibernateCallbackForExecution( + filter, + page, + maxResults, + metadata, + orderProperties, + additionalCriteria, + properties)); + } + + /** * Return the specific Object class that will be used for class-specific implementation of this DAO. * @return the reference Class */ @@ -550,6 +583,11 @@ private final Map<String, FilterMetadata> metadata; /** + * + */ + private final List<String> properties; + + /** * */ private final Order[] orderProperties; @@ -569,7 +607,8 @@ int maxResults, Map<String, FilterMetadata> metadata, Order[] orderProperties, - List<Criterion> additionalCriteria) + List<Criterion> additionalCriteria, + List<String> properties) { this.filter = filter; this.page = page; @@ -577,6 +616,7 @@ this.metadata = metadata; this.orderProperties = orderProperties; this.additionalCriteria = additionalCriteria; + this.properties = properties; } public Object doInHibernate(Session ses) throws HibernateException @@ -604,6 +644,17 @@ crit.add(criterion); } } + if (properties != null) + { + ProjectionList projectionList = Projections.projectionList(); + + for (String property : properties) + { + projectionList.add(Property.forName(property)); + } + + crit.setProjection(projectionList); + } return crit.list(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-03 14:36:25
|
Revision: 717 http://openutils.svn.sourceforge.net/openutils/?rev=717&view=rev Author: fcarone Date: 2008-03-03 06:36:22 -0800 (Mon, 03 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-spring-rmibernate/pom.xml Modified: trunk/openutils-spring-rmibernate/pom.xml =================================================================== --- trunk/openutils-spring-rmibernate/pom.xml 2008-03-03 14:35:57 UTC (rev 716) +++ trunk/openutils-spring-rmibernate/pom.xml 2008-03-03 14:36:22 UTC (rev 717) @@ -8,7 +8,7 @@ </parent> <artifactId>openutils-spring-rmibernate</artifactId> <name>hibernate remote lazy loading</name> - <version>2.0</version> + <version>2.0.1-SNAPSHOT</version> <description>openutils base Spring-Hibernate RMI remote lazy loading support</description> <dependencies> <dependency> @@ -108,10 +108,4 @@ <properties> <spring.version>2.5.1</spring.version> </properties> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-spring-rmibernate-2.0</url> - </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-03 14:36:04
|
Revision: 716 http://openutils.svn.sourceforge.net/openutils/?rev=716&view=rev Author: fcarone Date: 2008-03-03 06:35:57 -0800 (Mon, 03 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-spring-rmibernate-2.0 Added Paths: ----------- tags/openutils-spring-rmibernate-2.0/ tags/openutils-spring-rmibernate-2.0/pom.xml tags/openutils-spring-rmibernate-2.0/src/ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Removed Paths: ------------- tags/openutils-spring-rmibernate-2.0/pom.xml tags/openutils-spring-rmibernate-2.0/src/ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Copied: tags/openutils-spring-rmibernate-2.0 (from rev 615, trunk/openutils-spring-rmibernate) Deleted: tags/openutils-spring-rmibernate-2.0/pom.xml =================================================================== --- trunk/openutils-spring-rmibernate/pom.xml 2008-02-12 16:57:54 UTC (rev 615) +++ tags/openutils-spring-rmibernate-2.0/pom.xml 2008-03-03 14:35:57 UTC (rev 716) @@ -1,112 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils</artifactId> - <version>7</version> - <relativePath>..</relativePath> - </parent> - <artifactId>openutils-spring-rmibernate</artifactId> - <name>hibernate remote lazy loading</name> - <version>2.0-SNAPSHOT</version> - <description>openutils base Spring-Hibernate RMI remote lazy loading support</description> - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <!-- replaces commons-logging --> - <groupId>org.slf4j</groupId> - <artifactId>jcl104-over-slf4j</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.4.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - <exclusion> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - </exclusion> - <exclusion> - <groupId>asm</groupId> - <artifactId>asm-attrs</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>1.7.0</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.3</version> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.1</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <optional>true</optional> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>2.2.3</version> - </dependency> - </dependencies> - <properties> - <spring.version>2.5.1</spring.version> - </properties> -</project> \ No newline at end of file Copied: tags/openutils-spring-rmibernate-2.0/pom.xml (from rev 715, trunk/openutils-spring-rmibernate/pom.xml) =================================================================== --- tags/openutils-spring-rmibernate-2.0/pom.xml (rev 0) +++ tags/openutils-spring-rmibernate-2.0/pom.xml 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,117 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils</artifactId> + <version>7</version> + <relativePath>..</relativePath> + </parent> + <artifactId>openutils-spring-rmibernate</artifactId> + <name>hibernate remote lazy loading</name> + <version>2.0</version> + <description>openutils base Spring-Hibernate RMI remote lazy loading support</description> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <!-- replaces commons-logging --> + <groupId>org.slf4j</groupId> + <artifactId>jcl104-over-slf4j</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.4.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + <exclusion> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + </exclusion> + <exclusion> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils</artifactId> + <version>1.7.0</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <optional>true</optional> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>2.2.3</version> + </dependency> + </dependencies> + <properties> + <spring.version>2.5.1</spring.version> + </properties> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-spring-rmibernate-2.0</url> + </scm> +</project> \ No newline at end of file Copied: tags/openutils-spring-rmibernate-2.0/src (from rev 614, trunk/openutils-spring-rmibernate/src) Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,59 +0,0 @@ -package it.openutils.spring.rmibernate.client; - -import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; - -import org.aopalliance.intercept.MethodInvocation; -import org.springframework.remoting.rmi.RmiProxyFactoryBean; - - -/** - * ProxyFactoryBean for automatic injection of remote lazy loading proxies - * @author mmolaschi - * @version $Id$ - */ -public class HibernateRmiProxyFactoryBean extends RmiProxyFactoryBean -{ - - /** - * - */ - private static final long serialVersionUID = 6545259150454309616L; - - /** - * Store the hibernate lazy service to be used by remote lazy loading - */ - public static ThreadLocal<HibernateLazyService> hibernateLazyServiceTL = new ThreadLocal<HibernateLazyService>(); - - private HibernateLazyService hibernateLazyService; - - /** - * {@inheritDoc} - */ - @Override - public Object invoke(MethodInvocation invocation) throws Throwable - { - // store the lazy service for this thread - if (hibernateLazyService == null) - { - // if hibernateLazyService is null this means that this service IS hibernateLazyService - hibernateLazyServiceTL.set((HibernateLazyService)this.getObject()); - } - else - { - hibernateLazyServiceTL.set(hibernateLazyService); - } - - // proceed with rmi call - return super.invoke(invocation); - } - - /** - * Sets the hibernateLazyService. - * @param hibernateLazyService the hibernateLazyService to set - */ - public void setHibernateLazyService(HibernateLazyService hibernateLazyService) - { - this.hibernateLazyService = hibernateLazyService; - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,72 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client; + +import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; + +import org.aopalliance.intercept.MethodInvocation; +import org.springframework.remoting.rmi.RmiProxyFactoryBean; + + +/** + * ProxyFactoryBean for automatic injection of remote lazy loading proxies + * @author mmolaschi + * @version $Id$ + */ +public class HibernateRmiProxyFactoryBean extends RmiProxyFactoryBean +{ + + /** + * Store the hibernate lazy service to be used by remote lazy loading + */ + public static ThreadLocal<HibernateLazyService> hibernateLazyServiceTL = new ThreadLocal<HibernateLazyService>(); + + private static final long serialVersionUID = 6545259150454309616L; + + private HibernateLazyService hibernateLazyService; + + /** + * {@inheritDoc} + */ + @Override + public Object invoke(MethodInvocation invocation) throws Throwable + { + // store the lazy service for this thread + if (hibernateLazyService == null) + { + // if hibernateLazyService is null this means that this service IS hibernateLazyService + hibernateLazyServiceTL.set((HibernateLazyService) this.getObject()); + } + else + { + hibernateLazyServiceTL.set(hibernateLazyService); + } + + // proceed with rmi call + return super.invoke(invocation); + } + + /** + * Sets the hibernateLazyService. + * @param hibernateLazyService the hibernateLazyService to set + */ + public void setHibernateLazyService(HibernateLazyService hibernateLazyService) + { + this.hibernateLazyService = hibernateLazyService; + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,43 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.spring.rmibernate.client.aspects; - -import java.io.Serializable; -import java.lang.reflect.Method; - -import net.sf.cglib.proxy.MethodInterceptor; -import net.sf.cglib.proxy.MethodProxy; - - -/** - * @author fcarone - * @version $Id: $ - */ -public class ClientSerializationInterceptor implements MethodInterceptor, Serializable -{ - - /** - * - */ - private static final long serialVersionUID = -2694751376173790718L; - - private HibernateLazyLoaderAspect hibernateLazyLoaderAspect; - - /** - * @param hlla - */ - public ClientSerializationInterceptor(HibernateLazyLoaderAspect hibernateLazyLoaderAspect) - { - this.hibernateLazyLoaderAspect = hibernateLazyLoaderAspect; - } - - /** - * {@inheritDoc} - */ - public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable - { - return hibernateLazyLoaderAspect.loadObject(); - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,56 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.aspects; + +import java.io.Serializable; +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + + +/** + * @author fcarone + * @version $Id: $ + */ +public class ClientSerializationInterceptor implements MethodInterceptor, Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -2694751376173790718L; + + private HibernateLazyLoaderAspect hibernateLazyLoaderAspect; + + /** + * @param hlla + */ + public ClientSerializationInterceptor(HibernateLazyLoaderAspect hibernateLazyLoaderAspect) + { + this.hibernateLazyLoaderAspect = hibernateLazyLoaderAspect; + } + + /** + * {@inheritDoc} + */ + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable + { + return hibernateLazyLoaderAspect.loadObject(); + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,86 +0,0 @@ -package it.openutils.spring.rmibernate.client.aspects; - -import it.openutils.spring.rmibernate.client.pagination.Paginator; -import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; - -import java.io.Serializable; - -import net.sf.cglib.proxy.LazyLoader; - - -/** - * Aspect that does remote lazy loading on cglib proxy - * @author mmolaschi - * @version $Id$ - */ -public class HibernateLazyLoaderAspect implements LazyLoader, Serializable -{ - - /** - * UID - */ - private static final long serialVersionUID = -365731708075101363L; - - private static ThreadLocal<Paginator> paginator = new ThreadLocal<Paginator>(); - - private String className; - - private String fieldName; - - private Serializable id; - - private Object localReference; - - private HibernateLazyService hibernateLazyService; - - /** - * Constructor - * @param className parent class name - * @param fieldName field to be lazy loaded - * @param id id of current entity - */ - public HibernateLazyLoaderAspect(String className, String fieldName, Serializable id, HibernateLazyService hibernateLazyService) - { - this.className = className; - this.fieldName = fieldName; - this.id = id; - this.hibernateLazyService = hibernateLazyService; - } - - /** - * Set pagination for next calls in current thread - * @param from starting row number - * @param size max number of rows - */ - public static void setPagination(int from, int size) - { - paginator.set(new Paginator(from, size)); - } - - /** - * Disable pagination for next calls in current thread - */ - public static void resetPagination() - { - paginator.set(null); - } - - /** - * {@inheritDoc} - */ - public Object loadObject() throws Exception - { - // @todo handle localreference with paginator - // Load from remote - if (paginator.get() != null) - { - return hibernateLazyService.invoke(className, fieldName, id, paginator.get().getFrom(), paginator.get().getSize()); - } - if (localReference == null) - { - localReference = hibernateLazyService.invoke(className, fieldName, id); - } - return localReference; - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,102 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.aspects; + +import it.openutils.spring.rmibernate.client.pagination.Paginator; +import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; + +import java.io.Serializable; + +import net.sf.cglib.proxy.LazyLoader; + + +/** + * Aspect that does remote lazy loading on cglib proxy + * @author mmolaschi + * @version $Id$ + */ +public class HibernateLazyLoaderAspect implements LazyLoader, Serializable +{ + + /** + * UID + */ + private static final long serialVersionUID = -365731708075101363L; + + private static ThreadLocal<Paginator> paginator = new ThreadLocal<Paginator>(); + + private String className; + + private String fieldName; + + private Serializable id; + + private Object localReference; + + private HibernateLazyService hibernateLazyService; + + /** + * Constructor + * @param className parent class name + * @param fieldName field to be lazy loaded + * @param id id of current entity + */ + public HibernateLazyLoaderAspect(String className, String fieldName, Serializable id, HibernateLazyService hibernateLazyService) + { + this.className = className; + this.fieldName = fieldName; + this.id = id; + this.hibernateLazyService = hibernateLazyService; + } + + /** + * Set pagination for next calls in current thread + * @param from starting row number + * @param size max number of rows + */ + public static void setPagination(int from, int size) + { + paginator.set(new Paginator(from, size)); + } + + /** + * Disable pagination for next calls in current thread + */ + public static void resetPagination() + { + paginator.set(null); + } + + /** + * {@inheritDoc} + */ + public Object loadObject() throws Exception + { + // @todo handle localreference with paginator + // Load from remote + if (paginator.get() != null) + { + return hibernateLazyService.invoke(className, fieldName, id, paginator.get().getFrom(), paginator.get().getSize()); + } + if (localReference == null) + { + localReference = hibernateLazyService.invoke(className, fieldName, id); + } + return localReference; + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,68 +0,0 @@ -package it.openutils.spring.rmibernate.client.pagination; - -/** - * @author mmolaschi - * @version $Id$ - */ -public class Paginator -{ - - private int from; - - private int size; - - /** - * - */ - public Paginator() - { - - } - - /** - * @param from starting row number - * @param size max rows - */ - public Paginator(int from, int size) - { - this.from = from; - this.size = size; - } - - /** - * Get starting row number - * @return starting row number - */ - public int getFrom() - { - return from; - } - - /** - * Set starting row number - * @param from starting row number - */ - public void setFrom(int from) - { - this.from = from; - } - - /** - * Get max number of rows - * @return max number of rows - */ - public int getSize() - { - return size; - } - - /** - * Set max number of rows - * @param size max number of rows - */ - public void setSize(int size) - { - this.size = size; - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,84 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.pagination; + +/** + * @author mmolaschi + * @version $Id$ + */ +public class Paginator +{ + + private int from; + + private int size; + + /** + * + */ + public Paginator() + { + + } + + /** + * @param from starting row number + * @param size max rows + */ + public Paginator(int from, int size) + { + this.from = from; + this.size = size; + } + + /** + * Get starting row number + * @return starting row number + */ + public int getFrom() + { + return from; + } + + /** + * Set starting row number + * @param from starting row number + */ + public void setFrom(int from) + { + this.from = from; + } + + /** + * Get max number of rows + * @return max number of rows + */ + public int getSize() + { + return size; + } + + /** + * Set max number of rows + * @param size max number of rows + */ + public void setSize(int size) + { + this.size = size; + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,27 +0,0 @@ -package it.openutils.spring.rmibernate.server.aspects; - -import java.lang.reflect.Method; - -import net.sf.cglib.proxy.MethodInterceptor; -import net.sf.cglib.proxy.MethodProxy; - - -/** - * @author mmolaschi - * @version $Id$ - */ -public class EmptyMethodInterceptor implements MethodInterceptor -{ - - public static final MethodInterceptor INSTANCE = new EmptyMethodInterceptor(); - - /** - * {@inheritDoc} - */ - public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable - { - // TODO Auto-generated method stub - return proxy.invokeSuper(obj, args); - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,42 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; + +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + + +/** + * @author mmolaschi + * @version $Id$ + */ +public class EmptyMethodInterceptor implements MethodInterceptor +{ + + public static final MethodInterceptor INSTANCE = new EmptyMethodInterceptor(); + + /** + * {@inheritDoc} + */ + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable + { + return proxy.invokeSuper(obj, args); + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,61 +0,0 @@ -package it.openutils.spring.rmibernate.server.aspects; - -import org.aopalliance.intercept.MethodInterceptor; -import org.aopalliance.intercept.MethodInvocation; -import org.hibernate.SessionFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * Main server interceptor on rmi calls - * @author mmolaschi - * @version $Id$ - */ -public class HibernateLazyRmiInterceptor implements MethodInterceptor -{ - - /** - * log - */ - protected static final Logger logger = LoggerFactory.getLogger(HibernateLazyRmiInterceptor.class); - - private SessionFactory sessionFactory; - - /** - * Contructor - * @param sessionFactory hibernate session factory - */ - public HibernateLazyRmiInterceptor(SessionFactory sessionFactory) - { - this.sessionFactory = sessionFactory; - } - - /** - * {@inheritDoc} - */ - public Object invoke(MethodInvocation invocation) throws Throwable - { - logger.debug("Catched invocation: {}", invocation); - try - { - Object retVal = invocation.proceed(); - - SerializationInterceptor.clean(); - // Proxy class for serialization work - Object result = SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); - logger.debug("Returning enhanced object {}", result); - return result; - } - catch (Throwable ex) - { - if (logger.isInfoEnabled()) - { - logger.info("Processing of " + " remote call resulted in exception: ", ex); - } - - throw ex; - } - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,75 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; + +import org.aopalliance.intercept.MethodInterceptor; +import org.aopalliance.intercept.MethodInvocation; +import org.hibernate.SessionFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * Main server interceptor on rmi calls + * @author mmolaschi + * @version $Id$ + */ +public class HibernateLazyRmiInterceptor implements MethodInterceptor +{ + + /** + * log + */ + protected static final Logger logger = LoggerFactory.getLogger(HibernateLazyRmiInterceptor.class); + + private SessionFactory sessionFactory; + + /** + * Contructor + * @param sessionFactory hibernate session factory + */ + public HibernateLazyRmiInterceptor(SessionFactory sessionFactory) + { + this.sessionFactory = sessionFactory; + } + + /** + * {@inheritDoc} + */ + public Object invoke(MethodInvocation invocation) throws Throwable + { + logger.debug("Catched invocation: {}", invocation); + try + { + Object retVal = invocation.proceed(); + + SerializationInterceptor.clean(); + // Proxy class for serialization work + return SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); + } + catch (Throwable ex) + { + if (logger.isInfoEnabled()) + { + logger.info("Processing of " + " remote call resulted in exception: ", ex); + } + + throw ex; + } + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,39 +0,0 @@ -package it.openutils.spring.rmibernate.server.aspects; - -import it.openutils.spring.rmibernate.shared.LazyReference; - -import java.lang.reflect.Method; - -import net.sf.cglib.proxy.MethodInterceptor; -import net.sf.cglib.proxy.MethodProxy; - - -/** - * Aspect on lazy fields to intercept writeReplace - * @author mmolaschi - * @version $Id$ - */ -public class LazyReferenceAspect implements MethodInterceptor -{ - - private LazyReference lazyReference; - - public LazyReference getLazyReference() - { - return lazyReference; - } - - public void setLazyReference(LazyReference lazyReference) - { - this.lazyReference = lazyReference; - } - - /** - * {@inheritDoc} - */ - public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable - { - return lazyReference; - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java (from rev 714, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,55 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; + +import it.openutils.spring.rmibernate.shared.LazyReference; + +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + + +/** + * Aspect on lazy fields to intercept writeReplace + * @author mmolaschi + * @version $Id$ + */ +public class LazyReferenceAspect implements MethodInterceptor +{ + + private LazyReference lazyReference; + + public LazyReference getLazyReference() + { + return lazyReference; + } + + public void setLazyReference(LazyReference lazyReference) + { + this.lazyReference = lazyReference; + } + + /** + * {@inheritDoc} + */ + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable + { + return lazyReference; + } + +} Deleted: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-02-11 20:51:03 UTC (rev 614) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -1,413 +0,0 @@ -package it.openutils.spring.rmibernate.server.aspects; - -import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; -import it.openutils.spring.rmibernate.shared.LazyReference; -import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import net.sf.cglib.proxy.Callback; -import net.sf.cglib.proxy.CallbackFilter; -import net.sf.cglib.proxy.Enhancer; -import net.sf.cglib.proxy.Factory; -import net.sf.cglib.proxy.MethodInterceptor; -import net.sf.cglib.proxy.MethodProxy; -import net.sf.cglib.proxy.NoOp; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.ListUtils; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.collections.SetUtils; -import org.apache.commons.collections.Transformer; -import org.hibernate.EntityMode; -import org.hibernate.SessionFactory; -import org.hibernate.collection.PersistentCollection; -import org.hibernate.collection.PersistentSet; -import org.hibernate.proxy.HibernateProxy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.ReflectionUtils; -import org.apache.commons.lang.builder.HashCodeBuilder; - - -/** - * Proxy object with {@link EntitySerializer} and Intercept writeReplace calls - * @author mmolaschi - * @version $Id$ - */ -public class SerializationInterceptor implements MethodInterceptor -{ - - private static ThreadLocal<List<Object>> processed = new ThreadLocal<List<Object>>(); - - private static ThreadLocal<HibernateLazyService> hibernateLazyService = new ThreadLocal<HibernateLazyService>(); - - private static Map<Class, Object> proxies = Collections.synchronizedMap(new HashMap<Class, Object>()); - - /** - * log - */ - private static Logger log = LoggerFactory.getLogger(SerializationInterceptor.class); - - /** - * non proxied object - */ - private Object original; - - /** - * hibernate sessionfactory - */ - private SessionFactory sessionFactory; - - /** - * Constructor - * @param o object to be proxied - * @param sessionFactory hibernate sessionfactory - */ - private SerializationInterceptor(Object o, SessionFactory sessionFactory) - { - this.original = o; - this.sessionFactory = sessionFactory; - } - - /** - * Cleans the processed beans cache - */ - public static void clean() - { - processed.set(null); - } - - /** - * Get proxy object intercepting writeReplace calls - * @param o object to be proxied - * @param sessionFactory hibernate sessionfactory - * @return proxied object - */ - public static Object getEnhancedObject(Object o, SessionFactory sessionFactory) - { - return getEnhancedObject(o, sessionFactory, null); - } - - /** - * Get proxy object intercepting writeReplace calls - * @param o object to be proxied - * @param sessionFactory hibernate sessionfactory - * @param lazyRef reference to a lazy field - * @return proxied object - */ - public static Object getEnhancedObject(Object o, SessionFactory sessionFactory, LazyReference lazyRef) - { - if (o == null) - { - return null; - } - - if (!(o instanceof HibernateProxy) - && !(o instanceof PersistentSet) - && processed.get() != null - && processed.get().contains(o)) - { - return o; - } - - if (o.getClass().getName().startsWith("java.") && !((o instanceof Collection) || (o instanceof Map))) - { - return o; - } - - // check if there is an empty constructor - try - { - o.getClass().getConstructor(new Class[]{}); - } - catch (NoSuchMethodException ex) - { - return o; - } - - // check if object can be subclassed - if (Modifier.isFinal(o.getClass().getModifiers())) - { - return o; - } - - try - { - // get class - Class clazz = o.getClass(); - - // if it is an hibernateproxy get superclass - if (o instanceof HibernateProxy) - { - clazz = o.getClass().getSuperclass(); - if (clazz == null) - { - clazz = o.getClass().getInterfaces()[0]; - } - } - - Callback callback = null; - - // if this is a lazy field user lazyreferenceaspect - if (lazyRef != null) - { - LazyReferenceAspect lra = new LazyReferenceAspect(); - lra.setLazyReference(lazyRef); - callback = lra; - } - else - { - // user default interceptor - callback = new SerializationInterceptor(o, sessionFactory); - } - - synchronized (proxies) - { - if (proxies.containsKey(clazz)) - { - Factory proxy = (Factory) proxies.get(clazz); - return proxy.newInstance(new Callback[]{callback, NoOp.INSTANCE }); - } - } - // create proxy to listen on writeReplace method calls - Object proxy = Enhancer.create(clazz, new Class[]{EntitySerializer.class }, new CallbackFilter() - { - - public int accept(Method method) - { - if (method.getName().equals("writeReplace")) - { - return 0; - } - if (method.getName().equals("hashCode")) - { - return 0; - } - else - { - return 1; - } - } - - }, new Callback[]{callback, NoOp.INSTANCE }); - - // store proxy - proxies.put(clazz, ((Factory) proxy).newInstance(new Callback[]{ - EmptyMethodInterceptor.INSTANCE, - NoOp.INSTANCE })); - return proxy; - } - catch (Throwable t) - { - log.warn(t.getMessage(), t); - return o; - } - } - - /** - * {@inheritDoc} - */ - @SuppressWarnings("unchecked") - public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable - { - if (method.getName().equals("hashCode")) - { - return hashCode(); - } - try - { - if (original == null) - { - return null; - } - - if (original.getClass().getName().startsWith("java.") - && !(original instanceof Collection) - || (original instanceof Map)) - { - return original; - } - - if (processed.get() == null) - { - processed.set(new ArrayList<Object>()); - } - - // add to processed objects - processed.get().add(original); - - if (original.getClass().isPrimitive()) - { - log.debug("Non enhancing primitive type: {}", original.getClass().getName()); - return original; - } - else if (original.getClass().isArray()) - { - // replace array entries with proxied ones - Object[] array = (Object[]) original; - for (int i = 0; i < array.length; i++) - { - array[i] = SerializationInterceptor.getEnhancedObject(array[i], sessionFactory); - } - return array; - } - else if (original instanceof Set) - { - // replace set entries with proxied ones - Set set = (Set) original; - Set transformed = SetUtils.transformedSet(new HashSet(), transformer(sessionFactory)); - transformed.addAll(set); - Set result = new HashSet(); - result.addAll(transformed); - return result; - } - else if (original instanceof List) - { - List list = (List) original; - List transformed = ListUtils.transformedList(new ArrayList(), transformer(sessionFactory)); - transformed.addAll(list); - List result = new ArrayList(); - result.addAll(transformed); - return result; - } - else if (original instanceof Collection) - { - // replace collection entries with proxied ones - Collection collection = (Collection) original; - CollectionUtils.transform(collection, transformer(sessionFactory)); - return collection; - } - else if (original instanceof Map) - { - // replace map entries with proxied ones - Map map = (Map) original; - Map transformed = MapUtils.transformedMap( - new HashMap(), - transformer(sessionFactory), - transformer(sessionFactory)); - transformed.putAll(map); - Map result = new HashMap(); - result.putAll(transformed); - return result; - } - else - { - // cycle on bean fields - ReflectionUtils.doWithFields(original.getClass(), new ReflectionUtils.FieldCallback() - { - - /** - * {@inheritDoc} - */ - public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException - { - // set field accessible - field.setAccessible(true); - - // get original value - Object oldValue = field.get(original); - - // get new value - Object newValue = null; - - if (oldValue instanceof HibernateProxy || oldValue instanceof PersistentCollection) - { - // if this field is a hibernate proxy or a persistent collection store reference - LazyReference lazyRef = new LazyReference(); - lazyRef.setFieldClassName(field.getType().getName()); - lazyRef.setClassName(original.getClass().getName()); - lazyRef.setFieldName(field.getName()); - // load id - lazyRef.setId(sessionFactory.getClassMetadata(original.getClass()).getIdentifier( - original, - EntityMode.POJO)); - - // get proxy for lazy - newValue = SerializationInterceptor.getEnhancedObject(oldValue, sessionFactory, lazyRef); - } - else - { - // get default proxy - newValue = SerializationInterceptor.getEnhancedObject(oldValue, sessionFactory); - } - - // if there is a variation store it - if (newValue != oldValue) - { - field.set(original, newValue); - } - } - - }); - } - - return original; - - } - catch (Throwable t) - { - log.error(t.getMessage(), t); - return original; - } - } - - /** - * Get transformer for collection, map or set injection of proxied objects - * @param factory hibernate session factory - * @return transformer - */ - private Transformer transformer(SessionFactory factory) - { - return new Transformer() - { - - public Object transform(Object input) - { - return SerializationInterceptor.getEnhancedObject(input, sessionFactory); - } - - }; - } - - /** - * Sets the hibernateLazyService. - * @param hibernateLazyService the hibernateLazyService to set - */ - public static void setHibernateLazyService(HibernateLazyService hibernateLazyService) - { - SerializationInterceptor.hibernateLazyService.set(hibernateLazyService); - } - - /** - * Returns the hibernateLazyService. - * @return the hibernateLazyService - */ - public static HibernateLazyService getHibernateLazyService() - { - return hibernateLazyService.get(); - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() - { - return new HashCodeBuilder(-469032761, 855711273) - .appendSuper(super.hashCode()) - .append(this.original) - .toHashCode(); - } - -} Copied: tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java (from rev 713, trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java) =================================================================== --- tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java (rev 0) +++ tags/openutils-spring-rmibernate-2.0/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-03 14:35:57 UTC (rev 716) @@ -0,0 +1,435 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; + +import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; +import it.openutils.spring.rmibernate.shared.LazyReference; +import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import net.sf.cglib.proxy.Callback; +import net.sf.cglib.proxy.CallbackFilter; +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.Factory; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; +import net.sf.cglib.proxy.NoOp; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.ListUtils; +import org... [truncated message content] |
From: <fc...@us...> - 2008-03-03 14:35:20
|
Revision: 715 http://openutils.svn.sourceforge.net/openutils/?rev=715&view=rev Author: fcarone Date: 2008-03-03 06:35:07 -0800 (Mon, 03 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-spring-rmibernate-2.0 Modified Paths: -------------- trunk/openutils-spring-rmibernate/pom.xml Modified: trunk/openutils-spring-rmibernate/pom.xml =================================================================== --- trunk/openutils-spring-rmibernate/pom.xml 2008-03-03 12:13:15 UTC (rev 714) +++ trunk/openutils-spring-rmibernate/pom.xml 2008-03-03 14:35:07 UTC (rev 715) @@ -1,112 +1,117 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils</artifactId> - <version>7</version> - <relativePath>..</relativePath> - </parent> - <artifactId>openutils-spring-rmibernate</artifactId> - <name>hibernate remote lazy loading</name> - <version>2.0-SNAPSHOT</version> - <description>openutils base Spring-Hibernate RMI remote lazy loading support</description> - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <!-- replaces commons-logging --> - <groupId>org.slf4j</groupId> - <artifactId>jcl104-over-slf4j</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.4.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - <exclusion> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - </exclusion> - <exclusion> - <groupId>asm</groupId> - <artifactId>asm-attrs</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>1.7.0</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.3</version> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.1</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <optional>true</optional> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>2.2.3</version> - </dependency> - </dependencies> - <properties> - <spring.version>2.5.1</spring.version> - </properties> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils</artifactId> + <version>7</version> + <relativePath>..</relativePath> + </parent> + <artifactId>openutils-spring-rmibernate</artifactId> + <name>hibernate remote lazy loading</name> + <version>2.0</version> + <description>openutils base Spring-Hibernate RMI remote lazy loading support</description> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <!-- replaces commons-logging --> + <groupId>org.slf4j</groupId> + <artifactId>jcl104-over-slf4j</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.4.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + <exclusion> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + </exclusion> + <exclusion> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils</artifactId> + <version>1.7.0</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <optional>true</optional> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>2.2.3</version> + </dependency> + </dependencies> + <properties> + <spring.version>2.5.1</spring.version> + </properties> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-spring-rmibernate-2.0</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-spring-rmibernate-2.0</url> + </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-03 12:13:17
|
Revision: 714 http://openutils.svn.sourceforge.net/openutils/?rev=714&view=rev Author: fcarone Date: 2008-03-03 04:13:15 -0800 (Mon, 03 Mar 2008) Log Message: ----------- copyright notice updated on all files. Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; @@ -15,15 +31,12 @@ { /** - * - */ - private static final long serialVersionUID = 6545259150454309616L; - - /** * Store the hibernate lazy service to be used by remote lazy loading */ public static ThreadLocal<HibernateLazyService> hibernateLazyServiceTL = new ThreadLocal<HibernateLazyService>(); + private static final long serialVersionUID = 6545259150454309616L; + private HibernateLazyService hibernateLazyService; /** @@ -36,7 +49,7 @@ if (hibernateLazyService == null) { // if hibernateLazyService is null this means that this service IS hibernateLazyService - hibernateLazyServiceTL.set((HibernateLazyService)this.getObject()); + hibernateLazyServiceTL.set((HibernateLazyService) this.getObject()); } else { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,6 +1,19 @@ /* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.aspects; import java.io.Serializable; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.aspects; import it.openutils.spring.rmibernate.client.pagination.Paginator; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.client.pagination; /** Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; import java.lang.reflect.Method; @@ -20,7 +36,6 @@ */ public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { - // TODO Auto-generated method stub return proxy.invokeSuper(obj, args); } Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; import org.aopalliance.intercept.MethodInterceptor; @@ -43,9 +59,7 @@ SerializationInterceptor.clean(); // Proxy class for serialization work - Object result = SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); - logger.debug("Returning enhanced object {}", result); - return result; + return SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); } catch (Throwable ex) { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; import it.openutils.spring.rmibernate.shared.LazyReference; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects.util; import java.io.ObjectStreamException; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.exporter; import it.openutils.spring.rmibernate.server.aspects.HibernateLazyRmiInterceptor; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.managers; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; @@ -165,9 +181,6 @@ return null; } - // get class - Class fClass = lazy.getClass(); - // if is a single object proxy if (lazy instanceof HibernateProxy) { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,6 +1,19 @@ /* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.shared; import java.io.Serializable; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.shared; import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; @@ -85,7 +101,6 @@ return Enhancer.create(superclass, interfaces, new HibernateLazyLoaderCallbackFilter(), new Callback[]{ hlla, new ClientSerializationInterceptor(hlla) }); - } public String getClassName() Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.shared.managers; import java.io.Serializable; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 713 http://openutils.svn.sourceforge.net/openutils/?rev=713&view=rev Author: fcarone Date: 2008-03-03 04:11:11 -0800 (Mon, 03 Mar 2008) Log Message: ----------- explanation added Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-03 12:10:04 UTC (rev 712) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) @@ -312,6 +312,9 @@ new HashMap(), transformer(sessionFactory), transformer(sessionFactory)); + + // this is needed since AbstractHashedMap used by commons collections + // needs at least 1 element before transforming if (map.size() > 0) { transformed.putAll(map); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 712 http://openutils.svn.sourceforge.net/openutils/?rev=712&view=rev Author: fcarone Date: 2008-03-03 04:10:04 -0800 (Mon, 03 Mar 2008) Log Message: ----------- check if the map has at least 1 element before transforming (required by commons collections) Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-02 23:28:17 UTC (rev 711) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-03 12:10:04 UTC (rev 712) @@ -312,7 +312,10 @@ new HashMap(), transformer(sessionFactory), transformer(sessionFactory)); - transformed.putAll(map); + if (map.size() > 0) + { + transformed.putAll(map); + } Map result = new HashMap(); result.putAll(transformed); return result; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-02 23:28:12
|
Revision: 711 http://openutils.svn.sourceforge.net/openutils/?rev=711&view=rev Author: fgiust Date: 2008-03-02 15:28:17 -0800 (Sun, 02 Mar 2008) Log Message: ----------- fix excludedTables in DbUnitExecution Modified Paths: -------------- trunk/openutils-testing/pom.xml trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java trunk/openutils-testing/src/site/changes/changes.xml Added Paths: ----------- trunk/openutils-testing/src/test/ trunk/openutils-testing/src/test/java/ trunk/openutils-testing/src/test/java/it/ trunk/openutils-testing/src/test/java/it/openutils/ trunk/openutils-testing/src/test/java/it/openutils/testing/ trunk/openutils-testing/src/test/java/it/openutils/testing/RegExpTableFilterTest.java Property Changed: ---------------- trunk/openutils-testing/ Property changes on: trunk/openutils-testing ___________________________________________________________________ Name: svn:ignore - .project .classpath .checkstyle target .settings + .project .classpath .checkstyle target .settings test-output temp-testng-customsuite.xml Modified: trunk/openutils-testing/pom.xml =================================================================== --- trunk/openutils-testing/pom.xml 2008-02-29 16:53:04 UTC (rev 710) +++ trunk/openutils-testing/pom.xml 2008-03-02 23:28:17 UTC (rev 711) @@ -1,4 +1,5 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>net.sourceforge.openutils</groupId> @@ -57,6 +58,19 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <classifier>jdk15</classifier> + <version>5.7</version> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <properties> <spring.version>2.5.1</spring.version> Modified: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java 2008-02-29 16:53:04 UTC (rev 710) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java 2008-03-02 23:28:17 UTC (rev 711) @@ -22,7 +22,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.dbunit.database.DatabaseConfig; import org.dbunit.dataset.datatype.IDataTypeFactory; import org.dbunit.operation.DatabaseOperation; @@ -62,9 +61,9 @@ /** * A regexp that can match table names. Any table matching this regular expression will not be considered by DbUnit. - * By default tables starting with $ are ignored (oracle recycle bin). + * By default tables starting with BIN$ are ignored (oracle recycle bin). */ - String excludedTables() default "(^\\$(.*))"; // oracle recycle bin + String excludedTables() default "^BIN\\$(.*)"; // oracle recycle bin /** * If true, <strong>all</strong> the tables in the database will be truncated before loading any dataset. Modified: trunk/openutils-testing/src/site/changes/changes.xml =================================================================== --- trunk/openutils-testing/src/site/changes/changes.xml 2008-02-29 16:53:04 UTC (rev 710) +++ trunk/openutils-testing/src/site/changes/changes.xml 2008-03-02 23:28:17 UTC (rev 711) @@ -8,30 +8,30 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> + <release version="2.0.3" date="in svn" description="2.0.3"> + <action type="fix" dev="fgiust"> excludedTables in DbUnitExecution now defaults to "^BIN\\$(.*)", properly excluding + tables in oracle recycle bin.</action> + </release> <release version="2.0.3" date="2008-02-19" description="2.0.3"> - <action type="update" dev="fgiust"> - it.openutils.testing.DateAssert is now thread safe. Failure messages have been improved. - </action> - <action type="add" dev="fcarone"> - New option for DbUnitExection to specify the DatabaseConfig.PROPERTY_DATATYPE_FACTORY added. - </action> + <action type="update" dev="fgiust"> it.openutils.testing.DateAssert is now thread safe. Failure messages have been + improved.</action> + <action type="add" dev="fcarone"> New option for DbUnitExection to specify the + DatabaseConfig.PROPERTY_DATATYPE_FACTORY added.</action> </release> <release version="2.0.2" date="2008-01-31" description="2.0.2"> - <action type="add" dev="fgiust"> - New dbunit operation classes for mssql and mysql (extension of standard dbunit operation, but refactored so that - they can be used in annotations). See the javadocs in the it.openutils.testing.dbunit package - </action> - <action type="update" dev="fgiust"> - truncate operation now defaults to DbUnitOperation.DELETE_ALL instead of DbUnitOperation.TRUNCATE. - </action> - <action type="fix" dev="fgiust">DbUnitUtils.exportDataset() doesn't close anymore the provided connection</action> + <action type="add" dev="fgiust"> New dbunit operation classes for mssql and mysql (extension of standard dbunit + operation, but refactored so that they can be used in annotations). See the javadocs in the + it.openutils.testing.dbunit package</action> + <action type="update" dev="fgiust"> truncate operation now defaults to DbUnitOperation.DELETE_ALL instead of + DbUnitOperation.TRUNCATE.</action> + <action type="fix" dev="fgiust">DbUnitUtils.exportDataset() doesn't close anymore the + provided connection</action> <action type="add" dev="fgiust">new DbUnitUtils.exportTablesToDir() utility method</action> </release> <release version="2.0.1" date="2008-01-30" description="2.0.1"> - <action type="fix" dev="fgiust"> - (junit version only). it.openutils.testing.junit.AbstractDbUnitJunitSpringContextTests was totally broken due to - the setup method being protected. Fixed + added tests - </action> + <action type="fix" dev="fgiust"> (junit version only). + it.openutils.testing.junit.AbstractDbUnitJunitSpringContextTests was totally broken due to the setup method + being protected. Fixed + added tests</action> </release> <release version="2.0" date="2008-01-20" description="2.0 release"> <action type="update" dev="fgiust">Totally reworked dbunit test framework.</action> Added: trunk/openutils-testing/src/test/java/it/openutils/testing/RegExpTableFilterTest.java =================================================================== --- trunk/openutils-testing/src/test/java/it/openutils/testing/RegExpTableFilterTest.java (rev 0) +++ trunk/openutils-testing/src/test/java/it/openutils/testing/RegExpTableFilterTest.java 2008-03-02 23:28:17 UTC (rev 711) @@ -0,0 +1,26 @@ +package it.openutils.testing; + +import org.testng.Assert; +import org.testng.annotations.Test; + + +/** + * @author fgiust + * @version $Id: $ + */ +@DbUnitExecution +public class RegExpTableFilterTest +{ + + @Test + public void testDefaultRegExp() throws Exception + { + + DbUnitExecution dbUnitExecution = getClass().getAnnotation(DbUnitExecution.class); + RegExpTableFilter retf = new RegExpTableFilter(dbUnitExecution.excludedTables()); + + Assert.assertTrue(retf.accept("SOMETHING")); + Assert.assertFalse(retf.accept("BIN$SOMETHING")); + + } +} Property changes on: trunk/openutils-testing/src/test/java/it/openutils/testing/RegExpTableFilterTest.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 710 http://openutils.svn.sourceforge.net/openutils/?rev=710&view=rev Author: fcarone Date: 2008-02-29 08:53:04 -0800 (Fri, 29 Feb 2008) Log Message: ----------- PersistentCollection is more general than PersistentSet Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-02-29 15:33:01 UTC (rev 709) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-02-29 16:53:04 UTC (rev 710) @@ -45,15 +45,14 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.SetUtils; import org.apache.commons.collections.Transformer; +import org.apache.commons.lang.builder.HashCodeBuilder; import org.hibernate.EntityMode; import org.hibernate.SessionFactory; import org.hibernate.collection.PersistentCollection; -import org.hibernate.collection.PersistentSet; import org.hibernate.proxy.HibernateProxy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.ReflectionUtils; -import org.apache.commons.lang.builder.HashCodeBuilder; /** @@ -132,7 +131,7 @@ } if (!(o instanceof HibernateProxy) - && !(o instanceof PersistentSet) + && !(o instanceof PersistentCollection) && processed.get() != null && processed.get().contains(o)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 709 http://openutils.svn.sourceforge.net/openutils/?rev=709&view=rev Author: fcarone Date: 2008-02-29 07:33:01 -0800 (Fri, 29 Feb 2008) Log Message: ----------- fix for check on the original object during interception copyright added Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-02-27 13:19:33 UTC (rev 708) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-02-29 15:33:01 UTC (rev 709) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.spring.rmibernate.server.aspects; import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; @@ -52,6 +68,7 @@ private static ThreadLocal<HibernateLazyService> hibernateLazyService = new ThreadLocal<HibernateLazyService>(); + @SuppressWarnings("unchecked") private static Map<Class, Object> proxies = Collections.synchronizedMap(new HashMap<Class, Object>()); /** @@ -106,6 +123,7 @@ * @param lazyRef reference to a lazy field * @return proxied object */ + @SuppressWarnings("unchecked") public static Object getEnhancedObject(Object o, SessionFactory sessionFactory, LazyReference lazyRef) { if (o == null) @@ -233,8 +251,7 @@ } if (original.getClass().getName().startsWith("java.") - && !(original instanceof Collection) - || (original instanceof Map)) + && !((original instanceof Collection) || (original instanceof Map))) { return original; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-27 13:19:29
|
Revision: 708 http://openutils.svn.sourceforge.net/openutils/?rev=708&view=rev Author: fcarone Date: 2008-02-27 05:19:33 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Fix spacing Modified Paths: -------------- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt Modified: trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-27 13:17:28 UTC (rev 707) +++ trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-27 13:19:33 UTC (rev 708) @@ -44,11 +44,13 @@ is 1 and stringValue is 'ABC': now we need two security rules: Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD + Role1 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD In this way the AND is done. What if we want to create OR rules: Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD + Role2 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD and assign users both roles 1 and 2. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-27 13:17:24
|
Revision: 707 http://openutils.svn.sourceforge.net/openutils/?rev=707&view=rev Author: fcarone Date: 2008-02-27 05:17:28 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Fix indent Modified Paths: -------------- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt Modified: trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-26 10:57:04 UTC (rev 706) +++ trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-27 13:17:28 UTC (rev 707) @@ -46,9 +46,9 @@ Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD Role1 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD -In this way the AND is done. What if we want to create OR rules: + In this way the AND is done. What if we want to create OR rules: Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD Role2 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD -and assign users both roles 1 and 2. \ No newline at end of file + and assign users both roles 1 and 2. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-26 10:57:12
|
Revision: 706 http://openutils.svn.sourceforge.net/openutils/?rev=706&view=rev Author: fcarone Date: 2008-02-26 02:57:04 -0800 (Tue, 26 Feb 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-26 10:56:55 UTC (rev 705) +++ trunk/openutils-hibernate-security/pom.xml 2008-02-26 10:57:04 UTC (rev 706) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.6</version> + <version>0.0.7-SNAPSHOT</version> <description>Hibernate Security classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -220,10 +220,4 @@ <scope>test</scope> </dependency> </dependencies> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.6</url> - </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-26 10:56:51
|
Revision: 705 http://openutils.svn.sourceforge.net/openutils/?rev=705&view=rev Author: fcarone Date: 2008-02-26 02:56:55 -0800 (Tue, 26 Feb 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-hibernate-security-0.0.6 Added Paths: ----------- tags/openutils-hibernate-security-0.0.6/ tags/openutils-hibernate-security-0.0.6/pom.xml tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.6/src/site/apt/ tags/openutils-hibernate-security-0.0.6/src/site/apt/index.apt tags/openutils-hibernate-security-0.0.6/src/site/apt/rbac-acegi.apt tags/openutils-hibernate-security-0.0.6/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.6/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.6/src/test/resources/spring-security.xml Removed Paths: ------------- tags/openutils-hibernate-security-0.0.6/pom.xml tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.6/src/site/apt/index.apt tags/openutils-hibernate-security-0.0.6/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.6/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.6/src/test/resources/spring-security.xml Copied: tags/openutils-hibernate-security-0.0.6 (from rev 673, trunk/openutils-hibernate-security) Deleted: tags/openutils-hibernate-security-0.0.6/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/pom.xml 2008-02-26 10:56:55 UTC (rev 705) @@ -1,223 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <artifactId>openutils</artifactId> - <groupId>net.sourceforge.openutils</groupId> - <version>7</version> - <relativePath>..</relativePath> - </parent> - <modelVersion>4.0.0</modelVersion> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-hibernate-security</artifactId> - <name>openutils hibernate security</name> - <version>0.0.4-SNAPSHOT</version> - <description>Hibernate Security classes</description> - <properties> - <spring.version>2.5.1</spring.version> - <aspectj.version>1.5.3</aspectj.version> - </properties> - <dependencies> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <!-- already imported cglib-nodep by spring --> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>aspectj</groupId> - <artifactId>aspectjrt</artifactId> - <version>${aspectj.version}</version> - </dependency> - <dependency> - <groupId>aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - <version>${aspectj.version}</version> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm-attrs</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm-commons</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-usermanagement</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-usermanagement-dataobjects</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-bshd5</artifactId> - <version>2.0.1</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-testing-junit</artifactId> - <version>2.0.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-testing</artifactId> - <version>2.0.3</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.5.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>3.2.1.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - <version>1.2.1</version> - <scope>test</scope> - <exclusions> - <exclusion> - <artifactId>xerces</artifactId> - <groupId>xerces</groupId> - </exclusion> - <exclusion> - <artifactId>xml-apis</artifactId> - <groupId>xml-apis</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.2</version> - </dependency> - <dependency> - <groupId>org.acegisecurity</groupId> - <artifactId>acegi-security</artifactId> - <version>1.0.6</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <artifactId>spring-remoting</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - <exclusion> - <artifactId>spring-jdbc</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - <exclusion> - <artifactId>spring-support</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <version>1.8.0.7</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.4</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>dbunit</groupId> - <artifactId>dbunit</artifactId> - <version>2.1</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> \ No newline at end of file Copied: tags/openutils-hibernate-security-0.0.6/pom.xml (from rev 704, trunk/openutils-hibernate-security/pom.xml) =================================================================== --- tags/openutils-hibernate-security-0.0.6/pom.xml (rev 0) +++ tags/openutils-hibernate-security-0.0.6/pom.xml 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,229 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <parent> + <artifactId>openutils</artifactId> + <groupId>net.sourceforge.openutils</groupId> + <version>7</version> + <relativePath>..</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-hibernate-security</artifactId> + <name>openutils hibernate security</name> + <version>0.0.6</version> + <description>Hibernate Security classes</description> + <properties> + <spring.version>2.5.1</spring.version> + <aspectj.version>1.5.3</aspectj.version> + </properties> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <!-- already imported cglib-nodep by spring --> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>aspectj</groupId> + <artifactId>aspectjrt</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-commons</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-usermanagement</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-usermanagement-dataobjects</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-bshd5</artifactId> + <version>2.0.1</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-testing-junit</artifactId> + <version>2.0.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-testing</artifactId> + <version>2.0.3</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.5.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + <version>3.2.1.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <version>1.2.1</version> + <scope>test</scope> + <exclusions> + <exclusion> + <artifactId>xerces</artifactId> + <groupId>xerces</groupId> + </exclusion> + <exclusion> + <artifactId>xml-apis</artifactId> + <groupId>xml-apis</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>org.acegisecurity</groupId> + <artifactId>acegi-security</artifactId> + <version>1.0.6</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <artifactId>spring-remoting</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-jdbc</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-support</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.4</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>dbunit</groupId> + <artifactId>dbunit</artifactId> + <version>2.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.6</url> + </scm> +</project> \ No newline at end of file Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,154 +0,0 @@ -/* - * Copyright Openmind http://www.openmindonline.it - * - * Licensed 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 it.openutils.hibernate.security.aop; - -import it.openutils.hibernate.security.dataobject.SecurityRule; -import it.openutils.hibernate.security.services.SecurityRuleManager; - -import java.util.ArrayList; -import java.util.List; - -import org.acegisecurity.Authentication; -import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.context.SecurityContextHolder; -import org.apache.commons.lang.StringUtils; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.hibernate.Filter; -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * @author fcarone - * @version $Id$ - */ -@Aspect -public class AOPSecurity -{ - - /** - * Logger. - */ - private Logger log = LoggerFactory.getLogger(AOPSecurity.class); - - private SecurityRuleManager securityRuleManager; - - private List<String> securedDAOs; - - private boolean enabled; - - /** - * @param pjp The proceeding joinpoint - * @param filter The entity we are going to filter - * @param additionalCriteria The additional criteria list, cannot be null - * @return The execution invocation result - * @throws Throwable Any exception occurring in the invoked method - */ - @Around("execution(* it.openutils.dao.hibernate.*.*(Object, .., java.util.List<org.hibernate.criterion.Criterion>)) && " - + // - " args(filter, .., additionalCriteria)") - public Object applySecurityRules(ProceedingJoinPoint pjp, Object filter, List<Criterion> additionalCriteria) - throws Throwable - { - if (!enabled) - { - log.debug("DAO security disabled, proceeding."); - return pjp.proceed(); - } - - if (!securedDAOs.contains(pjp.getTarget().getClass().getCanonicalName())) - { - log.debug("The intercepted DAO {} is not secured, proceeding.", pjp.getTarget().toString()); - return pjp.proceed(); - } - - log.debug("applying security rules for {} with criteria {}", filter.toString(), additionalCriteria); - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (authentication == null) - { - throw new SecurityException("Authentication is not valid"); - } - GrantedAuthority[] authorities = authentication.getAuthorities(); - List<String> roles = new ArrayList<String>(); - for (int i = 0; i < authorities.length; i++) - { - roles.add(authorities[i].getAuthority()); - } - - String entity = filter.getClass().getCanonicalName(); - List<SecurityRule> rules = securityRuleManager.getRulesForRoles(entity, roles); - - if (rules.isEmpty()) - { - if (log.isWarnEnabled()) - { - String grantedRoles = StringUtils.EMPTY; - for (int i = 0; i < authorities.length; i++) - { - grantedRoles += authorities[i].getAuthority() + " "; - } - log.warn( - "No rules found. Access is denied on " + entity + ", for user {} with roles {}", - SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(), - grantedRoles); - } - throw new SecurityException("Access denied"); - } - - Filter hibernateFilter = securityRuleManager.getEntityFilterFromRules(entity, rules); - - Criterion sqlCriterion = Restrictions.sqlRestriction(hibernateFilter - .getFilterDefinition() - .getDefaultFilterCondition()); - - log.debug("Adding sql restriction: {}", sqlCriterion.toString()); - additionalCriteria.add(sqlCriterion); - - Object result = pjp.proceed(); - return result; - } - - /** - * Sets the securityRuleManager. - * @param securityRuleManager the securityRuleManager to set - */ - public void setSecurityRuleManager(SecurityRuleManager securityRuleManager) - { - this.securityRuleManager = securityRuleManager; - } - - /** - * Sets the securedDAOs. - * @param securedDAOs the securedDAOs to set - */ - public void setSecuredDAOs(List<String> securedDAOs) - { - this.securedDAOs = securedDAOs; - } - - /** - * Sets the enabled. - * @param enabled the enabled to set - */ - public void setEnabled(boolean enabled) - { - this.enabled = enabled; - } -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java (from rev 687, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,175 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.aop; + +import it.openutils.hibernate.security.dataobject.SecurityRule; +import it.openutils.hibernate.security.services.SecurityRuleManager; + +import java.util.ArrayList; +import java.util.List; + +import org.acegisecurity.Authentication; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.context.SecurityContextHolder; +import org.apache.commons.lang.StringUtils; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.hibernate.Filter; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author fcarone + * @version $Id$ + */ +@Aspect +public class AOPSecurity +{ + + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(AOPSecurity.class); + + private boolean denyIfNoRulesFound = true; + + private SecurityRuleManager securityRuleManager; + + private List<String> securedDAOs; + + private boolean enabled; + + /** + * @param pjp The proceeding joinpoint + * @param filter The entity we are going to filter + * @param additionalCriteria The additional criteria list, cannot be null + * @return The execution invocation result + * @throws Throwable Any exception occurring in the invoked method + */ + @Around("execution(* it.openutils.dao.hibernate.*.*(Object, .., java.util.List<org.hibernate.criterion.Criterion>)) && " + + // + " args(filter, .., additionalCriteria)") + public Object applySecurityRules(ProceedingJoinPoint pjp, Object filter, List<Criterion> additionalCriteria) + throws Throwable + { + if (!enabled) + { + log.debug("DAO security disabled, proceeding."); + return pjp.proceed(); + } + + if (!securedDAOs.contains(pjp.getTarget().getClass().getCanonicalName())) + { + log.debug("The intercepted DAO {} is not secured, proceeding.", pjp.getTarget().toString()); + return pjp.proceed(); + } + + log.debug("applying security rules for {} with criteria {}", filter.toString(), additionalCriteria); + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (authentication == null) + { + throw new SecurityException("Authentication is not valid"); + } + GrantedAuthority[] authorities = authentication.getAuthorities(); + List<String> roles = new ArrayList<String>(); + for (int i = 0; i < authorities.length; i++) + { + roles.add(authorities[i].getAuthority()); + } + + String entity = filter.getClass().getCanonicalName(); + List<SecurityRule> rules = securityRuleManager.getRulesForRoles(filter, roles); + + if (rules.isEmpty()) + { + if (log.isWarnEnabled()) + { + String grantedRoles = StringUtils.EMPTY; + for (int i = 0; i < authorities.length; i++) + { + grantedRoles += authorities[i].getAuthority() + " "; + } + log.warn( + "No rules found for " + entity + ", user {} with roles {}", + SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(), + grantedRoles); + } + if (denyIfNoRulesFound) + { + log.debug("denyIfNoRulesFound is true, denying access."); + throw new SecurityException("Access denied"); + } + else + { + log.debug("denyIfNoRulesFound is false, allowing access."); + return pjp.proceed(); + } + } + + Filter hibernateFilter = securityRuleManager.getEntityFilterFromRules(entity, rules); + + Criterion sqlCriterion = Restrictions.sqlRestriction(hibernateFilter + .getFilterDefinition() + .getDefaultFilterCondition()); + + log.debug("Adding sql restriction: {}", sqlCriterion.toString()); + additionalCriteria.add(sqlCriterion); + + Object result = pjp.proceed(); + return result; + } + + /** + * Sets the securityRuleManager. + * @param securityRuleManager the securityRuleManager to set + */ + public void setSecurityRuleManager(SecurityRuleManager securityRuleManager) + { + this.securityRuleManager = securityRuleManager; + } + + /** + * Sets the securedDAOs. + * @param securedDAOs the securedDAOs to set + */ + public void setSecuredDAOs(List<String> securedDAOs) + { + this.securedDAOs = securedDAOs; + } + + /** + * Sets the enabled. + * @param enabled the enabled to set + */ + public void setEnabled(boolean enabled) + { + this.enabled = enabled; + } + + + /** + * Sets the denyIfNoRulesFound. + * @param denyIfNoRulesFound the denyIfNoRulesFound to set + */ + public void setDenyIfNoRulesFound(boolean denyIfNoRulesFound) + { + this.denyIfNoRulesFound = denyIfNoRulesFound; + } +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,17 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dao; - -import it.openutils.dao.hibernate.HibernateDAO; -import it.openutils.hibernate.security.dataobject.SecurityRule; - - -/** - * @author fcarone - * @version $Id$ - */ -public interface SecurityRuleDAO extends HibernateDAO<SecurityRule, Long> -{ - -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,29 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dao; + +import it.openutils.dao.hibernate.HibernateDAO; +import it.openutils.hibernate.security.dataobject.SecurityRule; + + +/** + * @author fcarone + * @version $Id$ + */ +public interface SecurityRuleDAO extends HibernateDAO<SecurityRule, Long> +{ + +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,27 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dao.impl; - -import it.openutils.dao.hibernate.HibernateDAOImpl; -import it.openutils.hibernate.security.dao.SecurityRuleDAO; -import it.openutils.hibernate.security.dataobject.SecurityRule; - - -/** - * @author fcarone - * @version $Id$ - */ -public class SecurityRuleDAOImpl extends HibernateDAOImpl<SecurityRule, Long> implements SecurityRuleDAO -{ - - /** - * {@inheritDoc} - */ - @Override - protected Class<SecurityRule> getReferenceClass() - { - return SecurityRule.class; - } - -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,39 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dao.impl; + +import it.openutils.dao.hibernate.HibernateDAOImpl; +import it.openutils.hibernate.security.dao.SecurityRuleDAO; +import it.openutils.hibernate.security.dataobject.SecurityRule; + + +/** + * @author fcarone + * @version $Id$ + */ +public class SecurityRuleDAOImpl extends HibernateDAOImpl<SecurityRule, Long> implements SecurityRuleDAO +{ + + /** + * {@inheritDoc} + */ + @Override + protected Class<SecurityRule> getReferenceClass() + { + return SecurityRule.class; + } + +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,37 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -/** - * @author fcarone - * @version $Id$ - */ -public enum ModifierEnum { - - /** - * Equals - */ - EQUALS("equals"), - - /** - * Not - */ - NOT("not"); - - private String value; - - /** - * @param value The literal value of the modifier - */ - ModifierEnum(String value) - { - this.value = value; - } - - public String getValue() - { - return value; - } - -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,49 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + +/** + * @author fcarone + * @version $Id$ + */ +public enum ModifierEnum { + + /** + * Equals + */ + EQUALS("equals"), + + /** + * Not + */ + NOT("not"); + + private String value; + + /** + * @param value The literal value of the modifier + */ + ModifierEnum(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } + +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,37 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -/** - * @author fcarone - * @version $Id$ - */ -public enum PermissionEnum { - - /** - * Load, Create, Modify, Delete permissions - */ - LOAD("LOAD"), CREATE("CREATE"), MODIFY("MODIFY"), DELETE("DELETE"); - - private String value; - - /** - * @param value The literal value for the needed enumeration object - */ - PermissionEnum(String value) - { - this.value = value; - } - - - /** - * Returns the value. - * @return the value - */ - public String getValue() - { - return value; - } - -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,49 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + +/** + * @author fcarone + * @version $Id$ + */ +public enum PermissionEnum { + + /** + * Load, Create, Modify, Delete permissions + */ + LOAD("LOAD"), CREATE("CREATE"), MODIFY("MODIFY"), DELETE("DELETE"); + + private String value; + + /** + * @param value The literal value for the needed enumeration object + */ + PermissionEnum(String value) + { + this.value = value; + } + + + /** + * Returns the value. + * @return the value + */ + public String getValue() + { + return value; + } + +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,212 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -import java.io.Serializable; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.Table; - -import org.hibernate.annotations.CollectionOfElements; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; -import org.apache.commons.lang.builder.ToStringBuilder; - - -/** - * @author fcarone - * @version $Id$ A security rule - */ -@Entity -@Table(name = "SECURITY_RULE") -public class SecurityRule implements Serializable -{ - - /** - * Generated serial version UID - */ - private static final long serialVersionUID = -4820683448073404349L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "ID_SECURITY_RULE") - private Long id; - - @Column(name = "ROLE", length = 64, nullable = false) - private String role; - - @Column(name = "ENTITY", length = 512, nullable = false) - private String entity; - - @Column(name = "PROPERTY", length = 512, nullable = false) - private String property; - - @Column(name = "VALUE", nullable = false) - private String value; - - @Enumerated(EnumType.STRING) - @Column(name = "MODIFIER", nullable = false) - private ModifierEnum modifier; - - @CollectionOfElements(fetch = FetchType.EAGER) - @JoinTable(name = "SECRULE_PERMISSION", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) - @Column(name = "PERMISSION", nullable = false) - @Enumerated(EnumType.STRING) - @Fetch(FetchMode.SUBSELECT) - private List<PermissionEnum> permissions; - - /** - * Returns the role. - * @return the role - */ - public String getRole() - { - return role; - } - - /** - * Sets the role. - * @param role the role to set - */ - public void setRole(String role) - { - this.role = role; - } - - /** - * Returns the entity. - * @return the entity - */ - public String getEntity() - { - return entity; - } - - /** - * Sets the entity. - * @param entity the entity to set - */ - public void setEntity(String entity) - { - this.entity = entity; - } - - /** - * Returns the property. - * @return the property - */ - public String getProperty() - { - return property; - } - - /** - * Sets the property. - * @param property the property to set - */ - public void setProperty(String property) - { - this.property = property; - } - - /** - * Returns the value. - * @return the value - */ - public String getValue() - { - return value; - } - - /** - * Sets the value. - * @param value the value to set - */ - public void setValue(String value) - { - this.value = value; - } - - /** - * Returns the modifier. - * @return the modifier - */ - public ModifierEnum getModifier() - { - return modifier; - } - - /** - * Sets the modifier. - * @param modifier the modifier to set - */ - public void setModifier(ModifierEnum modifier) - { - this.modifier = modifier; - } - - /** - * Returns the permissions. - * @return the permissions - */ - public List<PermissionEnum> getPermissions() - { - return permissions; - } - - /** - * Sets the permissions. - * @param permissions the permissions to set - */ - public void setPermissions(List<PermissionEnum> permissions) - { - this.permissions = permissions; - } - - /** - * Returns the id. - * @return the id - */ - public Long getId() - { - return id; - } - - /** - * Sets the id. - * @param id the id to set - */ - public void setId(Long id) - { - this.id = id; - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() - { - return new ToStringBuilder(this) - .append("id", this.id) - .append("role", this.role) - .append("entity", this.entity) - .append("property", this.property) - .append("value", this.value) - .append("modifier", this.modifier) - .append("permissions", this.permissions) - .toString(); - } - -} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java (from rev 696, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,301 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.hibernate.security.dataobject; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.Table; + +import org.hibernate.annotations.CollectionOfElements; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.Filter; +import org.hibernate.annotations.FilterDef; +import org.hibernate.annotations.FilterDefs; +import org.hibernate.annotations.Filters; +import org.apache.commons.lang.builder.ToStringBuilder; + + +/** + * @author fcarone + * @version $Id$ A security rule + */ +@Entity +@Table(name = "SECURITY_RULE") +@FilterDefs({@FilterDef(name = "notDeletedRules", defaultCondition = "DELETED != '1'") }) +@Filters({@Filter(name = "notDeletedRules") }) +public class SecurityRule implements Serializable +{ + + /** + * Generated serial version UID + */ + private static final long serialVersionUID = -4820683448073404349L; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "ID_SECURITY_RULE") + private Long id; + + @Column(name = "ROLE", length = 64, nullable = false) + private String role; + + @Column(name = "ENTITY", length = 512, nullable = false) + private String entity; + + @Column(name = "PROPERTY", length = 512, nullable = false) + private String property; + + @Column(name = "VALUE", nullable = false) + private String value; + + @Enumerated(EnumType.STRING) + @Column(name = "MODIFIER", nullable = false) + private ModifierEnum modifier; + + @CollectionOfElements(fetch = FetchType.EAGER) + @JoinTable(name = "SECRULE_PERMISSION", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) + @Column(name = "PERMISSION", nullable = false) + @Enumerated(EnumType.STRING) + @Fetch(FetchMode.SUBSELECT) + private List<PermissionEnum> permissions; + + @Enumerated(EnumType.STRING) + @Column(name = "STATUS", nullable = false) + private StatusEnum status; + + @Column(name = "DELETED", length = 1, nullable = false) + private Boolean deleted; + + @CollectionOfElements(fetch = FetchType.EAGER) + @org.hibernate.annotations.MapKey(columns = @Column(name = "NAME")) + @JoinTable(name = "SECRULE_ENTITY", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) + @Column(name = "VALUE", length = 256) + @Fetch(FetchMode.SUBSELECT) + private Map<String, String> entities; + + /** + * Returns the role. + * @return the role + */ + public String getRole() + { + return role; + } + + /** + * Sets the role. + * @param role the role to set + */ + public void setRole(String role) + { + this.role = role; + } + + /** + * Returns the entity. + * @return the entity + */ + public String getEntity() + { + return entity; + } + + /** + * Sets the entity. + * @param entity the entity to set + */ + public void setEntity(String entity) + { + this.entity = entity; + } + + /** + * Returns the property. + * @return the property + */ + public String getProperty() + { + return property; + } + + /** + * Sets the property. + * @param property the property to set + */ + public void setProperty(String property) + { + this.property = property; + } + + /** + * Returns the value. + * @return the value + */ + public String getValue() + { + return value; + } + + /** + * Sets the value. + * @param value the value to set + */ + public void setValue(String value) + { + this.value = value; + } + + /** + * Returns the modifier. + * @return the modifier + */ + public ModifierEnum getModifier() + { + return modifier; + } + + /** + * Sets the modifier. + * @param modifier the modifier to set + */ + public void setModifier(ModifierEnum modifier) + { + this.modifier = modifier; + } + + /** + * Returns the permissions. + * @return the permissions + */ + public List<PermissionEnum> getPermissions() + { + return permissions; + } + + /** + * Sets the permissions. + * @param permissions the permissions to set + */ + public void setPermissions(List<PermissionEnum> permissions) + { + this.permissions = permissions; + } + + /** + * Returns the id. + * @return the id + */ + public Long getId() + { + return id; + } + + /** + * Sets the id. + * @param id the id to set + */ + public void setId(Long id) + { + this.id = id; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() + { + return new ToStringBuilder(this) + .append("id", this.id) + .append("role", this.role) + .append("entity", this.entity) + .append("property", this.property) + .append("value", this.value) + .append("modifier", this.modifier) + .append("permissions", this.permissions) + .toString(); + } + + /** + * Returns the status. + * @return the status + */ + public StatusEnum getStatus() + { + return status; + } + + /** + * Sets the status. + * @param status the status to set + */ + public void setStatus(StatusEnum status) + { + this.status = status; + } + + /** + * @return True if the rule is enabled + */ + public boolean isEnabled() + { + if (status == null) + { + return false; + } + return status.equals(StatusEnum.ENABLED); + } + + /** + * Returns the entities. + * @return the entities + */ + public Map<String, String> getEntities() + { + return entities; + } + + /** + * Sets the entities. + * @param entities the entities to set + */ + public void setEntities(Map<String, String> entities) + { + this.entities = entities; + } + + + /** + * Returns the deleted. + * @return the deleted + */ + public Boolean getDeleted() + { + return deleted; + } + + + /** + * Sets the deleted. + * @param deleted the deleted to set + */ + public void setDeleted(Boolean deleted) + { + this.deleted = deleted; + } + +} Copied: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java (from rev 688, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java 2008-02-26 10:56:55 UTC (rev 705) @@ -0,0 +1,46 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + + +/** + * @author fcarone + * @version $Id: $ + */ +public enum StatusEnum { + + /** + * Enabled + */ + ENABLED("enabled"), + + /** + * Disabled + */ + DISABLED("disabled"); + + private String value; + + private StatusEnum(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } +} Deleted: tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.6/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java 2008-02-26 10:56:55 UTC (rev 705) @@ -1,258 +0,0 @@ -/* - * Copyright Openmind http://www.openmindonline.it - * - * Licensed 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 it.openutils.hibernate.security.filter; - -import it.openutils.hibernate.security.dataobject.PermissionEnum; -import it.openutils.hibernate.security.dataobject.SecurityRule; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; -import org.hibernate.Filter; -import org.hibernate.HibernateException; -import org.hibernate.engine.Fil... [truncated message content] |
From: <fc...@us...> - 2008-02-26 10:56:21
|
Revision: 704 http://openutils.svn.sourceforge.net/openutils/?rev=704&view=rev Author: fcarone Date: 2008-02-26 02:56:24 -0800 (Tue, 26 Feb 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-hibernate-security-0.0.6 Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-26 10:51:37 UTC (rev 703) +++ trunk/openutils-hibernate-security/pom.xml 2008-02-26 10:56:24 UTC (rev 704) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.6-SNAPSHOT</version> + <version>0.0.6</version> <description>Hibernate Security classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -220,4 +220,10 @@ <scope>test</scope> </dependency> </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.6</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.6</url> + </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-26 10:51:38
|
Revision: 703 http://openutils.svn.sourceforge.net/openutils/?rev=703&view=rev Author: fcarone Date: 2008-02-26 02:51:37 -0800 (Tue, 26 Feb 2008) Log Message: ----------- More use-cases in documentation Modified Paths: -------------- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt Modified: trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-26 10:10:35 UTC (rev 702) +++ trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-26 10:51:37 UTC (rev 703) @@ -21,7 +21,7 @@ access/modify/create/delete which object (so who can do what on something). To enforce our example policy we add 2 SecurityRules, using the following notation: - RoleN - Bean - property - value - Modifier (EQUALS, NOT) - Permission (LOAD, CREATE, DELETE, MODIFY) + Role - Bean - Property - Value - Modifier (EQUALS, NOT) - Permission (LOAD, CREATE, DELETE, MODIFY) So: @@ -37,4 +37,18 @@ Role2 - DummyDataObject - intValue - 2 - EQUALS - LOAD, MODIFY - In this case, users with Role2 won't be able to either create or delete DummyDataObjects when intValue is 2. \ No newline at end of file + In this case, users with Role2 won't be able to either create or delete DummyDataObjects when intValue is 2, but can +load and modify them. + + Let's have some more complex rules scenarios: AND and OR. Users in Role1 can only load DummyDataObjects when intValue +is 1 and stringValue is 'ABC': now we need two security rules: + + Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD + Role1 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD + +In this way the AND is done. What if we want to create OR rules: + + Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD + Role2 - DummyDataObject - stringValue - 'ABC' - EQUALS - LOAD + +and assign users both roles 1 and 2. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-26 10:10:45
|
Revision: 702 http://openutils.svn.sourceforge.net/openutils/?rev=702&view=rev Author: fcarone Date: 2008-02-26 02:10:35 -0800 (Tue, 26 Feb 2008) Log Message: ----------- More logging and enable/disable added to all logic pieces. Modified Paths: -------------- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java 2008-02-25 17:45:22 UTC (rev 701) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java 2008-02-26 10:10:35 UTC (rev 702) @@ -49,11 +49,18 @@ private SecurityRuleUtils ruleUtils = new SecurityRuleUtils(); + private boolean enabled = true; + /** * {@inheritDoc} */ public int vote(Authentication authentication, Object object, ConfigAttributeDefinition config) { + if (!enabled) + { + log.debug("SecurityRuleAccessDecisionVoter disabled, abstaining."); + return ACCESS_ABSTAIN; + } List<String> roles = ruleUtils.getRolesFromAuthentication(authentication); if (object instanceof ReflectiveMethodInvocation) @@ -69,12 +76,14 @@ } if (ruleUtils.checkPermissions(rules, config) && ruleUtils.checkRules(rules, argument)) { + log.debug("Granting access."); return ACCESS_GRANTED; } + log.debug("Denying access."); return ACCESS_DENIED; } } - + log.debug("No rules found, abstaining."); return ACCESS_ABSTAIN; } @@ -86,4 +95,14 @@ { this.securityRuleManager = securityRuleManager; } + + + /** + * Sets the enabled. + * @param enabled the enabled to set + */ + public void setEnabled(boolean enabled) + { + this.enabled = enabled; + } } Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java 2008-02-25 17:45:22 UTC (rev 701) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java 2008-02-26 10:10:35 UTC (rev 702) @@ -26,6 +26,8 @@ import org.acegisecurity.ConfigAttributeDefinition; import org.acegisecurity.afterinvocation.AfterInvocationProvider; import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -35,9 +37,17 @@ public class SecurityRuleAfterInvocationHandler extends SecurityRuleBaseHandler implements AfterInvocationProvider { + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(SecurityRuleAfterInvocationHandler.class); + private SecurityRuleManager securityRuleManager; + private boolean denyIfNoRulesFound = true; + private boolean enabled = true; + /** * {@inheritDoc} */ @@ -45,12 +55,17 @@ public Object decide(Authentication authentication, Object object, ConfigAttributeDefinition config, Object returnedObject) throws AccessDeniedException { + if (!enabled) + { + log.debug("SecurityRuleAfterInvocationHandler disabled, returning."); + return returnedObject; + } if (returnedObject == null) { return null; } SecurityRulePredicate predicate = new SecurityRulePredicate(authentication, config, securityRuleManager); - predicate.setDenyIfNoRulesFound(denyIfNoRulesFound ); + predicate.setDenyIfNoRulesFound(denyIfNoRulesFound); if (returnedObject instanceof Collection) { @@ -78,7 +93,6 @@ this.securityRuleManager = securityRuleManager; } - /** * Sets the denyIfNoRulesFound. * @param denyIfNoRulesFound the denyIfNoRulesFound to set @@ -88,4 +102,13 @@ this.denyIfNoRulesFound = denyIfNoRulesFound; } + /** + * Sets the enabled. + * @param enabled the enabled to set + */ + public void setEnabled(boolean enabled) + { + this.enabled = enabled; + } + } Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java 2008-02-25 17:45:22 UTC (rev 701) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java 2008-02-26 10:10:35 UTC (rev 702) @@ -26,6 +26,8 @@ import org.acegisecurity.ConfigAttributeDefinition; import org.apache.commons.collections.Predicate; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -35,6 +37,11 @@ public class SecurityRulePredicate implements Predicate { + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(SecurityRulePredicate.class); + private Authentication authentication; private SecurityRuleManager securityRuleManager; @@ -69,19 +76,18 @@ List<String> roles = ruleUtils.getRolesFromAuthentication(authentication); List<SecurityRule> rules = findAllRules(object, roles); - // @todo: this should be configurable - // denyAll by default if (rules == null || rules.isEmpty()) { - if (denyIfNoRulesFound ) + if (denyIfNoRulesFound) { + log.debug("Returning false since no rules found and denyIfNoRulesFound is true."); return false; } - else - { - return true; - } + log.debug("Returning true since no rules found and denyIfNoRulesFound is false."); + return true; + } + log.debug("Evaluating rules."); return (ruleUtils.checkPermissions(rules, configAttribute) && ruleUtils.checkRules(rules, object)); } @@ -102,7 +108,6 @@ return result; } - /** * Sets the denyIfNoRulesFound. * @param denyIfNoRulesFound the denyIfNoRulesFound to set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-25 17:45:34
|
Revision: 701 http://openutils.svn.sourceforge.net/openutils/?rev=701&view=rev Author: fcarone Date: 2008-02-25 09:45:22 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Minor changes to documentation Modified Paths: -------------- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt Modified: trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-25 17:38:38 UTC (rev 700) +++ trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-25 17:45:22 UTC (rev 701) @@ -8,11 +8,11 @@ This project proposes a Role Based approach to security, trying to be as hidden as possible to application developers. - A common test case is when you have different users who can access the same group of domain business objects and a + A common test case is when you have different users who can access the same set of domain business objects and a policy to enforce access security is needed. For exaple, given a DummyDataObject with two properties, intValue and stringValue, you want UserA to access the DummyDataObject when intValue is 1 and UserB when intValue is 2. - In a typical RBAC environment, the user (or entity who does something) is called subject and a subject is tied to + Using the RBAC grammar, the user (or entity who does something) is called subject and a subject is tied to many roles. Within openutils, 1 user is contained in N groups and a group can have M roles, so you relate users to roles through groups. For our example let's map UserA to Role1 and UserB to Role2 (through 2 different groups, GroupA and GroupB, but groups are not important now). @@ -31,7 +31,7 @@ SecurityRule 2: Role2 - DummyDataObject - intValue - 2 - EQUALS - LOAD - With the given scheme, users with roles Role1 and Role2 can access in readonly mode the DummyDataObject instances with + With the given scheme, users with roles Role1 and Role2 can access in read-only mode the DummyDataObject instances with respectively intValue equals to 1 and 2. If you want to make Role2 access the DummyDataObjects in read-write mode, the SecurityRule 2 becomes: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-25 17:38:59
|
Revision: 700 http://openutils.svn.sourceforge.net/openutils/?rev=700&view=rev Author: fcarone Date: 2008-02-25 09:38:38 -0800 (Mon, 25 Feb 2008) Log Message: ----------- More documentation added Modified Paths: -------------- trunk/openutils-hibernate-security/src/site/apt/index.apt Added Paths: ----------- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt Modified: trunk/openutils-hibernate-security/src/site/apt/index.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/index.apt 2008-02-25 14:08:41 UTC (rev 699) +++ trunk/openutils-hibernate-security/src/site/apt/index.apt 2008-02-25 17:38:38 UTC (rev 700) @@ -12,7 +12,9 @@ See the test classes for how to setup security and look at {{{apidocs/index.html}javadocs}} for more details. + If need more detail but you don't want to dig into the sources, then you can read this {{{rbac-acegi.html}document}}. + Released versions Check it at {{{http://www.mvnrepository.com/artifact/net.sourceforge.openutils/openutils-hibernate-security}http://www.mvnrepository.com/artifact/net.sourceforge.openutils/openutils-hibernate-security}} Added: trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt =================================================================== --- trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt (rev 0) +++ trunk/openutils-hibernate-security/src/site/apt/rbac-acegi.apt 2008-02-25 17:38:38 UTC (rev 700) @@ -0,0 +1,40 @@ + -------------------------- + O p e n u t i l s + -------------------------- + Filippo Carone + -------------------------- + +openutils-hibernate-security - A Role Based Access Control library + + This project proposes a Role Based approach to security, trying to be as hidden as possible to application developers. + + A common test case is when you have different users who can access the same group of domain business objects and a +policy to enforce access security is needed. For exaple, given a DummyDataObject with two properties, intValue and +stringValue, you want UserA to access the DummyDataObject when intValue is 1 and UserB when intValue is 2. + + In a typical RBAC environment, the user (or entity who does something) is called subject and a subject is tied to +many roles. Within openutils, 1 user is contained in N groups and a group can have M roles, so you relate users +to roles through groups. For our example let's map UserA to Role1 and UserB to Role2 (through 2 different groups, +GroupA and GroupB, but groups are not important now). + + The core of the openutils-hibernate-security is called SecurityRule. A SecurityRule defines which role can +access/modify/create/delete which object (so who can do what on something). To enforce our example policy we add +2 SecurityRules, using the following notation: + + RoleN - Bean - property - value - Modifier (EQUALS, NOT) - Permission (LOAD, CREATE, DELETE, MODIFY) + + So: + + SecurityRule 1: + Role1 - DummyDataObject - intValue - 1 - EQUALS - LOAD + + SecurityRule 2: + Role2 - DummyDataObject - intValue - 2 - EQUALS - LOAD + + With the given scheme, users with roles Role1 and Role2 can access in readonly mode the DummyDataObject instances with +respectively intValue equals to 1 and 2. If you want to make Role2 access the DummyDataObjects in read-write mode, the +SecurityRule 2 becomes: + + Role2 - DummyDataObject - intValue - 2 - EQUALS - LOAD, MODIFY + + In this case, users with Role2 won't be able to either create or delete DummyDataObjects when intValue is 2. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-25 14:08:41
|
Revision: 699 http://openutils.svn.sourceforge.net/openutils/?rev=699&view=rev Author: fcarone Date: 2008-02-25 06:08:41 -0800 (Mon, 25 Feb 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-25 14:08:00 UTC (rev 698) +++ trunk/openutils-hibernate-security/pom.xml 2008-02-25 14:08:41 UTC (rev 699) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.5</version> + <version>0.0.6-SNAPSHOT</version> <description>Hibernate Security classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -220,10 +220,4 @@ <scope>test</scope> </dependency> </dependencies> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.5</url> - </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-25 14:08:27
|
Revision: 698 http://openutils.svn.sourceforge.net/openutils/?rev=698&view=rev Author: fcarone Date: 2008-02-25 06:08:00 -0800 (Mon, 25 Feb 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-hibernate-security-0.0.5 Added Paths: ----------- tags/openutils-hibernate-security-0.0.5/ tags/openutils-hibernate-security-0.0.5/pom.xml tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.5/src/site/apt/ tags/openutils-hibernate-security-0.0.5/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.5/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.5/src/test/resources/spring-security.xml Removed Paths: ------------- tags/openutils-hibernate-security-0.0.5/pom.xml tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.5/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.5/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.5/src/test/resources/spring-security.xml Copied: tags/openutils-hibernate-security-0.0.5 (from rev 673, trunk/openutils-hibernate-security) Deleted: tags/openutils-hibernate-security-0.0.5/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/pom.xml 2008-02-25 14:08:00 UTC (rev 698) @@ -1,223 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <artifactId>openutils</artifactId> - <groupId>net.sourceforge.openutils</groupId> - <version>7</version> - <relativePath>..</relativePath> - </parent> - <modelVersion>4.0.0</modelVersion> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-hibernate-security</artifactId> - <name>openutils hibernate security</name> - <version>0.0.4-SNAPSHOT</version> - <description>Hibernate Security classes</description> - <properties> - <spring.version>2.5.1</spring.version> - <aspectj.version>1.5.3</aspectj.version> - </properties> - <dependencies> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <!-- already imported cglib-nodep by spring --> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>aspectj</groupId> - <artifactId>aspectjrt</artifactId> - <version>${aspectj.version}</version> - </dependency> - <dependency> - <groupId>aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - <version>${aspectj.version}</version> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm-attrs</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm-commons</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-usermanagement</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-usermanagement-dataobjects</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-bshd5</artifactId> - <version>2.0.1</version> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-testing-junit</artifactId> - <version>2.0.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-testing</artifactId> - <version>2.0.3</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.1</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.5.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>3.2.1.ga</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - <version>1.2.1</version> - <scope>test</scope> - <exclusions> - <exclusion> - <artifactId>xerces</artifactId> - <groupId>xerces</groupId> - </exclusion> - <exclusion> - <artifactId>xml-apis</artifactId> - <groupId>xml-apis</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.2</version> - </dependency> - <dependency> - <groupId>org.acegisecurity</groupId> - <artifactId>acegi-security</artifactId> - <version>1.0.6</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <artifactId>spring-remoting</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - <exclusion> - <artifactId>spring-jdbc</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - <exclusion> - <artifactId>spring-support</artifactId> - <groupId>org.springframework</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <version>1.8.0.7</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.4</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>dbunit</groupId> - <artifactId>dbunit</artifactId> - <version>2.1</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> \ No newline at end of file Copied: tags/openutils-hibernate-security-0.0.5/pom.xml (from rev 697, trunk/openutils-hibernate-security/pom.xml) =================================================================== --- tags/openutils-hibernate-security-0.0.5/pom.xml (rev 0) +++ tags/openutils-hibernate-security-0.0.5/pom.xml 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,229 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <parent> + <artifactId>openutils</artifactId> + <groupId>net.sourceforge.openutils</groupId> + <version>7</version> + <relativePath>..</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-hibernate-security</artifactId> + <name>openutils hibernate security</name> + <version>0.0.5</version> + <description>Hibernate Security classes</description> + <properties> + <spring.version>2.5.1</spring.version> + <aspectj.version>1.5.3</aspectj.version> + </properties> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <!-- already imported cglib-nodep by spring --> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>aspectj</groupId> + <artifactId>aspectjrt</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-commons</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-usermanagement</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-usermanagement-dataobjects</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-bshd5</artifactId> + <version>2.0.1</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-testing-junit</artifactId> + <version>2.0.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-testing</artifactId> + <version>2.0.3</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.5.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + <version>3.2.1.ga</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <version>1.2.1</version> + <scope>test</scope> + <exclusions> + <exclusion> + <artifactId>xerces</artifactId> + <groupId>xerces</groupId> + </exclusion> + <exclusion> + <artifactId>xml-apis</artifactId> + <groupId>xml-apis</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>org.acegisecurity</groupId> + <artifactId>acegi-security</artifactId> + <version>1.0.6</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <artifactId>spring-remoting</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-jdbc</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-support</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.4</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>dbunit</groupId> + <artifactId>dbunit</artifactId> + <version>2.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.5</url> + </scm> +</project> \ No newline at end of file Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,154 +0,0 @@ -/* - * Copyright Openmind http://www.openmindonline.it - * - * Licensed 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 it.openutils.hibernate.security.aop; - -import it.openutils.hibernate.security.dataobject.SecurityRule; -import it.openutils.hibernate.security.services.SecurityRuleManager; - -import java.util.ArrayList; -import java.util.List; - -import org.acegisecurity.Authentication; -import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.context.SecurityContextHolder; -import org.apache.commons.lang.StringUtils; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.hibernate.Filter; -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * @author fcarone - * @version $Id$ - */ -@Aspect -public class AOPSecurity -{ - - /** - * Logger. - */ - private Logger log = LoggerFactory.getLogger(AOPSecurity.class); - - private SecurityRuleManager securityRuleManager; - - private List<String> securedDAOs; - - private boolean enabled; - - /** - * @param pjp The proceeding joinpoint - * @param filter The entity we are going to filter - * @param additionalCriteria The additional criteria list, cannot be null - * @return The execution invocation result - * @throws Throwable Any exception occurring in the invoked method - */ - @Around("execution(* it.openutils.dao.hibernate.*.*(Object, .., java.util.List<org.hibernate.criterion.Criterion>)) && " - + // - " args(filter, .., additionalCriteria)") - public Object applySecurityRules(ProceedingJoinPoint pjp, Object filter, List<Criterion> additionalCriteria) - throws Throwable - { - if (!enabled) - { - log.debug("DAO security disabled, proceeding."); - return pjp.proceed(); - } - - if (!securedDAOs.contains(pjp.getTarget().getClass().getCanonicalName())) - { - log.debug("The intercepted DAO {} is not secured, proceeding.", pjp.getTarget().toString()); - return pjp.proceed(); - } - - log.debug("applying security rules for {} with criteria {}", filter.toString(), additionalCriteria); - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (authentication == null) - { - throw new SecurityException("Authentication is not valid"); - } - GrantedAuthority[] authorities = authentication.getAuthorities(); - List<String> roles = new ArrayList<String>(); - for (int i = 0; i < authorities.length; i++) - { - roles.add(authorities[i].getAuthority()); - } - - String entity = filter.getClass().getCanonicalName(); - List<SecurityRule> rules = securityRuleManager.getRulesForRoles(entity, roles); - - if (rules.isEmpty()) - { - if (log.isWarnEnabled()) - { - String grantedRoles = StringUtils.EMPTY; - for (int i = 0; i < authorities.length; i++) - { - grantedRoles += authorities[i].getAuthority() + " "; - } - log.warn( - "No rules found. Access is denied on " + entity + ", for user {} with roles {}", - SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(), - grantedRoles); - } - throw new SecurityException("Access denied"); - } - - Filter hibernateFilter = securityRuleManager.getEntityFilterFromRules(entity, rules); - - Criterion sqlCriterion = Restrictions.sqlRestriction(hibernateFilter - .getFilterDefinition() - .getDefaultFilterCondition()); - - log.debug("Adding sql restriction: {}", sqlCriterion.toString()); - additionalCriteria.add(sqlCriterion); - - Object result = pjp.proceed(); - return result; - } - - /** - * Sets the securityRuleManager. - * @param securityRuleManager the securityRuleManager to set - */ - public void setSecurityRuleManager(SecurityRuleManager securityRuleManager) - { - this.securityRuleManager = securityRuleManager; - } - - /** - * Sets the securedDAOs. - * @param securedDAOs the securedDAOs to set - */ - public void setSecuredDAOs(List<String> securedDAOs) - { - this.securedDAOs = securedDAOs; - } - - /** - * Sets the enabled. - * @param enabled the enabled to set - */ - public void setEnabled(boolean enabled) - { - this.enabled = enabled; - } -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java (from rev 687, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,175 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.aop; + +import it.openutils.hibernate.security.dataobject.SecurityRule; +import it.openutils.hibernate.security.services.SecurityRuleManager; + +import java.util.ArrayList; +import java.util.List; + +import org.acegisecurity.Authentication; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.context.SecurityContextHolder; +import org.apache.commons.lang.StringUtils; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.hibernate.Filter; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author fcarone + * @version $Id$ + */ +@Aspect +public class AOPSecurity +{ + + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(AOPSecurity.class); + + private boolean denyIfNoRulesFound = true; + + private SecurityRuleManager securityRuleManager; + + private List<String> securedDAOs; + + private boolean enabled; + + /** + * @param pjp The proceeding joinpoint + * @param filter The entity we are going to filter + * @param additionalCriteria The additional criteria list, cannot be null + * @return The execution invocation result + * @throws Throwable Any exception occurring in the invoked method + */ + @Around("execution(* it.openutils.dao.hibernate.*.*(Object, .., java.util.List<org.hibernate.criterion.Criterion>)) && " + + // + " args(filter, .., additionalCriteria)") + public Object applySecurityRules(ProceedingJoinPoint pjp, Object filter, List<Criterion> additionalCriteria) + throws Throwable + { + if (!enabled) + { + log.debug("DAO security disabled, proceeding."); + return pjp.proceed(); + } + + if (!securedDAOs.contains(pjp.getTarget().getClass().getCanonicalName())) + { + log.debug("The intercepted DAO {} is not secured, proceeding.", pjp.getTarget().toString()); + return pjp.proceed(); + } + + log.debug("applying security rules for {} with criteria {}", filter.toString(), additionalCriteria); + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (authentication == null) + { + throw new SecurityException("Authentication is not valid"); + } + GrantedAuthority[] authorities = authentication.getAuthorities(); + List<String> roles = new ArrayList<String>(); + for (int i = 0; i < authorities.length; i++) + { + roles.add(authorities[i].getAuthority()); + } + + String entity = filter.getClass().getCanonicalName(); + List<SecurityRule> rules = securityRuleManager.getRulesForRoles(filter, roles); + + if (rules.isEmpty()) + { + if (log.isWarnEnabled()) + { + String grantedRoles = StringUtils.EMPTY; + for (int i = 0; i < authorities.length; i++) + { + grantedRoles += authorities[i].getAuthority() + " "; + } + log.warn( + "No rules found for " + entity + ", user {} with roles {}", + SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(), + grantedRoles); + } + if (denyIfNoRulesFound) + { + log.debug("denyIfNoRulesFound is true, denying access."); + throw new SecurityException("Access denied"); + } + else + { + log.debug("denyIfNoRulesFound is false, allowing access."); + return pjp.proceed(); + } + } + + Filter hibernateFilter = securityRuleManager.getEntityFilterFromRules(entity, rules); + + Criterion sqlCriterion = Restrictions.sqlRestriction(hibernateFilter + .getFilterDefinition() + .getDefaultFilterCondition()); + + log.debug("Adding sql restriction: {}", sqlCriterion.toString()); + additionalCriteria.add(sqlCriterion); + + Object result = pjp.proceed(); + return result; + } + + /** + * Sets the securityRuleManager. + * @param securityRuleManager the securityRuleManager to set + */ + public void setSecurityRuleManager(SecurityRuleManager securityRuleManager) + { + this.securityRuleManager = securityRuleManager; + } + + /** + * Sets the securedDAOs. + * @param securedDAOs the securedDAOs to set + */ + public void setSecuredDAOs(List<String> securedDAOs) + { + this.securedDAOs = securedDAOs; + } + + /** + * Sets the enabled. + * @param enabled the enabled to set + */ + public void setEnabled(boolean enabled) + { + this.enabled = enabled; + } + + + /** + * Sets the denyIfNoRulesFound. + * @param denyIfNoRulesFound the denyIfNoRulesFound to set + */ + public void setDenyIfNoRulesFound(boolean denyIfNoRulesFound) + { + this.denyIfNoRulesFound = denyIfNoRulesFound; + } +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,17 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dao; - -import it.openutils.dao.hibernate.HibernateDAO; -import it.openutils.hibernate.security.dataobject.SecurityRule; - - -/** - * @author fcarone - * @version $Id$ - */ -public interface SecurityRuleDAO extends HibernateDAO<SecurityRule, Long> -{ - -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,29 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dao; + +import it.openutils.dao.hibernate.HibernateDAO; +import it.openutils.hibernate.security.dataobject.SecurityRule; + + +/** + * @author fcarone + * @version $Id$ + */ +public interface SecurityRuleDAO extends HibernateDAO<SecurityRule, Long> +{ + +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,27 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dao.impl; - -import it.openutils.dao.hibernate.HibernateDAOImpl; -import it.openutils.hibernate.security.dao.SecurityRuleDAO; -import it.openutils.hibernate.security.dataobject.SecurityRule; - - -/** - * @author fcarone - * @version $Id$ - */ -public class SecurityRuleDAOImpl extends HibernateDAOImpl<SecurityRule, Long> implements SecurityRuleDAO -{ - - /** - * {@inheritDoc} - */ - @Override - protected Class<SecurityRule> getReferenceClass() - { - return SecurityRule.class; - } - -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,39 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dao.impl; + +import it.openutils.dao.hibernate.HibernateDAOImpl; +import it.openutils.hibernate.security.dao.SecurityRuleDAO; +import it.openutils.hibernate.security.dataobject.SecurityRule; + + +/** + * @author fcarone + * @version $Id$ + */ +public class SecurityRuleDAOImpl extends HibernateDAOImpl<SecurityRule, Long> implements SecurityRuleDAO +{ + + /** + * {@inheritDoc} + */ + @Override + protected Class<SecurityRule> getReferenceClass() + { + return SecurityRule.class; + } + +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,37 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -/** - * @author fcarone - * @version $Id$ - */ -public enum ModifierEnum { - - /** - * Equals - */ - EQUALS("equals"), - - /** - * Not - */ - NOT("not"); - - private String value; - - /** - * @param value The literal value of the modifier - */ - ModifierEnum(String value) - { - this.value = value; - } - - public String getValue() - { - return value; - } - -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,49 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + +/** + * @author fcarone + * @version $Id$ + */ +public enum ModifierEnum { + + /** + * Equals + */ + EQUALS("equals"), + + /** + * Not + */ + NOT("not"); + + private String value; + + /** + * @param value The literal value of the modifier + */ + ModifierEnum(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } + +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,37 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -/** - * @author fcarone - * @version $Id$ - */ -public enum PermissionEnum { - - /** - * Load, Create, Modify, Delete permissions - */ - LOAD("LOAD"), CREATE("CREATE"), MODIFY("MODIFY"), DELETE("DELETE"); - - private String value; - - /** - * @param value The literal value for the needed enumeration object - */ - PermissionEnum(String value) - { - this.value = value; - } - - - /** - * Returns the value. - * @return the value - */ - public String getValue() - { - return value; - } - -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java (from rev 693, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,49 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + +/** + * @author fcarone + * @version $Id$ + */ +public enum PermissionEnum { + + /** + * Load, Create, Modify, Delete permissions + */ + LOAD("LOAD"), CREATE("CREATE"), MODIFY("MODIFY"), DELETE("DELETE"); + + private String value; + + /** + * @param value The literal value for the needed enumeration object + */ + PermissionEnum(String value) + { + this.value = value; + } + + + /** + * Returns the value. + * @return the value + */ + public String getValue() + { + return value; + } + +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,212 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.dataobject; - -import java.io.Serializable; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.Table; - -import org.hibernate.annotations.CollectionOfElements; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; -import org.apache.commons.lang.builder.ToStringBuilder; - - -/** - * @author fcarone - * @version $Id$ A security rule - */ -@Entity -@Table(name = "SECURITY_RULE") -public class SecurityRule implements Serializable -{ - - /** - * Generated serial version UID - */ - private static final long serialVersionUID = -4820683448073404349L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "ID_SECURITY_RULE") - private Long id; - - @Column(name = "ROLE", length = 64, nullable = false) - private String role; - - @Column(name = "ENTITY", length = 512, nullable = false) - private String entity; - - @Column(name = "PROPERTY", length = 512, nullable = false) - private String property; - - @Column(name = "VALUE", nullable = false) - private String value; - - @Enumerated(EnumType.STRING) - @Column(name = "MODIFIER", nullable = false) - private ModifierEnum modifier; - - @CollectionOfElements(fetch = FetchType.EAGER) - @JoinTable(name = "SECRULE_PERMISSION", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) - @Column(name = "PERMISSION", nullable = false) - @Enumerated(EnumType.STRING) - @Fetch(FetchMode.SUBSELECT) - private List<PermissionEnum> permissions; - - /** - * Returns the role. - * @return the role - */ - public String getRole() - { - return role; - } - - /** - * Sets the role. - * @param role the role to set - */ - public void setRole(String role) - { - this.role = role; - } - - /** - * Returns the entity. - * @return the entity - */ - public String getEntity() - { - return entity; - } - - /** - * Sets the entity. - * @param entity the entity to set - */ - public void setEntity(String entity) - { - this.entity = entity; - } - - /** - * Returns the property. - * @return the property - */ - public String getProperty() - { - return property; - } - - /** - * Sets the property. - * @param property the property to set - */ - public void setProperty(String property) - { - this.property = property; - } - - /** - * Returns the value. - * @return the value - */ - public String getValue() - { - return value; - } - - /** - * Sets the value. - * @param value the value to set - */ - public void setValue(String value) - { - this.value = value; - } - - /** - * Returns the modifier. - * @return the modifier - */ - public ModifierEnum getModifier() - { - return modifier; - } - - /** - * Sets the modifier. - * @param modifier the modifier to set - */ - public void setModifier(ModifierEnum modifier) - { - this.modifier = modifier; - } - - /** - * Returns the permissions. - * @return the permissions - */ - public List<PermissionEnum> getPermissions() - { - return permissions; - } - - /** - * Sets the permissions. - * @param permissions the permissions to set - */ - public void setPermissions(List<PermissionEnum> permissions) - { - this.permissions = permissions; - } - - /** - * Returns the id. - * @return the id - */ - public Long getId() - { - return id; - } - - /** - * Sets the id. - * @param id the id to set - */ - public void setId(Long id) - { - this.id = id; - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() - { - return new ToStringBuilder(this) - .append("id", this.id) - .append("role", this.role) - .append("entity", this.entity) - .append("property", this.property) - .append("value", this.value) - .append("modifier", this.modifier) - .append("permissions", this.permissions) - .toString(); - } - -} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java (from rev 696, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,301 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.hibernate.security.dataobject; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.Table; + +import org.hibernate.annotations.CollectionOfElements; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.Filter; +import org.hibernate.annotations.FilterDef; +import org.hibernate.annotations.FilterDefs; +import org.hibernate.annotations.Filters; +import org.apache.commons.lang.builder.ToStringBuilder; + + +/** + * @author fcarone + * @version $Id$ A security rule + */ +@Entity +@Table(name = "SECURITY_RULE") +@FilterDefs({@FilterDef(name = "notDeletedRules", defaultCondition = "DELETED != '1'") }) +@Filters({@Filter(name = "notDeletedRules") }) +public class SecurityRule implements Serializable +{ + + /** + * Generated serial version UID + */ + private static final long serialVersionUID = -4820683448073404349L; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "ID_SECURITY_RULE") + private Long id; + + @Column(name = "ROLE", length = 64, nullable = false) + private String role; + + @Column(name = "ENTITY", length = 512, nullable = false) + private String entity; + + @Column(name = "PROPERTY", length = 512, nullable = false) + private String property; + + @Column(name = "VALUE", nullable = false) + private String value; + + @Enumerated(EnumType.STRING) + @Column(name = "MODIFIER", nullable = false) + private ModifierEnum modifier; + + @CollectionOfElements(fetch = FetchType.EAGER) + @JoinTable(name = "SECRULE_PERMISSION", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) + @Column(name = "PERMISSION", nullable = false) + @Enumerated(EnumType.STRING) + @Fetch(FetchMode.SUBSELECT) + private List<PermissionEnum> permissions; + + @Enumerated(EnumType.STRING) + @Column(name = "STATUS", nullable = false) + private StatusEnum status; + + @Column(name = "DELETED", length = 1, nullable = false) + private Boolean deleted; + + @CollectionOfElements(fetch = FetchType.EAGER) + @org.hibernate.annotations.MapKey(columns = @Column(name = "NAME")) + @JoinTable(name = "SECRULE_ENTITY", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) + @Column(name = "VALUE", length = 256) + @Fetch(FetchMode.SUBSELECT) + private Map<String, String> entities; + + /** + * Returns the role. + * @return the role + */ + public String getRole() + { + return role; + } + + /** + * Sets the role. + * @param role the role to set + */ + public void setRole(String role) + { + this.role = role; + } + + /** + * Returns the entity. + * @return the entity + */ + public String getEntity() + { + return entity; + } + + /** + * Sets the entity. + * @param entity the entity to set + */ + public void setEntity(String entity) + { + this.entity = entity; + } + + /** + * Returns the property. + * @return the property + */ + public String getProperty() + { + return property; + } + + /** + * Sets the property. + * @param property the property to set + */ + public void setProperty(String property) + { + this.property = property; + } + + /** + * Returns the value. + * @return the value + */ + public String getValue() + { + return value; + } + + /** + * Sets the value. + * @param value the value to set + */ + public void setValue(String value) + { + this.value = value; + } + + /** + * Returns the modifier. + * @return the modifier + */ + public ModifierEnum getModifier() + { + return modifier; + } + + /** + * Sets the modifier. + * @param modifier the modifier to set + */ + public void setModifier(ModifierEnum modifier) + { + this.modifier = modifier; + } + + /** + * Returns the permissions. + * @return the permissions + */ + public List<PermissionEnum> getPermissions() + { + return permissions; + } + + /** + * Sets the permissions. + * @param permissions the permissions to set + */ + public void setPermissions(List<PermissionEnum> permissions) + { + this.permissions = permissions; + } + + /** + * Returns the id. + * @return the id + */ + public Long getId() + { + return id; + } + + /** + * Sets the id. + * @param id the id to set + */ + public void setId(Long id) + { + this.id = id; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() + { + return new ToStringBuilder(this) + .append("id", this.id) + .append("role", this.role) + .append("entity", this.entity) + .append("property", this.property) + .append("value", this.value) + .append("modifier", this.modifier) + .append("permissions", this.permissions) + .toString(); + } + + /** + * Returns the status. + * @return the status + */ + public StatusEnum getStatus() + { + return status; + } + + /** + * Sets the status. + * @param status the status to set + */ + public void setStatus(StatusEnum status) + { + this.status = status; + } + + /** + * @return True if the rule is enabled + */ + public boolean isEnabled() + { + if (status == null) + { + return false; + } + return status.equals(StatusEnum.ENABLED); + } + + /** + * Returns the entities. + * @return the entities + */ + public Map<String, String> getEntities() + { + return entities; + } + + /** + * Sets the entities. + * @param entities the entities to set + */ + public void setEntities(Map<String, String> entities) + { + this.entities = entities; + } + + + /** + * Returns the deleted. + * @return the deleted + */ + public Boolean getDeleted() + { + return deleted; + } + + + /** + * Sets the deleted. + * @param deleted the deleted to set + */ + public void setDeleted(Boolean deleted) + { + this.deleted = deleted; + } + +} Copied: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java (from rev 688, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java) =================================================================== --- tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java 2008-02-25 14:08:00 UTC (rev 698) @@ -0,0 +1,46 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed 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 it.openutils.hibernate.security.dataobject; + + +/** + * @author fcarone + * @version $Id: $ + */ +public enum StatusEnum { + + /** + * Enabled + */ + ENABLED("enabled"), + + /** + * Disabled + */ + DISABLED("disabled"); + + private String value; + + private StatusEnum(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } +} Deleted: tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.5/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java 2008-02-25 14:08:00 UTC (rev 698) @@ -1,258 +0,0 @@ -/* - * Copyright Openmind http://www.openmindonline.it - * - * Licensed 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 it.openutils.hibernate.security.filter; - -import it.openutils.hibernate.security.dataobject.PermissionEnum; -import it.openutils.hibernate.security.dataobject.SecurityRule; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; -import org.hibernate.Filter; -import org.hibernate.HibernateException; -import org.hibernate.engine.FilterDefinition; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * @author fcarone - * @version $Id$ - */ -public class JavaBeanFilter implements Filter -{ - - private FilterDefinitio... [truncated message content] |
From: <fc...@us...> - 2008-02-25 14:07:02
|
Revision: 697 http://openutils.svn.sourceforge.net/openutils/?rev=697&view=rev Author: fcarone Date: 2008-02-25 06:07:04 -0800 (Mon, 25 Feb 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-hibernate-security-0.0.5 Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-25 13:39:29 UTC (rev 696) +++ trunk/openutils-hibernate-security/pom.xml 2008-02-25 14:07:04 UTC (rev 697) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.5-SNAPSHOT</version> + <version>0.0.5</version> <description>Hibernate Security classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -220,4 +220,10 @@ <scope>test</scope> </dependency> </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.5</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.5</url> + </scm> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-02-25 13:46:04
|
Revision: 696 http://openutils.svn.sourceforge.net/openutils/?rev=696&view=rev Author: fcarone Date: 2008-02-25 05:39:29 -0800 (Mon, 25 Feb 2008) Log Message: ----------- use name and value for entities Modified Paths: -------------- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-25 13:24:54 UTC (rev 695) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-02-25 13:39:29 UTC (rev 696) @@ -83,7 +83,7 @@ @CollectionOfElements(fetch = FetchType.EAGER) @org.hibernate.annotations.MapKey(columns = @Column(name = "NAME")) @JoinTable(name = "SECRULE_ENTITY", joinColumns = {@JoinColumn(name = "ID_SECURITY_RULE") }) - @Column(name = "VALUE", length = 60) + @Column(name = "VALUE", length = 256) @Fetch(FetchMode.SUBSELECT) private Map<String, String> entities; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |