|
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html lang="en">
- <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
- <head>
- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Apache Ant - Antlib Class Loaders</title>
- <link type="text/css" href="../../page.css" rel="stylesheet">
- <meta name="author" content="Antoine Levy-Lambert">
- <meta name="email" content="antoine@apache.org">
- </head>
-
- <body>
- <p class="navpath">
- <script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
- </p>
-
- <div class="logobar">
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td>
- <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td>
- <td align="right">
- <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
- <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
- <tr>
- <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
- <td nowrap="nowrap" class="searchcaption">
- <input name="q" type="hidden">
- <input size="15" id="query" type="text">
- <img height="1" width="5" alt="" src="../../images/spacer.gif">
- <input name="Search" value="Search" type="submit">
- <br>
- the Apache Ant site
- </td>
- <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td>
- <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
- <td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td>
- </tr>
- </table>
- </form>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="tab">
- <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
- <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td>
- </tr>
- </table>
- </td>
- <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
- <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="bluebar"></div>
-
- <div class="menucontainer">
- <div class="menu">
- <ul>
- </ul>
- </div>
- <img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif">
- <img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif">
- </div>
- <div class="lightbluebar"> </div>
- <div class="main">
- <div class="content">
- <h1 class="title">Antlib Class Loaders</h1>
- <h3 class="section">
- <a name="Jose Alberto Fernandez"></a>
- Jose Alberto Fernandez
- </h3>
- <p>
- Let me first say that this feature appeared by the need to be able to say,
- </p>
- <pre class="code">
- <antlib name="A" classpathref="XYZ"/>
- <antlib name="B" classpathref="XYZ"/>
- </pre>
- <p>
- And being able to make sure that B and A use the same classLoader
- and therefore they can use each other components.
- </p>
- <p>
-
- My solution at the time was this idea of a named classloader that
- you could define using a classpath, and then tell your antlibs use
- this or that classloader, if you use the same classloader visibility
- is guaranteed.
- </p>
- <h3 class="section">
- <a name="Stefan Bodewig 23.04.2003 17:11"></a>
- Stefan Bodewig 23.04.2003 17:11
- </h3>
- <p>
-
- I understand that usecase (using the same class loader for 2 different antlibs)
- and think it's important. See Steve
- Loughran's comment on the .NET tasks wanting to have access to the
- datatypes defined in the cpptasks project for example.
- </p>
- <p>
-
- Take a look at what Costin had done to <taskdef> and <typedef> with
- the loaderref attribute. This has now (i.e. CVS HEAD) been
- generalized in ClasspathUtils, the infrastructure for named
- classloaders is there - at least the foundation for it.
- </p>
- <p>
-
- Stefan
- </p>
- <h3 class="section">
- <a name="Costin Manolache 29.04.2003 18:52"></a>
- Costin Manolache 29.04.2003 18:52
- </h3>
- <p>
- The main issue is how to enforce ordering to deal with dependencies
- between the antlibs.
- </p>
- <p>
- Or simply do not deal with dependencies, ie antlibs must not (yet)
- depend on on the other, except for the core ones.
- </p>
- <p>
- Using an unified class loader ( at least as default ) - like jboss is doing,
- or like JMX loading policy - has a lot of benefits. It also has some cases
- that are not well covered - so we'll probably need to deal with both
- "unified loader" and "loader hierarchy" cases.
- </p>
-
- </div>
- </div>
-
- <p class="copyright">
- Copyright © 2000-2003 The Apache Software Foundation. All rights reserved.
- <script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // -->
- </script>
- </p>
- </body>
- </html>
-
-
-
-
-
-
-
-
|