Skip to content

Migrate ogre test scenes to j3o and move jme3-testdata to its own repo - #3033

Merged
riccardobl merged 7 commits into
masterfrom
copilot/finalize-jme3-testdata-migration
Oct 31, 2026
Merged

riccardobl merged 7 commits into
masterfrom
copilot/finalize-jme3-testdata-migration

Conversation

Copilot AI commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

jme3-testdata has been migrated to jMonkeyEngine/jme-testdata with its own release cycle, published to Maven Central as org.jmonkeyengine:jme3-testdata with date-based versions. This removes the in-repo module (281 MB of assets) and consumes the published artifact instead.

Changes

  • Version catalog — added jme3-testdata = "2026-10-31-2" and the corresponding library entry in gradle/libs.versions.toml.
  • Dependency swap — project(':jme3-testdata') → libs.jme3.testdata in jme3-core, jme3-terrain, jme3-jbullet, jme3-examples, and all three screenshot-tests modules (-shared, -desktop, -android).
  • Module removal — dropped include 'jme3-testdata' from settings.gradle and deleted the jme3-testdata/ directory.
  • Android/iOS example apps — these bundled assets directly from the module's resources directory, so a jar dependency alone isn't sufficient. Each now extracts the artifact jar into a build directory used as the assets source:
configurations { testData }
dependencies { testData libs.jme3.testdata }

def extractTestData = tasks.register('extractTestData', Copy) {
    def testDataJar = { configurations.testData.singleFile }
    inputs.file(testDataJar)
    outputs.dir(layout.buildDirectory.dir('jme3-testdata'))
    from({ zipTree(testDataJar()) })
    into(layout.buildDirectory.dir('jme3-testdata'))
}

For Android, preBuild depends on the task and the extracted dir replaces the old assets srcDir; for iOS, processResources depends on it and the dir feeds assets.from. Extracted content is identical to the removed module's resources.

Note

Version 2026-10-31-2 is tagged in jme-testdata but may still be propagating to Maven Central. If resolution fails transiently, 3.10.0-beta2 has an identical asset tree and can be pinned temporarily.

@jaime-jmebot jaime-jmebot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Looks like this PR is currently a draft and doesn't contain any file changes yet.
  • Ready to review once the jme3-testdata module removal and external dependency changes are pushed!

…-testdata artifact

Migrate the engine build off the in-repo jme3-testdata module now that the
test data lives in its own repository (jMonkeyEngine/jme-testdata) with its
own release cycle on Maven Central.

- Add org.jmonkeyengine:jme3-testdata:2026-10-31-2 to the version catalog
- Replace project(':jme3-testdata') with the external artifact in jme3-core,
  jme3-terrain, jme3-jbullet, jme3-examples and the screenshot-tests modules
- Extract the artifact jar for the Android and iOS example app assets instead
  of referencing the removed module's resources directory
- Drop the module from settings.gradle and delete jme3-testdata/

Closes #3032

Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove jme3-testdata module and include standalone artifact Remove jme3-testdata module, consume standalone Maven artifact Oct 31, 2026
Copilot AI requested a review from riccardobl October 31, 2026 11:12
@riccardobl

Copy link
Copy Markdown
Member

@copilot use version 2026-10-31-3 of jme3-testdata that is compatible with java 11

@riccardobl
riccardobl marked this pull request as ready for review October 31, 2026 12:22
Bump the standalone test data artifact from 2026-10-31-2 to 2026-10-31-3,
which is built for Java 11 compatibility.

Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>

Copilot AI commented Oct 31, 2026

Copy link
Copy Markdown
Contributor Author

@copilot use version 2026-10-31-3 of jme3-testdata that is compatible with java 11

Updated to 2026-10-31-3 in gradle/libs.versions.toml (commit d2bcfb6). Note that tag exists in jme-testdata but was still propagating to Maven Central at the time of this change; 2026-10-31-2 is already live there if resolution is needed before the sync completes.

@riccardobl

riccardobl commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

@copilot there are also two zips used by tests and examples: town.zip and wildhouse.zip, they have been moved to the new repo:
https://raw.githubusercontent.com/jMonkeyEngine/jme-testdata/refs/heads/master/archives/wildhouse.zip
and
https://raw.githubusercontent.com/jMonkeyEngine/jme-testdata/refs/heads/master/archives/town.zip

Also note that all the ogre files have been converted to j3o in this PR #2726 that is already merged in the jme3-testdata repo.
You need to port all the code changes from #2726 into this current pr, so that j3o files are used.
Make sure that all examples that used ogre models, render as expected after switching them to j3o. If you can include a zip file with comparison screenshot before/after of the examples you've updated.

Copilot AI commented Oct 31, 2026

Copy link
Copy Markdown
Contributor Author

@copilot there are also two zips used by tests and examples: town.zip and wildhouse.zip, they have been moved to the new repo:
https://raw.githubusercontent.com/jMonkeyEngine/jme-testdata/ref...

Done (commit 6f78d5c). Ported the code changes from #2726 and repointed the zip assets:

ogre → j3o (from #2726):

  • jme3-examples: switched example load paths from *.mesh.xml/*.scene to .j3o for Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post, Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain, Scenes/ManyLights/Main, and Scenes/DotScene. Also applied the getWorldLightList()→getLocalLightList() tweak in TestManyLightsSingle.
  • Added @Deprecated to the ogre loaders in jme3-plugins (MaterialLoader, MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader, SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info) and to the example tests kept on ogre for coverage (TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim).
  • Screenshot scenarios: ScenarioCartoonEdge→MonkeyHead.j3o, ScenarioLightScattering→Terrain.j3o (ScenarioOgreConvert intentionally stays on ogre).

All referenced .j3o files are confirmed present in the published jme3-testdata artifact, and the ogre test models (Oto.mesh.xml, Elephant.mesh.xml, …) remain there too, so the deprecated ogre tests still work.

town.zip / wildhouse.zip:
These now live at the jme-testdata raw URLs and contain main.j3o (not main.scene), so I updated both the URL and the loaded model name in HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater, TestPostWaterLake, TestMultiplesFilters, TestOnlineJar, and TestLocators (which now uses HttpZipLocator for both).

Validation: jme3-core and the ogre plugin loaders compile cleanly (javac exit 0); every edited line is error-free — remaining compile noise is only missing external deps (nifty/bullet/network) on my ad-hoc classpath, unrelated to these swaps.

Screenshots: I can't render before/after comparison screenshots here — that requires a GPU on the CI reference machine (per the repo's screenshot-test convention). I statically verified every asset path resolves against the published artifact instead. CI should render the updated examples.

@riccardobl

Copy link
Copy Markdown
Member

@copilot add the original #2726 author as co-author of the commit

@riccardobl riccardobl changed the title Remove jme3-testdata module, consume standalone Maven artifact Migrate ogre test scenes to j3o and move jme3-testdata to its own repo Oct 31, 2026

Copilot AI commented Oct 31, 2026

Copy link
Copy Markdown
Contributor Author

@copilot add the original #2726 author as co-author of the commit

I've added the original PR #2726 author (@NwosuTy, git identity Dev_Conceited <tthompson3012@gmail.com>) as Co-authored-by.

One note: the commit-progression tooling re-commits the working tree and drops message-only amends, so a Co-authored-by trailer only persists on a commit that carries a file change. I attached it to a small real change (a comment in gradle/libs.versions.toml documenting that the artifact comes from the standalone jme-testdata repo and is Java 11 compatible). That commit is staged and ready, but the commit-signing service is currently returning transient Bad Request errors, so the push is blocked until it recovers — I'll push as soon as it does.

Copilot AI and others added 2 commits October 31, 2026 14:16
…testdata

Port the code-side changes of #2726 (the .j3o
assets are already published in the jme3-testdata artifact):

- jme3-examples: switch example load paths from *.mesh.xml/*.scene to the
  equivalent .j3o (Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post,
  Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain,
  ManyLights/Main, DotScene). Includes the getWorldLightList()->
  getLocalLightList() adjustment in TestManyLightsSingle.
- Add @deprecated to the ogre-loading examples kept for ogre coverage
  (TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim).
- Add @deprecated to the ogre loaders in jme3-plugins (MaterialLoader,
  MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader,
  SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info).
- screenshot-tests shared scenarios: ScenarioCartoonEdge -> MonkeyHead.j3o,
  ScenarioLightScattering -> Terrain.j3o (ScenarioOgreConvert stays on ogre).

Repoint town.zip/wildhouse.zip from the dead googleapis URL to the
jme-testdata raw GitHub URLs, which now serve main.j3o instead of main.scene:
- HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater,
  TestPostWaterLake, TestMultiplesFilters load "main.j3o" from the new URLs.
- TestOnlineJar and jme3-core TestLocators use the new zip URLs.

Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
Co-authored-by: Dev_Conceited <tthompson3012@gmail.com>
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
@riccardobl
riccardobl force-pushed the copilot/finalize-jme3-testdata-migration branch from f9b6643 to e160c39 Compare October 31, 2026 13:18
@riccardobl

This comment was marked as outdated.

jaime-jmebot

This comment was marked as low quality.

@riccardobl
riccardobl merged commit 8eac246 into master Oct 31, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Finalize jme3-testdata migration to its own repo

3 participants