From 392e84548e68fac6da9168d19889033cbf25b9fe Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 7 Aug 2014 10:55:59 +0200 Subject: [PATCH] no-jira: implement a workaround to the NPE at startup in ACMethodManager, AC package use more autowired, upgrade spring the last 3.x version, hibernate to last version, mysql and postgresql jdbc connector --- pom.xml | 8 ++--- .../accesscontrol/_spring/acContext.xml | 25 +------------ .../manager/ACFrontendManager.java | 20 ++++++----- .../manager/ACMethodManagerImpl.java | 36 ++++++++----------- .../manager/ACOfferManagerImpl.java | 19 +++------- .../manager/ACOrderManagerImpl.java | 19 +++------- .../manager/ACReservationDAO.java | 2 +- .../manager/ACTransactionManagerImpl.java | 19 +++------- 8 files changed, 47 insertions(+), 101 deletions(-) diff --git a/pom.xml b/pom.xml index 60fed0e3bd7..2c08dbb493a 100644 --- a/pom.xml +++ b/pom.xml @@ -64,12 +64,12 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <targetJdk>1.7</targetJdk> - <org.springframework.version>3.2.8.RELEASE</org.springframework.version> - <org.hibernate.version>4.3.5.Final</org.hibernate.version> + <org.springframework.version>3.2.10.RELEASE</org.springframework.version> + <org.hibernate.version>4.3.6.Final</org.hibernate.version> <com.sun.jersey.version>1.17.1</com.sun.jersey.version> <jackson.version>1.9.2</jackson.version> - <org.mysql.version>5.1.30</org.mysql.version> - <org.postgresql.version>9.3-1101-jdbc41</org.postgresql.version> + <org.mysql.version>5.1.31</org.mysql.version> + <org.postgresql.version>9.3-1102-jdbc41</org.postgresql.version> <org.infinispan.version>6.0.2.Final</org.infinispan.version> <lucene.version>4.8.0</lucene.version> diff --git a/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml b/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml index c1e50aab9dc..1f14696ffe7 100644 --- a/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml +++ b/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml @@ -116,30 +116,8 @@ <property name="jobClass" value="org.olat.resource.accesscontrol.manager.ReservationsJob" /> </bean> - <bean id="acOfferManager" class="org.olat.resource.accesscontrol.manager.ACOfferManagerImpl"> - <property name="dbInstance" ref="database"/> - </bean> - - <bean id="acMethodManager" class="org.olat.resource.accesscontrol.manager.ACMethodManagerImpl" - depends-on="acModule"> - <constructor-arg index="0" ref="coordinatorManager" /> - <constructor-arg index="1" ref="acModule" /> - <property name="dbInstance" ref="database"/> - <property name="businessGroupService" ref="businessGroupService"/> - </bean> - - <bean id="acOrderManager" class="org.olat.resource.accesscontrol.manager.ACOrderManagerImpl"> - <property name="dbInstance" ref="database"/> - </bean> - - <bean id="acTransactionManager" class="org.olat.resource.accesscontrol.manager.ACTransactionManagerImpl"> - <property name="dbInstance" ref="database"/> - </bean> - <bean id="freeAccessHandler" class="org.olat.resource.accesscontrol.provider.free.FreeAccessHandler"/> <bean id="tokenAccessHandler" class="org.olat.resource.accesscontrol.provider.token.TokenAccessHandler"/> - - <!-- Orders admin panel --> <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> @@ -160,5 +138,4 @@ </property> <property name="order" value="7600" /> </bean> - -</beans> +</beans> \ No newline at end of file diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java index ccdb93ffa9d..6fe63d16d78 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java @@ -36,7 +36,8 @@ import org.olat.basesecurity.GroupRoles; import org.olat.core.commons.persistence.DB; import org.olat.core.id.Identity; import org.olat.core.id.Roles; -import org.olat.core.manager.BasicManager; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.group.manager.BusinessGroupDAO; @@ -79,7 +80,9 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service("acService") -public class ACFrontendManager extends BasicManager implements ACService { +public class ACFrontendManager implements ACService { + + private static final OLog log = Tracing.createLoggerFor(ACFrontendManager.class); @Autowired private DB dbInstance; @@ -109,7 +112,6 @@ public class ACFrontendManager extends BasicManager implements ACService { private RepositoryEntryRelationDAO repositoryEntryRelationDao; @Autowired private BusinessGroupService businessGroupService; - /** * The rule to access the repository entry:<br/> @@ -320,13 +322,13 @@ public class ACFrontendManager extends BasicManager implements ACService { @Override public AccessResult accessResource(Identity identity, OfferAccess link, Object argument) { if(link == null || link.getOffer() == null || link.getMethod() == null) { - logAudit("Access refused (no offer) to: " + link + " for " + identity); + log.audit("Access refused (no offer) to: " + link + " for " + identity); return new AccessResult(false); } AccessMethodHandler handler = accessModule.getAccessMethodHandler(link.getMethod().getType()); if(handler == null) { - logAudit("Access refused (no handler method) to: " + link + " for " + identity); + log.audit("Access refused (no handler method) to: " + link + " for " + identity); return new AccessResult(false); } @@ -335,13 +337,13 @@ public class ACFrontendManager extends BasicManager implements ACService { Order order = orderManager.saveOneClick(identity, link); AccessTransaction transaction = transactionManager.createTransaction(order, order.getParts().get(0), link.getMethod()); transactionManager.save(transaction); - logAudit("Access granted to: " + link + " for " + identity); + log.audit("Access granted to: " + link + " for " + identity); return new AccessResult(true); } else { - logAudit("Access error to: " + link + " for " + identity); + log.audit("Access error to: " + link + " for " + identity); } } else { - logAudit("Access refused to: " + link + " for " + identity); + log.audit("Access refused to: " + link + " for " + identity); } return new AccessResult(false); } @@ -424,7 +426,7 @@ public class ACFrontendManager extends BasicManager implements ACService { Date oneHourTimeout = cal.getTime(); List<ResourceReservation> oldReservations = reservationDao.loadExpiredReservation(oneHourTimeout); for(ResourceReservation reservation:oldReservations) { - logAudit("Remove reservation:" + reservation); + log.audit("Remove reservation:" + reservation); reservationDao.deleteReservation(reservation); } } diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java index 27b08107e9c..7f3574de4b2 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java @@ -38,7 +38,8 @@ import org.olat.core.commons.persistence.DB; import org.olat.core.gui.control.Event; import org.olat.core.id.Identity; import org.olat.core.id.Roles; -import org.olat.core.manager.BasicManager; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; import org.olat.core.util.StringHelper; import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.event.FrameworkStartedEvent; @@ -64,6 +65,8 @@ import org.olat.resource.accesscontrol.model.Price; import org.olat.resource.accesscontrol.model.PriceMethodBundle; import org.olat.resource.accesscontrol.model.TokenAccessMethod; import org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * @@ -76,33 +79,24 @@ import org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod; * Initial Date: 18 avr. 2011 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class ACMethodManagerImpl extends BasicManager implements ACMethodManager, GenericEventListener { +@Service +public class ACMethodManagerImpl implements ACMethodManager, GenericEventListener { + + private static final OLog log = Tracing.createLoggerFor(ACMethodManagerImpl.class); + @Autowired private DB dbInstance; - private final AccessControlModule acModule; + @Autowired private BusinessGroupService businessGroupService; + + private final AccessControlModule acModule; + @Autowired public ACMethodManagerImpl(CoordinatorManager coordinatorManager, AccessControlModule acModule) { this.acModule = acModule; coordinatorManager.getCoordinator().getEventBus().registerFor(this, null, FrameworkStartupEventChannel.getStartupEventChannel()); } - /** - * [used by Spring] - * @param dbInstance - */ - public void setDbInstance(DB dbInstance) { - this.dbInstance = dbInstance; - } - - /** - * [used by Spring] - * @param businessGroupService - */ - public void setBusinessGroupService(BusinessGroupService businessGroupService) { - this.businessGroupService = businessGroupService; - } - @Override public void event(Event event) { if (event instanceof FrameworkStartedEvent && ((FrameworkStartedEvent) event).isEventOnThisNode()) { @@ -125,9 +119,9 @@ public class ACMethodManagerImpl extends BasicManager implements ACMethodManager try { dbInstance.saveObject(type.newInstance()); } catch (InstantiationException e) { - logError("Failed to instantiate an access method", e); + log.error("Failed to instantiate an access method", e); } catch (IllegalAccessException e) { - logError("Failed to instantiate an access method", e); + log.error("Failed to instantiate an access method", e); } } else { for(AccessMethod method:methods) { diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java index 3554e016510..59b25e0e712 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java @@ -32,10 +32,11 @@ import javax.persistence.TemporalType; import javax.persistence.TypedQuery; import org.olat.core.commons.persistence.DB; -import org.olat.core.manager.BasicManager; import org.olat.resource.OLATResource; import org.olat.resource.accesscontrol.model.Offer; import org.olat.resource.accesscontrol.model.OfferImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * @@ -45,21 +46,11 @@ import org.olat.resource.accesscontrol.model.OfferImpl; * Initial Date: 14 avr. 2011 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class ACOfferManagerImpl extends BasicManager implements ACOfferManager { +@Service +public class ACOfferManagerImpl implements ACOfferManager { + @Autowired private DB dbInstance; - - private ACOfferManagerImpl() { - // - } - - /** - * [used by Spring] - * @param dbInstance - */ - public void setDbInstance(DB dbInstance) { - this.dbInstance = dbInstance; - } @Override public List<Offer> findOfferByResource(OLATResource resource, boolean valid, Date atDate) { diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java index d0458910af3..d51d46dd125 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java @@ -30,7 +30,6 @@ import javax.persistence.TypedQuery; import org.olat.core.commons.persistence.DB; import org.olat.core.id.Identity; -import org.olat.core.manager.BasicManager; import org.olat.resource.OLATResource; import org.olat.resource.accesscontrol.model.Offer; import org.olat.resource.accesscontrol.model.OfferAccess; @@ -41,6 +40,8 @@ import org.olat.resource.accesscontrol.model.OrderLineImpl; import org.olat.resource.accesscontrol.model.OrderPart; import org.olat.resource.accesscontrol.model.OrderPartImpl; import org.olat.resource.accesscontrol.model.OrderStatus; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * @@ -52,22 +53,12 @@ import org.olat.resource.accesscontrol.model.OrderStatus; * Initial Date: 19 avr. 2011 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class ACOrderManagerImpl extends BasicManager implements ACOrderManager { +@Service +public class ACOrderManagerImpl implements ACOrderManager { + @Autowired private DB dbInstance; - private ACOrderManagerImpl() { - // - } - - /** - * [used by Spring] - * @param dbInstance - */ - public void setDbInstance(DB dbInstance) { - this.dbInstance = dbInstance; - } - @Override public OrderImpl createOrder(Identity delivery) { OrderImpl order = new OrderImpl(); diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACReservationDAO.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACReservationDAO.java index bd9f3dfac21..9c6e5627d3d 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACReservationDAO.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACReservationDAO.java @@ -38,7 +38,7 @@ import org.springframework.stereotype.Service; * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -@Service("acReservationDAO") +@Service public class ACReservationDAO { @Autowired diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java index 23772ac312a..23268b2b95f 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java @@ -24,13 +24,14 @@ import java.util.Collections; import java.util.List; import org.olat.core.commons.persistence.DB; -import org.olat.core.manager.BasicManager; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.AccessTransaction; import org.olat.resource.accesscontrol.model.AccessTransactionImpl; import org.olat.resource.accesscontrol.model.AccessTransactionStatus; import org.olat.resource.accesscontrol.model.Order; import org.olat.resource.accesscontrol.model.OrderPart; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * @@ -41,22 +42,12 @@ import org.olat.resource.accesscontrol.model.OrderPart; * Initial Date: 19 avr. 2011 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class ACTransactionManagerImpl extends BasicManager implements ACTransactionManager { +@Service +public class ACTransactionManagerImpl implements ACTransactionManager { + @Autowired private DB dbInstance; - private ACTransactionManagerImpl() { - // - } - - /** - * [used by Spring] - * @param dbInstance - */ - public void setDbInstance(DB dbInstance) { - this.dbInstance = dbInstance; - } - @Override public AccessTransaction createTransaction(Order order, OrderPart orderPart, AccessMethod method) { AccessTransactionImpl transaction = new AccessTransactionImpl(); -- GitLab