Repast / repast.simphony

Git repository for Repast Simphony development
repast.github.io
90 stars 21 forks source link

ICU4J deprecated #89

Closed etatara closed 6 months ago

etatara commented 7 months ago

Using Eclipse 2023-12 to setup the developer environment for release 2.11.0.

The xpand SDK plugin can’t be installed because of a missing depedency on com.ibm.icu.* which seems to be pinned to version 4.0.0. We either need to provide this depedency, or will need to update xpand ourselves because it is not being maintained.

We may have to remove all references to com.ibm.icu.* as described in the following, in our plugin dependencies. This is hopefully limited to xpand SDK:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=566792

Possible related to the recent main list issues about “com.ibm.icu...”

ncollier commented 6 months ago

Expand source is here: https://gitlab.eclipse.org/eclipse/xpand/org.eclipse.xpand

A search for com.ibm.icu finds plugin MANIFEST.MFs with package and bundle references to 4.0.x

ncollier commented 6 months ago

Hacking the install repo to remove the version pinning oncom.ibm.icu successfully creates an update site from which xpand sdk can be installed, although there are other issues (see next comment) once the sdk is installed.

To mirror the install repo:

$ /Applications/Eclipse-12-2023.app/Contents/MacOS/eclipse -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source http://download.eclipse.org/modeling/m2t/xpand/updates/releases/ -destination ~/Documents/xpand-mirror
$ /Applications/Eclipse-12-2023.app/Contents/MacOS/eclipse -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source http://download.eclipse.org/modeling/m2t/xpand/updates/releases/ -destination ~/Documents/xpand-mirror

The first command gets the contents (plugins etc.), and the second gets the metadata necessary for the eclipse install.

The following plugins had versioned references to com.ibm.icu in their META-INF/MANIFEST.MF and/or their plugin.xml files.

I removed the versioning and re-jared the plugins. I also had to remove the signing related files from those jars as their contents had now been changed.

zip -d plugins/org.eclipse.xtend.shared.ui_2.2.0.v201605260315.jar META-INF/ECLIPSE_.SF 
zip -d plugins/org.eclipse.xtend.shared.ui_2.2.0.v201605260315.jar META-INF/ECLIPSE_.RSA

Their md5 signatures also had to be updated in artifacts.xml in artifacts.jar.

Version info was also present in content.xml in content.jar. This is what eclipse reads to determine the install dependencies. com.ibm.icu was present as both a bundle and a java-package. I removed all the bundle references following the advice of someone whose own plugin was pinned to 3.8.1 and updated the java-package reference to unversioned (range='0.0.0').

With those changes, the xpand sdk installs.

ncollier commented 6 months ago

The bundle installs and appears to load correctly. However, the state chart code (which was generated via the xpand sdk when the state chart were implemented) appears to reference non-existent, removed fields in eclipse's swt packages. For example, in import org.eclipse.jface.databinding.swt.WidgetProperties WidgetProperties no longer exists. I'm assessing if it's been deprecated and how to work around it.

ncollier commented 6 months ago

Changes required to compile pushed in this commit: 479cfc6. We can close this issue when we've confirmed that the state chart editor and runtimes work.

ncollier commented 6 months ago

Ran under eclipse environment and state chart creation and editing appear to work. So I'm closing this.