You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/07/05 10:44:05 UTC

[2/9] syncope git commit: [SYNCOPE-1024] New 'upgrade' module ready with tests, old 'migration' removed

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/core/upgrade/src/test/resources/testJDBCEnv.xml
----------------------------------------------------------------------
diff --git a/core/upgrade/src/test/resources/testJDBCEnv.xml b/core/upgrade/src/test/resources/testJDBCEnv.xml
new file mode 100644
index 0000000..daa2597
--- /dev/null
+++ b/core/upgrade/src/test/resources/testJDBCEnv.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+                           http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+  <bean id="driverClassName" class="java.lang.String">
+    <constructor-arg value="org.h2.Driver"/>
+  </bean>
+  <bean id="jdbcURL" class="java.lang.String">
+    <constructor-arg value="jdbc:h2:mem:syncopedb;DB_CLOSE_DELAY=-1"/>
+  </bean>
+  <bean id="username" class="java.lang.String">
+    <constructor-arg value="sa"/>
+  </bean>
+  <bean id="password" class="java.lang.String">
+    <constructor-arg value="sa"/>
+  </bean>
+  
+  <bean id="syncope20DataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+    <property name="driverClassName" ref="driverClassName"/>
+    <property name="url" ref="jdbcURL"/>
+    <property name="username" ref="username"/>
+    <property name="password" ref="password"/>
+  </bean>
+  
+  <bean id="syncope20DataSourceInit" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
+    <property name="dataSource" ref="syncope20DataSource"/>
+    <property name="databasePopulator">
+      <bean class="org.springframework.jdbc.datasource.init.ResourceDatabasePopulator">
+        <property name="continueOnError" value="true"/>
+        <property name="ignoreFailedDrops" value="true"/>
+        <property name="sqlScriptEncoding" value="UTF-8"/>
+        <property name="scripts">
+          <array>
+            <value type="org.springframework.core.io.Resource">
+              classpath:/syncopedb20.sql
+            </value>
+          </array>
+        </property>
+      </bean>
+    </property>
+  </bean>
+
+</beans>

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/getting-started/obtain.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/getting-started/obtain.adoc b/src/main/asciidoc/getting-started/obtain.adoc
index be92fac..3c7df2d 100644
--- a/src/main/asciidoc/getting-started/obtain.adoc
+++ b/src/main/asciidoc/getting-started/obtain.adoc
@@ -33,7 +33,7 @@ First approach, especially with administration console and end-user; does not re
 
 Getting ready in a few easy steps:
 
-. http://syncope.apache.org/downloads.html[download^] the standalone distribution
+. https://syncope.apache.org/downloads[download^] the standalone distribution
 . unzip the distribution archive
 . go into the created Apache Tomcat directory
 . start Apache Tomcat
@@ -96,31 +96,23 @@ Getting up and running quickly on Debian / Ubuntu. +
 *Difficult to extend beyond pre-sets.*
 
 Download::
-http://syncope.apache.org/downloads.html[Download^] the latest .deb packages
+https://syncope.apache.org/downloads[Download^] the latest .deb packages
 
 Prepare::
 . Install Apache Tomcat 8
 +
 [source,bash]
-sudo apt-get install tomcat8
-+
-[WARNING]
-*Ubuntu LTS 14.04 LTS* does not provide the tomcat8 package by default: you will need instead to download and manually
-install the following packages (from Ubuntu 15.04):
-http://packages.ubuntu.com/wily/all/libecj-java/download[libecj-java]
-http://packages.ubuntu.com/wily/all/libtomcat8-java/download[libtomcat8-java]
-http://packages.ubuntu.com/wily/all/tomcat8-common/download[tomcat8-common]
-http://packages.ubuntu.com/wily/all/tomcat8/download[tomcat8]
+$ sudo apt-get install tomcat8
 +
 . Install PostgreSQL
 +
 [source,bash]
-sudo apt-get install libpostgresql-jdbc-java postgresql postgresql-client
+$ sudo apt-get install libpostgresql-jdbc-java postgresql postgresql-client
 +
 . Use the PostgreSQL JDBC driver with Tomcat
 +
 [source,bash]
-sudo ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/
+$ sudo ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/
 +
 . Replace `JAVA_OPTS` in `/etc/default/tomcat8` with the following:
 +
@@ -135,22 +127,22 @@ Install::
 . Stop Tomcat
 +
 [source,bash]
-sudo service tomcat8 stop
+$ sudo service tomcat8 stop
 +
 . Install Apache Syncope core, console and enduser via the downloaded packages
 +
 [source,bash]
-sudo dpkg -i apache-syncope-*.deb
+$ sudo dpkg -i apache-syncope-*.deb
 +
 . Create a database for use with Apache Syncope
 +
 [source,bash]
-sudo SYNCOPE_USER="syncope" SYNCOPE_PASS="syncope" sh /usr/share/apache-syncope/dbinit-postgresql.sh
+$ sudo SYNCOPE_USER="syncope" SYNCOPE_PASS="syncope" sh /usr/share/apache-syncope/dbinit-postgresql.sh
 +
 . Start Tomcat
 +
 [source,bash]
-sudo service tomcat8 start
+$ sudo service tomcat8 start
 
 [[deb-components]]
 ==== Components
@@ -232,7 +224,7 @@ of `$CATALINA_HOME/conf/tomcat-users.xml` looks like:
 
 ==== Usage
 
-Once http://syncope.apache.org/downloads.html[downloaded^], double-click the JAR file or execute via the command-line:
+Once https://syncope.apache.org/downloads[downloaded^], double-click the JAR file or execute via the command-line:
 
 [source,bash]
 java -jar syncope-installer-*-uber.jar
@@ -455,7 +447,7 @@ ifeval::["{snapshotOrRelease}" == "release"]
 
 [subs="verbatim,attributes"]
 ----
-mvn archetype:generate \
+$ mvn archetype:generate \
     -DarchetypeGroupId=org.apache.syncope \
     -DarchetypeArtifactId=syncope-archetype \
     -DarchetypeRepository=http://repo1.maven.org/maven2 \
@@ -468,7 +460,7 @@ ifeval::["{snapshotOrRelease}" == "snapshot"]
 
 [subs="verbatim,attributes"]
 ----
-mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
+$ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
     -DarchetypeGroupId=org.apache.syncope \
     -DarchetypeArtifactId=syncope-archetype \
     -DarchetypeRepository=http://repository.apache.org/content/repositories/snapshots \
@@ -522,7 +514,7 @@ specified above) containing four modules: `common`, `core`, `console` and `endus
 You are now able to perform the first build via
 
 [source,bash]
-mvn clean install
+$ mvn clean install
 
 After downloading all of the needed dependencies, three WAR files will be produced:
 
@@ -558,7 +550,7 @@ made are lost.
 From the top-level directory of your project, execute:
 
 [source,bash]
-mvn -P all clean install
+$ mvn -P all clean install
 
 [WARNING]
 ====
@@ -578,7 +570,7 @@ endif::[]
 then, from the `enduser` subdirectory, execute:
 
 [source,bash]
-mvn -P embedded,all
+$ mvn -P embedded,all
 
 ===== Paths and Components
 
@@ -817,7 +809,7 @@ The Eclipse IDE plugin allows remote management of notification e-mail and repor
 [[eclipseplugin-installation]]
 ==== Installation
 
-After http://syncope.apache.org/downloads.html[download^], start the most recent Eclipse IDE distribution then go to 
+After https://syncope.apache.org/downloads[download^], start the most recent Eclipse IDE distribution then go to 
 `Help > Install New Software`:
 
 image::eclipse01.png[eclipse01]
@@ -881,7 +873,7 @@ The Netbeans IDE plugin allows remote management of notification e-mail and repo
 [[netbeansplugin-installation]]
 ==== Installation
 
-After http://syncope.apache.org/downloads.html[download^], start the most recent Netbeans IDE then go to 
+After https://syncope.apache.org/downloads[download^], start the most recent Netbeans IDE then go to 
 `Tools > Plugins`:
 
 image::netbeans01.png[netbeans01]

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
index 622f51f..e0088b5 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
@@ -163,7 +163,7 @@ straightforward: just add the `<profile>` below to `enduser/pom.xml`:
 Now, from the `enduser` subdirectory, execute:
 
 [source,bash]
-mvn -P embedded,debug
+$ mvn -P embedded,debug
 
 At this point your favourite IDE can be attached to the port `8000`.
 ====

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/reference-guide/workingwithapachesyncope/migration.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/migration.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/migration.adoc
deleted file mode 100644
index c2241d2..0000000
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/migration.adoc
+++ /dev/null
@@ -1,259 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-=== Migration from Apache Syncope 1.2
-
-Apache Syncope 2.0 brings
-https://cwiki.apache.org/confluence/display/SYNCOPE/Jazz[several enhancements and new features^], compared to the 1.2 release.
-
-For this reason, it is not possible to _update_ an existing 1.2 deployment, rather it is necessary to _migrate_ the
-whole configuration, users and roles to a brand new 2.0 deployment.
-
-==== Preparation
-
-With reference to the
-ifeval::["{backend}" == "html5"]
-http://syncope.apache.org/docs/getting-started.html[Apache Syncope Getting Started Guide,]
-endif::[]
-ifeval::["{backend}" == "pdf"]
-http://syncope.apache.org/docs/getting-started.pdf[Apache Syncope Getting Started Guide,]
-endif::[]
-perform the following steps:
-
-. Install the CLI application
-. Create a new Maven project for Apache Syncope 2.0 and then add the following dependency to `core/pom.xml`
-
-[source,xml,subs="verbatim,attributes"]
-----
-<dependency>
-  <groupId>org.apache.syncope.core</groupId>
-  <artifactId>syncope-core-migration</artifactId>
-  <version>{docVersion}</version>
-</dependency>
-----
-
-==== Migrate configuration
-
-[discrete]
-===== Export configuration from 1.2
-
-First, export the configuration from the 1.2 deployment via
-
-....
-curl -X GET -u username:password -o content.xml protocol://host:port/syncope/rest/configurations/stream
-....
-
-where `username`, `password`, `protocol`, `host` and `port` reflect the Java EE container installation for the 1.2
-deployment. +
-The configuration of the 1.2 deployment is now in the `content.xml` file.
-
-[discrete]
-===== Obtain configuration file for 2.0
-
-Now process the exported configuration of the 1.2 deployment to obtain a basic 2.0 configuration, by invoking the CLI as
-follows:
-
-.On GNU / Linux - Mac OS X
-....
-./syncopeadm.sh migrate --conf /path/to/content.xml /dest/path/to/MasterContent.xml
-....
-
-.On Windows
-....
-syncopeadm.bat migrate --conf \path\to\content.xml \dest\path\to\MasterContent.xml
-....
-
-The result of this invocation is the generated `MasterContent.xml` file and possibly an output message such as the following:
-
-....
-You are running: migrate --conf /path/to/content.xml /dest/path/to/MasterContent.xml
-
-Virtual items, require manual intervention:
-<?xml version='1.0' encoding='UTF-8'?><dataset>
-  <VirSchema key="virtualdata"/>
-  <VirSchema key="virtualPropagation"/>
-  <VirSchema key="rvirtualdata"/>
-  <VirSchema key="mvirtualdata"/>
-  <VirSchema READONLY="1" key="virtualReadOnly"/>
-  <MappingItem extAttrName="name" mapping_id="1" intAttrName="virtualdata"
-               mandatoryCondition="type == 'F'" password="0" purpose="BOTH"/>
-  <MappingItem password="0" mapping_id="11" extAttrName="givenname"
-               intAttrName="virtualReadOnly" mandatoryCondition="false" purpose="BOTH"/>
-  <MappingItem password="0" mapping_id="11" extAttrName="givenname"
-               intAttrName="virtualPropagation" mandatoryCondition="false" purpose="BOTH"/>
-  <MappingItem extAttrName="businessCategory" mapping_id="1"
-               intAttrName="rvirtualdata" mandatoryCondition="false" password="0" purpose="BOTH"/>
-  <MappingItem mapping_id="17" password="0" extAttrName="USERNAME"
-               intAttrName="virtualdata" mandatoryCondition="false" purpose="BOTH"/>
-  <MappingItem mapping_id="17" password="0" extAttrName="SURNAME"
-               intAttrName="virtualPropagation" mandatoryCondition="false" purpose="BOTH"/>
-</dataset>
-
-
- - Migration completed; file successfully created under /dest/path/to/MasterContent.xml
-....
-
-<<virtual,Virtual schemas>> and associated <<mapping,mapping>> cannot be automatically migrated: take note of the
-message above for further operations.
-
-[discrete]
-===== Finalize configuration for 2.0
-
-After putting the generated `MasterContent.xml` file under the `core/src/test/resources/domains` folder in the new 2.0
-Maven project, build and start in embedded mode, while always watching the log files under:
-
-* `core/target/log/`
-* `console/target/log/`
-* `enduser/target/log/`
-
-If errors are found, make appropriate corrections into `core/src/test/resources/domains/MasterContent.xml` - this might
-involve migrating custom classes originally developed for 1.2 into their respective
-<<customization-core,2.0 counterparts>>.
-
-When no exceptions are reported in the logs, log into the admin console and check if all configuration items
-(schema definitions, external resources, notifications, ...) were correctly migrated. If anything is missing, take care
-to re-add them manually.
-
-If using delegated administration under 1.2, reconstruct <<roles,roles>> and <<entitlements,entitlements>> under the
-new security model.
-
-Now, define the virtual schema and mapping items according to the output message obtained above when invoking the
-CLI.
-
-[WARNING]
-If making modifications via the admin console, do not forget to <<deal-with-internal-storage-export-import,export>>
-the updated configuration before shutting down the embedded mode, then use the downloaded file to update
-`core/src/test/resources/domains/MasterContent.xml`.
-
-Finally, verify that all operations (create, update, delete, propagate, sync / push) about users and roles used in the
-1.2 deployment are working fine (create, update, delete, propagate, pull / push) with users and groups in the 2.0
-Maven project.
-
-When everything works as expected, <<deal-with-internal-storage-export-import,export>>
-the updated configuration before shutting down the embedded mode and use the downloaded file to update both
-`core/src/main/resources/domains/MasterContent.xml` and `core/src/test/resources/domains/MasterContent.xml`.
-
-==== Migrate users and roles
-
-After deploying the 2.0 Maven project into one of supported <<javaee-container,Java EE containers>>, with internal
-storage set to one of supported <<dbms,DBMSes>>, ensure that the 1.2 deployment's internal storage DBMS is reachable.
-
-The steps below are to be performed on the 2.0 deployment.
-
-[discrete]
-===== Define migration <<anytypeclass>>
-
-Create the following <<plain,plain schemas>>:
-
-. `migrationCipherAlgorithm` - string, read-only
-. `migrationResources` - string, multi-value, read-only
-. `migrationMemberships` - string, multi-value, read-only
-
-Then, define the `migration` AnyTypeClass and assign the three plain schemas above.
-
-[discrete]
-===== Create migration <<connector-instance-details,Connector>>
-
-Create an instance of the https://connid.atlassian.net/wiki/display/BASE/Scripted+SQL[Scripted SQL^] bundle:
-
-. set connection details to the 1.2 deployment's internal storage DBMS
-. download the Groovy
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/tree/syncope-{docVersion}/core/migration/src/main/resources/scripted[scripts^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/master/core/migration/src/main/resources/scripted[scripts^]
-endif::[]
-and configure accordingly
-. assign the `SEARCH` and `SYNC` capabilities
-
-[discrete]
-===== Create migration <<external-resource-details,External Resource>> and <<mapping>>
-
-Create an External Resource for the Connector created above, and set the <<provision,provisioning>> rules for:
-
-* `USER` as `\\__ACCOUNT__`, with at least the following mapping:
-|===
-| Internal Attribute | External Attribute | Other
-
-| `username`
-| `username`
-| flagged as remote key, mandatory, purpose: `PULL`
-
-| `password`
-|
-| flagged as password, mandatory, purpose: `PULL`
-
-| `migrationCipherAlgorithm`
-| `cipherAlgorithm`
-| mandatory, purpose: `PULL`
-
-| `migrationResources`
-| `\\__RESOURCES__`
-| purpose: `PULL`
-
-|===
-* `GROUP` as `\\__GROUP__`,  with at least the following mapping:
-|===
-| Internal Attribute | External Attribute | Other
-
-| `name`
-| `name`
-| flagged as remote key, mandatory, purpose: `PULL`
-
-| `migrationResources`
-| `\\__RESOURCES__`
-| purpose: `PULL`
-
-| `migrationMemberships`
-| `\\__MEMBERSHIPS__`
-| mandatory, purpose: `PULL`
-
-|===
-
-[WARNING]
-More attributes should be added to the mapping information in order to pull values from the 1.2 deployments.
-
-[discrete]
-===== Setup migration <<tasks-pull,Pull Task>>
-
-Setup a pull task for the External Resource created above, set it for `FULL_RECONCILIATION` <<pull-mode,mode>> and
-configure the 
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java[MigrationPullActions^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/blob/master/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java[MigrationPullActions^]
-endif::[]
-class among <<pullactions>>.
-
-[discrete]
-===== Migrate
-
-Before actual migration, use the admin console features to explore the External Resource and check that all expected
-information is reported.
-
-Another check to perform is to run the pull task set up above with the <<dryrun,DryRun>> option and watch the execution
-results.
-
-Finally, execute the pull task and check the execution results.
-
-[TIP]
-If the number of users and roles to import from the 1.2 deployment is high, it is suggested to change the pull mode to
-`FILTERED_RECONCILIATION` for a relevant subset of entities to migrate, check the results and eventually switch back
-to `FULL_RECONCILIATION`.

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/flowablemodeler.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/flowablemodeler.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/flowablemodeler.adoc
index f7ff238..6cf0e68 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/flowablemodeler.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/flowablemodeler.adoc
@@ -38,7 +38,7 @@ endif::[]
 then build via
 
 ....
-mvn -P all clean install
+$ mvn -P all clean install
 ....
 
 At this point, copy the `console/target/flowable-modeler/` directory in the desired location of the host where the

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/reference-guide/workingwithapachesyncope/upgrade.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/upgrade.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/upgrade.adoc
new file mode 100644
index 0000000..f38daed
--- /dev/null
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/upgrade.adoc
@@ -0,0 +1,53 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+=== Upgrade from Apache Syncope 2.0
+
+Upgrading an existing Apache Syncope 2.0 deployment involves at least the following steps:
+
+. upgrade Core, Console and Enduser according to the latest
+https://cwiki.apache.org/confluence/display/SYNCOPE/Fusion[release notes^] available
+
+. full backup of existing DBMS used as <<persistence,internal storage>> for Apache Syncope 2.0 Core
+
+. https://syncope.apache.org/downloads[download^] and run the upgrade tool, which will generate the full set of SQL
+statements required to upgrade the internal storage to 2.1
+ .. once uncompressed, you will find a `lib` directory and two scripts: `syncopeupgrade.sh` and `syncopeupgrade.bat`,
+which will be used depending on the operating system
+ .. copy the JDBC driver JAR file compatible with the internal storage into the `lib` directory
+ .. run the tool as follows:
++
+[source,bash]
+$ ./syncopeupgrade.sh org.postgresql.Driver \
+ jdbc:postgresql://localhost:5432/syncope syncope syncope postgres \
+ upgrade.sql
++
+assuming that:
+ * `org.postgresql.Driver` is the JDBC driver class name
+ * you have a PostgreSQL instance running on localhost, listening on its default port 5432 with a database
+`syncope` fully accessible by user `syncope` with password `syncope`
+ * SQL statements are generated onto the `upgrade.sql` file
+
+. shutdown the Java EE container running Apache Syncope 2.0 Core
+
+. execute the SQL statements as generated above against the internal storage: in case of errors, apply manual
+corrections until everything runs clear; consider to restore from the backup taken above if needed, before executing
+the updated SQL statements again
+
+. after deploying Apache Syncope 2.1, start the Java EE container of Apache Syncope 2.1 Core and watch the log files
+to check for any error 

http://git-wip-us.apache.org/repos/asf/syncope/blob/027b6bdf/src/main/asciidoc/reference-guide/workingwithapachesyncope/workingwithapachesyncope.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/workingwithapachesyncope.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/workingwithapachesyncope.adoc
index 1ed9621..d106fa1 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/workingwithapachesyncope.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/workingwithapachesyncope.adoc
@@ -40,4 +40,4 @@ include::customization.adoc[]
 
 include::systemadministration/systemadministration.adoc[]
 
-include::migration.adoc[]
+include::upgrade.adoc[]