So
What you say is: It is not possible to have a page with:
    *** gwtapp + gwtlib + js_export + optimization ***

What is possible to have is either or

1) gwtapp + gwtlib + optimization

or  (xor actually)

2) gwtapp + gwtlib + js_export

right?

a) We assume gwtlib has @JsType(isNative=false) types
b) Optimization is used in the broad sense for method and properties
renaming, removal and other optimization steps

Jens, Thomas thanks a lot for the education.

   Vassilis


On Thu, Sep 15, 2016 at 11:44 AM, Thomas Broyer <[email protected]> wrote:

> Let me try: without -generateJsInteropExports, GWT acts as if
> @JsType(isNative=false) wasn't there at all.
> Why'd you want this?
>
>    - when @JsType(isNative=false) is applied to types you didn't write
>    yourself (third-party). For example, java.util.Collection, java.util.List,
>    java.util.Map, java.util.Set, and java.lang.Enum are annotated with
>    @JsType. If you don't use -generateJsInteropExports, their non-@JsIgnoreâ‹…d
>    public members won't be renamed, and the @JsProperty and
>    @JsMethod-specified names won't be honored, so you'll have very short
>    (obfuscated) names in your app. If you use -generateJsInteropExports, the
>    given js-names will be honored and your code will be slightly bigger, but
>    then you can pass a java.util.List to JS and you can call getAtIndex and
>    removeAtIndex (for example) on it from JS code.
>    - when you want to possibly export your project as a standalone JS
>    lib, but have it consumable by GWT apps with all the GWT optimization
>    goodness: your types will be annotated with @JsType, apps that use your GWT
>    library without using -generateJsInteropExports will have highly-optimized
>    code; but you can use -generateJsInteropExports to export your annotated
>    types to create a standalone JS lib. GWT apps consuming your GWT library
>    and using -generateJsInteropExports will pay the price for your @JsType
>    though (see example above about java.util.List), so you'll probably want to
>    separate out some of your code into a project specific to exporting your JS
>    lib (similarly to how GWTUpload/JSUpload did it)
>    That was Jens' example.
>
>
> On Thursday, September 15, 2016 at 10:18:55 AM UTC+2, Vassilis Virvilis
> wrote:
>>
>> Jens sorry - one more round if you please
>>
>> > The library exists as GWT library (*.jar file with *.gwt.xml)...
>>
>> This GWT library is source right? That means it is compiled by the
>> compilation session of MyApplication right?
>>
>> Unless.... (light bulb goes on)
>>
>> In some cases you want the library to act as JS library for one Page but
>> for another page you only plan to link it with the GWT MyApplication (and
>> not export is as a JS library) where normal optimization techniques apply.
>>
>> Is that it? If so tricky...
>>
>>
>>     Vassilis
>>
>>
>>
>>
>>
>>
>> On Thu, Sep 15, 2016 at 1:54 AM, Jens wrote:
>>
>>>
>>> Is this GWT library exported as JS only? ...
>>>>
>>> So I don't get it. What am I missing?
>>>>
>>>
>>> The library exists as GWT library (*.jar file with *.gwt.xml) so you can
>>> use it right away in your GWT app, but the library is also exported by the
>>> library maintainer to JavaScript so that JavaScript people can also use it
>>> right away by including a *.js file.
>>>
>>> In that case your app does not want to use -generateJsInteropExports
>>> because it directly uses the GWT library which has @JsType(isNative =
>>> false) all over the place in its Java files. If you would use
>>> -generateJsInteropExport in your app, it would have a negative impact on
>>> your code size because these @JsType classes would not be optimized/pruned
>>> then. Now imagine you have several of such libraries in your app.
>>>
>>> -- J.
>>>
>>>
>>
>>
>>
>> --
>> Vassilis Virvilis
>>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/google-web-toolkit.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Vassilis Virvilis

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to