Franciaflex-magalie-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2013
- 2 participants
- 47 discussions
r241 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-persistence/src/main/xmi magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/main/resources magalie-services/src/test/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action magalie-web/src/main/webapp/WEB-INF/content
by bleny@users.forge.codelutin.com 07 Jun '13
by bleny@users.forge.codelutin.com 07 Jun '13
07 Jun '13
Author: bleny
Date: 2013-06-07 11:40:51 +0200 (Fri, 07 Jun 2013)
New Revision: 241
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
fixes #2167 store information of storage movements and received prepared reception
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleJpaDao.java
trunk/magalie-persistence/src/main/xmi/magalie.properties
trunk/magalie-persistence/src/main/xmi/magalie.zargo
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
trunk/magalie-services/src/main/resources/fixtures.yaml
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java
trunk/magalie-web/src/main/webapp/WEB-INF/content/receive-article-input.jsp
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleDao.java 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleDao.java 2013-06-07 09:40:51 UTC (rev 241)
@@ -42,4 +42,6 @@
List<StoredArticle> findAllByLocation(Location location);
+ StoredArticle findInReception(Article article);
+
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleJpaDao.java 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StoredArticleJpaDao.java 2013-06-07 09:40:51 UTC (rev 241)
@@ -93,4 +93,13 @@
entityManager.detach(storedArticle);
return storedArticle;
}
+
+ @Override
+ public StoredArticle findInReception(Article article) {
+ TypedQuery<StoredArticle> query = createQuery("from StoredArticle sa where sa.article = :article and sa.location.code = :codeForReceptionLocations");
+ query.setParameter("article", article);
+ query.setParameter("codeForReceptionLocations", Locations.codeForReceptionLocations());
+ return findUnique(query);
+ }
+
}
Modified: trunk/magalie-persistence/src/main/xmi/magalie.properties
===================================================================
--- trunk/magalie-persistence/src/main/xmi/magalie.properties 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-persistence/src/main/xmi/magalie.properties 2013-06-07 09:40:51 UTC (rev 241)
@@ -21,6 +21,7 @@
# #L%
###
com.franciaflex.magalie.persistence.entity.Article.attribute.fixedLocations.stereotype=unique
+com.franciaflex.magalie.persistence.entity.ReceivedPreparedArticleReception.attribute.storageMovements.stereotype=unique
com.franciaflex.magalie.persistence.entity.Company.class.stereotype=notGeneratedValue
com.franciaflex.magalie.persistence.entity.Article.class.stereotype=notGeneratedValue
Modified: trunk/magalie-persistence/src/main/xmi/magalie.zargo
===================================================================
(Binary files differ)
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-07 09:40:51 UTC (rev 241)
@@ -29,6 +29,7 @@
import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
import com.franciaflex.magalie.persistence.dao.PreparedArticleReceptionJpaDao;
+import com.franciaflex.magalie.persistence.dao.ReceivedPreparedArticleReceptionJpaDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
@@ -38,6 +39,7 @@
import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.PreparedArticleReception;
+import com.franciaflex.magalie.persistence.entity.ReceivedPreparedArticleReception;
import com.franciaflex.magalie.persistence.entity.StorageMovement;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.persistence.entity.Supplier;
@@ -173,8 +175,19 @@
PreparedArticleReception preparedArticleReception =
getPreparedArticleReception(barcode);
+ JpaMagaliePersistenceContext persistenceContext =
+ serviceContext.getPersistenceContext();
+
+ StoredArticleJpaDao storedArticleDao =
+ persistenceContext.getStoredArticleDao();
+
+ Article article = preparedArticleReception.getArticle();
+
+ StoredArticle storedArticle =
+ storedArticleDao.findInReception(article);
+
ReceptionTask receptionTask = buildReceptionTask(
- preparedArticleReception.getStoredArticle(),
+ storedArticle,
preparedArticleReception.getQuantity());
return receptionTask;
@@ -257,7 +270,7 @@
}
- public void confirmReception(MagalieUser magalieUser, ReceptionConfirmation receptionConfirmation) {
+ public void confirmReception(MagalieUser magalieUser, ReceptionConfirmation receptionConfirmation, String preparedArticleReceptionBarcode) {
String storedArticleId = receptionConfirmation.getStoredArticleId();
@@ -276,6 +289,8 @@
Date now = serviceContext.getNow();
+ Set<StorageMovement> storageMovements = Sets.newHashSet();
+
for (Map.Entry<String, Double> locationToStoredQuantity : receptionConfirmation.getLocationIdToStoredQuantities().entrySet()) {
StorageMovement storageMovement = new StorageMovement();
@@ -298,8 +313,32 @@
storageMovementDao.persist(storageMovement);
+ storageMovements.add(storageMovement);
+
}
+ if (preparedArticleReceptionBarcode != null) {
+
+ PreparedArticleReceptionJpaDao preparedArticleReceptionDao =
+ persistenceContext.getPreparedArticleReceptionDao();
+
+ PreparedArticleReception preparedArticleReception =
+ preparedArticleReceptionDao.findByBarcode(preparedArticleReceptionBarcode);
+
+ ReceivedPreparedArticleReception newReceivedPreparedArticleReception =
+ new ReceivedPreparedArticleReception();
+
+ newReceivedPreparedArticleReception.setPreparedArticleReception(preparedArticleReception);
+
+ newReceivedPreparedArticleReception.setStorageMovements(storageMovements);
+
+ ReceivedPreparedArticleReceptionJpaDao receivedPreparedArticleReceptionDao =
+ persistenceContext.getReceivedPreparedArticleReceptionDao();
+
+ receivedPreparedArticleReceptionDao.persist(newReceivedPreparedArticleReception);
+
+ }
+
persistenceContext.commit();
}
Modified: trunk/magalie-services/src/main/resources/fixtures.yaml
===================================================================
--- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-07 09:40:51 UTC (rev 241)
@@ -654,21 +654,21 @@
&preparedArticleReception1 !prepared-article-reception
id: preparedArticleReception1
barcode: PAR1
- storedArticle: *storedArticleRec1
+ article: *article6
quantity: 3
preparedArticleReception2:
&preparedArticleReception2 !prepared-article-reception
id: preparedArticleReception2
barcode: PAR2
- storedArticle: *storedArticleRec1
+ article: *article6
quantity: 4
preparedArticleReception3:
&preparedArticleReception3 !prepared-article-reception
id: preparedArticleReception3
barcode: PAR3
- storedArticle: *storedArticleRec1
+ article: *article6
quantity: 3
preparedArticleReceptions:
Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-06-07 09:40:51 UTC (rev 241)
@@ -24,12 +24,14 @@
*/
import com.franciaflex.magalie.persistence.Locations;
+import com.franciaflex.magalie.persistence.dao.ReceivedPreparedArticleReceptionJpaDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.PreparedArticleReception;
+import com.franciaflex.magalie.persistence.entity.ReceivedPreparedArticleReception;
import com.franciaflex.magalie.persistence.entity.StorageMovement;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.persistence.entity.Supplier;
@@ -45,6 +47,7 @@
import java.text.ParseException;
import java.util.Date;
import java.util.List;
+import java.util.Map;
public class ReceptionServiceTest extends AbstractMagalieServiceTest {
@@ -191,7 +194,7 @@
receptionConfirmation.setLocationIdToStoredQuantities(
ImmutableMap.of(fixedLocation.getId(), storedArticle.getQuantity()));
- service.confirmReception(magalieUser, receptionConfirmation);
+ service.confirmReception(magalieUser, receptionConfirmation, null);
StorageMovementJpaDao storageMovementDao = serviceContext.getPersistenceContext().getStorageMovementDao();
@@ -224,16 +227,59 @@
@Test
public void testReceivePreparedReception() {
+ // we will try to receive a prepared article reception with following barcode
+ String barcode = "PAR2";
+
PreparedArticleReception preparedArticleReception =
- service.getPreparedArticleReception("PAR2");
+ service.getPreparedArticleReception(barcode);
Assert.assertNotNull(preparedArticleReception);
ReceptionTask receptionTask =
- service.getReceptionTaskForPreparedArticleReception("PAR2");
+ service.getReceptionTaskForPreparedArticleReception(barcode);
+
+ // checks that given reception task asks to store quantity given
Assert.assertEquals(4., receptionTask.getQuantity(), DELTA);
+
+ // now, try to confirm reception
+ ReceptionConfirmation receptionConfirmation = new ReceptionConfirmation();
+
+ receptionConfirmation.setStoredArticleId(receptionTask.getStoredArticle().getId());
+
+ // just store the whole quantity in the first location given
+ Map<String, Double> locationIdToStoredQuantities =
+ ImmutableMap.of(
+ receptionTask.getLocations().get(0).getId(),
+ receptionTask.getQuantity());
+
+ receptionConfirmation.setLocationIdToStoredQuantities(locationIdToStoredQuantities);
+
+ // confirm
+ service.confirmReception(magalieUser, receptionConfirmation, barcode);
+
+ // now check that confirmation has stored a relation between the prepared article reception
+ // and the implied storage movements
+
+ ReceivedPreparedArticleReceptionJpaDao receivedPreparedArticleReceptionDao =
+ serviceContext.getPersistenceContext().getReceivedPreparedArticleReceptionDao();
+
+ List<ReceivedPreparedArticleReception> allReceivedPreparedArticleReceptions =
+ receivedPreparedArticleReceptionDao.findAll();
+
+ Assert.assertEquals(1, allReceivedPreparedArticleReceptions.size());
+
+ ReceivedPreparedArticleReception receivedPreparedArticleReception =
+ Iterables.getOnlyElement(allReceivedPreparedArticleReceptions);
+
+ Assert.assertEquals(
+ "at confirmation we stored the total quantity in a single location, so one storage movement",
+ locationIdToStoredQuantities.size(),
+ receivedPreparedArticleReception.getStorageMovements().size());
+
+ Assert.assertEquals(barcode, receivedPreparedArticleReception.getPreparedArticleReception().getBarcode());
+
}
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java 2013-06-07 09:40:51 UTC (rev 241)
@@ -31,6 +31,7 @@
import com.franciaflex.magalie.web.MagalieActionSupport;
import com.franciaflex.magalie.web.MagalieSession;
import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.convention.annotation.Result;
@@ -74,7 +75,7 @@
}
public void setPreparedArticleReceptionBarcode(String preparedArticleReceptionBarcode) {
- this.preparedArticleReceptionBarcode = preparedArticleReceptionBarcode;
+ this.preparedArticleReceptionBarcode = Strings.emptyToNull(preparedArticleReceptionBarcode);
}
@Override
@@ -110,6 +111,10 @@
}
+ public String getPreparedArticleReceptionBarcode() {
+ return preparedArticleReceptionBarcode;
+ }
+
public void setConfirmation(String confirmationJson) {
try {
Map deserialize = (Map) JSONUtil.deserialize(confirmationJson);
@@ -129,7 +134,7 @@
MagalieUser magalieUser = session.getMagalieUser();
- service.confirmReception(magalieUser, confirmation);
+ service.confirmReception(magalieUser, confirmation, preparedArticleReceptionBarcode);
return session.getActivity().name();
Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/receive-article-input.jsp
===================================================================
--- trunk/magalie-web/src/main/webapp/WEB-INF/content/receive-article-input.jsp 2013-06-06 16:22:20 UTC (rev 240)
+++ trunk/magalie-web/src/main/webapp/WEB-INF/content/receive-article-input.jsp 2013-06-07 09:40:51 UTC (rev 241)
@@ -47,6 +47,7 @@
<s:form cssClass="form-horizontal">
<s:textfield name="locationBarcode" label="Empl." inputAppendIcon="barcode" cssClass="input-small" />
<s:textfield name="quantity" label="Qté" inputAppend="%{receptionTask.storedArticle.article.unit}" cssClass="input-mini" />
+ <s:hidden name="preparedArticleReceptionBarcode" value="%{preparedArticleReceptionBarcode}" />
<s:hidden name="confirmation" />
<div class="btn-group">
1
0
r240 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-services/src/main/java/com/franciaflex/magalie/services/exception magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/main/resources magalie-web/src/main/java/com/franciaflex/magalie/web/action
by bleny@users.forge.codelutin.com 06 Jun '13
by bleny@users.forge.codelutin.com 06 Jun '13
06 Jun '13
Author: bleny
Date: 2013-06-06 18:22:20 +0200 (Thu, 06 Jun 2013)
New Revision: 240
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
remove location13 from fixtures (integrity violation) ; check origin and destination locations are accessible in storage transfer so fixes #2164
Added:
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/InaccessibleLocationException.java
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationJpaDao.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java
trunk/magalie-services/src/main/resources/fixtures.yaml
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferLocationAction.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationDao.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationDao.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -37,5 +37,5 @@
List<Location> findAllWithoutReception(Warehouse warehouse);
- Location findByBarCode(String barCode, Building building);
+ Location findByBarcode(String barcode, Building building);
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationJpaDao.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationJpaDao.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -83,11 +83,11 @@
}
@Override
- public Location findByBarCode(String barCode, Building building) {
+ public Location findByBarcode(String barcode, Building building) {
TypedQuery<Location> query = createQuery("from Location l " +
- "where CONCAT(l.warehouse.code, l.code) = :barCode " +
+ "where CONCAT(l.warehouse.code, l.code) = :barcode " +
"and l.warehouse.building = :building");
- query.setParameter("barCode", barCode);
+ query.setParameter("barcode", barcode);
query.setParameter("building", building);
return findUniqueOrNull(query);
}
Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/InaccessibleLocationException.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/InaccessibleLocationException.java (rev 0)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/InaccessibleLocationException.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -0,0 +1,42 @@
+package com.franciaflex.magalie.services.exception;
+
+import com.franciaflex.magalie.persistence.Locations;
+import com.franciaflex.magalie.persistence.entity.Location;
+import com.franciaflex.magalie.persistence.entity.MagalieUser;
+
+public class InaccessibleLocationException extends MagalieException {
+
+ protected Location location;
+
+ protected MagalieUser magalieUser;
+
+ public InaccessibleLocationException(String message, Location location, MagalieUser magalieUser) {
+ super(message);
+ this.location = location;
+ this.magalieUser = magalieUser;
+ }
+
+ public static void checkLocationIsAccessible(Location location, MagalieUser magalieUser) throws InaccessibleLocationException {
+
+ if (Locations.inaccessibleLocationPredicate(magalieUser).apply(location)) {
+
+ InaccessibleLocationException newException =
+ new InaccessibleLocationException(
+ "user is not allowed to access given location",
+ location, magalieUser);
+
+ throw newException;
+
+ }
+
+ }
+
+ public Location getLocation() {
+ return location;
+ }
+
+ public MagalieUser getMagalieUser() {
+ return magalieUser;
+ }
+
+}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -23,9 +23,13 @@
* #L%
*/
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
+import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.entity.Article;
+import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Company;
+import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException;
@@ -56,4 +60,23 @@
}
+ public Location getLocation(String locationBarcode, Building building) throws InvalidMagalieBarcodeException {
+
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+
+ LocationDao locationDao = persistenceContext.getLocationDao();
+
+ Location location = locationDao.findByBarcode(locationBarcode, building);
+
+ if (location == null) {
+
+ throw new InvalidMagalieBarcodeException(
+ "no location with code " + locationBarcode);
+
+ }
+
+ return location;
+
+ }
+
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -25,7 +25,6 @@
import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
-import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
@@ -38,6 +37,8 @@
import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
+import com.franciaflex.magalie.services.exception.InaccessibleLocationException;
+import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import org.apache.commons.logging.Log;
@@ -58,15 +59,18 @@
this.serviceContext = serviceContext;
}
- public Location getLocationByBarCode(String barCode, Building building) {
+ public Location getLocation(Building building, MagalieUser magalieUser, String barcode)
+ throws InvalidMagalieBarcodeException, InaccessibleLocationException {
- JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ MagalieBarcodeService magalieBarcodeService =
+ serviceContext.newService(MagalieBarcodeService.class);
- LocationDao locationDao = persistenceContext.getLocationDao();
+ Location location = magalieBarcodeService.getLocation(barcode, building);
- Location location = locationDao.findByBarCode(barCode, building);
+ InaccessibleLocationException.checkLocationIsAccessible(location, magalieUser);
return location;
+
}
public Location getLocationById(String id) {
Modified: trunk/magalie-services/src/main/resources/fixtures.yaml
===================================================================
--- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-06 16:22:20 UTC (rev 240)
@@ -216,14 +216,6 @@
requiredAccreditationLevel: 0
requiredCraneMan : false
-location13:
- &location13 !location
- id: location13
- warehouse: *U01
- code: REC
- requiredAccreditationLevel: 0
- requiredCraneMan : false
-
location14:
&location14 !location
id: location14
@@ -302,7 +294,6 @@
- *location10
- *location11
- *location12
- - *location13
- *location14
- *locationRecU01
- *locationRecU02
@@ -476,7 +467,7 @@
&storedArticle5 !stored-article
id: storedArticle5
article: *article1
- location: *location13
+ location: *locationRecU01
quantity: 30
storedArticle6:
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -25,7 +25,10 @@
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Location;
+import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
+import com.franciaflex.magalie.services.exception.InaccessibleLocationException;
+import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException;
import com.franciaflex.magalie.services.service.StorageTransferService;
import com.franciaflex.magalie.web.MagalieActionSupport;
import com.franciaflex.magalie.web.MagalieSession;
@@ -165,11 +168,26 @@
Building building = session.getBuilding();
- Location destination = service.getLocationByBarCode(destinationBarCode, building);
+ MagalieUser magalieUser = session.getMagalieUser();
- if (destination == null) {
+ Location destination;
+
+ try {
+
+ destination = service.getLocation(building, magalieUser, destinationBarCode);
+
+ } catch (InvalidMagalieBarcodeException e) {
+
addFieldError("destinationBarCode", "Le code barre n'est pas un code valide");
+
return INPUT;
+
+ } catch (InaccessibleLocationException e) {
+
+ addFieldError("destinationBarCode", "Vous n'êtes pas autorisé à accéder à l'emplacement");
+
+ return INPUT;
+
}
if (destination.equals(storedArticle.getLocation())) {
@@ -177,9 +195,10 @@
return INPUT;
}
- service.confirmStorageTransfer(session.getMagalieUser(), storedArticle, quantity, destination);
+ service.confirmStorageTransfer(magalieUser, storedArticle, quantity, destination);
return SUCCESS;
+
}
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferLocationAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferLocationAction.java 2013-06-05 12:29:41 UTC (rev 239)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferLocationAction.java 2013-06-06 16:22:20 UTC (rev 240)
@@ -25,7 +25,10 @@
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Location;
+import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
+import com.franciaflex.magalie.services.exception.InaccessibleLocationException;
+import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException;
import com.franciaflex.magalie.services.service.StorageTransferService;
import com.franciaflex.magalie.web.MagalieActionSupport;
import com.franciaflex.magalie.web.MagalieSession;
@@ -76,28 +79,41 @@
Building building = session.getBuilding();
- origin = service.getLocationByBarCode(originBarCode, building);
+ MagalieUser magalieUser = session.getMagalieUser();
- if (origin == null) {
+ try {
+
+ origin = service.getLocation(building, magalieUser, originBarCode);
+
+ } catch (InvalidMagalieBarcodeException e) {
+
addFieldError("originBarCode", "Le code barre n'est pas un code valide");
+
return INPUT;
+
+ } catch (InaccessibleLocationException e) {
+
+ addFieldError("originBarCode", "Vous n'êtes pas autorisé à accéder à l'emplacement");
+
+ return INPUT;
+
}
List<StoredArticle> storedArticles = service.getStoredArticlesInLocation(origin);
if (storedArticles.isEmpty()) {
- addFieldError("originBarCode", "Aucun articles dans cet emplacement");
+
+ addActionMessage("Aucun article dans cet emplacement");
+
return INPUT;
+
}
return SUCCESS;
+
}
public String getOriginId() {
- String originId = "";
- if (origin != null) {
- originId = origin.getId();
- }
- return originId;
+ return origin.getId();
}
}
1
0
r239 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-services/src/main/java/com/franciaflex/magalie/services/service
by bleny@users.forge.codelutin.com 05 Jun '13
by bleny@users.forge.codelutin.com 05 Jun '13
05 Jun '13
Author: bleny
Date: 2013-06-05 14:29:41 +0200 (Wed, 05 Jun 2013)
New Revision: 239
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
fixes #2165 exclude locations reported in error from suggested locations
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorJpaDao.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/LocationErrorsService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -28,7 +28,6 @@
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
-import com.google.common.collect.Lists;
import java.util.Collection;
import java.util.Comparator;
@@ -116,17 +115,6 @@
return Predicates.not(new IsFullLocation());
}
- public static Predicate<Location> isAcceptableForReception() {
- Predicate<Location> isAcceptableForReception =
- Predicates.and(
- Lists.newArrayList(
- isNotReceptionLocation(),
- isNotFullLocation()
- )
- );
- return isAcceptableForReception;
- }
-
public static Predicate<Location> barcodeEquals(String originLocationBarcode) {
return Predicates.compose(Predicates.equalTo(originLocationBarcode), getBarcodeFunction());
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -36,7 +36,6 @@
import com.google.common.collect.Ordering;
import org.apache.commons.collections.comparators.BooleanComparator;
-import java.util.Collection;
import java.util.Comparator;
public class StoredArticles {
@@ -156,10 +155,6 @@
return new ArticleStoredInLocationsRequiringDriverLicenseFirstComparator();
}
- public static Predicate<StoredArticle> articleNotStoredInLocationReportedInError(Collection<Location> allLocationsInError) {
- return Predicates.compose(Locations.locationIsNotReportedInError(allLocationsInError), getLocationFunction());
- }
-
public static Predicate<StoredArticle> notEmpty() {
return new NotEmptyPredicate();
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorDao.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorDao.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -23,7 +23,6 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.persistence.entity.LocationError;
@@ -34,7 +33,7 @@
LocationError findByLocation(Location location);
- List<Location> getAllLocationsInError(Article article);
+ List<Location> findAllLocationsInError();
List<LocationError> findAll();
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorJpaDao.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/LocationErrorJpaDao.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -23,7 +23,6 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.persistence.entity.LocationError;
@@ -46,9 +45,8 @@
}
@Override
- public List<Location> getAllLocationsInError(Article article) {
- Query query = entityManager.createQuery("select se.location from LocationError se where se.article = :article");
- query.setParameter("article", article);
+ public List<Location> findAllLocationsInError() {
+ Query query = entityManager.createQuery("select se.location from LocationError se");
List<Location> allLocationsInError = query.getResultList();
return allLocationsInError;
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -351,12 +351,13 @@
storedArticles = computeActualQuantities(storedArticles, storageMovementsForArticle);
// exclude storageMovements on a location reported in error
- LocationErrorsService locationErrorsService = serviceContext.newService(LocationErrorsService.class);
+ LocationErrorsService locationErrorsService =
+ serviceContext.newService(LocationErrorsService.class);
- List<Location> allLocationsInError = locationErrorsService.getAllLocationsInError(article);
+ storedArticles = Iterables.filter(
+ storedArticles,
+ locationErrorsService.getArticleNotStoredInLocationReportedInErrorPredicate());
- storedArticles = Iterables.filter(storedArticles, StoredArticles.articleNotStoredInLocationReportedInError(allLocationsInError));
-
return storedArticles;
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/LocationErrorsService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/LocationErrorsService.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/LocationErrorsService.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -23,13 +23,18 @@
* #L%
*/
+import com.franciaflex.magalie.persistence.Locations;
+import com.franciaflex.magalie.persistence.StoredArticles;
import com.franciaflex.magalie.persistence.dao.LocationErrorJpaDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.Location;
import com.franciaflex.magalie.persistence.entity.LocationError;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -86,23 +91,30 @@
}
}
- public List<Location> getAllLocationsInError(Article article) {
+ public List<LocationError> getAllLocationErrors() {
LocationErrorJpaDao locationErrorDao = serviceContext.getPersistenceContext().getLocationErrorDao();
- List<Location> allLocationsInError = locationErrorDao.getAllLocationsInError(article);
+ List<LocationError> allLocationErrors = locationErrorDao.findAll();
- return allLocationsInError;
+ return allLocationErrors;
}
- public List<LocationError> getAllLocationErrors() {
+ public Predicate<Location> getLocationNotReportedInErrorPredicate() {
LocationErrorJpaDao locationErrorDao = serviceContext.getPersistenceContext().getLocationErrorDao();
- List<LocationError> allLocationErrors = locationErrorDao.findAll();
+ List<Location> allLocationsInError = locationErrorDao.findAllLocationsInError();
- return allLocationErrors;
+ return Locations.locationIsNotReportedInError(allLocationsInError);
}
+
+ public Predicate<StoredArticle> getArticleNotStoredInLocationReportedInErrorPredicate() {
+
+ return Predicates.compose(getLocationNotReportedInErrorPredicate(), StoredArticles.getLocationFunction());
+
+ }
+
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-05 11:27:23 UTC (rev 238)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-05 12:29:41 UTC (rev 239)
@@ -44,6 +44,9 @@
import com.franciaflex.magalie.persistence.entity.Warehouse;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Ordering;
@@ -228,12 +231,25 @@
// fourth step, remove reception locations because it's stupid to
// move an article from reception location to another reception location
- // also, remove full locations
+ // also, remove full locations and locations reported in error
+
+ LocationErrorsService locationErrorsService =
+ serviceContext.newService(LocationErrorsService.class);
+
+ Predicate<Location> isAcceptableForReception =
+ Predicates.and(
+ ImmutableSet.of(
+ Locations.isNotReceptionLocation(),
+ Locations.isNotFullLocation(),
+ locationErrorsService.getLocationNotReportedInErrorPredicate()
+ )
+ );
+
List<Location> result =
Lists.newArrayList(
Iterables.filter(
locations,
- Locations.isAcceptableForReception()
+ isAcceptableForReception
)
);
1
0
r238 - trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action
by bleny@users.forge.codelutin.com 05 Jun '13
by bleny@users.forge.codelutin.com 05 Jun '13
05 Jun '13
Author: bleny
Date: 2013-06-05 13:27:23 +0200 (Wed, 05 Jun 2013)
New Revision: 238
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
fix exception in UI at logout
Modified:
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java 2013-06-05 11:23:31 UTC (rev 237)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java 2013-06-05 11:27:23 UTC (rev 238)
@@ -29,12 +29,14 @@
import org.apache.struts2.convention.annotation.Results;
@Results({
- @Result(name="success", type="redirectAction", params = { "actionName", "login!input" })
+ @Result(name="success", type="redirectAction", params = { "actionName", "login!input", "companyId", "${companyId}" })
})
public class LogoutAction extends MagalieActionSupport {
protected MagalieSession session;
+ protected String companyId;
+
public void setSession(MagalieSession session) {
this.session = session;
}
@@ -42,6 +44,8 @@
@Override
public String execute() {
+ companyId = session.getMagalieUser().getCompany().getId();
+
session.setMagalieUser(null);
session.setBuilding(null);
@@ -49,4 +53,9 @@
return SUCCESS;
}
+
+ public String getCompanyId() {
+ return companyId;
+ }
+
}
1
0
Author: bleny
Date: 2013-06-05 13:23:31 +0200 (Wed, 05 Jun 2013)
New Revision: 237
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
fix trace when building
Modified:
trunk/magalie-persistence/pom.xml
Modified: trunk/magalie-persistence/pom.xml
===================================================================
--- trunk/magalie-persistence/pom.xml 2013-06-05 11:18:23 UTC (rev 236)
+++ trunk/magalie-persistence/pom.xml 2013-06-05 11:23:31 UTC (rev 237)
@@ -139,7 +139,7 @@
<configuration>
<type>CREATE</type>
<hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
- <outputFile>${project.build.directory}/generated-sources/sql/magalie-create-oracle.sql</outputFile>
+ <outputFile>${project.build.directory}/generated-sources/magalie-create-oracle.sql</outputFile>
</configuration>
</execution>
<execution>
@@ -150,7 +150,7 @@
<configuration>
<type>DROP</type>
<hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
- <outputFile>${project.build.directory}/generated-sources/sql/magalie-drop-oracle.sql</outputFile>
+ <outputFile>${project.build.directory}/generated-sources/magalie-drop-oracle.sql</outputFile>
</configuration>
</execution>
<execution>
@@ -161,7 +161,7 @@
<configuration>
<type>CREATE</type>
<hibernateDialect>org.hibernate.dialect.MySQLDialect</hibernateDialect>
- <outputFile>${project.build.directory}/generated-sources/sql/magalie-create-mysql.sql</outputFile>
+ <outputFile>${project.build.directory}/generated-sources/magalie-create-mysql.sql</outputFile>
</configuration>
</execution>
<execution>
@@ -172,7 +172,7 @@
<configuration>
<type>DROP</type>
<hibernateDialect>org.hibernate.dialect.MySQLDialect</hibernateDialect>
- <outputFile>${project.build.directory}/generated-sources/sql/magalie-drop-mysql.sql</outputFile>
+ <outputFile>${project.build.directory}/generated-sources/magalie-drop-mysql.sql</outputFile>
</configuration>
</execution>
</executions>
1
0
Author: bleny
Date: 2013-06-05 13:18:23 +0200 (Wed, 05 Jun 2013)
New Revision: 236
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
generate sql scripts for mysql
Modified:
trunk/magalie-persistence/pom.xml
Modified: trunk/magalie-persistence/pom.xml
===================================================================
--- trunk/magalie-persistence/pom.xml 2013-06-05 11:00:54 UTC (rev 235)
+++ trunk/magalie-persistence/pom.xml 2013-06-05 11:18:23 UTC (rev 236)
@@ -132,28 +132,51 @@
<artifactId>hibernate4-maven-plugin</artifactId>
<executions>
<execution>
- <id>executionCreate</id>
+ <id>executionCreateOracle</id>
<goals>
<goal>export</goal>
</goals>
<configuration>
<type>CREATE</type>
- <outputFile>${project.build.directory}/generated-sources/magalie-create-oracle.sql</outputFile>
+ <hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
+ <outputFile>${project.build.directory}/generated-sources/sql/magalie-create-oracle.sql</outputFile>
</configuration>
</execution>
<execution>
- <id>executionDrop</id>
+ <id>executionDropOracle</id>
<goals>
<goal>export</goal>
</goals>
<configuration>
<type>DROP</type>
- <outputFile>${project.build.directory}/generated-sources/magalie-drop-oracle.sql</outputFile>
+ <hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
+ <outputFile>${project.build.directory}/generated-sources/sql/magalie-drop-oracle.sql</outputFile>
</configuration>
</execution>
+ <execution>
+ <id>executionCreateMysql</id>
+ <goals>
+ <goal>export</goal>
+ </goals>
+ <configuration>
+ <type>CREATE</type>
+ <hibernateDialect>org.hibernate.dialect.MySQLDialect</hibernateDialect>
+ <outputFile>${project.build.directory}/generated-sources/sql/magalie-create-mysql.sql</outputFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>executionDropMysql</id>
+ <goals>
+ <goal>export</goal>
+ </goals>
+ <configuration>
+ <type>DROP</type>
+ <hibernateDialect>org.hibernate.dialect.MySQLDialect</hibernateDialect>
+ <outputFile>${project.build.directory}/generated-sources/sql/magalie-drop-mysql.sql</outputFile>
+ </configuration>
+ </execution>
</executions>
<configuration>
- <hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
<target>SCRIPT</target>
</configuration>
</plugin>
1
0
r235 - trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence
by bleny@users.forge.codelutin.com 05 Jun '13
by bleny@users.forge.codelutin.com 05 Jun '13
05 Jun '13
Author: bleny
Date: 2013-06-05 13:00:54 +0200 (Wed, 05 Jun 2013)
New Revision: 235
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
remove fixme jdk 1.7
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java 2013-06-04 16:09:00 UTC (rev 234)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java 2013-06-05 11:00:54 UTC (rev 235)
@@ -73,8 +73,6 @@
@Override
public int compare(Location location1, Location location2) {
return location2.getRequiredAccreditationLevel() - location1.getRequiredAccreditationLevel();
- //FIXME Jdk 1.7
-// return Integer.compare(location2.getRequiredAccreditationLevel(), location1.getRequiredAccreditationLevel());
}
}
1
0
r234 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action magalie-web/src/main/webapp/WEB-INF/content
by bleny@users.forge.codelutin.com 04 Jun '13
by bleny@users.forge.codelutin.com 04 Jun '13
04 Jun '13
Author: bleny
Date: 2013-06-04 18:09:00 +0200 (Tue, 04 Jun 2013)
New Revision: 234
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
update file headers
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingJpaDao.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/CompanyService.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseCompanyAction.java
trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-company.jsp
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingDao.java 2013-06-04 15:17:33 UTC (rev 233)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingDao.java 2013-06-04 16:09:00 UTC (rev 234)
@@ -1,5 +1,28 @@
package com.franciaflex.magalie.persistence.dao;
+/*
+ * #%L
+ * MagaLiE :: Persistence
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2013 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Company;
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingJpaDao.java 2013-06-04 15:17:33 UTC (rev 233)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/BuildingJpaDao.java 2013-06-04 16:09:00 UTC (rev 234)
@@ -1,5 +1,28 @@
package com.franciaflex.magalie.persistence.dao;
+/*
+ * #%L
+ * MagaLiE :: Persistence
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2013 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Company;
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/CompanyService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/CompanyService.java 2013-06-04 15:17:33 UTC (rev 233)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/CompanyService.java 2013-06-04 16:09:00 UTC (rev 234)
@@ -1,5 +1,28 @@
package com.franciaflex.magalie.services.service;
+/*
+ * #%L
+ * MagaLiE :: Services
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2013 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
import com.franciaflex.magalie.persistence.dao.CompanyJpaDao;
import com.franciaflex.magalie.persistence.entity.Company;
import com.franciaflex.magalie.services.MagalieService;
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseCompanyAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseCompanyAction.java 2013-06-04 15:17:33 UTC (rev 233)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseCompanyAction.java 2013-06-04 16:09:00 UTC (rev 234)
@@ -1,5 +1,28 @@
package com.franciaflex.magalie.web.action;
+/*
+ * #%L
+ * MagaLiE :: UI
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2013 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
import com.franciaflex.magalie.persistence.entity.Company;
import com.franciaflex.magalie.services.service.CompanyService;
import com.franciaflex.magalie.web.MagalieActionSupport;
Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-company.jsp
===================================================================
--- trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-company.jsp 2013-06-04 15:17:33 UTC (rev 233)
+++ trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-company.jsp 2013-06-04 16:09:00 UTC (rev 234)
@@ -1,3 +1,25 @@
+<%--
+ #%L
+ MagaLiE :: UI
+ $Id:$
+ $HeadURL:$
+ %%
+ Copyright (C) 2013 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
1
0
r233 - trunk/magalie-web/src/main/java/com/franciaflex/magalie/web
by bleny@users.forge.codelutin.com 04 Jun '13
by bleny@users.forge.codelutin.com 04 Jun '13
04 Jun '13
Author: bleny
Date: 2013-06-04 17:17:33 +0200 (Tue, 04 Jun 2013)
New Revision: 233
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
disable useless piece of code that raise a strange exception
Modified:
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java 2013-06-04 15:16:27 UTC (rev 232)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java 2013-06-04 15:17:33 UTC (rev 233)
@@ -27,7 +27,6 @@
import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.services.DefaultMagalieServiceContext;
import com.franciaflex.magalie.services.MagalieServiceContext;
-import com.google.common.base.Preconditions;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -104,9 +103,10 @@
public MagalieServiceContext newServiceContext(EntityManager entityManager) {
- Preconditions.checkArgument(
- entityManager != null && entityManager.isOpen(),
- "unable to find transaction for service context");
+ // FIXME brendan 04/06/13 very strange behavior, raise exception when loading a page
+// Preconditions.checkArgument(
+// entityManager != null && entityManager.isOpen(),
+// "unable to find transaction for service context");
DefaultMagalieServiceContext serviceContext = new DefaultMagalieServiceContext();
1
0
r232 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-persistence/src/main/resources magalie-services/src/main/java/com/franciaflex/magalie/services magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/test/java/com/franciaflex/magalie/services magalie-web/src/main/java/com/franciaflex/magalie/web magalie-web/src/main/resources
by bleny@users.forge.codelutin.com 04 Jun '13
by bleny@users.forge.codelutin.com 04 Jun '13
04 Jun '13
Author: bleny
Date: 2013-06-04 17:16:27 +0200 (Tue, 04 Jun 2013)
New Revision: 232
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
refactor transaction management in order to enable c3p0
Removed:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
trunk/magalie-persistence/src/main/resources/magalie.properties
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationListener.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieJpaTransactionFilter.java
trunk/magalie-web/src/main/resources/log4j.properties
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -27,13 +27,12 @@
import javax.persistence.EntityManager;
-public class JpaMagaliePersistenceContext extends AbstractJpaMagaliePersistenceContext implements MagaliePersistenceContext {
+public class JpaMagaliePersistenceContext extends AbstractJpaMagaliePersistenceContext {
public JpaMagaliePersistenceContext(EntityManager entityManager) {
super(entityManager);
}
- @Override
public void clearDatabase() {
rollback();
HibernateUtil.cleanDatabase(entityManager);
Deleted: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -1,89 +0,0 @@
-package com.franciaflex.magalie.persistence;
-
-/*
- * #%L
- * MagaLiE :: Persistence
- * $Id:$
- * $HeadURL:$
- * %%
- * Copyright (C) 2013 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-import com.franciaflex.magalie.persistence.dao.ArticleJpaDao;
-import com.franciaflex.magalie.persistence.dao.BuildingJpaDao;
-import com.franciaflex.magalie.persistence.dao.CompanyJpaDao;
-import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleJpaDao;
-import com.franciaflex.magalie.persistence.dao.DeliveredRequestedListJpaDao;
-import com.franciaflex.magalie.persistence.dao.KanbanJpaDao;
-import com.franciaflex.magalie.persistence.dao.LocationErrorJpaDao;
-import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
-import com.franciaflex.magalie.persistence.dao.MagalieUserJpaDao;
-import com.franciaflex.magalie.persistence.dao.PreparedArticleReceptionJpaDao;
-import com.franciaflex.magalie.persistence.dao.RequestedArticleJpaDao;
-import com.franciaflex.magalie.persistence.dao.RequestedListJpaDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementOrderJpaDao;
-import com.franciaflex.magalie.persistence.dao.StoredArticleJpaDao;
-import com.franciaflex.magalie.persistence.dao.SupplierJpaDao;
-import com.franciaflex.magalie.persistence.dao.UnavailableArticleJpaDao;
-import com.franciaflex.magalie.persistence.dao.WarehouseJpaDao;
-
-/** @author bleny */
-public interface MagaliePersistenceContext {
-
- void commit();
-
- void rollback();
-
- void clearDatabase();
-
- MagalieUserJpaDao getMagalieUserDao();
-
- StoredArticleJpaDao getStoredArticleDao();
-
- RequestedArticleJpaDao getRequestedArticleDao();
-
- ArticleJpaDao getArticleDao();
-
- StorageMovementJpaDao getStorageMovementDao();
-
- LocationErrorJpaDao getLocationErrorDao();
-
- StorageMovementOrderJpaDao getStorageMovementOrderDao();
-
- LocationJpaDao getLocationDao();
-
- DeliveredRequestedArticleJpaDao getDeliveredRequestedArticleDao();
-
- BuildingJpaDao getBuildingDao();
-
- WarehouseJpaDao getWarehouseDao();
-
- RequestedListJpaDao getRequestedListDao();
-
- DeliveredRequestedListJpaDao getDeliveredRequestedListDao();
-
- KanbanJpaDao getKanbanDao();
-
- SupplierJpaDao getSupplierDao();
-
- UnavailableArticleJpaDao getUnavailableArticleDao();
-
- PreparedArticleReceptionJpaDao getPreparedArticleReceptionDao();
-
- CompanyJpaDao getCompanyDao();
-}
Modified: trunk/magalie-persistence/src/main/resources/magalie.properties
===================================================================
--- trunk/magalie-persistence/src/main/resources/magalie.properties 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-persistence/src/main/resources/magalie.properties 2013-06-04 15:16:27 UTC (rev 232)
@@ -29,7 +29,8 @@
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
-hibernate.c3p0.min_size=5
-hibernate.c3p0.max_size=20
+
+hibernate.c3p0.min_size=3
+hibernate.c3p0.max_size=5
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -26,29 +26,17 @@
import com.franciaflex.magalie.MagalieApplicationConfig;
import com.franciaflex.magalie.MagalieTechnicalException;
import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
-import javax.persistence.EntityManager;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
public class DefaultMagalieServiceContext implements MagalieServiceContext {
- protected EntityManager entityManager;
-
protected MagalieApplicationConfig magalieApplicationConfig;
- protected MagaliePersistenceContext persistenceContext;
+ protected JpaMagaliePersistenceContext persistenceContext;
- public void setEntityManager(EntityManager entityManager) {
- this.entityManager = entityManager;
- }
-
- public EntityManager getEntityManager() {
- return entityManager;
- }
-
@Override
public MagalieApplicationConfig getMagalieApplicationConfig() {
return magalieApplicationConfig;
@@ -100,11 +88,11 @@
}
@Override
- public MagaliePersistenceContext getPersistenceContext() {
- if (persistenceContext == null) {
- persistenceContext = new JpaMagaliePersistenceContext(entityManager);
- }
+ public JpaMagaliePersistenceContext getPersistenceContext() {
return persistenceContext;
}
+ public void setPersistenceContext(JpaMagaliePersistenceContext persistenceContext) {
+ this.persistenceContext = persistenceContext;
+ }
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,7 +24,7 @@
*/
import com.franciaflex.magalie.MagalieApplicationConfig;
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import java.util.Date;
@@ -37,7 +37,7 @@
<E extends MagalieService> E newService(Class<E> serviceClass);
- MagaliePersistenceContext getPersistenceContext();
+ JpaMagaliePersistenceContext getPersistenceContext();
MagalieApplicationConfig getMagalieApplicationConfig();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,9 +23,14 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.StorageMovements;
import com.franciaflex.magalie.persistence.StoredArticles;
+import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
+import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
+import com.franciaflex.magalie.persistence.dao.StorageMovementOrderJpaDao;
+import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
+import com.franciaflex.magalie.persistence.dao.UnavailableArticleJpaDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.Location;
@@ -34,11 +39,6 @@
import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.persistence.entity.UnavailableArticle;
-import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementOrderJpaDao;
-import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
-import com.franciaflex.magalie.persistence.dao.UnavailableArticleJpaDao;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
import com.franciaflex.magalie.services.StorageMovementConfirmation;
@@ -105,7 +105,7 @@
// third step, compute actual order with priorities and actual quantities
BookArticleResult bookArticleResult = buildStorageMovementOrder(bookArticleRequest, sortedStoredArticles);
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
boolean saveStorageMovementOrder = bookArticleResult.isSuccess();
@@ -136,7 +136,7 @@
Building building = bookArticleRequest.getBuilding();
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
UnavailableArticleJpaDao dao = persistenceContext.getUnavailableArticleDao();
@@ -336,7 +336,7 @@
/** Get a snapshot of the actual current state of the stock. */
protected Iterable<StoredArticle> getStoredArticles(Building building, Article article) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StoredArticleDao storedArticleDao = persistenceContext.getStoredArticleDao();
@@ -416,7 +416,7 @@
public void confirmStorageMovement(StorageMovementConfirmation confirmation, MagalieUser magalieUser) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StorageMovementOrderJpaDao storageMovementOrderDao =
persistenceContext.getStorageMovementOrderDao();
@@ -491,7 +491,7 @@
public void cancelStorageMovement(String storageMovementOrderId) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StorageMovementOrderJpaDao storageMovementOrderDao =
persistenceContext.getStorageMovementOrderDao();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,7 +23,7 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleJpaDao;
import com.franciaflex.magalie.persistence.dao.BuildingJpaDao;
import com.franciaflex.magalie.persistence.dao.CompanyJpaDao;
@@ -102,7 +102,7 @@
log.info("will restore database with fixture set");
}
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
if (cleanDatabase) {
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,7 +23,7 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.KanbanDao;
import com.franciaflex.magalie.persistence.dao.WarehouseDao;
import com.franciaflex.magalie.persistence.dao.WarehouseJpaDao;
@@ -55,7 +55,7 @@
public Warehouse getStore(String storeId) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
WarehouseJpaDao warehouseDao = persistenceContext.getWarehouseDao();
@@ -67,7 +67,7 @@
public double getDefinedQuantity(Article article, Warehouse destinationStore) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
KanbanDao dao = persistenceContext.getKanbanDao();
@@ -111,7 +111,7 @@
public List<Warehouse> getDestinationWarehouses(Building building) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
WarehouseDao warehouseDao = persistenceContext.getWarehouseDao();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,7 +24,7 @@
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao;
import com.franciaflex.magalie.persistence.entity.Building;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
@@ -45,7 +45,7 @@
public StorageMovementOrder findMovementOrderResume(MagalieUser magalieUser, Building building) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StorageMovementOrderDao storageMovementOrderDao = persistenceContext.getStorageMovementOrderDao();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,8 +23,8 @@
* #L%
*/
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.Locations;
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.StoredArticles;
import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
@@ -83,7 +83,7 @@
public List<StoredArticle> getReceivedArticles(Building building, String supplierId) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
StoredArticleDao storedArticleDao =
@@ -120,7 +120,7 @@
public ReceptionTask getReceptionTask(String storedArticleId) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
StoredArticleJpaDao storedArticleDao =
@@ -214,7 +214,7 @@
StoredArticles.getLocationFunction()));
// third step, add extra locations
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
LocationDao locationDao =
@@ -245,7 +245,7 @@
String storedArticleId = receptionConfirmation.getStoredArticleId();
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
StoredArticleJpaDao storedArticleDao =
@@ -290,7 +290,7 @@
public PreparedArticleReception getPreparedArticleReception(String barcode) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
PreparedArticleReceptionJpaDao dao =
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,7 +23,7 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
import com.franciaflex.magalie.persistence.dao.UnavailableArticleJpaDao;
import com.franciaflex.magalie.persistence.entity.DeliveredRequestedList;
@@ -52,7 +52,7 @@
Date now = serviceContext.getNow();
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
magalieReport.setReportDate(now);
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,7 +24,7 @@
*/
import com.franciaflex.magalie.persistence.DeliveredRequestedArticles;
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.RequestedArticles;
import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleJpaDao;
import com.franciaflex.magalie.persistence.dao.DeliveredRequestedListDao;
@@ -152,7 +152,7 @@
Preconditions.checkState(requestedArticle != null);
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
DeliveredRequestedArticleJpaDao dao = persistenceContext.getDeliveredRequestedArticleDao();
@@ -289,7 +289,7 @@
protected Set<RequestedArticle> getRequestedArticlesByPriority(List<RequestedArticle> requests, MagalieUser magalieUser) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
DeliveredRequestedListDao deliveredRequestedListDao = persistenceContext.getDeliveredRequestedListDao();
@@ -318,7 +318,7 @@
public List<DeliveredRequestedList> getAllDeliveredRequestedLists() {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
DeliveredRequestedListJpaDao dao = persistenceContext.getDeliveredRequestedListDao();
@@ -330,7 +330,7 @@
public void onStorageMovementConfirmation(StorageMovementOrder storageMovementOrder) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
DeliveredRequestedList deliveredRequestedList = getDeliveredRequestedList(storageMovementOrder.getId());
@@ -375,7 +375,7 @@
public void removeAffectation(MagalieUser magalieUser) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
DeliveredRequestedListDao dao =
@@ -404,7 +404,7 @@
public RequestedList getAffectationForUser(MagalieUser magalieUser) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
DeliveredRequestedListJpaDao dao = persistenceContext.getDeliveredRequestedListDao();
@@ -424,7 +424,7 @@
public List<String> getListTypes() {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
RequestedListJpaDao dao = persistenceContext.getRequestedListDao();
@@ -437,7 +437,7 @@
/** @return null if storage movement order is not about a requested-list (for example, kanban) */
public DeliveredRequestedList getDeliveredRequestedList(String storageMovementOrderId) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
DeliveredRequestedArticleJpaDao deliveredRequestedArticleDao =
@@ -473,7 +473,7 @@
public void cancelStorageMovement(StorageMovementOrder storageMovementOrder) {
- MagaliePersistenceContext persistenceContext =
+ JpaMagaliePersistenceContext persistenceContext =
serviceContext.getPersistenceContext();
DeliveredRequestedArticleJpaDao deliveredRequestedArticleDao =
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,8 +23,8 @@
* #L%
*/
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.Locations;
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.StoredArticles;
import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao;
@@ -95,7 +95,7 @@
public void confirmStorageMovement(MagalieUser magalieUser, String destinationWarehouseId, StoredArticle storedArticle) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
WarehouseJpaDao warehouseDao = persistenceContext.getWarehouseDao();
@@ -149,7 +149,7 @@
protected Location getDestinationLocation(Warehouse destinationWarehouse) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
LocationDao locationDao = persistenceContext.getLocationDao();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,7 +24,7 @@
*/
-import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.LocationDao;
import com.franciaflex.magalie.persistence.dao.LocationJpaDao;
import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
@@ -60,7 +60,7 @@
public Location getLocationByBarCode(String barCode, Building building) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
LocationDao locationDao = persistenceContext.getLocationDao();
@@ -71,7 +71,7 @@
public Location getLocationById(String id) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
LocationJpaDao locationDao = persistenceContext.getLocationDao();
@@ -82,7 +82,7 @@
public List<StoredArticle> getStoredArticlesInLocation(Location location) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StoredArticleDao storedArticleDao = persistenceContext.getStoredArticleDao();
@@ -108,7 +108,7 @@
Preconditions.checkArgument(storedArticleId != null);
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StoredArticleJpaDao storedArticleDao = persistenceContext.getStoredArticleDao();
@@ -119,7 +119,7 @@
public void confirmStorageTransfer(MagalieUser magalieUser, StoredArticle storedArticle, double quantity, Location destinationLocation) {
- MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
+ JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
StorageMovementJpaDao storageMovementDao = persistenceContext.getStorageMovementDao();
Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,6 +24,7 @@
*/
import com.franciaflex.magalie.MagalieApplicationConfig;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.services.service.FixturesService;
import org.junit.Rule;
import org.nuiton.jpa.junit.JpaEntityManagerRule;
@@ -65,8 +66,11 @@
EntityManager entityManager = getJpaEntityManagerRule().getEntityManager();
- serviceContext.setEntityManager(entityManager);
+ JpaMagaliePersistenceContext jpaMagaliePersistenceContext =
+ new JpaMagaliePersistenceContext(entityManager);
+ serviceContext.setPersistenceContext(jpaMagaliePersistenceContext);
+
this.serviceContext = serviceContext;
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationContext.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,11 +24,18 @@
*/
import com.franciaflex.magalie.MagalieApplicationConfig;
+import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
+import com.franciaflex.magalie.services.DefaultMagalieServiceContext;
+import com.franciaflex.magalie.services.MagalieServiceContext;
+import com.google.common.base.Preconditions;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.DateUtil;
-import java.util.Date;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.PersistenceException;
+import java.util.Map;
public class MagalieApplicationContext {
@@ -38,26 +45,80 @@
protected MagalieApplicationConfig applicationConfig;
- protected Date applicationConfigLastRead;
+ protected EntityManagerFactory entityManagerFactory;
public MagalieApplicationConfig getMagalieApplicationConfig() {
+ if (applicationConfig == null) {
+ applicationConfig = new MagalieApplicationConfig();
+ }
+ return applicationConfig;
+ }
- Date now = new Date();
+ public EntityManager newEntityManager() {
- if (applicationConfigLastRead == null || DateUtil.getDifferenceInDays(applicationConfigLastRead, now) > 1) {
+ if (entityManagerFactory == null) {
- applicationConfigLastRead = now;
+ MagalieApplicationConfig applicationConfig = getMagalieApplicationConfig();
- if (log.isDebugEnabled()) {
- log.debug("reloading config");
+ Map<String, String> jpaParameters = applicationConfig.getJpaParameters();
+
+ if (log.isInfoEnabled()) {
+ log.info("creating entity manager factory");
}
- applicationConfig = new MagalieApplicationConfig();
+ try {
+ entityManagerFactory = Persistence.createEntityManagerFactory("magaliePersistenceUnit", jpaParameters);
+
+ } catch (PersistenceException e) {
+
+ if (log.isErrorEnabled()) {
+ log.error("unable to create entity manager factory", e);
+ }
+
+ throw e;
+
+ }
+
}
- return applicationConfig;
+ EntityManager entityManager = entityManagerFactory.createEntityManager();
+ return entityManager;
+
}
+ public void close() {
+
+ if (entityManagerFactory != null && entityManagerFactory.isOpen()) {
+
+ if (log.isInfoEnabled()) {
+ log.info("stopping magalie, will close entity manager factory");
+ }
+
+ entityManagerFactory.close();
+
+ }
+
+ }
+
+ public MagalieServiceContext newServiceContext(EntityManager entityManager) {
+
+ Preconditions.checkArgument(
+ entityManager != null && entityManager.isOpen(),
+ "unable to find transaction for service context");
+
+ DefaultMagalieServiceContext serviceContext = new DefaultMagalieServiceContext();
+
+ JpaMagaliePersistenceContext jpaMagaliePersistenceContext =
+ new JpaMagaliePersistenceContext(entityManager);
+
+ serviceContext.setPersistenceContext(jpaMagaliePersistenceContext);
+
+ serviceContext.setMagalieApplicationConfig(applicationConfig);
+
+ return serviceContext;
+
+ }
+
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationListener.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationListener.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieApplicationListener.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -26,7 +26,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
@@ -34,14 +33,18 @@
private static final Log log = LogFactory.getLog(MagalieApplicationListener.class);
+ protected MagalieApplicationContext applicationContext;
+
@Override
public void contextInitialized(ServletContextEvent sce) {
- MagalieApplicationContext applicationContext = new MagalieApplicationContext();
+ if (log.isInfoEnabled()) {
+ log.info("init MagaLiE");
+ }
- ServletContext servletContext = sce.getServletContext();
+ applicationContext = new MagalieApplicationContext();
- servletContext.setAttribute(
+ sce.getServletContext().setAttribute(
MagalieApplicationContext.APPLICATION_CONTEXT_PARAMETER,
applicationContext);
@@ -49,6 +52,12 @@
@Override
public void contextDestroyed(ServletContextEvent sce) {
- // nothing to do
+
+ if (log.isInfoEnabled()) {
+ log.info("stopping MagaLiE");
+ }
+
+ applicationContext.close();
+
}
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -24,7 +24,6 @@
*/
import com.franciaflex.magalie.MagalieApplicationConfig;
-import com.franciaflex.magalie.services.DefaultMagalieServiceContext;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
import com.franciaflex.magalie.services.service.FixturesService;
@@ -54,7 +53,11 @@
@Override
public void init() {
- // nothing to do
+
+ if (log.isInfoEnabled()) {
+ log.info("init " + this);
+ }
+
}
@Override
@@ -64,11 +67,6 @@
if (action instanceof MagalieActionSupport) {
- Set<PropertyDescriptor> descriptors =
- BeanUtil.getDescriptors(
- action.getClass(),
- BeanUtil.IS_WRITE_DESCRIPTOR);
-
MagalieServiceContext serviceContext = newServiceContext(invocation);
if ( ! fixturesLoaded && serviceContext.getMagalieApplicationConfig().isDevMode()) {
@@ -95,6 +93,11 @@
}
+ Set<PropertyDescriptor> descriptors =
+ BeanUtil.getDescriptors(
+ action.getClass(),
+ BeanUtil.IS_WRITE_DESCRIPTOR);
+
for (PropertyDescriptor propertyDescriptor : descriptors) {
Class<?> propertyType = propertyDescriptor.getPropertyType();
@@ -114,7 +117,7 @@
} else if (MagalieApplicationConfig.class.isAssignableFrom(propertyType)) {
- toInject = getMagalieApplicationConfig(invocation);
+ toInject = getMagalieApplicationContext(invocation).getMagalieApplicationConfig();
}
@@ -128,17 +131,25 @@
}
}
- }
- return invocation.invoke();
- }
+ try {
- protected MagalieApplicationConfig getMagalieApplicationConfig(ActionInvocation invocation) {
+ return invocation.invoke();
- MagalieApplicationConfig applicationConfig = getMagalieApplicationContext(invocation).getMagalieApplicationConfig();
+ } finally {
- return applicationConfig;
+ serviceContext.getPersistenceContext().getEntityTransaction().rollback();
+ }
+
+ } else {
+
+ // not an action, just process
+
+ return invocation.invoke();
+
+ }
+
}
protected MagalieSession getMagalieSession(ActionInvocation invocation) {
@@ -175,32 +186,27 @@
protected MagalieServiceContext newServiceContext(ActionInvocation invocation) {
- DefaultMagalieServiceContext serviceContext = new DefaultMagalieServiceContext();
-
EntityManager entityManager = (EntityManager)
((HttpServletRequest) invocation
.getInvocationContext()
.get(StrutsStatics.HTTP_REQUEST))
.getAttribute(JpaTransactionFilter.JPA_TRANSACTION_REQUEST_ATTRIBUTE);
- Preconditions.checkNotNull(
- "unable to find transaction for request",
- entityManager);
-
- serviceContext.setEntityManager(entityManager);
-
MagalieApplicationContext magalieApplicationContext = getMagalieApplicationContext(invocation);
- MagalieApplicationConfig magalieApplicationConfig = magalieApplicationContext.getMagalieApplicationConfig();
+ MagalieServiceContext serviceContext =
+ magalieApplicationContext.newServiceContext(entityManager);
- serviceContext.setMagalieApplicationConfig(magalieApplicationConfig);
-
return serviceContext;
}
@Override
public void destroy() {
- // nothing to do
+
+ if (log.isInfoEnabled()) {
+ log.info("destroy " + this);
+ }
+
}
}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieJpaTransactionFilter.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieJpaTransactionFilter.java 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieJpaTransactionFilter.java 2013-06-04 15:16:27 UTC (rev 232)
@@ -23,25 +23,21 @@
* #L%
*/
-import com.franciaflex.magalie.MagalieApplicationConfig;
+import com.google.common.base.Preconditions;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.web.filter.JpaTransactionFilter;
import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import javax.persistence.PersistenceException;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
-import java.util.Map;
public class MagalieJpaTransactionFilter extends JpaTransactionFilter {
private static final Log log = LogFactory.getLog(MagalieJpaTransactionFilter.class);
- protected EntityManagerFactory entityManagerFactory;
+ protected MagalieApplicationContext applicationContext;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
@@ -49,66 +45,30 @@
super.init(filterConfig);
if (log.isInfoEnabled()) {
- log.info("start MagaLiE application");
+ log.info("init " + this);
}
- MagalieApplicationConfig applicationConfig = new MagalieApplicationConfig();
+ applicationContext = (MagalieApplicationContext)
+ filterConfig.getServletContext().getAttribute(
+ MagalieApplicationContext.APPLICATION_CONTEXT_PARAMETER);
- Map<String, String> jpaParameters = applicationConfig.getJpaParameters();
+ Preconditions.checkNotNull(applicationContext);
- if (log.isInfoEnabled()) {
- log.info("creating entity manager factory");
- }
-
- try {
-
- entityManagerFactory = Persistence.createEntityManagerFactory("magaliePersistenceUnit", jpaParameters);
-
- } catch (PersistenceException e) {
-
- if (log.isErrorEnabled()) {
- log.error("unable to create entity manager factory", e);
- }
-
- throw e;
-
- }
}
@Override
protected EntityManager createEntityManager(ServletRequest request) {
- EntityManager entityManager;
+ return applicationContext.newEntityManager();
- try {
-
- entityManager = entityManagerFactory.createEntityManager();
-
- } catch (PersistenceException e) {
-
- if (log.isErrorEnabled()) {
- log.error("unable to create entity manager", e);
- }
-
- throw e;
-
- }
-
- return entityManager;
-
}
@Override
public void destroy() {
if (log.isInfoEnabled()) {
- log.info("stopping magalie, will close entity manager factory");
+ log.info("destroy " + this);
}
- entityManagerFactory.close();
-
- if (log.isInfoEnabled()) {
- log.info("stopping MagaLiE");
- }
}
}
Modified: trunk/magalie-web/src/main/resources/log4j.properties
===================================================================
--- trunk/magalie-web/src/main/resources/log4j.properties 2013-06-03 10:05:46 UTC (rev 231)
+++ trunk/magalie-web/src/main/resources/log4j.properties 2013-06-04 15:16:27 UTC (rev 232)
@@ -20,11 +20,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# #L%
###
-log4j.rootCategory=ERROR, console, file
+log4j.rootCategory=WARN, console, file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d [%p] %c %m%n
+log4j.appender.console.layout.ConversionPattern=%d{yyyy/MM/dd hh:mm:ss} %5p (%F:%L) %m%n
# FileAppender : need to have magalie.log.dir in system properties at application startup
log4j.appender.file=org.apache.log4j.RollingFileAppender
@@ -36,7 +36,14 @@
log4j.logger.org.nuiton.web.filter.JpaTransactionFilter=TRACE
-# log4j.logger.com.franciaflex.magalie=TRACE
+log4j.logger.com.franciaflex.magalie=TRACE
-log4j.logger.com.franciaflex.magalie.services.service.RequestedArticleService=TRACE
-log4j.logger.com.franciaflex.magalie.services.service.ArticleStorageService=TRACE
+# log4j.logger.com.franciaflex.magalie.services.service.RequestedArticleService=TRACE
+# log4j.logger.com.franciaflex.magalie.services.service.ArticleStorageService=TRACE
+
+# log4j.logger.org.nuiton.jpa=TRACE
+
+# annoying errors
+# log4j.logger.org.hibernate.tool.hbm2ddl.SchemaExport=FATAL
+# log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=FATAL
+
1
0