Author: bleny Date: 2013-06-27 11:54:30 +0200 (Thu, 27 Jun 2013) New Revision: 257 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: factorize oracle compatible mode in hibernate-oracle.properties ; add some validation in kanban ; use ' SANS' for locations code Modified: trunk/magalie-persistence/pom.xml trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/MagalieApplicationConfig.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java trunk/magalie-persistence/src/main/resources/hibernate-oracle.properties trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java Modified: trunk/magalie-persistence/pom.xml =================================================================== --- trunk/magalie-persistence/pom.xml 2013-06-27 09:16:36 UTC (rev 256) +++ trunk/magalie-persistence/pom.xml 2013-06-27 09:54:30 UTC (rev 257) @@ -145,7 +145,6 @@ <configuration> <type>CREATE</type> <hibernateProperties>${maven.src.dir}/main/resources/hibernate-oracle.properties</hibernateProperties> - <hibernateDialect>com.franciaflex.magalie.persistence.MagalieOracleHibernateDialect</hibernateDialect> <outputFile>${project.build.directory}/generated-sources/magalie-create-oracle.sql</outputFile> </configuration> </execution> @@ -157,14 +156,12 @@ <configuration> <type>DROP</type> <hibernateProperties>${maven.src.dir}/main/resources/hibernate-oracle.properties</hibernateProperties> - <hibernateDialect>com.franciaflex.magalie.persistence.MagalieOracleHibernateDialect</hibernateDialect> <outputFile>${project.build.directory}/generated-sources/magalie-drop-oracle.sql</outputFile> </configuration> </execution> </executions> <configuration> <target>SCRIPT</target> - <hibernateProperties>${maven.src.dir}/main/resources/magalie.properties</hibernateProperties> </configuration> <dependencies> <!-- for the oracle naming strategy --> Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/MagalieApplicationConfig.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/MagalieApplicationConfig.java 2013-06-27 09:16:36 UTC (rev 256) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/MagalieApplicationConfig.java 2013-06-27 09:54:30 UTC (rev 257) @@ -23,15 +23,17 @@ * #L% */ -import com.franciaflex.magalie.persistence.MagalieOracleHibernateDialect; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.config.ApplicationConfig; import org.nuiton.util.config.ArgumentsParserException; +import java.io.IOException; +import java.io.InputStream; import java.util.List; import java.util.Map; import java.util.Properties; @@ -42,11 +44,7 @@ protected ApplicationConfig applicationConfig; - protected ImmutableMap<String, String> oracleCompatibilityModeJpaParameters = - ImmutableMap.of( - "hibernate.ejb.naming_strategy", org.nuiton.jpa.hibernate.OracleCompliantImprovedNamingStrategy.class.getCanonicalName(), - "hibernate.dialect", MagalieOracleHibernateDialect.class.getCanonicalName() - ); + protected ImmutableMap<String,String> oracleCompatibilityModeJpaParameters; public MagalieApplicationConfig() { applicationConfig = new ApplicationConfig(); @@ -79,11 +77,32 @@ if (log.isInfoEnabled()) { log.info("oracle compatibility mode enabled: overriding settings with " + oracleCompatibilityModeJpaParameters); } - jpaParameters.putAll(oracleCompatibilityModeJpaParameters); + jpaParameters.putAll(getOracleCompatibilityModeJpaParameters()); } return jpaParameters; } + protected ImmutableMap<String, String> getOracleCompatibilityModeJpaParameters() { + if (oracleCompatibilityModeJpaParameters == null) { + InputStream inputStream = null; + try { + inputStream = getClass().getResourceAsStream("/hibernate-oracle.properties"); + Properties oracleCompatibilityModeProperties = new Properties(); + oracleCompatibilityModeProperties.load(inputStream); + oracleCompatibilityModeJpaParameters = Maps.fromProperties(oracleCompatibilityModeProperties); + IOUtils.closeQuietly(inputStream); + } catch (IOException e) { + if (log.isErrorEnabled()) { + log.error("should never occur", e); + } + throw new MagalieTechnicalException(e); + } finally { + IOUtils.closeQuietly(inputStream); + } + } + return oracleCompatibilityModeJpaParameters; + } + public boolean isDevMode() { boolean isDevMode = applicationConfig.getOptionAsBoolean(MagalieConfigOption.DEV_MODE.key); return isDevMode; 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-27 09:16:36 UTC (rev 256) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Locations.java 2013-06-27 09:54:30 UTC (rev 257) @@ -100,7 +100,7 @@ } public static String codeForWarehouseWithoutLocations() { - return "SANS"; + return " SANS"; } public static String codeForReceptionLocations() { Modified: trunk/magalie-persistence/src/main/resources/hibernate-oracle.properties =================================================================== --- trunk/magalie-persistence/src/main/resources/hibernate-oracle.properties 2013-06-27 09:16:36 UTC (rev 256) +++ trunk/magalie-persistence/src/main/resources/hibernate-oracle.properties 2013-06-27 09:54:30 UTC (rev 257) @@ -1 +1,2 @@ hibernate.ejb.naming_strategy=org.nuiton.jpa.hibernate.OracleCompliantImprovedNamingStrategy +hibernate.dialect=com.franciaflex.magalie.persistence.MagalieOracleHibernateDialect 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-27 09:16:36 UTC (rev 256) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/AbstractMagalieServiceTest.java 2013-06-27 09:54:30 UTC (rev 257) @@ -64,7 +64,7 @@ serviceContext.setMagalieApplicationConfig(getMagalieApplicationConfig()); - EntityManager entityManager = getJpaEntityManagerRule().getEntityManager(); + EntityManager entityManager = getJpaEntityManagerRule().newEntityManager(); JpaMagaliePersistenceContext jpaMagaliePersistenceContext = new JpaMagaliePersistenceContext(entityManager); Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-06-27 09:16:36 UTC (rev 256) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-06-27 09:54:30 UTC (rev 257) @@ -138,6 +138,14 @@ Company company = session.getCompany(); + if (destinationWarehouseId == null) { + + addFieldError("destinationWarehouseId", "Vous devez sélectionner un magasin de destination"); + + return INPUT; + + } + destinationWarehouse = service.getStore(destinationWarehouseId); // save used destination warehouse to propose it by default on next kanban