* address issue #1119 (serialization with protected/private constructor)
* remove an unnecessary step in findNoArgConstructor()
* use getDeclaredConstructor() in place of the for-loop
* simplify by throwing the exception in findNoArgContructor()
* First attempt at building android-natives.
* Use OpenJDK because native build is broken without
* Try OpenJDK 10
* Try openJDK 9
* Try openJDK11 again but "enable" the EE Module
* OpenJDK 11 has no Java EE Module anymore.
* Try to fix Android Header Generation
* Fix invalid flag error with javac by removing empty quotes
* Try to fix build of decode.
* Remove jni generated headers from the repository.
* Adjust .gitignore as those header files won't appear at that location anymore
* Fix Android Build: Fill the jme3-android-native headers during the build of jme3-android. This works because jme3-android-native already depends on jme3-android.
Due to technical reasons, the headers share the same location and thus the include directives have been adjusted slightly.
* Copy jni headers to the jni directory.
* Adjust the path slightly
* Try to silence android sdk's license print out
* Also fix openAL
* Solve task name conflict
* Really silence license now
* Tasks seem shared but Strings are not...
* Only build Android-Native
* Trying to reduce the amount of dependencies needed.
* Remove even more dependencies
* Even more removal
* Prepare Deployment
* Fix Deployment
* Cleanup: Remove feature branch from branches for travis.
* Revert a few unnecessary things
* Removed NDK Comments.
* Bullet Android: Some cosmetic changes (removed commented debug code) and generate bullet-native headers during jme3-bullet compilation.
* Fix Bullet Build by using GNU libstdc++ instead of STLPort (discontinued)
* Fix Bullet-Native Compilation
* Fix TerrainPicking by not adding "ghost" collisions to the CollisionResults (which weren't removed).
Improve TerrainPicking by allowing to do more ray tracing (previously, it stopped on the first hit, now it will stop on the first hit within range).
* Upgraded TerrainTestCollision to support multiple collisions and print the collision results detailed. MultiCollision can easily be turned on/off in simpleInitApp().
During testing, I noticed a bug where in very rare cases the first collision isn't what is expected but the back side of the clicked mountain. It has to be validated if this is due to the following changes or was already present.
* Added Basic Unit Tests for Collision
* TerrainPicker: Change API to return int to conform with collideWith
* TerrainQuad: Conform with Picker now returning the number of collisions and allow to set multipleCollisions true or false.
* TerrainPicking: Fixed a bug where the perpendicular collision always returned true, no matter the result of checkTriangles.
Also add support for multiple collisions (which is toggleable to the old behavior, because the picker can early out then).
* Try to fix Travis Build
* Fixed a Regression which occurred due to Multi Collision Handling:
The method used to provide duplicate results, which is why I commented it out. This lead to corner-cases not colliding at all anymore, thus I added a unit-test and removed the commented code and instead made addCollision de-duplicate entries.
(Specifically the stuff that deals with IDs.)
Also added the ability to use groovy tests for those who like a little
testing but aren't complete masochists.
for retrieving an AppState by ID. Also modified attach() to throw an
IllegalArgumentException if the ID is already registered.
Updated TestAppStateLifeCycle to add a small ID demonstration.
This is a breaking change for direct implementers of AppState as they must
add a getId() method. (Which is also a good time to evaluate if they should
be extending AbstractAppState or BaseAppState and/or if their life cycle is
implemented correctly. e.g.: BulletAppState is breaking the AppState contract
a bit.)
* First attempt at building android-natives.
* Use OpenJDK because native build is broken without
* Try OpenJDK 10
* Try openJDK 9
* Try openJDK11 again but "enable" the EE Module
* OpenJDK 11 has no Java EE Module anymore.
* Try to fix Android Header Generation
* Fix invalid flag error with javac by removing empty quotes
* Try to fix build of decode.
* Remove jni generated headers from the repository.
* Adjust .gitignore as those header files won't appear at that location anymore
* Fix Android Build: Fill the jme3-android-native headers during the build of jme3-android. This works because jme3-android-native already depends on jme3-android.
Due to technical reasons, the headers share the same location and thus the include directives have been adjusted slightly.
* Copy jni headers to the jni directory.
* Adjust the path slightly
* Try to silence android sdk's license print out
* Also fix openAL
* Solve task name conflict
* Really silence license now
* Tasks seem shared but Strings are not...
* Only build Android-Native
* Trying to reduce the amount of dependencies needed.
* Remove even more dependencies
* Even more removal
* Prepare Deployment
* Fix Deployment
* Cleanup: Remove feature branch from branches for travis.
* Revert a few unnecessary things
* Removed NDK Comments.
in that it delays serialization until the message is requested. This should
fix the issue where the initial server messages would sometimes fail to
deserialize because the serialization registration message hadn't been processed
before the other messages in the block were deserialized. Now each message will
be deserialized as it is encountered.
In the end the fix was simple enough that it's probably only a 2-3 line change to
MessageProtocol in JME 3.2 if someone wants to back port the fix. (Just queue
up ByteBuffer instead of Message.)
interface and strictly implement the to/from ByteBuffer protocol. In the future
this will allow the message protocol to be swappable. Also moved out the buffering
aspect since often buffers need to be created 'on the fly' and are separate from
the protocol. This will allow me to play with fixing the issue related to messages
being deserialized before the serialization registry message has been processed by
swapping out the GreedyMessageBuffer implementation for a LazyMessageBuffer implementation.