22
Silverpeas Portage sur JOnAS

Déploiement de Silverpeas sur JOnAS

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Déploiement de Silverpeas sur JOnAS

SilverpeasPortage sur JOnAS

Page 2: Déploiement de Silverpeas 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

Page 3: Déploiement de Silverpeas sur JOnAS

3

Silverpeas

● Présentation

○ Plate-forme collaborative

Silverpeas

○ Spécialisation

●par les utilisateurs

●orienter son utilisation

Page 4: Déploiement de Silverpeas sur JOnAS

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

Page 5: Déploiement de Silverpeas sur JOnAS

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

Page 6: Déploiement de Silverpeas sur JOnAS

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

Page 7: Déploiement de Silverpeas sur JOnAS

7

Portage

● Besoins clients

○ S'adapter aux contextes des clients

○ Administration Suisse

● Migration de Borland ES vers Jonas

○ ...

Page 8: Déploiement de Silverpeas sur 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

Page 9: Déploiement de Silverpeas sur JOnAS

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

Page 10: Déploiement de Silverpeas sur JOnAS

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

Page 11: Déploiement de Silverpeas sur JOnAS

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>

Page 12: Déploiement de Silverpeas sur JOnAS

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

Page 13: Déploiement de Silverpeas sur JOnAS

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>

Page 14: Déploiement de Silverpeas sur JOnAS

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

Page 15: Déploiement de Silverpeas sur JOnAS

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

Page 16: Déploiement de Silverpeas sur JOnAS

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é

Page 17: Déploiement de Silverpeas sur JOnAS

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>

Page 18: Déploiement de Silverpeas sur JOnAS

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

Page 19: Déploiement de Silverpeas sur JOnAS

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

Page 20: Déploiement de Silverpeas sur JOnAS

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>

Page 21: Déploiement de Silverpeas sur JOnAS

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

Page 22: Déploiement de Silverpeas sur JOnAS

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é