You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/06/02 07:46:46 UTC

svn commit: r179518 - in /maven/maven-1/plugins/trunk/xdoc: plugin.jelly src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java src/main/org/apache/maven/xdoc/XdocTagLibrary.java

Author: brett
Date: Wed Jun  1 22:46:45 2005
New Revision: 179518

URL: http://svn.apache.org/viewcvs?rev=179518&view=rev
Log:
move classloader tags into plugin so it can be used with maven 1.0

Added:
    maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java
      - copied, changed from r179169, maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/GrabClassLoaderTag.java
    maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java
      - copied, changed from r179169, maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/UnGrabClassLoaderTag.java
    maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java   (with props)
Modified:
    maven/maven-1/plugins/trunk/xdoc/plugin.jelly

Modified: maven/maven-1/plugins/trunk/xdoc/plugin.jelly
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/xdoc/plugin.jelly?rev=179518&r1=179517&r2=179518&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/xdoc/plugin.jelly (original)
+++ maven/maven-1/plugins/trunk/xdoc/plugin.jelly Wed Jun  1 22:46:45 2005
@@ -29,7 +29,8 @@
   xmlns:velocity="jelly:velocity"
   xmlns:ant="jelly:ant"
   xmlns:fmt="jelly:fmt"
-  xmlns:doc="doc">
+  xmlns:doc="doc"
+  xmlns:xdoc="jelly:org.apache.maven.xdoc.XdocTagLibrary">
 
   <j:new var="reports" className="java.util.ArrayList"/>
 
@@ -350,10 +351,7 @@
       <fmt:setBundle basename="plugin-resources/templates/templates" var="msg"/>
       <!-- User bundle -->
       <!-- Goal grabClassLoader should be call first -->
-      <maven:grabClassLoader resource="${maven.xdoc.bundle.src}"/>
-<!-- Failed
-      <doc:grabClassLoader resource="${maven.xdoc.bundle.src}"/>
--->
+      <xdoc:grabClassLoader resource="${maven.xdoc.bundle.src}"/>
       <fmt:setBundle basename="${maven.xdoc.bundle}" var="myMsg"/>
 
       <!-- Echo information -->
@@ -539,40 +537,6 @@
         <j:arg type="java.lang.String" value=" .,;!?/'\()[]{}+*°" useContextClassLoader="true"/>
         <j:arg type="java.lang.String" value="__________________" useContextClassLoader="true"/>
      </j:invokeStatic>${escapedtoken}</define:tag>
-
-      <!--
-        Grab the existing classloader
-        Create a new classloader that inherits the current one
-        Add URL to the classloader
-          
-        @resource
-        -->
-    <define:tag name="grabClassLoader">
-      <maven:param-check value="${resource}" fail="true" message="'resource' must be specified"/>
-        
-      <util:file var="dirResource" name="${resource}" />
-      <j:set var="currentClassLoader" value="${context.getClassLoader()}"/>
-      <log:debug>Start to grab the current class loader ${currentClassLoader}</log:debug>
-
-      <j:set var="dummy">${currentClassLoader.addURL(dirResource.toURL())}</j:set>
-
-      <j:new className="com.werken.forehead.ForeheadClassLoader" var="foreheadClassLoader">
-          <j:arg value="${currentClassLoader}" />
-          <j:arg value="${currentClassLoader.getName()}_TEMP" />
-      </j:new>
-      <j:set var="dummy">${context.setClassLoader(foreheadClassLoader)}</j:set>
-    </define:tag>
-    
-      <!--
-           Returns the old classloader
-        -->
-    <define:tag name="unGrabClassLoader">
-      <maven:param-check value="${foreheadClassLoader}" fail="true" message="Please call xdoc:grabClassLoader first"/>
-
-      <j:set var="currentClassLoader" value="${context.getClassLoader()}"/>
-      <log:debug>Start to ungrab the current class loader ${currentClassLoader}</log:debug>
-      <j:set var="dummy">${context.setClassLoader(currentClassLoader.getParent())}</j:set>
-    </define:tag>
   </define:taglib>
 
   <!-- ================================================================== -->
@@ -996,10 +960,7 @@
     <attainGoal name="xdoc:copy-resources"/>
     <attainGoal name="xdoc:copy-user-resources"/>
     <attainGoal name="xdoc:jelly-transform"/>
-    <maven:unGrabClassLoader/>
-<!-- Failed
-    <doc:unGrabClassLoader/>
--->
+    <xdoc:unGrabClassLoader/>
   </goal>
 
   <!-- ================================================================== -->

Copied: maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java (from r179169, maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/GrabClassLoaderTag.java)
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java?p2=maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java&p1=maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/GrabClassLoaderTag.java&r1=179169&r2=179518&rev=179518&view=diff
==============================================================================
--- maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/GrabClassLoaderTag.java (original)
+++ maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/GrabClassLoaderTag.java Wed Jun  1 22:46:45 2005
@@ -1,4 +1,4 @@
-package org.apache.maven.jelly.tags.maven;
+package org.apache.maven.xdoc;
 
 /* ====================================================================
  *   Copyright 2001-2004 The Apache Software Foundation.
@@ -22,8 +22,8 @@
 
 import org.apache.commons.jelly.JellyTagException;
 import org.apache.commons.jelly.MissingAttributeException;
+import org.apache.commons.jelly.TagSupport;
 import org.apache.commons.jelly.XMLOutput;
-import org.apache.maven.jelly.tags.BaseTagSupport;
 
 import com.werken.forehead.ForeheadClassLoader;
 
@@ -33,7 +33,7 @@
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version 1.0
  */
-public class GrabClassLoaderTag extends BaseTagSupport {
+public class GrabClassLoaderTag extends TagSupport {
     /** Resource to include in the Maven context. */
     private String resource;
     
@@ -41,15 +41,13 @@
      * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
      */
     public void doTag(XMLOutput arg0) throws MissingAttributeException, JellyTagException {
-        if (getMavenContext() == null) {
+        if (getContext() == null) {
             throw new JellyTagException("The current MavenContext is null!");
         }
         
-        checkAttribute(this.resource, "include");
-
         ForeheadClassLoader currentClassLoader = null;
         try {
-            currentClassLoader = (ForeheadClassLoader) getMavenContext().getClassLoader();
+            currentClassLoader = (ForeheadClassLoader) getContext().getClassLoader();
         } catch (ClassCastException e) {
             throw new JellyTagException("The current classloader in the MavenContext is not an instance of ForeheadClassLoader");
         }
@@ -67,7 +65,7 @@
         }
 
         ForeheadClassLoader newClassLoader = new ForeheadClassLoader(currentClassLoader, currentClassLoader.getName() + "_TEMP");
-        getMavenContext().setClassLoader(newClassLoader);
+        getContext().setClassLoader(newClassLoader);
     }
     
     /**

Copied: maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java (from r179169, maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/UnGrabClassLoaderTag.java)
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java?p2=maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java&p1=maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/UnGrabClassLoaderTag.java&r1=179169&r2=179518&rev=179518&view=diff
==============================================================================
--- maven/maven-1/core/trunk/src/java/org/apache/maven/jelly/tags/maven/UnGrabClassLoaderTag.java (original)
+++ maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/UnGrabClassLoaderTag.java Wed Jun  1 22:46:45 2005
@@ -1,4 +1,4 @@
-package org.apache.maven.jelly.tags.maven;
+package org.apache.maven.xdoc;
 
 /* ====================================================================
  *   Copyright 2001-2004 The Apache Software Foundation.
@@ -19,8 +19,8 @@
 
 import org.apache.commons.jelly.JellyTagException;
 import org.apache.commons.jelly.MissingAttributeException;
+import org.apache.commons.jelly.TagSupport;
 import org.apache.commons.jelly.XMLOutput;
-import org.apache.maven.jelly.tags.BaseTagSupport;
 
 import com.werken.forehead.ForeheadClassLoader;
 
@@ -32,18 +32,18 @@
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
  * @version 1.0
  */
-public class UnGrabClassLoaderTag extends BaseTagSupport {
+public class UnGrabClassLoaderTag extends TagSupport {
     /* 
      * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
      */
     public void doTag(XMLOutput arg0) throws MissingAttributeException, JellyTagException {
-        if (getMavenContext() == null) {
+        if (getContext() == null) {
             throw new JellyTagException("The current MavenContext is null!");
         }
         
         ForeheadClassLoader currentClassLoader = null;
         try {
-            currentClassLoader = (ForeheadClassLoader) getMavenContext().getClassLoader();
+            currentClassLoader = (ForeheadClassLoader) getContext().getClassLoader();
         } catch (ClassCastException e) {
             throw new JellyTagException("The current classloader in the MavenContext is not an instance of ForeheadClassLoader");
         }
@@ -53,6 +53,6 @@
         }
         
         ClassLoader oldClassLoader = currentClassLoader.getParent();
-        getMavenContext().setClassLoader(oldClassLoader);
+        getContext().setClassLoader(oldClassLoader);
     }
 }

Added: maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java?rev=179518&view=auto
==============================================================================
--- maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java (added)
+++ maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java Wed Jun  1 22:46:45 2005
@@ -0,0 +1,39 @@
+package org.apache.maven.xdoc;
+
+/* ====================================================================
+ *   Copyright 2001-2004 The Apache Software Foundation.
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ * ====================================================================
+ */
+
+import org.apache.commons.jelly.TagLibrary;
+
+/**
+ * MavenSession tag library for use in Jelly scripts.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class XdocTagLibrary extends TagLibrary
+{
+    /**
+     * Create an instance of the {@link MavenTagLibrary}, registering related
+     * tag libraries
+     */
+    public XdocTagLibrary()
+    {
+        registerTag( "grabClassLoader", GrabClassLoaderTag.class);
+        registerTag( "unGrabClassLoader", UnGrabClassLoaderTag.class);
+    }
+}

Propchange: maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-1/plugins/trunk/xdoc/src/main/org/apache/maven/xdoc/XdocTagLibrary.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org