To solve an issue with our particular use of GWT, we implement our own
"post" Linker for GWT. This post linker appends a block of JS code to
the end of <module>.nocache.js, by detecting the nocache.js file
when it's passed to the link() command in the ArtifactSet, and replacing
it with a new Artifact that's actually the original Artifact with our
code appended. This works fine in production mode, and our appended
code shows up in <module>.nocache.js in the file system.
However,
when Eclipse is used to run the server on port 8888 with GWT 2.7.0 in
SuperDevMode, all heck breaks loose: Our post linker still sees the
original content in the <module>.nocache.js file (i.e., the same
content we see for production mode). However
, this content is not then present in the <module>.nocache.js file in the file system. Instead, that file contains totally different content. In particular, there's a comment:
**
* This startup script is used when we run superdevmode from an app server.
*/Needless
to say, since the linker is not ever served this content in any
Artifact, we can't append anything to it. So the questions arise:
- Why
are the post-linkers fed misleading content for the
<module>.nocache.js file Artifact that doesn't represent what will
be the file system content of that file?
- Is there any way to gain access to the Artifact that actually contains the "fake" app server JS code that is written into <module>.nocache.js so it can be modified?
- How
do I control the order of my post linker within the set of other post
linkers? I set it as a post linker with a pragma, but say I want it to
be the last post linker?
If there is some alternate
means to hook loading of <module>.nocache.js, that would also work
for our application, as long as it's synchronously executed (as is JS
code appended to <module>.nocache.js).