Migrating to 1.1.0#

1.1.0 is a big update of owsi-core 0.x versions. It includes a major package rename, a lot of updates :

  • move to Java 8, Tomcat 8.5 stack

  • introduce Java 8 lambdas, streams; reworked predicates, …

  • bindgen optimizations (at compilation time) with lambda

  • hibernate update (5.2 -> 5.3)

  • bootstrap 4 (wicket & bootstrap 3 code kept for compatibility)

  • fontawesome 5 (fontawesome 4 kept for compatibility)

  • wicket 8.x

  • removed deprecated early target definition in linkdescriptor API

  • deprecated GenericListItem removed and replaced by ReferenceData

  • migration to select2 from wicketstuff

  • maven-release-plugin is replaced by jgitflow plugin

  • and others…

Detailed explanations and migration plan can be found from this page.

This is the first official release of igloo-project, forked from OWSI-Core project.

Detailed modifications#

Others#

Renamed configuration#

hibernate.defaultSchema is renamed db.schema as it is used by flyway. You need to rename it in your configuration.properties.

Updated#

Infinispan#

With jgroups 4.0, Infinispan don’t use any longer oob and internal threads. You have to remove all internal_thread_pool.*, oob_thread_pool.* and thread_pool.queue_enabled settings in your jgroups configuration (*jgroup*.xml files).

See http://planet.jboss.org/post/removing_thread_pools_in_jgroups_4_0

All references to org.jgroups.Address must be replaced with org.iglooproject.infinispan.model.AddressWrapper (as Address is no longer Serializable, AddressWrapper handles Serialization).

Mockito#

Mockito is upgraded to 2.x version. You way need to rewrite some tests in your projects.

We recommend to exclude mockito 2.x dependency as a first step and check your test results without any rewrite, then to update mockito once all your tests are fixed.

No longer supported#

JDK 7#

JDK 7 support is removed as planned.

Tomcat 7#

Tomcat 7 is no longer supported. Servlet 3.1 is targetted, and so Tomcat 8.5 is needed.

JFreeChart#

Dependency management entry removed from parent pom. If your project use JFreeChart, declare dependency inside your project’s pom.

Maven#

  • unused property igloo.gson.version is removed

Password encoding#

Note

CoreLowerCaseShaPasswordEncoder, Md5PasswordEncoder, CoreShaPasswordEncoder removed (Spring Security 5 update related)

To know if your application is compatible with new password encoding, please check stored passwords. If your encoded passwords all start with $2a$ (bcrypt marker), your application may be compatible.

If this is the case, you need to update your hashed password by prefixing it {bcrypt} with prefix as the new PasswordEncoder is a delegating one, that choose the correct PasswordEncoder based on this prefix. This PasswordEncoder uses bcrypt to hash new passwords.

If not you need to write your own password encoder based on code from previous versions. Please take care of case insensitive check if CoreLowerCaseShaPasswordEncoder was used.

This page https://en.wikipedia.org/wiki/Bcrypt, your application configuration, and hashed password patterns may allow you to identify password encoder behavior and identify needed use-cases.

If you upgrade your application, you should take into consideration to handle all new passwords with modern hashing (use encoded password prefix to switch encoder behavior).

You should also consider this paragraph from Spring documentation

Property security.passwordSalt and method DefaultJpaSecurityConfig.getPasswordSalt() are removed.

YUI Compressor#

YUI Compressor (maven plugin, minification at build time) is removed as it was no longer used to provide minification (handled internally at runtime by wicket).

I you use YUI Compressor, you need to include your maven plugin configuration inside your project.

maven-release-plugin#

Removed. Use jgitflow or reconfigure release plugin in your project.

tomcat-jdbc#

We use HikariCP as database pool provider. tomcat-jdbc is no longer used. Switch to HikariCP.

As tomcat-jdbc is a provided dependency (included in tomcat), this may not affect your web-application. It may affect your tests or main scripts: if this is the case, you need to ensure that tomcat-jdbc dependency connfiguration is correct.

Joda-Time#

Joda-Time is removed from dependency; you can continue to use it by re-adding this dependency to your project.

Session - redirectUrl#

Igloo mechanisms to handle post-login redirectUrl are completely removed. You should use easily spring-security based one.

Removed methods are, on AbstractCoreSession:

  • signOutWithoutCleaningUpRedirectUrl

  • registerRedirectUrl

  • getRedirectUrl

  • consumeRedirectUrl

  • registerRedirectPageLinkDescriptor

  • getRedirectPageLinkDescriptor

If you use these methods, you should check how you handle your login success. If you use LoginSuccessPage (wicket-more), then Spring-Security redirect should work.

Here are the use-cases to check that there are no regressions on your application:

  • login to default home page; logout

  • visit a protected page; you should be redirect to it after login; logout

  • login with a wrong password; check error message

  • visit a protected and forbidden page; you should be redirected to default home page with an error message

Javascript#

The following dependencies are split from igloo-component-wicket-more and marked as optional dependencies (you need to add them manually in your projects to use them):

  • jquery.json

  • jquery.carouFredSel

  • jquery.fancybox

New features#

Test tooling#

A new igloo-dependency-test provides basic dependencies for tests. You can use this dependency in place of junit, mockito, spring-test, … dependencies.

org.iglooproject.jpa.junit.AbstractTestCase and org.iglooproject.jpa.EntityManagerExecutionListener are moved in a new igloo-dependency-jpa-test module. If you want to use them, add this new dependency with scope test, and fix your imports.

Bootstrap 4#

Bootstrap 4 is available and used by basic-application archetype.

Codebase for bootstrap 3 is still available and unchanged.

JNDI Datasource#

Configuration of JNDI can be done with a configuration switch. Please see Use a JDNI datasource

Migration script#

The following script intends to help initiating migration by dealing with dump replacements.

Warning

As is, the script move from version 0.14 to 1.1. Please replace version numbers in the first block to adjust to your version.

#! /bin/bash

## POM renaming
while read line; do
find . -type f -name "pom.xml" -exec sed -i "${line}" {} +
done <<EOF
s@Nexus OWSI Core@Nexus Igloo@g
s@fr\.openwide\.core@org.iglooproject@g
s@owsi-core@igloo@g
s@<version>0\.14@<version>1.1.0@g
s@<igloo.version>0\.14@<igloo.version>1.1.0@g
s@projects\.openwide\.fr/services/nexus/content/repositories/igloo-snapshots@nexus.tools.kobalt.fr/repository/igloo-snapshots/@g
s@projects\.openwide\.fr/services/nexus/content/repositories/igloo@nexus.tools.kobalt.fr/repository/igloo/@g
EOF

## Package renaming
find . -type f \( -name "*.xml" -o -name "*.java" -o -name "*.properties" \)  -exec sed -i 's@fr\.openwide\.core@org.iglooproject@g' {} +

## GenericListItem -> GenericBasicReferenceData
while read line; do
find .  -type f -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.jpa.more.business.generic.model.GenericListItem/org.iglooproject.jpa.more.business.referencedata.model.GenericBasicReferenceData/g
s/\\\Qorg.iglooproject.jpa.more.business.generic.query.AbstractGenericListItemHibernateSearchSearchQueryImpl/org.iglooproject.jpa.more.business.referencedata.search.GenericReferenceDataSearchQueryImpl/g
s/\\\QAbstractGenericListItemHibernateSearchSearchQueryImpl/GenericReferenceDataSearchQueryImpl/g
s/\\\Qorg.iglooproject.jpa.more.business.generic.query.IGenericListItemSearchQuery/org.iglooproject.jpa.more.business.referencedata.search.IGenericBasicReferenceDataSearchQuery/g
s/\\\QIGenericListItemSearchQuery/IGenericBasicReferenceDataSearchQuery/g
s/\\\Qorg.iglooproject.jpa.more.business.generic.service.IGenericListItemService/org.iglooproject.jpa.more.business.referencedata.service.IGenericBasicReferenceDataService/g
s/\\\QIGenericListItemService/IGenericBasicReferenceDataService/g
s/\\\Qorg.iglooproject.wicket.more.rendering.GenericListItemRenderer/org.iglooproject.wicket.more.rendering.GenericBasicReferenceDataRenderer/g
s/\\\QGenericListItemRenderer/GenericBasicReferenceDataRenderer/g
s/\\\QGenericListItem/GenericBasicReferenceData/g
EOF

## Class moved
while read line; do
find .  -type f -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.confirm.component.AjaxConfirmLink/org.iglooproject.wicket.more.markup.html.template.js.bootstrap.confirm.component.AjaxConfirmLink/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.behavior.AjaxModalOpenBehavior/org.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.behavior.AjaxModalOpenBehavior/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.component.AbstractAjaxModalPopupPanel/org.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.component.AbstractAjaxModalPopupPanel/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.component.DelegatedMarkupPanel/org.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.component.DelegatedMarkupPanel/g
s/\\\Qorg.iglooproject.jpa.more.business.generic.model.EnabledFilter/org.iglooproject.jpa.more.business.generic.model.search.EnabledFilter/g
s/\\\Qorg.iglooproject.spring.config.ExtendedTestApplicationContextInitializer/org.iglooproject.config.bootstrap.spring.ExtendedTestApplicationContextInitializer/g
s/\\\Qorg.retzlaff.select2.Select2Behavior/org.wicketstuff.select2.Select2Behavior/g
s/\\\Qorg.iglooproject.wicket.more.common.WorkInProgressPopup/org.iglooproject.wicket.more.common.component.WorkInProgressPopup/g
EOF

## Various renaming
while read line; do
find .  -type f -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\QOWSI_CORE_VERSION/IGLOO_VERSION/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.action.AbstractAjaxAction/org.iglooproject.wicket.more.markup.html.action.IAjaxAction/g
s/\\\QAbstractAjaxAction/IAjaxAction/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.factory.AbstractDetachableFactory/org.iglooproject.wicket.more.markup.html.factory.IDetachableFactory/g
s/\\\QAbstractDetachableFactory/IDetachableFactory/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.action.AbstractOneParameterAjaxAction/org.iglooproject.wicket.more.markup.html.action.IOneParameterAjaxAction/g
s/\\\QAbstractOneParameterAjaxAction/IOneParameterAjaxAction/g
s/\\\Qorg.iglooproject.jpa.junit.AbstractTestCase/org.iglooproject.test.jpa.junit.AbstractTestCase/g
s/\\\QFormPanelMode/FormMode/g
s/\\\Qorg.apache.wicket.ajax.AjaxRequestTarget.AbstractListener/org.apache.wicket.ajax.AjaxRequestTarget.IListener/g
s/\\\QAbstractListener/IListener/g
s/\\\Qorg.apache.wicket.model.AbstractReadOnlyModel/org.apache.wicket.model.IModel/g
s/\\\QAbstractReadOnlyModel/IModel/g
s/\\\Qorg.retzlaff.select2.Select2Settings/org.wicketstuff.select2.Settings/g
s/\\\QSelect2Settings/Settings/g
s/\\\QfillSettings/fillSelect2Settings/g
EOF

## User modification
while read line; do
find .  -type f -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.jpa.security.service.AuthenticationUserNameComparison/org.iglooproject.jpa.security.service.AuthenticationUsernameComparison/g
s/\\\QAuthenticationUserNameComparison/AuthenticationUsernameComparison/g
s/\\\QauthenticationUserNameComparison/authenticationUsernameComparison/g
s/\\\QsetAuthenticationUserNameComparison/setAuthenticationUsernameComparison/g
s/\\\QgetUserName(/getUsername(/g
s/\\\QgetByUserName(/getByUsername(/g
s/\\\QsetUserName(/setUsername(/g
s/\\\Q.userName(/.username(/g
s/\\\Q.getByUserNameCaseInsensitive(/.getByUsernameCaseInsensitive(/g
s/\\\QLAST_NAME_SORT_FIELD_NAME/LAST_NAME_SORT/g
s/\\\QFIRST_NAME_SORT_FIELD_NAME/FIRST_NAME_SORT/g
s/\\\QUSER_NAME_SORT_FIELD_NAME/USERNAME_SORT/g
EOF

## Migration Bindgen
while read line; do
find .  -type f -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.commons.util.binding.AbstractCoreBinding/org.iglooproject.commons.util.binding.ICoreBinding/g
s/\\\QAbstractCoreBinding/ICoreBinding/g
s/\\\Qorg.bindgen.binding.AbstractBinding/org.bindgen.BindingRoot/g
s/\\\QAbstractBinding/BindingRoot/g
EOF

## Configuration ciManagement
while read line; do
find .  -type f \( -name "*.java" -o -name "web.xml" \) -exec sed -i "${line}" {} \;
done <<EOF
s/org.iglooproject.spring.config.AbstractExtendedApplicationContextInitializer/org.iglooproject.config.bootstrap.spring.AbstractExtendedApplicationContextInitializer/g
s/org.iglooproject.spring.config.annotation.ApplicationConfigurerBeanFactoryPostProcessor/org.iglooproject.config.bootstrap.spring.ApplicationConfigurerBeanFactoryPostProcessor/g
s/org.iglooproject.spring.config.ExtendedApplicationContextInitializer/org.iglooproject.config.bootstrap.spring.ExtendedApplicationContextInitializer/g
s/org.iglooproject.spring.config.spring.annotation.ApplicationDescription/org.iglooproject.config.bootstrap.spring.annotations.ApplicationDescription/g
s/org.iglooproject.spring.config.spring.annotation.ConfigurationLocations/org.iglooproject.config.bootstrap.spring.annotations.ConfigurationLocations/g
EOF

## Property config
find . -type f \( -name "*PropertyRegistryConfig.java" -o -name "*CoreApplicationPropertyConfig.java" \) \
 -exec perl -p -i -e 's/\Qprotected void register(/public void register(/g' {} \;

#! /bin/bash

while read line; do
find -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManager/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManager/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManagerStatement/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManagerStatement/g
s/\\\Qorg.iglooproject.wicket.more.WicketBootstrapPackage/org.iglooproject.wicket.bootstrap3.WicketBootstrapPackage/g
s/\\\Qorg.iglooproject.wicket.more.application.WicketBootstrapModule/org.iglooproject.wicket.bootstrap3.application.WicketBootstrapModule/g
s/\\\Qorg.iglooproject.wicket.more.config.spring.WicketBootstrapServiceConfig/org.iglooproject.wicket.bootstrap3.config.spring.WicketBootstrapServiceConfig/g
s/\\\Qorg.iglooproject.wicket.more.config.spring.AbstractBootstrapWebappConfig/org.iglooproject.wicket.bootstrap3.config.spring.AbstractBootstrapWebappConfig/g
s/\\\Qorg.iglooproject.wicket.more.console.navigation.page.ConsoleSignInPage/org.iglooproject.wicket.bootstrap3.console.navigation.page.ConsoleSignInPage/g
s/\\\Qorg.iglooproject.wicket.more.console.navigation.page.ConsoleAccessDeniedPage/org.iglooproject.wicket.bootstrap3.console.navigation.page.ConsoleAccessDeniedPage/g
s/\\\Qorg.iglooproject.wicket.more.console.navigation.page.ConsoleLoginFailurePage/org.iglooproject.wicket.bootstrap3.console.navigation.page.ConsoleLoginFailurePage/g
s/\\\Qorg.iglooproject.wicket.more.console.navigation.page.ConsoleLoginSuccessPage/org.iglooproject.wicket.bootstrap3.console.navigation.page.ConsoleLoginSuccessPage/g
s/\\\Qorg.iglooproject.wicket.more.console.resources.CoreWicketConsoleResources/org.iglooproject.wicket.bootstrap3.console.resources.CoreWicketConsoleResources/g
s/\\\Qorg.iglooproject.wicket.more.console.common.util.LinkUtils/org.iglooproject.wicket.bootstrap3.console.common.util.LinkUtils/g
s/\\\Qorg.iglooproject.wicket.more.console.common.component.JavaClassesListMultipleChoice/org.iglooproject.wicket.bootstrap3.console.common.component.JavaClassesListMultipleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.common.component.PropertyIdListPanel/org.iglooproject.wicket.bootstrap3.console.common.component.PropertyIdListPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.common.form.PropertyIdEditPopup/org.iglooproject.wicket.bootstrap3.console.common.form.PropertyIdEditPopup/g
s/\\\Qorg.iglooproject.wicket.more.console.template.ConsoleTemplate/org.iglooproject.wicket.bootstrap3.console.template.ConsoleTemplate/g
s/\\\Qorg.iglooproject.wicket.more.console.template.ConsoleConfiguration/org.iglooproject.wicket.bootstrap3.console.template.ConsoleConfiguration/g
s/\\\Qorg.iglooproject.wicket.more.console.template.style.ConsoleLessCssResourceReference/org.iglooproject.wicket.bootstrap3.console.template.style.ConsoleLessCssResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.console.template.style.ConsoleSignInLessCssResourceReference/org.iglooproject.wicket.bootstrap3.console.template.style.ConsoleSignInLessCssResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.console.template.style.CoreConsoleCssScope/org.iglooproject.wicket.bootstrap3.console.template.style.CoreConsoleCssScope/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.ehcache.page.ConsoleMaintenanceEhCachePage/org.iglooproject.wicket.bootstrap3.console.maintenance.ehcache.page.ConsoleMaintenanceEhCachePage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.ehcache.component.EhCacheProgressBarComponent/org.iglooproject.wicket.bootstrap3.console.maintenance.ehcache.component.EhCacheProgressBarComponent/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.ehcache.component.EhCacheCachePortfolioPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.ehcache.component.EhCacheCachePortfolioPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.ehcache.component.EhCacheCacheModificationPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.ehcache.component.EhCacheCacheModificationPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.file.page.ConsoleMaintenanceFilePage/org.iglooproject.wicket.bootstrap3.console.maintenance.file.page.ConsoleMaintenanceFilePage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.search.page.ConsoleMaintenanceSearchPage/org.iglooproject.wicket.bootstrap3.console.maintenance.search.page.ConsoleMaintenanceSearchPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.queuemanager.renderer.QueueTaskRenderer/org.iglooproject.wicket.bootstrap3.console.maintenance.queuemanager.renderer.QueueTaskRenderer/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.queuemanager.renderer.QueueManagerRenderer/org.iglooproject.wicket.bootstrap3.console.maintenance.queuemanager.renderer.QueueManagerRenderer/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.queuemanager.page.ConsoleMaintenanceQueueManagerPage/org.iglooproject.wicket.bootstrap3.console.maintenance.queuemanager.page.ConsoleMaintenanceQueueManagerPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.queuemanager.component.ConsoleMaintenanceQueueManagerNodePanel/org.iglooproject.wicket.bootstrap3.console.maintenance.queuemanager.component.ConsoleMaintenanceQueueManagerNodePanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.authentication.page.ConsoleMaintenanceAuthenticationPage/org.iglooproject.wicket.bootstrap3.console.maintenance.authentication.page.ConsoleMaintenanceAuthenticationPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.renderer.INodeRenderer/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.renderer.INodeRenderer/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.page.ConsoleMaintenanceInfinispanPage/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.page.ConsoleMaintenanceInfinispanPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanNodesPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanNodesPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanLocksPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanLocksPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanRolesPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanRolesPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanRolesRequestsPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanRolesRequestsPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanClusterPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.component.ConsoleMaintenanceInfinispanClusterPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.form.NodeDropDownSingleChoice/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.form.NodeDropDownSingleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.infinispan.form.ConsoleMaintenanceInfinispanRoleAssignPopup/org.iglooproject.wicket.bootstrap3.console.maintenance.infinispan.form.ConsoleMaintenanceInfinispanRoleAssignPopup/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.page.ConsoleMaintenanceTaskDescriptionPage/org.iglooproject.wicket.bootstrap3.console.maintenance.task.page.ConsoleMaintenanceTaskDescriptionPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.page.ConsoleMaintenanceTaskListPage/org.iglooproject.wicket.bootstrap3.console.maintenance.task.page.ConsoleMaintenanceTaskListPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskTypeListMultipleChoice/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskTypeListMultipleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskQueueIdListMultipleChoice/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskQueueIdListMultipleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskStatusPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskStatusPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskExecutionResultPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskExecutionResultPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskResultListMultipleChoice/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskResultListMultipleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskFilterPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskFilterPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskStatusListMultipleChoice/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskStatusListMultipleChoice/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskManagerInformationPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskManagerInformationPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskResultPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskResultPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.task.component.TaskResultsPanel/org.iglooproject.wicket.bootstrap3.console.maintenance.task.component.TaskResultsPanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.gestion.page.ConsoleMaintenanceGestionPage/org.iglooproject.wicket.bootstrap3.console.maintenance.gestion.page.ConsoleMaintenanceGestionPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.upgrade.page.ConsoleMaintenanceDonneesPage/org.iglooproject.wicket.bootstrap3.console.maintenance.upgrade.page.ConsoleMaintenanceDonneesPage/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.upgrade.component.DataUpgradePanel/org.iglooproject.wicket.bootstrap3.console.maintenance.upgrade.component.DataUpgradePanel/g
s/\\\Qorg.iglooproject.wicket.more.console.maintenance.template.ConsoleMaintenanceTemplate/org.iglooproject.wicket.bootstrap3.console.maintenance.template.ConsoleMaintenanceTemplate/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.bootstrap.WicketBootstrapComponentsModule/org.iglooproject.wicket.bootstrap3.markup.html.bootstrap.WicketBootstrapComponentsModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.bootstrap.component.BootstrapLabel/org.iglooproject.wicket.bootstrap3.markup.html.bootstrap.component.BootstrapLabel/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.bootstrap.component.BootstrapBadge/org.iglooproject.wicket.bootstrap3.markup.html.bootstrap.component.BootstrapBadge/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.collapse.BootstrapCollapseJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.collapse.BootstrapCollapseJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.dropdown.BootstrapDropdownModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.dropdown.BootstrapDropdownModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.dropdown.BootstrapDropDownJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.dropdown.BootstrapDropDownJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.confirm.BootstrapConfirmModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.confirm.BootstrapConfirmModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.confirm.BootstrapConfirmJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.confirm.BootstrapConfirmJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.tooltip.BootstrapTooltipModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.tooltip.BootstrapTooltipModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.tooltip.BootstrapTooltipJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.tooltip.BootstrapTooltipJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.popover.BootstrapPopoverJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.popover.BootstrapPopoverJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.popover.BootstrapPopoverModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.popover.BootstrapPopoverModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.alert.BootstrapAlertJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.alert.BootstrapAlertJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.SimpleOptions/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.SimpleOptions/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.affix.BootstrapAffixOptions/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.affix.BootstrapAffixOptions/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.affix.BootstrapAffixBehavior/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.affix.BootstrapAffixBehavior/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.affix.BootstrapAffixJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.affix.BootstrapAffixJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.tab.BootstrapTabModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.tab.BootstrapTabModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.tab.BootstrapTabJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.tab.BootstrapTabJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.BootstrapModalJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.BootstrapModalJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.BootstrapModalModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.BootstrapModalModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManager/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManager/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManagerStatement/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.statement.BootstrapModalManagerStatement/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.modal.BootstrapModalManagerJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.modal.BootstrapModalManagerJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.button.BootstrapButtonJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.button.BootstrapButtonJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.button.BootstrapButtonModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.button.BootstrapButtonModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.scrollspy.BootstrapScrollSpyJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.scrollspy.BootstrapScrollSpyJavaScriptResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.bootstrap.scrollspy.BootstrapScrollSpyModule/org.iglooproject.wicket.bootstrap3.markup.html.template.js.bootstrap.scrollspy.BootstrapScrollSpyModule/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.css.select2.Select2CssResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.css.select2.Select2CssResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.css.bootstrap.fontawesome.CoreFontAwesomeCssScope/org.iglooproject.wicket.bootstrap3.markup.html.template.css.bootstrap.fontawesome.CoreFontAwesome4CssScope/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.css.bootstrap.CoreBootstrap3CssScope/org.iglooproject.wicket.bootstrap3.markup.html.template.css.bootstrap.CoreBootstrap3CssScope/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.css.bootstrap.bootstrap.DefaultBootstrap3LessCssResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.css.bootstrap.bootstrap.DefaultBootstrap3LessCssResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.css.bootstrap.jqueryui.JQueryUiCssResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.css.bootstrap.jqueryui.JQueryUiCssResourceReference/g
s/\\\Qorg.iglooproject.wicket.more.markup.html.template.js.respond.RespondJavaScriptResourceReference/org.iglooproject.wicket.bootstrap3.markup.html.template.js.respond.RespondJavaScriptResourceReference/g
EOF

## CoreFrenchMiniamStem
while read line; do
find \( -name "*.java" -o -name "web.xml" \) -exec perl -p -i -e "${line}" {} +
done <<EOF
s@\\\Qorg.iglooproject.jpa.search.analysis.fr.CoreFrenchMinimalStemFilterFactory@org.iglooproject.lucene.analysis.french.CoreFrenchMinimalStemFilterFactory@g
s@\\\Qorg.iglooproject.jpa.search.analysis.fr.CoreFrenchMinimalStemmer@org.iglooproject.lucene.analysis.french.CoreFrenchMinimalStemmer@g
s@\\\Qorg.iglooproject.jpa.search.analysis.fr.CoreFrenchMinimalStemFilter@org.iglooproject.lucene.analysis.french.CoreFrenchMinimalStemFilter@g
EOF

## SLF4J
while read line; do
find \( -name "*.java" -o -name "web.xml" \) -exec perl -p -i -e "${line}" {} \;
done <<EOF
s/\\\Qorg.iglooproject.commons.util.logging.SLF4JLoggingListener/org.iglooproject.slf4j.jul.bridge.SLF4JLoggingListener/g
EOF

## Igloo commons split
while read line; do
find -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s@\\\Qorg.iglooproject.commons.util.FileUtils@org.iglooproject.commons.io.FileUtils@g
s@\\\Qorg.iglooproject.commons.util.registry.TFileRegistry@org.iglooproject.truezip.registry.TFileRegistry@g
EOF

## Wicket 8
while read line; do
find -name "*.java" -exec perl -p -i -e "${line}" {} \;
done <<EOF
s@\\\QonError(AjaxRequestTarget target, Form<?> form)@onError(AjaxRequestTarget target)@g
s@\\\QonSubmit(AjaxRequestTarget target, Form<?> form)@onSubmit(AjaxRequestTarget target)@g
s@\\\QonAfterSubmit(AjaxRequestTarget target, Form<?> form)@onAfterSubmit(AjaxRequestTarget target)@g
EOF

## Serializable
while read line; do
find -name '*.java' -exec perl -i -pe "$line" {} ';'
done <<EOF
s/\\\Qorg.iglooproject.commons.util.functional/org.iglooproject.functional/g
s/SerializableFunction(?!2)/SerializableFunction2/g
s/SerializablePredicate(?!2)/SerializablePredicate2/g
s/SerializableSupplier(?!2)/SerializableSupplier2/g
EOF

## Hibernate Search Sort
find . -type f -name "*.java" -exec sed -i 's/analyzer = @Analyzer(definition = HibernateSearchAnalyzer\.TEXT_SORT)/normalizer = @Normalizer(definition = HibernateSearchNormalizer.TEXT)/g' {} +