saiddfhi / gwt-maven

Automatically exported from code.google.com/p/gwt-maven
0 stars 0 forks source link

mergewebxml does not consider maven dependencies #83

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Is this Maven 1 or Maven 2?
Maven2

What steps will reproduce the problem?
1. Create a GWT Module with servlet entry
2. Create a GWT Application inheriting from GWT Module
3. Use mergewebxml goal in GWT Application

What is the expected output? What do you see instead?
Expected to see servlet entry in GWT Application's merged web.xml.
Instead, unable to resolve inherited module.

What version of the product are you using? On what operating system?
gwt-maven 2.0-beta6
Maven version: 2.0.8
Java version: 1.6.0_03
OS name: "linux" version: "2.6.22-14-generic" arch: "i386" Family: "unix"

Please provide any additional information below.
The mergewebxml mojo does not seem to consider dependencies to resolve
inherited module  servlet entries.  Instead, mergewebxml seems to be using
only the project compile source roots (like src/main/java) and the project
resources (like src/main/resources).

Original issue reported on code.google.com by john.r.f...@gmail.com on 21 Feb 2008 at 9:36

GoogleCodeExporter commented 9 years ago
We will look into this, but I am pretty sure when it was originally written it 
did
follow the path and work through inherited modules too (inherited GWT modules). 
 Need
to double check that now (need to make a good test case to do so). Thanks for 
the
report, and we will look into this - it definitely *should* crawl the 
inheritance path. 

Original comment by charlie....@gmail.com on 4 Apr 2008 at 11:28

GoogleCodeExporter commented 9 years ago

Original comment by charlie....@gmail.com on 14 Apr 2008 at 1:37

GoogleCodeExporter commented 9 years ago
I confirmed this to be a bug today, in M2 beta13 (updated the sample to inherit 
the
server portion, works in hosted mode, but service servlet entries from inherited
modules are not there in the final WAR). 

This works on a few M1 projects I have at the office, so something strange is 
going
on with M2.  More research needed. 

Original comment by charlie....@gmail.com on 14 Apr 2008 at 5:11

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Problem is in GwtWebInfProcessor, getGwtServletDescriptors, 
getResourceAsStream()
call.  Somehow when a GWT module is inherited, and the JAR does have source 
module
file, that file is not on classpath for getResourceAsStream.  

I changed the sample to inherit the "server" module in the "war" module to 
exercise
this - and with a few extra debug statements in support package I get:

path - /com/totsp/mavenplugin/gwt/sample/server/ApplicationServices.gwt.xml
java.net.MalformedURLException
        at java.net.URL.<init>(URL.java:601)
        at java.net.URL.<init>(URL.java:464)
        at java.net.URL.<init>(URL.java:413)
        at org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:796)
        at
org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(XMLEntityManager.jav
a:741)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(XMLDocumentScannerI
mpl.java:260)
        at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:498)
        at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1169)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:770)
        at
com.totsp.mavenplugin.gwt.support.GwtWebInfProcessor.getGwtServletDescriptors(Gw
tWebInfProcessor.java:125)
        at
com.totsp.mavenplugin.gwt.support.GwtWebInfProcessor.getGwtServletDescriptors(Gw
tWebInfProcessor.java:141)
        at
com.totsp.mavenplugin.gwt.support.GwtWebInfProcessor.<init>(GwtWebInfProcessor.j
ava:96)

Need to figure out why classpath is fukt, why dep JARs aren't in it, at this 
part of
the process. 

Though I know for a fact this used to work, at least on many of my M1 projects 
(and
M1 and M2 use the same "support" module for this) - have to chase down what 
happened
(or why M2 classpath is not working). 

Original comment by charlie....@gmail.com on 14 Apr 2008 at 6:05

GoogleCodeExporter commented 9 years ago
The tests work, and in M1 this works (via the support Jar which does 

document =
builder.build(GwtWebInfProcessor.class.getResourceAsStream("/"+module.replace('.
',
'/') + ".gwt.xml"));

But in M2 getResourceAsStream fails - classloader crapola.  I don't follow the
"fixTheadClasspath" and ClassWorld/ClassRealm stuff in MergeWebXmlMojo 
(debugging it,
it DOES add the correct JARS - the ones with the .get.xml files it needs to the
Thread setCurrentClassLoader stuff it does).  About as convoluted as possible. 
There
is probably a simple fix for this, but I can't seem to figure it out right now. 

Cooper? Chirp? 

Original comment by charlie....@gmail.com on 15 Apr 2008 at 2:11

GoogleCodeExporter commented 9 years ago
2.0-beta 14 should fix this - works now in the sample, and did not before the 
fix
(classpath issue in M2, updated support JAR and plugin)

Original comment by charlie....@gmail.com on 17 Apr 2008 at 4:26

GoogleCodeExporter commented 9 years ago

Original comment by charlie....@gmail.com on 17 Apr 2008 at 4:26

GoogleCodeExporter commented 9 years ago
Hi, 

i still get this problem....

My application.gwt.xml contains this 
------------------------------------------------
<module>

    <!-- Inherit the core Web Toolkit stuff. -->
    <inherits name='com.google.gwt.user.User' />

    <!-- Inherit the server project, which defines a service servlet endpoint -->
    <inherits name='com.****.***.****.server.service.ApplicationServices' />

    <!-- Specify the app entry point class.  -->
    <entry-point class='com..****.***.****.client.Application' />

    <!-- Specify a css to load into your gwt application -->
    <stylesheet src='styles/sample.css'/>

</module>

And my applicationservices.gwt.xml this below
----------------------------------------------------------------------
<module>

    <inherits name='com.google.gwt.user.User' />

    <!-- Service Servlet Mapping -->
    <servlet path='/driverService'
class='com.********.*****.***.server.DriverServiceImpl' />

</module>

When i do this i still get the malformedurlexception.. When i don't include it 
the
applicationservices.. he don't crashes?

What i'm doing wrong??

Original comment by appienva...@gmail.com on 13 Jun 2008 at 1:48

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Still happens in 2.0-beta14 (Mac OS X Leopard)

Original comment by gstat...@gmail.com on 28 Jun 2008 at 10:55