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
LeftMenu




JSPWiki v2.2.33

[RSS]


Hide Menu

AppFuse_it


Difference between version 10 and version 4:

At line 23 changed 1 line.
AppFuse è un'applicazione per fare "kickstarting" dello sviluppo di una webapp. [Scarica|https://appfuse.dev.java.net/servlets/ProjectDocumentList], decomprimi ed esegui __ant new__ per essere subito pronto con un'applicazione Tomcat/MySQL. Usa Ant, XDoclet, Spring, Hibernate (o iBATIS), JUnit, StrutsTestCase, WebTest di Canoo, Struts Menu, Display Tag Library, OSCache, JSTL e Struts (o Spring MVC). Il framework Spring ha ampiamente migliorato AppFuse da Febbraio 2004. Viene usato ovunque per il suppporto ad Hibernate/iBATIS, le transazioni dichiarative, il binding delle dipendenze ed il disaccoppiamento dei layer. Questo framework semplice e pulito ha ampiamente ridotto la complessità di AppFuse ed ha anche consentito la rimozione di numerose righe di codice. In breve, per J2EE - è la cosa migliore che sia mai apparsa dai tempi del pane tostato. Per saperne di più su cosa sia AppFuse vedi [questa pagina sul wiki|AppFuseDefinition].
AppFuse è un'applicazione per l'avvio rapido dello sviluppo di una webapp. [Scarica|https://appfuse.dev.java.net/servlets/ProjectDocumentList], decomprimi ed esegui __ant new__ per avere subito pronta un'applicazione Tomcat/MySQL. Usa Ant, XDoclet, Spring, Hibernate (o iBATIS), JUnit, StrutsTestCase, WebTest di Canoo, Struts Menu, Display Tag Library, OSCache, JSTL e Struts (o Spring MVC). Il framework Spring ha ampiamente migliorato AppFuse da Febbraio 2004. Viene usato ovunque per il suppporto ad Hibernate/iBATIS, le transazioni dichiarative, il binding delle dipendenze ed il disaccoppiamento dei layer. Questo framework semplice e chiaro ha notevolmente ridotto la complessità di AppFuse ed ha anche permesso l'eliminazione di molte righe di codice. In breve, per J2EE - è quanto di meglio si sia visto in giro dai tempi del pane tostato. Per saperne di più su AppFuse vedi [questa pagina sul wiki|AppFuseDefinition].
At line 151 changed 1 line.
This release's main features are swapping out Tiles for SiteMesh and adding WebWork as a web framework option. I also refactored the Struts Action tests to use MockStrutsTestCase and eliminated the need to use Cactus for running web tests. This reduced test execution time by over 50%. The relationship between users and roles was re-worked to take advantage of Hibernate's features as well.
Le feature principali in questo rilascio sono la sostituzione di Tiles con SiteMesh e l'aggiunta di WebWork come opzione fra i web framework. Ho anche applicato un refactoring sui test delle Struts Action in modo da usare MockStrutsTestCase eliminando così la necessità di usare Cactus per eseguire i test lato web. Ciò ha permesso una riduzione nei tempi di esecuzione dei test di oltre il 50%. Inoltre la relazione fra utenti e ruoli è stata rivista in modo da sfruttare le feature di Hibernate.
At line 158 changed 1 line.
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>.
Questo rilascio contiene diverse modifiche che intendevo effettuare da un bel po' di tempo. Nello specifico (1) la rimozione della dipendenza da j2ee.jar e (2) la [rimozione di Struts dal services layer|http://raibledesigns.com/page/rd?anchor=no_more_struts_in_services]. Ho anche migliorato il caricamento dei file di contesto di Spring per cui ora dovrebbe essere possibile <a href="http://raibledesigns.com/page/rd?anchor=mysql_conference_day_1">eseguire gli unit test dal tuo IDE</a>.
At line 161 changed 1 line.
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>
Altre cose da notare sono il supporto i18n completo (con traduzioni in danese, portoghese e cinese), un target setup-tomcat migliorato (ora non c'è più bisogno di alcun JAR aggiuntivo), ed un'opzione per usare il framework MVC di Spring al posto di Struts - ''completo di tutorial!'' Se ti interessa, puoi [leggere altro sul mio passaggio da Struts a Spring|http://jroller.com/page/raible?anchor=migrating_from_struts_to_spring]. <em>Buon divertimento!</em>
At line 171 changed 1 line.
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].
Questa release contiene diverse modifiche: [re-arranging packages/directories|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing], [integrazione con Spring|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring], [refactoring su Remember Me|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iii_remember] ed ho anche [aggiunto iBATIS come opzione per la persistenza|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iv_replacing]. Ho anche speso molto tempo nel ripassare i [tutorial|Articles] per esser sicuro che fossero aggiornati. Uso AppFuse 1.4 da alcune settimane nel mio progetto attuale, ed apprezzo molto il modo in cui [Spring|http://springframework.org] semplifica la configurazione di Hibernate, Transazioni e relazioni Interfaccia-&gt;Implementazione. Se ti interessa aggiornare la tua applicazione AppFuse 1.x in modo da usare Spring, puoi [dare un'occhiata a questo howto|AppFuseSpringUpgrade].
At line 173 changed 1 line.
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.
Ho anche [fatto il passo|http://raibledesigns.com/page/rd?anchor=java_net_vs_sourceforge] e spostato il progetto AppFuse da [SourceForge|http://struts.sf.net] a [java.net|http://appfuse.dev.java.net]. La motivazione è principalmente quella di aver maggior controllo sulle mailing list e sull'aggiunta di altri sviluppatori. Ad oggi i file sul CVS di SourceForge e su quello di Java.net sono gli stessi - ma d'ora in pio aggiornerò solo Java.net. Ho anche effettuato il rilascio dei file su entrambi i progetti, ma in futuro userò solo java.net.
At line 175 changed 1 line.
Here's a specific rundown of all the changes from the changelog.
Qui una sequenza dettagliata di tutte le modifiche come da changelog.
At line 177 changed 19 lines.
* 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
* Aggiunto il task "cactus" per eseguire i test di Cactus su Tomcat 4.x e Resin 3.0.5.
* Aggiunti i task Ant di Tomcat per gestire tomcat via la webapp Manager ed Ant.
** Attualmente supporta: install, remove, start, stop, reload e list.
** Consiglio di usare "ant setup-tomcat deploy", poi "ant reload" dopo aver eseguito "ant deploy" quando modifichi i .java o i file di configurazione.
* Eliminato il modulo "upload" e il file-upload integrato nella parte core. Eliminate le scriplet inutili da uploadForm.jsp.
* Miglioramenti nella UI:
** Modificato il CSS per i messaggi di errore in modo da avere un bordo rosso intorno - in modo da rendere più facile la distinzione fra messaggi di errore ed informativi.
** Aggiunti i gestori degli eventi onclick ed onfocus ai form di input per selezionare il testo quando viene fatto clic o spostato il focus su di un input type="text".
* Modificata la struttura delle directory da common/ejb/web a dao/service/web. [Leggi ancora...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing]
* Aggiunto Spring per configurare Hibernate, i DAO ed i Manager. Configurate le transazioni dichiarative sui layer service e dao. Configurato OpenSessionInViewFilter in modo da garantire una transazione per richiesta. [Leggi ancora...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring]
* Modificato UserCounterListener in modo da registrare solo gli utenti che hanno effettuato con successo il login. Aggiunta anche una schermata per mostrare gli utenti attualmente loggati.
* Modificato il session timeout di default a 10 minuti invece di 60.
* Implementata una strategia di cookie persistente di login (per il Remember Me) come [consigliato da Charles|http://tinyurl.com/2wyqr]. [Leggi ancora...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iii_remember]
* Aggiunta iBATIS come opzione per la scelta del framework di persistenza. [Leggi ancora...|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iv_replacing]
* Aggiunto un template XDoclet custom per web.xml in modo da ordinare filter e listener.
* Aggiunto il supporto per la generazione di indexed property setter negli ActionForms quando genero i Form con XDoclet. Questo supporto richiede l'aggiunta dei JAR di Velocity all'elenco JAR 3rd party. Attualmente Velocity è usato solo da XDoclet.
* Aggiunta l'e-mail di "Informazioni Account" come parte del processo di registrazione. A questa e-mail viene inviato l'indirizzo e-mail inserito dall'utente alla registrazione.
* Dipendenze aggiornate:
** Cactus 1.6 Nightly (20030119) in modo da supportare il task "cactus" task con Resin 3.0.5
At line 197 changed 1 line.
** Patched Canoo's WebTest to work with Ant 1.6
** Applicata patch su WebTest di Canoo per farlo funzionare con Ant 1.6
At line 210 changed 1 line.
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:
Questa release corregge alcuni problemi di incompatibilità con Resin ed altri database - nello specifico PostgreSQL e DB2. La principale nuova funzionalità major in questa release è la __Possibilità di Cambiare Facilmente Database__. In pratica, puoi passare molto facilmente dall'usare MySQL a PostgreSQL modificando solo alcune proprietà nel tuo build.properties. L'ho implementato nel mio attuale progetto settimana scorsa in quanto svolgo la maggior parte della mia attività di sviluppo (presso cliente) su di un PowerBook. Il cliente vuole il deploy sul database DB2 - e non c'è un'installazione di DB2 install per il Mac. Poiché [Hibernate|http://hibernate.org] permette di passare da un database all'altro facilmente, ho capito che potevo sviluppare usando MySQL sul Mac, ma avere il default (la versione in CVS) che usa DB2. Una delle cose che non volevo fare era avere un a build.properties.sample, perché preferisco i progetti che "funzionano e basta" quando digiti "ant". Pertanto ho modificato il processo di build in modo che il file database.properties sia generato dalle impostazione di default (MySQL) o quelle in build.properties (se specificate). Come parte del processo di build, Ant cerca nei seguenti file build.properties:
At line 216 changed 1 line.
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.
Ciò ti permette di prendere le tue impostazioni database personalizzate e metterle in ~/.build.properties e queste saranno applicate a qualsiasi progetto derivato da AppFuse. Ciò rende semplice mantenere la versione in CVS del tuo progetto legata ad un database e la versione locale dello sviluppatore ad un database diverso.
At line 218 changed 1 line.
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.
Per quanto sia vero che molto probabilmente parlerau con un solo database per la durata del tuo progetto, questo esercizio dimostra quanto sia semplice migrare da MySQL ad un altro database. Prova anche quanto AppFuse possa integrarsi facilmente con altri database (almeno da questa release). Roba notevole IMO. Ecco una carrellata dettagliata di tutte le modifiche nel changelog.
At line 220 changed 3 lines.
* 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.
* Diverse modifiche alle impostazioni di accesso al database in modo che il file database.properties venga generato a run-time dalle proprietà in build.properties (default su MySQL). Ciò rende semplice per gli utenti usare un database MySQL per lo sviluppo ed un database DB2 database (o qualsiasi altro) in produzione. Basta che personalizzi le tue impostazioni database e le metti in ~/.build.properties o ~/.appname- build.properties e tali impostazioni verranno usate al posto di quelle di default.
** All'interno di questo processo, ho effettuato test su AppFuse con DB2 8.1 (si Windows) e PostgreSQL 7.4 (su OS X).
** Effettuare test su altri server mi ha obbligato a modificare generator-class="native" a generator-class="increment" - che funziona ancora bene su MySQL.
At line 224 changed 11 lines.
** 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:
** Ho anche modificato il tomcat-context.xml in modo da sostituire dinamicamente le proprietà relative al database e defaultAutoCommit vale ora "true" per default.
* Aggiunte pagine di errore per i codici 404 (pagina non trovata) e 403 (accesso negato), entrambe con delle belle immagini. ;0) Protetto /editUser.do solo per il ruolo admin.
* Spostati i filter-mapping dai JavaDoc (XDoclet) del Filter a metadata/web/filter-mappings.xml in modo da controllarne l'ordine di esecuzione.
* Resa configurabile la funzionalità del RememberMe tramite una proprietà "rememberMe.enabled" in app-settings.xml. ''Questa non viene letta su Resin finché il filtro non viene invocato almeno una volta. Tomcat inizializza i filter all'avvio.''
* Aggiornata oscache.jar in Hibernate 2.1.1 as OSCache 2.0.1 e configurata OSCache in modo da fare il caching delle modifiche alle JSP. Modificato anche il oscache-2.0.1.jar in modo da avere una URI per la tag library. Disattivato il caching delle pagine JSP - per attivarlo, scommenta filter-mapping in metadata/web/filter-mappings.xml.
* Effettuate modifiche per essere Resin 3.0.4 friendly. [Leggi Ancora...|AppFuseOnResin]
* Effettuato il refactoring di BaseDaoHibernate in modo da consolidare i metodi retrieveObject e removeObject. Modificato anche saveObject in modo da effettuare il ses.saveOrUpdate ed eliminato il metodo storeObject.
* Sostituito CompressionFilter con [GZipFilter che funziona su Resin|http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html].
* Aggiunto il supporto per lo stylesheet per la stampa. ''Grazie a Bear Giles per il suggerimento.''
* Aggiunto [Clickstream|http://www.opensymphony.com/clickstream] e i menu/JSP per vedere i percorsi dell'utente.
* Aggiornamento Dipendenze:
At line 236 changed 1 line.
** Cactus 1.6 Nightly (20030116) to support "cactus" task for supporting a "contextxml" attribute for testing in Tomcat.
** Cactus 1.6 Nightly (20030116) per avere il task "cactus" con supporto per l'attributo "contextxml" per il test su Tomcat.
At line 244 changed 1 line.
''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.''
''BTW, ho nascosto tutte le release precedenti di AppFuse in modo da evitare confusioni nel download - se hai bisogno di scaricare una versione precedente, prego fammelo sapere.''
At line 248 changed 1 line.
Upgrading from ant 1.5.4 to 1.6.0 necessitates the following change in build.xml (just FYI):
L'aggiornamento da ant 1.5.4 alla 1.6.0 richiede le seguenti modifiche al build.xml (solo FYI):
At line 260 changed 1 line.
otherwise ant complains about {{file:properties.xml could not be found}}.
altrimenti ant si lamenta con un {{file:properties.xml could not be found}}.
At line 262 changed 1 line.
;:''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]''
;:''Venerdì 10 gennaio: Corretto in CVS. Ci sono però ancora [problemi nell'esecuzione di WebTest Canoo con la 1.6.0|http://lists.canoo.com/pipermail/webtest/2004q1/001350.html]''
At line 267 changed 1 line.
This is primarily a bug fix release. Here are the details from the release notes:
Questa è principalmente una release di bugfix. Di seguito i dettagli dalle release notes:
At line 269 changed 6 lines.
* Backed out Http Post for Remember Me. It was not redirecting user to the page they originally requested. Using reponse.sendRedirect does send the user to the proper location. Turned on password encryption (SHA) to protect any passwords that end up in log files. Turned off encryption in Tomcat.
* Changed configuration parameters in servlet context to be in a hashmap.
* Improvements to StrutsGen tool to generate list screen as well and to fill in more missing elements.
* Changed to close Hibernate session when object not found in BaseDaoHibernate.
* Fixed bug in UserAction.save: when creating a new user, role defaults to "tomcat" regardless of what the user chooses.
* Dependent packages upgraded:
* Rimosso l'Http Post per il Remember Me. Non rigirava l'utente sulla pagina richiesta in origine. L'uso di reponse.sendRedirect fa sì che l'utente finisca nel posto giusto. Attivata la codifica della password (SHA) per proteggere eventuali password che finiscano nei file di log. Disattivata la codifica su Tomcat.
* Modificati i parametri di configurazione nel servlet context in modo che siano in una hashmap.
* Miglioramenti nel tool StrutsGen in modo da generare anche la schermata di elenco e riempire altri elementi mancanti.
* Modificata la logica di chiusura della sessione Hibernate quando non viene trovato un oggetto in BaseDaoHibernate.
* Corretto bug in UserAction.save: quando creo un nuovo utente, il ruolo di default è "tomcat" indipendentemente dalla scelta dell'utente.
* Dipendenze aggiornate:
At line 286 changed 1 line.
This biggest feature in this release is __Documentation__. I finally found the time to write up some [Tutorials|Articles] on developing with AppFuse. They're on this wiki and also in the "docs" folder of the binary and source downloads. In writing this documentation, I went through almost all aspects of the code with a fine-tooth comb made sure it's doing what I want it to do.
La feature principale in questa release è la __Documentazione__. Ho finalmente trovato il tempo per scrivere alcuni [Tutorial|Articles] su come sviluppare con AppFuse. Sono su questo wiki ed anche nella cartella "docs" dei download di sorgente e binari. Nello scrivere questa documentazione, ho ripercorso il codice in dettaglio con un pettine fine in modo da essere sicuro che il comportamento fosse quello desiderato.
At line 288 changed 1 line.
I was finally able to get things working with J2EE 1.4, which basically involved removing j2ee.jar from my MailUtil's classpath and just including activation.jar and mail.jar. If you're not there yet, simply change the paths for activation.jar and mail.jar in properties.xml (look for common.compile.classpath). You can use j2ee.jar instead of mail.jar and activation.jar with J2EE 1.3 and 1.4 B2.
Sono finalmente riuscito a far funzionare il tutto con J2EE 1.4, il che di base significava rimuovere il j2ee.jar dal classpath della mia MailUtil ed includere semplicemente activation.jar e mail.jar. Se non ti è ancora chiaro, basta che modifichi i path di activation.jar e mail.jar in properties.xml (cerca common.compile.classpath). Puoi usare j2ee.jar invece di mail.jar e activation.jar con J2EE 1.3 e 1.4 B2.
At line 290 changed 1 line.
I was also able to get all unit tests to pass on Tomcat 5, and the "setup-tomcat" target now supports Tomcat 5. I wasn't able to get "Remember Me" to work - see [the tomcat-user mailing list|http://tinyurl.com/ywv4] for more details.
Sono anche riuscito a far andare tutti gli unit test su Tomcat 5, ed il target "setup-tomcat" ora lo supporta correttamente. Non sono invece riuscito a far funzionare il "Remember Me" - vedi [la mailing list tomcat-user|http://tinyurl.com/ywv4] per ulteriori dettagli.
At line 292 changed 1 line.
Included in this release are upgrades to [Hibernate|http://hibernate.org] 2.1 Final and [Display Tag|http://displaytag.sf.net] 1.0 B2. For a complete changelog, [view the README.txt in CVS|http://tinyurl.com/yzx6].
Sono inclusi in questo rilascio gli aggiornamenti ad [Hibernate|http://hibernate.org] 2.1 Final e [Display Tag|http://displaytag.sf.net] 1.0 B2. Per un changelog completo, [vedi il README.txt in CVS|http://tinyurl.com/yzx6].
At line 301 changed 2 lines.
I feel this release deserves the big __1.0__ designation because it is an up-to-date representation of my learnings and my perceived
best practices in building web applications. Of course, as I learn more, I will continue to push out new releases.
Credo che questa release si meriti un bel titolo da __1.0__ in quanto si tratta di una rappresentazione aggiornate di quanto ho imparato e percepito come best practice nella realizzazione di applicazioni web. Naturalmente, come imparo altro, continuerò a tirar fuori nuove release.
At line 304 changed 5 lines.
In this release, I did a lot of refactoring and enhancements to existing features. The DAO and Manager interfaces are no longer tied
to Struts or Hibernate. Hibernate's Session object is now passed as an argument into Manager and DAO constructors, rather than
method signatures. The DAOFactory was refactored by <a href="http://www.coyotesong.com/">Bear Giles</a> to use reflection to
instantiate Hibernate DAO's. Now, if you add a new DAO, you don't have to edit DAOFactory and DAOFactoryHibernate. To insantiate a
new DAO, the code is now:
In questa release, ho applicato numerosi refactoring e migliorato le feature esistenti. Le interfacce DAO e Manager non sono più legate a Struts o Hibernate. L'oggetto Session di Hibernate ora viene passato come argomento nei costruttori di Manager e DAO, invece che nelle firme dei metodi. La DAOFactory è stata riscritta da <a href="http://www.coyotesong.com/">Bear Giles</a> in modo da usare la reflection per creare nuove istanze dei DAO di Hibernate. Ora, se aggiungi un nuovo DAO, non devi più modificare DAOFactory e DAOFactoryHibernate. Per creare una nuova istanza di DAO, il codice è il seguente:
At line 313 changed 1 line.
...where __conn__ is a connection object retrieved from ServiceLocator or ActionFilter. When you add new POJOs, you still have to add them to ServiceLocator (for JUnit tests) and hibernate.cfg.xml, which is kindof a pain. I'd like to figure out a way to tell Hibernate to just look in appfuse-ejb.jar.
...dove __conn__ è un oggetto connessione ottenuto da ServiceLocator o ActionFilter. Quando aggiungi nuovi POJO, devi ancora aggiungerli al ServiceLocator (per i test JUnit) e ad hibernate.cfg.xml, il che non è piacevole. Mi piacerebbe trovare un modo per dire ad Hibernate di guardare semplicemente in appfuse-ejb.jar.
At line 315 changed 3 lines.
The Remember Me feature has been refactored so the username and password cookies are only available under
the /appfuse/security url-pattern. I also changed the posting to "j_security_check" in LoginServlet from response.sendRedirect to
an HTTP POST, using Jakarta Common's HttpClient. The reason I have a LoginServlet vs. just using action="j_security_check" in my &lt;form&gt; is to encrypt passwords.
La feature del Remember Me è stata riscritta in modo che i cookie relativi a username e password siano disponibili solo sotto l'url-pattern /appfuse/security. Ho anche modificato l'invio s "j_security_check" nella LoginServlet da response.sendRedirect ad una HTTP POST, usando HttpClient dei Jakarta Commons. La motivazione di avere una LoginServlet al posto di usare semplicemente action="j_security_check" nei miei &lt;form&gt; è nella possibità di avere password codificate.
At line 319 changed 3 lines.
I've developed 3 different applications using AppFuse ([struts-resume|StrutsResume] is one of them), and I have found that it's a pain to
upgrade to new versions of AppFuse. Because of this, I don't recommend upgrading unless you really need to. I will be upgrading
struts-resume to AppFuse 1.0, but I doubt I'll upgrade it to any future AppFuse releases - it's just too much work for not much reward.
Ho sviluppato 3 diverse applicazioni usando AppFuse ([struts-resume|StrutsResume] è una di loro), e mi sono reso conto che è problematico aggiornarle a nuove versioni di AppFuse. Per questo motivo non raccomando di aggiornare, a meno che non ce ne sia davvero il bisogno. Ho intenzione di aggiornare struts-resume ad AppFuse 1.0, ma dubito che lo farò per le prossime release di AppFuse - è che il lavoro è troppo se paragonato alla ricompensa.
At line 328 changed 1 line.
I rilasci precedenti si possono trovare su [http://raibledesigns.com/downloads].
Le release precedenti si possono trovare su [http://raibledesigns.com/downloads].

Back to AppFuse_it, or to the Page History.