Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
AppFuseAntTasks
AppFuseAnthill
AppFuseAuthenticatio...
AppFuseCruiseControl
AppFuseDebug
AppFuseEclipse
AppFuseEclipse_es
AppFuseEclipse_pt
AppFuseOnDB2
AppFuseOnPostgreSQL
...and 56 more




JSPWiki v2.2.33

[RSS]


Hide Menu

AppFuse


Difference between version 99 and version 98:

At line 1 added 16 lines.
<div style="float: right; margin-left: 10px; margin-bottom: 10px">
<script type="text/javascript"><!--
google_ad_client = "pub-7968247362757416";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_color_border = "990000";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_url = "CC0000";
google_color_text = "333333";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
At line 2 changed 1 line.
An application for starting your web applications. Checkout from CVS and execute "ant -Dapp.name=yourApp -Ddb.name=database" to instantly be up and running with a Tomcat/MySQL app. Uses Ant, XDoclet, Hibernate, JUnit, Cactus, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, JSTL and Struts (including Validator and Tiles). Features include CMA, Remember Me, Self Registration, Password Hint. The fuse to start your apps.
An Application for starting your web applications. [Download|https://appfuse.dev.java.net/servlets/ProjectDocumentList], extract and execute __ant new -Dapp.name=yourApp -Ddb.name=database__ to instantly be up and running with a Tomcat/MySQL app. Uses Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, Cactus, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (including Validator and Tiles). Features include Container Managed Authentication (CMA), Remember Me, Self Registration, Password Hint and GZip Compression. The fuse to start your apps.
At line 4 changed 1 line.
%%(color: green)__For common questions and howto's, see the [AppFuse Support|AppFuseSupport] page.__%%
AppFuse's development homepage is on java.net at [http://appfuse.dev.java.net] - please subscribe to the [mailing list|https://appfuse.dev.java.net/servlets/SummarizeList?listName=users] or use the [help forum|https://appfuse.dev.java.net/servlets/ForumMessageList?forumID=566] if you have any questions.
At line 6 changed 1 line.
%%(color: green)__For HowTos when developing with AppFuse, view my [AppFuse Tutorials|Articles].__%%
If you want to get started with AppFuse right away, view the [QuickStart Guide|AppFuseQuickStart]. If you want to learn more about AppFuse's architecture view my ["About AppFuse" PowerPoint|http://static.raibledesigns.com/downloads/appfuse-architecture.ppt] or checkout [a live demo|http://demo.raibledesigns.com/appfuse] (runs the latest stuff from CVS).
At line 8 changed 1 line.
Or, if you'd like to encourage me to improve AppFuse, [you can make a donation|https://www.paypal.com/xclick/business=matt%40raibledesigns.com&item_name=AppFuse+Development&return=http%3A//raibledesigns.com/wiki/Wiki.jsp%3Fpage%3DAppFuse&cancel_return=http%3A//raibledesigns.com/wiki/Wiki.jsp%3Fpage%3DAppFuse&no_note=1&tax=0&currency_code=USD].
%%(background: #ffd; border: 1px solid maroon; padding: 5px; padding-bottom: 0; width: 80%)
For HowTos when developing with AppFuse, view the [AppFuse Tutorials|Articles].
At line 27 added 109 lines.
For common questions and howto's, view the [FAQ|AppFuseSupport], the [help forum|https://appfuse.dev.java.net/servlets/ForumMessageList?forumID=566] or the [mailing list archive|https://appfuse.dev.java.net/servlets/SummarizeList?listName=users].%%
''To see what's next for AppFuse, see the [Roadmap|AppFuseRoadmap].''
!!__May 27, 2004__ - AppFuse 1.5 Released
This release has lots of modifications that I've been meaning to make for quite some time. Specifically (1) removing the dependency on j2ee.jar and (2) [removing Struts from the services layer|http://raibledesigns.com/page/rd?anchor=no_more_struts_in_services]. I also made improvements to Spring and its context file loading so you should be able to <a href="http://raibledesigns.com/page/rd?anchor=mysql_conference_day_1">run unit tests from your IDE</a>.
Other notables include full i18n support (with translations in Dutch, Portuguese and Chinese), improved setup-tomcat target (no additional JARs needed now), and an option to use Spring's MVC framework instead of Struts - ''with full tutorials!'' If you'd like, you can [read more about my conversion from Struts to Spring|http://jroller.com/page/raible?anchor=migrating_from_struts_to_spring]. <em>Enjoy!</em>
----
* [Download|https://appfuse.dev.java.net/servlets/ProjectDocumentList?folderID=1328&amp;expandFolder=1328&amp;folderID=1328] (~12.2 MB for src, ~5.6 MB for bin)
* [Release Notes|https://appfuse.dev.java.net/servlets/ProjectDocumentView?documentID=4697&amp;noNav=true]
* [Mailing Lists|https://appfuse.dev.java.net/servlets/ProjectMailingListList]
!!__2004.03.01__ - AppFuse 1.4 Released
This release involves many changes: [re-arranging packages/directories|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing], [Spring integration|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring], [Remember Me refactorings|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iii_remember] and I also [added iBATIS as a persistence option|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iv_replacing]. I also spent a lot of time going through the [tutorials|Articles] to make sure they are up to date. I've been using AppFuse 1.4 for a few weeks on my current project, and I really do like the way [Spring|http://springframework.org] makes it easy to configure Hibernate, Transactions and Interface-&gt;Implementation relationships. If you're interested in upgrading your AppFuse 1.x app to use Spring, you can [checkout this howto|AppFuseSpringUpgrade].
I also [made the leap|http://raibledesigns.com/page/rd?anchor=java_net_vs_sourceforge] and moved the AppFuse project from [SourceForge|http://struts.sf.net] to [java.net|http://appfuse.dev.java.net]. This is mainly so I have more control over mailing lists and adding other developers. As of today, CVS files in SourceForge and Java.net are the same - but I'll only be updating Java.net from here on out. I also have released files in both projects, but will only use java.net in the future.
Here's a specific rundown of all the changes from the changelog.
* Added "cactus" task for running Cactus tests in Tomcat 4.x and Resin 3.0.5.
* Added Tomcat Ant tasks for managing tomcat with the Manager app and Ant.
** Currently supports: install, remove, start, stop, reload and list.
** I recommend using "ant setup-tomcat deploy" and then using "ant reload" after running "ant deploy" when you change .java or config files.
* Removed "upload" module and integrated file-upload into the core. Removed unnecessary scriplets from uploadForm.jsp.
* UI Enhancements:
** Changed CSS for error messages to have a red border around them - making it easier to distinguish errors from messages.
** Added onclick and onfocus event handler to form inputs to select the text when an input type="text" is clicked or focuses on.
* Changed directory structure from common/ejb/web to dao/service/web. [Read more...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing]
* Added Spring to configure Hibernate, DAOs and Managers. Configured declarative transactions at the service and dao layers. Configured OpenSessionInViewFilter for guaranteeing one transaction per request. [Read more...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring]
* Changed UserCounterListener to only record users that have logged in successfully. Also added a screen to show currently logged in users.
* Changed default session timeout to 10 minutes instead of 60.
* Implemented persistent login cookie strategy (for Remember Me) as [recommended by Charles|http://tinyurl.com/2wyqr]. [Read more...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iii_remember]
* Added iBATIS as a persistence framework option. [Read more...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iv_replacing]
* Added custom web.xml XDoclet template for ordering filters and listeners.
* Added support for generating indexed property setters in ActionForms when generating Forms with XDoclet. This support includes adding Velocity JARs to the the list of 3rd party JARs. Currently, Velocity is only used by XDoclet.
* Added "Account Information" e-mail as part of registration process. This e-mail gets sent the e-mail address the user entered on signup.
* Dependent packages upgraded:
** Cactus 1.6 Nightly (20030119) to support the "cactus" task and Resin 3.0.5
** JSTL 1.0.5
** Patched Canoo's WebTest to work with Ant 1.6
** Hibernate 2.1.2
** MySQL JDBC Driver 3.0.11
----
* [Download|https://appfuse.dev.java.net/servlets/ProjectDocumentList?folderID=770] (~11.5 MB for src, ~5.1 MB for bin)
* [Release Notes|https://appfuse.dev.java.net/servlets/ProjectDocumentView?documentID=3182&noNav=true]
* [API Documentation and Source|http://raibledesigns.com/downloads/appfuse/api/]
* [Mailing Lists|https://appfuse.dev.java.net/servlets/ProjectMailingListList]
!!__2004.01.16__ - AppFuse 1.3 Released
This release fixes a few compatibility issues with Resin and other databases - specifically PostgreSQL and DB2. The major new functionality in this release is __Easy Database Switching__. Basically, you can very easily switch from using MySQL to PostgreSQL by only changing a few properties in your build.properties. I implemented this on my current project last week because I do most of my development (at the client) on a PowerBook. The client wants to deploy onto a DB2 database - and there is not DB2 install for the Mac. Since [Hibernate|http://hibernate.org] allows you to easily switch between databases, I figured I could develop using MySQL on the Mac, but have the default (CVS version) use DB2. One of the things I didn't want to do was to have a build.properties.sample, because I love projects that "just work" when you type "ant". So I changed the the build process so that database.properties is generated from default settings (MySQL) or the settings in build.properties (if specified). As part of the build process, Ant looks for the following build.properties files:
* ${user.home}/.${ant.project.name}-build.properties
* ${user.home}/.build.properties
* build.properties
What this allows you to do is to take your customized database settings and put them in ~/.build.properties and they'll be applied to any AppFuse-derived project. This makes it easy to keep the CVS version of your project tied to one database and a developer's local version tied to a different database.
While it's true that you'll most likely only talk to one database during the duration of your project, this exercise proves that it's easy to migrate from MySQL to another database. It also proves that AppFuse can easily integrate with other database (at least as of this release). Slick stuff IMO. Here's a specific rundown of all the changes from the changelog.
* Many changes to database settings so that database.properties is generated at run-time from properties in build.properties (defaults to MySQL). This makes it easy for users to run a MySQL database in development and have a DB2 database (or any other) in production. Just customize your database settings and put them in ~/.build.properties or ~/.appname- build.properties and these settings will be used instead of the default.
** As part of this process, I tested AppFuse on DB2 8.1 (on Windows) and PostgreSQL 7.4 (on OS X).
** Testing on other servers caused me to change from generator-class="native" to generator-class="increment" - which still works fine on MySQL.
** I also changed tomcat-context.xml to dynamically substitute database properties and defaultAutoCommit is now "true" by default.
* Added error pages for 404 (page not found) and 403 (access denied), both with pretty pictures. ;0) Protected /editUser.do for admin role only.
* Moved filter-mappings from Filter's JavaDocs (XDoclet) to metadata/web/filter-mappings.xml in order to control the order of execution.
* Made RememberMe feature configurable via a "rememberMe.enabled" property in app-settings.xml. ''This won't kick on Resin until the filter is invoked at least once. Tomcat initializes filters on startup.''
* Upgraded oscache.jar in Hibernate 2.1.1 to OSCache 2.0.1 and configured OSCache to cache JSP changes. Also modified the oscache-2.0.1.jar to have a URI for the tag library. Turned off caching of JSP pages - to enable, uncomment filter-mapping in metadata/web/filter-mappings.xml.
* Made changes to be Resin 3.0.4 friendly. [Read More...|AppFuseOnResin]
* Refactored BaseDaoHibernate to consolidate retrieveObject and removeObject methods. Also changed saveObject to do ses.saveOrUpdate and removed storeObject method.
* Replaced CompressionFilter with [GZipFilter that works on Resin|http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html].
* Added print stylesheet support. ''Thanks to Bear Giles for the suggestion.''
* Added [Clickstream|http://www.opensymphony.com/clickstream] and menu/JSPs to view user paths.
* Dependent packages upgraded:
** XDoclet 1.2.0
** Cactus 1.6 Nightly (20030116) to support "cactus" task for supporting a "contextxml" attribute for testing in Tomcat.
----
* [Download|http://sourceforge.net/project/showfiles.php?group_id=49385&amp;package_id=78758&amp;release_id=210456] (~12.1 MB for src, ~4.3 MB for bin)
* [Release Notes|http://sourceforge.net/project/shownotes.php?release_id=210456v]
* [API Documentation and Source|http://raibledesigns.com/downloads/appfuse/api/]
* [Mailing List|http://sourceforge.net/mailarchive/forum.php?forum_id=18761]
''BTW, I hid all the older releases of AppFuse to avoid download confusion - if you need to download an older version, please let me know.''
!!__2004.01.08__ - AppFuse and ant 1.6.0
Upgrading from ant 1.5.4 to 1.6.0 necessitates the following change in build.xml (just FYI):
{{{===================================================================
RCS file: /cvsroot/struts/appfuse/build.xml,v
retrieving revision 1.37
diff -r1.37 build.xml
5,6c5,6
< <!ENTITY properties SYSTEM "file:properties.xml">
< <!ENTITY app-settings SYSTEM "file:app-settings.xml">
---
> <!ENTITY properties SYSTEM "file:./properties.xml">
> <!ENTITY app-settings SYSTEM "file:./app-settings.xml">}}}
otherwise ant complains about {{file:properties.xml could not be found}}.
;:''Friday, January 10th: Fixed in CVS. However, there's still [issues with running Canoo's WebTest with 1.6.0|http://lists.canoo.com/pipermail/webtest/2004q1/001350.html]''
At line 73 removed 33 lines.
!!__2003.09.15__ - AppFuse Presentation
[I|MattRaible] created a [PowerPoint Presentation|http://static.raibledesigns.com/downloads/appfuse-architecture.ppt] about AppFuse and its directory Structure, and build/test/deploy processes.
!!__2003.08.14__ - AppFuse 0.9.1 Released
Fixed bugs in uploadForm.jsp - related to using &lt;fmt:message&gt; in a sub-module. Changed baseLayout.jsp to use &lt;bean:message name="" /&gt; for title and heading, rather than &lt;fmt:message key="" /&gt;.
* [Download|http://tinyurl.com/k1r6]
* See links below for AppFuse 0.9 Release Notes.
!!__2003.08.10__ - AppFuse 0.9 Released!
This release contains all kinds of goodies - including a new password hint feature, a compression filter, and a JSP 2.0-syntax option (when deploying). It also fixes a bug in persisting roles and includes many upgrades of dependent packages (Hibernate, PMD, Checkstyle, DBUnit and WebTest).
* [Download|http://tinyurl.com/jm9a] (~10.7 MB for src, ~3.4 MB for bin)
* [Release Notes|http://tinyurl.com/jm9d]
* [API Documentation and Source|http://raibledesigns.com/downloads/appfuse/api/]
* [Mailing List|http://sourceforge.net/mailarchive/forum.php?forum_id=18761]
!!__2003.06.12__ - AppFuse 0.8 Released!
The main reason for this release is to demonstrate self-registration (and auto-login) in a
CMA (Container Managed Authentication) environment. I also upgraded most of the dependent
packages (i.e. [Struts], [Hibernate]) to their latest releases, and added a binary release as
an optional download.
* [Download|http://tinyurl.com/e5tg] (~9.5 MB for src, ~4.2 MB for bin)
* [Release Notes|http://tinyurl.com/e5td]
* [Mailing List|http://sourceforge.net/mailarchive/forum.php?forum_id=18761]
''You can [browse the API Documentation|http://raibledesigns.com/downloads/appfuse/api/]. You should be able to view Source Code here too! If there's not a "View Source" link on a class's javadoc page, you can get to it by using Classname.java.html syntax in your browser's address box.''
At line 200 added 2 lines.
If you'd like to encourage me to improve AppFuse, [you can make a donation|https://www.paypal.com/xclick/business=matt%40raibledesigns.com&item_name=AppFuse+Development&return=http%3A//raibledesigns.com/wiki/Wiki.jsp%3Fpage%3DAppFuse&cancel_return=http%3A//raibledesigns.com/wiki/Wiki.jsp%3Fpage%3DAppFuse&no_note=1&tax=0&currency_code=USD].

Back to AppFuse, or to the Page History.