Shared Library supprimé lors du build d'un JBI Component

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
Bonjour,

Lorsque je build mon JBI Component, la déclaration de la shared library :
 <shared-library version="1.0.0-SNAPSHOT">ma-sl</shared-library> 
dans le jbi.xml est tout simplement supprimée dans le fichier jbi.xml de l'archive créée.

Je suis obligé soit:
 - Le rajouter manuellement dans le jbi.xml de l'archive
 - D'utiliser la procédure avec le petals studio


Est-ce un bug du petals-maven-plugin ou j'ai oublié de spécifier quelques chose qui permettrait son ajout (ou d'éviter sa suppression) ?

Je suis sur un Petals 3.1.3 et j'ai testé avec plusieurs versions du maven-petals-plugin.

Cdt
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Christophe DENEUX
Administrator
This post has NOT been accepted by the mailing list yet.
Salut Cyrille,

Est-ce que la shared-library est déclarée dan le POM de ton composant ?
Christophe DENEUX
Petals ESB Architect
Linagora
Twitter: @ChrisDENEUX
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
Salut Christophe,

Non elle n'était pas déclarée en dépendance, ce que je viens de faire et du coup c'est pris en compte, merci !

Faudrait éventuellement le préciser sur le wiki , à moins que cela le soit déjà, mais ailleurs ?

Une dernière question concernant la configuration d'une shared library (je n'ai pas trouvé d'info à ce sujet) : quelle est exactement la différence entre parent-first et self-first pour le class-loader-delegation (même si j'ai une vague idée) ? Existe-il d'autres valeurs possibles ?

Cdt
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Christophe DENEUX
Administrator
This post has NOT been accepted by the mailing list yet.
Il me semble que c'est documenté sur la page du Maven Petals Plugin (http://doc.petalslink.com/pages/viewpage.action?pageId=7540412), par contre, effectivement, on pourrait aussi le mentionner sur la page que tu indiques. Peux-tu créer une entrée à ce sujet dans notre JIRA concernant le Maven Petals Plugin ?

Concernant ta question sur le classloader delegation, il n'y a que ces deux valeurs. Elles influent uniquement le chargement des classes (si une classe est déjà chargée, ca n'a pas d'effet). 'parent-first' délègue au classloader parent le chargement de la classe. 'self-first', c'est l'inverse, la classe sera chargée par le classloader parent si elle n'a pas été trouvé dans le classloader courant.
Christophe DENEUX
Petals ESB Architect
Linagora
Twitter: @ChrisDENEUX
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
Christophe,

Merci pour tes explications !

Cdt
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
In reply to this post by Christophe DENEUX
Christophe,

J'ai encore un petit soucis concernant la génération de l'élément <shared-library>  dans le jbi.xml de l'archive du JBI Component.

Ma déclaration de ma shared-library dans le pom:
<dependency>
        <artifactId>ma-sl</artifactId>
        <groupId>fr.test.sl</groupId>
        <version>1.0.0-SNAPSHOT</version>
        <type>jbi-shared-library</type>
        <scope>provided</scope>
</dependency>

Et dans le jbi.xml cela me donne:
 <shared-library version="1">ma-sl-1</shared-library>

Si je me réfère à la documentation :
 - le nom de la librairie est définie par sharedLibraryNameMappingInComponent, qui par défaut vaut $${artifactId}, or ici c'est plutôt $${artifactId}-$$"{version.major}. J'ai essayé de redéfinir la valeur mais sans succès.
 - l'attribut version, doit être celui défini dans mon pom car j'ai aucun fichier jbiVersionsMappingFile ou jbiVersionsMappingFileURL. J'arrive à ce qu'il me génère correctement l'attribut version en mettant: <jbiVersionsMappingFile>${basedir}</jbiVersionsMappingFile>, peu importe que j'ai un fichier ou pas.
 Même si je mets un chemin correct vers un fichier existant, peu importe la valeur spécifiée dans le fichier, j'aurai la valeur de la version définie dans le pom (comportement par défaut).

Je te mets la déclaration du plugin maven-petals où j'essaie de changer les valeurs en spécifiant un fichier de mapping de version et un nom pour la sharedLibrary:

        <plugin>
                <groupId>org.ow2.petals</groupId>
                <artifactId>maven-petals-plugin</artifactId>
                <version>2.1.4</version>
                <extensions>true</extensions>                               
                        <executions>
                                <execution>
                                        <id>package-Library</id>
                                        <phase>package</phase>
                                        <goals>
                                                <goal>jbi-package</goal>
                                        </goals>
                                        <configuration>                                                       
                                                <jbiVersionsMappingFile>${basedir}\src\main\resources\jbi-versions-mapping-file.properties</jbiVersionsMappingFile>
                                                <sharedLibraryNameMappingInComponent>TestNOM</sharedLibraryNameMappingInComponent>
                                                </configuration>
                                        </execution>
                                </executions>
                        </plugin>
                </plugins>

Et le contenu du fichier jbi-versions-mapping-file.properties :
 *\:*\:*\:jbi-shared-library =  2

Est-ce que je me trompe dans le set des valeurs ou sur les éléments à renseigner, ou autre ?

Cdt
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Christophe DENEUX
Administrator
This post has NOT been accepted by the mailing list yet.
N'auras-tu pas dans ta chaine de POM parents une configuration du Maven Petals Plugin déclarant une dépendence (au niveau du plugin) vers un artifact de configuration qui contiendrait aussi ces fichiers ? Auquel cas, ils prennent peut-être la priorité sur la conf que tu mets.
Christophe DENEUX
Petals ESB Architect
Linagora
Twitter: @ChrisDENEUX
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
Effectivement, dans le parent on a un projet esb.configuration dans lequel il y a tout ces fichiers, cela doit surement te parler :)

Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Christophe DENEUX
Administrator
This post has NOT been accepted by the mailing list yet.
Effectivement, ca me parle puisque je l'ai créé ;-)
Donc normalement, si tu modifies le contenu de cet artefact tu devras obtenir ce que tu veux, à moins que la configuration proposée te conviennent.
Christophe DENEUX
Petals ESB Architect
Linagora
Twitter: @ChrisDENEUX
Reply | Threaded
Open this post in threaded view
|

Re: Shared Library supprimé lors du build d'un JBI Component

Cyrille Peninou
La configuration me convient, fallait juste que la shared-library est le même parent que le composant ...
Ca m'étonnait qu'en mettant tout par défaut, j'avais une incohérence entre les nom/valeurs générés pour la shared-library qui eux respectaient les valeurs par défauts, et celles du composant ....

Merci pour ton aide !