Merge pull request #92 from dgray16/master

Minor updates
This commit is contained in:
Jeroen Baten 2016-05-16 16:06:32 +02:00
commit 7842530c71
29 changed files with 171 additions and 180 deletions

View file

@ -70,11 +70,12 @@ Changes
* Update JodaTime * Update JodaTime
* Update Jasper Reports * Update Jasper Reports
* Update EasyMock * Update EasyMock
* Update JDBC driver * Update JDBC drivers (PostgreSQL + MySQL)
* Update AspectJ Weaver * Update AspectJ Weaver
* Update JAX-RS API * Update JAX-RS API
* Update BeanShell * Update BeanShell
* Update Quartz Framework * Update Quartz Framework
* Update Hibernate
* Update LibrePlan version to 1.6.0 * Update LibrePlan version to 1.6.0

View file

@ -92,11 +92,11 @@ Develop LibrePlan in Intellij IDEA using MySQL
LibrePlan using MySQL you have to do 2 small changes: LibrePlan using MySQL you have to do 2 small changes:
* In section `Configure project to run`_ you have to set the *Profiles* to: * In section `Configure project to run`_ you have to set the *Profiles* to:
``-dev -mysql -userguide -reports -i18n`` ``dev mysql -userguide -reports -i18n``
* Remember that the three last profiles that are being disabled is just to save * Remember that the three last profiles that are being disabled is just to save
compilation time and not mandatory. However, to develop using MySQL you have compilation time and not mandatory. However, to develop using MySQL you have
to set at least the first two: ``-dev`` and ``-mysql``. to set at least the first two: ``dev`` and ``mysql``.
.. _LibrePlan: http://www.libreplan.com/ .. _LibrePlan: http://www.libreplan.com/

View file

@ -21,8 +21,8 @@
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.xnap.commons</groupId> <groupId>com.googlecode.gettext-commons</groupId>
<artifactId>maven-gettext-plugin</artifactId> <artifactId>gettext-maven-plugin</artifactId>
<configuration> <configuration>
<targetBundle>app.i18n.Messages</targetBundle> <targetBundle>app.i18n.Messages</targetBundle>
<poDirectory>${project.build.sourceDirectory}/../resources/i18n</poDirectory> <poDirectory>${project.build.sourceDirectory}/../resources/i18n</poDirectory>
@ -40,16 +40,16 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId> <artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<executions> <executions>
<execution> <execution>
<id>default</id> <id>default</id>
<phase>package</phase> <phase>package</phase>
<goals> <goals>
<goal>jar-no-fork</goal> <goal>jar-no-fork</goal>
</goals> </goals>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
@ -59,7 +59,7 @@
<dependencies> <dependencies>
<!-- Gettext commons --> <!-- Gettext commons -->
<dependency> <dependency>
<groupId>org.xnap.commons</groupId> <groupId>com.googlecode.gettext-commons</groupId>
<artifactId>gettext-commons</artifactId> <artifactId>gettext-commons</artifactId>
</dependency> </dependency>

View file

@ -31,20 +31,24 @@ import org.zkoss.util.Locales;
public class I18nHelper { public class I18nHelper {
private static HashMap<Locale, I18n> localesCache = new HashMap<Locale, I18n>(); private static HashMap<Locale, I18n> localesCache = new HashMap<>();
public static I18n getI18n() { public static I18n getI18n() {
if (localesCache.keySet().contains(Locales.getCurrent())) { if ( localesCache.keySet().contains(Locales.getCurrent()) ) {
return localesCache.get(Locales.getCurrent()); return localesCache.get(Locales.getCurrent());
} }
I18n i18n = I18nFactory.getI18n(I18nHelper.class, "app.i18n.Messages", Locales.getCurrent(), I18n i18n = I18nFactory.getI18n(
I18nHelper.class,
"app.i18n.Messages",
Locales.getCurrent(),
org.xnap.commons.i18n.I18nFactory.FALLBACK); org.xnap.commons.i18n.I18nFactory.FALLBACK);
localesCache.put(Locales.getCurrent(), i18n); localesCache.put(Locales.getCurrent(), i18n);
return i18n; return i18n;
} }
// TODO refactor symbol _
public static String _(String str) { public static String _(String str) {
return getI18n().tr(str); return getI18n().tr(str);
} }

View file

@ -14,7 +14,7 @@
<dependencies> <dependencies>
<!-- Gettext commons --> <!-- Gettext commons -->
<dependency> <dependency>
<groupId>org.xnap.commons</groupId> <groupId>com.googlecode.gettext-commons</groupId>
<artifactId>gettext-commons</artifactId> <artifactId>gettext-commons</artifactId>
</dependency> </dependency>
@ -149,7 +149,7 @@
<plugin> <plugin>
<groupId>org.liquibase</groupId> <groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId> <artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.0</version> <version>3.5.1</version>
<executions> <executions>
<execution> <execution>
<phase>process-resources</phase> <phase>process-resources</phase>
@ -178,7 +178,7 @@
<plugin> <plugin>
<groupId>org.liquibase</groupId> <groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId> <artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.0</version> <version>3.5.1</version>
<executions> <executions>
<execution> <execution>
<phase>process-resources</phase> <phase>process-resources</phase>

View file

@ -38,8 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Repository @Repository
@Scope(BeanDefinition.SCOPE_SINGLETON) @Scope(BeanDefinition.SCOPE_SINGLETON)
public class ConnectorDAO extends GenericDAOHibernate<Connector, Long> public class ConnectorDAO extends GenericDAOHibernate<Connector, Long> implements IConnectorDAO {
implements IConnectorDAO {
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
@ -50,8 +49,8 @@ public class ConnectorDAO extends GenericDAOHibernate<Connector, Long>
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public Connector findUniqueByName(String name) { public Connector findUniqueByName(String name) {
Criteria c = getSession().createCriteria(Connector.class).add( Criteria c = getSession().createCriteria(Connector.class).add(Restrictions.eq("name", name));
Restrictions.eq("name", name));
return (Connector) c.uniqueResult(); return (Connector) c.uniqueResult();
} }
@ -63,6 +62,7 @@ public class ConnectorDAO extends GenericDAOHibernate<Connector, Long>
private boolean existsOtherConnectorByName(Connector connector) { private boolean existsOtherConnectorByName(Connector connector) {
Connector found = findUniqueByName(connector.getName()); Connector found = findUniqueByName(connector.getName());
return found != null && found != connector; return found != null && found != connector;
} }

View file

@ -28,8 +28,7 @@ import org.libreplan.business.common.entities.JobSchedulerConfiguration;
* *
* @author Miciele Ghiorghis <m.ghiorghis@antoniusziekenhuis.nl> * @author Miciele Ghiorghis <m.ghiorghis@antoniusziekenhuis.nl>
*/ */
public interface IJobSchedulerConfigurationDAO extends public interface IJobSchedulerConfigurationDAO extends IGenericDAO<JobSchedulerConfiguration, Long> {
IGenericDAO<JobSchedulerConfiguration, Long> {
/** /**
* Returns all {@link JobSchedulerConfiguration} * Returns all {@link JobSchedulerConfiguration}
@ -52,8 +51,7 @@ public interface IJobSchedulerConfigurationDAO extends
* @param jobGroup * @param jobGroup
* @param jobName * @param jobName
*/ */
JobSchedulerConfiguration findByJobGroupAndJobName(String jobGroup, JobSchedulerConfiguration findByJobGroupAndJobName(String jobGroup, String jobName);
String jobName);
/** /**
* Returns true if there exists other @{link JobSchedulerConfiguration} with * Returns true if there exists other @{link JobSchedulerConfiguration} with
@ -63,8 +61,7 @@ public interface IJobSchedulerConfigurationDAO extends
* @param jobSchedulerConfiguration * @param jobSchedulerConfiguration
* the <code>{@link JobSchedulerConfiguration}</code> * the <code>{@link JobSchedulerConfiguration}</code>
*/ */
boolean existsByJobGroupAndJobNameAnotherTransaction( boolean existsByJobGroupAndJobNameAnotherTransaction(JobSchedulerConfiguration jobSchedulerConfiguration);
JobSchedulerConfiguration jobSchedulerConfiguration);
/** /**
* Returns unique {@link JobSchedulerConfiguration} for the specified * Returns unique {@link JobSchedulerConfiguration} for the specified
@ -75,6 +72,5 @@ public interface IJobSchedulerConfigurationDAO extends
* @param jobName * @param jobName
* the jobName * the jobName
*/ */
JobSchedulerConfiguration findUniqueByJobGroupAndJobNameAnotherTransaction( JobSchedulerConfiguration findUniqueByJobGroupAndJobNameAnotherTransaction(String jobGroup, String jobName);
String jobGroup, String jobName);
} }

View file

@ -38,9 +38,8 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Repository @Repository
@Scope(BeanDefinition.SCOPE_SINGLETON) @Scope(BeanDefinition.SCOPE_SINGLETON)
public class JobSchedulerConfigurationDAO extends public class JobSchedulerConfigurationDAO extends GenericDAOHibernate<JobSchedulerConfiguration, Long>
GenericDAOHibernate<JobSchedulerConfiguration, Long> implements implements IJobSchedulerConfigurationDAO {
IJobSchedulerConfigurationDAO {
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
@ -50,28 +49,24 @@ public class JobSchedulerConfigurationDAO extends
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public JobSchedulerConfiguration findByJobGroupAndJobName(String jobGroup, public JobSchedulerConfiguration findByJobGroupAndJobName(String jobGroup, String jobName) {
String jobName) { return (JobSchedulerConfiguration) getSession().createCriteria(JobSchedulerConfiguration.class)
return (JobSchedulerConfiguration) getSession()
.createCriteria(JobSchedulerConfiguration.class)
.add(Restrictions.eq("jobGroup", jobGroup)) .add(Restrictions.eq("jobGroup", jobGroup))
.add(Restrictions.eq("jobName", jobName)).uniqueResult(); .add(Restrictions.eq("jobName", jobName)).uniqueResult();
} }
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public List<JobSchedulerConfiguration> findByConnectorName( public List<JobSchedulerConfiguration> findByConnectorName(String connectorName) {
String connectorName) { Criteria c = getSession().createCriteria(JobSchedulerConfiguration.class)
Criteria c = getSession().createCriteria( .add(Restrictions.eq("connectorName", connectorName));
JobSchedulerConfiguration.class).add(
Restrictions.eq("connectorName", connectorName));
return ((List<JobSchedulerConfiguration>) c.list()); return ((List<JobSchedulerConfiguration>) c.list());
} }
@Override @Override
@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW) @Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
public boolean existsByJobGroupAndJobNameAnotherTransaction( public boolean existsByJobGroupAndJobNameAnotherTransaction(JobSchedulerConfiguration jobSchedulerConfiguration) {
JobSchedulerConfiguration jobSchedulerConfiguration) {
return existsOtherJobByGroupAndName(jobSchedulerConfiguration); return existsOtherJobByGroupAndName(jobSchedulerConfiguration);
} }
@ -82,18 +77,17 @@ public class JobSchedulerConfigurationDAO extends
* @param jobSchedulerConfiguration * @param jobSchedulerConfiguration
* the {@link JobSchedulerConfiguration} * the {@link JobSchedulerConfiguration}
*/ */
private boolean existsOtherJobByGroupAndName( private boolean existsOtherJobByGroupAndName(JobSchedulerConfiguration jobSchedulerConfiguration) {
JobSchedulerConfiguration jobSchedulerConfiguration) {
JobSchedulerConfiguration found = findByJobGroupAndJobName( JobSchedulerConfiguration found = findByJobGroupAndJobName(
jobSchedulerConfiguration.getJobGroup(), jobSchedulerConfiguration.getJobGroup(),
jobSchedulerConfiguration.getJobName()); jobSchedulerConfiguration.getJobName());
return found != null && found != jobSchedulerConfiguration; return found != null && found != jobSchedulerConfiguration;
} }
@Override @Override
@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW) @Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
public JobSchedulerConfiguration findUniqueByJobGroupAndJobNameAnotherTransaction( public JobSchedulerConfiguration findUniqueByJobGroupAndJobNameAnotherTransaction(String jobGroup, String jobName) {
String jobGroup, String jobName) {
return findByJobGroupAndJobName(jobGroup, jobName); return findByJobGroupAndJobName(jobGroup, jobName);
} }

View file

@ -55,7 +55,7 @@ public class Connector extends BaseEntity {
private String name; private String name;
private List<ConnectorProperty> properties = new ArrayList<ConnectorProperty>(); private List<ConnectorProperty> properties = new ArrayList<>();
/** /**
* Constructor for Hibernate. Do not use! * Constructor for Hibernate. Do not use!
@ -90,34 +90,33 @@ public class Connector extends BaseEntity {
} }
public Map<String, String> getPropertiesAsMap() { public Map<String, String> getPropertiesAsMap() {
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<>();
for (ConnectorProperty property : properties) { for (ConnectorProperty property : properties) {
map.put(property.getKey(), property.getValue()); map.put(property.getKey(), property.getValue());
} }
return map; return map;
} }
@AssertTrue(message = "connector name is already being used") @AssertTrue(message = "connector name is already being used")
public boolean isUniqueConnectorNameConstraint() { public boolean isUniqueConnectorNameConstraint() {
if (StringUtils.isBlank(name)) { if ( StringUtils.isBlank(name) ) {
return true; return true;
} }
IConnectorDAO connectorDAO = Registry.getConnectorDAO(); IConnectorDAO connectorDAO = Registry.getConnectorDAO();
if (isNewObject()) { if ( isNewObject() ) {
return !connectorDAO.existsByNameAnotherTransaction(this); return !connectorDAO.existsByNameAnotherTransaction(this);
} else { } else {
Connector found = connectorDAO Connector found = connectorDAO.findUniqueByNameAnotherTransaction(name);
.findUniqueByNameAnotherTransaction(name);
return found == null || found.getId().equals(getId()); return found == null || found.getId().equals(getId());
} }
} }
public boolean isActivated() { public boolean isActivated() {
return getPropertiesAsMap() return getPropertiesAsMap().get(PredefinedConnectorProperties.ACTIVATED).equalsIgnoreCase("Y");
.get(PredefinedConnectorProperties.ACTIVATED).equalsIgnoreCase(
"Y");
} }
/** /**
@ -126,23 +125,15 @@ public class Connector extends BaseEntity {
* @return true if connection values are valid * @return true if connection values are valid
*/ */
public boolean areConnectionValuesValid() { public boolean areConnectionValuesValid() {
String serverUrl = getPropertiesAsMap().get( String serverUrl = getPropertiesAsMap().get(PredefinedConnectorProperties.SERVER_URL);
PredefinedConnectorProperties.SERVER_URL);
try { try {
new URL(serverUrl); new URL(serverUrl);
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
return false; return false;
} }
if (StringUtils.isBlank(getPropertiesAsMap().get( return !StringUtils.isBlank(getPropertiesAsMap().get(PredefinedConnectorProperties.USERNAME)) &&
PredefinedConnectorProperties.USERNAME))) { !StringUtils.isBlank(getPropertiesAsMap().get(PredefinedConnectorProperties.PASSWORD));
return false;
}
if (StringUtils.isBlank(getPropertiesAsMap().get(
PredefinedConnectorProperties.PASSWORD))) {
return false;
}
return true;
} }
} }

View file

@ -41,12 +41,11 @@ public class ConnectorBootstrap implements IConnectorBootstrap {
@Override @Override
@Transactional @Transactional
public void loadRequiredData() { public void loadRequiredData() {
for (PredefinedConnectors predefinedConnector : PredefinedConnectors for (PredefinedConnectors predefinedConnector : PredefinedConnectors.values()) {
.values()) {
String name = predefinedConnector.getName(); String name = predefinedConnector.getName();
Connector connector = connectorDAO.findUniqueByName(name); Connector connector = connectorDAO.findUniqueByName(name);
if (connector == null) { if ( connector == null ) {
connector = Connector.create(name); connector = Connector.create(name);
connector.setProperties(predefinedConnector.getProperties()); connector.setProperties(predefinedConnector.getProperties());
connectorDAO.save(connector); connectorDAO.save(connector);

View file

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="use-capacity-instead-of-effort_duration-and-not_over_assignable" author="ogonzalez"> <changeSet id="use-capacity-instead-of-effort_duration-and-not_over_assignable" author="ogonzalez">
<comment>Convert from duration + notAssignable (not over assignable) to capacity property</comment> <comment>Convert from duration + notAssignable (not over assignable) to capacity property</comment>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="add-new-column-ldap-host" author="calvarinop"> <changeSet id="add-new-column-ldap-host" author="calvarinop">
<comment>Add new column to store ldap host</comment> <comment>Add new column to store ldap host</comment>
<addColumn tableName="configuration"> <addColumn tableName="configuration">

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet author="smontes" id="initial-database-creation-customer-comunication"> <changeSet author="smontes" id="initial-database-creation-customer-comunication">
<createTable tableName="customer_comunication"> <createTable tableName="customer_comunication">

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="change-column-notes-in-task_element-to-text" <changeSet id="change-column-notes-in-task_element-to-text"
author="jaragunde" dbms="postgresql"> author="jaragunde" dbms="postgresql">

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="add-id_cost_category-column-to-criterion-table" author="ltilve"> <changeSet id="add-id_cost_category-column-to-criterion-table" author="ltilve">
<comment>Add column to criterion table to store the relationship with cost category</comment> <comment>Add column to criterion table to store the relationship with cost category</comment>

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="adding-email_template-table" author="vova/jeroen"> <changeSet id="adding-email_template-table" author="vova/jeroen">
@ -25,10 +24,10 @@
tableName="email_template" tableName="email_template"
/> />
<createIndex tableName="email_template" indexName="language_index"> <createIndex tableName="email_template" indexName="language_index">
<column name="language"></column> <column name="language"/>
</createIndex> </createIndex>
<createIndex tableName="email_template" indexName="type_index"> <createIndex tableName="email_template" indexName="type_index">
<column name="type"></column> <column name="type"/>
</createIndex> </createIndex>
<sql> <sql>
INSERT INTO email_template VALUES(1, 0, 3, 'Task assigned to resource : Autogenerated content text', 'Autogenerated subject text'); INSERT INTO email_template VALUES(1, 0, 3, 'Task assigned to resource : Autogenerated content text', 'Autogenerated subject text');

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"> xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet author="mrego" id="initial-database-creation-1"> <changeSet author="mrego" id="initial-database-creation-1">
<createTable tableName="advance_assignment"> <createTable tableName="advance_assignment">

View file

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<changeSet id="resize-precision-in-planning_data" author="dpino"> <changeSet id="resize-precision-in-planning_data" author="dpino">
<comment>Resize precision for 'progress_by_duration' and 'progress_by_num_hours' fields</comment> <comment>Resize precision for 'progress_by_duration' and 'progress_by_num_hours' fields</comment>

View file

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
<include file="src/main/resources/db.changelog-database.xml"/> <include file="src/main/resources/db.changelog-database.xml"/>
<include file="src/main/resources/db.changelog-initial.xml"/> <include file="src/main/resources/db.changelog-initial.xml"/>

View file

@ -1,11 +1,11 @@
changeLogFile src/main/resources/db.changelog.xml changeLogFile: src/main/resources/db.changelog.xml
driver ${jdbcDriver.className} driver: ${jdbcDriver.className}
url ${dataSource.url} url: ${dataSource.url}
username ${dataSource.user} username: ${dataSource.user}
password ${dataSource.password} password: ${dataSource.password}
verbose true verbose: true
dropFirst false dropFirst: false
promptOnNonLocalDatabase false promptOnNonLocalDatabase: false
# If there will be an error with checksum use this command: # If there will be an error with checksum use this command:
#clearCheckSums true #clearCheckSums: true

View file

@ -50,7 +50,7 @@ import org.springframework.test.context.transaction.TransactionalTestExecutionLi
* @author Bob McCune * @author Bob McCune
* @version 1.0 * @version 1.0
*/ */
public class DBUnitTestExecutionListener extends TransactionalTestExecutionListener { class DBUnitTestExecutionListener extends TransactionalTestExecutionListener {
private static final Log logger = LogFactory.getLog(DBUnitTestExecutionListener.class); private static final Log logger = LogFactory.getLog(DBUnitTestExecutionListener.class);
@ -65,6 +65,7 @@ public class DBUnitTestExecutionListener extends TransactionalTestExecutionListe
DataSource dataSource = getDataSource(testContext); DataSource dataSource = getDataSource(testContext);
Connection conn = DataSourceUtils.getConnection(dataSource); Connection conn = DataSourceUtils.getConnection(dataSource);
IDatabaseConnection dbUnitConn = getDBUnitConnection(conn); IDatabaseConnection dbUnitConn = getDBUnitConnection(conn);
try { try {
IDataSet dataSets[] = getDataSets(testContext); IDataSet dataSets[] = getDataSets(testContext);
for (IDataSet dataSet : dataSets) { for (IDataSet dataSet : dataSets) {
@ -78,63 +79,65 @@ public class DBUnitTestExecutionListener extends TransactionalTestExecutionListe
private DataSource getDataSource(TestContext context) { private DataSource getDataSource(TestContext context) {
DataSource dataSource; DataSource dataSource;
Map beans = context.getApplicationContext().getBeansOfType( Map beans = context.getApplicationContext().getBeansOfType(DataSource.class);
DataSource.class);
if (beans.size() > 1) { if ( beans.size() > 1 ) {
dataSource = (DataSource) beans.get(DEFAULT_DATASOURCE_NAME); dataSource = (DataSource) beans.get(DEFAULT_DATASOURCE_NAME);
if (dataSource == null) {
throw new NoSuchBeanDefinitionException( if ( dataSource == null ) {
"Unable to locate default data source."); throw new NoSuchBeanDefinitionException("Unable to locate default data source.");
} }
} else { } else {
dataSource = (DataSource) beans.values().iterator().next(); dataSource = (DataSource) beans.values().iterator().next();
} }
return dataSource; return dataSource;
} }
private IDatabaseConnection getDBUnitConnection(Connection c) private IDatabaseConnection getDBUnitConnection(Connection c) throws DatabaseUnitException {
throws DatabaseUnitException
{
IDatabaseConnection conn = new DatabaseConnection(c); IDatabaseConnection conn = new DatabaseConnection(c);
DatabaseConfig config = conn.getConfig(); DatabaseConfig config = conn.getConfig();
config.setFeature("http://www.dbunit.org/features/qualifiedTableNames", // TODO resolve depracated method
true); config.setFeature("http://www.dbunit.org/features/qualifiedTableNames", true);
config.setProperty("http://www.dbunit.org/properties/tableType", config.setProperty("http://www.dbunit.org/properties/tableType", TABLE_TYPES);
TABLE_TYPES);
return conn; return conn;
} }
private IDataSet[] getDataSets(TestContext context) throws Exception { private IDataSet[] getDataSets(TestContext context) throws Exception {
String dataFiles[] = getDataLocations(context); String dataFiles[] = getDataLocations(context);
IDataSet dataSets[] = new IDataSet[dataFiles.length]; IDataSet dataSets[] = new IDataSet[dataFiles.length];
for (int i = 0; i < dataFiles.length; i++) { for (int i = 0; i < dataFiles.length; i++) {
Resource resource = new ClassPathResource(dataFiles[i]); Resource resource = new ClassPathResource(dataFiles[i]);
Class clazz = getDataSetType(context); Class clazz = getDataSetType(context);
Constructor con = clazz.getConstructor(InputStream.class); Constructor con = clazz.getConstructor(InputStream.class);
dataSets[i] = (IDataSet) con.newInstance(resource.getInputStream()); dataSets[i] = (IDataSet) con.newInstance(resource.getInputStream());
} }
return dataSets; return dataSets;
} }
protected Class getDataSetType(TestContext context) { private Class getDataSetType(TestContext context) {
Class<?> testClass = context.getTestClass(); Class<?> testClass = context.getTestClass();
DBUnitConfiguration config = testClass DBUnitConfiguration config = testClass.getAnnotation(DBUnitConfiguration.class);
.getAnnotation(DBUnitConfiguration.class);
return config.type(); return config.type();
} }
private String[] getDataLocations(TestContext context) { private String[] getDataLocations(TestContext context) {
Class<?> testClass = context.getTestClass(); Class<?> testClass = context.getTestClass();
DBUnitConfiguration config = testClass DBUnitConfiguration config = testClass.getAnnotation(DBUnitConfiguration.class);
.getAnnotation(DBUnitConfiguration.class);
if (config == null) { if ( config == null ) {
throw new IllegalStateException("Test class '" + testClass throw new IllegalStateException(
+ " has is missing @DBUnitConfiguration annotation."); "Test class '" + testClass + " has is missing @DBUnitConfiguration annotation.");
} }
if (config.locations().length == 0) { if ( config.locations().length == 0 ) {
throw new IllegalStateException( throw new IllegalStateException(
"@DBUnitConfiguration annotation doesn't specify any DBUnit configuration locations."); "@DBUnitConfiguration annotation doesn't specify any DBUnit configuration locations.");
} }
return config.locations(); return config.locations();
} }
} }

View file

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation=" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean id="dataSourceReal" <bean id="dataSourceReal"
class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"

View file

@ -213,8 +213,8 @@
--> -->
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.xnap.commons</groupId> <groupId>com.googlecode.gettext-commons</groupId>
<artifactId>maven-gettext-plugin</artifactId> <artifactId>gettext-maven-plugin</artifactId>
<configuration> <configuration>
<targetBundle>i18n.Messages</targetBundle> <targetBundle>i18n.Messages</targetBundle>
<poDirectory>${project.build.sourceDirectory}/../resources/i18n</poDirectory> <poDirectory>${project.build.sourceDirectory}/../resources/i18n</poDirectory>
@ -273,10 +273,6 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId> <artifactId>spring-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId> <artifactId>spring-context-support</artifactId>
@ -297,6 +293,10 @@
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-acl</artifactId> <artifactId>spring-security-acl</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<!-- Spring Test --> <!-- Spring Test -->
<dependency> <dependency>
@ -418,6 +418,8 @@
<groupId>org.apache.cxf</groupId> <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId> <artifactId>cxf-rt-rs-client</artifactId>
</dependency> </dependency>
<!-- Jackson -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId> <groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId> <artifactId>jackson-jaxrs-json-provider</artifactId>

View file

@ -297,7 +297,8 @@ public class SchedulerManager implements ISchedulerManager {
@Override @Override
public String getNextFireTime(JobSchedulerConfiguration jobSchedulerConfiguration) { public String getNextFireTime(JobSchedulerConfiguration jobSchedulerConfiguration) {
try { try {
CronTrigger trigger = (CronTrigger) this.scheduler.getTrigger(TriggerKey.triggerKey( CronTrigger trigger = (CronTrigger)
this.scheduler.getTrigger(TriggerKey.triggerKey(
jobSchedulerConfiguration.getJobName() + TRIGGER_SUFFIX, jobSchedulerConfiguration.getJobName() + TRIGGER_SUFFIX,
jobSchedulerConfiguration.getJobGroup() + TRIGGER_SUFFIX)); jobSchedulerConfiguration.getJobGroup() + TRIGGER_SUFFIX));

View file

@ -61,7 +61,8 @@ import static org.libreplan.web.I18nHelper._;
/** /**
* Controller for managing Order files * Controller for managing Order files.
*
* Created by * Created by
* @author Vova Perebykivskiy <vova@libreplan-enterprise.com> * @author Vova Perebykivskiy <vova@libreplan-enterprise.com>
* on 12.24.2015. * on 12.24.2015.
@ -69,6 +70,7 @@ import static org.libreplan.web.I18nHelper._;
public class OrderFilesController extends GenericForwardComposer { public class OrderFilesController extends GenericForwardComposer {
// TODO refactor Autowired?
@Autowired @Autowired
IConfigurationModel configurationModel; IConfigurationModel configurationModel;
@ -88,6 +90,7 @@ public class OrderFilesController extends GenericForwardComposer {
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp); super.doAfterCompose(comp);
// TODO resolve deprecated
comp.setVariable("orderFilesController", this, true); comp.setVariable("orderFilesController", this, true);
messages = new MessagesForUser(messagesContainer); messages = new MessagesForUser(messagesContainer);
} }
@ -99,15 +102,12 @@ public class OrderFilesController extends GenericForwardComposer {
if ( !(configurationModel.getRepositoryLocation() == null) ) if ( !(configurationModel.getRepositoryLocation() == null) )
repositoryDirectory = new File(configurationModel.getRepositoryLocation()); repositoryDirectory = new File(configurationModel.getRepositoryLocation());
if ( repositoryDirectory != null && repositoryDirectory.exists() ) return true; return repositoryDirectory != null && repositoryDirectory.exists();
return false;
} }
public boolean isUploadButtonDisabled(){ public boolean isUploadButtonDisabled(){
if ( isRepositoryExists() ) return false; return !isRepositoryExists();
return true;
} }
public ListitemRenderer getFilesRenderer(){ public ListitemRenderer getFilesRenderer(){
@ -119,6 +119,7 @@ public class OrderFilesController extends GenericForwardComposer {
Listcell nameCell = new Listcell(); Listcell nameCell = new Listcell();
listitem.appendChild(nameCell); listitem.appendChild(nameCell);
Label label = new Label(file.getName()); Label label = new Label(file.getName());
label.addEventListener("onClick", new EventListener() { label.addEventListener("onClick", new EventListener() {
@Override @Override
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
@ -130,6 +131,7 @@ public class OrderFilesController extends GenericForwardComposer {
Filedownload.save(fileToDownload.getAbsoluteFile(), null); Filedownload.save(fileToDownload.getAbsoluteFile(), null);
} }
}); });
label.setClass("label-highlight"); label.setClass("label-highlight");
label.setTooltiptext("Download file"); label.setTooltiptext("Download file");
nameCell.appendChild(label); nameCell.appendChild(label);
@ -170,7 +172,7 @@ public class OrderFilesController extends GenericForwardComposer {
if ( Messagebox.OK != status ) { if ( Messagebox.OK != status ) {
return; return;
} }
} catch (InterruptedException e) {} } catch (InterruptedException ignored) {}
if ( isRepositoryExists() ) { if ( isRepositoryExists() ) {
@ -206,20 +208,18 @@ public class OrderFilesController extends GenericForwardComposer {
public void upload() { public void upload() {
configurationModel.init(); configurationModel.init();
String directory = ""; String directory;
if ( isRepositoryExists() ){ if ( isRepositoryExists() ){
String projectCode = orderElementModel.getOrderElement().getCode(); String projectCode = orderElementModel.getOrderElement().getCode();
directory = configurationModel.getRepositoryLocation() + "orders" + "/" + projectCode; directory = configurationModel.getRepositoryLocation() + "orders" + "/" + projectCode;
try { try {
Fileupload fileupload = new Fileupload();
// Location of file: libreplan-webapp/src/main/webapp/planner/fileupload.zul // Location of file: libreplan-webapp/src/main/webapp/planner/fileupload.zul
fileupload.setTemplate("fileupload.zul"); Fileupload.setTemplate("fileupload.zul");
Media media = fileupload.get(); Media media = Fileupload.get();
File dir = new File(directory); File dir = new File(directory);
String filename = media.getName(); String filename = media.getName();
@ -277,13 +277,14 @@ public class OrderFilesController extends GenericForwardComposer {
public void openWindow(IOrderElementModel orderElementModel) { public void openWindow(IOrderElementModel orderElementModel) {
setOrderElementModel(orderElementModel); setOrderElementModel(orderElementModel);
if ( isRepositoryExists() ) updateListbox(); if ( isRepositoryExists() )
updateListbox();
} }
/** /**
* Listbox is updating after re set the model for it * Listbox is updating after re set the model for it
*/ */
public void updateListbox(){ private void updateListbox(){
OrderElement currentOrder = orderElementModel.getOrderElement(); OrderElement currentOrder = orderElementModel.getOrderElement();
filesList.setModel(new ListModelList(orderFileModel.findByParent(currentOrder))); filesList.setModel(new ListModelList(orderFileModel.findByParent(currentOrder)));
} }

View file

@ -135,7 +135,7 @@
username-parameter="j_username" username-parameter="j_username"
password-parameter="j_password"/> password-parameter="j_password"/>
<http-basic /> <http-basic />
<logout /> <logout logout-url="/j_spring_security_logout" />
<remember-me /> <remember-me />
<csrf disabled="true"/> <csrf disabled="true"/>

View file

@ -104,7 +104,11 @@
</div> </div>
</n:td> </n:td>
<n:td class="usuario">${i18n:_('user')}: ${templateCtrl.username}</n:td> <n:td class="usuario">${i18n:_('user')}: ${templateCtrl.username}</n:td>
<n:td><n:a href="${contextPath}/j_spring_security_logout" class="cerrar_sesion">[${i18n:_('Log out')}]</n:a></n:td> <n:td>
<n:a href="${contextPath}/j_spring_security_logout" class="cerrar_sesion">
[${i18n:_('Log out')}]
</n:a>
</n:td>
</n:tr> </n:tr>
</n:table> </n:table>
</n:div> </n:div>
@ -113,7 +117,6 @@
<center border="none"> <center border="none">
<borderlayout width="auto" height="100%"> <borderlayout width="auto" height="100%">
<!-- borderlayout class="main-layout" height="2000px" width="2000px"-->
<west class="perspectives-column" width="90px" > <west class="perspectives-column" width="90px" >
<vbox vflex="1" height="100%"> <vbox vflex="1" height="100%">
<hbox id="perspectiveButtonsInsertionPoint" sclass="toolbar-box global-commands" height="30px" width="100%"> <hbox id="perspectiveButtonsInsertionPoint" sclass="toolbar-box global-commands" height="30px" width="100%">

View file

@ -1,15 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean id="dataSourceReal" <bean id="dataSourceReal"
class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"
p:driverClass="${jdbcDriver.className}" p:jdbcUrl="${testDataSource.url}" p:driverClass="${jdbcDriver.className}"
p:username="${testDataSource.user}" p:password="${testDataSource.password}" p:jdbcUrl="${testDataSource.url}"
p:maxConnectionsPerPartition="10" p:username="${testDataSource.user}"
p:minConnectionsPerPartition="4" p:password="${testDataSource.password}"
p:partitionCount="3"/> p:maxConnectionsPerPartition="10"
p:minConnectionsPerPartition="4"
p:partitionCount="3"/>
<bean id="dataSource" <bean id="dataSource"
class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy"

31
pom.xml
View file

@ -128,16 +128,22 @@
</properties> </properties>
</profile> </profile>
<!-- MySQL profile <!-- MySQL profile -->
TODO change version mysql for JDK8
-->
<profile> <profile>
<id>mysql</id> <id>mysql</id>
<properties> <properties>
<!-- JDBC driver properties --> <!-- JDBC driver properties -->
<!--
If 6.X driver will not throw exceptions (with Timezone), use this configuration:
<jdbcDriver.className>com.mysql.cj.jdbc.Driver</jdbcDriver.className>
<dataSource.url>jdbc:mysql://localhost/libreplan${libreplan.mode}?useSSL=false</dataSource.url>
-->
<jdbcDriver.groupId>mysql</jdbcDriver.groupId> <jdbcDriver.groupId>mysql</jdbcDriver.groupId>
<jdbcDriver.artifactId>mysql-connector-java</jdbcDriver.artifactId> <jdbcDriver.artifactId>mysql-connector-java</jdbcDriver.artifactId>
<jdbcDriver.version>5.1.38</jdbcDriver.version> <jdbcDriver.version>5.1.39</jdbcDriver.version>
<jdbcDriver.className>com.mysql.jdbc.Driver</jdbcDriver.className> <jdbcDriver.className>com.mysql.jdbc.Driver</jdbcDriver.className>
<!-- Data source properties --> <!-- Data source properties -->
<dataSource.url>jdbc:mysql://localhost/libreplan${libreplan.mode}</dataSource.url> <dataSource.url>jdbc:mysql://localhost/libreplan${libreplan.mode}</dataSource.url>
@ -212,9 +218,9 @@
<!-- Gettext commons --> <!-- Gettext commons -->
<dependency> <dependency>
<groupId>org.xnap.commons</groupId> <groupId>com.googlecode.gettext-commons</groupId>
<artifactId>gettext-commons</artifactId> <artifactId>gettext-commons</artifactId>
<version>0.9.6</version> <version>0.9.8</version>
</dependency> </dependency>
<!-- <!--
@ -612,12 +618,12 @@
<dependency> <dependency>
<groupId>org.liquibase</groupId> <groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId> <artifactId>liquibase-core</artifactId>
<version>3.5.0</version> <version>3.5.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.liquibase</groupId> <groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId> <artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.0</version> <version>3.5.1</version>
</dependency> </dependency>
<!-- jqPlot --> <!-- jqPlot -->
@ -761,8 +767,8 @@
<version>3.5.1</version> <version>3.5.1</version>
<configuration> <configuration>
<verbose>true</verbose> <verbose>true</verbose>
<source>1.7</source> <source>1.8</source>
<target>1.7</target> <target>1.8</target>
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>
@ -820,8 +826,7 @@
<!-- Log to the console. --> <!-- Log to the console. -->
<requestLog implementation="org.mortbay.jetty.NCSARequestLog"> <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
<!-- <!--
This do anything for Jetty, This do anything for Jetty, but is a workaround for a Maven bug
but is aworkaround for a Maven bug
that prevents the requestLog from being set. that prevents the requestLog from being set.
--> -->
<append>true</append> <append>true</append>
@ -891,7 +896,7 @@
<plugin> <plugin>
<groupId>org.liquibase</groupId> <groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId> <artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.0</version> <version>3.5.1</version>
</plugin> </plugin>
</plugins> </plugins>