Task #3321
Mis à jour par Matthieu Decorde il y a plus de 2 ans
To fix the current mac os x monterey+ display bug, we need to upgrade eclipse to several versions. The Groovy plugin is not working correctly with the last Eclipse version (2022-12) so we'll use the 2022-09 build
Since Eclipse 4.6 (TXM-0.8.2 use eclipse 4.9), the PDE build (used since for TXM 0.8.2) is no more used to build Eclipse: https://projects.eclipse.org/projects/eclipse/releases/4.6.0/review and build errors appears more often.
The current way is to use Tycho: https://wiki.eclipse.org/A_Brief_Overview_of_Building_at_Eclipse#Preferred_way_of_doing_multi-platform_builds
Notes:
* Eclipse RCP 2022-09 works with Java 11+ -> TXM libraries need to be updated
* Tycho will ensure better build and has more build tests -> e.g it does not allow any cycle in the plugins dependencies
* use the Tycho polyglot extension to avoid maintaining Eclipse&Tycho build configuration files -> the Eclipse configuration files contains all the information
New bugs since migration to Eclipse&Java:
* CQP annotation: the JPA tables are not built <pre>janv. 11, 2023 8:42:08 AM org.hsqldb.persist.Logger logInfoEvent
INFOS: Database closed
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Problem compiling [SELECT annot FROM Annotation AS annot].
[18, 28] The abstract schema type 'Annotation' is unknown.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1746)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1767)
at org.txm.annotation.kr.core.storage.temporary.TemporaryAnnotationManager.getAnnotations(TemporaryAnnotationManager.java:273)
at org.txm.annotation.kr.core.AnnotationManager.initialize(AnnotationManager.java:404)
at org.txm.annotation.kr.core.KRAnnotationEngine.getAnnotationManager(KRAnnotationEngine.java:63)
at org.txm.annotation.kr.core.KRAnnotationEngine.getAnnotationManager(KRAnnotationEngine.java:49)</pre>
* The surrogate cleaning step fails in the Cleanfile class: <pre> def static surrogate_punct = "[\\p{P}&&[^\\u0001-\\uFFFF]]"
def static surrogate_punct_reg = /$surrogate_punct/
def static SURROGATE = "_"
def static SURROGATE_PUNCT = "☒"
def str = "..."
str = str.replaceAll(surrogate_reg, SURROGATE); // replace all surrogate chars
str = str.replaceAll(surrogate_punct_reg, SURROGATE_PUNCT); // replace all surrogate punct chars
</pre>
* -Tycho Tycho found a dependency cycle between the org.txm.ahc.feature and the org.txm.annotation.feature-
** fixed the org.txm.rcp.feature was including features also included in the product org.txm.annotation.feature
Since Eclipse 4.6 (TXM-0.8.2 use eclipse 4.9), the PDE build (used since for TXM 0.8.2) is no more used to build Eclipse: https://projects.eclipse.org/projects/eclipse/releases/4.6.0/review and build errors appears more often.
The current way is to use Tycho: https://wiki.eclipse.org/A_Brief_Overview_of_Building_at_Eclipse#Preferred_way_of_doing_multi-platform_builds
Notes:
* Eclipse RCP 2022-09 works with Java 11+ -> TXM libraries need to be updated
* Tycho will ensure better build and has more build tests -> e.g it does not allow any cycle in the plugins dependencies
* use the Tycho polyglot extension to avoid maintaining Eclipse&Tycho build configuration files -> the Eclipse configuration files contains all the information
New bugs since migration to Eclipse&Java:
* CQP annotation: the JPA tables are not built <pre>janv. 11, 2023 8:42:08 AM org.hsqldb.persist.Logger logInfoEvent
INFOS: Database closed
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Problem compiling [SELECT annot FROM Annotation AS annot].
[18, 28] The abstract schema type 'Annotation' is unknown.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1746)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1767)
at org.txm.annotation.kr.core.storage.temporary.TemporaryAnnotationManager.getAnnotations(TemporaryAnnotationManager.java:273)
at org.txm.annotation.kr.core.AnnotationManager.initialize(AnnotationManager.java:404)
at org.txm.annotation.kr.core.KRAnnotationEngine.getAnnotationManager(KRAnnotationEngine.java:63)
at org.txm.annotation.kr.core.KRAnnotationEngine.getAnnotationManager(KRAnnotationEngine.java:49)</pre>
* The surrogate cleaning step fails in the Cleanfile class: <pre> def static surrogate_punct = "[\\p{P}&&[^\\u0001-\\uFFFF]]"
def static surrogate_punct_reg = /$surrogate_punct/
def static SURROGATE = "_"
def static SURROGATE_PUNCT = "☒"
def str = "..."
str = str.replaceAll(surrogate_reg, SURROGATE); // replace all surrogate chars
str = str.replaceAll(surrogate_punct_reg, SURROGATE_PUNCT); // replace all surrogate punct chars
</pre>
* -Tycho Tycho found a dependency cycle between the org.txm.ahc.feature and the org.txm.annotation.feature-
** fixed the org.txm.rcp.feature was including features also included in the product org.txm.annotation.feature