threerings / tripleplay

Utilities for use in PlayN-based games.
Other
92 stars 32 forks source link

HTML module doesn't properly compile. #43

Closed toxic88 closed 10 years ago

toxic88 commented 10 years ago

Since I've changed version of PlayN and tripleplay to 1.8, I had an error during trying compile html module. This is that I've got in stack trace :

[ERROR] Errors in 'tripleplay/flump/BinaryFlumpLoader.java' [INFO] [ERROR] Line 34: No source code is available for type java.io.DataInputStream; did you forget to inherit a required module? [INFO] [ERROR] Line 34: No source code is available for type java.io.ByteArrayInputStream; did you forget to inherit a required module? [INFO] [ERROR] Errors in 'tripleplay/flump/LibraryData.java' [INFO] [ERROR] Line 52: No source code is available for type java.io.DataInputStream; did you forget to inherit a required module? [INFO] [ERROR] Line 60: No source code is available for type java.io.DataOutputStream; did you forget to inherit a required module? [INFO] [ERROR] Aborting compile due to errors in some input files

I've investigate this issue and found, that quake2-gwt-port implement and add those classes to GWT JRE implementation. I want to know, maybe, I've forget to add some dependency, like "smart-gwt", that will provide those implementation?

samskivert commented 10 years ago

On Thu, Jan 9, 2014 at 1:51 AM, Anton Soroka notifications@github.comwrote:

Since I've changed version of PlayN and tripleplay to 1.8, I had an error during trying compile html module. This is that I've got in stack trace :

Weird. The TriplePlay demo compiles fine and it even uses the JsonFlumpLoader. Are you trying to actually use the BinaryFlumpLoader? Because you can't use that in HTML5 due to JavaScript not supporting input streams or byte I/O in general (at least not in a cross-browser way yet).

-- mdb@samskivert.com

toxic88 commented 10 years ago

You set up in tripleplay.TriplePlay.gwt.xml, gwt configuration module files, 'flump' module as source : , tripleplay/flump/BinaryFlumpLoader.java and tripleplay/flump/LibraryData.java files had been changed. In newer files you have used java.io.DataInputStream, java.io.ByteArrayInputStream, java.io.DataOutputStream classes, that standart JRE implementation doesn't contains.

samskivert commented 10 years ago

On Wed, Jan 15, 2014 at 1:21 PM, Anton Soroka notifications@github.comwrote:

You set up in tripleplay.TriplePlay.gwt.xml, gwt configuration module files, 'flump' module as source : , tripleplay/flump/BinaryFlumpLoader.java and tripleplay/flump/LibraryData.java files had been changed. In newer files you have used java.io.DataInputStream, java.io.ByteArrayInputStream, java.io.DataOutputStream classes, that standart JRE implementation doesn't contains.

Indeed, I'm aware that there is code in TP that is not supported by GWT's standard JRE emulation libraries. However, I seem to be able to compile the TriplePlay demo using that TP code and it works, even though that code is in there.

I know in the past that GWT got angry whenever it saw code that it did not know about. But perhaps more recent versions are more fine grained in their analysis and don't complain about code that makes unknown references if the code in question is not used.

In any case, I'm wondering why the TP demo compiles fine when it references the same code that you're having trouble with.

-- mdb@samskivert.com

samskivert commented 10 years ago

On Wed, Jan 15, 2014 at 1:55 PM, Michael Bayne mdb@samskivert.com wrote:

I seem to be able to compile the TriplePlay demo using that TP code and it works, even though that code is in there.

By which I mean, the TP demo references Flump code that does not reference DataInputStream, etc. and works. The TP demo does not use BinaryFlumpLoader. Hence my earlier question of whether you were trying to use that particular class.

-- mdb@samskivert.com

toxic88 commented 10 years ago

I've found solution and forgot write it here.... maybe for somebody will be useful. The problem disappeared after changing parameter of gwt-maven-plug's configuration. More precision property : false should be set to false.