Skip to content
Snippets Groups Projects
Commit 392e8454 authored by srosse's avatar srosse
Browse files

no-jira: implement a workaround to the NPE at startup in ACMethodManager, AC...

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
parent 6cf640ce
No related branches found
No related tags found
No related merge requests found
...@@ -64,12 +64,12 @@ ...@@ -64,12 +64,12 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<targetJdk>1.7</targetJdk> <targetJdk>1.7</targetJdk>
<org.springframework.version>3.2.8.RELEASE</org.springframework.version> <org.springframework.version>3.2.10.RELEASE</org.springframework.version>
<org.hibernate.version>4.3.5.Final</org.hibernate.version> <org.hibernate.version>4.3.6.Final</org.hibernate.version>
<com.sun.jersey.version>1.17.1</com.sun.jersey.version> <com.sun.jersey.version>1.17.1</com.sun.jersey.version>
<jackson.version>1.9.2</jackson.version> <jackson.version>1.9.2</jackson.version>
<org.mysql.version>5.1.30</org.mysql.version> <org.mysql.version>5.1.31</org.mysql.version>
<org.postgresql.version>9.3-1101-jdbc41</org.postgresql.version> <org.postgresql.version>9.3-1102-jdbc41</org.postgresql.version>
<org.infinispan.version>6.0.2.Final</org.infinispan.version> <org.infinispan.version>6.0.2.Final</org.infinispan.version>
<lucene.version>4.8.0</lucene.version> <lucene.version>4.8.0</lucene.version>
......
...@@ -116,30 +116,8 @@ ...@@ -116,30 +116,8 @@
<property name="jobClass" value="org.olat.resource.accesscontrol.manager.ReservationsJob" /> <property name="jobClass" value="org.olat.resource.accesscontrol.manager.ReservationsJob" />
</bean> </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="freeAccessHandler" class="org.olat.resource.accesscontrol.provider.free.FreeAccessHandler"/>
<bean id="tokenAccessHandler" class="org.olat.resource.accesscontrol.provider.token.TokenAccessHandler"/> <bean id="tokenAccessHandler" class="org.olat.resource.accesscontrol.provider.token.TokenAccessHandler"/>
<!-- Orders admin panel --> <!-- Orders admin panel -->
<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
...@@ -160,5 +138,4 @@ ...@@ -160,5 +138,4 @@
</property> </property>
<property name="order" value="7600" /> <property name="order" value="7600" />
</bean> </bean>
</beans>
</beans> \ No newline at end of file
...@@ -36,7 +36,8 @@ import org.olat.basesecurity.GroupRoles; ...@@ -36,7 +36,8 @@ import org.olat.basesecurity.GroupRoles;
import org.olat.core.commons.persistence.DB; import org.olat.core.commons.persistence.DB;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.core.id.Roles; 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.BusinessGroup;
import org.olat.group.BusinessGroupService; import org.olat.group.BusinessGroupService;
import org.olat.group.manager.BusinessGroupDAO; import org.olat.group.manager.BusinessGroupDAO;
...@@ -79,7 +80,9 @@ import org.springframework.stereotype.Service; ...@@ -79,7 +80,9 @@ import org.springframework.stereotype.Service;
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*/ */
@Service("acService") @Service("acService")
public class ACFrontendManager extends BasicManager implements ACService { public class ACFrontendManager implements ACService {
private static final OLog log = Tracing.createLoggerFor(ACFrontendManager.class);
@Autowired @Autowired
private DB dbInstance; private DB dbInstance;
...@@ -109,7 +112,6 @@ public class ACFrontendManager extends BasicManager implements ACService { ...@@ -109,7 +112,6 @@ public class ACFrontendManager extends BasicManager implements ACService {
private RepositoryEntryRelationDAO repositoryEntryRelationDao; private RepositoryEntryRelationDAO repositoryEntryRelationDao;
@Autowired @Autowired
private BusinessGroupService businessGroupService; private BusinessGroupService businessGroupService;
/** /**
* The rule to access the repository entry:<br/> * The rule to access the repository entry:<br/>
...@@ -320,13 +322,13 @@ public class ACFrontendManager extends BasicManager implements ACService { ...@@ -320,13 +322,13 @@ public class ACFrontendManager extends BasicManager implements ACService {
@Override @Override
public AccessResult accessResource(Identity identity, OfferAccess link, Object argument) { public AccessResult accessResource(Identity identity, OfferAccess link, Object argument) {
if(link == null || link.getOffer() == null || link.getMethod() == null) { 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); return new AccessResult(false);
} }
AccessMethodHandler handler = accessModule.getAccessMethodHandler(link.getMethod().getType()); AccessMethodHandler handler = accessModule.getAccessMethodHandler(link.getMethod().getType());
if(handler == null) { 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); return new AccessResult(false);
} }
...@@ -335,13 +337,13 @@ public class ACFrontendManager extends BasicManager implements ACService { ...@@ -335,13 +337,13 @@ public class ACFrontendManager extends BasicManager implements ACService {
Order order = orderManager.saveOneClick(identity, link); Order order = orderManager.saveOneClick(identity, link);
AccessTransaction transaction = transactionManager.createTransaction(order, order.getParts().get(0), link.getMethod()); AccessTransaction transaction = transactionManager.createTransaction(order, order.getParts().get(0), link.getMethod());
transactionManager.save(transaction); transactionManager.save(transaction);
logAudit("Access granted to: " + link + " for " + identity); log.audit("Access granted to: " + link + " for " + identity);
return new AccessResult(true); return new AccessResult(true);
} else { } else {
logAudit("Access error to: " + link + " for " + identity); log.audit("Access error to: " + link + " for " + identity);
} }
} else { } else {
logAudit("Access refused to: " + link + " for " + identity); log.audit("Access refused to: " + link + " for " + identity);
} }
return new AccessResult(false); return new AccessResult(false);
} }
...@@ -424,7 +426,7 @@ public class ACFrontendManager extends BasicManager implements ACService { ...@@ -424,7 +426,7 @@ public class ACFrontendManager extends BasicManager implements ACService {
Date oneHourTimeout = cal.getTime(); Date oneHourTimeout = cal.getTime();
List<ResourceReservation> oldReservations = reservationDao.loadExpiredReservation(oneHourTimeout); List<ResourceReservation> oldReservations = reservationDao.loadExpiredReservation(oneHourTimeout);
for(ResourceReservation reservation:oldReservations) { for(ResourceReservation reservation:oldReservations) {
logAudit("Remove reservation:" + reservation); log.audit("Remove reservation:" + reservation);
reservationDao.deleteReservation(reservation); reservationDao.deleteReservation(reservation);
} }
} }
......
...@@ -38,7 +38,8 @@ import org.olat.core.commons.persistence.DB; ...@@ -38,7 +38,8 @@ import org.olat.core.commons.persistence.DB;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.core.id.Roles; 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.StringHelper;
import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.coordinate.CoordinatorManager;
import org.olat.core.util.event.FrameworkStartedEvent; import org.olat.core.util.event.FrameworkStartedEvent;
...@@ -64,6 +65,8 @@ import org.olat.resource.accesscontrol.model.Price; ...@@ -64,6 +65,8 @@ import org.olat.resource.accesscontrol.model.Price;
import org.olat.resource.accesscontrol.model.PriceMethodBundle; import org.olat.resource.accesscontrol.model.PriceMethodBundle;
import org.olat.resource.accesscontrol.model.TokenAccessMethod; import org.olat.resource.accesscontrol.model.TokenAccessMethod;
import org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod; 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; ...@@ -76,33 +79,24 @@ import org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod;
* Initial Date: 18 avr. 2011 <br> * Initial Date: 18 avr. 2011 <br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @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 DB dbInstance;
private final AccessControlModule acModule; @Autowired
private BusinessGroupService businessGroupService; private BusinessGroupService businessGroupService;
private final AccessControlModule acModule;
@Autowired
public ACMethodManagerImpl(CoordinatorManager coordinatorManager, AccessControlModule acModule) { public ACMethodManagerImpl(CoordinatorManager coordinatorManager, AccessControlModule acModule) {
this.acModule = acModule; this.acModule = acModule;
coordinatorManager.getCoordinator().getEventBus().registerFor(this, null, FrameworkStartupEventChannel.getStartupEventChannel()); 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 @Override
public void event(Event event) { public void event(Event event) {
if (event instanceof FrameworkStartedEvent && ((FrameworkStartedEvent) event).isEventOnThisNode()) { if (event instanceof FrameworkStartedEvent && ((FrameworkStartedEvent) event).isEventOnThisNode()) {
...@@ -125,9 +119,9 @@ public class ACMethodManagerImpl extends BasicManager implements ACMethodManager ...@@ -125,9 +119,9 @@ public class ACMethodManagerImpl extends BasicManager implements ACMethodManager
try { try {
dbInstance.saveObject(type.newInstance()); dbInstance.saveObject(type.newInstance());
} catch (InstantiationException e) { } catch (InstantiationException e) {
logError("Failed to instantiate an access method", e); log.error("Failed to instantiate an access method", e);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
logError("Failed to instantiate an access method", e); log.error("Failed to instantiate an access method", e);
} }
} else { } else {
for(AccessMethod method:methods) { for(AccessMethod method:methods) {
......
...@@ -32,10 +32,11 @@ import javax.persistence.TemporalType; ...@@ -32,10 +32,11 @@ import javax.persistence.TemporalType;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
import org.olat.core.commons.persistence.DB; import org.olat.core.commons.persistence.DB;
import org.olat.core.manager.BasicManager;
import org.olat.resource.OLATResource; import org.olat.resource.OLATResource;
import org.olat.resource.accesscontrol.model.Offer; import org.olat.resource.accesscontrol.model.Offer;
import org.olat.resource.accesscontrol.model.OfferImpl; 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; ...@@ -45,21 +46,11 @@ import org.olat.resource.accesscontrol.model.OfferImpl;
* Initial Date: 14 avr. 2011 <br> * Initial Date: 14 avr. 2011 <br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @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 DB dbInstance;
private ACOfferManagerImpl() {
//
}
/**
* [used by Spring]
* @param dbInstance
*/
public void setDbInstance(DB dbInstance) {
this.dbInstance = dbInstance;
}
@Override @Override
public List<Offer> findOfferByResource(OLATResource resource, boolean valid, Date atDate) { public List<Offer> findOfferByResource(OLATResource resource, boolean valid, Date atDate) {
......
...@@ -30,7 +30,6 @@ import javax.persistence.TypedQuery; ...@@ -30,7 +30,6 @@ import javax.persistence.TypedQuery;
import org.olat.core.commons.persistence.DB; import org.olat.core.commons.persistence.DB;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.core.manager.BasicManager;
import org.olat.resource.OLATResource; import org.olat.resource.OLATResource;
import org.olat.resource.accesscontrol.model.Offer; import org.olat.resource.accesscontrol.model.Offer;
import org.olat.resource.accesscontrol.model.OfferAccess; import org.olat.resource.accesscontrol.model.OfferAccess;
...@@ -41,6 +40,8 @@ import org.olat.resource.accesscontrol.model.OrderLineImpl; ...@@ -41,6 +40,8 @@ import org.olat.resource.accesscontrol.model.OrderLineImpl;
import org.olat.resource.accesscontrol.model.OrderPart; import org.olat.resource.accesscontrol.model.OrderPart;
import org.olat.resource.accesscontrol.model.OrderPartImpl; import org.olat.resource.accesscontrol.model.OrderPartImpl;
import org.olat.resource.accesscontrol.model.OrderStatus; 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; ...@@ -52,22 +53,12 @@ import org.olat.resource.accesscontrol.model.OrderStatus;
* Initial Date: 19 avr. 2011 <br> * Initial Date: 19 avr. 2011 <br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @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 DB dbInstance;
private ACOrderManagerImpl() {
//
}
/**
* [used by Spring]
* @param dbInstance
*/
public void setDbInstance(DB dbInstance) {
this.dbInstance = dbInstance;
}
@Override @Override
public OrderImpl createOrder(Identity delivery) { public OrderImpl createOrder(Identity delivery) {
OrderImpl order = new OrderImpl(); OrderImpl order = new OrderImpl();
......
...@@ -38,7 +38,7 @@ import org.springframework.stereotype.Service; ...@@ -38,7 +38,7 @@ import org.springframework.stereotype.Service;
* *
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*/ */
@Service("acReservationDAO") @Service
public class ACReservationDAO { public class ACReservationDAO {
@Autowired @Autowired
......
...@@ -24,13 +24,14 @@ import java.util.Collections; ...@@ -24,13 +24,14 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import org.olat.core.commons.persistence.DB; 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.AccessMethod;
import org.olat.resource.accesscontrol.model.AccessTransaction; import org.olat.resource.accesscontrol.model.AccessTransaction;
import org.olat.resource.accesscontrol.model.AccessTransactionImpl; import org.olat.resource.accesscontrol.model.AccessTransactionImpl;
import org.olat.resource.accesscontrol.model.AccessTransactionStatus; import org.olat.resource.accesscontrol.model.AccessTransactionStatus;
import org.olat.resource.accesscontrol.model.Order; import org.olat.resource.accesscontrol.model.Order;
import org.olat.resource.accesscontrol.model.OrderPart; 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; ...@@ -41,22 +42,12 @@ import org.olat.resource.accesscontrol.model.OrderPart;
* Initial Date: 19 avr. 2011 <br> * Initial Date: 19 avr. 2011 <br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * @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 DB dbInstance;
private ACTransactionManagerImpl() {
//
}
/**
* [used by Spring]
* @param dbInstance
*/
public void setDbInstance(DB dbInstance) {
this.dbInstance = dbInstance;
}
@Override @Override
public AccessTransaction createTransaction(Order order, OrderPart orderPart, AccessMethod method) { public AccessTransaction createTransaction(Order order, OrderPart orderPart, AccessMethod method) {
AccessTransactionImpl transaction = new AccessTransactionImpl(); AccessTransactionImpl transaction = new AccessTransactionImpl();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment