Le hot reload ne fonctionne pas

cancel
Showing results for 
Search instead for 
Did you mean: 
mlenormand
Member II

Le hot reload ne fonctionne pas

Bonjour,

J'ai initié un nouveau projet Alfresco (type all-in-one) à partir du SDK 2.1.1, en version community, en suivant les instructions de cette page : http://docs.alfresco.com/5.0/concepts/alfresco-sdk-getting-started.html

La mise en place du projet Maven s'est bien passé, Alfresco démarre bien avec la commande 'mvn install -Prun -nsu' mais le hot reload de webscripts repo ou share ne fonctionne pas (testé en effectuant une modification du fichier helloworld.get.js via un éditeur, comme indiqué sur cette page : http://docs.alfresco.com/5.0/tasks/alfresco-sdk-rad-eclipse-hot-reloading.html puis en constatant que le raffraichissement de la page http://localhost:8080/alfresco/service/sample/helloworld n'affiche pas les modifications).

j'ai également refait exactement le même test avec le SDK 2.1.0 (en repartant de zéro), sans succès.

Qu'est-ce qui pourrait expliquer que le hot reload ne fonctionne pas chez moi ?

Le hot reload de webscripts fonctionne-t-il via Eclipse ? ou bien de façon indépendante ?
Où peut-on trouver les scripts de déploiement à chaud dont parle la documentation, à savoir le 'Refresh Repository Script' et le 'Refresh Share Script' ? Comment s'assurer qu'ils sont bien actifs ?


Merci d'avance pour votre aide,

Mickaël Le Normand
5 Replies
mlenormand
Member II

Re: Le hot reload ne fonctionne pas

La page de documentation http://docs.alfresco.com/5.0/concepts/alfresco-sdk-cmd-reference-aio.html indique que le refresh ne se fait pas automatiquement à l'enregistrement d'un fichier, mais qu'il faut le déclencher via la commande 'mvn compile alfresco:refresh-repo' dans le dossier repo-amp.
Cela semble contradictoire avec la page http://docs.alfresco.com/5.0/tasks/alfresco-sdk-rad-eclipse-hot-reloading.html qui indique qu'il faut seulement enregistrer le fichier, n'y aurait-il pas une erreur/incohérence dans la documentation ?

En executant cette commande, le refresh du webscript se fait bien, ce qui résous mon problème.
ycoulon
Alfresco Employee

Re: Le hot reload ne fonctionne pas

Salut Mickaël,

La documentation sur hot-reload mentionne :
* Now build(Make) the project by saving, i.e. click Ctrl+S

Pour que eclipse déclenche un build à l'enregistrement des fichiers, il faut que l'option "Build Automaticaly" disponible dans le menu "Project" soit coché.

Avec cet option cela fonctionne chez moi sans soucis avec les éléments suivants :
* Java 8
* Spring Tool Suite Version: 3.7.2.RELEASE Build Id: 201511261048 Platform: Eclipse Mars.1 (4.5.1)
* SDK 2.1.1

Yann
mlenormand
Member II

Re: Le hot reload ne fonctionne pas

Salut Yann,

Merci pour ta réponse.
L'option "Build Automatically" est bien activée sur le projet Eclipse. Comment le builder Maven peut-il "savoir" qu'il doit appeler le goal alfresco:refresh-repo, qui déclenche le hot reload ?


Mickaël
ycoulon
Alfresco Employee

Re: Le hot reload ne fonctionne pas

Je pense que ce comportement est gérer par le plugin maven org.eclipse.m2e:lifecycle-mapping.
Quand on regarde le pom.xml "effectif" on tombe sur le bloc suivant :

<plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.alfresco.maven.plugin</groupId>
                    <artifactId>alfresco-maven-plugin</artifactId>
                    <versionRange>[0.0,)</versionRange>
                    <goals>
                      <goal>set-version</goal>
                      <goal>refresh-share</goal>
                      <goal>refresh-repo</goal>
                      <goal>refresh</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute>
                      <runOnIncremental>true</runOnIncremental>
                      <runOnConfiguration>true</runOnConfiguration>
                    </execute>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>


Peut-être qu'il te manque un plugin eclipse pour gérer le comportement de ce plugin maven ? Jette un oeil du coté de https://www.eclipse.org/m2e/index.html
Sinon tu peux t'adresser aux dev du SDK via le dépot dédié sur github : https://github.com/Alfresco/alfresco-sdk
mlenormand
Member II

Re: Le hot reload ne fonctionne pas

J'ai l'explication : le Maven de Eclipse pointait vers le mauvais fichier settings.xml et ne pointait donc pas vers le bon repository Maven. Du coup, m2e ne pouvait pas compiler le projet et déclencher le hot deploy. Après réparation de ce problème de conf, c'est OK le hot deploy fonctionne bien pour les webcripts et les classes Java.

Merci pour ton aide,

Mickaël