Manual Migration from Academus to Toro Portal
How can I MANUALLY migrate from Academus 2.x to uPortal 2.6.1-GA and the open source Toro components?
Manual Migration Procedure
This describes what activities the migration tool performs in the event you need to execute them manually.
Extract previous install settings
Create a properties file (previous-settings.properties) that contains these properties and previous settings as specified in previous settings.
Backup old Tomcat Directory
Rename INSTALLDIR/unicon/Academus/portal-tomcat-a to INSTALLDIR/unicon/Academus/portal-tomcat-a.old
Install Pre-installed Tomcat/Toro bundle
1) Locate and unzip the portal-tomcat-a.zip file that is located in the
toro-migrator-1.0.0-rc-1.jar file. Unzip into the directory INSTALLDIR/unicon/Academus.
2) Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/conf/server.xml to
INSTALLDIR/unicon/Academus/portal-tomcat-a/conf/server.xml
3) If migrating from Academus 2.0, remove the following elements from
INSTALLDIR/unicon/Academus/portal-tomcat-a/conf/server.xml
/Server/GlobalNamingResources/Resource[@name='jdbc/PortalDb']
/Server/GlobalNamingResources/ResourceParams[@name='jdbc/PortalDb']
/Server/Service/Engine/Host/Context[@path='/portal']
/Server/Service/Engine/Host/Context[@path='/AcademusApps']
/Server/Service/Engine/Host/Context[@path='/blojsom']
4) Copy the following from INSTALLDIR/unicon/Academus/portal-tomcat-a.old to
INSTALLDIR/unicon/Academus/portal-tomcat-a
webapps/portal/resources
webapps/portal/html/help
webapps/portal/WEB-INF/classes/net/unicon/portal/layout
webapps/portal/media/org/jasig/portal/layout/AL_TabColumn
webapps/portal/media/net/unicon/academusTheme/academus
webapps/portal/WEB-INF/classes/org/jasig/portal/layout/AL_TabColumn
5) If a windows installation, copy the following from
INSTALLDIR/unicon/Academus/portal-tomcat-a.old to
INSTALLDIR/unicon/Academus/portal-tomcat-a
jakarta
lib
conf/Jakarta_ISAPI.reg
conf/wrapper.conf
conf/workers.properties
conf/uriworkermap.properties
bin/wrapper.exe
Migrating Previous Portlet Configurations
Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/briefcase* to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-briefcase-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/content* to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-web-content-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/downloadservice.properties to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-messaging-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/downloadservice.properties to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-portlets-common/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/encryption.xml to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-briefcase-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/encryption.xml to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/encryption.xml to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-portlets-common/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/messaging* to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-messaging-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/messaging* to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-portlets-common/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/permissions* to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-permissions-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/xhtmlfilter.properties to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-web-content-portlet/WEB-INF/classes/config Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/blojsom to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-blojsom
Migrating Gateway Portlets
For each //param-value[text()='net.unicon.academus.apps.gateway.GatewayPortlet'] node in INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/web.xml, a servlet and servlet mapping needs to be added to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/WEB-INF/web.xml:
Get the SERVLET_NAME from servlet-name Get the PORTLET_GUID from init-param/param-name[text()='portlet-guid']/../param-value
Then add these elements to web.xml in their appropriate positions:
SERVLET_NAME SERVLET_NAME Wrapper Automated generated Portlet Wrapper org.jasig.portal.container.PortletServlet portlet-class net.unicon.academus.apps.gateway.GatewayPortlet portlet-guid toro-gateway-portlet.SERVLET_NAME SERVLET_NAME /SERVLET_NAME/*
Copy over the gateway portlet configurations. For each configPath(CONFIG_PATH) init-param value in INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/web.xml:
copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/CONFIG_PATH to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/CONFIG_PATH
Update each Gateway Portlet guid in the database from PORTLET_GUID to toro-gateway-portlet.SERVLET_NAME:
update up_channel_param set chan_parm_val='toro-gateway-portlet.SERVLET_NAME' where chan_parm_nm='portletDefinitionId' and chan_parm_val = 'PORTLET_GUID'");
Migration Permissions Portlet Settings
For each IMPORT_SOURCE (//*[name()='portlet-access']/*[name()='import']/@src) in INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/config/permissions-portlet.xml:
Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/AcademusApps/WEB-INF/classes/IMPORT_SOURCE to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-permissions-portlet/WEB-INF/classes/IMPORT_SOURCE
Migrate Blojsom
For each INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-blojsom/WEB-INF/*/blog.properties:
Replace blojsom/ with toro-blojsom/ in blog-base-url and blog-url properties
In INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/toro-blojsom/WEB-INF/academus_config.xml:
Replace java:comp/env/jdbc/blojsom with java:comp/env/jdbc/PortalDb
Migration Channel Configurations
Copy the following files from INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/portal/WEB-INF/classes/properties to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties:
AcademusImportService.properties jms-content.properties jms_cache.properties academus-apps-factory.properties rad.properties academus-apps-lms.properties rmi.properties academus-apps.properties session-policy academus-lms.properties unicon-service.properties academus-portal.properties velocity.properties common-factory.properties version.properties factoryImpl.properties
Migration uPortal Settings
Copy the following files from INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/portal/WEB-INF/classes/properties to /unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties:
EntityPropertyRegistry.xml Logger.properties browser.mappings drop_group_entity.xml global_dictionary.properties global_dictionary_ja_JP.properties media.properties mime.properties portal.properties proxyportlet.xml rdbm.properties resin.conf sample-jaas.conf security.properties serializer.properties services.xml uPortal.xml worker.properties PermissionsManagerRegistry.xml groups container
Copy the following files from INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/portal to /unicon/Academus/portal-tomcat-a/webapps/portal:
changepassword.jsp cscr.jsp hidden.html index.html index_option2.html index_option3.html main.html
Copy INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps/portal/WEB-INF/classes/log4j.properties to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/log4j.properties
Append the following to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/browser.mappings:
# Google probing bot Googlebot/2.*=1
Set the following properties in INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/academus-portal.properties:
net.unicon.portal.cscr.useCSCR=false
Set the following properties in INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/rdbm.properties:
poolPreparedStatements=true jdbcUsePool=true
Set the following properties in INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/portal.properties:
org.jasig.portal.services.HttpClientManager.poolSize=20 org.jasig.portal.PortalSessionManager.unauthenticatedUserSessionTimeout=0 org.jasig.portal.channels.portlet.CPortletAdapter.uniqueContainerName=Pluto-in-uPortal org.jasig.portal.layout.UserLayoutStoreFactory.implementation=org.jasig.portal.layout.dlm.RDBMDistributedLayoutStore org.jasig.portal.layout.UserLayoutManagerFactory.coreImplementation=org.jasig.portal.layout.dlm.DistributedLayoutManager org.jasig.portal.RDBMServices.PortalDatasourceJndiName=PortalDb org.jasig.portal.services.HttpClientManager.connectionTimeout=5000 org.jasig.portal.channels.adminnav.AdminNavigation.implementation=org.jasig.portal.channels.adminnav.provider.ListModel org.jasig.portal.layout.restrictions.IRestrictionManager.implementation=org.jasig.portal.layout.restrictions.alm.ALRestrictionManager org.jasig.portal.RDBMServices.jndiRetryDelay=60000 org.jasig.portal.PooledDataSourceFactory.implementation=org.jasig.portal.rdbm.pool.DBCPDataSourceFactory org.jasig.portal.RDBMServices.baseJndiContext=java:comp/env/jdbc org.jasig.portal.services.HttpClientManager.hostConnections=2
Remove the following properties from INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/portal.properties:
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelInstantiated org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelMovedInLayout org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderRemovedFromLayout org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionRemoved org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderMovedInLayout org.jasig.portal.services.StatsRecorder.threadPool_maxThreads org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionCreated org.jasig.portal.services.stats.StatsRecorderSettings.recordLogout org.jasig.portal.services.stats.StatsRecorderSettings.recordLogin org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRemovedFromLayout org.jasig.portal.services.StatsRecorder.threadPool_threadPriority org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRendered org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderAddedToLayout org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderUpdatedInLayout org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelAddedToLayout org.jasig.portal.services.stats.StatsRecorderFactory.implementation org.jasig.portal.services.StatsRecorder.threadPool_initialThreads org.jasig.portal.UserLayoutStoreFactory.implementation org.jasig.portal.RDBMServices.usePreparedStatements org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionDestroyed org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelUpdatedInLayout org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionPublished org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelTargeted org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionModified
Apache Migrations
Add the following JkMount directives to the INSTALLDIR/unicon/Academus/portal-apache/config/httpd.conf file:
JkMount /toro-blojsom/blog/* worker1 JkMount /toro-blojsom/xmlrpc/* worker1 JkMount /toro-blojsom/commentapi/* worker1 JkMount /toro-blojsom/atomapi/* worker1 JkMount /toro-portlets-common/services/* worker1 JkMount /toro-portlets-common/download worker1 JkMount /toro-portlets-common/downloadService worker1 JkMount /toro-portlets-common/spellcheck worker1 JkMount /toro-messaging-portlet/services/* worker1 JkMount /toro-briefcase-portlet/rendering/jsp/*.jsp worker1 JkMount /toro-gateway-portlet/rendering/jsp/*.jsp worker1 JkMount /toro-messaging-portlet/rendering/jsp/*.jsp worker1 JkMount /toro-permissions-portlet/rendering/jsp/*.jsp worker1 JkMount /toro-web-content-portlet/rendering/jsp/*.jsp worker1
Remove the following JkMount directives from INSTALLDIR/unicon/Academus/portal-apache/config/httpd.conf file:
JkMount /AcademusApps/* JkMount /blojsom/*
Add the following Redirects to the appropriate VirtualHost. Get PREVIOUS_PORTAL_URL from the previous Redirect settings:
Redirect /toro-briefcase-portlet/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-gateway-portlet/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-messaging-portlet/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-permissions-portlet/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-portlets-common/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-web-content-portlet/WEB-INF PREVIOUS_PORTAL_URL Redirect /toro-blojsom/WEB-INF PREVIOUS_PORTAL_URL
Remove the following Redirects from the appropriate VirtualHost:
Redirect /AcademusApps/* Redirect /blojsom/*
IIS/Tomcat Migrations (Windows)
Remove the following mounts from INSTALLDIR/unicon/Academus/portal-tomcat-a/conf/uriworkermap.properties:
/AcademusApps* /blojsom*
Add the following mounts to INSTALLDIR/unicon/Academus/portal-tomcat-a/conf/uriworkermap.properties:
/toro-blojsom/blog/*=worker1 /toro-blojsom/xmlrpc/*=worker1 /toro-blojsom/commentapi/*=worker1 /toro-blojsom/atomapi/*=worker1 /toro-portlets-common/services/*=worker1 /toro-portlets-common/download=worker1 /toro-portlets-common/downloadService=worker1 /toro-portlets-common/spellcheck=worker1 /toro-messaging-portlet/services/*=worker1 /toro-briefcase-portlet/rendering/jsp/*.jsp=worker1 /toro-gateway-portlet/rendering/jsp/*.jsp=worker1 /toro-messaging-portlet/rendering/jsp/*.jsp=worker1 /toro-permissions-portlet/rendering/jsp/*.jsp=worker1 /toro-web-content-portlet/rendering/jsp/*.jsp=worker1
Retokenize Tomcat
Replace the tokens in the following files with the values obtained from "Extract previous install settings":
unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/portal.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-blojsom.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-briefcase-portlet.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-gateway-portlet.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-messaging-portlet.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-permissions-portlet.xml unicon/Academus/portal-tomcat-a/conf/Standalone/localhost/toro-web-content-portlet.xml unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/ldap.xml unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/personDirectory.xml unicon/Academus/portal-tomcat-a/webapps/portal/WEB-INF/classes/properties/ToroPersonDirs.xml unicon/Academus/portal-tomcat-a/webapps/toro-blojsom/WEB-INF/default/blog.properties unicon/Academus/portal-tomcat-a/webapps/toro-blojsom/WEB-INF/web.xml unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/WEB-INF/classes/config/blog-default.xml unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/WEB-INF/classes/config/blog-EXAMPLE.xml unicon/Academus/portal-tomcat-a/webapps/toro-portlets-common/WEB-INF/web.xml unicon/Academus/portal-tomcat-a/webapps/toro-briefcase-portlet/WEB-INF/classes/log4j.properties unicon/Academus/portal-tomcat-a/webapps/toro-gateway-portlet/WEB-INF/classes/log4j.properties unicon/Academus/portal-tomcat-a/webapps/toro-messaging-portlet/WEB-INF/classes/log4j.properties unicon/Academus/portal-tomcat-a/webapps/toro-permissions-portlet/WEB-INF/classes/log4j.properties unicon/Academus/portal-tomcat-a/webapps/toro-portlets-common/WEB-INF/classes/log4j.properties unicon/Academus/portal-tomcat-a/webapps/toro-web-content-portlet/WEB-INF/classes/log4j.properties
Execute DB Migrations
Execute the platform specific sql migration script contained in toro-migrator-1.0.0-rc-1.jar. PREVIOUS_VERSION is either sphinx48 or toro13.
PREVIOUS_VERSION-to-toro-db-migration-PLATFORM.sql
Execute Cernunnos migrations
import/migrate.crn import org.jasig.portal.FilePatternPhrase.USE_DEFAULT_VALUE import/import.crn import org.jasig.portal.FilePatternPhrase.USE_DEFAULT_VALUE
Migrate Other Web Applications
Copy over any installed web application from INSTALLDIR/unicon/Academus/portal-tomcat-a.old/webapps to INSTALLDIR/unicon/Academus/portal-tomcat-a/webapps. Also if any of these web applications depend on shared libraries, these will also need to be copied over.
Set File Permissions (*nix)
Run the following commands to restore permissions chown -R nobody:nobody INSTALLDIR/unicon/Academus chown -R nobody:nobody INSTALLDIR/unicon/tools chmod -R a+x INSTALLDIR/unicon/Academus/portal-tomcat-a/bin
| Attachment | Size |
|---|---|
| migrator-properties.txt | 3 KB |
| previous-settings.txt | 6.32 KB |
