AppFuse, Reduced

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AppFuse, Reduced

mraible
Administrator
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AppFuse, Reduced

David Whitehurst-2
Matt:

Very nice post! I like simplification. I have to currently write stored procedures because the database schema is so complex but I'm wondering is complex service classes can do the trick. I would like to solve my issue and only require the relational database, tables, and columns, any type (with or without stored procedures).

Oh, have you every considered a download like JIRA stand-alone. I paid $10 today for a license and had it running right away on my macbook pro. I think that was very nice.

I know one wouldn't dive in and start developing but ... it would provide a good example on how you could package when your AppFuse start became your application.

Great job on the code reduction.

David

On Tue, Dec 16, 2014 at 1:19 PM, Matt Raible <[hidden email]> wrote:
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt


--
David L. Whitehurst
2932 Tram Road, Fuquay Varina NC 27526
<a href="tel:919-605-6529" value="+19196056529" target="_blank">919-605-6529 (mobile)
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AppFuse, Reduced

mraible
Administrator
On Tue, Dec 16, 2014 at 2:28 PM, David L. Whitehurst <[hidden email]> wrote:
Matt:

Very nice post! I like simplification. I have to currently write stored procedures because the database schema is so complex but I'm wondering is complex service classes can do the trick. I would like to solve my issue and only require the relational database, tables, and columns, any type (with or without stored procedures).

Oh, have you every considered a download like JIRA stand-alone. I paid $10 today for a license and had it running right away on my macbook pro. I think that was very nice.

I agree it would be nice to allow AppFuse applications to be downloaded/run very easily. For example "java -jar appname.war". Spring Boot does this and it's pretty handy. It looks like the Tomcat Maven Plugin allows you to configure this as well.


Currently, the only artifacts we published that aren't used are the WAR files. After this change, we are using the pom files from the war projects to manage dependencies. It'd be interesting to modify the published WAR to use H2 and have Tomcat embedded. That way, all the WARs we publish could easily be downloaded and run. We could also add the same configuration to archetypes so derived projects could use it.

That being said, this goes against "make the project easier to maintain". We'd be adding additional functionality that we'd need to maintain. I've added it to JIRA, but didn't specify a version for fixing it.

 

I know one wouldn't dive in and start developing but ... it would provide a good example on how you could package when your AppFuse start became your application.

Right, this might make a good tutorial to start with. Similar to J. Garcia's article on Liquibase.

 

Great job on the code reduction. 

David

Thanks!

Matt
 

On Tue, Dec 16, 2014 at 1:19 PM, Matt Raible <[hidden email]> wrote:
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt


--
David L. Whitehurst
2932 Tram Road, Fuquay Varina NC 27526
<a href="tel:919-605-6529" value="+19196056529" target="_blank">919-605-6529 (mobile)
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AppFuse, Reduced

ivangsa
long time ago AppFuse was that grand ant script for a well layered, test driven application, with a working implementation of a one-to-many (user->roles) relation in a number of combinations of the hottest backend and frontend frameworks of the moment, decoupled and integrated with springframework DI an IoC newest patterns, and with an emphasis in well written semantic (and skinable) html and css... well, that's a wonderful playground for learning!!!!

AppFuse 2 was also great as making Maven work ;)

but those patterns and frameworks are mostly well known now

spring data integration with polyglot backends (for sql, graphs, nosql, rest clients) with dslquery, rest frontends and javascript framewoks would be probably the theme now...

regarding reduction,
it's amazing the minimal poms you get when with using spring boot starters, projects that start almost empty but with a lot of default configurations, with no web.xml, well, mostly no xml configuration at all,
the way you have been refactoring the archetype poms now..
(while java classes are easy to extend, with xml configuration you can only copy and paste huge chunks of code)


AppFuse has been always a great place to learn..
so thanks for AppFuse Matt!


I will upgrade gwt to the latest version soon, but I'm not using it myself and there has been little, mostly none, interest on it

there are some Selenium webtests for the gwt application functionality, that used to work from end to end,
but unlike canoo webtest, they are very dependent on the html, request-response and user messages and javascript alerts...
they would need a rewrite for each framework
and I also didn't know how to integrate them in bamboo, maybe to make a farm that test the different archetypes to different web browsers and platforms...

cheers!
ivan


On 16 December 2014 at 22:52, Matt Raible <[hidden email]> wrote:
On Tue, Dec 16, 2014 at 2:28 PM, David L. Whitehurst <[hidden email]> wrote:
Matt:

Very nice post! I like simplification. I have to currently write stored procedures because the database schema is so complex but I'm wondering is complex service classes can do the trick. I would like to solve my issue and only require the relational database, tables, and columns, any type (with or without stored procedures).

Oh, have you every considered a download like JIRA stand-alone. I paid $10 today for a license and had it running right away on my macbook pro. I think that was very nice.

I agree it would be nice to allow AppFuse applications to be downloaded/run very easily. For example "java -jar appname.war". Spring Boot does this and it's pretty handy. It looks like the Tomcat Maven Plugin allows you to configure this as well.


Currently, the only artifacts we published that aren't used are the WAR files. After this change, we are using the pom files from the war projects to manage dependencies. It'd be interesting to modify the published WAR to use H2 and have Tomcat embedded. That way, all the WARs we publish could easily be downloaded and run. We could also add the same configuration to archetypes so derived projects could use it.

That being said, this goes against "make the project easier to maintain". We'd be adding additional functionality that we'd need to maintain. I've added it to JIRA, but didn't specify a version for fixing it.

 

I know one wouldn't dive in and start developing but ... it would provide a good example on how you could package when your AppFuse start became your application.

Right, this might make a good tutorial to start with. Similar to J. Garcia's article on Liquibase.

 

Great job on the code reduction. 

David

Thanks!

Matt
 

On Tue, Dec 16, 2014 at 1:19 PM, Matt Raible <[hidden email]> wrote:
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt


--
David L. Whitehurst
2932 Tram Road, Fuquay Varina NC 27526
<a href="tel:919-605-6529" value="+19196056529" target="_blank">919-605-6529 (mobile)


--
Enviado desde mi <eZapato>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AppFuse, Reduced

Serge Eby-2
In reply to this post by mraible
As usual, great work Matt!
I think AppFuse will still be valuable by being a learning playground for best practices and clean code. Fully embracing Java 8/polyglot programming could be a big plus.

Serge

On Tuesday, December 16, 2014, Matt Raible <[hidden email]> wrote:
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt


--
---
Serge Eby
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AppFuse, Reduced

mraible
Administrator
In reply to this post by ivangsa


On Tue, Dec 16, 2014 at 4:52 PM, Ivan Garcia Sainz-Aja <[hidden email]> wrote:
long time ago AppFuse was that grand ant script for a well layered, test driven application, with a working implementation of a one-to-many (user->roles) relation in a number of combinations of the hottest backend and frontend frameworks of the moment, decoupled and integrated with springframework DI an IoC newest patterns, and with an emphasis in well written semantic (and skinable) html and css... well, that's a wonderful playground for learning!!!!

AppFuse 2 was also great as making Maven work ;)

but those patterns and frameworks are mostly well known now

spring data integration with polyglot backends (for sql, graphs, nosql, rest clients) with dslquery, rest frontends and javascript framewoks would be probably the theme now...

regarding reduction,
it's amazing the minimal poms you get when with using spring boot starters, projects that start almost empty but with a lot of default configurations, with no web.xml, well, mostly no xml configuration at all,
the way you have been refactoring the archetype poms now..
(while java classes are easy to extend, with xml configuration you can only copy and paste huge chunks of code)


AppFuse has been always a great place to learn..
so thanks for AppFuse Matt!


I will upgrade gwt to the latest version soon, but I'm not using it myself and there has been little, mostly none, interest on it

I think this is partly due to marketing. There's no tutorial for the GWT version, nor any AMP support. My blog post about how it required a lot more code than the other versions probably didn't help either.

 

there are some Selenium webtests for the gwt application functionality, that used to work from end to end,
but unlike canoo webtest, they are very dependent on the html, request-response and user messages and javascript alerts...
they would need a rewrite for each framework
and I also didn't know how to integrate them in bamboo, maybe to make a farm that test the different archetypes to different web browsers and platforms...

I looked into these and they weren't working at all. I did some adjustments to make things work, but they're still not up-to-snuff as far as I can tell. I believe there's an HtmlUnit (or maybe PhantomJS) driver that could run Selenium headless. The webtest plugin is kindof a mess. It hasn't been updated in years. I spent a day trying to upgrade it to the latest HtmlUnit, but failed. An integration testing solution based on Selenium would likely be a lot better. If we're really going to strive for #NoXML, it's going to become a necessity.

I'm not that concerned about testing on different browsers. I think testing on Chrome is good enough, beyond that, we should start looking to only support evergreen browsers.


Cheers,

Matt
 

cheers!
ivan


On 16 December 2014 at 22:52, Matt Raible <[hidden email]> wrote:
On Tue, Dec 16, 2014 at 2:28 PM, David L. Whitehurst <[hidden email]> wrote:
Matt:

Very nice post! I like simplification. I have to currently write stored procedures because the database schema is so complex but I'm wondering is complex service classes can do the trick. I would like to solve my issue and only require the relational database, tables, and columns, any type (with or without stored procedures).

Oh, have you every considered a download like JIRA stand-alone. I paid $10 today for a license and had it running right away on my macbook pro. I think that was very nice.

I agree it would be nice to allow AppFuse applications to be downloaded/run very easily. For example "java -jar appname.war". Spring Boot does this and it's pretty handy. It looks like the Tomcat Maven Plugin allows you to configure this as well.


Currently, the only artifacts we published that aren't used are the WAR files. After this change, we are using the pom files from the war projects to manage dependencies. It'd be interesting to modify the published WAR to use H2 and have Tomcat embedded. That way, all the WARs we publish could easily be downloaded and run. We could also add the same configuration to archetypes so derived projects could use it.

That being said, this goes against "make the project easier to maintain". We'd be adding additional functionality that we'd need to maintain. I've added it to JIRA, but didn't specify a version for fixing it.

 

I know one wouldn't dive in and start developing but ... it would provide a good example on how you could package when your AppFuse start became your application.

Right, this might make a good tutorial to start with. Similar to J. Garcia's article on Liquibase.

 

Great job on the code reduction. 

David

Thanks!

Matt
 

On Tue, Dec 16, 2014 at 1:19 PM, Matt Raible <[hidden email]> wrote:
Hello all,

I wrote up a blog post over the weekend and published it this morning. 


It's a story about making the project easier to maintain, where I removed almost 10K lines of code from AppFuse and around 4K from AppFuse Light.

Please let me know if you have any feedback about these changes.

Thanks!

Matt


--
David L. Whitehurst
2932 Tram Road, Fuquay Varina NC 27526
<a href="tel:919-605-6529" value="+19196056529" target="_blank">919-605-6529 (mobile)


--
Enviado desde mi <eZapato>

Loading...