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: <fg...@us...> - 2008-03-19 18:31:09
|
Revision: 747 http://openutils.svn.sourceforge.net/openutils/?rev=747&view=rev Author: fgiust Date: 2008-03-19 11:30:30 -0700 (Wed, 19 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-log4j/pom.xml Modified: trunk/openutils-log4j/pom.xml =================================================================== --- trunk/openutils-log4j/pom.xml 2008-03-19 18:29:40 UTC (rev 746) +++ trunk/openutils-log4j/pom.xml 2008-03-19 18:30:30 UTC (rev 747) @@ -9,7 +9,7 @@ </parent> <artifactId>openutils-log4j</artifactId> <packaging>jar</packaging> - <version>2.0.2</version> + <version>2.0.3-SNAPSHOT</version> <name>openutils for Log4j</name> <description>openutils log4j extensions</description> <build> @@ -54,10 +54,4 @@ <scope>test</scope> </dependency> </dependencies> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.2</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.2</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-log4j-2.0.2</url> - </scm> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-19 18:29:55
|
Revision: 746 http://openutils.svn.sourceforge.net/openutils/?rev=746&view=rev Author: fgiust Date: 2008-03-19 11:29:40 -0700 (Wed, 19 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-log4j-2.0.2 Added Paths: ----------- tags/openutils-log4j-2.0.2/ Copied: tags/openutils-log4j-2.0.2 (from rev 745, trunk/openutils-log4j) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-17 10:27:59
|
Revision: 743 http://openutils.svn.sourceforge.net/openutils/?rev=743&view=rev Author: fcarone Date: 2008-03-17 02:21:07 -0700 (Mon, 17 Mar 2008) Log Message: ----------- Maps testing added Modified Paths: -------------- 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/LazyReference.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml 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-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2008-03-17 09:21:07 UTC (rev 743) @@ -71,7 +71,6 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") public Object invoke(final String className, final String methodName, final Serializable id) throws RemoteException { log.debug("Initializing lazy property."); 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-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2008-03-17 09:21:07 UTC (rev 743) @@ -27,7 +27,10 @@ import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.Enhancer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Store lazy reference * @author mmolaschi @@ -48,6 +51,11 @@ private String className; private String fieldClassName; + + /** + * Logger. + */ + private static Logger log = LoggerFactory.getLogger(LazyReference.class); /** * default constructor @@ -91,6 +99,12 @@ interfaces = new Class[]{superclass, Serializable.class, EntitySerializer.class }; } + if (log.isDebugEnabled()) + { + log.debug("className: {} - fieldName: {}", className, fieldName); + } + + HibernateLazyLoaderAspect hlla = new HibernateLazyLoaderAspect( className, fieldName, Modified: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-17 09:21:07 UTC (rev 743) @@ -56,7 +56,7 @@ } /** - * First loading + * First loading. This test will fail if the object graph cannot be read. */ @Test public void loadTest() @@ -72,7 +72,23 @@ child.getId(); } } + + public void saveTest() + { + List<DummyDataobject> objects = dummyManager.findAll(); + Assert.assertEquals(3, objects.size()); + DummyDataobject firstObj = objects.get(0); + List<DummyDataobjectChildContainer> children = firstObj.getDummyChildrenContainer(); + for (DummyDataobjectChildContainer container : children) + { + DummyDataobjectChild child = container.getChild(); + child.setSomeText("some new text"); + } + + + } + /** * Sets the dummyManager. * @param dummyManager the dummyManager to set Modified: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java 2008-03-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java 2008-03-17 09:21:07 UTC (rev 743) @@ -17,16 +17,23 @@ package it.openutils.spring.rmibernate.testapp.server; import java.io.Serializable; +import java.util.Calendar; +import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; import javax.persistence.ManyToOne; import javax.persistence.Table; +import org.hibernate.annotations.CollectionOfElements; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + /** * @author fcarone * @version $Id: $ @@ -49,7 +56,34 @@ @JoinColumn(name = "DD_CHILD", referencedColumnName = "ID", nullable = true) private DummyDataobjectChild child; + @CollectionOfElements(fetch = FetchType.LAZY) + @org.hibernate.annotations.MapKey(columns = @Column(name = "DAY")) + @JoinTable(name = "DDC_CALMAP", joinColumns = {@JoinColumn(name = "ID") }) + @Column(name = "DDC_STRING", length = 1500) + @Fetch(FetchMode.SUBSELECT) + private Map<Calendar, String> calendarStringMap; + + /** + * Returns the calendarStringMap. + * @return the calendarStringMap + */ + public Map<Calendar, String> getCalendarStringMap() + { + return calendarStringMap; + } + + + /** + * Sets the calendarStringMap. + * @param calendarStringMap the calendarStringMap to set + */ + public void setCalendarStringMap(Map<Calendar, String> calendarStringMap) + { + this.calendarStringMap = calendarStringMap; + } + + /** * Returns the id. * @return the id */ Modified: trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml 2008-03-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml 2008-03-17 09:21:07 UTC (rev 743) @@ -70,5 +70,15 @@ <value>2</value> <value>1</value> </row> - </table> + </table> + <table name="DDC_CALMAP"> + <column>ID</column> + <column>DAY</column> + <column>DDC_STRING</column> + <row> + <value>0</value> + <value>2008-03-01</value> + <value>text</value> + </row> + </table> </dataset> Modified: trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml 2008-03-14 13:17:35 UTC (rev 742) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml 2008-03-17 09:21:07 UTC (rev 743) @@ -3,14 +3,12 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> - <bean class="org.springframework.remoting.rmi.RmiServiceExporter" lazy-init="false"> + <bean name="/hibernateLazyService" class="it.openutils.spring.rmibernate.server.exporter.HibernateRmiServiceExporter" lazy-init="false"> <property name="serviceName" value="HibernateLazyService" /> <property name="service" ref="hibernateLazyService" /> <property name="serviceInterface" value="it.openutils.spring.rmibernate.shared.managers.HibernateLazyService" /> <property name="registryPort" value="1099" /> - <!-- <property name="sessionFactory" ref="sessionFactory" /> - --> </bean> <bean name="/dummyManagerRmi" class="it.openutils.spring.rmibernate.server.exporter.HibernateRmiServiceExporter" lazy-init="false"> <property name="service" ref="dummyObjectManager" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-14 13:17:28
|
Revision: 742 http://openutils.svn.sourceforge.net/openutils/?rev=742&view=rev Author: fcarone Date: 2008-03-14 06:17:35 -0700 (Fri, 14 Mar 2008) Log Message: ----------- remove unused deps Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java Modified: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 13:16:30 UTC (rev 741) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 13:17:35 UTC (rev 742) @@ -31,10 +31,6 @@ import org.junit.Before; import org.junit.Test; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.TestExecutionListeners; -import org.springframework.test.context.transaction.TransactionConfiguration; -import org.springframework.test.context.transaction.TransactionalTestExecutionListener; -import org.springframework.transaction.annotation.Transactional; /** @@ -50,12 +46,18 @@ private DummyManager dummyManager; + /** + * Get the RMI version of the manager + */ @Before public void setupTest() { this.dummyManager = (DummyManager) applicationContext.getBean("dummyManagerRMI"); } + /** + * First loading + */ @Test public void loadTest() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-14 13:16:24
|
Revision: 741 http://openutils.svn.sourceforge.net/openutils/?rev=741&view=rev Author: fcarone Date: 2008-03-14 06:16:30 -0700 (Fri, 14 Mar 2008) Log Message: ----------- hibernate dependency fixed Modified Paths: -------------- trunk/openutils-spring-rmibernate/pom.xml Modified: trunk/openutils-spring-rmibernate/pom.xml =================================================================== --- trunk/openutils-spring-rmibernate/pom.xml 2008-03-14 09:19:31 UTC (rev 740) +++ trunk/openutils-spring-rmibernate/pom.xml 2008-03-14 13:16:30 UTC (rev 741) @@ -48,7 +48,7 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> - <version>3.2.4.ga</version> + <version>3.2.5.ga</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> @@ -108,22 +108,6 @@ </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> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.2.1.ga</version> <exclusions> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-14 09:19:38
|
Revision: 740 http://openutils.svn.sourceforge.net/openutils/?rev=740&view=rev Author: fcarone Date: 2008-03-14 02:19:31 -0700 (Fri, 14 Mar 2008) Log Message: ----------- This is not a transactional test Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java Modified: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 09:15:06 UTC (rev 739) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 09:19:31 UTC (rev 740) @@ -45,9 +45,6 @@ @DbUnitExecution(datasets = {"/HibernateLazyTest-load.xml" }, dataSource = "dataSource", // dataTypeFactory = HsqlDatatypeFactory.class, insertOperation = InsertOperation.class) -@TestExecutionListeners({TransactionalTestExecutionListener.class }) -@Transactional -@TransactionConfiguration(transactionManager = "transactionManager") public class SetupApplicationTest extends AbstractDbUnitJunitSpringContextTests { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 739 http://openutils.svn.sourceforge.net/openutils/?rev=739&view=rev Author: fcarone Date: 2008-03-14 02:15:06 -0700 (Fri, 14 Mar 2008) Log Message: ----------- fields callback from anon to inner 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-14 09:13:18 UTC (rev 738) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-14 09:15:06 UTC (rev 739) @@ -46,6 +46,7 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.SetUtils; import org.apache.commons.collections.Transformer; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.HashCodeBuilder; import org.hibernate.EntityMode; import org.hibernate.SessionFactory; @@ -61,9 +62,61 @@ * @author mmolaschi * @version $Id$ */ -public class SerializationInterceptor implements MethodInterceptor +public final class SerializationInterceptor implements MethodInterceptor { + private final class FieldEnhancementCallback implements ReflectionUtils.FieldCallback + { + + /** + * {@inheritDoc} + */ + public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException + { + if (StringUtils.indexOf(field.getName(), "CGLIB$") == 0) + { + return; + } + + // set field accessible + field.setAccessible(true); + + // get original value + Object oldValue = field.get(original); + + // get new value + Object newValue = null; + + if (oldValue instanceof PersistentCollection || oldValue instanceof HibernateProxy) + { + // 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); + } + } + } + private static ThreadLocal<List<Object>> processed = new ThreadLocal<List<Object>>(); private static ThreadLocal<HibernateLazyService> hibernateLazyService = new ThreadLocal<HibernateLazyService>(); @@ -332,52 +385,7 @@ 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); - } - } - - }); + ReflectionUtils.doWithFields(original.getClass(), new FieldEnhancementCallback()); } return original; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-14 09:13:16
|
Revision: 738 http://openutils.svn.sourceforge.net/openutils/?rev=738&view=rev Author: fcarone Date: 2008-03-14 02:13:18 -0700 (Fri, 14 Mar 2008) Log Message: ----------- test resources and config added Added Paths: ----------- trunk/openutils-spring-rmibernate/src/test/resources/ trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml trunk/openutils-spring-rmibernate/src/test/resources/database.properties trunk/openutils-spring-rmibernate/src/test/resources/dataset.dtd trunk/openutils-spring-rmibernate/src/test/resources/hibernate.cfg.xml trunk/openutils-spring-rmibernate/src/test/resources/log4j.dtd trunk/openutils-spring-rmibernate/src/test/resources/log4j.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-client-managers.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-dao.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-database.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-hibernate.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-managers.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml trunk/openutils-spring-rmibernate/src/test/resources/spring-tests.xml Added: trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/HibernateLazyTest-load.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,74 @@ +<!DOCTYPE dataset SYSTEM "dataset.dtd"> +<dataset> + <table name="DUMMYDATAOBJECTCHILD"> + <column>ID</column> + <column>SOMETEXT</column> + <row> + <value>0</value> + <value>ddd</value> + </row> + <row> + <value>1</value> + <value>eee</value> + </row> + <row> + <value>2</value> + <value>fff</value> + </row> + </table> + <table name="DUMMYDATAOBJECT"> + <column>ID</column> + <column>SOMETEXT</column> + <column>DD_CHILD</column> + <row> + <value>0</value> + <value>aaa</value> + <value>0</value> + </row> + <row> + <value>1</value> + <value>bbb</value> + <value>1</value> + </row> + <row> + <value>2</value> + <value>ccc</value> + <value>2</value> + </row> + </table> + <table name="DUMMYDATAOBJECTCONTAINER"> + <column>ID</column> + <column>DD_CHILD</column> + <column>ID_PARENT</column> + <row> + <value>0</value> + <value>0</value> + <value>0</value> + </row> + <row> + <value>1</value> + <value>1</value> + <value>0</value> + </row> + <row> + <value>2</value> + <value>2</value> + <value>0</value> + </row> + <row> + <value>3</value> + <value>0</value> + <value>1</value> + </row> + <row> + <value>4</value> + <value>1</value> + <value>1</value> + </row> + <row> + <value>5</value> + <value>2</value> + <value>1</value> + </row> + </table> +</dataset> Added: trunk/openutils-spring-rmibernate/src/test/resources/database.properties =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/database.properties (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/database.properties 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,13 @@ +# ATTENZIONE: queste propriet\xE0 sono utilizzate solo per gli unit tests +# i file per la configurazione del db utilizzati dall'applicazione web sono in +# src/main/web-app/WEB-INF + +#hibernate.connection.driver=org.apache.derby.jdbc.EmbeddedDriver +#hibernate.dialect=org.hibernate.dialect.DerbyDialect +hibernate.connection.driver=org.hsqldb.jdbcDriver +hibernate.dialect=org.hibernate.dialect.HSQLDialect +hibernate.connection.username=sa +hibernate.connection.password= +hibernate.connection.url=jdbc:hsqldb:mem:hibernate-rmibernate +hibernate.hbm2ddl.auto=create-drop +hibernate.show_sql=true Added: trunk/openutils-spring-rmibernate/src/test/resources/dataset.dtd =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/dataset.dtd (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/dataset.dtd 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,13 @@ +<!ELEMENT dataset (table*)> +<!ELEMENT table (column+,row+)> +<!ATTLIST table + name CDATA #REQUIRED +> +<!ELEMENT row (value|null)+> +<!ELEMENT column (#PCDATA)> +<!ELEMENT value (#PCDATA)> +<!ELEMENT null EMPTY> +<!-- +nb una tabella senza righe sarebbe valida (per cancellare tutto il contenuto), +ma NON DEVE ESISTERE NEI NOSTRI TEST IN QUANTO TUTTE LE TABELLE VENGONO SVUOTATE PRIMA DEL CARICAMENTO +--> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/hibernate.cfg.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/hibernate.cfg.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/hibernate.cfg.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,10 @@ +<!DOCTYPE hibernate-configuration PUBLIC + "-//Hibernate/Hibernate Configuration DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> +<hibernate-configuration> + <session-factory> + <mapping class="it.openutils.spring.rmibernate.testapp.server.DummyDataobject" /> + <mapping class="it.openutils.spring.rmibernate.testapp.server.DummyDataobjectChild" /> + <mapping class="it.openutils.spring.rmibernate.testapp.server.DummyDataobjectChildContainer" /> + </session-factory> +</hibernate-configuration> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/log4j.dtd =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/log4j.dtd (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/log4j.dtd 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- Authors: Chris Taylor, Ceki Gulcu. --> + +<!-- Version: 1.2 --> + +<!-- A configuration element consists of optional renderer +elements,appender elements, categories and an optional root +element. --> + +<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,root?, + categoryFactory?)> + +<!-- The "threshold" attribute takes a level value such that all --> +<!-- logging statements with a level equal or below this value are --> +<!-- disabled. --> + +<!-- Setting the "debug" enable the printing of internal log4j logging --> +<!-- statements. --> + +<!-- By default, debug attribute is "null", meaning that we not do touch --> +<!-- internal log4j logging settings. The "null" value for the threshold --> +<!-- attribute can be misleading. The threshold field of a repository --> +<!-- cannot be set to null. The "null" value for the threshold attribute --> +<!-- simply means don't touch the threshold field, the threshold field --> +<!-- keeps its old value. --> + +<!ATTLIST log4j:configuration + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + threshold (all|debug|info|warn|error|fatal|off|null) "null" + debug (true|false|null) "null" +> + +<!-- renderer elements allow the user to customize the conversion of --> +<!-- message objects to String. --> + +<!ELEMENT renderer EMPTY> +<!ATTLIST renderer + renderedClass CDATA #REQUIRED + renderingClass CDATA #REQUIRED +> + +<!-- Appenders must have a name and a class. --> +<!-- Appenders may contain an error handler, a layout, optional parameters --> +<!-- and filters. They may also reference (or include) other appenders. --> +<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*)> +<!ATTLIST appender + name ID #REQUIRED + class CDATA #REQUIRED +> + +<!ELEMENT layout (param*)> +<!ATTLIST layout + class CDATA #REQUIRED +> + +<!ELEMENT filter (param*)> +<!ATTLIST filter + class CDATA #REQUIRED +> + +<!-- ErrorHandlers can be of any class. They can admit any number of --> +<!-- parameters. --> + +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*, appender-ref?)> +<!ATTLIST errorHandler + class CDATA #REQUIRED +> + +<!ELEMENT root-ref EMPTY> + +<!ELEMENT logger-ref EMPTY> +<!ATTLIST logger-ref + ref IDREF #REQUIRED +> + +<!ELEMENT param EMPTY> +<!ATTLIST param + name CDATA #REQUIRED + value CDATA #REQUIRED +> + + +<!-- The priority class is org.apache.log4j.Level by default --> +<!ELEMENT priority (param*)> +<!ATTLIST priority + class CDATA #IMPLIED + value CDATA #REQUIRED +> + +<!-- The level class is org.apache.log4j.Level by default --> +<!ELEMENT level (param*)> +<!ATTLIST level + class CDATA #IMPLIED + value CDATA #REQUIRED +> + + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named category. --> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)> +<!ATTLIST category + class CDATA #IMPLIED + name CDATA #REQUIRED + additivity (true|false) "true" +> + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named logger. --> +<!ELEMENT logger (level?,appender-ref*)> +<!ATTLIST logger + name ID #REQUIRED + additivity (true|false) "true" +> + + +<!ELEMENT categoryFactory (param*)> +<!ATTLIST categoryFactory + class CDATA #REQUIRED> + +<!ELEMENT appender-ref EMPTY> +<!ATTLIST appender-ref + ref IDREF #REQUIRED +> + +<!-- If no priority element is specified, then the configurator MUST not --> +<!-- touch the priority of root. --> +<!-- The root category always exists and cannot be subclassed. --> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)> + + +<!-- ==================================================================== --> +<!-- A logging event --> +<!-- ==================================================================== --> +<!ELEMENT log4j:eventSet (log4j:event*)> +<!ATTLIST log4j:eventSet + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + version (1.1|1.2) "1.2" + includesLocationInfo (true|false) "true" +> + + + +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, + log4j:locationInfo?) > + +<!-- The timestamp format is application dependent. --> +<!ATTLIST log4j:event + logger CDATA #REQUIRED + level CDATA #REQUIRED + thread CDATA #REQUIRED + timestamp CDATA #REQUIRED +> + +<!ELEMENT log4j:message (#PCDATA)> +<!ELEMENT log4j:NDC (#PCDATA)> + +<!ELEMENT log4j:throwable (#PCDATA)> + +<!ELEMENT log4j:locationInfo EMPTY> +<!ATTLIST log4j:locationInfo + class CDATA #REQUIRED + method CDATA #REQUIRED + file CDATA #REQUIRED + line CDATA #REQUIRED +> Added: trunk/openutils-spring-rmibernate/src/test/resources/log4j.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/log4j.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/log4j.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<log4j:configuration> + <!-- log4j test configuration --> + <appender name="test-appender" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%-5p %c.%M(%C{1}.java:%L) %m%n" /> + <!-- <param name="ConversionPattern" value="%-5p %m%n" />--> + </layout> + </appender> + <category name="it"> + <priority value="debug" /> + </category> + <category name="org"> + <priority value="warn" /> + </category> + <category name="com"> + <priority value="warn" /> + </category> + <category name="net"> + <priority value="warn" /> + </category> + <category name="org.hibernate"> + <priority value="warn" /> + </category> + <category name="it.openutils.test.ApplicationContextHolder"> + <priority value="info" /> + </category> + <category name="it.openutils.test.BaseDAOTestCase"> + <priority value="INFO" /> + </category> + <category name="it.openutils"> + <priority value="INFO" /> + </category> + <category name="it.openutils.test"> + <priority value="INFO" /> + </category> + <category name="it.openutils.dbupdate.DbSetupManagerImpl"> + <priority value="INFO" /> + </category> + <category name="it.openutils.hibernate.spring.rmibernate"> + <priority value="DEBUG" /> + </category> + <category name="org.acegisecurity"> + <priority value="DEBUG" /> + </category> + <root> + <priority value="debug" /> + <appender-ref ref="test-appender" /> + </root> +</log4j:configuration> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-client-managers.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-client-managers.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-client-managers.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,21 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + + <bean id="hibernateLazyServiceRMI" class="it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean"> + <property name="serviceUrl" value="rmi://localhost:1099/HibernateLazyService" /> + <property name="serviceInterface" value="it.openutils.spring.rmibernate.shared.managers.HibernateLazyService" /> + <property name="lookupStubOnStartup" value="false" /> + <property name="refreshStubOnConnectFailure" value="true" /> + <property name="cacheStub" value="true" /> + </bean> + <bean id="dummyManagerRMI" class="it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean" lazy-init="true"> + <property name="serviceUrl" value="rmi://localhost:1099/dummyManagerRmi" /> + <property name="serviceInterface" value="it.openutils.spring.rmibernate.testapp.server.DummyManager" /> + <property name="cacheStub" value="true" /> + <property name="lookupStubOnStartup" value="false" /> + <property name="refreshStubOnConnectFailure" value="true" /> + <property name="hibernateLazyService" ref="hibernateLazyServiceRMI" /> + </bean> +</beans> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-dao.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-dao.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-dao.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,12 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + <bean id="dummyDAO" parent="txProxyTemplate"> + <property name="target"> + <bean class="it.openutils.spring.rmibernate.testapp.server.DummyDaoImpl"> + <property name="sessionFactory" ref="sessionFactory" /> + </bean> + </property> + </bean> +</beans> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-database.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-database.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-database.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,24 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> + <property name="location"> + <value>classpath:database.properties</value> + </property> + </bean> + <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> + <property name="driverClassName"> + <value>${hibernate.connection.driver}</value> + </property> + <property name="url"> + <value>${hibernate.connection.url}</value> + </property> + <property name="username"> + <value>${hibernate.connection.username}</value> + </property> + <property name="password"> + <value>${hibernate.connection.password}</value> + </property> + </bean> +</beans> Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-hibernate.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-hibernate.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-hibernate.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,48 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + + <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> + <property name="dataSource"> + <ref bean="dataSource" /> + </property> + <property name="configLocation"> + <value>classpath:hibernate.cfg.xml</value> + </property> + <property name="configurationClass"> + <value>org.hibernate.cfg.AnnotationConfiguration</value> + </property> + <property name="hibernateProperties"> + <props> + <prop key="hibernate.dialect">${hibernate.dialect}</prop> + <prop key="hibernate.generate_statistics">false</prop> + <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop> + <prop key="hibernate.show_sql">false</prop> + <prop key="hibernate.use_sql_comments">true</prop> + <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> + </props> + </property> + </bean> + <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> + <property name="sessionFactory"> + <ref local="sessionFactory" /> + </property> + </bean> + <bean id="txProxyTemplate" abstract="true" + class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> + <property name="transactionManager"> + <ref bean="transactionManager" /> + </property> + <property name="transactionAttributes"> + <props> + <prop key="save*">PROPAGATION_REQUIRED</prop> + <prop key="delete*">PROPAGATION_REQUIRED</prop> + <prop key="update*">PROPAGATION_REQUIRED</prop> + <prop key="clean*">PROPAGATION_REQUIRED</prop> + <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> + </props> + </property> + <property name="exposeProxy" value="true" /> + </bean> +</beans> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-managers.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-managers.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-managers.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,27 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + <bean id="hibernateLazyService" parent="txProxyTemplate"> + <property name="target"> + <bean class="it.openutils.spring.rmibernate.server.managers.HibernateLazyServiceImpl"> + <property name="sessionFactory" ref="sessionFactory"></property> + </bean> + </property> + </bean> + <bean id="dummyObjectManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> + <property name="transactionManager"> + <ref bean="transactionManager" /> + </property> + <property name="transactionAttributes"> + <props> + <prop key="*">PROPAGATION_REQUIRED</prop> + </props> + </property> + <property name="target"> + <bean class="it.openutils.spring.rmibernate.testapp.server.DummyManagerImpl"> + <property name="dummyDao" ref="dummyDAO" /> + </bean> + </property> + </bean> +</beans> \ No newline at end of file Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-remote-rmi.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,22 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" xmlns:aop="http://www.springframework.org/schema/aop" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> + <bean class="org.springframework.remoting.rmi.RmiServiceExporter" lazy-init="false"> + <property name="serviceName" value="HibernateLazyService" /> + <property name="service" ref="hibernateLazyService" /> + <property name="serviceInterface" value="it.openutils.spring.rmibernate.shared.managers.HibernateLazyService" /> + <property name="registryPort" value="1099" /> + <!-- + <property name="sessionFactory" ref="sessionFactory" /> + --> + </bean> + <bean name="/dummyManagerRmi" class="it.openutils.spring.rmibernate.server.exporter.HibernateRmiServiceExporter" lazy-init="false"> + <property name="service" ref="dummyObjectManager" /> + <property name="serviceName" value="dummyManagerRmi" /> + <property name="serviceInterface" value="it.openutils.spring.rmibernate.testapp.server.DummyManager" /> + <property name="registryPort" value="1099" /> + <property name="sessionFactory" ref="sessionFactory" /> + </bean> +</beans> Added: trunk/openutils-spring-rmibernate/src/test/resources/spring-tests.xml =================================================================== --- trunk/openutils-spring-rmibernate/src/test/resources/spring-tests.xml (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/resources/spring-tests.xml 2008-03-14 09:13:18 UTC (rev 738) @@ -0,0 +1,15 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + + <!-- server side --> + <import resource="classpath:spring-database.xml" /> + <import resource="classpath:spring-hibernate.xml" /> + <import resource="classpath:spring-dao.xml" /> + <import resource="classpath:spring-remote-rmi.xml" /> + <import resource="classpath:spring-managers.xml" /> + + <!-- client side --> + <import resource="classpath:spring-client-managers.xml" /> +</beans> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 737 http://openutils.svn.sourceforge.net/openutils/?rev=737&view=rev Author: fcarone Date: 2008-03-14 02:12:35 -0700 (Fri, 14 Mar 2008) Log Message: ----------- fix log message Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 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-14 09:11:04 UTC (rev 736) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-14 09:12:35 UTC (rev 737) @@ -65,7 +65,7 @@ { if (logger.isInfoEnabled()) { - logger.info("Processing of " + " remote call resulted in exception: ", ex); + logger.info("Processing of remote call resulted in exception: ", ex); } throw ex; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-14 09:11:05
|
Revision: 736 http://openutils.svn.sourceforge.net/openutils/?rev=736&view=rev Author: fcarone Date: 2008-03-14 02:11:04 -0700 (Fri, 14 Mar 2008) Log Message: ----------- application tests added Modified Paths: -------------- trunk/openutils-spring-rmibernate/pom.xml Added Paths: ----------- trunk/openutils-spring-rmibernate/src/test/java/it/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/db/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/db/HsqlDatatypeFactory.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDAO.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDaoImpl.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobject.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChild.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManager.java trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManagerImpl.java Modified: trunk/openutils-spring-rmibernate/pom.xml =================================================================== --- trunk/openutils-spring-rmibernate/pom.xml 2008-03-11 15:56:41 UTC (rev 735) +++ trunk/openutils-spring-rmibernate/pom.xml 2008-03-14 09:11:04 UTC (rev 736) @@ -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> @@ -89,12 +90,6 @@ <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> @@ -104,6 +99,91 @@ <artifactId>asm</artifactId> <version>2.2.3</version> </dependency> + <!-- test dependencies --> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-bshd5</artifactId> + <version>2.0.2</version> + <scope>test</scope> + </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> + <scope>test</scope> + </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> + <scope>test</scope> + </dependency> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + <scope>test</scope> + </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>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> + <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> </dependencies> <properties> <spring.version>2.5.1</spring.version> Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/client/SetupApplicationTest.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,86 @@ +/* + * 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.testapp.client; + +import it.openutils.spring.rmibernate.testapp.db.HsqlDatatypeFactory; +import it.openutils.spring.rmibernate.testapp.server.DummyDataobject; +import it.openutils.spring.rmibernate.testapp.server.DummyDataobjectChild; +import it.openutils.spring.rmibernate.testapp.server.DummyDataobjectChildContainer; +import it.openutils.spring.rmibernate.testapp.server.DummyManager; +import it.openutils.testing.DbUnitExecution; +import it.openutils.testing.junit.AbstractDbUnitJunitSpringContextTests; + +import java.util.List; + +import org.dbunit.operation.InsertOperation; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.springframework.test.context.transaction.TransactionalTestExecutionListener; +import org.springframework.transaction.annotation.Transactional; + + +/** + * @author fcarone + * @version $Id: $ + */ +@ContextConfiguration(locations = {"/spring-tests.xml" }) +@DbUnitExecution(datasets = {"/HibernateLazyTest-load.xml" }, dataSource = "dataSource", // + dataTypeFactory = HsqlDatatypeFactory.class, + insertOperation = InsertOperation.class) +@TestExecutionListeners({TransactionalTestExecutionListener.class }) +@Transactional +@TransactionConfiguration(transactionManager = "transactionManager") +public class SetupApplicationTest extends AbstractDbUnitJunitSpringContextTests +{ + + private DummyManager dummyManager; + + @Before + public void setupTest() + { + this.dummyManager = (DummyManager) applicationContext.getBean("dummyManagerRMI"); + } + + @Test + public void loadTest() + { + List<DummyDataobject> objects = dummyManager.findAll(); + Assert.assertEquals(3, objects.size()); + DummyDataobject firstObj = objects.get(0); + + List<DummyDataobjectChildContainer> children = firstObj.getDummyChildrenContainer(); + for (DummyDataobjectChildContainer container : children) + { + DummyDataobjectChild child = container.getChild(); + child.getId(); + } + } + + /** + * Sets the dummyManager. + * @param dummyManager the dummyManager to set + */ + public void setDummyManager(DummyManager dummyManager) + { + this.dummyManager = dummyManager; + } + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/db/HsqlDatatypeFactory.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/db/HsqlDatatypeFactory.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/db/HsqlDatatypeFactory.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,33 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.testapp.db; + +import java.sql.Types; + +import org.dbunit.dataset.datatype.DataType; +import org.dbunit.dataset.datatype.DataTypeException; +import org.dbunit.dataset.datatype.DefaultDataTypeFactory; + + +/** + * @author fcarone + * @version $Id: HsqlDatatypeFactory.java 672 2008-02-20 17:14:54Z fcarone $ + */ +public class HsqlDatatypeFactory extends DefaultDataTypeFactory +{ + + /** + * {@inheritDoc} + * Needed to fix Boolean type recognition for HSQLDB + */ + @Override + public DataType createDataType(int sqlType, String sqlTypeName) throws DataTypeException + { + if (sqlType == Types.BOOLEAN) + { + return DataType.BOOLEAN; + } + return super.createDataType(sqlType, sqlTypeName); + } +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDAO.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDAO.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDAO.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,16 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.testapp.server; + +import it.openutils.dao.hibernate.HibernateDAO; + + +/** + * @author fcarone + * @version $Id: DummyDAO.java 672 2008-02-20 17:14:54Z fcarone $ + */ +public interface DummyDAO extends HibernateDAO<DummyDataobject, Long> +{ + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDaoImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDaoImpl.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDaoImpl.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,24 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.testapp.server; + +import it.openutils.dao.hibernate.HibernateDAOImpl; + + +/** + * @author fcarone + * @version $Id: DummyDaoImpl.java 672 2008-02-20 17:14:54Z fcarone $ + */ +public class DummyDaoImpl extends HibernateDAOImpl<DummyDataobject, Long> implements DummyDAO +{ + + /** + * {@inheritDoc} + */ + @Override + protected Class<DummyDataobject> getReferenceClass() + { + return DummyDataobject.class; + } +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobject.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobject.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobject.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,149 @@ +/* + * 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.testapp.server; + +import java.io.Serializable; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + + +/** + * @author fcarone + * @version $Id: $ + */ + +@Entity +@Table(name = "DUMMYDATAOBJECT") +public class DummyDataobject implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -6314190820929190801L; + + @Id + @Column(name = "ID") + private Long id; + + @Column(name = "SOMETEXT", length = 64) + private String someText; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "DD_CHILD", referencedColumnName = "ID", nullable = true) + private DummyDataobjectChild dummyChild; + + @OneToMany(cascade = {javax.persistence.CascadeType.ALL }, fetch = FetchType.LAZY) + @JoinColumn(name = "ID_PARENT", nullable = false) + @Fetch(FetchMode.SUBSELECT) + @org.hibernate.annotations.Cascade(value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN) + private List<DummyDataobjectChildContainer> dummyChildrenContainer; + + + /** + * 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; + } + + + /** + * Returns the someText. + * @return the someText + */ + public String getSomeText() + { + return someText; + } + + + /** + * Sets the someText. + * @param someText the someText to set + */ + public void setSomeText(String someText) + { + this.someText = someText; + } + + + /** + * Returns the dummyChild. + * @return the dummyChild + */ + public DummyDataobjectChild getDummyChild() + { + return dummyChild; + } + + + /** + * Sets the dummyChild. + * @param dummyChild the dummyChild to set + */ + public void setDummyChild(DummyDataobjectChild dummyChild) + { + this.dummyChild = dummyChild; + } + + + /** + * Returns the dummyChildrenContainer. + * @return the dummyChildrenContainer + */ + public List<DummyDataobjectChildContainer> getDummyChildrenContainer() + { + return dummyChildrenContainer; + } + + + /** + * Sets the dummyChildrenContainer. + * @param dummyChildrenContainer the dummyChildrenContainer to set + */ + public void setDummyChildrenContainer(List<DummyDataobjectChildContainer> dummyChildrenContainer) + { + this.dummyChildrenContainer = dummyChildrenContainer; + } + + + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChild.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChild.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChild.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,89 @@ +/* + * 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.testapp.server; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + + +/** + * @author fcarone + * @version $Id: $ + */ +@Entity +@Table(name = "DUMMYDATAOBJECTCHILD") +public class DummyDataobjectChild implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 2414567256228343076L; + + @Id + @Column(name = "ID") + private Long id; + + @Column(name = "SOMETEXT", length = 64) + private String someText; + + + /** + * 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; + } + + + + /** + * Returns the someText. + * @return the someText + */ + public String getSomeText() + { + return someText; + } + + + + /** + * Sets the someText. + * @param someText the someText to set + */ + public void setSomeText(String someText) + { + this.someText = someText; + } + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyDataobjectChildContainer.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,88 @@ +/* + * 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.testapp.server; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + + +/** + * @author fcarone + * @version $Id: $ + */ +@Entity +@Table(name = "DUMMYDATAOBJECTCONTAINER") +public class DummyDataobjectChildContainer implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -8390282791384850082L; + + @Id + @Column(name = "ID") + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "DD_CHILD", referencedColumnName = "ID", nullable = true) + private DummyDataobjectChild child; + + /** + * 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; + } + + /** + * Returns the child. + * @return the child + */ + public DummyDataobjectChild getChild() + { + return child; + } + + /** + * Sets the child. + * @param child the child to set + */ + public void setChild(DummyDataobjectChild child) + { + this.child = child; + } + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManager.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManager.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManager.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,33 @@ +/* + * 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.testapp.server; + +import java.util.List; + + +/** + * @author fcarone + * @version $Id: $ + */ +public interface DummyManager +{ + + List<DummyDataobject> findAll(); + + DummyDataobject findFilteredFirst(DummyDataobject filter); + +} Added: trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManagerImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManagerImpl.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/test/java/it/openutils/spring/rmibernate/testapp/server/DummyManagerImpl.java 2008-03-14 09:11:04 UTC (rev 736) @@ -0,0 +1,61 @@ +/* + * 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.testapp.server; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + + +/** + * @author fcarone + * @version $Id: $ + */ +public class DummyManagerImpl implements DummyManager +{ + + @Autowired + private DummyDAO dummyDao; + + + /** + * {@inheritDoc} + */ + public List<DummyDataobject> findAll() + { + return dummyDao.findAll(); + } + + /** + * {@inheritDoc} + */ + public DummyDataobject findFilteredFirst(DummyDataobject filter) + { + return dummyDao.findFilteredFirst(filter); + } + + + /** + * Sets the dummyDao. + * @param dummyDao the dummyDao to set + */ + public void setDummyDao(DummyDAO dummyDao) + { + this.dummyDao = dummyDao; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-11 15:56:37
|
Revision: 735 http://openutils.svn.sourceforge.net/openutils/?rev=735&view=rev Author: fgiust Date: 2008-03-11 08:56:41 -0700 (Tue, 11 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-log4j/pom.xml Modified: trunk/openutils-log4j/pom.xml =================================================================== --- trunk/openutils-log4j/pom.xml 2008-03-11 15:56:29 UTC (rev 734) +++ trunk/openutils-log4j/pom.xml 2008-03-11 15:56:41 UTC (rev 735) @@ -9,7 +9,7 @@ </parent> <artifactId>openutils-log4j</artifactId> <packaging>jar</packaging> - <version>2.0.1</version> + <version>2.0.2-SNAPSHOT</version> <name>openutils for Log4j</name> <description>openutils log4j extensions</description> <build> @@ -54,10 +54,4 @@ <scope>test</scope> </dependency> </dependencies> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-log4j-2.0.1</url> - </scm> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-11 15:56:24
|
Revision: 734 http://openutils.svn.sourceforge.net/openutils/?rev=734&view=rev Author: fgiust Date: 2008-03-11 08:56:29 -0700 (Tue, 11 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-log4j-2.0.1 Added Paths: ----------- tags/openutils-log4j-2.0.1/ tags/openutils-log4j-2.0.1/pom.xml tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java Removed Paths: ------------- tags/openutils-log4j-2.0.1/pom.xml tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java Copied: tags/openutils-log4j-2.0.1 (from rev 731, trunk/openutils-log4j) Deleted: tags/openutils-log4j-2.0.1/pom.xml =================================================================== --- trunk/openutils-log4j/pom.xml 2008-03-11 15:24:20 UTC (rev 731) +++ tags/openutils-log4j-2.0.1/pom.xml 2008-03-11 15:56:29 UTC (rev 734) @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<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-log4j</artifactId> - <packaging>jar</packaging> - <version>2.0.1-SNAPSHOT</version> - <name>openutils for Log4j</name> - <description>openutils log4j extensions</description> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.5</source> - <target>1.5</target> - </configuration> - </plugin> - </plugins> - </build> - <dependencies> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.14</version> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.3</version> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - <version>1.4</version> - <optional>true</optional> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.4</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.0</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> Copied: tags/openutils-log4j-2.0.1/pom.xml (from rev 733, trunk/openutils-log4j/pom.xml) =================================================================== --- tags/openutils-log4j-2.0.1/pom.xml (rev 0) +++ tags/openutils-log4j-2.0.1/pom.xml 2008-03-11 15:56:29 UTC (rev 734) @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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-log4j</artifactId> + <packaging>jar</packaging> + <version>2.0.1</version> + <name>openutils for Log4j</name> + <description>openutils log4j extensions</description> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.5</source> + <target>1.5</target> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.14</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.4</version> + <optional>true</optional> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.0</version> + <scope>test</scope> + </dependency> + </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-log4j-2.0.1</url> + </scm> +</project> Deleted: tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java =================================================================== --- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:24:20 UTC (rev 731) +++ tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:56:29 UTC (rev 734) @@ -1,685 +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.log4j; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Properties; -import java.util.Timer; -import java.util.TimerTask; - -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Multipart; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.AddressException; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeBodyPart; -import javax.mail.internet.MimeMessage; -import javax.mail.internet.MimeMultipart; -import javax.mail.internet.MimeUtility; - -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.log4j.AppenderSkeleton; -import org.apache.log4j.Layout; -import org.apache.log4j.Level; -import org.apache.log4j.PatternLayout; -import org.apache.log4j.helpers.LogLog; -import org.apache.log4j.helpers.OptionConverter; -import org.apache.log4j.spi.ErrorCode; -import org.apache.log4j.spi.LoggingEvent; -import org.apache.log4j.spi.TriggeringEventEvaluator; - - -/** - * An alternative of <code>org.apache.log4j.net.SMTPAppender</code> with few differences: - * <ul> - * <li>allow customizing the mail subject using a pattern</li> - * <li>can be configured with a timeout (in seconds), it will only send messages after this timeout</li> - * <li>it will send a mail for every single message (bufferSize is not supported), but it will aggregate any identical - * log event received during the timeout. Identical events are log with same message and same stack trace</li> - * </ul> - * - * <pre> - * <appender name="mail" class="it.openutils.log4j.AlternateSMTPAppender"> - * <param name="Threshold" value="ERROR" /> - * <param name="To" value="lo...@ex..." /> - * <param name="From" value="in...@ex..." /> - * <param name="SMTPHost" value="localhost" /> - * <param name="Timeout" value="180" /> - * <param name="Subject" value="[EXAMPLE] %m" /> - * <layout class="it.openutils.log4j.FilteredPatternLayout"> - * <param name="ConversionPattern" value="%-5p %c %d{dd.MM.yyyy HH:mm:ss} -- %m%n" /> - * <param name="Header" - * value=" - * =================================== - * Myapp (production environment) - * Date: %d{dd.MM.yyyy HH:mm:ss} - * =================================== - * " /> - * </layout> - * </appender> - * </pre> - * - * @author Fabrizio Giustina - * @version $Id: $ - */ -public class AlternateSMTPAppender extends AppenderSkeleton -{ - - private String to; - - private String from; - - private Layout subjectLayout; - - private String smtpHost; - - private boolean locationInfo; - - private Timer timer = new Timer("log4j mail appender", true); - - private TimerTask timerTask; - - private int timeout; - - protected Map<LoggingEventAggregator, LoggingEventAggregator> events = new LinkedHashMap<LoggingEventAggregator, LoggingEventAggregator>() - { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * {@inheritDoc} - */ - @Override - public LoggingEventAggregator put(LoggingEventAggregator key, LoggingEventAggregator value) - { - LoggingEventAggregator lea = this.get(key); - if (lea != null) - { - lea.incrementCount(); - return lea; - } - - return super.put(key, value); - } - - }; - - protected Message msg; - - protected TriggeringEventEvaluator evaluator; - - /** - * The default constructor will instantiate the appender with a {@link TriggeringEventEvaluator} that will trigger - * on events with level ERROR or higher. - */ - public AlternateSMTPAppender() - { - this(new DefaultEvaluator()); - - // force loading this class - MimeBodyPart.class.getName(); - MimeUtility.class.getName(); - } - - /** - * Use <code>evaluator</code> passed as parameter as the {@link TriggeringEventEvaluator} for this SMTPAppender. - */ - public AlternateSMTPAppender(TriggeringEventEvaluator evaluator) - { - this.evaluator = evaluator; - } - - /** - * Activate the specified options, such as the smtp host, the recipient, from, etc. - */ - @Override - public void activateOptions() - { - Properties props = new Properties(System.getProperties()); - if (smtpHost != null) - { - props.put("mail.smtp.host", smtpHost); - } - - Session session = Session.getInstance(props, null); - // session.setDebug(true); - msg = new MimeMessage(session); - - try - { - if (from != null) - { - msg.setFrom(getAddress(from)); - } - else - { - msg.setFrom(); - } - - msg.setRecipients(Message.RecipientType.TO, parseAddress(to)); - } - catch (MessagingException e) - { - LogLog.error("Could not activate SMTPAppender options.", e); - } - } - - /** - * Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the - * event triggers an e-mail to be sent. - */ - @Override - public void append(LoggingEvent event) - { - - if (!checkEntryConditions()) - { - return; - } - - event.getThreadName(); - event.getNDC(); - if (locationInfo) - { - event.getLocationInformation(); - } - - LoggingEventAggregator leg = new LoggingEventAggregator(event); - - if (evaluator.isTriggeringEvent(event)) - { - if (timeout == 0) - { - // send immediately - synchronized (events) - { - Collection<LoggingEventAggregator> le = new ArrayList<LoggingEventAggregator>(); - le.add(leg); - sendBuffer(le); - } - return; - } - else - { - events.put(leg, leg); - - if (timerTask == null) - - { - - timerTask = new TimerTask() - { - - @Override - public void run() - { - Collection<LoggingEventAggregator> le; - synchronized (events) - { - le = new ArrayList<LoggingEventAggregator>(events.values()); - events.clear(); - timerTask = null; - } - - sendBuffer(le); - } - }; - - this.timer.schedule(this.timerTask, this.timeout * 1000L); - - } - } - } - } - - /** - * This method determines if there is a sense in attempting to append. - * <p> - * It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the - * boolean value <code>false</code> is returned. - */ - protected boolean checkEntryConditions() - { - if (this.msg == null) - { - errorHandler.error("Message object not configured."); - return false; - } - - if (this.evaluator == null) - { - errorHandler.error("No TriggeringEventEvaluator is set for appender [" + name + "]."); - return false; - } - - if (this.layout == null) - { - errorHandler.error("No layout set for appender named [" + name + "]."); - return false; - } - return true; - } - - @Override - public synchronized void close() - { - this.closed = true; - } - - InternetAddress getAddress(String addressStr) - { - try - { - return new InternetAddress(addressStr); - } - catch (AddressException e) - { - errorHandler.error("Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE); - return null; - } - } - - InternetAddress[] parseAddress(String addressStr) - { - try - { - return InternetAddress.parse(addressStr, true); - } - catch (AddressException e) - { - errorHandler.error("Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE); - return null; - } - } - - /** - * Returns value of the <b>To</b> option. - */ - public String getTo() - { - return to; - } - - /** - * The <code>SMTPAppender</code> requires a {@link org.apache.log4j.Layout layout}. - */ - @Override - public boolean requiresLayout() - { - return true; - } - - /** - * Send the contents of the cyclic buffer as an e-mail message. - */ - protected void sendBuffer(Collection<LoggingEventAggregator> eventsCollection) - { - - // Note: this code already owns the monitor for this - // appender. This frees us from needing to synchronize on 'cb'. - try - { - - for (LoggingEventAggregator lea : eventsCollection) - { - MimeBodyPart part = new MimeBodyPart(); - - StringBuffer sbuf = new StringBuffer(); - String t = layout.getHeader(); - if (t != null) - { - t = StringUtils.replace(t, "%o", Integer.toString(lea.getCount())); - t = StringUtils.replace(t, "%n", Layout.LINE_SEP); - sbuf.append(t); - sbuf.append("\n"); - } - - LoggingEvent event = lea.getLoggingEvent(); - - if (this.subjectLayout != null) - { - String subject = this.subjectLayout.format(event); - - if (subject != null) - { - subject = subject.trim(); - if (subject.indexOf("\n") > 0) - { - subject = subject.substring(0, subject.indexOf("\n")); - } - } - - this.msg.setSubject(subject); - } - - sbuf.append(layout.format(event)); - if (layout.ignoresThrowable()) - { - String[] s = event.getThrowableStrRep(); - if (s != null) - { - for (String element : s) - { - sbuf.append(element); - } - } - } - t = layout.getFooter(); - if (t != null) - { - t = StringUtils.replace(t, "%n", Layout.LINE_SEP); - sbuf.append(t); - } - part.setContent(sbuf.toString(), layout.getContentType()); - - Multipart mp = new MimeMultipart(); - mp.addBodyPart(part); - msg.setContent(mp); - - msg.setSentDate(new Date()); - Transport.send(msg); - } - - } - catch (Exception e) - { - LogLog.error("Error occured while sending e-mail notification.", e); - } - - } - - /** - * Returns value of the <b>EvaluatorClass</b> option. - */ - public String getEvaluatorClass() - { - return evaluator == null ? null : evaluator.getClass().getName(); - } - - /** - * Returns value of the <b>From</b> option. - */ - public String getFrom() - { - return from; - } - - /** - * Returns value of the <b>Subject</b> option. - */ - public String getSubject() - { - return subjectLayout.toString(); - } - - /** - * The <b>From</b> option takes a string value which should be a e-mail address of the sender. - */ - public void setFrom(String from) - { - this.from = from; - } - - /** - * The <b>Subject</b> option takes a string value which should be a the subject of the e-mail message. - */ - public void setSubject(String subjectPattern) - { - this.subjectLayout = new PatternLayout(subjectPattern); - } - - /** - * This option is ignored! - */ - @Deprecated - public void setBufferSize(int bufferSize) - { - // kept as deprecated - LogLog.warn("BufferSize property is deprecated for " + getClass().getName()); - } - - /** - * The <b>SMTPHost</b> option takes a string value which should be a the host name of the SMTP server that will - * send the e-mail message. - */ - public void setSMTPHost(String smtpHost) - { - this.smtpHost = smtpHost; - } - - /** - * Returns value of the <b>SMTPHost</b> option. - */ - public String getSMTPHost() - { - return smtpHost; - } - - /** - * The <b>To</b> option takes a string value which should be a comma separated list of e-mail address of the - * recipients. - */ - public void setTo(String to) - { - this.to = to; - } - - /** - * Returns value of the <b>BufferSize</b> option. - */ - public int getBufferSize() - { - return 0; - } - - /** - * The <b>EvaluatorClass</b> option takes a string value representing the name of the class implementing the {@link - * TriggeringEventEvaluator} interface. A corresponding object will be instantiated and assigned as the triggering - * event evaluator for the SMTPAppender. - */ - public void setEvaluatorClass(String value) - { - evaluator = (TriggeringEventEvaluator) OptionConverter.instantiateByClassName( - value, - TriggeringEventEvaluator.class, - evaluator); - } - - /** - * @param value - */ - public void setEvaluator(TriggeringEventEvaluator value) - { - evaluator = value; - } - - /** - * The <b>LocationInfo</b> option takes a boolean value. By default, it is set to false which means there will be - * no effort to extract the location information related to the event. As a result, the layout that formats the - * events as they are sent out in an e-mail is likely to place the wrong location information (if present in the - * format). - * <p> - * Location information extraction is comparatively very slow and should be avoided unless performance is not a - * concern. - */ - public void setLocationInfo(boolean locationInfo) - { - this.locationInfo = locationInfo; - } - - /** - * Returns value of the <b>LocationInfo</b> option. - */ - public boolean getLocationInfo() - { - return locationInfo; - } - - /** - * Returns the timeout. - * @return the timeout - */ - public int getTimeout() - { - return timeout; - } - - /** - * Sets the timeout. - * @param timeout the timeout to set - */ - public void setTimeout(int timeout) - { - this.timeout = timeout; - } -} - - -class LoggingEventAggregator -{ - - private LoggingEvent loggingEvent; - - private int count; - - public LoggingEventAggregator(LoggingEvent loggingEvent) - { - this.loggingEvent = loggingEvent; - this.count = 1; - } - - /** - * Returns the loggingEvent. - * @return the loggingEvent - */ - public LoggingEvent getLoggingEvent() - { - return loggingEvent; - } - - /** - * Returns the count. - * @return the count - */ - public int getCount() - { - return count; - } - - /** - * Sets the count. - * @param count the count to set - */ - public void setCount(int count) - { - this.count = count; - } - - public void incrementCount() - { - count++; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - - Object lem = loggingEvent.getMessage(); - String[] thstr = loggingEvent.getThrowableStrRep(); - result = prime * result + ((lem == null) ? 0 : lem.hashCode()); - result = prime * result + Arrays.hashCode(thstr); - return result; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) - { - if (this == obj) - { - return true; - } - if (obj == null) - { - return false; - } - if (getClass() != obj.getClass()) - { - return false; - } - final LoggingEventAggregator other = (LoggingEventAggregator) obj; - - Object lem = loggingEvent.getMessage(); - String[] thstr = loggingEvent.getThrowableStrRep(); - - Object otherLem = other.loggingEvent.getMessage(); - String[] otherThstr = other.loggingEvent.getThrowableStrRep(); - - int length = Math.min(otherThstr.length, thstr.length); - length = Math.min(10, length); - - otherThstr = (String[]) ArrayUtils.subarray(otherThstr, 0, length); - String[] thisThstr = (String[]) ArrayUtils.subarray(thstr, 0, length); - - if (lem == null) - { - if (otherLem != null) - { - return false; - } - } - - else if (!lem.equals(otherLem)) - { - return false; - } - if (!Arrays.equals(thisThstr, otherThstr)) - { - return false; - } - return true; - } - -} - - -class DefaultEvaluator implements TriggeringEventEvaluator -{ - - public boolean isTriggeringEvent(LoggingEvent event) - { - return event.getLevel().isGreaterOrEqual(Level.ERROR); - } -} \ No newline at end of file Copied: tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java (from rev 732, trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java) =================================================================== --- tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java (rev 0) +++ tags/openutils-log4j-2.0.1/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:56:29 UTC (rev 734) @@ -0,0 +1,685 @@ +/* + * 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.log4j; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Properties; +import java.util.Timer; +import java.util.TimerTask; + +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Multipart; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; +import javax.mail.internet.MimeUtility; + +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.Layout; +import org.apache.log4j.Level; +import org.apache.log4j.PatternLayout; +import org.apache.log4j.helpers.LogLog; +import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.spi.ErrorCode; +import org.apache.log4j.spi.LoggingEvent; +import org.apache.log4j.spi.TriggeringEventEvaluator; + + +/** + * An alternative of <code>org.apache.log4j.net.SMTPAppender</code> with few differences: + * <ul> + * <li>allow customizing the mail subject using a pattern</li> + * <li>can be configured with a timeout (in seconds), it will only send messages after this timeout</li> + * <li>it will send a mail for every single message (bufferSize is not supported), but it will aggregate any identical + * log event received during the timeout. Identical events are log with same message and same stack trace</li> + * </ul> + * + * <pre> + * <appender name="mail" class="it.openutils.log4j.AlternateSMTPAppender"> + * <param name="Threshold" value="ERROR" /> + * <param name="To" value="lo...@ex..." /> + * <param name="From" value="in...@ex..." /> + * <param name="SMTPHost" value="localhost" /> + * <param name="Timeout" value="180" /> + * <param name="Subject" value="[EXAMPLE] %m" /> + * <layout class="it.openutils.log4j.FilteredPatternLayout"> + * <param name="ConversionPattern" value="%-5p %c %d{dd.MM.yyyy HH:mm:ss} -- %m%n" /> + * <param name="Header" + * value=" + * =================================== + * Myapp (production environment) + * Date: %d{dd.MM.yyyy HH:mm:ss} + * =================================== + * " /> + * </layout> + * </appender> + * </pre> + * + * @author Fabrizio Giustina + * @version $Id$ + */ +public class AlternateSMTPAppender extends AppenderSkeleton +{ + + protected Map<LoggingEventAggregator, LoggingEventAggregator> events = new LinkedHashMap<LoggingEventAggregator, LoggingEventAggregator>() + { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * {@inheritDoc} + */ + @Override + public LoggingEventAggregator put(LoggingEventAggregator key, LoggingEventAggregator value) + { + LoggingEventAggregator lea = this.get(key); + if (lea != null) + { + lea.incrementCount(); + return lea; + } + + return super.put(key, value); + } + + }; + + protected Message msg; + + protected TriggeringEventEvaluator evaluator; + + private String to; + + private String from; + + private Layout subjectLayout; + + private String smtpHost; + + private boolean locationInfo; + + private Timer timer = new Timer("log4j mail appender", true); + + private TimerTask timerTask; + + private int timeout; + + /** + * The default constructor will instantiate the appender with a {@link TriggeringEventEvaluator} that will trigger + * on events with level ERROR or higher. + */ + public AlternateSMTPAppender() + { + this(new DefaultEvaluator()); + + // force loading this class + MimeBodyPart.class.getName(); + MimeUtility.class.getName(); + } + + /** + * Use <code>evaluator</code> passed as parameter as the {@link TriggeringEventEvaluator} for this SMTPAppender. + */ + public AlternateSMTPAppender(TriggeringEventEvaluator evaluator) + { + this.evaluator = evaluator; + } + + /** + * Activate the specified options, such as the smtp host, the recipient, from, etc. + */ + @Override + public void activateOptions() + { + Properties props = new Properties(System.getProperties()); + if (smtpHost != null) + { + props.put("mail.smtp.host", smtpHost); + } + + Session session = Session.getInstance(props, null); + // session.setDebug(true); + msg = new MimeMessage(session); + + try + { + if (from != null) + { + msg.setFrom(getAddress(from)); + } + else + { + msg.setFrom(); + } + + msg.setRecipients(Message.RecipientType.TO, parseAddress(to)); + } + catch (MessagingException e) + { + LogLog.error("Could not activate SMTPAppender options.", e); + } + } + + /** + * Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the + * event triggers an e-mail to be sent. + */ + @Override + public void append(LoggingEvent event) + { + + if (!checkEntryConditions()) + { + return; + } + + event.getThreadName(); + event.getNDC(); + if (locationInfo) + { + event.getLocationInformation(); + } + + LoggingEventAggregator leg = new LoggingEventAggregator(event); + + if (evaluator.isTriggeringEvent(event)) + { + if (timeout == 0) + { + // send immediately + synchronized (events) + { + Collection<LoggingEventAggregator> le = new ArrayList<LoggingEventAggregator>(); + le.add(leg); + sendBuffer(le); + } + return; + } + else + { + events.put(leg, leg); + + if (timerTask == null) + + { + + timerTask = new TimerTask() + { + + @Override + public void run() + { + Collection<LoggingEventAggregator> le; + synchronized (events) + { + le = new ArrayList<LoggingEventAggregator>(events.values()); + events.clear(); + timerTask = null; + } + + sendBuffer(le); + } + }; + + this.timer.schedule(this.timerTask, this.timeout * 1000L); + + } + } + } + } + + /** + * This method determines if there is a sense in attempting to append. + * <p> + * It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the + * boolean value <code>false</code> is returned. + */ + protected boolean checkEntryConditions() + { + if (this.msg == null) + { + errorHandler.error("Message object not configured."); + return false; + } + + if (this.evaluator == null) + { + errorHandler.error("No TriggeringEventEvaluator is set for appender [" + name + "]."); + return false; + } + + if (this.layout == null) + { + errorHandler.error("No layout set for appender named [" + name + "]."); + return false; + } + return true; + } + + @Override + public synchronized void close() + { + this.closed = true; + } + + InternetAddress getAddress(String addressStr) + { + try + { + return new InternetAddress(addressStr); + } + catch (AddressException e) + { + errorHandler.error("Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE); + return null; + } + } + + InternetAddress[] parseAddress(String addressStr) + { + try + { + return InternetAddress.parse(addressStr, true); + } + catch (AddressException e) + { + errorHandler.error("Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE); + return null; + } + } + + /** + * Returns value of the <b>To</b> option. + */ + public String getTo() + { + return to; + } + + /** + * The <code>SMTPAppender</code> requires a {@link org.apache.log4j.Layout layout}. + */ + @Override + public boolean requiresLayout() + { + return true; + } + + /** + * Send the contents of the cyclic buffer as an e-mail message. + */ + protected void sendBuffer(Collection<LoggingEventAggregator> eventsCollection) + { + + // Note: this code already owns the monitor for this + // appender. This frees us from needing to synchronize on 'cb'. + try + { + + for (LoggingEventAggregator lea : eventsCollection) + { + MimeBodyPart part = new MimeBodyPart(); + + StringBuffer sbuf = new StringBuffer(); + String t = layout.getHeader(); + if (t != null) + { + t = StringUtils.replace(t, "%o", Integer.toString(lea.getCount())); + t = StringUtils.replace(t, "%n", Layout.LINE_SEP); + sbuf.append(t); + sbuf.append("\n"); + } + + LoggingEvent event = lea.getLoggingEvent(); + + if (this.subjectLayout != null) + { + String subject = this.subjectLayout.format(event); + + if (subject != null) + { + subject = subject.trim(); + if (subject.indexOf("\n") > 0) + { + subject = subject.substring(0, subject.indexOf("\n")); + } + } + + this.msg.setSubject(subject); + } + + sbuf.append(layout.format(event)); + if (layout.ignoresThrowable()) + { + String[] s = event.getThrowableStrRep(); + if (s != null) + { + for (String element : s) + { + sbuf.append(element); + } + } + } + t = layout.getFooter(); + if (t != null) + { + t = StringUtils.replace(t, "%n", Layout.LINE_SEP); + sbuf.append(t); + } + part.setContent(sbuf.toString(), layout.getContentType()); + + Multipart mp = new MimeMultipart(); + mp.addBodyPart(part); + msg.setContent(mp); + + msg.setSentDate(new Date()); + Transport.send(msg); + } + + } + catch (Exception e) + { + LogLog.error("Error occured while sending e-mail notification.", e); + } + + } + + /** + * Returns value of the <b>EvaluatorClass</b> option. + */ + public String getEvaluatorClass() + { + return evaluator == null ? null : evaluator.getClass().getName(); + } + + /** + * Returns value of the <b>From</b> option. + */ + public String getFrom() + { + return from; + } + + /** + * Returns value of the <b>Subject</b> option. + */ + public String getSubject() + { + return subjectLayout.toString(); + } + + /** + * The <b>From</b> option takes a string value which should be a e-mail address of the sender. + */ + public void setFrom(String from) + { + this.from = from; + } + + /** + * The <b>Subject</b> option takes a string value which should be a the subject of the e-mail message. + */ + public void setSubject(String subjectPattern) + { + this.subjectLayout = new PatternLayout(subjectPattern); + } + + /** + * This option is ignored! + */ + @Deprecated + public void setBufferSize(int bufferSize) + { + // kept as deprecated + LogLog.warn("BufferSize property is deprecated for " + getClass().getName()); + } + + /** + * The <b>SMTPHost</b> option takes a string value which should be a the host name of the SMTP server that will + * send the e-mail message. + */ + public void setSMTPHost(String smtpHost) + { + this.smtpHost = smtpHost; + } + + /** + * Returns value of the <b>SMTPHost</b> option. + */ + public String getSMTPHost() + { + return smtpHost; + } + + /** + * The <b>To</b> option takes a string value which should be a comma separated list of e-mail address of the + * recipients. + */ + public void setTo(String to) + { + this.to = to; + } + + /** + * Returns value of the <b>BufferSize</b> option. + */ + public int getBufferSize() + { + return 0; + } + + /** + * The <b>EvaluatorClass</b> option takes a string value representing the name of the class implementing the {@link + * TriggeringEventEvaluator} interface. A corresponding object will be instantiated and assigned as the triggering + * event evaluator for the SMTPAppender. + */ + public void setEvaluatorClass(String value) + { + evaluator = (TriggeringEventEvaluator) OptionConverter.instantiateByClassName( + value, + TriggeringEventEvaluator.class, + evaluator); + } + + /** + * @param value + */ + public void setEvaluator(TriggeringEventEvaluator value) + { + evaluator = value; + } + + /** + * The <b>LocationInfo</b> option takes a boolean value. By default, it is set to false which means there will be + * no effort to extract the location information related to the event. As a result, the layout that formats the + * events as they are sent out in an e-mail is likely to place the wrong location information (if present in the + * format). + * <p> + * Location information extraction is comparatively very slow and should be avoided unless performance is not a + * concern. + */ + public void setLocationInfo(boolean locationInfo) + { + this.locationInfo = locationInfo; + } + + /** + * Returns value of the <b>LocationInfo</b> option. + */ + public boolean getLocationInfo() + { + return locationInfo; + } + + /** + * Returns the timeout. + * @return the timeout + */ + public int getTimeout() + { + return timeout; + } + + /** + * Sets the timeout. + * @param timeout the timeout to set + */ + public void setTimeout(int timeout) + { + this.timeout = timeout; + } +} + + +class LoggingEventAggregator +{ + + private LoggingEvent loggingEvent; + + private int count; + + public LoggingEventAggregator(LoggingEvent loggingEvent) + { + this.loggingEvent = loggingEvent; + this.count = 1; + } + + /** + * Returns the loggingEvent. + * @return the loggingEvent + */ + public LoggingEvent getLoggingEvent() + { + return loggingEvent; + } + + /** + * Returns the count. + * @return the count + */ + public int getCount() + { + return count; + } + + /** + * Sets the count. + * @param count the count to set + */ + public void setCount(int count) + { + this.count = count; + } + + public void incrementCount() + { + count++; + } + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + + Object lem = loggingEvent.getMessage(); + String[] thstr = loggingEvent.getThrowableStrRep(); + result = prime * result + ((lem == null) ? 0 : lem.hashCode()); + result = prime * result + Arrays.hashCode(thstr); + return result; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + if (obj == null) + { + return false; + } + if (getClass() != obj.getClass()) + { + return false; + } + final LoggingEventAggregator other = (LoggingEventAggregator) obj; + + Object lem = loggingEvent.getMessage(); + String[] thstr = loggingEvent.getThrowableStrRep(); + + Object otherLem = other.loggingEvent.getMessage(); + String[] otherThstr = other.loggingEvent.getThrowableStrRep(); + + int length = Math.min(otherThstr.length, thstr.length); + length = Math.min(10, length); + + otherThstr = (String[]) ArrayUtils.subarray(otherThstr, 0, length); + String[] thisThstr = (String[]) ArrayUtils.subarray(thstr, 0, length); + + if (lem == null) + { + if (otherLem != null) + { + return false; + } + } + + else if (!lem.equals(otherLem)) + { + return false; + } + if (!Arrays.equals(thisThstr, otherThstr)) + { + return false; + } + return true; + } + +} + + +class DefaultEvaluator implements TriggeringEventEvaluator +{ + + public boolean isTriggeringEvent(LoggingEvent event) + { + return event.getLevel().isGreaterOrEqual(Level.ERROR); + } +} \ 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: <fg...@us...> - 2008-03-11 15:56:10
|
Revision: 733 http://openutils.svn.sourceforge.net/openutils/?rev=733&view=rev Author: fgiust Date: 2008-03-11 08:56:15 -0700 (Tue, 11 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-log4j-2.0.1 Modified Paths: -------------- trunk/openutils-log4j/pom.xml Modified: trunk/openutils-log4j/pom.xml =================================================================== --- trunk/openutils-log4j/pom.xml 2008-03-11 15:43:54 UTC (rev 732) +++ trunk/openutils-log4j/pom.xml 2008-03-11 15:56:15 UTC (rev 733) @@ -9,7 +9,7 @@ </parent> <artifactId>openutils-log4j</artifactId> <packaging>jar</packaging> - <version>2.0.1-SNAPSHOT</version> + <version>2.0.1</version> <name>openutils for Log4j</name> <description>openutils log4j extensions</description> <build> @@ -54,4 +54,10 @@ <scope>test</scope> </dependency> </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-log4j-2.0.1</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-log4j-2.0.1</url> + </scm> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-11 15:43:50
|
Revision: 732 http://openutils.svn.sourceforge.net/openutils/?rev=732&view=rev Author: fgiust Date: 2008-03-11 08:43:54 -0700 (Tue, 11 Mar 2008) Log Message: ----------- checkstyle Modified Paths: -------------- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java Modified: trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java =================================================================== --- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:24:20 UTC (rev 731) +++ trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:43:54 UTC (rev 732) @@ -82,27 +82,11 @@ * </pre> * * @author Fabrizio Giustina - * @version $Id: $ + * @version $Id$ */ public class AlternateSMTPAppender extends AppenderSkeleton { - private String to; - - private String from; - - private Layout subjectLayout; - - private String smtpHost; - - private boolean locationInfo; - - private Timer timer = new Timer("log4j mail appender", true); - - private TimerTask timerTask; - - private int timeout; - protected Map<LoggingEventAggregator, LoggingEventAggregator> events = new LinkedHashMap<LoggingEventAggregator, LoggingEventAggregator>() { @@ -133,6 +117,22 @@ protected TriggeringEventEvaluator evaluator; + private String to; + + private String from; + + private Layout subjectLayout; + + private String smtpHost; + + private boolean locationInfo; + + private Timer timer = new Timer("log4j mail appender", true); + + private TimerTask timerTask; + + private int timeout; + /** * The default constructor will instantiate the appender with a {@link TriggeringEventEvaluator} that will trigger * on events with level ERROR or higher. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-03-11 15:24:18
|
Revision: 731 http://openutils.svn.sourceforge.net/openutils/?rev=731&view=rev Author: fgiust Date: 2008-03-11 08:24:20 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Make it.openutils.log4j.AlternateSMTPAppender working properly also when no timeout Modified Paths: -------------- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java trunk/openutils-log4j/src/site/changes/changes.xml Modified: trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java =================================================================== --- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-06 09:27:01 UTC (rev 730) +++ trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-03-11 15:24:20 UTC (rev 731) @@ -59,7 +59,7 @@ * <li>it will send a mail for every single message (bufferSize is not supported), but it will aggregate any identical * log event received during the timeout. Identical events are log with same message and same stack trace</li> * </ul> - * + * * <pre> * <appender name="mail" class="it.openutils.log4j.AlternateSMTPAppender"> * <param name="Threshold" value="ERROR" /> @@ -80,7 +80,7 @@ * </layout> * </appender> * </pre> - * + * * @author Fabrizio Giustina * @version $Id: $ */ @@ -211,39 +211,48 @@ LoggingEventAggregator leg = new LoggingEventAggregator(event); - events.put(leg, leg); - if (evaluator.isTriggeringEvent(event)) { if (timeout == 0) { // send immediately - sendBuffer(events.values()); + synchronized (events) + { + Collection<LoggingEventAggregator> le = new ArrayList<LoggingEventAggregator>(); + le.add(leg); + sendBuffer(le); + } return; } - if (timerTask == null) + else { + events.put(leg, leg); - timerTask = new TimerTask() + if (timerTask == null) + { - @Override - public void run() + timerTask = new TimerTask() { - Collection<LoggingEventAggregator> le; - synchronized (events) + + @Override + public void run() { - le = new ArrayList<LoggingEventAggregator>(events.values()); - events.clear(); - timerTask = null; + Collection<LoggingEventAggregator> le; + synchronized (events) + { + le = new ArrayList<LoggingEventAggregator>(events.values()); + events.clear(); + timerTask = null; + } + + sendBuffer(le); } + }; - sendBuffer(le); - } - }; + this.timer.schedule(this.timerTask, this.timeout * 1000L); - this.timer.schedule(this.timerTask, this.timeout * 1000L); - + } } } } Modified: trunk/openutils-log4j/src/site/changes/changes.xml =================================================================== --- trunk/openutils-log4j/src/site/changes/changes.xml 2008-03-06 09:27:01 UTC (rev 730) +++ trunk/openutils-log4j/src/site/changes/changes.xml 2008-03-11 15:24:20 UTC (rev 731) @@ -8,9 +8,13 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> + <release version="2.0.1" date="2008-03-11" description="2.0.1"> + <action type="add" dev="fgiust"> Make it.openutils.log4j.AlternateSMTPAppender working properly also when no timeout + is set (withot message aggregation).</action> + <action type="update" dev="fgiust">commons-lang dependency added</action> + </release> <release version="2.0" date="2008-02-20" description="2.0.0"> - <action type="add" dev="fgiust"> - new it.openutils.log4j.AlternateSMTPAppender that aggregates similar log messages. + <action type="add" dev="fgiust"> new it.openutils.log4j.AlternateSMTPAppender that aggregates similar log messages. </action> <action type="update" dev="fgiust">commons-lang dependency added</action> </release> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-06 09:27:28
|
Revision: 730 http://openutils.svn.sourceforge.net/openutils/?rev=730&view=rev Author: fcarone Date: 2008-03-06 01:27:01 -0800 (Thu, 06 Mar 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-03-06 09:26:46 UTC (rev 729) +++ trunk/openutils-hibernate-security/pom.xml 2008-03-06 09:27:01 UTC (rev 730) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.7</version> + <version>0.0.8-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.7</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.7</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.7</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-06 09:26:44
|
Revision: 729 http://openutils.svn.sourceforge.net/openutils/?rev=729&view=rev Author: fcarone Date: 2008-03-06 01:26:46 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-hibernate-security-0.0.7 Added Paths: ----------- tags/openutils-hibernate-security-0.0.7/ tags/openutils-hibernate-security-0.0.7/pom.xml tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.7/src/site/apt/ tags/openutils-hibernate-security-0.0.7/src/site/apt/index.apt tags/openutils-hibernate-security-0.0.7/src/site/apt/rbac-acegi.apt tags/openutils-hibernate-security-0.0.7/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.7/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.7/src/test/resources/spring-security.xml Removed Paths: ------------- tags/openutils-hibernate-security-0.0.7/pom.xml tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAfterInvocationHandler.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleBaseHandler.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/services/impl/SecurityRuleManagerImpl.java tags/openutils-hibernate-security-0.0.7/src/site/apt/index.apt tags/openutils-hibernate-security-0.0.7/src/test/java/it/openutils/hibernate/security/filter/JavaBeanFilterTest.java tags/openutils-hibernate-security-0.0.7/src/test/resources/SecurityIntegrationTest-load.xml tags/openutils-hibernate-security-0.0.7/src/test/resources/spring-security.xml Copied: tags/openutils-hibernate-security-0.0.7 (from rev 673, trunk/openutils-hibernate-security) Deleted: tags/openutils-hibernate-security-0.0.7/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-02-21 09:17:34 UTC (rev 673) +++ tags/openutils-hibernate-security-0.0.7/pom.xml 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/pom.xml (from rev 728, trunk/openutils-hibernate-security/pom.xml) =================================================================== --- tags/openutils-hibernate-security-0.0.7/pom.xml (rev 0) +++ tags/openutils-hibernate-security-0.0.7/pom.xml 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7</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.1</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.2</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.7</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.7</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.7</url> + </scm> +</project> \ No newline at end of file Deleted: tags/openutils-hibernate-security-0.0.7/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.7/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/aop/AOPSecurity.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/SecurityRuleDAO.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dao/impl/SecurityRuleDAOImpl.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/ModifierEnum.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/PermissionEnum.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/SecurityRule.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java (rev 0) +++ tags/openutils-hibernate-security-0.0.7/src/main/java/it/openutils/hibernate/security/dataobject/StatusEnum.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.7/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.7/src/main/java/it/openutils/hibernate/security/filter/JavaBeanFilter.java 2008-03-06 09:26:46 UTC (rev 729) @@ -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.F... [truncated message content] |
From: <fc...@us...> - 2008-03-06 09:26:07
|
Revision: 728 http://openutils.svn.sourceforge.net/openutils/?rev=728&view=rev Author: fcarone Date: 2008-03-06 01:25:56 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-hibernate-security-0.0.7 Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-03-06 09:19:31 UTC (rev 727) +++ trunk/openutils-hibernate-security/pom.xml 2008-03-06 09:25:56 UTC (rev 728) @@ -9,7 +9,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-hibernate-security</artifactId> <name>openutils hibernate security</name> - <version>0.0.7-SNAPSHOT</version> + <version>0.0.7</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.7</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-hibernate-security-0.0.7</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-hibernate-security-0.0.7</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-06 09:19:29
|
Revision: 727 http://openutils.svn.sourceforge.net/openutils/?rev=727&view=rev Author: fcarone Date: 2008-03-06 01:19:31 -0800 (Thu, 06 Mar 2008) Log Message: ----------- bshd5 and usermanagement dependencies updated Modified Paths: -------------- trunk/openutils-hibernate-security/pom.xml Modified: trunk/openutils-hibernate-security/pom.xml =================================================================== --- trunk/openutils-hibernate-security/pom.xml 2008-03-06 09:15:39 UTC (rev 726) +++ trunk/openutils-hibernate-security/pom.xml 2008-03-06 09:19:31 UTC (rev 727) @@ -98,7 +98,7 @@ <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-usermanagement</artifactId> - <version>2.0</version> + <version>2.0.1</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> @@ -108,7 +108,7 @@ <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-bshd5</artifactId> - <version>2.0.1</version> + <version>2.0.2</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-06 09:15:34
|
Revision: 726 http://openutils.svn.sourceforge.net/openutils/?rev=726&view=rev Author: fcarone Date: 2008-03-06 01:15:39 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-usermanagement/pom.xml Modified: trunk/openutils-usermanagement/pom.xml =================================================================== --- trunk/openutils-usermanagement/pom.xml 2008-03-06 09:15:32 UTC (rev 725) +++ trunk/openutils-usermanagement/pom.xml 2008-03-06 09:15:39 UTC (rev 726) @@ -10,7 +10,7 @@ <artifactId>openutils-usermanagement</artifactId> <packaging>jar</packaging> <name>openutils-usermanagement</name> - <version>2.0.1</version> + <version>2.0.2-SNAPSHOT</version> <description>Usermanagement classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -170,10 +170,4 @@ <scope>test</scope> </dependency> </dependencies> - - <scm> - <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-usermanagement-2.0.1</connection> - <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-usermanagement-2.0.1</developerConnection> - <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-usermanagement-2.0.1</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-06 09:15:26
|
Revision: 725 http://openutils.svn.sourceforge.net/openutils/?rev=725&view=rev Author: fcarone Date: 2008-03-06 01:15:32 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-usermanagement-2.0.1 Added Paths: ----------- tags/openutils-usermanagement-2.0.1/ tags/openutils-usermanagement-2.0.1/pom.xml Removed Paths: ------------- tags/openutils-usermanagement-2.0.1/pom.xml Copied: tags/openutils-usermanagement-2.0.1 (from rev 719, trunk/openutils-usermanagement) Deleted: tags/openutils-usermanagement-2.0.1/pom.xml =================================================================== --- trunk/openutils-usermanagement/pom.xml 2008-03-05 17:17:33 UTC (rev 719) +++ tags/openutils-usermanagement-2.0.1/pom.xml 2008-03-06 09:15:32 UTC (rev 725) @@ -1,173 +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> - <groupId>net.sourceforge.openutils</groupId> - <artifactId>openutils-usermanagement</artifactId> - <packaging>jar</packaging> - <name>openutils-usermanagement</name> - <version>2.0.1-SNAPSHOT</version> - <description>Usermanagement classes</description> - <properties> - <spring.version>2.5.1</spring.version> - </properties> - <dependencies> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>org.testng</groupId> - <artifactId>testng</artifactId> - </exclusion> - </exclusions> - </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>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-beans</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-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>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </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.3</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.3</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>jcl104-over-slf4j</artifactId> - <version>1.4.3</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> - <groupId>org.springframework</groupId> - <artifactId>spring-remoting</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-jdbc</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-support</artifactId> - </exclusion> - <exclusion> - <groupId>logkit</groupId> - <artifactId>logkit</artifactId> - </exclusion> - <exclusion> - <groupId>avalon-framework</groupId> - <artifactId>avalon-framework</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.derby</groupId> - <artifactId>derby</artifactId> - <version>10.2.2.0</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-usermanagement-2.0.1/pom.xml (from rev 724, trunk/openutils-usermanagement/pom.xml) =================================================================== --- tags/openutils-usermanagement-2.0.1/pom.xml (rev 0) +++ tags/openutils-usermanagement-2.0.1/pom.xml 2008-03-06 09:15:32 UTC (rev 725) @@ -0,0 +1,179 @@ +<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> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-usermanagement</artifactId> + <packaging>jar</packaging> + <name>openutils-usermanagement</name> + <version>2.0.1</version> + <description>Usermanagement classes</description> + <properties> + <spring.version>2.5.1</spring.version> + </properties> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${spring.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + </exclusion> + </exclusions> + </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.2</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-testing-junit</artifactId> + <version>2.0.2</version> + <scope>test</scope> + </dependency> + <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-beans</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-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>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </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.3</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.3</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl104-over-slf4j</artifactId> + <version>1.4.3</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> + <groupId>org.springframework</groupId> + <artifactId>spring-remoting</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-support</artifactId> + </exclusion> + <exclusion> + <groupId>logkit</groupId> + <artifactId>logkit</artifactId> + </exclusion> + <exclusion> + <groupId>avalon-framework</groupId> + <artifactId>avalon-framework</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.2.2.0</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-usermanagement-2.0.1</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-usermanagement-2.0.1</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-usermanagement-2.0.1</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-06 09:15:09
|
Revision: 724 http://openutils.svn.sourceforge.net/openutils/?rev=724&view=rev Author: fcarone Date: 2008-03-06 01:15:11 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare release openutils-usermanagement-2.0.1 Modified Paths: -------------- trunk/openutils-usermanagement/pom.xml Modified: trunk/openutils-usermanagement/pom.xml =================================================================== --- trunk/openutils-usermanagement/pom.xml 2008-03-06 09:13:52 UTC (rev 723) +++ trunk/openutils-usermanagement/pom.xml 2008-03-06 09:15:11 UTC (rev 724) @@ -10,7 +10,7 @@ <artifactId>openutils-usermanagement</artifactId> <packaging>jar</packaging> <name>openutils-usermanagement</name> - <version>2.0.1-SNAPSHOT</version> + <version>2.0.1</version> <description>Usermanagement classes</description> <properties> <spring.version>2.5.1</spring.version> @@ -170,4 +170,10 @@ <scope>test</scope> </dependency> </dependencies> + + <scm> + <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-usermanagement-2.0.1</connection> + <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-usermanagement-2.0.1</developerConnection> + <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-usermanagement-2.0.1</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-06 09:13:46
|
Revision: 723 http://openutils.svn.sourceforge.net/openutils/?rev=723&view=rev Author: fcarone Date: 2008-03-06 01:13:52 -0800 (Thu, 06 Mar 2008) Log Message: ----------- bshd5 dependency updated Modified Paths: -------------- trunk/openutils-usermanagement/pom.xml Modified: trunk/openutils-usermanagement/pom.xml =================================================================== --- trunk/openutils-usermanagement/pom.xml 2008-03-06 09:10:35 UTC (rev 722) +++ trunk/openutils-usermanagement/pom.xml 2008-03-06 09:13:52 UTC (rev 723) @@ -39,7 +39,7 @@ <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-bshd5</artifactId> - <version>2.0.1</version> + <version>2.0.2</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-06 09:10:29
|
Revision: 722 http://openutils.svn.sourceforge.net/openutils/?rev=722&view=rev Author: fcarone Date: 2008-03-06 01:10:35 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/openutils-bshd5/pom.xml Modified: trunk/openutils-bshd5/pom.xml =================================================================== --- trunk/openutils-bshd5/pom.xml 2008-03-06 09:10:21 UTC (rev 721) +++ trunk/openutils-bshd5/pom.xml 2008-03-06 09:10:35 UTC (rev 722) @@ -8,7 +8,7 @@ </parent> <artifactId>openutils-bshd5</artifactId> <name>openutils base Spring-Hibernate DAO for java 5.0</name> - <version>2.0.2</version> + <version>2.0.3-SNAPSHOT</version> <description>openutils base Spring-Hibernate DAO for java 5.0</description> <dependencies> <dependency> @@ -105,10 +105,4 @@ <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: <fc...@us...> - 2008-03-06 09:10:23
|
Revision: 721 http://openutils.svn.sourceforge.net/openutils/?rev=721&view=rev Author: fcarone Date: 2008-03-06 01:10:21 -0800 (Thu, 06 Mar 2008) Log Message: ----------- [maven-release-plugin] copy for tag openutils-bshd5-2.0.2 Added Paths: ----------- tags/openutils-bshd5-2.0.2/ tags/openutils-bshd5-2.0.2/pom.xml Removed Paths: ------------- tags/openutils-bshd5-2.0.2/pom.xml Copied: tags/openutils-bshd5-2.0.2 (from rev 719, trunk/openutils-bshd5) Deleted: tags/openutils-bshd5-2.0.2/pom.xml =================================================================== --- trunk/openutils-bshd5/pom.xml 2008-03-05 17:17:33 UTC (rev 719) +++ tags/openutils-bshd5-2.0.2/pom.xml 2008-03-06 09:10:21 UTC (rev 721) @@ -1,108 +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-bshd5</artifactId> - <name>openutils base Spring-Hibernate DAO for java 5.0</name> - <version>2.0.2-SNAPSHOT</version> - <description>openutils base Spring-Hibernate DAO for java 5.0</description> - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.4.3</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>jcl104-over-slf4j</artifactId> - <version>1.4.3</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-jdbc</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-beans</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> - </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.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>cglib</groupId> - <artifactId>cglib-nodep</artifactId> - <version>2.1_3</version> - </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> - </dependencies> - <properties> - <spring.version>2.5.1</spring.version> - </properties> -</project> \ No newline at end of file Copied: tags/openutils-bshd5-2.0.2/pom.xml (from rev 720, trunk/openutils-bshd5/pom.xml) =================================================================== --- tags/openutils-bshd5-2.0.2/pom.xml (rev 0) +++ tags/openutils-bshd5-2.0.2/pom.xml 2008-03-06 09:10:21 UTC (rev 721) @@ -0,0 +1,114 @@ +<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-bshd5</artifactId> + <name>openutils base Spring-Hibernate DAO for java 5.0</name> + <version>2.0.2</version> + <description>openutils base Spring-Hibernate DAO for java 5.0</description> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.4.3</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl104-over-slf4j</artifactId> + <version>1.4.3</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</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-beans</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> + </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.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>cglib</groupId> + <artifactId>cglib-nodep</artifactId> + <version>2.1_3</version> + </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> + </dependencies> + <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. |