Statistics
| Revision:

svn-gvsig-desktop / tags / v1_9_Build_1245 / docs / Andami / andami-api / com / iver / andami / plugins / PluginClassLoader.html @ 40287

History | View | Annotate | Download (14 KB)

1 1935 vcaballero
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<!--NewPage-->
3
<HTML>
4
<HEAD>
5
<!-- Generated by javadoc (build 1.4.2_04) on Fri May 13 11:46:18 CEST 2005 -->
6
<TITLE>
7
PluginClassLoader
8
</TITLE>
9
10
<META NAME="keywords" CONTENT="com.iver.andami.plugins.PluginClassLoader class">
11
12
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
13
14
<SCRIPT type="text/javascript">
15
function windowTitle()
16
{
17
    parent.document.title="PluginClassLoader";
18
}
19
</SCRIPT>
20
21
</HEAD>
22
23
<BODY BGCOLOR="white" onload="windowTitle();">
24
25
26
<!-- ========= START OF TOP NAVBAR ======= -->
27
<A NAME="navbar_top"><!-- --></A>
28
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
29
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
30
<TR>
31
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
32
<A NAME="navbar_top_firstrow"><!-- --></A>
33
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
34
  <TR ALIGN="center" VALIGN="top">
35
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
36
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
37
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
38
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PluginClassLoader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
39
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
40
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
41
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
42
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
43
  </TR>
44
</TABLE>
45
</TD>
46
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
47
</EM>
48
</TD>
49
</TR>
50
51
<TR>
52
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
53
&nbsp;PREV CLASS&nbsp;
54
&nbsp;NEXT CLASS</FONT></TD>
55
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
56
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
57
&nbsp;<A HREF="PluginClassLoader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
58
&nbsp;<SCRIPT type="text/javascript">
59
  <!--
60
  if(window==top) {
61
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
62
  }
63
  //-->
64
</SCRIPT>
65
<NOSCRIPT>
66
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
67
</NOSCRIPT>
68
69
</FONT></TD>
70
</TR>
71
<TR>
72
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
73
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
74
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
75
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
76
</TR>
77
</TABLE>
78
<A NAME="skip-navbar_top"></A>
79
<!-- ========= END OF TOP NAVBAR ========= -->
80
81
<HR>
82
<!-- ======== START OF CLASS DATA ======== -->
83
<H2>
84
<FONT SIZE="-1">
85
com.iver.andami.plugins</FONT>
86
<BR>
87
Class PluginClassLoader</H2>
88
<PRE>
89
java.lang.Object
90
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.ClassLoader
91
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.security.SecureClassLoader
92
          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.net.URLClassLoader
93
              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.iver.andami.plugins.PluginClassLoader</B>
94
</PRE>
95
<HR>
96
<DL>
97
<DT>public class <B>PluginClassLoader</B><DT>extends java.net.URLClassLoader</DL>
98
99
<P>
100
Class loader que carga las clases pedidas por los plugins de manera que
101
 primero busca en el classpath, luego busca en el directorio del propio
102
 plugin en los jars especificados por el xml y en caso de no encontrar la
103
 clase pide al PluginClassLoaderManager la lista de plugins que pueden
104
 satisfacer la clase e intenta cargarlo con cada un de ellos hasta que lo
105
 consigue con uno.
106
<P>
107
108
<P>
109
<DL>
110
<DT><B>Author:</B></DT>
111
  <DD>Fernando Gonz?lez Cort?s</DD>
112
</DL>
113
<HR>
114
115
<P>
116
<!-- ======== NESTED CLASS SUMMARY ======== -->
117
118
119
<!-- =========== FIELD SUMMARY =========== -->
120
121
122
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
123
124
<A NAME="constructor_summary"><!-- --></A>
125
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
126
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
127
<TD COLSPAN=2><FONT SIZE="+2">
128
<B>Constructor Summary</B></FONT></TD>
129
</TR>
130
<TR BGCOLOR="white" CLASS="TableRowColor">
131
<TD><CODE><B><A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html#PluginClassLoader(java.net.URL[], java.lang.String, java.lang.ClassLoader, com.iver.andami.plugins.PluginClassLoader[])">PluginClassLoader</A></B>(java.net.URL[]&nbsp;jars,
132
                  java.lang.String&nbsp;baseDir,
133
                  java.lang.ClassLoader&nbsp;cl,
134
                  <A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html" title="class in com.iver.andami.plugins">PluginClassLoader</A>[]&nbsp;pluginLoaders)</CODE>
135
136
<BR>
137
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new PluginClassLoader object.</TD>
138
</TR>
139
</TABLE>
140
&nbsp;
141
<!-- ========== METHOD SUMMARY =========== -->
142
143
<A NAME="method_summary"><!-- --></A>
144
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
145
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
146
<TD COLSPAN=2><FONT SIZE="+2">
147
<B>Method Summary</B></FONT></TD>
148
</TR>
149
<TR BGCOLOR="white" CLASS="TableRowColor">
150
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
151
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
152
<TD><CODE><B><A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html#getBaseDir()">getBaseDir</A></B>()</CODE>
153
154
<BR>
155
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DOCUMENT ME!</TD>
156
</TR>
157
<TR BGCOLOR="white" CLASS="TableRowColor">
158
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
159
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
160
<TD><CODE><B><A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html#getPluginName()">getPluginName</A></B>()</CODE>
161
162
<BR>
163
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Devuelve el nombre del directorio del plugin</TD>
164
</TR>
165
<TR BGCOLOR="white" CLASS="TableRowColor">
166
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
167
<CODE>&nbsp;java.net.URL</CODE></FONT></TD>
168
<TD><CODE><B><A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html#getResource(java.lang.String)">getResource</A></B>(java.lang.String&nbsp;res)</CODE>
169
170
<BR>
171
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtiene los recursos tomando como la raiz el directorio base del plugin.
172
 </TD>
173
</TR>
174
</TABLE>
175
&nbsp;<A NAME="methods_inherited_from_class_java.net.URLClassLoader"><!-- --></A>
176
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
177
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
178
<TD><B>Methods inherited from class java.net.URLClassLoader</B></TD>
179
</TR>
180
<TR BGCOLOR="white" CLASS="TableRowColor">
181
<TD><CODE>findResource, findResources, getURLs, newInstance, newInstance</CODE></TD>
182
</TR>
183
</TABLE>
184
&nbsp;<A NAME="methods_inherited_from_class_java.lang.ClassLoader"><!-- --></A>
185
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
186
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
187
<TD><B>Methods inherited from class java.lang.ClassLoader</B></TD>
188
</TR>
189
<TR BGCOLOR="white" CLASS="TableRowColor">
190
<TD><CODE>clearAssertionStatus, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus</CODE></TD>
191
</TR>
192
</TABLE>
193
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
194
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
195
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
196
<TD><B>Methods inherited from class java.lang.Object</B></TD>
197
</TR>
198
<TR BGCOLOR="white" CLASS="TableRowColor">
199
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
200
</TR>
201
</TABLE>
202
&nbsp;
203
<P>
204
205
<!-- ============ FIELD DETAIL =========== -->
206
207
208
<!-- ========= CONSTRUCTOR DETAIL ======== -->
209
210
<A NAME="constructor_detail"><!-- --></A>
211
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
212
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
213
<TD COLSPAN=1><FONT SIZE="+2">
214
<B>Constructor Detail</B></FONT></TD>
215
</TR>
216
</TABLE>
217
218
<A NAME="PluginClassLoader(java.net.URL[], java.lang.String, java.lang.ClassLoader, com.iver.andami.plugins.PluginClassLoader[])"><!-- --></A><H3>
219
PluginClassLoader</H3>
220
<PRE>
221
public <B>PluginClassLoader</B>(java.net.URL[]&nbsp;jars,
222
                         java.lang.String&nbsp;baseDir,
223
                         java.lang.ClassLoader&nbsp;cl,
224
                         <A HREF="../../../../com/iver/andami/plugins/PluginClassLoader.html" title="class in com.iver.andami.plugins">PluginClassLoader</A>[]&nbsp;pluginLoaders)
225
                  throws java.io.IOException</PRE>
226
<DL>
227
<DD>Creates a new PluginClassLoader object.
228
<P>
229
<DT><B>Parameters:</B><DD><CODE>jars</CODE> - Array con la ruta de los jars en los que buscar? las clases
230
        el plugin<DD><CODE>baseDir</CODE> - Directorio base del plugin que se carga. Es en directorio
231
        donde se buscan los resources en el m?todo getResources<DD><CODE>cl</CODE> - ClassLoader padre del classLoader, al que se le pedir?
232
        resolver las clases antes de utilizar el algoritmo propio<DD><CODE>pluginLoaders</CODE> - DOCUMENT ME!
233
<DT><B>Throws:</B>
234
<DD><CODE>java.io.IOException</CODE>
235
<DD><CODE>java.io.IOException</CODE></DL>
236
237
<!-- ============ METHOD DETAIL ========== -->
238
239
<A NAME="method_detail"><!-- --></A>
240
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
241
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
242
<TD COLSPAN=1><FONT SIZE="+2">
243
<B>Method Detail</B></FONT></TD>
244
</TR>
245
</TABLE>
246
247
<A NAME="getResource(java.lang.String)"><!-- --></A><H3>
248
getResource</H3>
249
<PRE>
250
public java.net.URL <B>getResource</B>(java.lang.String&nbsp;res)</PRE>
251
<DL>
252
<DD>Obtiene los recursos tomando como la raiz el directorio base del plugin.
253
 Si no se encuentra el recurso ah? se invoca a getResource del
254
 classloader padre, que buscar? en el jar de la aplicaci?n. Si ah?
255
 tampoco se encuentra nada se devolver? null.
256
<P>
257
<DD><DL>
258
<DT><B>Parameters:</B><DD><CODE>res</CODE> - Nombre del recurso
259
<DT><B>Returns:</B><DD>URL del recurso o null si no se pudo encontrar</DL>
260
</DD>
261
</DL>
262
<HR>
263
264
<A NAME="getPluginName()"><!-- --></A><H3>
265
getPluginName</H3>
266
<PRE>
267
public java.lang.String <B>getPluginName</B>()</PRE>
268
<DL>
269
<DD>Devuelve el nombre del directorio del plugin
270
<P>
271
<DD><DL>
272
273
<DT><B>Returns:</B><DD></DL>
274
</DD>
275
</DL>
276
<HR>
277
278
<A NAME="getBaseDir()"><!-- --></A><H3>
279
getBaseDir</H3>
280
<PRE>
281
public java.lang.String <B>getBaseDir</B>()</PRE>
282
<DL>
283
<DD>DOCUMENT ME!
284
<P>
285
<DD><DL>
286
287
<DT><B>Returns:</B><DD>Returns the baseDir.</DL>
288
</DD>
289
</DL>
290
<!-- ========= END OF CLASS DATA ========= -->
291
<HR>
292
293
294
<!-- ======= START OF BOTTOM NAVBAR ====== -->
295
<A NAME="navbar_bottom"><!-- --></A>
296
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
297
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
298
<TR>
299
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
300
<A NAME="navbar_bottom_firstrow"><!-- --></A>
301
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
302
  <TR ALIGN="center" VALIGN="top">
303
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
304
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
305
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
306
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PluginClassLoader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
307
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
308
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
309
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
310
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
311
  </TR>
312
</TABLE>
313
</TD>
314
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
315
</EM>
316
</TD>
317
</TR>
318
319
<TR>
320
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
321
&nbsp;PREV CLASS&nbsp;
322
&nbsp;NEXT CLASS</FONT></TD>
323
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
324
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
325
&nbsp;<A HREF="PluginClassLoader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
326
&nbsp;<SCRIPT type="text/javascript">
327
  <!--
328
  if(window==top) {
329
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
330
  }
331
  //-->
332
</SCRIPT>
333
<NOSCRIPT>
334
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
335
</NOSCRIPT>
336
337
</FONT></TD>
338
</TR>
339
<TR>
340
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
341
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
342
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
343
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
344
</TR>
345
</TABLE>
346
<A NAME="skip-navbar_bottom"></A>
347
<!-- ======== END OF BOTTOM NAVBAR ======= -->
348
349
<HR>
350
351
</BODY>
352
</HTML>