Styling update, added dependency dependency to pom, and added resolver class.
This commit is contained in:
		
							
								
								
									
										8
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -125,9 +125,15 @@ | |||||||
|             <groupId>com.rackspace.cloud.api</groupId> |             <groupId>com.rackspace.cloud.api</groupId> | ||||||
|             <artifactId>glossary</artifactId> |             <artifactId>glossary</artifactId> | ||||||
|             <version>1.0.0-SNAPSHOT</version> |             <version>1.0.0-SNAPSHOT</version> | ||||||
|             <scope>runtime</scope> |  | ||||||
|         </dependency> |         </dependency> | ||||||
|  |  | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.apache.maven.plugins</groupId> | ||||||
|  |             <artifactId>maven-dependency-plugin</artifactId> | ||||||
|  |             <version>2.3</version> | ||||||
|  |         </dependency> | ||||||
|  |  | ||||||
|  |  | ||||||
|         <dependency> |         <dependency> | ||||||
|             <groupId>junit</groupId> |             <groupId>junit</groupId> | ||||||
|             <artifactId>junit</artifactId> |             <artifactId>junit</artifactId> | ||||||
|   | |||||||
| @@ -0,0 +1,43 @@ | |||||||
|  | package com.rackspace.cloud.api.docs; | ||||||
|  |  | ||||||
|  | import javax.xml.transform.Source; | ||||||
|  | import javax.xml.transform.TransformerException; | ||||||
|  | import javax.xml.transform.URIResolver; | ||||||
|  | import javax.xml.transform.stream.StreamSource; | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.net.URL; | ||||||
|  | import java.util.regex.Matcher; | ||||||
|  | import java.util.regex.Pattern; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * User: sbrayman | ||||||
|  |  * Date: 10/19/11 | ||||||
|  |  */ | ||||||
|  | public class ResourceResolver implements URIResolver { | ||||||
|  |  | ||||||
|  |     private URIResolver originalResolver; | ||||||
|  |     private String type; | ||||||
|  |     private String exampleIri = "mvn://com.rackspace.cloud.api:glossary/glossary.xml"; | ||||||
|  |  | ||||||
|  |     public ResourceResolver(URIResolver original, String type) { | ||||||
|  |         this.originalResolver = original; | ||||||
|  |         this.type = type; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Source resolve(String href, String base) throws TransformerException { | ||||||
|  |  | ||||||
|  |         String filePath = exampleIri; | ||||||
|  |  | ||||||
|  |         URL url = this.getClass().getResource(filePath); | ||||||
|  |  | ||||||
|  |         if (url != null) { | ||||||
|  |             try { | ||||||
|  |                 return new StreamSource(url.openStream(), url.toExternalForm()); | ||||||
|  |             } catch (IOException ioe) { | ||||||
|  |                 throw new TransformerException("Can't resolve glossary link: " + href + "->" + filePath + ". Glossary missing in classpath?", ioe); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         System.err.println("This failed to match. " + href); | ||||||
|  |         return originalResolver.resolve(href, base); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -19,19 +19,25 @@ import javax.xml.transform.stream.StreamResult; | |||||||
|  |  | ||||||
| import javax.xml.parsers.DocumentBuilder; | import javax.xml.parsers.DocumentBuilder; | ||||||
| import javax.xml.parsers.DocumentBuilderFactory; | import javax.xml.parsers.DocumentBuilderFactory; | ||||||
|  |  | ||||||
| import org.w3c.dom.Document; | import org.w3c.dom.Document; | ||||||
|  |  | ||||||
| import javax.xml.transform.dom.DOMSource; | import javax.xml.transform.dom.DOMSource; | ||||||
| import javax.xml.transform.stream.StreamResult; | import javax.xml.transform.stream.StreamResult; | ||||||
|  |  | ||||||
| import org.xml.sax.EntityResolver; | import org.xml.sax.EntityResolver; | ||||||
| import org.xml.sax.InputSource; | import org.xml.sax.InputSource; | ||||||
| import org.xml.sax.SAXException; | import org.xml.sax.SAXException; | ||||||
|  |  | ||||||
| import java.io.StringReader; | import java.io.StringReader; | ||||||
|  |  | ||||||
| import org.apache.maven.plugin.MojoExecutionException; | import org.apache.maven.plugin.MojoExecutionException; | ||||||
| import com.agilejava.docbkx.maven.AbstractWebhelpMojo; | import com.agilejava.docbkx.maven.AbstractWebhelpMojo; | ||||||
|  |  | ||||||
| import com.agilejava.docbkx.maven.TransformerBuilder; | import com.agilejava.docbkx.maven.TransformerBuilder; | ||||||
|  |  | ||||||
| import javax.xml.transform.URIResolver; | import javax.xml.transform.URIResolver; | ||||||
|  |  | ||||||
| import com.rackspace.cloud.api.docs.DocBookResolver; | import com.rackspace.cloud.api.docs.DocBookResolver; | ||||||
|  |  | ||||||
| import com.agilejava.docbkx.maven.Parameter; | import com.agilejava.docbkx.maven.Parameter; | ||||||
| @@ -172,15 +178,15 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { | |||||||
|       */ |       */ | ||||||
|     private String socialIcons; |     private String socialIcons; | ||||||
|  |  | ||||||
|   /** |     /** | ||||||
|    * DOCUMENT ME! |      * DOCUMENT ME! | ||||||
|    * |      * | ||||||
|    * @param transformer DOCUMENT ME! |      * @param transformer    DOCUMENT ME! | ||||||
|    * @param sourceFilename DOCUMENT ME! |      * @param sourceFilename DOCUMENT ME! | ||||||
|    * @param targetFile DOCUMENT ME! |      * @param targetFile     DOCUMENT ME! | ||||||
|    */ |      */ | ||||||
|   public void adjustTransformer(Transformer transformer, String sourceFilename, File targetFile) { |     public void adjustTransformer(Transformer transformer, String sourceFilename, File targetFile) { | ||||||
|     super.adjustTransformer(transformer, sourceFilename, targetFile); |         super.adjustTransformer(transformer, sourceFilename, targetFile); | ||||||
|  |  | ||||||
|     if(glossaryUri != null){ |     if(glossaryUri != null){ | ||||||
| 	  transformer.setParameter("glossary.uri", glossaryUri); | 	  transformer.setParameter("glossary.uri", glossaryUri); | ||||||
| @@ -195,24 +201,24 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { | |||||||
| 	transformer.setParameter("use.disqus.id", useDisqusId); | 	transformer.setParameter("use.disqus.id", useDisqusId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if(useVersionForDisqus != null){ |         if (useVersionForDisqus != null) { | ||||||
| 	transformer.setParameter("use.version.for.disqus", useVersionForDisqus); |             transformer.setParameter("use.version.for.disqus", useVersionForDisqus); | ||||||
|     } |         } | ||||||
|     transformer.setParameter("project.build.directory", projectBuildDirectory); |         transformer.setParameter("project.build.directory", projectBuildDirectory); | ||||||
|     transformer.setParameter("branding", branding); |         transformer.setParameter("branding", branding); | ||||||
|     transformer.setParameter("enable.disqus", enableDisqus); |         transformer.setParameter("enable.disqus", enableDisqus); | ||||||
|     if(disqusShortname != null){ |         if (disqusShortname != null) { | ||||||
| 	transformer.setParameter("disqus.shortname", disqusShortname); |             transformer.setParameter("disqus.shortname", disqusShortname); | ||||||
|     } |         } | ||||||
|     if(enableGoogleAnalytics != null){ |         if (enableGoogleAnalytics != null) { | ||||||
| 	transformer.setParameter("enable.google.analytics",enableGoogleAnalytics); |             transformer.setParameter("enable.google.analytics", enableGoogleAnalytics); | ||||||
|     } |         } | ||||||
|     if(googleAnalyticsId != null){ |         if (googleAnalyticsId != null) { | ||||||
| 	transformer.setParameter("google.analytics.id",googleAnalyticsId); |             transformer.setParameter("google.analytics.id", googleAnalyticsId); | ||||||
|     } |         } | ||||||
|     if(pdfUrl != null){ |         if (pdfUrl != null) { | ||||||
| 	transformer.setParameter("pdf.url",pdfUrl); |             transformer.setParameter("pdf.url", pdfUrl); | ||||||
|     } |         } | ||||||
|  |  | ||||||
|     if(canonicalUrlBase != null){ |     if(canonicalUrlBase != null){ | ||||||
| 	transformer.setParameter("canonical.url.base",canonicalUrlBase); | 	transformer.setParameter("canonical.url.base",canonicalUrlBase); | ||||||
| @@ -239,35 +245,35 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { | |||||||
|    transformer.setParameter("source.directory",sourceDirectory); |    transformer.setParameter("source.directory",sourceDirectory); | ||||||
|    transformer.setParameter("compute.wadl.path.from.docbook.path",computeWadlPathFromDocbookPath); |    transformer.setParameter("compute.wadl.path.from.docbook.path",computeWadlPathFromDocbookPath); | ||||||
|  |  | ||||||
|   } |     } | ||||||
|  |  | ||||||
|     protected TransformerBuilder createTransformerBuilder(URIResolver resolver) { |     protected TransformerBuilder createTransformerBuilder(URIResolver resolver) { | ||||||
|         return super.createTransformerBuilder (new DocBookResolver (resolver, getType())); |         return super.createTransformerBuilder(new DocBookResolver(resolver, getType())); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     //Note for this to work, you need to have the customization layer in place. |     //Note for this to work, you need to have the customization layer in place. | ||||||
|     protected String getNonDefaultStylesheetLocation() { |     protected String getNonDefaultStylesheetLocation() { | ||||||
|       return "cloud/webhelp/profile-webhelp.xsl"; |         return "cloud/webhelp/profile-webhelp.xsl"; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void postProcessResult(File result) throws MojoExecutionException { |     public void postProcessResult(File result) throws MojoExecutionException { | ||||||
|  |  | ||||||
| 	super.postProcessResult(result); |         super.postProcessResult(result); | ||||||
|  |  | ||||||
| 	copyTemplate(result);	 |         copyTemplate(result); | ||||||
|  |  | ||||||
| 	transformFeed(result); |         transformFeed(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     protected void copyTemplate(File result) throws MojoExecutionException { |     protected void copyTemplate(File result) throws MojoExecutionException { | ||||||
|  |  | ||||||
|  	final File targetDirectory = result.getParentFile(); |         final File targetDirectory = result.getParentFile(); | ||||||
|  |  | ||||||
| 	com.rackspace.cloud.api.docs.FileUtils.extractJaredDirectory("content",WebHelpMojo.class,targetDirectory); |         com.rackspace.cloud.api.docs.FileUtils.extractJaredDirectory("content", WebHelpMojo.class, targetDirectory); | ||||||
| 	com.rackspace.cloud.api.docs.FileUtils.extractJaredDirectory("common",WebHelpMojo.class,targetDirectory); |         com.rackspace.cloud.api.docs.FileUtils.extractJaredDirectory("common", WebHelpMojo.class, targetDirectory); | ||||||
| 	com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory,"common/images/favicon-" + branding + ".ico"), new File(targetDirectory,"favicon.ico")); |         com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory, "common/images/favicon-" + branding + ".ico"), new File(targetDirectory, "favicon.ico")); | ||||||
| 	com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory,"common/css/positioning-" + branding + ".css"), new File(targetDirectory,"common/css/positioning.css")); |         com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory, "common/css/positioning-" + branding + ".css"), new File(targetDirectory, "common/css/positioning.css")); | ||||||
| 	com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory,"common/main-" + branding + ".js"), new File(targetDirectory,"common/main.js")); |         com.agilejava.docbkx.maven.FileUtils.copyFile(new File(targetDirectory, "common/main-" + branding + ".js"), new File(targetDirectory, "common/main.js")); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -281,51 +287,43 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { | |||||||
| 	    } | 	    } | ||||||
|  |  | ||||||
|             ClassLoader classLoader = Thread.currentThread() |             ClassLoader classLoader = Thread.currentThread() | ||||||
|                 .getContextClassLoader(); |                                             .getContextClassLoader(); | ||||||
|  |  | ||||||
|             TransformerFactory factory = TransformerFactory.newInstance(); |             TransformerFactory factory = TransformerFactory.newInstance(); | ||||||
|             Transformer transformer = factory.newTransformer(new StreamSource(classLoader.getResourceAsStream(COPY_XSL))); |             Transformer transformer = factory.newTransformer(new StreamSource(classLoader.getResourceAsStream(COPY_XSL))); | ||||||
|  |  | ||||||
| 	    DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); |             atomFeedClean = new File(result.getParentFile(), "atom.xml"); | ||||||
| 	    dbfactory.setValidating(false); |  | ||||||
| 	    DocumentBuilder builder = dbfactory.newDocumentBuilder(); |  | ||||||
| 	    builder.setEntityResolver(new EntityResolver() { |  | ||||||
| 		    @Override |  | ||||||
| 			public InputSource resolveEntity(String publicId, String systemId) |  | ||||||
| 			throws SAXException, IOException { |  | ||||||
| 			return new InputSource(new StringReader("")); |  | ||||||
| 		    } |  | ||||||
| 		}); |  | ||||||
|  |  | ||||||
|  |             DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); | ||||||
|  |             dbfactory.setValidating(false); | ||||||
|  |             DocumentBuilder builder = dbfactory.newDocumentBuilder(); | ||||||
|  |             builder.setEntityResolver(new EntityResolver() { | ||||||
|  |                 @Override | ||||||
|  |                 public InputSource resolveEntity(String publicId, String systemId) | ||||||
|  |                         throws SAXException, IOException { | ||||||
|  |                     return new InputSource(new StringReader("")); | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |  | ||||||
| 	    Document xmlDocument = builder.parse(atomFeed); |             atomFeed = new File(result.getParentFile(), "atom-doctype.xml"); | ||||||
| 	    DOMSource source = new DOMSource(xmlDocument); |             Document xmlDocument = builder.parse(atomFeed); | ||||||
|  |             DOMSource source = new DOMSource(xmlDocument); | ||||||
|  |  | ||||||
|             transformer.transform (source, new StreamResult(atomFeedClean)); |             transformer.transform(source, new StreamResult(atomFeedClean)); | ||||||
|  |  | ||||||
| 	    atomFeed.deleteOnExit(); |             atomFeed.deleteOnExit(); | ||||||
|  |  | ||||||
|  |         } catch (TransformerConfigurationException e) { | ||||||
|  |             throw new MojoExecutionException("Failed to load JAXP configuration", e); | ||||||
|  |         } catch (javax.xml.parsers.ParserConfigurationException e) { | ||||||
|  |             throw new MojoExecutionException("Failed to configure parser", e); | ||||||
|  |         } catch (org.xml.sax.SAXException e) { | ||||||
|  |             throw new MojoExecutionException("Sax exception", e); | ||||||
|  |         } catch (java.io.IOException e) { | ||||||
|  |             throw new MojoExecutionException("IO Exception", e); | ||||||
|  |         } catch (TransformerException e) { | ||||||
|  |             throw new MojoExecutionException("Failed to transform to atom feed", e); | ||||||
|         } |         } | ||||||
|         catch (TransformerConfigurationException e) |  | ||||||
|             { |  | ||||||
|                 throw new MojoExecutionException("Failed to load JAXP configuration", e); |  | ||||||
|             } |  | ||||||
| 	catch (javax.xml.parsers.ParserConfigurationException e) |  | ||||||
| 	    { |  | ||||||
| 		throw new MojoExecutionException("Failed to configure parser", e); |  | ||||||
| 	    } |  | ||||||
| 	catch (org.xml.sax.SAXException e) |  | ||||||
| 	    { |  | ||||||
| 		throw new MojoExecutionException("Sax exception", e); |  | ||||||
| 	    } |  | ||||||
| 	catch(java.io.IOException e) |  | ||||||
| 	    { |  | ||||||
| 		throw new MojoExecutionException("IO Exception", e); |  | ||||||
| 	    } |  | ||||||
|         catch (TransformerException e) |  | ||||||
|             { |  | ||||||
|                 throw new MojoExecutionException("Failed to transform to atom feed", e); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Seth
					Seth