Juan Hernandez has uploaded a new change for review.

Change subject: codegen: Don't require the SDK
......................................................................

codegen: Don't require the SDK

Currently the code generator uses some utility classes and some entity
classes from the SDK. This introduces a chicken-egg situation, and it
makes difficult to regenerate the SDK from scratch. This patch copies
the required utility methods from the SDK to the generator, and creates
the entity classes from the XML schema before compiling the generator.
This removes the dependency on the SDK.

Change-Id: I32815467bdd91124daa71c0de377809baa0be718
Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com>
---
M ovirt-engine-sdk-java-codegen/pom.xml
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/common/IDocCodegen.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/documentation/DocsGen.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/AbstractOverloadableTemplate.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
A 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/ArrayUtils.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/FormatUtils.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/StringUtils.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/UrlUtils.java
12 files changed, 121 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-sdk-java 
refs/changes/90/23690/1

diff --git a/ovirt-engine-sdk-java-codegen/pom.xml 
b/ovirt-engine-sdk-java-codegen/pom.xml
index 21deba9..36e5e46 100644
--- a/ovirt-engine-sdk-java-codegen/pom.xml
+++ b/ovirt-engine-sdk-java-codegen/pom.xml
@@ -38,12 +38,6 @@
   <dependencies>
 
     <dependency>
-      <groupId>org.ovirt.engine.sdk</groupId>
-      <artifactId>ovirt-engine-sdk-java</artifactId>
-      <version>1.0.0.18-1</version>
-    </dependency>
-
-    <dependency>
       <groupId>com.sun.xsom</groupId>
       <artifactId>xsom</artifactId>
       <version>20110809</version>
@@ -79,6 +73,24 @@
         </configuration>
       </plugin>
 
+      <plugin>
+        <groupId>org.jvnet.jaxb2.maven2</groupId>
+        <artifactId>maven-jaxb22-plugin</artifactId>
+        <version>0.8.1</version>
+        <executions>
+          <execution>
+            <id>generate-entities</id>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <generatePackage>org.ovirt.engine.sdk.entities</generatePackage>
+          <extension>true</extension>
+        </configuration>
+      </plugin>
+
     </plugins>
 
   </build>
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/common/IDocCodegen.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/common/IDocCodegen.java
index 4f01b97..73a16eb 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/common/IDocCodegen.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/common/IDocCodegen.java
@@ -21,7 +21,7 @@
 public interface IDocCodegen {
     /**
      * Generates the doc string
-     * 
+     *
      * @param dl
      *            DetailedLink
      */
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/documentation/DocsGen.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/documentation/DocsGen.java
index 8c1596d..7285fa8 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/documentation/DocsGen.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/documentation/DocsGen.java
@@ -19,6 +19,7 @@
 import java.util.List;
 
 import org.ovirt.engine.sdk.codegen.common.IDocCodegen;
+import org.ovirt.engine.sdk.codegen.utils.ArrayUtils;
 import org.ovirt.engine.sdk.codegen.utils.FormatUtils;
 import org.ovirt.engine.sdk.codegen.utils.StringUtils;
 import org.ovirt.engine.sdk.codegen.utils.UrlUtils;
@@ -26,7 +27,6 @@
 import org.ovirt.engine.sdk.entities.Header;
 import org.ovirt.engine.sdk.entities.Parameter;
 import org.ovirt.engine.sdk.entities.ParametersSet;
-import org.ovirt.engine.sdk.utils.ArrayUtils;
 
 /**
  * Provides documentation related codegen capabilities
@@ -75,7 +75,7 @@
                     docParams.append(NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET 
+ OVERLOAD + i + ":" + NEW_LINE);
                     addParameterSetDescription(docParams, ps);
                     for (Parameter param : ps.getParameters()) {
-                        if (param.getRequired() != null && 
param.getRequired().equals(Boolean.TRUE)) {
+                        if (param.isRequired() != null && 
param.isRequired().equals(Boolean.TRUE)) {
                             docParams.append(PREFIX + PARAM_DETAILS_OFFSET + 
OVERLOAD_OFFSET + param.getName()
                                     + NEW_LINE);
                         } else {
@@ -92,7 +92,7 @@
                 docParams.append(NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
PRE_OPEN);
                 for (Parameter param : detailedLink.getRequest()
                         .getBody().getParametersSets().get(0).getParameters()) 
{
-                    if (param.getRequired() != null && 
param.getRequired().equals(Boolean.TRUE)) {
+                    if (param.isRequired() != null && 
param.isRequired().equals(Boolean.TRUE)) {
                         docParams.append(NEW_LINE + PREFIX + 
PARAM_DETAILS_OFFSET + param.getName());
                     } else {
                         docParams.append(NEW_LINE + PREFIX + 
PARAM_DETAILS_OFFSET + BREACKS_OPEN
@@ -125,7 +125,7 @@
             if 
(!detailedLink.getRequest().getHeaders().getHeaders().isEmpty()) {
                 for (Header header : 
detailedLink.getRequest().getHeaders().getHeaders()) {
                     if (!ArrayUtils.contains(HEADERS_EXCEPTIONS, 
header.getName())) {
-                        if (header.getRequired() != null && 
header.getRequired().equals(Boolean.TRUE)) {
+                        if (header.isRequired() != null && 
header.isRequired().equals(Boolean.TRUE)) {
                             docParams.append(NEW_LINE + PARAM + 
FormatUtils.toJava(header.getName() +
                                     NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
PRE_OPEN +
                                     NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
header.getValue()) +
@@ -153,7 +153,7 @@
                     docParams.append(NEW_LINE + PREFIX + OVERLOAD + i + ": " + 
NEW_LINE);
                     addParameterSetDescription(docParams, ps);
                     for (Parameter param : ps.getParameters()) {
-                        if (param.getRequired() != null && 
param.getRequired().equals(Boolean.TRUE)) {
+                        if (param.isRequired() != null && 
param.isRequired().equals(Boolean.TRUE)) {
                             docParams.append(PARAM + 
FormatUtils.toJava(param.getName()) +
                                     NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
PRE_OPEN +
                                     NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
param.getValue() +
@@ -171,7 +171,7 @@
                 }
             } else if 
(detailedLink.getRequest().getUrl().getParametersSets().size() == 1) {
                 for (Parameter param : 
detailedLink.getRequest().getUrl().getParametersSets().get(0).getParameters()) {
-                    if (param.getRequired() != null && 
param.getRequired().equals(Boolean.TRUE)) {
+                    if (param.isRequired() != null && 
param.isRequired().equals(Boolean.TRUE)) {
                         docParams.append(NEW_LINE + PARAM + 
UrlUtils.toQueryParam(param.getName()) +
                                 NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
PRE_OPEN +
                                 NEW_LINE + PREFIX + PARAM_DETAILS_OFFSET + 
param.getValue() +
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java
index 0e7666d..8a19e99 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java
@@ -20,7 +20,7 @@
 import org.ovirt.engine.sdk.codegen.templates.ResourceTemplate;
 import org.ovirt.engine.sdk.codegen.templates.SubResourceTemplate;
 import org.ovirt.engine.sdk.codegen.templates.VariableTemplate;
-import org.ovirt.engine.sdk.utils.StringUtils;
+import org.ovirt.engine.sdk.codegen.utils.StringUtils;
 
 /**
  * Holds sub-resources
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java
index 11b1930..d81e93d 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java
@@ -29,10 +29,10 @@
 import org.ovirt.engine.sdk.codegen.templates.RootResourceDynamicTemplate;
 import org.ovirt.engine.sdk.codegen.templates.RootResourceStaticTemplate;
 import org.ovirt.engine.sdk.codegen.templates.VariableTemplate;
+import org.ovirt.engine.sdk.codegen.utils.ArrayUtils;
 import org.ovirt.engine.sdk.codegen.utils.OsUtil;
+import org.ovirt.engine.sdk.codegen.utils.StringUtils;
 import org.ovirt.engine.sdk.entities.API;
-import org.ovirt.engine.sdk.utils.ArrayUtils;
-import org.ovirt.engine.sdk.utils.StringUtils;
 
 /**
  * Provides SDK entry point codegen capabilities
@@ -114,8 +114,7 @@
                 new String[] { "Actions", "Href", "Links", "ExtensionType",
                         "CreationStatus", "Id", "Name", "Description", "Class" 
};
 
-        String[] staticMethods =
-                new String[] { "SpecialObjects", "ProductInfo" };
+        String[] staticMethods = new String[] { "SpecialObjects", 
"ProductInfo" };
 
         for (Method method : API.class.getMethods()) {
             String simpleMethodName = method.getName().replace("get", "");
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
index 5e882e6..321964c 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
@@ -60,8 +60,8 @@
 import org.ovirt.engine.sdk.entities.HttpMethod;
 import org.ovirt.engine.sdk.entities.RSDL;
 import org.ovirt.engine.sdk.entities.VersionCaps;
-import org.ovirt.engine.sdk.utils.ArrayUtils;
-import org.ovirt.engine.sdk.utils.StringUtils;
+import org.ovirt.engine.sdk.codegen.utils.ArrayUtils;
+import org.ovirt.engine.sdk.codegen.utils.StringUtils;
 
 /**
  * Provides RSDL related codegen capabilities
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/AbstractOverloadableTemplate.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/AbstractOverloadableTemplate.java
index 8e7827f..5848399 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/AbstractOverloadableTemplate.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/AbstractOverloadableTemplate.java
@@ -23,7 +23,7 @@
 import org.ovirt.engine.sdk.entities.DetailedLink;
 import org.ovirt.engine.sdk.entities.Header;
 import org.ovirt.engine.sdk.entities.Parameter;
-import org.ovirt.engine.sdk.utils.ArrayUtils;
+import org.ovirt.engine.sdk.codegen.utils.ArrayUtils;
 
 /**
  * Abstract Overloadable-Template class
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
index ce165d6..58bdfa8 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
@@ -103,8 +103,8 @@
         StringBuffer templateBuff = new StringBuffer();
 
         if (dl.isSetRequest() && dl.getRequest().isSetBody() && 
dl.getRequest().getBody().isSetType() && !
-                dl.getRequest().getBody().getType().equals("") && 
dl.getRequest().getBody().getRequired() != null
-                && 
dl.getRequest().getBody().getRequired().equals(Boolean.TRUE)) {
+                dl.getRequest().getBody().getType().equals("") && 
dl.getRequest().getBody().isRequired() != null
+                && 
dl.getRequest().getBody().isRequired().equals(Boolean.TRUE)) {
             // add delete() with body overload (body is mandatory)
             
templateBuff.append(deleteMethodWithBodyTemplate.getTemplate(docParams, dl));
         } else {
@@ -144,10 +144,10 @@
             // add delete() with body overload (body is optional)
             if (dl.isSetRequest() && dl.getRequest().isSetBody() && 
dl.getRequest().getBody().isSetType()
                     && !dl.getRequest().getBody().getType().equals("")
-                    && ((dl.getRequest().getBody().getRequired() != null
-                    && 
!dl.getRequest().getBody().getRequired().equals(Boolean.TRUE))
+                    && ((dl.getRequest().getBody().isRequired() != null
+                    && 
!dl.getRequest().getBody().isRequired().equals(Boolean.TRUE))
                     ||
-                    dl.getRequest().getBody().getRequired() == null)) {
+                    dl.getRequest().getBody().isRequired() == null)) {
                 
templateBuff.append(deleteMethodWithBodyTemplate.getTemplate(docParams, dl));
             }
         }
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/ArrayUtils.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/ArrayUtils.java
new file mode 100644
index 0000000..855fe60
--- /dev/null
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/ArrayUtils.java
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2012 Red Hat, Inc.
+//
+// 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.
+//
+
+package org.ovirt.engine.sdk.codegen.utils;
+
+/**
+ * Provides array services
+ */
+public class ArrayUtils {
+    /**
+     * Checkes if candidate in arr
+     *
+     * @param arr
+     *            array to look at
+     * @param candidate
+     *            candidate to check
+     *
+     * @return True if candidate in array
+     */
+    public static <T> boolean contains(T[] arr, T candidate) {
+        for (T item : arr) {
+            if (item.equals(candidate)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/FormatUtils.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/FormatUtils.java
index 15626d0..c42681d 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/FormatUtils.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/FormatUtils.java
@@ -16,8 +16,6 @@
 
 package org.ovirt.engine.sdk.codegen.utils;
 
-import org.ovirt.engine.sdk.utils.StringUtils;
-
 /**
  * Provides format related services
  */
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/StringUtils.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/StringUtils.java
index 73a66a8..67d1a8b 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/StringUtils.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/StringUtils.java
@@ -181,4 +181,45 @@
 
         return strings;
     }
+
+    /**
+     * Wraps to LowerCase first char in candidate
+     *
+     * @param candidate
+     *
+     * @return candidate
+     */
+    public static String toLowerCase(String candidate) {
+        if (candidate.length() >= 1)
+            return Character.toLowerCase(candidate.charAt(0)) + 
candidate.substring(1);
+        return candidate;
+    }
+
+    /**
+     * Converts string to singular form
+     *
+     * @param candidate
+     *
+     * @return singular string
+     */
+    public static String toSingular(String candidate) {
+        if (candidate.length() >= 1 && candidate.endsWith("s")) {
+            return candidate.substring(0, candidate.length() - 1);
+        }
+        return candidate;
+    }
+
+    /**
+     * Converts string to plural form
+     *
+     * @param candidate
+     *
+     * @return plural string
+     */
+    public static String toPlural(String candidate) {
+        if (candidate.length() >= 1 && !candidate.endsWith("s")) {
+            return candidate + "s";
+        }
+        return candidate;
+    }
 }
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/UrlUtils.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/UrlUtils.java
index c743d8a..a0df8b2 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/UrlUtils.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/utils/UrlUtils.java
@@ -16,8 +16,6 @@
 
 package org.ovirt.engine.sdk.codegen.utils;
 
-import org.ovirt.engine.sdk.web.UrlParameterType;
-
 /**
  * Provides URL related services
  */
@@ -33,9 +31,9 @@
      */
     public static String toParamType(final String context) {
         if (context.equals("query")) {
-            return UrlParameterType.QUERY.toString();
+            return "QUERY";
         } else if (context.equals("matrix")) {
-            return UrlParameterType.MATRIX.toString();
+            return "MATRIX";
         }
         throw new RuntimeException("Unsupported url parameter type \"" + 
context + "\".");
     }


-- 
To view, visit http://gerrit.ovirt.org/23690
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I32815467bdd91124daa71c0de377809baa0be718
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine-sdk-java
Gerrit-Branch: sdk_3.3
Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to