Re: renaming jar files
Costin Manolache wrote: I understand people using JDBC authenticator would miss the connection pooling - but maybe they could download it separately ? Would't be easier to just download the 'official' version ? No. commons-dbcp supports far more than just pooling for the JDBC authenticator. The reason we do the renaming is to avoid class loading issues when users want to use a Tomcat-managed connection pool alongside an application that uses commons-dbcp and/or commons-pool directly. I'm also curious, assuming JDK1.5 is used to compile - would the tomcat distro work in JDK1.6 if dbcp is compiled with 1.5 ? Yes it does. To be more accurate, I haven't seen any issues using the re-packaged DBCP on 1.6. In any case - it kind of sucks to not be able to build following the instructions ( ant download, ant ) - I didn't find any ref that JDK1.6 is not supported for build. Correct. If you want to fix this you could always port the DBCP build fixes from commons. Mark - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: renaming jar files
On Sun, Mar 23, 2008 at 6:29 AM, Mark Thomas <[EMAIL PROTECTED]> wrote: > Costin Manolache wrote: > > I understand people using JDBC authenticator would miss the connection > > pooling - but maybe they could download it separately ? Would't be > > easier to just download the 'official' version ? > > No. commons-dbcp supports far more than just pooling for the JDBC > authenticator. The reason we do the renaming is to avoid class loading > issues when users want to use a Tomcat-managed connection pool alongside an > application that uses commons-dbcp and/or commons-pool directly. > > > > I'm also curious, assuming JDK1.5 is used to compile - would the > > tomcat distro work in JDK1.6 if dbcp is compiled with 1.5 ? > > Yes it does. To be more accurate, I haven't seen any issues using the > re-packaged DBCP on 1.6. > > > > In any case - it kind of sucks to not be able to build following the > > instructions ( ant download, ant ) - I didn't find any ref that JDK1.6 > > is not supported for build. > > Correct. > > If you want to fix this you could always port the DBCP build fixes from > commons. > This isssue is being tracked as DBCP-191. Comments, suggestions, patches are welcome on the ticket or on commons-dev. Opinions on JDK support levels/branching from tomcat perspective would be appreciated. Phil - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 43285] Missing EL Coercion causes argument type mismatch
https://issues.apache.org/bugzilla/show_bug.cgi?id=43285 --- Comment #7 from Bernhard Huemer <[EMAIL PROTECTED]> 2008-03-23 13:05:39 PST --- Note that the Expression Language specification requires this behaviour, see "1.2.1.1 Eval-expressions as value expressions": "In the case of lvalues [...] the provided value is coerced to the actual type of the property the expression points to, before that property is set." Furthermore, according to the coercion rules defined in the section "1.18.3 Coerce A to Number type N" the Expression Language implementation has to coerce both null and "" to 0. As you can see, this behaviour is not only what one would expect but also what the specification requires. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r640273 - in /tomcat/trunk/java/org/apache/catalina/valves: CometConnectionManagerValve.java LocalStrings.properties
Author: markt Date: Sun Mar 23 16:22:07 2008 New Revision: 640273 URL: http://svn.apache.org/viewvc?rev=640273&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44646 The problem was wider than the issue described in the bug report. The session listener and the valve are different objects so the connection list wasn't visible to the session listener. I couldn't see an easy way to make them the same object so I used two lists - one for the valve (stored in the valve) and one for the session (stored in the session). This valve now works for a simple comet app. Modified: tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties Modified: tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java?rev=640273&r1=640272&r2=640273&view=diff == --- tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java Sun Mar 23 16:22:07 2008 @@ -20,8 +20,10 @@ import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; -import java.util.concurrent.ConcurrentHashMap; +import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpSession; @@ -29,6 +31,7 @@ import javax.servlet.http.HttpSessionListener; import org.apache.catalina.CometEvent; +import org.apache.catalina.CometProcessor; import org.apache.catalina.Context; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; @@ -86,12 +89,19 @@ /** - * Connection list. + * List of current Coment connections. */ -protected ConcurrentHashMap connections -= new ConcurrentHashMap(); +protected List cometRequests = +Collections.synchronizedList(new ArrayList()); +/** + * Name of session attribute used to store list of comet connections. + */ +protected String cometRequestsAttribute = +"org.apache.tomcat.comet.connectionList"; + + // - Properties @@ -178,54 +188,36 @@ ((Lifecycle) container).removeLifecycleListener(this); } -// The webapp is getting stopped, so all current connections -// should be closed -// Close all Comet connections associated with this session -// Note: this will only be done if the container was not a Context -// (otherwise, this needs to be done before stop, as the servlet would -// be deallocated already) -Iterator iterator = connections.values().iterator(); -while (iterator.hasNext()) { -ConnectionInfo[] connectionInfos = iterator.next(); -if (connectionInfos != null) { -for (int i = 0; i < connectionInfos.length; i++) { -ConnectionInfo connectionInfo = connectionInfos[i]; -try { -connectionInfo.event.close(); -} catch (Exception e) { - container.getLogger().warn(sm.getString("cometConnectionManagerValve.event"), e); -} -} -} -} -connections.clear(); - } public void lifecycleEvent(LifecycleEvent event) { if (event.getType() == Lifecycle.BEFORE_STOP_EVENT) { -// The webapp is getting stopped, so all current connections -// should be closed -// Close all Comet connections associated with this session -Iterator iterator = connections.values().iterator(); +// The container is getting stopped, close all current connections +Iterator iterator = cometRequests.iterator(); while (iterator.hasNext()) { -ConnectionInfo[] connectionInfos = iterator.next(); -if (connectionInfos != null) { -for (int i = 0; i < connectionInfos.length; i++) { -ConnectionInfo connectionInfo = connectionInfos[i]; -try { -((CometEventImpl) connectionInfo.event).setEventType(CometEvent.EventType.END); -((CometEventImpl) connectionInfo.event).setEventSubType(CometEvent.EventSubType.WEBAPP_RELOAD); -getNext().event(connectionInfo.request, connectionInfo.response, connectionInfo.event); -connectionInfo.event.close(); -} catch (Exception e) { - container.getLogger().warn(sm.getString("cometConnectionManagerValv
DO NOT REPLY [Bug 44646] IllegalStateException when using CometConnectionManagerValve
https://issues.apache.org/bugzilla/show_bug.cgi?id=44646 --- Comment #1 from Mark Thomas <[EMAIL PROTECTED]> 2008-03-23 16:26:07 PST --- The problem was wider than just the issue reported here. It should now all be fixed in trunk. The patch is http://svn.apache.org/viewvc?rev=640273&view=rev I have proposed the patch for 6.0.x. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r640275 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: markt Date: Sun Mar 23 16:27:48 2008 New Revision: 640275 URL: http://svn.apache.org/viewvc?rev=640275&view=rev Log: Propose patch Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=640275&r1=640274&r2=640275&view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Sun Mar 23 16:27:48 2008 @@ -64,3 +64,9 @@ http://svn.apache.org/viewvc?rev=639842&view=rev +1: markt, fhanik, rjung -1: + +* Get o.a.c.valves.CometConnectionManagerValve working + Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44646 + http://svn.apache.org/viewvc?rev=640273&view=rev + +1: markt + -1: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 44637] JspValueExpression.getType() returns Object. class instead of correct Type
https://issues.apache.org/bugzilla/show_bug.cgi?id=44637 Mark Thomas <[EMAIL PROTECTED]> changed: What|Removed |Added Status|NEW |NEEDINFO --- Comment #1 from Mark Thomas <[EMAIL PROTECTED]> 2008-03-23 18:11:29 PST --- My build environment isn't compatible with the Eclipse project you have attached. Please can you build the war and attached that. Note: you can leave out the MyFaces libs if necessary and I can add them manually. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: renaming jar files
"Phil Steitz" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > On Sun, Mar 23, 2008 at 6:29 AM, Mark Thomas <[EMAIL PROTECTED]> wrote: >> Costin Manolache wrote: >> > I understand people using JDBC authenticator would miss the connection >> > pooling - but maybe they could download it separately ? Would't be >> > easier to just download the 'official' version ? >> >> No. commons-dbcp supports far more than just pooling for the JDBC >> authenticator. The reason we do the renaming is to avoid class loading >> issues when users want to use a Tomcat-managed connection pool alongside >> an >> application that uses commons-dbcp and/or commons-pool directly. >> >> >> > I'm also curious, assuming JDK1.5 is used to compile - would the >> > tomcat distro work in JDK1.6 if dbcp is compiled with 1.5 ? >> >> Yes it does. To be more accurate, I haven't seen any issues using the >> re-packaged DBCP on 1.6. >> Well, of course, if you try and use any of the new JDBC-4 methods on Objects returned by dbcp, then expect your app to explode :). But if you just use JDBC-3 methods or below, then it should work fine. >> >> > In any case - it kind of sucks to not be able to build following the >> > instructions ( ant download, ant ) - I didn't find any ref that JDK1.6 >> > is not supported for build. >> >> Correct. >> >> If you want to fix this you could always port the DBCP build fixes from >> commons. >> > > This isssue is being tracked as DBCP-191. Comments, suggestions, > patches are welcome on the ticket or on commons-dev. Opinions on JDK > support levels/branching from tomcat perspective would be appreciated. > *If* dbcp had been built around a Factory model (e.g. BasicDataSource was a package level class instead of being public), then BasicDataSource could be made abstract with a BasicDataSource3 class (that doesn't implement anything other than constructors) and a BasicDataSource4 class that implements JDBC-4. Then the BasicDataSourceFactory could determine at runtime which implementation to send back, with exclude statements on BasicDataSource4 if compiled on a Java-5 or lower system. This is generally the model used in Tomcat for JDK changes (the best example is the JSSE support in Tomcat 5.5.x and below, but used other places as well). But Tomcat has the advantage that almost nobody references its internal classes directly :). > Phil - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Bug report for Tomcat 3 [2008/03/23]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=Critical REG=Regression MAJ=Major | | | | MIN=Minor NOR=NormalENH=Enhancement TRV=Trivial | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | | 2350|Ver|Nor|2001-06-27|ServletConfig.getInitParameter() requires url-patt| | 6488|Ver|Maj|2002-02-15|Error: 304. Apparent bug in default ErrorHandler c| | 9737|Ver|Nor|2002-06-10|ArrayIndexOutOfBoundsException when sending just p| +-+---+---+--+--+ | Total3 bugs | +---+ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Bug report for Watchdog [2008/03/23]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=Critical REG=Regression MAJ=Major | | | | MIN=Minor NOR=NormalENH=Enhancement TRV=Trivial | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | | 278|Unc|Nor|2000-12-04|Bug in GetParameterValuesTestServlet.java file Bug| | 279|Unc|Nor|2000-12-04|Logical Error in GetParameterValuesTestServlet Bug| | 469|Unc|Nor|2001-01-17|in example-taglib.tld "urn" should be "uri" BugRat| | 470|Unc|Nor|2001-01-17|FAIL positiveForward.jsp and positiveInclude.jsp B| | 9634|New|Enh|2002-06-05|No tests exist for ServletContext.getResourcePaths| |10703|New|Enh|2002-07-11|Need to test getRequestURI after RequestDispatcher| |11336|New|Enh|2002-07-31|Test wrapped path methods with RD.foward()| |11663|New|Maj|2002-08-13|JSP precompile tests rely on Jasper specific behav| |11664|New|Maj|2002-08-13|A sweep is needed of all Watchdog 4.0 tag librarie| |11665|New|Maj|2002-08-13|ServletToJSPErrorPageTest and ServletToServletErro| |11666|New|Maj|2002-08-13|SetBufferSize_1TestServlet is invalid.| |14004|New|Maj|2002-10-28|Incorrent behaviour of all attribute-related lifec| |15504|New|Nor|2002-12-18|JSP positiveGetValues test relies on order preserv| |24649|New|Nor|2003-11-12|getRemoteHost fails when agent has uppercase chara| |29398|New|Nor|2004-06-04|Update site and note current status | +-+---+---+--+--+ | Total 15 bugs | +---+ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Bug report for Tomcat 5 [2008/03/23]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=Critical REG=Regression MAJ=Major | | | | MIN=Minor NOR=NormalENH=Enhancement TRV=Trivial | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | |27122|Opn|Enh|2004-02-20|IE plugins cannot access components through Tomcat| |28039|Opn|Enh|2004-03-30|Cluster Support for SingleSignOn | |29160|Ver|Enh|2004-05-23|precompile problem: _jspx_meth_* (javax.servlet.js| |29494|Inf|Enh|2004-06-10|No way to set PATH when running as a service on Wi| |29936|Opn|Blk|2004-07-06|XML parser loading problems by container | |30241|Ver|Enh|2004-07-21|Enhance build script to use branch argument when c| |31257|Opn|Cri|2004-09-16|java.endorsed.dirs is not used when JSP compilatio| |33262|Inf|Enh|2005-01-27|Service Manager autostart should check for adminis| |33453|Opn|Enh|2005-02-08|Jasper should recompile JSP files whose datestamps| |33650|Inf|Enh|2005-02-19|Jasper performance for multiple files processing | |33671|Opn|Enh|2005-02-21|Manual Windows service installation with custom na| |34526|Opn|Nor|2005-04-19|Truncated content in decompressed requests from mo| |34801|New|Enh|2005-05-08|PATCH: CGIServlet does not terminate child after a| |34805|Ass|Enh|2005-05-08|warn about invalid security constraint url pattern| |34868|Ass|Enh|2005-05-11|allow to register a trust store for a session that| |35054|Inf|Enh|2005-05-25|warn if appBase is not existing as a File or direc| |35869|Inf|Enh|2005-07-26|Can't run as a service on Windows Server 2003 64-B| |35959|Opn|Enh|2005-08-01|mod_jk not independant of UseCanonicalName| |36133|Inf|Enh|2005-08-10|Support JSS SSL implementation| |36169|New|Enh|2005-08-12|[PATCH] Enable chunked encoding for requests in II| |36362|New|Enh|2005-08-25|missing check for Java reserved keywords in tag fi| |36569|Inf|Enh|2005-09-09|Redirects produce illegal URL's | |36837|Inf|Enh|2005-09-28|Looking for ProxyHandler implementation of Http re| |36922|Inf|Enh|2005-10-04|setup.sh file mis-advertised and missing | |36923|New|Nor|2005-10-05|Deactivated EL expressions are not parsed for jsp | |37018|Ass|Enh|2005-10-11|Document how to use tomcat-SSL with a pkcs11 token| |37084|Opn|Reg|2005-10-14|JspC from ant fails on JSPs that use custom taglib| |37334|Inf|Enh|2005-11-02|Realm digest property not aligned with the adminis| |37449|Opn|Enh|2005-11-10|Two UserDatabaseRealm break manager user | |37485|Inf|Enh|2005-11-14|I'd like to run init SQL after JDBC Connection cre| |37498|Inf|Nor|2005-11-14|[PATCH] NPE in org.apache.catalina.core.ContainerB| |37515|Inf|Nor|2005-11-15|smap not generated by JspC when used from Ant for | |37627|Opn|Nor|2005-11-24|Slow and incomplete dynamic content generation aft| |37785|Inf|Nor|2005-12-05|Changing startup type via Tomcat Monitor does not | |37794|Opn|Nor|2005-12-05|getParameter() fails on POST with transfer-encodin| |37797|Inf|Maj|2005-12-05|Configure Tomcat utility truncates classpath to 96| |37822|Opn|Nor|2005-12-07|WebappClassLoader interfering with Catalina core c| |37847|Ass|Enh|2005-12-09|Allow User To Optionally Specify Catalina Output F| |37869|Opn|Nor|2005-12-12|Cannot obtain client certificate with SSL / client| |37918|Inf|Nor|2005-12-15|EL cannot find valid getter from object when using| |37984|New|Nor|2005-12-21|JNDIRealm.java not able to handle MD5 password| |38046|Ass|Reg|2005-12-27|apache-tomcat-5.5.14-deployer doesn't work (Illega| |38197|Opn|Maj|2006-01-09|taglib pool bug when tag is used with jsp:attribut| |38216|Inf|Enh|2006-01-10|Extend Jmxproxy to allow call of MBean Operations | |38268|Inf|Enh|2006-01-13|User friendly: Need submit button on adding/deleti| |38352|Inf|Nor|2006-01-22|Additional Entries for Default catalina.policy fil| |38360|Inf|Enh|2006-01-24|Domain for session cookies| |38367|Inf|Nor|2006-01-24|Executing any Catalina Ant task results in an exce| |38372|Inf|Cri|2006-01-25|tcnative-1.dll response overflow corruption, parti| |38427|Inf|Nor|2006-01-27|ServletContextListener Notified Multiple Times Whe| |38483|Inf|Nor|2006-02-01|access log valve uses simpledateformat in tread-un| |38484|
Bug report for Tomcat 4 [2008/03/23]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=Critical REG=Regression MAJ=Major | | | | MIN=Minor NOR=NormalENH=Enhancement TRV=Trivial | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | | 3839|Opn|Enh|2001-09-26|Problem bookmarking login page| | 4227|Opn|Enh|2001-10-17|Invalid CGI path | | 5329|New|Enh|2001-12-08|NT Service exits startup before Tomcat is finished| | 5795|New|Enh|2002-01-10|Catalina Shutdown relies on localhost causing prob| | 5829|New|Enh|2002-01-13|StandardManager needs to cope with sessions throwi| | 5985|New|Enh|2002-01-23|Tomcat should perform a more restrictive validatio| | 6600|Opn|Enh|2002-02-20|enodeURL adds 'jsession' when 'isRequestedSessionI| | 6614|New|Enh|2002-02-21|Have Bootstrap and StandardClassLoader use the sam| | 6671|New|Enh|2002-02-25|Simple custom tag example uses old declaration sty| | 7043|New|Enh|2002-03-12|database user and password for JDBC Based Store | | 7374|New|Enh|2002-03-22|Apache Tomcat/4.0.1 message on standard output| | 7676|New|Enh|2002-04-02|Allow name property to use match experssions in without className in server.xml produces N| |11069|Opn|Enh|2002-07-23|Tomcat not flag error if tld is outside of /WEB-IN| |11129|New|Enh|2002-07-24|New valve for putting the sessionIDs in the reques| |11248|New|Enh|2002-07-29|DefaultServlet doesn't send expires header| |11754|Opn|Enh|2002-08-15|Synchronous shutdown script - shutdown.sh should w| |12069|New|Enh|2002-08-27|Creation of more HttpSession objects for one previ| |12428|Opn|Enh|2002-09-09|request.getUserPrincipal(): Misinterpretation of s| |12658|New|Enh|2002-09-15|a proxy host and port at the element level | |12766|New|Enh|2002-09-18|Tomcat should use tld files in /WEB-INF/ over vers| |13309|Opn|Enh|2002-10-04|Catalina calls System.exit() | |13634|New|Enh|2002-10-15|Allowing system properties to be substituted in co| |13689|Opn|Enh|2002-10-16|Classloader paths for 'Common' classes and librari| |13731|New|Enh|2002-10-17|Final request, response, session and other variabl| |13941|New|Enh|2002-10-24|reload is VERY slow | |13965|New|Enh|2002-10-25|Catalina.sh correction request for Tru64 Unix | |14097|New|Enh|2002-10-30|hardcoded registry value for vm lets tomcat servic| |14416|New|Enh|2002-11-10|blank tag name in TLD cause NullPointerException | |14635|New|Enh|2002-11-18|Should be possible not to have -MM-DD in log f| |14766|New|Enh|2002-11-22|Redirect Vavle| |14993|New|Enh|2002-12-02|Possible obselete synchronized declaration| |15115|New|Enh|2002-12-05|correct docs... XML parser *cannot* be overridden | |15417|Opn|Enh|2002-12-16|Add port for forced compilation of JSP pages | |15688|New|Enh|2002-12-27|full-qualified names instead of imports | |15941|New|Enh|2003-01-10|Expose rootCause exceptions at deeper levels | |16294|New|Enh|2003-01-21|Configurable URL Decoding.| |16357|New|Enh|2003-01-23|"connection timeout reached" | |16531|New|Enh|2003-01-29|Updating already deployed ".war" files in a single| |16579|New|Enh|2003-01-30|documentation page layout/style breaks wrapping to| |16596|New|Enh|2003-01-30|option for disabling log rotation | |17070|New|Enh|2003-02-14|The Catalina Ant tasks do not allow for 'reusable'| |17146|New|Enh|2003-02-18|Simplify build.xml using