Bouton git non visible

Bonjour,

Je souhaite paramétrer la sauvegarde git sur une appli en 3.2 cependant le bouton “commiter vers git” n’est pas visible.

Ma version de simplicite

Simplicité® version 3.2.M06 (built on 2018-01-15 for tomcat 8), encoding UTF-8 (system encoding UTF-8) Server: Apache Tomcat/8.5.27, Database MySQL 5.5.52 JVM: 1.8.0_40 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.40-b25, OS: Windows 8.1 amd64 6.3 End-point: http://MAT-00202:8080

Dans les fonctions du l’objet Module, j’ai la fonction “ModuleGITCommit” qui est bien habilité pour admin et designer.

Le bouton est aussi bien dans le template

<table class="area">
	<tbody>
		<tr>
			<td class="area">[AREA:1:=]</td>
			<td>
				<table class="area">
					<tbody>
						<tr>
							<td class="area">[ACTION:ModuleExportXML]</td>
							<td class="area">[ACTION:auditModule]</td>
						</tr>
						<tr>
							<td class="area">[ACTION:ModuleExportZIP]</td>
							<td class="area">[ACTION:BUILD_DOC]</td>
						</tr>
						<tr>
							<td class="area">[ACTION:ModuleImport]</td>
							<td class="area">[ACTION:ModuleDiff]</td>
						</tr>
						<tr>
							<td class="area">[ACTION:ModuleExportData]</td>
							<td class="area">[ACTION:ModuleGITCommit]</td>
						</tr>
					</tbody>
				</table>
			</td>
		</tr>
	</tbody>
</table>

Le paramètre système USE_GIT = yes.

J’ai aussi essayé de surcharger la fonction isActionEnable pour toujours renvoyer “true” mais le bouton reste non visible.

Y a-t-il un paramètage manquant?

Le bouton “Commit to Git” n’apparaît que si tout est bien configuré: si USE_GIT = yes et si le répertoire racine Git désigné par l’argument de JVM -Dgit.basedir=... est bien un répertoire accessible en écriture

En 4.0 cette propriété JVM est forcée à une valeur par défaut si elle est absente, c’est malheureusement pas fait pareil en 3.2 donc pas le choix pour cette version, il faut la passer explicitement en argument JVM

On parle d’une instance managée (ou en tout cas basée sur le packaging “template”) ou d’un déploiement à l’ancienne (basé sur l’ancien packaging “setup”) ?

NB: à noter que les features Git sur les modules en 3.2 sont de toute façon beaucoup plus basiques qu’en 4.0

c’est un déploiement à l’ancienne via setup-3.2.

Qu’entendez-vous par “plus basiques”? quelles sont les fonctionnalités git disponible en 3.2?

Ok si c’est un déploiement setup - ce qui, soit dit en passant, n’est vraiment plus du tout la bonne manière de faire (en 4.0 on a définitivement supprimé ce mode de packing qui était totalement dépassé) - vous devez regarder dans la conf de votre serveur d’application et/ou de son launcher si cette property git.basedir est (correctement) valorisée quelque part.

Si ce n’est pas le cas ajoutez là en la faisant pointer sur un répertoire avec les droits d’écriture pour le user qui execute votre serveur d’application.

Fonctionnellement sur la UI 3.2 il y a juste un bouton “Commit to Git”, pas une page complete dédiée comme en 4.0 donc, de mémoire, il n’y a pas de possibilité de faire un push sur un remote donné. Vous serez donc obligé d’en passer par un clone externe avec 2 remotes (ex: origin qui pointe sur l’URL Simplicité et github qui pointe vers votre repo distant GitHub) et vous devrez faire un pull sur l’un et un push sur l’autre.

PS :

On a backporté la valorisation automatique de la property git.basedir dans le cas où celle-ci n’est pas passée explicitement en argument JVM. Ce sera disponible sur le nightly build de la 3.2 (M07 beta)

La valeur par défaut est <user home dir>/git[/<app name>] si ce chemin n’existe pas on tente de le créer si on y arrive pas et/ou s’il existe déjà et si ce n’est pas un répertoire et/ou s’il n’est pas writeable les features Git sont inhibées.

Merci, j’ai configuré le git.basedir et le bouton apparait bien.

Maintenant, j’ai une autre erreur quand je clique sur “committer vers git”
Erreur: Custom action fault(null)

Voici les logs :

2018-03-21 16:40:17,355 ERROR [com.simplicite.webapp.ObjectForm] SIMPLICITE|http://MAT-00202:8080|/pepsmoa|ECORED0001|system|com.simplicite.webapp.ObjectForm|display||Erreur Action call fault null 
com.simplicite.util.exceptions.ActionException 
	at com.simplicite.util.ObjectDirect.invokeAction(ObjectDirect.java:681) 
	at com.simplicite.util.ObjectDB.invokeAction(ObjectDB.java:1393) 
	at com.simplicite.util.ScriptedObjectDB.invokeAction(ScriptedObjectDB.java:876) 
	at com.simplicite.webapp.ObjectForm.customAction(ObjectForm.java:2137) 
	at com.simplicite.webapp.ObjectForm.display(ObjectForm.java:297) 
	at com.simplicite.webapp.ObjectForm.display(ObjectForm.java:73) 
	at com.simplicite.util.ObjectDB.displayForm(ObjectDB.java:2000) 
	at com.simplicite.util.ScriptedObjectDB.displayForm(ScriptedObjectDB.java:1171) 
	at org.apache.jsp.jsp.ALL_005fform_jsp._jspService(ALL_005fform_jsp.java:194) 
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) 
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:184) 
	at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:621) 
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) 
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) 
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) 
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) 
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) 
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
	at java.lang.Thread.run(Thread.java:745)
2018-03-21 16:40:17,354 ERROR [com.simplicite.util.ObjectDirect] SIMPLICITE|http://MAT-00202:8080|/pepsmoa|ECORED0001|system|com.simplicite.util.ObjectDirect|invokeAction||Erreur Module 
com.simplicite.util.exceptions.ActionException 
	at com.simplicite.util.engine.ObjectManager.invokeActionSync(ObjectManager.java:3259) 
	at com.simplicite.util.ObjectDirect.invokeAction(ObjectDirect.java:665) 
	at com.simplicite.util.ObjectDB.invokeAction(ObjectDB.java:1393) 
	at com.simplicite.util.ScriptedObjectDB.invokeAction(ScriptedObjectDB.java:876) 
	at com.simplicite.webapp.ObjectForm.customAction(ObjectForm.java:2137) 
	at com.simplicite.webapp.ObjectForm.display(ObjectForm.java:297) 
	at com.simplicite.webapp.ObjectForm.display(ObjectForm.java:73) 
	at com.simplicite.util.ObjectDB.displayForm(ObjectDB.java:2000) 
	at com.simplicite.util.ScriptedObjectDB.displayForm(ScriptedObjectDB.java:1171) 
	at org.apache.jsp.jsp.ALL_005fform_jsp._jspService(ALL_005fform_jsp.java:194) 
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) 
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:184) 
	at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37) 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:621) 
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) 
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) 
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) 
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) 
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) 
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
	at java.lang.Thread.run(Thread.java:745)

Ce stacktrace est trop high level pour savoir quel peut être le pb. Si vous le pouvez, essayez de supprimer le repo et recréez le en faisant un 1er commit:

N’essayez pas de mettre des settings remote/origin, en 3.2 ce n’est pas géré et c’est peut être ça la cause du pb…

J’ai fait le test avec un nouveau module vierge sans paramètre remote/origin.
En cliquant sur “supprimer le repository git”, j’ai le même message d’erreur

Erreur: Custom action fault (null)

et la même stacktrace.

On va procéder étape par étape car c’est pas simple pour nous d’investiguer “en aveugle” un pb qui se produit sur un déploiement specifique et dont le seul symptôme visible est un message d’erreur “null”…

  1. Faites le test sur une instance 3.2.M07 à jour déployée sur votre serveur SIM
  2. Si vous reproduisez votre pb on investiguera dessus
  3. Sinon on déploiera une instance 3.2.M06 (la même que celle du setup)

Bonjour,

J’ai fait le test avec l’instance aip sur le serveur partenor.
L’instance est en version 3.2M07, le git commit fonctionne.

Pouvez-vous déployer une instance 3.2M06 pour refaire le test?

La mécanique du SIM ne permet pas de déployer facilement une révision/tag outdated et ça n’a de toute façon pas beaucoup de sens car s’il y a un bug on ne le corrigera pas sur la base du tag M06 mais sur le head (actuellement M07 draft) et à priori ici c’est déjà corrigé.

Bref si ça marche sur la révision à jour nous allons profiter de ce sujet pour taguer la M07 officielle et vous pourrez la pousser sur vios environnements.

La release 3.2.M07 a été poussée, cf. Simplicité 3.2 maintenance release 07