IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

[M2] composant plexus et configuration


Sujet :

Maven Java

  1. #21
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Très bonne explication

    L'utilisation de Plexus permet de simplifier le code.
    La déclaration faite dans l'exemple de david évite d'écrire des tas de ligne de code pouvant être source d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    HibernateSessionFactory factory = new HibernateSessionFactory();
    factory.setXXX(...);
    factory.setYYY(...);
    ...
    factury.initialize(...);
    ...
    Avec Pexus, il n'y a pas besoin de toute ces lignes, tout est géré

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Je comprends mieux... grand merci pour vos explications

  3. #23
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    j'essaye d'utiliser le composant plexus ResourceManager
    comme suit dans mon composant plexus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /** 
       * @plexus.requirement 
       * 
       */ 
    private ResourceManager locator;
    or ça ne fonctionne pas car quand je debugge dans mon composant plexus et que je passe dans la methode initialize, j'ai bien un DefaultResourceManager mais quand je regarde chaque loader contenu dans le ResourceManager, les paths ou directories ou jar sont null, comme si il n'avait pu initialiser les paths de recherche.

    et donc evidemment , quand je recherche mon fichier, j'ai une exception.

    Par contre, quand je déclare le composant plexus ResourceManager directement dans mon plugin Maven, là ça fonctionne.

    une idée ?

    merci d'avance

  4. #24
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Quelle est la version de Plexus utilisée lorsque tu débugge et celle de ton maven?

  5. #25
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    c'est la même version la 1.0-alpha-4

  6. #26
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    alpha-4, c'est une veille version de maven que tu as

  7. #27
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    oui je suis tj en maven 2.0.4

  8. #28
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    dans la 2.0.4, la version de plexus est la 1.0-alpha-9 (comme dans la dernière version de maven). regarde dans $M2_HOME/core

  9. #29
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    oui mais moi je parle uniquement du org.codehaus.plexus:plexus-resources

  10. #30
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Effectivement, si on ne parle pas de la même chose, çà ne va pas aider

    Je suis sûr à 90% que le pb vient de la version de plexus et non de celle de plexus-resources

  11. #31
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    je suis en train de faire un test avec maven 2.0.6 et un repository vide.

    et je te tiens au courant

  12. #32
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Changer la version de maven ne devrait pas ton pb en mode debug, il faut que tu regardes la version de plexus utilisée dans le classpath lors de l'exécution de tes tests

  13. #33
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    effectivement ça n'a pas changé grand chose, par contre avec mvn -X, j'ai ceci :

    org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8

    si c'est bien ce que tu me demandes

  14. #34
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    qu'est ce que tu as dans ton components.xml?

  15. #35
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    et voilà !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <component-set>
      <components>
        <component>
          <role>org.codehaus.mojo.dashboard.report.plugin.hibernate.HibernateService</role>
          <implementation>org.codehaus.mojo.dashboard.report.plugin.hibernate.HibernateServiceImpl</implementation>
          <lifecycle-handler>plexus-configurable</lifecycle-handler>
          <description>Service Hibernate</description>
          <configuration>
            <mapping>hibernate.cfg.xml</mapping>
          </configuration>
        </component>
        <component>
          <role>org.codehaus.mojo.dashboard.report.plugin.configuration.ConfigurationService</role>
          <implementation>org.codehaus.mojo.dashboard.report.plugin.configuration.ConfigurationServiceImpl</implementation>
          <lifecycle-handler>plexus-configurable</lifecycle-handler>
          <description>Service Dashboard Configuration</description>
          <requirements>
            <requirement>
              <role>org.codehaus.plexus.resource.ResourceManager</role>
              <field-name>locator</field-name>
            </requirement>
          </requirements>
          <configuration>
            <configfile>config/maven-dashboard-config.xml</configfile>
          </configuration>
        </component>
      </components>
    </component-set>

  16. #36
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    ok, il faut que tu ajoutes classloaders que tu veux utiliser car il faut les configurer, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
        <component>
          <role>org.codehaus.plexus.resource.loader.ResourceLoader</role>
          <role-hint>file</role-hint>
          <implementation>org.codehaus.plexus.resource.loader.FileResourceLoader</implementation>
          <configuration>
            <paths>
              <path implementation="java.lang.String">/path/to/resources/directory</path>
            </paths>
          </configuration>
        </component>
        <component>
          <role>org.codehaus.plexus.resource.loader.ResourceLoader</role>
          <role-hint>jar</role-hint>
          <implementation>org.codehaus.plexus.resource.loader.JarResourceLoader</implementation>
          <configuration>
            <paths>
              <path implementation="java.lang.String">/path/to/myfile.jar</path>
            </paths>
          </configuration>
        </component>
     
    [...]

  17. #37
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    moi je veux bien mais je pensais que c'était le container qui s'occupait de renseigner les paths de recherche nécessaires à chaque loader

    donc il faut que je fasse comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    <component-set>
      <components>
        <component>
          <role>org.codehaus.mojo.dashboard.report.plugin.hibernate.HibernateService</role>
          <implementation>org.codehaus.mojo.dashboard.report.plugin.hibernate.HibernateServiceImpl</implementation>
          <lifecycle-handler>plexus-configurable</lifecycle-handler>
          <description>Service Hibernate</description>
          <configuration>
            <mapping>hibernate.cfg.xml</mapping>
          </configuration>
        </component>
        <component>
          <role>org.codehaus.mojo.dashboard.report.plugin.configuration.ConfigurationService</role>
          <implementation>org.codehaus.mojo.dashboard.report.plugin.configuration.ConfigurationServiceImpl</implementation>
          <lifecycle-handler>plexus-configurable</lifecycle-handler>
          <description>Service Dashboard Configuration</description>
          <requirements>
            <requirement>
              <role>org.codehaus.plexus.resource.ResourceManager</role>
              <field-name>locator</field-name>
            </requirement>
          </requirements>
          <configuration>
            <configfile>config/maven-dashboard-config.xml</configfile>
          </configuration>
        </component>
        <component>
          <role>org.codehaus.plexus.resource.loader.ResourceLoader</role>
          <role-hint>file</role-hint>
          <implementation>org.codehaus.plexus.resource.loader.FileResourceLoader</implementation>
          <configuration>
            <paths>
              <path implementation="java.lang.String">/path/to/resources/directory</path>
            </paths>
          </configuration>
        </component>
        <component>
          <role>org.codehaus.plexus.resource.loader.ResourceLoader</role>
          <role-hint>jar</role-hint>
          <implementation>org.codehaus.plexus.resource.loader.JarResourceLoader</implementation>
          <configuration>
            <paths>
              <path implementation="java.lang.String">/path/to/myfile.jar</path>
            </paths>
          </configuration>
        </component>
      </components>
    </component-set>
    et comment je fais pour selectionner le path pour mon jar par rapport au repository ?

  18. #38
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Le container ne peux pas connaitre les paths que tu veux utiliser, comment pourrait-it savoir que tu veux utiliser "D:\directory1\directory2\" ou "/home/username/something"?

    Si les paths sont dépendant du runtime ou de l'utilisateur, je ne pense pas que plexus-resources est ce qu'il te faut

    Tu peux peut-être modifier plexus-resources afin de pouvoir ajouter au runtime de nouveaux paths et ton mojo l'utiliserait pour lui fournir la liste des jars à charger.

  19. #39
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    Autant pour moi.

    effectivement, c'est de ma faute et ce pour plusieurs raisons.

    En fait, je viens de me rendre compte que le ResourceManager utilise essentiellemnt par défaut le ThreadContextClasspathResourceLoader et les autres loaders ont leurs paths de recherche vide.

    Quand j'utilise le ResourceManager dans mon plugin, en fait ma classe plugin se trouve dans la liste des classes du ThreadContextClasspathResourceLoader et donc il trouve bien mon fichier de config xml dans mon propre jar.

    Par contre quand j'utilise ResourceManager dans mon composant plexus, quand le plugin est initialisé par Maven, il initialise mon composant plexus et donc aussi le ResourceManager mais à ce moment-là, la liste des classes du ThreadContextClasspathResourceLoader sont uniquement celles contenues dans le classworlds.

    et effectivement en regardant de plus près comment Checkstyle utilisait le ResourceManager (qui lui l'utilise directement dans son plugin), il ajoute des paths de recherche notamment pour les fichiers ( FileResourceLoader ).

    il va donc falloir que je revois ma conception ou que je trouve un moyen d'initaliser correctement mon composant plexus concernant les paths.

    Par contre, je trouve quand même que l'association et la configuration des composants plexus entre eux sont assez compliquées ou alors ça manque de docs

    En tout cas, merci pour ton aide, ça m'a bien fait avancer.

  20. #40
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Citation Envoyé par david.vicente@tiscali.fr
    Par contre, je trouve quand même que l'association et la configuration des composants plexus entre eux sont assez compliquées ou alors ça manque de docs
    çà manque surtout de docs, mais ce n'est pas compliqué, beaucoup moins que Spring (c'est mon avis perso )

    Citation Envoyé par david.vicente@tiscali.fr
    En tout cas, merci pour ton aide, ça m'a bien fait avancer.
    Pas de problème.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/01/2011, 12h56
  2. Réponses: 1
    Dernier message: 19/10/2007, 10h12
  3. Réponses: 2
    Dernier message: 24/08/2007, 13h32
  4. Composant Plexus MusicBrainz
    Par lgranie dans le forum Maven
    Réponses: 1
    Dernier message: 03/07/2007, 14h37
  5. Réponses: 2
    Dernier message: 24/03/2006, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo