Upload
alexis-hassler
View
1.964
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
SilverpeasPortage sur JOnAS
2
Plan de la présentation
● Silverpeas
○ Architecture
○ Installation
● Contexte du portage
○ JBoss 5
○ JOnAS
● Démarche
● Mise en œuvre
● Problèmes et solutions
3
Silverpeas
● Présentation
○ Plate-forme collaborative
Silverpeas
○ Spécialisation
●par les utilisateurs
●orienter son utilisation
4
Silverpeas
● Architecture
○ Application Web
○ Composants EJB 2.x
○ Messaging JMS
○ Accès base de données
● PostgreSQL
○ Composants intégrés
● JCR – JackRabbit
● JspWiki
● ...
JCR
5
Silverpeas
● Déploiement
○ Scripts d'installation
● Basé sur Maven
○ Archive standard
● EAR
○ Ressources déportées
● Répertoire $SILVERPEAS_HOME
○ Serveur d'applications
● JBoss 4.0.3
mvn clean install./appBuilder.sh./SilverpeasSettings.sh./dbBuilder.sh
6
Portage
● Besoins internes
● Modernisation des outils
○ JBoss 4
● Distribution community
● Version 4.0.3
● Mise à jour de certaines librairies
○ Migration vers JBoss 5
● Distribution community
● Version 5.1.0
● Utilisation des librairies standard
7
Portage
● Besoins clients
○ S'adapter aux contextes des clients
○ Administration Suisse
● Migration de Borland ES vers Jonas
○ ...
8
Démarche
● Installation standard
○ JBoss 4
○ PostgreSQL
○ EAR
● Installation du serveur d'application
○ Déclaration des ressources
● Configuration de Silverpeas
○ Fichiers spécifiques dans l'EAR
○ Noms des ressources (properties)
● Déploiement
○ EAR
9
Démarche
● Ressources
● Accessibles via JNDI
● Déclarée dans le serveur d'applications
○ JMS
● Queues
○ queue/notificationsQueue○ queue/statisticsQueue
● ConnectionFactory
○ java:/XAConnectionFactory
○ Datasource
○ java:/Silverpeas
10
Démarche
● Configuration EAR
○ Recherches des fichiers spécifiques
● War : jboss-web.xml
● Jar (EJB) : jboss.xml
○ Pour JBoss 5
● Rien à faire
○ Pour Jonas
● Transformation en jonas-ejb-jar.xml
11
Mise en œuvre
● JBoss 5
○ Datasource
● Pas de changement de format
● silverpeas-ds.xml
○ JMS
● Format JBossMQ => JBoss Messaging
● silverpeas-destinations-service.xml
<?xml version="1.0" encoding="UTF-8"?><server> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=notificationsQueue" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer"> jboss.messaging:service=ServerPeer</depends> <depends>jboss.messaging:service=PostOffice</depends> </mbean> ...</server>
12
Mise en œuvre
● JOnAS
○ Datasource
● Déclaration conf/jonas.properties
● Configuration conf/Silverpeas.properties
jonas.service.dbm.datasources HSQL1, Silverpeas
datasource.name Silverpeasdatasource.url jdbc:postgresql://localhost:5432/SilverpeasV5datasource.classname org.postgresql.Driverdatasource.username postgresdatasource.password postgresdatasource.mapper rdb.postgres
13
Mise en œuvre
○ JMS
● joramAdmin.xml
...<Queue name="notificationsQueue"> <freeReader/> <freeWriter/> <jndi name="notificationsQueue" /></Queue>
<Queue name="statisticsQueue"> <freeReader/> <freeWriter/> <jndi name="statisticsQueue"/></Queue>
14
Mise en œuvre
○ Utilitaire jboss2jonas
● Uniquement avec JOnAS 4
● Compatible avec JOnAS 5 (ou presque)
for f in $SILVERPEAS_HOME/jar/silverpeas-jonas.ear/*.jar do echo Converting $f $JAVA_HOME/bin/jar xf $f META-INF/jboss.xml META-INF/ejb-jar.xml jboss2jonas --ejb-jar META-INF/ejb-jar.xml --jboss META-INF/jboss.xml
> META-INF/jonas-ejb-jar.xml $JAVA_HOME/bin/jar uf $f META-INF/*.xml rm META-INF/*.xmldone
15
Mise en œuvre
○ Traduction des noms JNDI
● Pas de contexte java: dans JOnAS
sed -i 's/java://' META-INF/jboss.xml Cd $SILVERPEAS_HOME/properties/com/stratelia/webactiv/util/ sed -i 's/java://' jndi.properties
16
Problèmes et solutions
● JBoss 5
○ Contrôle XML plus strict
● web.xml
○ Fichiers Spring
● Déplacer de /WEB-INF/
● Avec 5 RC1
○ Librairies incompatibles
● Avec 5 RC1
○ Xerces
● Bug JBoss référencé
17
Problèmes et solutions
● JOnAS 5
○ jboss2jonas
● Svn : org.ow2.jonas.migration.jboss.Migrate
● Compilation et exécution avec un JDK 1.4
● Ajout du XML namespace (sed)
<jonas-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.objectweb.org/jonas/ns" xsi:schemaLocation="http://www.objectweb.org/jonas/ns http://jonas.ow2.org/ns/jonas-ejb-jar_4_8.xsd"> …</jonas-ejb-jar>
18
Problèmes et solutions
○ Nom des EJB
● ejb/Xxx n'est pas un bon id XML
sed -i 's/ejb\//ejb_/' META-INF/ejb-jar.xmlsed -i 's/ejb\//ejb_/' META-INF/jboss.xml
19
Problèmes et solutions
○ Anomalie JOnAS / Hotspot
● Stubs EJB 2
● Démarrage avec JRockit
○ Option -Xverify:none
● Démarrage avec J9
○ Version 6SR3 ou 6SR8
java.lang.VerifyError: ... Stack size too large
20
Problèmes et solutions
○ Logging
● Référence circulaire SLF4J – JCL
● Gestion du classloader
○ conf/classloader-default-filtering.xml
java.lang.StackOverflowError at sun.reflect.Reflection.getCallerClass(Native Method) at java.lang.ClassLoader.getCallerClassLoader(ClassLoader.java:1359) at java.lang.Class.getMethod(Class.java:1602) at org.apache.commons.logging.LogFactory.directGetContextClassLoader(LogFactory.java:825) at org.apache.commons.logging.LogFactory$1.run(LogFactory.java:791) at org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:788) at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:383) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:664) at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:243) at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:664) at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:243) at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:664) ...
<class-loader-filtering xmlns="http://org.ow2.jonas.lib.loader.mapping"> <default-filters> <filter-name>org.apache.commons.digester.*</filter-name> <filter-name>org.slf4j.*</filter-name> </default-filters></class-loader-filtering>
21
Conclusion
● Problèmes rencontrés
○ EJB 2
● Il faut les virer !
● Travail en cours
○ JBoss 5
● Intégration en standard pour Silverpeas 5.x (5.5 ?)
○ JOnAS 5
● Problèmes de scripts JSP
● Lié à Tomcat 6
22
Conclusion
● Remerciement
○ Emmanuel Hugonnet
● Assistance
● Séances de pair deploying
● Références
○ http://repository.silverpeas.org/
○ http://blog.alexis-hassler.com/
● Récit plus détaillé