Skip to content
This repository has been archived by the owner on Nov 11, 2022. It is now read-only.

EventBinder module definition is incompatible with separate compilation landed on GWT trunk #20

Open
jnehlmeier opened this issue Apr 22, 2014 · 4 comments

Comments

@jnehlmeier
Copy link

Separate compilation is used to speed up SuperDevMode. It compiles each module on its own and fails on EventBinder.gwt.xml because it only inherits com.google.web.bindery.event.Event but uses classes from com.google.gwt.event.EventBase, e.g. class GwtEvent.

To fix that I locally changed EventBinder.gwt.xml to inherit com.google.gwt.event.EventBase. This seems to work although I am not sure if it wouldn't be better to inherit com.google.gwt.user.User instead.

However after doing so, separate compilation complains that the interface com.google.web.bindery.event.shared.binder.EventBinder is provided by two modules: com.google.web.bindery.event.EventBinder and com.google.gwt.user.User. That's probably because gwteventbinder has reused the shared package already provided by com.google.web.bindery.event.Event. Separate compilation requires that each compilation unit is unique to a single GWT module so I think to fix that problem gwteventbinder classes must be moved to its own package.

You can reproduce the issue by creating a sample application using gwt trunk and gwteventbinder. Then start SuperDevMode using -Xincremental.

@tbroyer
Copy link
Contributor

tbroyer commented Apr 22, 2014

No need to rename the package AFAICT, it should be enough to add includes/excludes to the <source> (except maybe they'd have to be added to web.bindery.event.Event)

@jnehlmeier
Copy link
Author

Hm wouldn't that mean that GWT needs include/excludes rules for all gwteventbinder classes and gwteventbinder in turn needs include/excludes rules for all GWT classes in that shared package? Sounds brittle to me as both need to be updated if a new class is introduced in that package by either GWT or gwteventbinder. Before doing such a thing I would prefer integrating gwteventbinder into GWT proper.

Well or just live with a breaking change and rename the package. Search and replace can easily fix this. Personally I don't have problems with easily fixable breaking changes.

@tbroyer
Copy link
Contributor

tbroyer commented Apr 23, 2014

Each module could have includes for its own files.
But if GWT would have to be changed, then yes I agree EventBinder should rather use a different package.

@gkdn
Copy link
Member

gkdn commented Apr 24, 2014

Superdevmode changes just landed this week; just give us some time ;) I
don't think this will cause too much trouble; we will take care of this
once we start updating the libs...

On Wed, Apr 23, 2014 at 4:28 AM, Thomas Broyer notifications@github.51.alwrote:

Each module could have includes for its own files.
But if GWT would have to be changed, then yes I agree EventBinder should
rather use a different package.


Reply to this email directly or view it on GitHubhttps://github.com//issues/20#issuecomment-41150229
.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants