[CXF-6661] Optional link to a WADL schema location

Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/30aac3d3
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/30aac3d3
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/30aac3d3

Branch: refs/heads/3.0.x-fixes
Commit: 30aac3d324ddf62633df56ba0a89f5428d4689d0
Parents: 53f4952
Author: Sergey Beryozkin <sberyoz...@gmail.com>
Authored: Fri Nov 6 12:06:43 2015 +0000
Committer: Sergey Beryozkin <sberyoz...@gmail.com>
Committed: Fri Nov 6 12:11:17 2015 +0000

----------------------------------------------------------------------
 .../maven_plugin/javatowadl/Java2WADLMojo.java    |  6 ++++++
 .../cxf/jaxrs/model/wadl/WadlGenerator.java       | 18 +++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/30aac3d3/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/Java2WADLMojo.java
----------------------------------------------------------------------
diff --git 
a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/Java2WADLMojo.java
 
b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/Java2WADLMojo.java
index ff5a782..81e231c 100644
--- 
a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/Java2WADLMojo.java
+++ 
b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/Java2WADLMojo.java
@@ -141,6 +141,11 @@ public class Java2WADLMojo extends AbstractMojo {
     /**
      * @parameter default-value="false"
      */
+    private boolean includeDefaultWadlSchemaLocation;
+    
+    /**
+     * @parameter default-value="false"
+     */
     private boolean ignoreForwardSlash;
     
     /**
@@ -240,6 +245,7 @@ public class Java2WADLMojo extends AbstractMojo {
     private void setExtraProperties(WadlGenerator wg) {
         wg.setSingleResourceMultipleMethods(singleResourceMultipleMethods);
         wg.setUseSingleSlashResource(useSingleSlashResource);
+        
wg.setIncludeDefaultWadlSchemaLocation(includeDefaultWadlSchemaLocation);
         wg.setIgnoreForwardSlash(ignoreForwardSlash);
         wg.setAddResourceAndMethodIds(addResourceAndMethodIds);
         wg.setLinkAnyMediaTypeToXmlSchema(linkAnyMediaTypeToXmlSchema);

http://git-wip-us.apache.org/repos/asf/cxf/blob/30aac3d3/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
----------------------------------------------------------------------
diff --git 
a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
 
b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
index 8b77ab4..3942fba 100644
--- 
a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
+++ 
b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
@@ -136,6 +136,7 @@ public class WadlGenerator implements 
ContainerRequestFilter {
     public static final String WADL_QUERY = "_wadl";
     public static final MediaType WADL_TYPE = 
JAXRSUtils.toMediaType("application/vnd.sun.wadl+xml");
     public static final String WADL_NS = "http://wadl.dev.java.net/2009/02";;
+    public static final String DEFAULT_WADL_SCHEMA_LOC = 
"http://www.w3.org/Submission/wadl/wadl.xsd";;
 
     private static final Logger LOG = 
LogUtils.getL7dLogger(WadlGenerator.class);
     private static final String CONVERT_WADL_RESOURCES_TO_DOM = 
"convert.wadl.resources.to.dom";
@@ -173,7 +174,7 @@ public class WadlGenerator implements 
ContainerRequestFilter {
     private boolean ignoreMessageWriters = true;
     private boolean ignoreRequests;
     private boolean convertResourcesToDOM = true;
-    
+    private String wadlSchemaLocation;
     private List<String> externalSchemasCache;
     private List<URI> externalSchemaLinks;
     private Map<String, List<String>> externalQnamesMap;
@@ -375,6 +376,13 @@ public class WadlGenerator implements 
ContainerRequestFilter {
                 .append("\"");
         }
 
+        if (wadlSchemaLocation != null) {
+            sbApp.append(" 
xmlns:xsi=\"").append(Constants.URI_2001_SCHEMA_XSI).append("\"");
+            sbApp.append(" xsi:schemaLocation=\"")
+                 .append(getNamespace()).append(" ").append(wadlSchemaLocation)
+                 .append("\"");
+        }
+        
         writer.write(sbGrammars);
     }
 
@@ -2158,6 +2166,14 @@ public class WadlGenerator implements 
ContainerRequestFilter {
     public void setStylesheetReference(String stylesheetReference) {
         this.stylesheetReference = stylesheetReference;
     }
+    public void setIncludeWadlSchemaLocation(String loc) {
+        this.wadlSchemaLocation = loc;
+    }
+    public void setIncludeDefaultWadlSchemaLocation(boolean inc) {
+        if (inc) {
+            setIncludeWadlSchemaLocation(DEFAULT_WADL_SCHEMA_LOC);
+        }
+    }
 
     public void setIgnoreOverloadedMethods(boolean ignore) {
         this.ignoreOverloadedMethods = ignore;

Reply via email to