The problem is that the source code of both classes is in the jar.
My jar has something like this:
com.company
|- Module.gwt.xml
|- pack
|- A.class
|- A.java
|- client
|- B.class
|- B.java
So both source files are available but only B file is part of the
module, since it's the only class that's in the client package.
On 21 ene, 18:24, Chris Lercher <[email protected]> wrote:
> I believe that what you expect from the GWT compiler is probably a lot
> harder to achieve than "just" pruning unused methods (which is already
> a great feature IMO).
>
> gwtc compiles Java source -> Javascript. I assume that it can't read
> Java bytecode at all (?) So just providing a jar file which contains
> class A as bytecode won't work.
>
> In theory, gwtc might be able to completely ignore A, but that's
> generally not so easy. (It's something that javac can't do either: It
> needs a .java file or a .class file for every type you reference.)
>
> Therefore, I wouldn't say that it's a shame, or that it's
> disappointing at all. It would be a quite ambitious feature for a
> compiler of a strongly typed language.
>
> On Jan 21, 5:12 pm, getaceres <[email protected]> wrote:
>
>
>
> > I have something similar. I have this:
>
> > package com.company.pack
> > class A {}
>
> > package com.company.client
> > class B implements Serializable {
> > <some serializable fields>
> > private transient A field;
>
> > private A getA() {
> > return field;
> > }
>
> > private void setA(A val) {
> > this.field = val;
> > }
>
> > }
>
> > Both classes are JPA classes and it's only that B class has a
> > relationship with a non serializable A class, which the GWT client
> > doesn't have to know about. The rest of it, is serializable.
> > In this case, class A and B are in the same jar and the jar has the
> > sources included, but only B is in the GWT module (the client folder).
> > When I try to include this jar in my GWT project, I get an exception:
>
> > No source code is available for type com.company.pack.A; did you
> > forget to inherit a required module?
>
> > I tried putting the GwtTransient annotation to field A but the result
> > is the same. I think that GWT should completely ignore the classes
> > that are transient and its getters and setters and don't try to even
> > compile them.
> > It's a shame that, almost for every hibernate class that I have, I
> > have to create another class which has exactly the same fields, except
> > for one or two of them, and that I have to be putting all the data
> > from one bean to another all the time. It would be so much simple to
> > mark in my beans just the parts that the compiler shouldn't care
> > about.
>
> > On 14 ene, 14:55, Chris Lercher <[email protected]> wrote:
>
> > > Well, it works for me. I didn't try it with TopLink - I used POJOs
> > > instead - but when I declare the fieldtransient, it works (according
> > > to the SOYC Compile Report).
>
> > > ----------------------
> > > Example:
>
> > > public class WantThat implements Serializable {
> > > privatetransientDontWantThat dontWantThat;
>
> > > public DontWantThat getDontWantThat() {
> > > return dontWantThat;
> > > }
>
> > > }
>
> > > public class DontWantThat implements Serializable {
>
> > > }
>
> > > @RemoteServiceRelativePath("some")
> > > public interface SomeService extends RemoteService {
> > > WantThat getWantThat();}
>
> > > -------------------------
>
> > > DontWantThat is not in my Compile Report. If I remove thetransient
> > > keyword, it is.
>
> > > Maybe there's something different with your case. Maybe something is
> > > accessing your "getDontWantThat()"? Circular references at least?
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.