[jboss-svn-commits] JBL Code SVN: r19751 - in labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt: resolve and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 29 02:03:36 EDT 2008
Author: steve.ebersole at jboss.com
Date: 2008-04-29 02:03:36 -0400 (Tue, 29 Apr 2008)
New Revision: 19751
Added:
labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/resolve/ClasspathResolver.java
Modified:
labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/TransformerBuilder.java
Log:
MPJDOCBOOK-8 : classpath:/ style URI resolution
Modified: labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/TransformerBuilder.java
===================================================================
--- labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/TransformerBuilder.java 2008-04-29 05:58:10 UTC (rev 19750)
+++ labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/TransformerBuilder.java 2008-04-29 06:03:36 UTC (rev 19751)
@@ -30,6 +30,7 @@
import org.jboss.jdocbook.render.format.FormatPlan;
import org.jboss.jdocbook.util.NoOpWriter;
import org.jboss.jdocbook.util.ResourceHelper;
+import org.jboss.jdocbook.xslt.resolve.ClasspathResolver;
import org.jboss.jdocbook.xslt.resolve.CurrentVersionResolver;
import org.jboss.jdocbook.xslt.resolve.ExplicitUrnResolver;
import org.jboss.jdocbook.xslt.resolve.RelativeJarUriResolver;
@@ -140,6 +141,7 @@
resolverChain.addResolver( new VersionResolver( options.getDocbookVersion() ) );
}
resolverChain.addResolver( new RelativeJarUriResolver() );
+ resolverChain.addResolver( new ClasspathResolver() );
resolverChain.addResolver( options.getCatalogResolver() );
}
}
\ No newline at end of file
Added: labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/resolve/ClasspathResolver.java
===================================================================
--- labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/resolve/ClasspathResolver.java (rev 0)
+++ labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/jdocbook/xslt/resolve/ClasspathResolver.java 2008-04-29 06:03:36 UTC (rev 19751)
@@ -0,0 +1,67 @@
+/*
+ * jDocBook, processing of DocBook sources as a Maven plugin
+ *
+ * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ *
+ */
+package org.jboss.jdocbook.xslt.resolve;
+
+import java.net.URL;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamSource;
+
+/**
+ *
+ * Resolves classpath references from the given classloader using classpath:/
+ * as the protocol handler
+ *
+ * @author Pete Muir
+ */
+public class ClasspathResolver implements URIResolver {
+ private final ClassLoader classLoader;
+
+ public ClasspathResolver(ClassLoader classLoader) {
+ this.classLoader = classLoader;
+ }
+
+ public ClasspathResolver() {
+ this( Thread.currentThread().getContextClassLoader() );
+ }
+
+ public Source resolve(String href, String base) throws TransformerException {
+ // href would need to start with classpath:
+ if ( !href.startsWith( "classpath:" ) ) {
+ return null;
+ }
+
+ try {
+ URL url = classLoader.getResource( href.substring(10) );
+ return new StreamSource( url.openStream(), url.toExternalForm() );
+ }
+ catch ( Throwable t ) {
+ return null;
+ }
+ }
+
+}
More information about the jboss-svn-commits
mailing list