You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(55) |
Mar
(100) |
Apr
(203) |
May
(330) |
Jun
(190) |
Jul
(302) |
Aug
(323) |
Sep
(197) |
Oct
(245) |
Nov
(490) |
Dec
(330) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(194) |
Feb
(400) |
Mar
(416) |
Apr
(415) |
May
(359) |
Jun
(381) |
Jul
(491) |
Aug
(311) |
Sep
(291) |
Oct
(273) |
Nov
(355) |
Dec
(266) |
| 2005 |
Jan
(306) |
Feb
(303) |
Mar
(520) |
Apr
(346) |
May
(255) |
Jun
(221) |
Jul
(171) |
Aug
(247) |
Sep
(147) |
Oct
(125) |
Nov
(165) |
Dec
(65) |
| 2006 |
Jan
(90) |
Feb
(53) |
Mar
(121) |
Apr
(103) |
May
(113) |
Jun
(103) |
Jul
(104) |
Aug
(67) |
Sep
(78) |
Oct
(82) |
Nov
(78) |
Dec
(70) |
| 2007 |
Jan
(77) |
Feb
(76) |
Mar
(63) |
Apr
(30) |
May
(47) |
Jun
(41) |
Jul
(44) |
Aug
(44) |
Sep
(49) |
Oct
(33) |
Nov
(25) |
Dec
(21) |
| 2008 |
Jan
(45) |
Feb
(13) |
Mar
(15) |
Apr
(12) |
May
(9) |
Jun
(33) |
Jul
(30) |
Aug
(7) |
Sep
(20) |
Oct
(17) |
Nov
(20) |
Dec
(10) |
| 2009 |
Jan
(8) |
Feb
(5) |
Mar
(12) |
Apr
(17) |
May
(19) |
Jun
(97) |
Jul
(77) |
Aug
(33) |
Sep
(24) |
Oct
(41) |
Nov
(16) |
Dec
(32) |
| 2010 |
Jan
(24) |
Feb
(14) |
Mar
(50) |
Apr
(71) |
May
(70) |
Jun
(64) |
Jul
(45) |
Aug
(62) |
Sep
(32) |
Oct
(4) |
Nov
(12) |
Dec
(2) |
| 2011 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(1) |
Jul
(4) |
Aug
(3) |
Sep
(4) |
Oct
(6) |
Nov
(3) |
Dec
(3) |
| 2012 |
Jan
(4) |
Feb
(8) |
Mar
(6) |
Apr
(10) |
May
(2) |
Jun
(3) |
Jul
(11) |
Aug
(10) |
Sep
(4) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
(9) |
Apr
(1) |
May
(8) |
Jun
(2) |
Jul
(5) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(10) |
Dec
(8) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(12) |
May
(2) |
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(2) |
| 2015 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(9) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(7) |
Oct
(9) |
Nov
(7) |
Dec
(9) |
| 2016 |
Jan
(7) |
Feb
(5) |
Mar
(5) |
Apr
(5) |
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(4) |
Sep
(6) |
Oct
(7) |
Nov
(2) |
Dec
(3) |
| 2017 |
Jan
(7) |
Feb
(8) |
Mar
(7) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(5) |
Aug
(8) |
Sep
(4) |
Oct
(2) |
Nov
(3) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(5) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Keith D. <ke...@in...> - 2006-03-29 13:16:22
|
Serge,
The first issue (array request params) has been fixed for 1.0 RC1 nightly.
The second issue (samples) is still outstanding. Can you create a JIRA?
Thanks,
Keith
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Serge Bogatyrjov
Sent: Wednesday, March 29, 2006 7:17 AM
To: spr...@li...
Subject: [Springframework-developer] webflow, jetty request parameters
Hi,
I am using jetty6. Jetty particular request parameters processing make it
impossible to use webflow with jetty. I do not sure this container to do
things in right way. But I have found we can make the webflow to run with
jetty.
The weak spot in webflow is
'HttpServletRequestParameterMap.getAttribute(String
key)' method. It makes the following call:
request.getParameterValues(key);
Jetty returns String[0] for a unknown parameter. But this case is not
provided.
This is original code:
if (parameters == null) {
return null;
} else if (parameters.length == 1) {
return parameters[0];
} else {
return parameters;
}
Here is my variant:
if (parameters == null) {
return null;
} else if (parameters.length == 0) {
return null;
} else if (parameters.length == 1) {
return parameters[0];
} else {
return parameters;
}
I have found another small problem with webflow samples. All samples
contains invalid value for a 'webAppRootKey' context parameter in web.xml.
For example, in the sample phonebook the parameter value is
"phonebook.root", but the valid value is "swf-phonebook.root", because
assebly artifact is "swf-phonebook.war".
Serge Bogatyrjov.
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Serge B. <ser...@gm...> - 2006-03-29 12:22:37
|
Hi,
I am using jetty6. Jetty particular request parameters processing make it
impossible to use webflow with jetty. I do not sure this container to do things
in right way. But I have found we can make the webflow to run with jetty.
The weak spot in webflow is 'HttpServletRequestParameterMap.getAttribute(String
key)' method. It makes the following call:
request.getParameterValues(key);
Jetty returns String[0] for a unknown parameter. But this case is not provided.
This is original code:
if (parameters == null) {
return null;
} else if (parameters.length == 1) {
return parameters[0];
} else {
return parameters;
}
Here is my variant:
if (parameters == null) {
return null;
} else if (parameters.length == 0) {
return null;
} else if (parameters.length == 1) {
return parameters[0];
} else {
return parameters;
}
I have found another small problem with webflow samples. All samples contains
invalid value for a 'webAppRootKey' context parameter in web.xml. For example,
in the sample phonebook the parameter value is "phonebook.root", but the valid
value is "swf-phonebook.root", because assebly artifact is "swf-phonebook.war".
Serge Bogatyrjov.
|
|
From: Yujin K. <net...@gm...> - 2006-03-28 23:26:48
|
Hi We noticed some inconsistent behavior between Spring's LSFB and Hibernate's hbm2ddl SchemaUpdate tool. http://anonhibernate.labs.jboss.com/trunk/Hibernate3/src/org/ hibernate/tool/hbm2ddl/SchemaUpdate.java http://cvs.sourceforge.net/viewcvs.py/springframework/spring/src/org/ springframework/orm/hibernate3/LocalSessionFactoryBean.java? rev=1.29&view=auto It appears LSFB is utilizing db dialect but not the (Hibernate's) DatabaseMetadata which causes the generate script to contain incompatible datatypes. We are doing schema create/drop/update as a part of integration build, and when using hbm2ddl tool, it works fine on mysql/hsql/oracle/ms- sql/psql but if we use LSFB to do the same, it fails on some of the older databases. It appears the DDL script generated by LSFB produces the script that is compatible only with the most updated version of the database, so for example oracle 9i, it generated type "bit" which didn't work on the version of oracle we are running here. Similarly to mysql 4.1, it was trying to look up the database metadata from "information_schema" which appears to be a mysql 5.x thing. While I am not 100% sure whether it was due to the fact LSFB is not passing DatabaseMetadata for script generation, it looks like a good candidate. I think it's pretty clear how LSFB is processing it is slightly different from hbm2ddl tool. While at it, I personally think it will also be useful if LSFB has an option to generate the DDL script to the specific (or default) location to allow more advanced tweaking etc by the dbas later on. I would like to go back to use LSFB to handle the schema generation and hence would provide any support on this issue anyway I can. Thanks Yujin Kim Vivakos, Inc |
|
From: Juergen H. <ju...@in...> - 2006-03-28 20:06:30
|
Why couldn't you use HibernateTransactionManager in combination with = such data access code based on HibernateTemplate? HibernateTransactionManager doesn't do much more than open a Session, = start a transaction - and eventually commit the transaction and close the = Session. You can do any number of flush or clear calls inbetween... Of course, if there's anything specific we can offer in HibernateTransactionManager to better support such batch-style data = access, we are certainly open to it. Juergen =20 -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf = Of Meyer, Stefan Sent: Tuesday, March 28, 2006 12:57 PM To: spr...@li... Subject: [Springframework-developer] Batch processing with hibernate Hi, We need batch processing support for hibernate. The processing should = take place in one transaction and the list of processed entities must be = selected with "select ... For update". HibernateTransactionManager does not = support this. The reason is presumably that the first-level cache does not = support rollbacks. I think that it is possible nevertheless if you follow the following rules: 1. flush before setting a savepoint 2. clear the session before rolling back to a savepoint The consequences of the second point are usually not a problem in batch processing. Consider the recommended approach: -------------- hibernate.org Session session =3D sessionFactory.openSession(); Transaction tx =3D session.beginTransaction(); =20 ScrollableResults customers =3D session.getNamedQuery("GetCustomers") .setCacheMode(CacheMode.IGNORE) .scroll(ScrollMode.FORWARD_ONLY); int count=3D0; while ( customers.next() ) { Customer customer =3D (Customer) customers.get(0); customer.updateStuff(...); if ( ++count % 20 =3D=3D 0 ) { //flush a batch of updates and release memory: session.flush(); session.clear(); } } =20 tx.commit(); session.close(); ------------- Clearing the session after or before processing an entity returned from = the cursor will only result in slower performance when loading certain entities. We have implemented this kind of batch processing but support by hibernateTransactionManager would make our life a lot easier. -- Stefan Meyer Entwicklung s....@s2... T: +49.40.80 81 69-347 SinnerSchrader Neue Informatik >> Software. Design. Interfaces. http://www.s2neueinformatik.de/ =20 ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting = language that extends applications into web and mobile media. Attend the live = webcast and join the prime developer group breaking into this new coding = territory! http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Enrique M. <e.m...@gm...> - 2006-03-28 11:08:56
|
SGF2ZSB5b3UgYWxzbyB0cmllZD8KClN0YXRlbGVzc1Nlc3Npb24gc2Vzc2lvbiA9IHNlc3Npb25G YWN0b3J5Lm9wZW5TdGF0ZWxlc3NTZXNzaW9uKCk7ClRyYW5zYWN0aW9uIHR4ID0gc2Vzc2lvbi5i ZWdpblRyYW5zYWN0aW9uKCk7CgpTY3JvbGxhYmxlUmVzdWx0cyBjdXN0b21lcnMgPSBzZXNzaW9u LmdldE5hbWVkUXVlcnkoIkdldEN1c3RvbWVycyIpCiAgICAuc2Nyb2xsKFNjcm9sbE1vZGUuRk9S V0FSRF9PTkxZKTsKd2hpbGUgKCBjdXN0b21lcnMubmV4dCgpICkgewogICAgQ3VzdG9tZXIgY3Vz dG9tZXIgPSAoQ3VzdG9tZXIpIGN1c3RvbWVycy5nZXQoMCk7CiAgICBjdXN0b21lci51cGRhdGVT dHVmZiguLi4pOwogICAgc2Vzc2lvbi51cGRhdGUoY3VzdG9tZXIpOwp9Cgp0eC5jb21taXQoKTsK c2Vzc2lvbi5jbG9zZSgpOwoKTW9yZSBzdHJhaWdodC1mb3J3YXJkIHRvIEJEIDstKQoKT24gMy8y OC8wNiwgTWV5ZXIsIFN0ZWZhbiA8Uy5NZXllckBzMm5ldWVpbmZvcm1hdGlrLmRlPiB3cm90ZToK Pgo+IEhpLAo+Cj4gV2UgbmVlZCBiYXRjaCBwcm9jZXNzaW5nIHN1cHBvcnQgZm9yIGhpYmVybmF0 ZS4gVGhlIHByb2Nlc3Npbmcgc2hvdWxkCj4gdGFrZSBwbGFjZSBpbiBvbmUgdHJhbnNhY3Rpb24g YW5kIHRoZSBsaXN0IG9mIHByb2Nlc3NlZCBlbnRpdGllcyBtdXN0IGJlCj4gc2VsZWN0ZWQgd2l0 aCAic2VsZWN0IC4uLiBGb3IgdXBkYXRlIi4gSGliZXJuYXRlVHJhbnNhY3Rpb25NYW5hZ2VyIGRv ZXMKPiBub3Qgc3VwcG9ydCB0aGlzLiBUaGUgcmVhc29uIGlzIHByZXN1bWFibHkgdGhhdCB0aGUg Zmlyc3QtbGV2ZWwgY2FjaGUKPiBkb2VzIG5vdCBzdXBwb3J0IHJvbGxiYWNrcy4gSSB0aGluayB0 aGF0IGl0IGlzIHBvc3NpYmxlIG5ldmVydGhlbGVzcyBpZgo+IHlvdSBmb2xsb3cgdGhlIGZvbGxv d2luZyBydWxlczoKPgo+IDEuIGZsdXNoIGJlZm9yZSBzZXR0aW5nIGEgc2F2ZXBvaW50Cj4gMi4g Y2xlYXIgdGhlIHNlc3Npb24gYmVmb3JlIHJvbGxpbmcgYmFjayB0byBhIHNhdmVwb2ludAo+Cj4g VGhlIGNvbnNlcXVlbmNlcyBvZiB0aGUgc2Vjb25kIHBvaW50IGFyZSB1c3VhbGx5IG5vdCBhIHBy b2JsZW0gaW4gYmF0Y2gKPiBwcm9jZXNzaW5nLiBDb25zaWRlciB0aGUgcmVjb21tZW5kZWQgYXBw cm9hY2g6Cj4KPiAtLS0tLS0tLS0tLS0tLSAgaGliZXJuYXRlLm9yZwo+Cj4gU2Vzc2lvbiBzZXNz aW9uID0gc2Vzc2lvbkZhY3Rvcnkub3BlblNlc3Npb24oKTsKPiBUcmFuc2FjdGlvbiB0eCA9IHNl c3Npb24uYmVnaW5UcmFuc2FjdGlvbigpOwo+Cj4gU2Nyb2xsYWJsZVJlc3VsdHMgY3VzdG9tZXJz ID0gc2Vzc2lvbi5nZXROYW1lZFF1ZXJ5KCJHZXRDdXN0b21lcnMiKQo+ICAgICAuc2V0Q2FjaGVN b2RlKENhY2hlTW9kZS5JR05PUkUpCj4gICAgIC5zY3JvbGwoU2Nyb2xsTW9kZS5GT1JXQVJEX09O TFkpOwo+IGludCBjb3VudD0wOwo+IHdoaWxlICggY3VzdG9tZXJzLm5leHQoKSApIHsKPiAgICAg Q3VzdG9tZXIgY3VzdG9tZXIgPSAoQ3VzdG9tZXIpIGN1c3RvbWVycy5nZXQoMCk7Cj4gICAgIGN1 c3RvbWVyLnVwZGF0ZVN0dWZmKC4uLik7Cj4gICAgIGlmICggKytjb3VudCAlIDIwID09IDAgKSB7 Cj4gICAgICAgICAvL2ZsdXNoIGEgYmF0Y2ggb2YgdXBkYXRlcyBhbmQgcmVsZWFzZSBtZW1vcnk6 Cj4gICAgICAgICBzZXNzaW9uLmZsdXNoKCk7Cj4gICAgICAgICBzZXNzaW9uLmNsZWFyKCk7Cj4g ICAgIH0KPiB9Cj4KPiB0eC5jb21taXQoKTsKPiBzZXNzaW9uLmNsb3NlKCk7Cj4KPiAtLS0tLS0t LS0tLS0tCj4KPiBDbGVhcmluZyB0aGUgc2Vzc2lvbiBhZnRlciBvciBiZWZvcmUgcHJvY2Vzc2lu ZyBhbiBlbnRpdHkgcmV0dXJuZWQgZnJvbQo+IHRoZSBjdXJzb3Igd2lsbCBvbmx5IHJlc3VsdCBp biBzbG93ZXIgcGVyZm9ybWFuY2UgIHdoZW4gbG9hZGluZyBjZXJ0YWluCj4gZW50aXRpZXMuCj4K PiBXZSBoYXZlIGltcGxlbWVudGVkIHRoaXMga2luZCBvZiBiYXRjaCBwcm9jZXNzaW5nIGJ1dCBz dXBwb3J0IGJ5Cj4gaGliZXJuYXRlVHJhbnNhY3Rpb25NYW5hZ2VyIHdvdWxkIG1ha2Ugb3VyIGxp ZmUgYSBsb3QgZWFzaWVyLgo+Cj4KPgo+IC0tCj4gU3RlZmFuIE1leWVyCj4gRW50d2lja2x1bmcK Pgo+IHMubWV5ZXJAczJuZXVlaW5mb3JtYXRpay5kZQo+IFQ6ICs0OS40MC44MCA4MSA2OS0zNDcK Pgo+IFNpbm5lclNjaHJhZGVyIE5ldWUgSW5mb3JtYXRpawo+ID4+IFNvZnR3YXJlLiBEZXNpZ24u IEludGVyZmFjZXMuCj4gaHR0cDovL3d3dy5zMm5ldWVpbmZvcm1hdGlrLmRlLwo+Cj4KPgo+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBU aGlzIFNGLk5ldCBlbWFpbCBpcyBzcG9uc29yZWQgYnkgeFBNTCwgYSBncm91bmRicmVha2luZyBz Y3JpcHRpbmcKPiBsYW5ndWFnZQo+IHRoYXQgZXh0ZW5kcyBhcHBsaWNhdGlvbnMgaW50byB3ZWIg YW5kIG1vYmlsZSBtZWRpYS4gQXR0ZW5kIHRoZSBsaXZlCj4gd2ViY2FzdAo+IGFuZCBqb2luIHRo ZSBwcmltZSBkZXZlbG9wZXIgZ3JvdXAgYnJlYWtpbmcgaW50byB0aGlzIG5ldyBjb2RpbmcKPiB0 ZXJyaXRvcnkhCj4gaHR0cDovL3NlbC5hcy11cy5mYWxrYWcubmV0L3NlbD9jbWRsbmsma2lkETA5 NDQmYmlkJDE3MjAmZGF0EjE2NDIKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IFNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXIgbWFpbGluZyBsaXN0Cj4g U3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBodHRwczov L2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zcHJpbmdmcmFtZXdvcmstZGV2 ZWxvcGVyCj4K |
|
From: Meyer, S. <S....@S2...> - 2006-03-28 10:57:42
|
Hi, We need batch processing support for hibernate. The processing should take place in one transaction and the list of processed entities must be selected with "select ... For update". HibernateTransactionManager does not support this. The reason is presumably that the first-level cache does not support rollbacks. I think that it is possible nevertheless if you follow the following rules: 1. flush before setting a savepoint 2. clear the session before rolling back to a savepoint The consequences of the second point are usually not a problem in batch processing. Consider the recommended approach: -------------- hibernate.org Session session =3D sessionFactory.openSession(); Transaction tx =3D session.beginTransaction(); =20 ScrollableResults customers =3D session.getNamedQuery("GetCustomers") .setCacheMode(CacheMode.IGNORE) .scroll(ScrollMode.FORWARD_ONLY); int count=3D0; while ( customers.next() ) { Customer customer =3D (Customer) customers.get(0); customer.updateStuff(...); if ( ++count % 20 =3D=3D 0 ) { //flush a batch of updates and release memory: session.flush(); session.clear(); } } =20 tx.commit(); session.close(); ------------- Clearing the session after or before processing an entity returned from the cursor will only result in slower performance when loading certain entities. We have implemented this kind of batch processing but support by hibernateTransactionManager would make our life a lot easier. -- Stefan Meyer Entwicklung s....@s2... T: +49.40.80 81 69-347 SinnerSchrader Neue Informatik >> Software. Design. Interfaces. http://www.s2neueinformatik.de/ =20 |
|
From: Yujin K. <net...@gm...> - 2006-03-28 00:21:40
|
jetty has a runner you can use. it's not quite stable yet but if you =20= run mvn jetty6:runner or something, it starts up your webapp in jsp/=20 servlet container. it would be nice to have one like that for tomcat though. m2 supports archetype, so you can easily generate a skeleton project. as for controller, model, etc, we need is java line syntax but is a =20 scripting language and allows dynamic casting (sounds awfully like =20 javascript). :-) Yujin On Mar 27, 2006, at 7:08 PM, Seth Ladd wrote: >> I'm going to give it a shot and see what I can do with the M2 script >> support, a basic object mapper and TJWS. > > Don't forget the scripts that: > > - create new project > - start/stop the server > - create new controller, model, etc > - run all tests > > :) > > Seth > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting =20 > language > that extends applications into web and mobile media. Attend the =20 > live webcast > and join the prime developer group breaking into this new coding =20 > territory! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=110944&bid$1720&dat=121642= > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Seth L. <set...@gm...> - 2006-03-28 00:14:29
|
> I'm going to give it a shot and see what I can do with the M2 script > support, a basic object mapper and TJWS. Don't forget the scripts that: - create new project - start/stop the server - create new controller, model, etc - run all tests :) Seth |
|
From: Darren D. <da...@da...> - 2006-03-27 19:38:42
|
On Sun, Mar 26, 2006 at 03:59:21PM -0500, Keith Donald wrote: > What's most constraining about the Servlet API in your opinion? Is it the > API really? Or is something with the implementations of it that concern y= ou? I don't think the API itself is badly designed, or that it makes it difficult to develop against. Nor do I think the well known servlet containers are badly implemented - quite the contrary in many cases. The constraint is *requiring* a servlet container. The general assumption is that to run any Java based web framework, you need Tomcat (or similar) at minimum - a reasonable assumption because it happens to hold true for most frameworks. With the servlet container comes dependencies I might not want, configuration I can't be bothered with, and (re)deployment issues I'd prefer to avoid. I agree with Seth that this is something Java tends to do badly - a necessary evil of the compilation step perhaps, but one that can be avoided. The client I'm working for now has business users that are raising issues over the length of time it takes the development team to implement minor chages to their production web applications. 40 minutes is way too long apparently. > What problems do you believe need a scripting solution in the web-tier? fix re-deployment and permit loose/dynamic typing. > curious--it'd be interesting to consider integration of a scripting > technology into the Web Flow engine, and where they might fit. It's important to ensure that the scripting just works. If there's a need to start configuring beans, XML files or whatever just to be able to start writing code, it's missing half the point. I know Rob's pointed out that the scripting is there now but I haven't had a chance to look at it yet and I don't know what's involved in making it work. Again, I agree with Seth about how easy we have to make it to start coding. Anything less than you get now with the Ruby and Python frameworks is missing the boat. That means not relying on a separate container to deploy into, but providing a minimal one that gets your scripts working instantly (no problem if they want to later deploy to Tomcat or JBoss). It means not expecting the user to choose and configure a templating technology, but providing one pre-configured (fine - they can change it themselves later). It means not asking them to build an admin interface around their model, but providing one that adapts to the model as they build it (ok, let them swap it for a different JMX server later). So, I was going to now come back to the servlet API and say that to ship a compliant container would make it difficult to achieve a fast, light, zero config startup option. Then I came across this <http://tjws.sourceforge.net/> which kind of blew my argument away. (I haven't tried it, but if it works, it could be perfect). I'm going to give it a shot and see what I can do with the M2 script support, a basic object mapper and TJWS. =20 --=20 Darren Davison Public Key: 0xDD356B0D |
|
From: Rob H. <ro...@in...> - 2006-03-27 08:14:32
|
Just to interject here - scripting has been present since M2 with BSH, JRuby and Groovy. Rob On 26 Mar 2006, at 18:36, Darren Davison wrote: > On Sun, Mar 26, 2006 at 06:29:12AM -0500, Keith Donald wrote: >> Hey Darren, >> >> Could you maybe summarize what you see in Django that would be good >> influence for future enhancements to Spring's web stack? Would be >> good to >> consider and discuss those for the 2.x series and beyond... >> >> One of the features I see on a brief glance I think is important >> is the >> ability to design your on URL scheme using URL mapping expressions. > > Hi Keith, > > In my opinion, the biggest barrier to leaner, more dynamic Java web > frameworks is the Servlet API itself. RoR, Django, CherryPy and > others > aren't constrained by it and manage to do pretty well for > themselves. What > does the requirement for an implementation of this API buy for the > large > number of enterprise web apps which are basically CRUD wrappers > around a > database? Many of the existing frameworks in Java land are > starting to look > a bit too heavy for this compared to the ease of setting up in Ruby or > Python. > > The ability to map URL's directly to objects or methods via > something as > simple as regex declarations lowers the barriers to entry greatly > and makes > a simple web layer very quick to knock up. OOWeb for example (a > simple Java > port of CherryPy that a colleague and I wrote last year just to > prove the > point) offers a complete web novice the ability to start generating > dynamic > web content in less than 10 minutes. You get request parameter > binding to > your methods, form handling, security, logging, session replication > and a > simple built-in HTTP server in a jar that's around 60KB in size > with zero > additional dependencies. OK, so it's prototype stuff, but its > purpose was > to show that if you don't constrain yourself to the "standard" way of > thinking (Servlet API), you can do quite a lot of stuff with > greater ease > and speed. OOWeb is in fact being used in a couple of small > production > sites anyway, but if we were to look at it seriously, we'd probably > take the > HTTP engine from Jetty or something and build the object mapper > around that. > > The other aspect is the scriptability of the web tier. I know the > dynamic > stuff around BSF bean definitions hasn't really gone anywhere since > it was > mooted a couple of years ago, but this may be the best way forward > if we > want to hang on to the coat tails of things like Python and Ruby. > Jython > development seems to have stalled, which is a shame, and Groovy > doesn't > really appear to be building on the momentum it looked like having > a while > back either, but perhaps being first class citizens in a major web > framework > would help. > > Consider the Java web application framework "sans Servlet > Container", and > Spring seems to be in a perfect position to exploit an > opportunity. After > all, we already have a fantastic container and all the goodies you > need to > create a full featured service and data tier. If you could throw > up a web > tier around your database in the same sort of time that you can be > productive in Django and RoR (including re-code and re-load > semantics) then > that might be attractive to a lot of people who are currently > flirting with > the more dynamic upstarts. Having the Java bindings available from > web > scripts to the Spring container or other "Enterprise" deployed > components is > the USP that the others don't have. > > "Spring WebScript" - imagine the possibilities :) > > -- > Darren Davison > Public Key: 0xDD356B0D |
|
From: Keith D. <ke...@in...> - 2006-03-26 21:01:12
|
Darren, What's most constraining about the Servlet API in your opinion? Is it the API really? Or is something with the implementations of it that concern you? I whole-heartedly agree the ability to map URLs directly to methods on java.lang.Objects is a important feature--exactly what I saw in Django that I liked. We are doing this now with Spring Web Flow, where you have declarative request path binding as well as request parameter binding. The binding machinery there is fully generic as well, part of spring-projects/spring-binding (a separate library currently driven by Web Flow's needs). I'm not sure how many folks realize this, but Spring Web Flow at its core is a generic controller engine (independent of the Servlet API in fact). The same engine can be used to orchestrate both stateless and stateful flows. The XML configuration format folks identify most with it is targeted at orchestrating multi-step (stateful) navigations, because that's been the focus of the product to-date, but there is a real opportunity to engineer specific controller packs that build-in convenience for common flows (like mapping a single request URL to a strongly-typed Java method invocation automatically, with support for type-conversion and validation during that process, and automatic exposure of any return value to the view). What problems do you believe need a scripting solution in the web-tier? I'm curious--it'd be interesting to consider integration of a scripting technology into the Web Flow engine, and where they might fit. Good stuff, Keith -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Darren Davison Sent: Sunday, March 26, 2006 12:36 PM To: spr...@li... Subject: Re: [Springframework-developer] Component Centric Web Framework for Spring On Sun, Mar 26, 2006 at 06:29:12AM -0500, Keith Donald wrote: > Hey Darren, > > Could you maybe summarize what you see in Django that would be good > influence for future enhancements to Spring's web stack? Would be > good to consider and discuss those for the 2.x series and beyond... > > One of the features I see on a brief glance I think is important is > the ability to design your on URL scheme using URL mapping expressions. Hi Keith, In my opinion, the biggest barrier to leaner, more dynamic Java web frameworks is the Servlet API itself. RoR, Django, CherryPy and others aren't constrained by it and manage to do pretty well for themselves. What does the requirement for an implementation of this API buy for the large number of enterprise web apps which are basically CRUD wrappers around a database? Many of the existing frameworks in Java land are starting to look a bit too heavy for this compared to the ease of setting up in Ruby or Python. The ability to map URL's directly to objects or methods via something as simple as regex declarations lowers the barriers to entry greatly and makes a simple web layer very quick to knock up. OOWeb for example (a simple Java port of CherryPy that a colleague and I wrote last year just to prove the point) offers a complete web novice the ability to start generating dynamic web content in less than 10 minutes. You get request parameter binding to your methods, form handling, security, logging, session replication and a simple built-in HTTP server in a jar that's around 60KB in size with zero additional dependencies. OK, so it's prototype stuff, but its purpose was to show that if you don't constrain yourself to the "standard" way of thinking (Servlet API), you can do quite a lot of stuff with greater ease and speed. OOWeb is in fact being used in a couple of small production sites anyway, but if we were to look at it seriously, we'd probably take the HTTP engine from Jetty or something and build the object mapper around that. The other aspect is the scriptability of the web tier. I know the dynamic stuff around BSF bean definitions hasn't really gone anywhere since it was mooted a couple of years ago, but this may be the best way forward if we want to hang on to the coat tails of things like Python and Ruby. Jython development seems to have stalled, which is a shame, and Groovy doesn't really appear to be building on the momentum it looked like having a while back either, but perhaps being first class citizens in a major web framework would help. Consider the Java web application framework "sans Servlet Container", and Spring seems to be in a perfect position to exploit an opportunity. After all, we already have a fantastic container and all the goodies you need to create a full featured service and data tier. If you could throw up a web tier around your database in the same sort of time that you can be productive in Django and RoR (including re-code and re-load semantics) then that might be attractive to a lot of people who are currently flirting with the more dynamic upstarts. Having the Java bindings available from web scripts to the Spring container or other "Enterprise" deployed components is the USP that the others don't have. "Spring WebScript" - imagine the possibilities :) -- Darren Davison Public Key: 0xDD356B0D |
|
From: Seth L. <set...@gm...> - 2006-03-26 19:54:22
|
> productive in Django and RoR (including re-code and re-load semantics) th= en > that might be attractive to a lot of people who are currently flirting wi= th > the more dynamic upstarts. Having the Java bindings available from web > scripts to the Spring container or other "Enterprise" deployed components= is > the USP that the others don't have. > > "Spring WebScript" - imagine the possibilities :) To continue on with this point, one of the huge attractions of RoR and Django is their ability to keep the developer coding at a high velocity. By removing any sort of compilation or deployment steps, I get to write unit tests and code at a very high rate. One of the large stumbling blocks of Java web app development has always been deployment. Get rid of that, and you've taken a huge step to productivity. This is why I'd like to see Wedge built with the assumption that I should never have to redeploy the application or restart the server. It simply can't be tolerated any more. Just let me say 'ant server' and it starts Jetty, the environment, and I'm off and running. Another thing a modern Java web framework must have is a nice set of scripts which generate a Fresh, New, Blank application. Just standardize on a directory layout. Then provide a script like 'ant new MyApp' and it creates *everything* you need. And finally, if you read the last sentence carefully, I'm hinting that a modern web framework is all inclusive. 'ant new MyApp' works only if you provide everything a developer needs, which includes an ORM framework. Yes, a modern web framework provides everything you need: limit my choices, integrate everything, and get me up and running immediately. No more of this "Here's 10% of what you need, now, go and choose the other 90% which means go find a ORM package, a template package, etc" One thing that Java apps can do that RoR isn't doing now is stateful objects. Look at what Seam is doing, or the new stateful Spring stuff. RoR isn't doing that, and it's a chance to jump straight over RoR in this respect. Stateless architectures are overrated. What can we do in the stateful world, especially now that Wedge is mapping straight to POJOs. Seth |
|
From: Darren D. <da...@da...> - 2006-03-26 17:36:25
|
On Sun, Mar 26, 2006 at 06:29:12AM -0500, Keith Donald wrote: > Hey Darren, >=20 > Could you maybe summarize what you see in Django that would be good > influence for future enhancements to Spring's web stack? Would be good to > consider and discuss those for the 2.x series and beyond... >=20 > One of the features I see on a brief glance I think is important is the > ability to design your on URL scheme using URL mapping expressions. Hi Keith, In my opinion, the biggest barrier to leaner, more dynamic Java web frameworks is the Servlet API itself. RoR, Django, CherryPy and others aren't constrained by it and manage to do pretty well for themselves. What does the requirement for an implementation of this API buy for the large number of enterprise web apps which are basically CRUD wrappers around a database? Many of the existing frameworks in Java land are starting to look a bit too heavy for this compared to the ease of setting up in Ruby or Python. The ability to map URL's directly to objects or methods via something as simple as regex declarations lowers the barriers to entry greatly and makes a simple web layer very quick to knock up. OOWeb for example (a simple Java port of CherryPy that a colleague and I wrote last year just to prove the point) offers a complete web novice the ability to start generating dynamic web content in less than 10 minutes. You get request parameter binding to your methods, form handling, security, logging, session replication and a simple built-in HTTP server in a jar that's around 60KB in size with zero additional dependencies. OK, so it's prototype stuff, but its purpose was to show that if you don't constrain yourself to the "standard" way of thinking (Servlet API), you can do quite a lot of stuff with greater ease and speed. OOWeb is in fact being used in a couple of small production sites anyway, but if we were to look at it seriously, we'd probably take the HTTP engine from Jetty or something and build the object mapper around that. The other aspect is the scriptability of the web tier. I know the dynamic stuff around BSF bean definitions hasn't really gone anywhere since it was mooted a couple of years ago, but this may be the best way forward if we want to hang on to the coat tails of things like Python and Ruby. Jython development seems to have stalled, which is a shame, and Groovy doesn't really appear to be building on the momentum it looked like having a while back either, but perhaps being first class citizens in a major web framework would help. Consider the Java web application framework "sans Servlet Container", and Spring seems to be in a perfect position to exploit an opportunity. After all, we already have a fantastic container and all the goodies you need to create a full featured service and data tier. If you could throw up a web tier around your database in the same sort of time that you can be productive in Django and RoR (including re-code and re-load semantics) then that might be attractive to a lot of people who are currently flirting with the more dynamic upstarts. Having the Java bindings available from web scripts to the Spring container or other "Enterprise" deployed components is the USP that the others don't have. "Spring WebScript" - imagine the possibilities :) --=20 Darren Davison=20 Public Key: 0xDD356B0D |
|
From: Keith D. <ke...@in...> - 2006-03-26 11:30:32
|
Hey Darren, Could you maybe summarize what you see in Django that would be good influence for future enhancements to Spring's web stack? Would be good to consider and discuss those for the 2.x series and beyond... One of the features I see on a brief glance I think is important is the ability to design your on URL scheme using URL mapping expressions. Cheers, Keith -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of da...@da... Sent: Sunday, March 26, 2006 5:10 AM To: spr...@li... Subject: Re: [Springframework-developer] Component Centric Web Framework for Spring On Sat, Mar 25, 2006 at 11:26:29AM -1000, Seth Ladd wrote: > Then might I recommend that if it doesn't already exist, provide an > ant runtime for your application, and bundle Jetty. That is, make it > *insanely* easy to start a new wedge runtime. Part of what a modern > Java web framework must do, imho, is provide everything you need to > get started out of the box. This includes the scripts to start and > stop the app. In other words, wedge should be a self bundled and > integrated package, not Yet Another Servlet with XML Config. See how > Rails works with its 'ruby scripts/server'. There should be something > like 'ant server'. If you're familiar with Python, take a look at Django <http://www.djangoproject.com>. Similar to RoR (but better IMHO) and the way much of the cutting edge seems to be moving now in terms of web development. Java frameworks are going to need to become a lot leaner in all respects to keep up. -- Darren Davison Public Key: 0xDD356B0D |
|
From: <da...@da...> - 2006-03-26 10:10:30
|
On Sat, Mar 25, 2006 at 11:26:29AM -1000, Seth Ladd wrote: > Then might I recommend that if it doesn't already exist, provide an > ant runtime for your application, and bundle Jetty. That is, make it > *insanely* easy to start a new wedge runtime. Part of what a modern > Java web framework must do, imho, is provide everything you need to > get started out of the box. This includes the scripts to start and > stop the app. In other words, wedge should be a self bundled and > integrated package, not Yet Another Servlet with XML Config. See how > Rails works with its 'ruby scripts/server'. There should be something > like 'ant server'. If you're familiar with Python, take a look at Django <http://www.djangoproject.com>. Similar to RoR (but better IMHO) and the way much of the cutting edge seems to be moving now in terms of web development. Java frameworks are going to need to become a lot leaner in all respects to keep up. --=20 Darren Davison Public Key: 0xDD356B0D |
|
From: Steven D. <ste...@gm...> - 2006-03-25 22:26:42
|
On 3/25/06, Seth Ladd <set...@gm...> wrote:
> > Yes, you need to restart the application and regenerate the code as you
> > make changes to the pages. But:
> > 1. I use jetty as an embedded server which is very practical and rapid
> > way to develop application. It does not take to much time to restart th=
e
> > server.
>
> Then might I recommend that if it doesn't already exist, provide an
> ant runtime for your application, and bundle Jetty. That is, make it
> *insanely* easy to start a new wedge runtime. Part of what a modern
> Java web framework must do, imho, is provide everything you need to
> get started out of the box. This includes the scripts to start and
> stop the app. In other words, wedge should be a self bundled and
> integrated package, not Yet Another Servlet with XML Config. See how
> Rails works with its 'ruby scripts/server'. There should be something
> like 'ant server'.
>
> > 2. I've made the ANT task only for generating the pages. The generation
> > requires all the application to be on the class path such that I start =
a
> > new java process to do that. This takes time, about 5 sec for my 5 page=
s
> > app. With the following code the time reduces to 1 sec.
>
> What about 250 pages? Does it only generate code for pages that have cha=
nged?
>
> > About defaults and conventions, I have been thinking to introduce them.
> > But still, I need a way to figure out which spring beans are wedge
> > components and which are not. More, you are not bound to spring, you ca=
n
>
> For simplicity's sake, I would bind it to Spring. Why make it
> optional? The more conventions the easier it is to learn and build
> things. If someone wants to rip out Spring, they can do the work. I
> wouldn't err on the side of pluggability at this stage in the game, I
> would focus on ease of use and quickness of development.
>
> > specify any kind of path that XmlWebApplicationContext can manage. The
> > file name is not always suitable for being an id
>
> This is where conventions kick in. First, you look for the bean in
> the ApplicationContext. If you don't find it, you can delegate to
> some sort of Resolver that knows how to do the mapping. The important
> part is, you first try the rule.
>
Amen. For me http://host/myapp/home should point to the 'home' bean in
Spring and map to /WEB-INF/home.html. These are two conventions that
are easy to implement and easy to overwrite. And as a consequence, no
XML for most configurations.
Another remark about the generation of the mapping between controller
and html: if you parse the HTML once - on the first request - you can
easily compose - as in composition - a hierarchy of objects that
render the result. You already parse the HTML and creating the
composition should be much easier than generating Java code or
bytecode. It also would be fully dynamic and can be easily
regenerated.
To me the fact that the controller is a POJO is a big big plus since
this means any POJO can be the model/controller, also the return value
of a method invocation. This my friend is the way to go with wedge. Go
boldy where no man has gone before and tie web requests to methods,
kind of like Web Flow does but more direct.
To provide an example of what I mean, say you have a Person object:
public class Person {
private String firstname;
private String lastname;
/* getters and constructor ommitted */
}
And a method that looks up a Person object:
public class PersonMapper {
public Person findPersonById(int id) {
// do stuff to find Person object and return
}
}
You can call the findPersonById() method and bind the 'id' request
parameter to the id argument of the method.
After the method executes you have the POJO to use as your model, and
you don't need form backing objects anymore.
To configure this the XML below suffices, and like Seth says this can
be a Spring 2.0 custom schema:
<wedge:request uri=3D"/personDetail"
method=3D"personMapperBean.findPersonById(id)"/>
This would make wedge a very cool framework in my opinion, one that's
ready for the future.
> > Unfortunately I do not see how I can make the wedge framework to work
> > without any kind of information source.
>
> I know you can do it. :) If anything, don't introduce Yet Another XML
> File. Use Spring 2.0's new XML Schema aware XML files. You can write
> your own namespace handlers, and thus it's like you are making your
> own XML file, yet you get to use all of the Spring XML definition
> framework.
>
> Seth
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting langua=
ge
> that extends applications into web and mobile media. Attend the live webc=
ast
> and join the prime developer group breaking into this new coding territor=
y!
> http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
--
Steven Devijver
Senior Consultant
Interface21
Spring Services from the Source
http://www.interface21.com
Co-author, "Expert Spring MVC and Web Flow"
(February 2006, with Seth Ladd, Darren Davison, and Colin Yates)
http://www.amazon.com/gp/product/159059584X
Interface21 NL B.V.
Donker Curtiusstraat 7-400c
1051JL Amsterdam
The Netherlands
Phone: +31 (0)20 486 47 63
Fax: +31 (0)20 475 08 28
Mail: st...@in...
Skype: devijvers
|
|
From: Seth L. <set...@gm...> - 2006-03-25 21:33:23
|
> Yes, you need to restart the application and regenerate the code as you > make changes to the pages. But: > 1. I use jetty as an embedded server which is very practical and rapid > way to develop application. It does not take to much time to restart the > server. Then might I recommend that if it doesn't already exist, provide an ant runtime for your application, and bundle Jetty. That is, make it *insanely* easy to start a new wedge runtime. Part of what a modern Java web framework must do, imho, is provide everything you need to get started out of the box. This includes the scripts to start and stop the app. In other words, wedge should be a self bundled and integrated package, not Yet Another Servlet with XML Config. See how Rails works with its 'ruby scripts/server'. There should be something like 'ant server'. > 2. I've made the ANT task only for generating the pages. The generation > requires all the application to be on the class path such that I start a > new java process to do that. This takes time, about 5 sec for my 5 pages > app. With the following code the time reduces to 1 sec. What about 250 pages? Does it only generate code for pages that have chang= ed? > About defaults and conventions, I have been thinking to introduce them. > But still, I need a way to figure out which spring beans are wedge > components and which are not. More, you are not bound to spring, you can For simplicity's sake, I would bind it to Spring. Why make it optional? The more conventions the easier it is to learn and build things. If someone wants to rip out Spring, they can do the work. I wouldn't err on the side of pluggability at this stage in the game, I would focus on ease of use and quickness of development. > specify any kind of path that XmlWebApplicationContext can manage. The > file name is not always suitable for being an id This is where conventions kick in. First, you look for the bean in the ApplicationContext. If you don't find it, you can delegate to some sort of Resolver that knows how to do the mapping. The important part is, you first try the rule. > Unfortunately I do not see how I can make the wedge framework to work > without any kind of information source. I know you can do it. :) If anything, don't introduce Yet Another XML File. Use Spring 2.0's new XML Schema aware XML files. You can write your own namespace handlers, and thus it's like you are making your own XML file, yet you get to use all of the Spring XML definition framework. Seth |
|
From: Jeremy T. <jer...@gm...> - 2006-03-25 18:30:57
|
I also agree that it is a nice concept, but I think adoption will be
hurt by the constant re-deploy problem. We use Jetty in Eclipse as
well, but depend on being able to make Tapestry page changes and see
them immediately with a refresh. We wouldn't be able to use something
that required a re-gen, compile, restart web server cycle. I, too,
look forward to seeing the samples.
Jeremy Thomerson
eBay, Inc.
On 3/25/06, Steven Devijver <ste...@gm...> wrote:
> Cristian,
>
> I think the Java generation can be useful in the early stage of the
> Wedge framework, but I'm with Seth in that the binding code should
> eventually be autogenerated, preferably with a tool like ASM.
>
> Wedge looks promising, and I would like to see a sample application
> that demonstrates its features, like for example complex form
> hanlding, validation, AJAX and so on.
>
> Steven
>
> On 3/25/06, Cristi PASCU <cri...@cr...> wrote:
> >
> > Thank you very much for your reply!
> >
> > When I started to work on 'wedge' my objective was to have a framework
> > does not require either specific page class hierarchy or cluttered
> > templates.
> > The solution I came up with for achieving this was to have "the missing=
"
> > code generated. First, I used javassist to create and load classes at
> > runtime. I rapidly realized that this is not such a good idea because:
> > 1. The generated code is invisible to the developer. Any exception that
> > you get at runtime would be hard to debug if it occurred within this
> > generated code. 2. There are a few limitations when using javassist. Fo=
r
> > instance, it does not supports inner or anonymous classes. 3. Class
> > loading problems that may occur within a web container environment.
> >
> > Although I would like very much to come with a 'cutting [w]edge' web
> > framework, I believe that it is more important to have that attitude
> > that will keep us moving further. Wicket came up with a good change of
> > view and perspective on java web development. As I studied some wicket
> > example I was impressed by the simplicity of the xhtml templates and th=
e
> > elegancy of the java classes. Still, I try move things a little bit
> > further. I want also to have clean java code, that is, to minimize the
> > dependency of the application to the framework. In a wedge application,
> > the framework takes your code and integrates it within its generated
> > classes. In wicket applications you build your pages using specific
> > framework components into the java code. That impose the creations of a
> > lot of java objects, one for each component. For instance, take this
> > example:
> >
> > In wicket:
> >
> > this.add(new Label("message", "Hello World!"));
> >
> > <span wicket:id=3D"message">Message goes here</span>
> >
> > This code must create a tree of components the must be synchronized wit=
h
> > the template and rendered by passing through it recursivly.
> > ---------------------
> >
> > In wedge:
> >
> > public String getMessage() {
> > return "Hello world!";
> > }
> >
> > <span wid=3D"w:insert" value=3D"ognl:message">The message</span>
> >
> > This gets translated into:
> >
> > render("<span >");
> > render(usrComp.getMessage());
> > render("</span>");
> > ---------------------
> >
> > As you can see, only a instance of the object behind the page is needed=
.
> > The component (w:insert) is translated into code. All wedge components
> > are translated into code and will not do any action at runtime.
> >
> > Embedding your code into the framework code frees your applications fro=
m
> > compatibility breaking with future versions of wedge. If your
> > application consists of pages that are simple POJO's than framework
> > improvements for performance and clarity of the generated code will not
> > affect the application code. And I think this is good thing. Backward
> > compatibility is something that makes evolution of frameworks slower.
> >
> >
> > Yes, you need to restart the application and regenerate the code as you
> > make changes to the pages. But:
> > 1. I use jetty as an embedded server which is very practical and rapid
> > way to develop application. It does not take to much time to restart th=
e
> > server.
> > 2. I've made the ANT task only for generating the pages. The generation
> > requires all the application to be on the class path such that I start =
a
> > new java process to do that. This takes time, about 5 sec for my 5 page=
s
> > app. With the following code the time reduces to 1 sec.
> >
> >
> > String base =3D "D:/PROJECTS/wedge/wedge.test.site/";
> >
> > WedgeCodeGenerator codeGenerator =3D WedgeCodeGenerator.getInstance();
> > String webRoot =3D base + "web";
> > codeGenerator.setWebRoot(webRoot);
> >
> > String sourceRoot =3D base + "wdg/src";
> > codeGenerator.setSourceDir(sourceRoot);
> >
> > String wedgeApp =3D "wedge-application.xml";
> > String appSpec =3D webRoot + "/WEB-INF/" + wedgeApp;
> > codeGenerator.setWedgeApplication(appSpec);
> >
> > codeGenerator.generateFiles();
> >
> >
> > 3. If I refresh the eclipse project folder, the eclipse compiler
> > compiles the files much faster than ANT.
> > 4. An eclipse plug-in would be quite helpful! (Note that the simplicity
> > of the framework will make possible to have a powerful enough IDE
> > plug-in)
> >
> >
> > About defaults and conventions, I have been thinking to introduce them.
> > But still, I need a way to figure out which spring beans are wedge
> > components and which are not. More, you are not bound to spring, you ca=
n
> > simply specify the class directly. For the file attribute, you can
> > specify any kind of path that XmlWebApplicationContext can manage. The
> > file name is not always suitable for being an id. Anyway, you are right=
,
> > if is possible, that the developer should have the possibility to use
> > this conventions.
> > Unfortunately I do not see how I can make the wedge framework to work
> > without any kind of information source. Anyway, the amount of xml will
> > be kept to the minimum.
> >
> > Thank you very much for your interest and I will try that a.s.a.p to
> > have a first release and more documentation.
> >
> > Help on developing is really needed! If there is anyone interested,
> > please contact me!
> >
> > Cristian
> >
> >
> >
> > -----Original Message-----
> > From: spr...@li...
> > [mailto:spr...@li...] On Behal=
f
> > Of Seth Ladd
> >
> > Sounds like an interesting project. Can you compare to Wicket
> > (http://wicket.sourceforge.net/) ?
> >
> > The one concern I have is, how quick is it to test changes to the code?
> > From the impression I get, if I want to make a change to a page, I need
> > to shut down the application and restart it so that the ANT task can
> > recompile the page classes?
> >
> > IMHO, a really cutting edge Java web application framework would requir=
e
> > absolutely zero shutdown and restarts of either the servlet container o=
r
> > the servlet context itself. Do you happen to plan on attacking the
> > "constant redeploy" problem?
> >
> > Also, not sure if it does already, but does the configuration support
> > sensible defaults, or conventions? A really cutting edge Java web app
> > framework would be able to run with zero XML.
> >
> > For instance, given your example:
> >
> > <application>
> >
> > <page id=3D"home" file=3D"home.html" springBean=3D"home" />
> >
> > </application>
> >
> > I would image the default rule would be: "convert home.html to 'home'
> > and find the matching bean by name". In other words, don't make me
> > write the above XML when it's obvious what I am declaring. :)
> >
> > Seth
> >
> >
> > On 3/24/06, Cristi PASCU <cri...@cr...> wrote:
> > > Hi everybody!
> > >
> > > My name is Cristian Pascu and I am developing an opensource project
> > > named "wedge" (http://wedge.sourceforge.net) which is a component
> > > centric web framework built on Spring.
> > > It is similar to Tapestry and aims to provide some features that are
> > > not yet available in Tapestry. Namely:
> > > * better and easier integration with Spring.
> > > * simple POJO classes behind clean xhtml pages. There is no
> > > need to extend specific framework classes. The classes are easy to
> > > test as they are easy to instantiate and configure.
> > > * all page classes may be managed by Spring inversion of
> > > control container. This way, services from the business tier will be
> > > injected in the presentation tier.
> > > * a simpler component/pages specification. There should be a
> > > single configuration file and not one for each component.
> > > * the configuration of the application should be very simple,
> > > one xml file with few tags and attributes. Much of the configuration
> > > will be on the spring side.
> > >
> > > Most of these features are already implemented. There is still some
> > > work to do on the validation mechanism. The upload support is also
> > > missing but is not to hard to implement.
> > >
> > > But what differentiate the wedge framework from tapestry framework is
> > > that instead of using runtime reflection it follows the "code
> > > generation" paradigm. Let me be more specific: The connection between
> > > the template and the class behind it is made through an intermediary
> > > generated class that binds the two. Thus, the generated code "knows"
> > > exactly which is the structure of the template, that components to
> > > render, what classes to use and what methods to call at the right
> > time.
> > > The generation is done with an ANT task each time before the
> > > application is started.
> > >
> > > If you have any thoughts on what I am trying to do, critics or
> > > advices, all are welcomed!
> > >
> > > Do you think that such a framework is needed?
> > > Do you think that my approach is a good one?
> > >
> > > Thank you very much!
> > >
> > > Cristian
> > >
> > >
> > > PS: There is not any release yet. You may check out the project from
> > > sourceforge: https://svn.sourceforge.net/svnroot/wedge
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.Net email is sponsored by xPML, a groundbreaking scripting
> > > language that extends applications into web and mobile media. Attend
> > > the live webcast and join the prime developer group breaking into thi=
s
> > new coding territory!
> > > http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> > > _______________________________________________
> > > Springframework-developer mailing list
> > > Spr...@li...
> > > https://lists.sourceforge.net/lists/listinfo/springframework-develope=
r
> > >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting
> > language that extends applications into web and mobile media. Attend th=
e
> > live webcast and join the prime developer group breaking into this new
> > coding territory!
> > http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642
> > _______________________________________________
> > Springframework-developer mailing list
> > Spr...@li...
> > https://lists.sourceforge.net/lists/listinfo/springframework-developer
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting
> language
> > that extends applications into web and mobile media. Attend the live
> webcast
> > and join the prime developer group breaking into this new coding
> territory!
> > http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> > _______________________________________________
> > Springframework-developer mailing list
> > Spr...@li...
> > https://lists.sourceforge.net/lists/listinfo/springframework-developer
> >
> >
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting langua=
ge
> that extends applications into web and mobile media. Attend the live webc=
ast
> and join the prime developer group breaking into this new coding territor=
y!
> http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
|
|
From: Steven D. <ste...@gm...> - 2006-03-25 14:11:48
|
Cristian,
I think the Java generation can be useful in the early stage of the
Wedge framework, but I'm with Seth in that the binding code should
eventually be autogenerated, preferably with a tool like ASM.
Wedge looks promising, and I would like to see a sample application
that demonstrates its features, like for example complex form
hanlding, validation, AJAX and so on.
Steven
On 3/25/06, Cristi PASCU <cri...@cr...> wrote:
>
> Thank you very much for your reply!
>
> When I started to work on 'wedge' my objective was to have a framework
> does not require either specific page class hierarchy or cluttered
> templates.
> The solution I came up with for achieving this was to have "the missing"
> code generated. First, I used javassist to create and load classes at
> runtime. I rapidly realized that this is not such a good idea because:
> 1. The generated code is invisible to the developer. Any exception that
> you get at runtime would be hard to debug if it occurred within this
> generated code. 2. There are a few limitations when using javassist. For
> instance, it does not supports inner or anonymous classes. 3. Class
> loading problems that may occur within a web container environment.
>
> Although I would like very much to come with a 'cutting [w]edge' web
> framework, I believe that it is more important to have that attitude
> that will keep us moving further. Wicket came up with a good change of
> view and perspective on java web development. As I studied some wicket
> example I was impressed by the simplicity of the xhtml templates and the
> elegancy of the java classes. Still, I try move things a little bit
> further. I want also to have clean java code, that is, to minimize the
> dependency of the application to the framework. In a wedge application,
> the framework takes your code and integrates it within its generated
> classes. In wicket applications you build your pages using specific
> framework components into the java code. That impose the creations of a
> lot of java objects, one for each component. For instance, take this
> example:
>
> In wicket:
>
> this.add(new Label("message", "Hello World!"));
>
> <span wicket:id=3D"message">Message goes here</span>
>
> This code must create a tree of components the must be synchronized with
> the template and rendered by passing through it recursivly.
> ---------------------
>
> In wedge:
>
> public String getMessage() {
> return "Hello world!";
> }
>
> <span wid=3D"w:insert" value=3D"ognl:message">The message</span>
>
> This gets translated into:
>
> render("<span >");
> render(usrComp.getMessage());
> render("</span>");
> ---------------------
>
> As you can see, only a instance of the object behind the page is needed.
> The component (w:insert) is translated into code. All wedge components
> are translated into code and will not do any action at runtime.
>
> Embedding your code into the framework code frees your applications from
> compatibility breaking with future versions of wedge. If your
> application consists of pages that are simple POJO's than framework
> improvements for performance and clarity of the generated code will not
> affect the application code. And I think this is good thing. Backward
> compatibility is something that makes evolution of frameworks slower.
>
>
> Yes, you need to restart the application and regenerate the code as you
> make changes to the pages. But:
> 1. I use jetty as an embedded server which is very practical and rapid
> way to develop application. It does not take to much time to restart the
> server.
> 2. I've made the ANT task only for generating the pages. The generation
> requires all the application to be on the class path such that I start a
> new java process to do that. This takes time, about 5 sec for my 5 pages
> app. With the following code the time reduces to 1 sec.
>
>
> String base =3D "D:/PROJECTS/wedge/wedge.test.site/";
>
> WedgeCodeGenerator codeGenerator =3D WedgeCodeGenerator.getInstance();
> String webRoot =3D base + "web";
> codeGenerator.setWebRoot(webRoot);
>
> String sourceRoot =3D base + "wdg/src";
> codeGenerator.setSourceDir(sourceRoot);
>
> String wedgeApp =3D "wedge-application.xml";
> String appSpec =3D webRoot + "/WEB-INF/" + wedgeApp;
> codeGenerator.setWedgeApplication(appSpec);
>
> codeGenerator.generateFiles();
>
>
> 3. If I refresh the eclipse project folder, the eclipse compiler
> compiles the files much faster than ANT.
> 4. An eclipse plug-in would be quite helpful! (Note that the simplicity
> of the framework will make possible to have a powerful enough IDE
> plug-in)
>
>
> About defaults and conventions, I have been thinking to introduce them.
> But still, I need a way to figure out which spring beans are wedge
> components and which are not. More, you are not bound to spring, you can
> simply specify the class directly. For the file attribute, you can
> specify any kind of path that XmlWebApplicationContext can manage. The
> file name is not always suitable for being an id. Anyway, you are right,
> if is possible, that the developer should have the possibility to use
> this conventions.
> Unfortunately I do not see how I can make the wedge framework to work
> without any kind of information source. Anyway, the amount of xml will
> be kept to the minimum.
>
> Thank you very much for your interest and I will try that a.s.a.p to
> have a first release and more documentation.
>
> Help on developing is really needed! If there is anyone interested,
> please contact me!
>
> Cristian
>
>
>
> -----Original Message-----
> From: spr...@li...
> [mailto:spr...@li...] On Behalf
> Of Seth Ladd
>
> Sounds like an interesting project. Can you compare to Wicket
> (http://wicket.sourceforge.net/) ?
>
> The one concern I have is, how quick is it to test changes to the code?
> From the impression I get, if I want to make a change to a page, I need
> to shut down the application and restart it so that the ANT task can
> recompile the page classes?
>
> IMHO, a really cutting edge Java web application framework would require
> absolutely zero shutdown and restarts of either the servlet container or
> the servlet context itself. Do you happen to plan on attacking the
> "constant redeploy" problem?
>
> Also, not sure if it does already, but does the configuration support
> sensible defaults, or conventions? A really cutting edge Java web app
> framework would be able to run with zero XML.
>
> For instance, given your example:
>
> <application>
>
> <page id=3D"home" file=3D"home.html" springBean=3D"home" />
>
> </application>
>
> I would image the default rule would be: "convert home.html to 'home'
> and find the matching bean by name". In other words, don't make me
> write the above XML when it's obvious what I am declaring. :)
>
> Seth
>
>
> On 3/24/06, Cristi PASCU <cri...@cr...> wrote:
> > Hi everybody!
> >
> > My name is Cristian Pascu and I am developing an opensource project
> > named "wedge" (http://wedge.sourceforge.net) which is a component
> > centric web framework built on Spring.
> > It is similar to Tapestry and aims to provide some features that are
> > not yet available in Tapestry. Namely:
> > * better and easier integration with Spring.
> > * simple POJO classes behind clean xhtml pages. There is no
> > need to extend specific framework classes. The classes are easy to
> > test as they are easy to instantiate and configure.
> > * all page classes may be managed by Spring inversion of
> > control container. This way, services from the business tier will be
> > injected in the presentation tier.
> > * a simpler component/pages specification. There should be a
> > single configuration file and not one for each component.
> > * the configuration of the application should be very simple,
> > one xml file with few tags and attributes. Much of the configuration
> > will be on the spring side.
> >
> > Most of these features are already implemented. There is still some
> > work to do on the validation mechanism. The upload support is also
> > missing but is not to hard to implement.
> >
> > But what differentiate the wedge framework from tapestry framework is
> > that instead of using runtime reflection it follows the "code
> > generation" paradigm. Let me be more specific: The connection between
> > the template and the class behind it is made through an intermediary
> > generated class that binds the two. Thus, the generated code "knows"
> > exactly which is the structure of the template, that components to
> > render, what classes to use and what methods to call at the right
> time.
> > The generation is done with an ANT task each time before the
> > application is started.
> >
> > If you have any thoughts on what I am trying to do, critics or
> > advices, all are welcomed!
> >
> > Do you think that such a framework is needed?
> > Do you think that my approach is a good one?
> >
> > Thank you very much!
> >
> > Cristian
> >
> >
> > PS: There is not any release yet. You may check out the project from
> > sourceforge: https://svn.sourceforge.net/svnroot/wedge
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting
> > language that extends applications into web and mobile media. Attend
> > the live webcast and join the prime developer group breaking into this
> new coding territory!
> > http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> > _______________________________________________
> > Springframework-developer mailing list
> > Spr...@li...
> > https://lists.sourceforge.net/lists/listinfo/springframework-developer
> >
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting
> language that extends applications into web and mobile media. Attend the
> live webcast and join the prime developer group breaking into this new
> coding territory!
> http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting langua=
ge
> that extends applications into web and mobile media. Attend the live webc=
ast
> and join the prime developer group breaking into this new coding territor=
y!
> http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
|
|
From: Cristi P. <cri...@cr...> - 2006-03-25 13:09:50
|
Thank you very much for your reply!=20
When I started to work on 'wedge' my objective was to have a framework
does not require either specific page class hierarchy or cluttered
templates.=20
The solution I came up with for achieving this was to have "the missing"
code generated. First, I used javassist to create and load classes at
runtime. I rapidly realized that this is not such a good idea because:
1. The generated code is invisible to the developer. Any exception that
you get at runtime would be hard to debug if it occurred within this
generated code. 2. There are a few limitations when using javassist. For
instance, it does not supports inner or anonymous classes. 3. Class
loading problems that may occur within a web container environment.
Although I would like very much to come with a 'cutting [w]edge' web
framework, I believe that it is more important to have that attitude
that will keep us moving further. Wicket came up with a good change of
view and perspective on java web development. As I studied some wicket
example I was impressed by the simplicity of the xhtml templates and the
elegancy of the java classes. Still, I try move things a little bit
further. I want also to have clean java code, that is, to minimize the
dependency of the application to the framework. In a wedge application,
the framework takes your code and integrates it within its generated
classes. In wicket applications you build your pages using specific
framework components into the java code. That impose the creations of a
lot of java objects, one for each component. For instance, take this
example:
In wicket:
this.add(new Label("message", "Hello World!"));
<span wicket:id=3D"message">Message goes here</span>
This code must create a tree of components the must be synchronized with
the template and rendered by passing through it recursivly.
---------------------
In wedge:
public String getMessage() {
return "Hello world!";
}
<span wid=3D"w:insert" value=3D"ognl:message">The message</span>
This gets translated into:
render("<span >");
render(usrComp.getMessage());
render("</span>");
---------------------
As you can see, only a instance of the object behind the page is needed.
The component (w:insert) is translated into code. All wedge components
are translated into code and will not do any action at runtime.
Embedding your code into the framework code frees your applications from
compatibility breaking with future versions of wedge. If your
application consists of pages that are simple POJO's than framework
improvements for performance and clarity of the generated code will not
affect the application code. And I think this is good thing. Backward
compatibility is something that makes evolution of frameworks slower.
Yes, you need to restart the application and regenerate the code as you
make changes to the pages. But:=20
1. I use jetty as an embedded server which is very practical and rapid
way to develop application. It does not take to much time to restart the
server.
2. I've made the ANT task only for generating the pages. The generation
requires all the application to be on the class path such that I start a
new java process to do that. This takes time, about 5 sec for my 5 pages
app. With the following code the time reduces to 1 sec.
String base =3D "D:/PROJECTS/wedge/wedge.test.site/";
=09
WedgeCodeGenerator codeGenerator =3D WedgeCodeGenerator.getInstance();
String webRoot =3D base + "web";
codeGenerator.setWebRoot(webRoot);
String sourceRoot =3D base + "wdg/src";
codeGenerator.setSourceDir(sourceRoot);
String wedgeApp =3D "wedge-application.xml";
String appSpec =3D webRoot + "/WEB-INF/" + wedgeApp;
codeGenerator.setWedgeApplication(appSpec);
codeGenerator.generateFiles();
3. If I refresh the eclipse project folder, the eclipse compiler
compiles the files much faster than ANT.
4. An eclipse plug-in would be quite helpful! (Note that the simplicity
of the framework will make possible to have a powerful enough IDE
plug-in)
About defaults and conventions, I have been thinking to introduce them.
But still, I need a way to figure out which spring beans are wedge
components and which are not. More, you are not bound to spring, you can
simply specify the class directly. For the file attribute, you can
specify any kind of path that XmlWebApplicationContext can manage. The
file name is not always suitable for being an id. Anyway, you are right,
if is possible, that the developer should have the possibility to use
this conventions.=20
Unfortunately I do not see how I can make the wedge framework to work
without any kind of information source. Anyway, the amount of xml will
be kept to the minimum.
Thank you very much for your interest and I will try that a.s.a.p to
have a first release and more documentation.
Help on developing is really needed! If there is anyone interested,
please contact me!
Cristian
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf
Of Seth Ladd
Sounds like an interesting project. Can you compare to Wicket
(http://wicket.sourceforge.net/) ?
The one concern I have is, how quick is it to test changes to the code?
From the impression I get, if I want to make a change to a page, I need
to shut down the application and restart it so that the ANT task can
recompile the page classes?
IMHO, a really cutting edge Java web application framework would require
absolutely zero shutdown and restarts of either the servlet container or
the servlet context itself. Do you happen to plan on attacking the
"constant redeploy" problem?
Also, not sure if it does already, but does the configuration support
sensible defaults, or conventions? A really cutting edge Java web app
framework would be able to run with zero XML.
For instance, given your example:
<application>
<page id=3D"home" file=3D"home.html" springBean=3D"home" />
</application>
I would image the default rule would be: "convert home.html to 'home'
and find the matching bean by name". In other words, don't make me
write the above XML when it's obvious what I am declaring. :)
Seth
On 3/24/06, Cristi PASCU <cri...@cr...> wrote:
> Hi everybody!
>
> My name is Cristian Pascu and I am developing an opensource project=20
> named "wedge" (http://wedge.sourceforge.net) which is a component=20
> centric web framework built on Spring.
> It is similar to Tapestry and aims to provide some features that are=20
> not yet available in Tapestry. Namely:
> * better and easier integration with Spring.
> * simple POJO classes behind clean xhtml pages. There is no=20
> need to extend specific framework classes. The classes are easy to=20
> test as they are easy to instantiate and configure.
> * all page classes may be managed by Spring inversion of=20
> control container. This way, services from the business tier will be=20
> injected in the presentation tier.
> * a simpler component/pages specification. There should be a=20
> single configuration file and not one for each component.
> * the configuration of the application should be very simple,=20
> one xml file with few tags and attributes. Much of the configuration=20
> will be on the spring side.
>
> Most of these features are already implemented. There is still some=20
> work to do on the validation mechanism. The upload support is also=20
> missing but is not to hard to implement.
>
> But what differentiate the wedge framework from tapestry framework is=20
> that instead of using runtime reflection it follows the "code=20
> generation" paradigm. Let me be more specific: The connection between=20
> the template and the class behind it is made through an intermediary=20
> generated class that binds the two. Thus, the generated code "knows"
> exactly which is the structure of the template, that components to=20
> render, what classes to use and what methods to call at the right
time.
> The generation is done with an ANT task each time before the=20
> application is started.
>
> If you have any thoughts on what I am trying to do, critics or=20
> advices, all are welcomed!
>
> Do you think that such a framework is needed?
> Do you think that my approach is a good one?
>
> Thank you very much!
>
> Cristian
>
>
> PS: There is not any release yet. You may check out the project from
> sourceforge: https://svn.sourceforge.net/svnroot/wedge
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting=20
> language that extends applications into web and mobile media. Attend=20
> the live webcast and join the prime developer group breaking into this
new coding territory!
> http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642
> _______________________________________________
> Springframework-developer mailing list=20
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language that extends applications into web and mobile media. Attend the
live webcast and join the prime developer group breaking into this new
coding territory!
http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Seth L. <set...@gm...> - 2006-03-24 21:24:23
|
Sounds like an interesting project. Can you compare to Wicket (http://wicket.sourceforge.net/) ? The one concern I have is, how quick is it to test changes to the code? From the impression I get, if I want to make a change to a page, I need to shut down the application and restart it so that the ANT task can recompile the page classes? IMHO, a really cutting edge Java web application framework would require absolutely zero shutdown and restarts of either the servlet container or the servlet context itself. Do you happen to plan on attacking the "constant redeploy" problem? Also, not sure if it does already, but does the configuration support sensible defaults, or conventions? A really cutting edge Java web app framework would be able to run with zero XML. For instance, given your example: <application> =09<page id=3D"home" file=3D"home.html" springBean=3D"home" /> </application> I would image the default rule would be: "convert home.html to 'home' and find the matching bean by name". In other words, don't make me write the above XML when it's obvious what I am declaring. :) Seth On 3/24/06, Cristi PASCU <cri...@cr...> wrote: > Hi everybody! > > My name is Cristian Pascu and I am developing an opensource project > named "wedge" (http://wedge.sourceforge.net) which is a component > centric web framework built on Spring. > It is similar to Tapestry and aims to provide some features that are not > yet available in Tapestry. Namely: > * better and easier integration with Spring. > * simple POJO classes behind clean xhtml pages. There is no need > to extend specific framework classes. The classes are easy to test as > they are easy to instantiate and configure. > * all page classes may be managed by Spring inversion of control > container. This way, services from the business tier will be injected in > the presentation tier. > * a simpler component/pages specification. There should be a > single configuration file and not one for each component. > * the configuration of the application should be very simple, > one xml file with few tags and attributes. Much of the configuration > will be on the spring side. > > Most of these features are already implemented. There is still some work > to do on the validation mechanism. The upload support is also missing > but is not to hard to implement. > > But what differentiate the wedge framework from tapestry framework is > that instead of using runtime reflection it follows the "code > generation" paradigm. Let me be more specific: The connection between > the template and the class behind it is made through an intermediary > generated class that binds the two. Thus, the generated code "knows" > exactly which is the structure of the template, that components to > render, what classes to use and what methods to call at the right time. > The generation is done with an ANT task each time before the application > is started. > > If you have any thoughts on what I am trying to do, critics or advices, > all are welcomed! > > Do you think that such a framework is needed? > Do you think that my approach is a good one? > > Thank you very much! > > Cristian > > > PS: There is not any release yet. You may check out the project from > sourceforge: https://svn.sourceforge.net/svnroot/wedge > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.as-us.falkag.net/sel?cmdlnk&kid=110944&bid$1720&dat=121642 > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |
|
From: Cristi P. <cri...@cr...> - 2006-03-24 15:51:43
|
Hi everybody! =20 My name is Cristian Pascu and I am developing an opensource project named "wedge" (http://wedge.sourceforge.net) which is a component centric web framework built on Spring.=20 It is similar to Tapestry and aims to provide some features that are not yet available in Tapestry. Namely: * better and easier integration with Spring. * simple POJO classes behind clean xhtml pages. There is no need to extend specific framework classes. The classes are easy to test as they are easy to instantiate and configure. * all page classes may be managed by Spring inversion of control container. This way, services from the business tier will be injected in the presentation tier. * a simpler component/pages specification. There should be a single configuration file and not one for each component. * the configuration of the application should be very simple, one xml file with few tags and attributes. Much of the configuration will be on the spring side. Most of these features are already implemented. There is still some work to do on the validation mechanism. The upload support is also missing but is not to hard to implement. But what differentiate the wedge framework from tapestry framework is that instead of using runtime reflection it follows the "code generation" paradigm. Let me be more specific: The connection between the template and the class behind it is made through an intermediary generated class that binds the two. Thus, the generated code "knows" exactly which is the structure of the template, that components to render, what classes to use and what methods to call at the right time. The generation is done with an ANT task each time before the application is started. If you have any thoughts on what I am trying to do, critics or advices, all are welcomed! Do you think that such a framework is needed? Do you think that my approach is a good one?=20 Thank you very much! Cristian PS: There is not any release yet. You may check out the project from sourceforge: https://svn.sourceforge.net/svnroot/wedge=20 |
|
From: <al...@in...> - 2006-03-24 02:21:18
|
Errors and a list of modifications can be found in the build log (http://static.springframework.org/spring-webflow/build/index.html). |
|
From: <ale...@in...> - 2006-03-24 02:20:05
|
Snapshot has been uploaded to http://www.springframework.org/snaphots The list of modifications for this build can be found in the build log (http://static.springframework.org/spring/build/index.html). |
|
From: <ale...@in...> - 2006-03-23 21:46:23
|
Snapshot has been uploaded to http://www.springframework.org/snaphots The list of modifications for this build can be found in the build log (http://static.springframework.org/spring/build/index.html). |