Top Banner
Silverpeas Portage sur JOnAS
22

Déploiement de Silverpeas sur JOnAS

Nov 30, 2014

Download

Documents

Alexis Hassler

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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é