<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:series="http://unfoldingneurons.com/"
		>
<channel>
	<title>Comments on: Structuring GWT modules for large applications</title>
	<atom:link href="http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=structuring-gwt-modules-for-large-applications</link>
	<description>Summa Blog</description>
	<lastBuildDate>Thu, 17 May 2012 15:31:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: AndyD</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3641</link>
		<dc:creator>AndyD</dc:creator>
		<pubDate>Tue, 06 Dec 2011 18:22:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3641</guid>
		<description>Hi Ben, thanks for a great article.  I&#039;m relatively new to GW,T but just today I ran into some of these same issues.  I had just split my &quot;user&quot; and &quot;admin&quot; stuff into two modules and ran across this post while googling for a solution to a problem I&#039;m having in eclipse (can&#039;t seem to run both modules in parallel in development mode - the 2nd one I run complains about not finding my gwt.xml file).   I have to thank Ashton, too... I&#039;m bookmarking his sample app to handle login, since I&#039;m going to be working on that in the future.</description>
		<content:encoded><![CDATA[<p>Hi Ben, thanks for a great article.  I&#8217;m relatively new to GW,T but just today I ran into some of these same issues.  I had just split my &#8220;user&#8221; and &#8220;admin&#8221; stuff into two modules and ran across this post while googling for a solution to a problem I&#8217;m having in eclipse (can&#8217;t seem to run both modules in parallel in development mode &#8211; the 2nd one I run complains about not finding my gwt.xml file).   I have to thank Ashton, too&#8230; I&#8217;m bookmarking his sample app to handle login, since I&#8217;m going to be working on that in the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: reduce melanin production</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3623</link>
		<dc:creator>reduce melanin production</dc:creator>
		<pubDate>Thu, 01 Dec 2011 10:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3623</guid>
		<description>Your blog has definitely inspired me to re think the way I run my site. Just saying thanks for your great work.</description>
		<content:encoded><![CDATA[<p>Your blog has definitely inspired me to re think the way I run my site. Just saying thanks for your great work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sahil</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3606</link>
		<dc:creator>sahil</dc:creator>
		<pubDate>Mon, 21 Nov 2011 11:32:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3606</guid>
		<description>Can any one tell me that  i am making a chat server in GWT and now i want to do the server side ..so what i can use for that in GWT....can any one provide me some example...</description>
		<content:encoded><![CDATA[<p>Can any one tell me that  i am making a chat server in GWT and now i want to do the server side ..so what i can use for that in GWT&#8230;.can any one provide me some example&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Developer Sharing June Edition &#171; GWT Buzz</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3396</link>
		<dc:creator>Developer Sharing June Edition &#171; GWT Buzz</dc:creator>
		<pubDate>Wed, 29 Jun 2011 01:06:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3396</guid>
		<description>[...] GWT Module organizing http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/ [...]</description>
		<content:encoded><![CDATA[<p>[...] GWT Module organizing http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/ [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A pattern for GWT code splitting &#124; Summa Blog</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3275</link>
		<dc:creator>A pattern for GWT code splitting &#124; Summa Blog</dc:creator>
		<pubDate>Tue, 03 May 2011 12:57:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3275</guid>
		<description>[...] building large applications with GWT, code splitting is a must - otherwise, the entire application (i.e. Javascript bundle) is [...]</description>
		<content:encoded><![CDATA[<p>[...] building large applications with GWT, code splitting is a must &#8211; otherwise, the entire application (i.e. Javascript bundle) is [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Northrop</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3254</link>
		<dc:creator>Ben Northrop</dc:creator>
		<pubDate>Wed, 27 Apr 2011 13:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3254</guid>
		<description>Hi David - 

Sorry for the super slow reply - I didn&#039;t see this comment!

Honestly, I think I would lean toward the two module solution as well...just because the code seems so distinct/separate...there&#039;s no real navigation between the two modules...and like you said, you wouldn&#039;t have to bother with code splitting.  That&#039;s just my 2 cents though!</description>
		<content:encoded><![CDATA[<p>Hi David &#8211; </p>
<p>Sorry for the super slow reply &#8211; I didn&#8217;t see this comment!</p>
<p>Honestly, I think I would lean toward the two module solution as well&#8230;just because the code seems so distinct/separate&#8230;there&#8217;s no real navigation between the two modules&#8230;and like you said, you wouldn&#8217;t have to bother with code splitting.  That&#8217;s just my 2 cents though!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashton</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3150</link>
		<dc:creator>Ashton</dc:creator>
		<pubDate>Wed, 06 Apr 2011 20:54:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3150</guid>
		<description>I have created a sample application which uses a separate LoginModule to handle any pre-authentication/login stuff. I have included two main modules

Overview:
You have two main module that you want to put behind a login and you want to have full GWT-Control over your login page. I have created a Login module which loads and will fire a quick rpc to check for an existing session (if so redirect). It will show a form to either login or register

The web.xml defines two servlets for the two main modules and a servlet for the login module. The two main module servlets are very basic. All they do is check for an existing user (if yes: return an html page which poitns to ModuleX.nocache.js, Otherwise, return an html page the loads the login.nochache.js)

The default welcome file will just load login. 

Just wanted to post this as a reference to whoever stumbles across it..

Check out the web.xml and the servlets and login (entry point)


Demo:
http://gwt-advanced-login.appspot.com/

Code:
https://github.com/ashtonthomas/GwtAdvancedLogin</description>
		<content:encoded><![CDATA[<p>I have created a sample application which uses a separate LoginModule to handle any pre-authentication/login stuff. I have included two main modules</p>
<p>Overview:<br />
You have two main module that you want to put behind a login and you want to have full GWT-Control over your login page. I have created a Login module which loads and will fire a quick rpc to check for an existing session (if so redirect). It will show a form to either login or register</p>
<p>The web.xml defines two servlets for the two main modules and a servlet for the login module. The two main module servlets are very basic. All they do is check for an existing user (if yes: return an html page which poitns to ModuleX.nocache.js, Otherwise, return an html page the loads the login.nochache.js)</p>
<p>The default welcome file will just load login. </p>
<p>Just wanted to post this as a reference to whoever stumbles across it..</p>
<p>Check out the web.xml and the servlets and login (entry point)</p>
<p>Demo:<br />
<a href="http://gwt-advanced-login.appspot.com/" rel="nofollow">http://gwt-advanced-login.appspot.com/</a></p>
<p>Code:<br />
<a href="https://github.com/ashtonthomas/GwtAdvancedLogin" rel="nofollow">https://github.com/ashtonthomas/GwtAdvancedLogin</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashton</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3148</link>
		<dc:creator>Ashton</dc:creator>
		<pubDate>Wed, 06 Apr 2011 18:22:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3148</guid>
		<description>David, this is probably a common problem and an issue that I am working with currently. My current solution is a big hack so I will create a new way and post the solution</description>
		<content:encoded><![CDATA[<p>David, this is probably a common problem and an issue that I am working with currently. My current solution is a big hack so I will create a new way and post the solution</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Pinn</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3128</link>
		<dc:creator>David Pinn</dc:creator>
		<pubDate>Fri, 01 Apr 2011 14:07:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3128</guid>
		<description>What a relief to discover that other people are struggling with the same issues! Thanks for your comprehensive post, Ben. I wonder if you, or your readers, would be kind enough to do a sanity check on my thinking; here goes:

There&#039;s an architectural issue that is troubling me, which I&#039;ll explain in a moment; but first I need to present some background information.

I have a web app that is fronted by a set of &#039;landing&#039; pages, which have marketing gumph and a nice big green Sign Up button. Because I want search engines to fully index the marketing goodness, I want the landing pages to be delivered to the browser as HTML (as opposed to a ball of untrawlable GWT JavaScript). So far so good; the landing pages can be implemented as HTML files served up by Tomcat.

Now I want to add a login panel to the masthead of my landing pages. Returning users can enter their email address and password into that panel, and be given access to the application proper. OK, so that&#039;s just a simple HTML form, and a servlet/JSP on the server-side to handle the authentication, as per Google&#039;s article, &lt;a href=&quot;http://code.google.com/webtoolkit/articles/dynamic_host_page.html&quot; rel=&quot;nofollow&quot;&gt;Using a Dynamic Host Page for Authentication and Initialization&lt;/a&gt;.

Here&#039;s where it gets tricky. I want to give the login panel some smarts; for example: labels that are rendered inside the fields, and fade when you type over them; a cool animated wait icon; and nifty handling of error conditions. I guess I could use JQuery for that, but hey, I already have my hammer (GWT), and this login panel looks a lot like a nail.

It seems to me that I have two architectural options:

TWO MODULES: one module for the login panel, and one for the application proper. The login module is really small and attaches itself to the masthead of my landing page(s). Upon successful login, the login panel uses Window.Location.assign() or whatever to flip to the HTML host page that embeds the main application.

ONE MODULE: the module cleverly detects whether it is hosted a landing page or the main application host page, perhaps by looking for the DOM element that represents the container of the login panel. If it&#039;s on a landing page, it inserts itself into the appropriate place, and activates just the code that it needs to perform the login, leaving the bulk of the application behind a split point. If it&#039;s on the main application host page, then it attaches itself to the body of the document, and lights up the main application code.

I&#039;m drawn to the two-module option because code splitting is fiddly and time-consuming, but having read your article, I&#039;m no longer sure. I&#039;d be grateful for your thoughts on the matter.</description>
		<content:encoded><![CDATA[<p>What a relief to discover that other people are struggling with the same issues! Thanks for your comprehensive post, Ben. I wonder if you, or your readers, would be kind enough to do a sanity check on my thinking; here goes:</p>
<p>There&#8217;s an architectural issue that is troubling me, which I&#8217;ll explain in a moment; but first I need to present some background information.</p>
<p>I have a web app that is fronted by a set of &#8216;landing&#8217; pages, which have marketing gumph and a nice big green Sign Up button. Because I want search engines to fully index the marketing goodness, I want the landing pages to be delivered to the browser as HTML (as opposed to a ball of untrawlable GWT JavaScript). So far so good; the landing pages can be implemented as HTML files served up by Tomcat.</p>
<p>Now I want to add a login panel to the masthead of my landing pages. Returning users can enter their email address and password into that panel, and be given access to the application proper. OK, so that&#8217;s just a simple HTML form, and a servlet/JSP on the server-side to handle the authentication, as per Google&#8217;s article, <a href="http://code.google.com/webtoolkit/articles/dynamic_host_page.html" rel="nofollow">Using a Dynamic Host Page for Authentication and Initialization</a>.</p>
<p>Here&#8217;s where it gets tricky. I want to give the login panel some smarts; for example: labels that are rendered inside the fields, and fade when you type over them; a cool animated wait icon; and nifty handling of error conditions. I guess I could use JQuery for that, but hey, I already have my hammer (GWT), and this login panel looks a lot like a nail.</p>
<p>It seems to me that I have two architectural options:</p>
<p>TWO MODULES: one module for the login panel, and one for the application proper. The login module is really small and attaches itself to the masthead of my landing page(s). Upon successful login, the login panel uses Window.Location.assign() or whatever to flip to the HTML host page that embeds the main application.</p>
<p>ONE MODULE: the module cleverly detects whether it is hosted a landing page or the main application host page, perhaps by looking for the DOM element that represents the container of the login panel. If it&#8217;s on a landing page, it inserts itself into the appropriate place, and activates just the code that it needs to perform the login, leaving the bulk of the application behind a split point. If it&#8217;s on the main application host page, then it attaches itself to the body of the document, and lights up the main application code.</p>
<p>I&#8217;m drawn to the two-module option because code splitting is fiddly and time-consuming, but having read your article, I&#8217;m no longer sure. I&#8217;d be grateful for your thoughts on the matter.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3093</link>
		<dc:creator>James</dc:creator>
		<pubDate>Fri, 25 Mar 2011 06:16:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3093</guid>
		<description>Thanks, this proved useful.</description>
		<content:encoded><![CDATA[<p>Thanks, this proved useful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ahmed</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3090</link>
		<dc:creator>Ahmed</dc:creator>
		<pubDate>Wed, 23 Mar 2011 21:43:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3090</guid>
		<description>Thanks for laying out different options and issues related to them Lots of good tips in comments too.</description>
		<content:encoded><![CDATA[<p>Thanks for laying out different options and issues related to them Lots of good tips in comments too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jens</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3088</link>
		<dc:creator>jens</dc:creator>
		<pubDate>Tue, 22 Mar 2011 02:27:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3088</guid>
		<description>thanks a million times for this helpfull post!!!! jens</description>
		<content:encoded><![CDATA[<p>thanks a million times for this helpfull post!!!! jens</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Northrop</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3058</link>
		<dc:creator>Ben Northrop</dc:creator>
		<pubDate>Mon, 28 Feb 2011 12:17:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3058</guid>
		<description>Thanks Ashton!  Great comments.  

The &quot;admin&quot; vs. &quot;normal-mode&quot; module, I suspect, is the most common scenario, and actually that might have been a better example in the post.  A separate module and EntryPoint is probably always warranted - the two &quot;sections&quot;, in this case, are really two separate apps (admin users only want to download admin code, there&#039;s probably not much navigation between sections, no need to share state, etc.).  

Developing an app for different clients can be extremely tricky, since as you said they can end up being pretty different.  That&#039;s a whole other post! :)</description>
		<content:encoded><![CDATA[<p>Thanks Ashton!  Great comments.  </p>
<p>The &#8220;admin&#8221; vs. &#8220;normal-mode&#8221; module, I suspect, is the most common scenario, and actually that might have been a better example in the post.  A separate module and EntryPoint is probably always warranted &#8211; the two &#8220;sections&#8221;, in this case, are really two separate apps (admin users only want to download admin code, there&#8217;s probably not much navigation between sections, no need to share state, etc.).  </p>
<p>Developing an app for different clients can be extremely tricky, since as you said they can end up being pretty different.  That&#8217;s a whole other post! <img src='http://www.summa-tech.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashton</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3056</link>
		<dc:creator>Ashton</dc:creator>
		<pubDate>Mon, 28 Feb 2011 04:15:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3056</guid>
		<description>Nice article. It&#039;s nice to learn from veterans and gain this feedback without actually having to put in the hours:)

My experience:

I use a similar solution as Jim in that I only compile for one variation and for one module when I need. My compile times are only 3-5 minutes now so it&#039;s not terrible. (I work 24/7 so sometimes I let it do a clean complete compile just for a break)

* My comments below are bias to my application and will probably taint the objective nature of Ben&#039;s post *

However, when using code splitting you may want to compile soyc reports to understand what&#039;s going on under the hood. In this case, compile time shoots up again

As far as organizing modules, I agree you will always have that &quot;common&quot; aspect and the balance between components built on top of the common aspects depends on all factors. You mentioned business units as separate components and another could be device. GWT makes it very easy to compile for different user agents. 

However, I think that if you make a mobile version of your app then it probably needs to be a separate module if you are really going to make it worth anything. This is very tricky because you should have &quot;common&quot; areas all over the place. But the reason for building a mobile or tablet app would be so users could interact with it in a different way and the app could interact with the user in a different way. It should be (and by should I mean in my case the my app needs to function significantly different on other devices - different kinds of users are using it for different reasons) a different app with different application logic and flow (well different enough to where the pros of organizing into different modules may actually outweigh the cons).

I also use a different module to separate Admin functions from normal functions. Here there is a lot of overlap and I would like to have it as one module. However, I am building a user facing application and don&#039;t want the Admin app logic (however ever obfuscated it may be - or what size) downloading with ever normal user. I briefly tried using code splitting to solve this problem but it just makes things too complicated and then I would have to authorize a client to download admin code and other problems arise. So that situation isn&#039;t perfect

It depends. So that was my experience</description>
		<content:encoded><![CDATA[<p>Nice article. It&#8217;s nice to learn from veterans and gain this feedback without actually having to put in the hours:)</p>
<p>My experience:</p>
<p>I use a similar solution as Jim in that I only compile for one variation and for one module when I need. My compile times are only 3-5 minutes now so it&#8217;s not terrible. (I work 24/7 so sometimes I let it do a clean complete compile just for a break)</p>
<p>* My comments below are bias to my application and will probably taint the objective nature of Ben&#8217;s post *</p>
<p>However, when using code splitting you may want to compile soyc reports to understand what&#8217;s going on under the hood. In this case, compile time shoots up again</p>
<p>As far as organizing modules, I agree you will always have that &#8220;common&#8221; aspect and the balance between components built on top of the common aspects depends on all factors. You mentioned business units as separate components and another could be device. GWT makes it very easy to compile for different user agents. </p>
<p>However, I think that if you make a mobile version of your app then it probably needs to be a separate module if you are really going to make it worth anything. This is very tricky because you should have &#8220;common&#8221; areas all over the place. But the reason for building a mobile or tablet app would be so users could interact with it in a different way and the app could interact with the user in a different way. It should be (and by should I mean in my case the my app needs to function significantly different on other devices &#8211; different kinds of users are using it for different reasons) a different app with different application logic and flow (well different enough to where the pros of organizing into different modules may actually outweigh the cons).</p>
<p>I also use a different module to separate Admin functions from normal functions. Here there is a lot of overlap and I would like to have it as one module. However, I am building a user facing application and don&#8217;t want the Admin app logic (however ever obfuscated it may be &#8211; or what size) downloading with ever normal user. I briefly tried using code splitting to solve this problem but it just makes things too complicated and then I would have to authorize a client to download admin code and other problems arise. So that situation isn&#8217;t perfect</p>
<p>It depends. So that was my experience</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A Few Ways To Get Better GWT Compile Times &#171; Supply Chain Technology</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3053</link>
		<dc:creator>A Few Ways To Get Better GWT Compile Times &#171; Supply Chain Technology</dc:creator>
		<pubDate>Thu, 24 Feb 2011 20:37:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3053</guid>
		<description>[...] build cycle, and it is an issue. Structural changes, such as some of the options recommended in Ben Northrup&#8217;s article, can help this, but compiling a collection of independent modules is an issue and Google has not [...]</description>
		<content:encoded><![CDATA[<p>[...] build cycle, and it is an issue. Structural changes, such as some of the options recommended in Ben Northrup&#8217;s article, can help this, but compiling a collection of independent modules is an issue and Google has not [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Northrop</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3050</link>
		<dc:creator>Ben Northrop</dc:creator>
		<pubDate>Wed, 23 Feb 2011 22:40:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3050</guid>
		<description>Jim - very clever approach...and great tips in your post (wish I found it a few months ago actually!).  

Unfortunately, we&#039;re using Maven...which limits some of our flexibility in building...so our approach is definitely less elegant than yours or Stephen&#039;s.  

Thanks for commenting!</description>
		<content:encoded><![CDATA[<p>Jim &#8211; very clever approach&#8230;and great tips in your post (wish I found it a few months ago actually!).  </p>
<p>Unfortunately, we&#8217;re using Maven&#8230;which limits some of our flexibility in building&#8230;so our approach is definitely less elegant than yours or Stephen&#8217;s.  </p>
<p>Thanks for commenting!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Structuring GWT Modules for Large Applications &#171; Supply Chain Technology</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3049</link>
		<dc:creator>Structuring GWT Modules for Large Applications &#171; Supply Chain Technology</dc:creator>
		<pubDate>Wed, 23 Feb 2011 20:08:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3049</guid>
		<description>[...] recommend you read the entire article, but here are some of the [...]</description>
		<content:encoded><![CDATA[<p>[...] recommend you read the entire article, but here are some of the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3048</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Wed, 23 Feb 2011 19:52:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3048</guid>
		<description>At my company we have thought through many of the same issues. 

Stephen&#039;s strategy is a little more straightforward, but what we have done to help developers compile only those modules they are interested in is create text file which lists a GWT module on each line. This file is read in by an Ant script which ignores modules commented out with a hash -- this makes it very easy to tune which modules are compiled.

To speed continuous builds, we have created copies of each module&#039;s gwt.xml file which compiles each module for a single browser. These versions are only used when we set a build flag; this enables us, along with use of the --draftCompile flag and PRETTY formatting, to see build times of half of what they are when we are not using them. For getting fast confirmation that the build is not broken, this has been fantastic.

There are other tricks, which I have outlined &lt;a href=&quot;http://supplychaintechnology.wordpress.com/2010/06/04/gwt_compile_times/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, but your article definitely covers this topic in much more depth.

Thanks for the writeup!</description>
		<content:encoded><![CDATA[<p>At my company we have thought through many of the same issues. </p>
<p>Stephen&#8217;s strategy is a little more straightforward, but what we have done to help developers compile only those modules they are interested in is create text file which lists a GWT module on each line. This file is read in by an Ant script which ignores modules commented out with a hash &#8212; this makes it very easy to tune which modules are compiled.</p>
<p>To speed continuous builds, we have created copies of each module&#8217;s gwt.xml file which compiles each module for a single browser. These versions are only used when we set a build flag; this enables us, along with use of the &#8211;draftCompile flag and PRETTY formatting, to see build times of half of what they are when we are not using them. For getting fast confirmation that the build is not broken, this has been fantastic.</p>
<p>There are other tricks, which I have outlined <a href="http://supplychaintechnology.wordpress.com/2010/06/04/gwt_compile_times/" rel="nofollow">here</a>, but your article definitely covers this topic in much more depth.</p>
<p>Thanks for the writeup!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Northrop</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3046</link>
		<dc:creator>Ben Northrop</dc:creator>
		<pubDate>Wed, 23 Feb 2011 12:25:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3046</guid>
		<description>Thanks Stephen!  That&#039;s a really good strategy.</description>
		<content:encoded><![CDATA[<p>Thanks Stephen!  That&#8217;s a really good strategy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://www.summa-tech.com/blog/2011/02/22/structuring-gwt-modules-for-large-applications/comment-page-1/#comment-3045</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Wed, 23 Feb 2011 07:31:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.summa-tech.com/blog/?p=2590#comment-3045</guid>
		<description>For each of our GWT based projects, we have a single
  App.gwt.xml
which builds all variants of the complete application, and then a
  AppCustom.gwt.xml
which inherits from App.gwt.xml. 

Developers run local compiles using AppCustom, the production builds are built from App. 
Developers disable/adjust the config depending on what they are working on.

The AppCustom.gwt.xml isn&#039;t committed to source control - so there is no danger of developers inadvertantly checking in their custom version and screwing up other developers or the production build.

This works well for us, especially as different developers work on different platforms and in different languages.

We use option (4) btw, however our applications are used internally by businesses, so having a single largish download (over 1Mb unzipped) per app isn&#039;t an issue.</description>
		<content:encoded><![CDATA[<p>For each of our GWT based projects, we have a single<br />
  App.gwt.xml<br />
which builds all variants of the complete application, and then a<br />
  AppCustom.gwt.xml<br />
which inherits from App.gwt.xml. </p>
<p>Developers run local compiles using AppCustom, the production builds are built from App.<br />
Developers disable/adjust the config depending on what they are working on.</p>
<p>The AppCustom.gwt.xml isn&#8217;t committed to source control &#8211; so there is no danger of developers inadvertantly checking in their custom version and screwing up other developers or the production build.</p>
<p>This works well for us, especially as different developers work on different platforms and in different languages.</p>
<p>We use option (4) btw, however our applications are used internally by businesses, so having a single largish download (over 1Mb unzipped) per app isn&#8217;t an issue.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

