1 package org.apache.maven.xdoc;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import org.apache.commons.jelly.JellyTagException;
22 import org.apache.commons.jelly.MissingAttributeException;
23 import org.apache.commons.jelly.TagSupport;
24 import org.apache.commons.jelly.XMLOutput;
25
26 import com.werken.forehead.ForeheadClassLoader;
27
28 /**
29 * Return to the old classloader
30 *
31 * @see GrabClassLoaderTag
32 *
33 * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
34 * @version 1.0
35 */
36 public class UnGrabClassLoaderTag extends TagSupport {
37
38
39
40 public void doTag(XMLOutput arg0) throws MissingAttributeException, JellyTagException {
41 if (getContext() == null) {
42 throw new JellyTagException("The current MavenContext is null!");
43 }
44
45 ForeheadClassLoader currentClassLoader = null;
46 try {
47 currentClassLoader = (ForeheadClassLoader) getContext().getClassLoader();
48 } catch (ClassCastException e) {
49 throw new JellyTagException("The current classloader in the MavenContext is not an instance of ForeheadClassLoader");
50 }
51
52 if (currentClassLoader == null) {
53 throw new JellyTagException("No classloader found in the current MavenContext");
54 }
55
56 ClassLoader oldClassLoader = currentClassLoader.getParent();
57 getContext().setClassLoader(oldClassLoader);
58 }
59 }