You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ve...@apache.org on 2009/07/03 21:13:33 UTC
svn commit: r790990 - in /webservices/axis2/trunk/java/modules:
adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java
Author: veithen
Date: Fri Jul 3 19:13:32 2009
New Revision: 790990
URL: http://svn.apache.org/viewvc?rev=790990&view=rev
Log:
Allow the code generator to process templates with xsl:import or xsl:include with relative hrefs.
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=790990&r1=790989&r2=790990&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Fri Jul 3 19:13:32 2009
@@ -52,8 +52,8 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.io.OutputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -1218,13 +1218,14 @@
// first get the language specific property map
Class<?> clazz = this.getClass();
- InputStream xslStream;
String templateName = javaBeanTemplateName;
if (templateName != null) {
try {
- xslStream = clazz.getResourceAsStream(templateName);
+ // Use URL instead of InputStream here, so that the processor may resolve
+ // imports/includes with relative hrefs.
+ URL xsl = clazz.getResource(templateName);
templateCache = TransformerFactory.newInstance().newTemplates(
- new StreamSource(xslStream));
+ new StreamSource(xsl.toExternalForm()));
templateLoaded = true;
} catch (TransformerConfigurationException e) {
throw new SchemaCompilationException(SchemaCompilerMessages
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java?rev=790990&r1=790989&r2=790990&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/XSLTIncludeResolver.java Fri Jul 3 19:13:32 2009
@@ -27,7 +27,7 @@
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
-import java.io.InputStream;
+import java.net.URL;
import java.util.Iterator;
import java.util.Map;
@@ -57,7 +57,6 @@
String templateName;
Map externalPropertyMap = configuration.getProperties();
- InputStream supporterTemplateStream;
if (XSLT_INCLUDE_DATABIND_SUPPORTER_HREF_KEY.equals(href)) {
//use the language name from the configuration to search the key
//our search only consists of looking for the data binding name
@@ -78,19 +77,17 @@
if (externalPropertyMap.get(href) != null) {
templateName = externalPropertyMap.get(href).toString();
- if (templateName != null) {
- supporterTemplateStream = getClass().getResourceAsStream(templateName);
- return new StreamSource(supporterTemplateStream);
- }
- } else if ((href != null) && (!href.equals("externalTemplate"))){
- Source source = getSourceFromTemplateName(href);
- if ((source != null) && ((StreamSource)source).getInputStream() != null){
- return source;
- }
+ return getSourceFromTemplateName(templateName);
+ } else if (href.startsWith("/")) {
+ // This is a classpath resource
+ return getSourceFromTemplateName(href);
+ } else if (href.endsWith(".xsl")) {
+ // This is a relative import/include. Let the processor take care of resolving it.
+ return null;
+ } else {
+ // This is an unresolved property; return an empty source.
return getEmptySource();
}
- //if nothing could be found return an empty source
- return getEmptySource();
}
/**
@@ -101,10 +98,11 @@
* @throws TransformerException
*/
private Source getSourceFromTemplateName(String templateName) throws TransformerException {
- InputStream supporterTemplateStream;
if (templateName != null) {
- supporterTemplateStream = getClass().getResourceAsStream(templateName);
- return new StreamSource(supporterTemplateStream);
+ // Use URL instead of InputStream here, so that the processor may resolve
+ // imports/includes with relative hrefs.
+ URL templateUrl = getClass().getResource(templateName);
+ return templateUrl == null ? null : new StreamSource(templateUrl.toExternalForm());
} else {
throw new TransformerException(
CodegenMessages.getMessage("resolver.templateNotFound", templateName));