From 40ed4aa940b83920586007425de4d3459ebe4ea3 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 13 Aug 2014 09:58:41 +0200 Subject: [PATCH] OO-1161: change the dependency network in the access control package --- .../mapper/manager/MapperServiceImpl.java | 30 ++-- .../accesscontrol/AccessControlModule.java | 15 +- .../manager/ACFrontendManager.java | 8 +- ...ethodManagerImpl.java => ACMethodDAO.java} | 24 +-- .../manager/ACMethodManager.java | 122 --------------- ...COfferManagerImpl.java => ACOfferDAO.java} | 7 +- .../accesscontrol/manager/ACOfferManager.java | 86 ----------- ...COrderManagerImpl.java => ACOrderDAO.java} | 14 +- .../accesscontrol/manager/ACOrderManager.java | 139 ------------------ ...ManagerImpl.java => ACTransactionDAO.java} | 7 +- .../manager/ACTransactionManager.java | 83 ----------- .../paypal/manager/PaypalManagerImpl.java | 8 +- .../accesscontrol/ACFrontendManagerTest.java | 8 +- .../accesscontrol/ACMethodManagerTest.java | 8 +- .../accesscontrol/ACOfferManagerTest.java | 4 +- .../accesscontrol/ACOrderManagerTest.java | 12 +- .../ACTransactionManagerTest.java | 16 +- 17 files changed, 58 insertions(+), 533 deletions(-) rename src/main/java/org/olat/resource/accesscontrol/manager/{ACMethodManagerImpl.java => ACMethodDAO.java} (97%) delete mode 100644 src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManager.java rename src/main/java/org/olat/resource/accesscontrol/manager/{ACOfferManagerImpl.java => ACOfferDAO.java} (97%) delete mode 100644 src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManager.java rename src/main/java/org/olat/resource/accesscontrol/manager/{ACOrderManagerImpl.java => ACOrderDAO.java} (97%) delete mode 100644 src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManager.java rename src/main/java/org/olat/resource/accesscontrol/manager/{ACTransactionManagerImpl.java => ACTransactionDAO.java} (96%) delete mode 100644 src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManager.java diff --git a/src/main/java/org/olat/core/dispatcher/mapper/manager/MapperServiceImpl.java b/src/main/java/org/olat/core/dispatcher/mapper/manager/MapperServiceImpl.java index 4cdca6862f1..8efda587ee6 100644 --- a/src/main/java/org/olat/core/dispatcher/mapper/manager/MapperServiceImpl.java +++ b/src/main/java/org/olat/core/dispatcher/mapper/manager/MapperServiceImpl.java @@ -31,16 +31,13 @@ import org.olat.core.dispatcher.DispatcherModule; import org.olat.core.dispatcher.mapper.Mapper; import org.olat.core.dispatcher.mapper.MapperService; import org.olat.core.dispatcher.mapper.model.PersistedMapper; -import org.olat.core.id.OLATResourceable; import org.olat.core.util.Encoder; import org.olat.core.util.StringHelper; import org.olat.core.util.UserSession; import org.olat.core.util.WebappHelper; import org.olat.core.util.cache.CacheWrapper; -import org.olat.core.util.coordinate.Coordinator; import org.olat.core.util.coordinate.CoordinatorManager; -import org.olat.core.util.coordinate.SyncerExecutor; -import org.olat.core.util.resource.OresHelper; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -49,7 +46,7 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service("mapperService") -public class MapperServiceImpl implements MapperService { +public class MapperServiceImpl implements MapperService, InitializingBean { private Map<MapperKey,Mapper> mapperKeyToMapper = new ConcurrentHashMap<MapperKey,Mapper>(); private Map<Mapper,MapperKey> mapperToMapperKey = new ConcurrentHashMap<Mapper, MapperKey>(); @@ -59,21 +56,12 @@ public class MapperServiceImpl implements MapperService { @Autowired private MapperDAO mapperDao; + @Autowired + private CoordinatorManager coordinatorManager; - private CacheWrapper<String, Serializable> getMapperCache() { - if (mapperCache == null) { - OLATResourceable ores = OresHelper.createOLATResourceableType(Mapper.class); - CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(ores, new SyncerExecutor() { - @SuppressWarnings("synthetic-access") - public void execute() { - if (mapperCache == null) { - Coordinator coordinator = CoordinatorManager.getInstance().getCoordinator(); - mapperCache = coordinator.getCacher().getCache(MapperService.class.getSimpleName(), "mapper"); - } - } - }); - } - return mapperCache; + @Override + public void afterPropertiesSet() throws Exception { + mapperCache = coordinatorManager.getCoordinator().getCacher().getCache(MapperService.class.getSimpleName(), "mapper"); } @Override @@ -155,11 +143,11 @@ public class MapperServiceImpl implements MapperService { MapperKey mapperKey = new MapperKey(session, id); Mapper mapper = mapperKeyToMapper.get(mapperKey); if(mapper == null) { - mapper = (Mapper)getMapperCache().get(id); + mapper = (Mapper)mapperCache.get(id); if(mapper == null) { mapper = mapperDao.retrieveMapperById(id); if(mapper != null) { - getMapperCache().put(id, (Serializable)mapper); + mapperCache.put(id, (Serializable)mapper); } } } diff --git a/src/main/java/org/olat/resource/accesscontrol/AccessControlModule.java b/src/main/java/org/olat/resource/accesscontrol/AccessControlModule.java index d725f79e0d4..b528177653f 100644 --- a/src/main/java/org/olat/resource/accesscontrol/AccessControlModule.java +++ b/src/main/java/org/olat/resource/accesscontrol/AccessControlModule.java @@ -30,6 +30,7 @@ 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.resource.accesscontrol.manager.ACMethodDAO; import org.olat.resource.accesscontrol.method.AccessMethodHandler; import org.olat.resource.accesscontrol.model.FreeAccessMethod; import org.olat.resource.accesscontrol.model.TokenAccessMethod; @@ -80,7 +81,7 @@ public class AccessControlModule extends AbstractSpringModule implements ConfigO private String vatNumber; @Autowired - private ACService acService; + private ACMethodDAO acMethodManager; @Autowired private List<AccessMethodHandler> methodHandlers; @@ -162,8 +163,8 @@ public class AccessControlModule extends AbstractSpringModule implements ConfigO if(this.tokenEnabled != tokenEnabled) { setStringProperty(TOKEN_ENABLED, Boolean.toString(tokenEnabled), true); } - if(acService != null) { - acService.enableMethod(TokenAccessMethod.class, tokenEnabled); + if(acMethodManager != null) { + acMethodManager.enableMethod(TokenAccessMethod.class, tokenEnabled); } } @@ -175,8 +176,8 @@ public class AccessControlModule extends AbstractSpringModule implements ConfigO if(this.freeEnabled != freeEnabled) { setStringProperty(FREE_ENABLED, Boolean.toString(freeEnabled), true); } - if(acService != null) { - acService.enableMethod(FreeAccessMethod.class, freeEnabled); + if(acMethodManager != null) { + acMethodManager.enableMethod(FreeAccessMethod.class, freeEnabled); } } @@ -188,8 +189,8 @@ public class AccessControlModule extends AbstractSpringModule implements ConfigO if(this.paypalEnabled != paypalEnabled) { setStringProperty(PAYPAL_ENABLED, Boolean.toString(paypalEnabled), true); } - if(acService != null) { - acService.enableMethod(PaypalAccessMethod.class, paypalEnabled); + if(acMethodManager != null) { + acMethodManager.enableMethod(PaypalAccessMethod.class, paypalEnabled); } } 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 6fe63d16d78..d4897a5d873 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java @@ -95,15 +95,15 @@ public class ACFrontendManager implements ACService { @Autowired private AccessControlModule accessModule; @Autowired - private ACOfferManager accessManager; + private ACOfferDAO accessManager; @Autowired - private ACMethodManager methodManager; + private ACMethodDAO methodManager; @Autowired - private ACOrderManager orderManager; + private ACOrderDAO orderManager; @Autowired private ACReservationDAO reservationDao; @Autowired - private ACTransactionManager transactionManager; + private ACTransactionDAO transactionManager; @Autowired private BusinessGroupDAO businessGroupDao; @Autowired diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java similarity index 97% rename from src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java rename to src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java index 7f3574de4b2..fa0c990fd28 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java @@ -80,20 +80,20 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service -public class ACMethodManagerImpl implements ACMethodManager, GenericEventListener { +public class ACMethodDAO implements GenericEventListener { - private static final OLog log = Tracing.createLoggerFor(ACMethodManagerImpl.class); + private static final OLog log = Tracing.createLoggerFor(ACMethodDAO.class); @Autowired private DB dbInstance; @Autowired private BusinessGroupService businessGroupService; - - private final AccessControlModule acModule; + @Autowired + private AccessControlModule acModule; @Autowired - public ACMethodManagerImpl(CoordinatorManager coordinatorManager, AccessControlModule acModule) { - this.acModule = acModule; + public ACMethodDAO(CoordinatorManager coordinatorManager) { + coordinatorManager.getCoordinator().getEventBus().registerFor(this, null, FrameworkStartupEventChannel.getStartupEventChannel()); } @@ -107,7 +107,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene } } - @Override public void enableMethod(Class<? extends AccessMethod> type, boolean enable) { StringBuilder sb = new StringBuilder(); sb.append("select method from ").append(AbstractAccessMethod.class.getName()) @@ -133,7 +132,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene } } - @Override public boolean isValidMethodAvailable(OLATResource resource, Date atDate) { StringBuilder sb = new StringBuilder(); sb.append("select count(access.method) from ").append(OfferAccessImpl.class.getName()).append(" access ") @@ -157,7 +155,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return methods.intValue() > 0; } - @Override public List<AccessMethod> getAvailableMethods(Identity identity, Roles roles) { StringBuilder sb = new StringBuilder(); sb.append("select method from ").append(AbstractAccessMethod.class.getName()).append(" method") @@ -180,7 +177,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return allowedMethods; } - @Override public List<AccessMethod> getAvailableMethodsByType(Class<? extends AccessMethod> type) { StringBuilder sb = new StringBuilder(); sb.append("select method from ").append(AbstractAccessMethod.class.getName()).append(" method") @@ -192,7 +188,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return methods; } - @Override public List<OfferAccess> getOfferAccess(Offer offer, boolean valid) { StringBuilder sb = new StringBuilder(); sb.append("select access from ").append(OfferAccessImpl.class.getName()).append(" access") @@ -206,7 +201,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return methods; } - @Override public List<OfferAccess> getOfferAccess(Collection<Offer> offers, boolean valid) { if(offers == null || offers.isEmpty()) return Collections.emptyList(); @@ -223,7 +217,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return methods; } - @Override public List<OfferAccess> getOfferAccessByResource(Collection<Long> resourceKeys, boolean valid, Date atDate) { if(resourceKeys == null || resourceKeys.isEmpty()) return Collections.emptyList(); @@ -249,7 +242,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return methods; } - @Override public List<BusinessGroupAccess> getAccessMethodForBusinessGroup(boolean valid, Date atDate) { StringBuilder sb = new StringBuilder(); @@ -294,7 +286,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return groupAccess; } - @Override public List<OLATResourceAccess> getAccessMethodForResources(Collection<Long> resourceKeys, String resourceType, String excludedResourceType, boolean valid, Date atDate) { @@ -366,7 +357,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return groupAccess; } - @Override public OfferAccess createOfferAccess(Offer offer, AccessMethod method) { OfferAccessImpl access = new OfferAccessImpl(); access.setOffer(offer); @@ -375,7 +365,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene return access; } - @Override public void save(OfferAccess link) { if(link.getKey() == null) { dbInstance.saveObject(link); @@ -384,7 +373,6 @@ public class ACMethodManagerImpl implements ACMethodManager, GenericEventListene } } - @Override public void delete(OfferAccess link) { OfferAccessImpl access = (OfferAccessImpl)link; access.setValid(false); diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManager.java deleted file mode 100644 index ebb9cb2f73e..00000000000 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodManager.java +++ /dev/null @@ -1,122 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ - -package org.olat.resource.accesscontrol.manager; - -import java.util.Collection; -import java.util.Date; -import java.util.List; - -import org.olat.core.id.Identity; -import org.olat.core.id.Roles; -import org.olat.resource.OLATResource; -import org.olat.resource.accesscontrol.model.AccessMethod; -import org.olat.resource.accesscontrol.model.BusinessGroupAccess; -import org.olat.resource.accesscontrol.model.OLATResourceAccess; -import org.olat.resource.accesscontrol.model.Offer; -import org.olat.resource.accesscontrol.model.OfferAccess; - -/** - * - * Description:<br> - * Manage the access methods to the resources - * - * <P> - * Initial Date: 18 avr. 2011 <br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - */ -public interface ACMethodManager { - - /** - * Enable/disable a type of access method - * @param type - * @param enable - */ - public void enableMethod(Class<? extends AccessMethod> type, boolean enable); - - - /** - * Get the list of access methods which a user /author can use - * @param identity - * @return List of access methods - */ - public List<AccessMethod> getAvailableMethods(Identity identity, Roles roles); - - /** - * Return the list of access methods of a specific type. - * @param type - * @return List of access methods - */ - public List<AccessMethod> getAvailableMethodsByType(Class<? extends AccessMethod> type); - - /** - * Return a list of links offer to method for the specified offer. - * @param offer - * @param valid - * @return List of link offer to method - */ - public List<OfferAccess> getOfferAccess(Offer offer, boolean valid); - - /** - * Return a list of links offer to access method for the specified offers. - * @param offer - * @param valid - * @return List of link offer to access method - */ - public List<OfferAccess> getOfferAccess(Collection<Offer> offers, boolean valid); - - public List<OfferAccess> getOfferAccessByResource(Collection<Long> resourceKeys, boolean valid, Date atDate); - - - /** - * Return true if the resource has a method valid - * @param resource The resource - * @param atDate The date for the access (optional) - * @return - */ - public boolean isValidMethodAvailable(OLATResource resource, Date atDate); - - public List<BusinessGroupAccess> getAccessMethodForBusinessGroup(boolean valid, Date atDate); - - public List<OLATResourceAccess> getAccessMethodForResources(Collection<Long> resourceKeys, - String resourceType, String excludeResourceType, boolean valid, Date atDate); - - /** - * Create a link between offer and access method. The link is not persisted - * on the database with this method. - * @param offer - * @param method - * @return - */ - public OfferAccess createOfferAccess(Offer offer, AccessMethod method); - - /** - * The link is not really deleted on the database but set as invalid. - * @param link - */ - public void delete(OfferAccess link); - - /** - * Persist/update the link offer to access method. - * @param link - */ - public void save(OfferAccess link); - -} diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferDAO.java similarity index 97% rename from src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java rename to src/main/java/org/olat/resource/accesscontrol/manager/ACOfferDAO.java index 59b25e0e712..4425cf07cbf 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferDAO.java @@ -47,12 +47,11 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service -public class ACOfferManagerImpl implements ACOfferManager { +public class ACOfferDAO { @Autowired private DB dbInstance; - @Override public List<Offer> findOfferByResource(OLATResource resource, boolean valid, Date atDate) { StringBuilder sb = new StringBuilder(); sb.append("select offer from ").append(OfferImpl.class.getName()).append(" offer") @@ -75,7 +74,6 @@ public class ACOfferManagerImpl implements ACOfferManager { return offers; } - @Override public Offer loadOfferByKey(Long key) { StringBuilder sb = new StringBuilder(); sb.append("select offer from ").append(OfferImpl.class.getName()).append(" offer") @@ -117,7 +115,6 @@ public class ACOfferManagerImpl implements ACOfferManager { return resourceWithOffers; } - @Override public Offer createOffer(OLATResource resource, String resourceName) { OfferImpl offer = new OfferImpl(); offer.setResource(resource); @@ -135,7 +132,6 @@ public class ACOfferManagerImpl implements ACOfferManager { return offer; } - @Override public void deleteOffer(Offer offer) { if(offer instanceof OfferImpl) { ((OfferImpl)offer).setValid(false); @@ -143,7 +139,6 @@ public class ACOfferManagerImpl implements ACOfferManager { saveOffer(offer); } - @Override public void saveOffer(Offer offer) { if(offer instanceof OfferImpl) { ((OfferImpl)offer).setLastModified(new Date()); diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManager.java deleted file mode 100644 index eb66fc57009..00000000000 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOfferManager.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ - -package org.olat.resource.accesscontrol.manager; - -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Set; - -import org.olat.resource.OLATResource; -import org.olat.resource.accesscontrol.model.Offer; - -/** - * - * Description:<br> - * - * <P> - * Initial Date: 14 avr. 2011 <br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - */ -public interface ACOfferManager { - - /** - * Find the offers related to the specified resource - * @param resource - * @param valid Valid/invalid offer - * @param date Valid at the given date - * @return List of offers or empty list - */ - public List<Offer> findOfferByResource(OLATResource resource, boolean valid, Date date); - - /** - * Load an offer by primary key - * @param key The primary key of the offer - * @return An offer or null if not found - */ - public Offer loadOfferByKey(Long key); - - /** - * Filter the list of given resource primary keys and return only the ones - * which as a valid offer at this time. - * @param resourceKeys - * @return A set of resource primary keys - */ - public Set<Long> filterResourceWithOffer(Collection<Long> resourceKeys); - - /** - * Create an offer to access for a resource. The resource name is saved - * in the case of the deletion of the resource as fallback. - * @param resource - * @param resourceName - * @return - */ - public Offer createOffer(OLATResource resource, String resourceName); - - /** - * Set the offer as invalid, but not delete it really on the database. In - * the case of a payment, the offer msut survive for the orders. - * @param offer - */ - public void deleteOffer(Offer offer); - - /** - * Persist/update the offer on the database - * @param offer - */ - public void saveOffer(Offer offer); -} diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderDAO.java similarity index 97% rename from src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java rename to src/main/java/org/olat/resource/accesscontrol/manager/ACOrderDAO.java index d51d46dd125..98e4d04bdad 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderDAO.java @@ -54,12 +54,11 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service -public class ACOrderManagerImpl implements ACOrderManager { +public class ACOrderDAO { @Autowired private DB dbInstance; - @Override public OrderImpl createOrder(Identity delivery) { OrderImpl order = new OrderImpl(); order.setDelivery(delivery); @@ -68,7 +67,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return order; } - @Override public OrderPart addOrderPart(Order order) { OrderPartImpl orderPart = new OrderPartImpl(); dbInstance.saveObject(orderPart); @@ -76,7 +74,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return orderPart; } - @Override public OrderLine addOrderLine(OrderPart part, Offer offer) { OrderLineImpl line = new OrderLineImpl(); line.setOffer(offer); @@ -87,7 +84,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return line; } - @Override public Order save(Order order) { if(order.getKey() == null) { dbInstance.saveObject(order); @@ -97,7 +93,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return order; } - @Override public Order save(Order order, OrderStatus status) { ((OrderImpl)order).setOrderStatus(status); if(order.getKey() == null) { @@ -108,12 +103,10 @@ public class ACOrderManagerImpl implements ACOrderManager { return order; } - @Override public Order saveOneClick(Identity delivery, OfferAccess link) { return saveOneClick(delivery, link, OrderStatus.PAYED); } - @Override public Order saveOneClick(Identity delivery, OfferAccess link, OrderStatus status) { OrderImpl order = createOrder(delivery); order.setOrderStatus(status); @@ -132,7 +125,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return order; } - @Override public List<Order> findOrdersByDelivery(Identity delivery, OrderStatus... status) { StringBuilder sb = new StringBuilder(); sb.append("select order from ").append(OrderImpl.class.getName()).append(" order") @@ -156,7 +148,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return orders; } - @Override public List<Order> findOrdersByResource(OLATResource resource, OrderStatus... status) { StringBuilder sb = new StringBuilder(); sb.append("select distinct(o) from ").append(OrderImpl.class.getName()).append(" o") @@ -183,7 +174,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return orders; } - @Override public List<Order> findOrders(OLATResource resource, Identity delivery, Long orderNr, Date from, Date to, OrderStatus... status) { StringBuilder sb = new StringBuilder(); sb.append("select distinct(o) from ").append(OrderImpl.class.getName()).append(" o"); @@ -265,7 +255,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return true; } - @Override public Order loadOrderByKey(Long orderKey) { StringBuilder sb = new StringBuilder(); sb.append("select order from ").append(OrderImpl.class.getName()).append(" order") @@ -279,7 +268,6 @@ public class ACOrderManagerImpl implements ACOrderManager { return orders.get(0); } - @Override public Order loadOrderByNr(String orderNr) { Long orderKey = new Long(orderNr); return loadOrderByKey(orderKey); diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManager.java deleted file mode 100644 index 41cc728fffa..00000000000 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACOrderManager.java +++ /dev/null @@ -1,139 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ - -package org.olat.resource.accesscontrol.manager; - -import java.util.Date; -import java.util.List; - -import org.olat.core.id.Identity; -import org.olat.resource.OLATResource; -import org.olat.resource.accesscontrol.model.Offer; -import org.olat.resource.accesscontrol.model.OfferAccess; -import org.olat.resource.accesscontrol.model.Order; -import org.olat.resource.accesscontrol.model.OrderLine; -import org.olat.resource.accesscontrol.model.OrderPart; -import org.olat.resource.accesscontrol.model.OrderStatus; - -/** - * - * Description:<br> - * Manage the orders. An order is a part of the confirmation of an - * access which inlude the resource being access and an acnhor point - * for the transaction (payment or other). - * - * <P> - * Initial Date: 19 avr. 2011 <br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - */ -public interface ACOrderManager { - - /** - * Create an order for the specified identity. The order - * is not persisted on the database. - * @param delivery - * @return The order - */ - public Order createOrder(Identity delivery); - - /** - * An order part is a subset of the order with the same access - * method and resolved to a single valid transaction (single is - * the normal case but it's not a constraint). - * @param order - * @return The order part - */ - public OrderPart addOrderPart(Order order); - - /** - * Add an order line - * @param part - * @param offer - * @return The order line - */ - public OrderLine addOrderLine(OrderPart part, Offer offer); - - /** - * Persist the order on the database - * @param order - * @return The order - */ - public Order save(Order order); - - /** - * Persist the order on the database - * @param order - * @return The order - */ - public Order save(Order order, OrderStatus status); - - /** - * Save a simple order for a single pair offer/access method and set the status to payed. - * @param delivery - * @param link - * @return - */ - public Order saveOneClick(Identity delivery, OfferAccess link); - - /** - * Save a simple order for a single pair offer/access method and set the status. - * @param delivery - * @param link - * @param status - * @return - */ - public Order saveOneClick(Identity delivery, OfferAccess link, OrderStatus status); - - /** - * Load an order by its primary key. - * @param orderKey - * @return The order - */ - public Order loadOrderByKey(Long orderKey); - - /** - * Load an order by its primary key. - * @param orderKey - * @return The order - */ - public Order loadOrderByNr(String orderNr); - - /** - * Load the orders of a specific identity. - * @param delivery The identity - * @return List of orders - */ - public List<Order> findOrders(OLATResource resource, Identity delivery, Long orderNr, Date from, Date to, OrderStatus... status); - - /** - * Load the orders of a specific identity. - * @param delivery The identity - * @return List of orders - */ - public List<Order> findOrdersByDelivery(Identity delivery, OrderStatus... status); - - /** - * Load the orders related to a specified resource. - * @param resource - * @return List of orders - */ - public List<Order> findOrdersByResource(OLATResource resource, OrderStatus... status); - -} diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionDAO.java similarity index 96% rename from src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java rename to src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionDAO.java index 23268b2b95f..cf75617b54d 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionDAO.java @@ -43,12 +43,11 @@ import org.springframework.stereotype.Service; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service -public class ACTransactionManagerImpl implements ACTransactionManager { +public class ACTransactionDAO { @Autowired private DB dbInstance; - @Override public AccessTransaction createTransaction(Order order, OrderPart orderPart, AccessMethod method) { AccessTransactionImpl transaction = new AccessTransactionImpl(); transaction.setOrder(order); @@ -57,7 +56,6 @@ public class ACTransactionManagerImpl implements ACTransactionManager { return transaction; } - @Override public AccessTransaction save(AccessTransaction transaction) { if(transaction.getKey() == null) { dbInstance.saveObject(transaction); @@ -67,13 +65,11 @@ public class ACTransactionManagerImpl implements ACTransactionManager { return transaction; } - @Override public AccessTransaction update(AccessTransaction transaction, AccessTransactionStatus status) { ((AccessTransactionImpl)transaction).setStatus(status); return save(transaction); } - @Override public AccessTransaction loadTransactionByKey(Long transactionKey) { StringBuilder sb = new StringBuilder(); sb.append("select trx from ").append(AccessTransactionImpl.class.getName()).append(" trx") @@ -87,7 +83,6 @@ public class ACTransactionManagerImpl implements ACTransactionManager { return transactions.get(0); } - @Override public List<AccessTransaction> loadTransactionsForOrders(List<Order> orders) { if(orders == null || orders.isEmpty()) return Collections.emptyList(); diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManager.java deleted file mode 100644 index 6e41ea450ea..00000000000 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACTransactionManager.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ - -package org.olat.resource.accesscontrol.manager; - -import java.util.List; - -import org.olat.resource.accesscontrol.model.AccessMethod; -import org.olat.resource.accesscontrol.model.AccessTransaction; -import org.olat.resource.accesscontrol.model.AccessTransactionStatus; -import org.olat.resource.accesscontrol.model.Order; -import org.olat.resource.accesscontrol.model.OrderPart; - -/** - * - * Description:<br> - * this is the second part of the confirmation of an access to a resource. - * The transaction log the attempt to access the resource. There is normally - * one transaction for an order part. But if the user canceled, retry, pay - * severals time the same order part. All the transactions will be logged and - * easily tracked for an admin (administrator of the resource) - * - * <P> - * Initial Date: 19 avr. 2011 <br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - */ -public interface ACTransactionManager { - - /** - * Create a transaction but not persist it on the database. - * @param order - * @param orderPart - * @param method - * @return The transaction - */ - public AccessTransaction createTransaction(Order order, OrderPart orderPart, AccessMethod method); - - /** - * Persist the transaction to the database. - * @param transaction - * @return The transaction - */ - public AccessTransaction save(AccessTransaction transaction); - - /** - * Update the transaction to the database. - * @param transaction - * @return The transaction - */ - public AccessTransaction update(AccessTransaction transaction, AccessTransactionStatus status); - - /** - * Load a transaction by its primary key. - * @param key - * @return The transaction - */ - public AccessTransaction loadTransactionByKey(Long key); - - /** - * Quick load of a list of transactions. - * @param orders - * @return List of transactions - */ - public List<AccessTransaction> loadTransactionsForOrders(List<Order> orders); - -} diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java index 4559d7837b8..85d8a369f53 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java @@ -39,9 +39,9 @@ import org.olat.core.manager.BasicManager; import org.olat.core.util.StringHelper; import org.olat.resource.OLATResource; import org.olat.resource.accesscontrol.ACService; -import org.olat.resource.accesscontrol.manager.ACOrderManager; +import org.olat.resource.accesscontrol.manager.ACOrderDAO; import org.olat.resource.accesscontrol.manager.ACReservationDAO; -import org.olat.resource.accesscontrol.manager.ACTransactionManager; +import org.olat.resource.accesscontrol.manager.ACTransactionDAO; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.AccessTransaction; import org.olat.resource.accesscontrol.model.AccessTransactionStatus; @@ -126,11 +126,11 @@ public class PaypalManagerImpl extends BasicManager implements PaypalManager { @Autowired private DB dbInstance; @Autowired - private ACOrderManager orderManager; + private ACOrderDAO orderManager; @Autowired private ACService acService; @Autowired - private ACTransactionManager transactionManager; + private ACTransactionDAO transactionManager; @Autowired private PaypalModule paypalModule; @Autowired diff --git a/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java index 784e086cb4f..ec64495cbe5 100644 --- a/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java +++ b/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java @@ -43,8 +43,8 @@ import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryService; import org.olat.resource.OLATResource; import org.olat.resource.OLATResourceManager; -import org.olat.resource.accesscontrol.manager.ACMethodManager; -import org.olat.resource.accesscontrol.manager.ACOfferManager; +import org.olat.resource.accesscontrol.manager.ACMethodDAO; +import org.olat.resource.accesscontrol.manager.ACOfferDAO; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.FreeAccessMethod; import org.olat.resource.accesscontrol.model.Offer; @@ -68,7 +68,7 @@ public class ACFrontendManagerTest extends OlatTestCase { @Autowired private DB dbInstance; @Autowired - private ACOfferManager acOfferManager; + private ACOfferDAO acOfferManager; @Autowired private ACService acService; @Autowired @@ -84,7 +84,7 @@ public class ACFrontendManagerTest extends OlatTestCase { @Autowired private BusinessGroupRelationDAO businessGroupRelationDao; @Autowired - private ACMethodManager acMethodManager; + private ACMethodDAO acMethodManager; @Autowired private AccessControlModule acModule; diff --git a/src/test/java/org/olat/resource/accesscontrol/ACMethodManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACMethodManagerTest.java index c54eaadfa6b..30bd1a55696 100644 --- a/src/test/java/org/olat/resource/accesscontrol/ACMethodManagerTest.java +++ b/src/test/java/org/olat/resource/accesscontrol/ACMethodManagerTest.java @@ -36,8 +36,8 @@ import org.olat.core.id.OLATResourceable; import org.olat.core.id.Roles; import org.olat.resource.OLATResource; import org.olat.resource.OLATResourceManager; -import org.olat.resource.accesscontrol.manager.ACMethodManager; -import org.olat.resource.accesscontrol.manager.ACOfferManager; +import org.olat.resource.accesscontrol.manager.ACMethodDAO; +import org.olat.resource.accesscontrol.manager.ACOfferDAO; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.FreeAccessMethod; import org.olat.resource.accesscontrol.model.Offer; @@ -66,13 +66,13 @@ public class ACMethodManagerTest extends OlatTestCase { private DB dbInstance; @Autowired - private ACOfferManager acOfferManager; + private ACOfferDAO acOfferManager; @Autowired private ACService acService; @Autowired - private ACMethodManager acMethodManager; + private ACMethodDAO acMethodManager; @Autowired private OLATResourceManager resourceManager; diff --git a/src/test/java/org/olat/resource/accesscontrol/ACOfferManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACOfferManagerTest.java index a9758ae8cd6..9cd66d7731d 100644 --- a/src/test/java/org/olat/resource/accesscontrol/ACOfferManagerTest.java +++ b/src/test/java/org/olat/resource/accesscontrol/ACOfferManagerTest.java @@ -38,7 +38,7 @@ import org.olat.core.id.OLATResourceable; import org.olat.resource.OLATResource; import org.olat.resource.OLATResourceImpl; import org.olat.resource.OLATResourceManager; -import org.olat.resource.accesscontrol.manager.ACOfferManager; +import org.olat.resource.accesscontrol.manager.ACOfferDAO; import org.olat.resource.accesscontrol.model.Offer; import org.olat.resource.accesscontrol.model.OfferImpl; import org.olat.test.OlatTestCase; @@ -59,7 +59,7 @@ public class ACOfferManagerTest extends OlatTestCase { private DB dbInstance; @Autowired - private ACOfferManager acOfferManager; + private ACOfferDAO acOfferManager; @Autowired private ACService acService; diff --git a/src/test/java/org/olat/resource/accesscontrol/ACOrderManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACOrderManagerTest.java index 870a1a1ae62..9193589d0c8 100644 --- a/src/test/java/org/olat/resource/accesscontrol/ACOrderManagerTest.java +++ b/src/test/java/org/olat/resource/accesscontrol/ACOrderManagerTest.java @@ -36,9 +36,9 @@ import org.olat.core.id.OLATResourceable; import org.olat.resource.OLATResource; import org.olat.resource.OLATResourceImpl; import org.olat.resource.OLATResourceManager; -import org.olat.resource.accesscontrol.manager.ACMethodManager; -import org.olat.resource.accesscontrol.manager.ACOfferManager; -import org.olat.resource.accesscontrol.manager.ACOrderManager; +import org.olat.resource.accesscontrol.manager.ACMethodDAO; +import org.olat.resource.accesscontrol.manager.ACOfferDAO; +import org.olat.resource.accesscontrol.manager.ACOrderDAO; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.FreeAccessMethod; import org.olat.resource.accesscontrol.model.Offer; @@ -73,19 +73,19 @@ public class ACOrderManagerTest extends OlatTestCase { private DB dbInstance; @Autowired - private ACOfferManager acOfferManager; + private ACOfferDAO acOfferManager; @Autowired private ACService acService; @Autowired - private ACMethodManager acMethodManager; + private ACMethodDAO acMethodManager; @Autowired private OLATResourceManager resourceManager; @Autowired - private ACOrderManager acOrderManager; + private ACOrderDAO acOrderManager; @Before public void setUp() { diff --git a/src/test/java/org/olat/resource/accesscontrol/ACTransactionManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACTransactionManagerTest.java index 17ceae2de03..844dc1c0a7e 100644 --- a/src/test/java/org/olat/resource/accesscontrol/ACTransactionManagerTest.java +++ b/src/test/java/org/olat/resource/accesscontrol/ACTransactionManagerTest.java @@ -34,10 +34,10 @@ import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; import org.olat.resource.OLATResource; import org.olat.resource.OLATResourceManager; -import org.olat.resource.accesscontrol.manager.ACMethodManager; -import org.olat.resource.accesscontrol.manager.ACOfferManager; -import org.olat.resource.accesscontrol.manager.ACOrderManager; -import org.olat.resource.accesscontrol.manager.ACTransactionManager; +import org.olat.resource.accesscontrol.manager.ACMethodDAO; +import org.olat.resource.accesscontrol.manager.ACOfferDAO; +import org.olat.resource.accesscontrol.manager.ACOrderDAO; +import org.olat.resource.accesscontrol.manager.ACTransactionDAO; import org.olat.resource.accesscontrol.model.AccessMethod; import org.olat.resource.accesscontrol.model.AccessTransaction; import org.olat.resource.accesscontrol.model.Offer; @@ -67,22 +67,22 @@ public class ACTransactionManagerTest extends OlatTestCase { private DB dbInstance; @Autowired - private ACOfferManager acOfferManager; + private ACOfferDAO acOfferManager; @Autowired private ACService acService; @Autowired - private ACMethodManager acMethodManager; + private ACMethodDAO acMethodManager; @Autowired private OLATResourceManager resourceManager; @Autowired - private ACOrderManager acOrderManager; + private ACOrderDAO acOrderManager; @Autowired - private ACTransactionManager acTransactionManager; + private ACTransactionDAO acTransactionManager; @Before public void setUp() { -- GitLab