[ovirt-engine/f17] Revert "Update to upstream 3.1 beta"
Juan Hernandez
jhernand at fedoraproject.org
Sat Dec 29 17:29:54 UTC 2012
commit 2655206b94c8e4b2616bcdb81c183b8521406849
Author: Juan Hernandez <juan.hernandez at redhat.com>
Date: Sat Dec 29 10:56:09 2012 +0100
Revert "Update to upstream 3.1 beta"
This reverts commit e1bbdc923b49a925917d8dbf7221c630a471d884.
.gitignore | 1 -
ovirt-engine-add-dummy-hibernate-annotations.patch | 193 +
ovirt-engine-add-id-to-the-notifier-assembly.patch | 40 +
ovirt-engine-add-log4j.patch | 87 +
ovirt-engine-add-modules.patch | 166 +
ovirt-engine-add-pghack-missing-methods.patch | 38 +
ovirt-engine-add-readme.patch | 13 -
...t-engine-add-resteasy-listener-to-restapi.patch | 34 +
ovirt-engine-add-systemd-service.patch | 421 +++
ovirt-engine-build-backend-only.patch | 20 +-
...ne-create-database-and-serial-when-needed.patch | 25 +
ovirt-engine-dont-modify-sysctl.patch | 100 -
ovirt-engine-dont-use-activation.patch | 57 +
...t-engine-dont-use-hibernate-string-helper.patch | 48 +
ovirt-engine-fix-checkstyle-gav.patch | 28 -
...-engine-fix-classpath-building-in-scripts.patch | 296 ++
ovirt-engine-fix-postgresdbenginedialect.patch | 12 -
ovirt-engine-makefile-fixes.patch | 369 ++
ovirt-engine-move-sysprep-files-to-etc.patch | 33 +
...e-remove-dependency-on-jboss-interceptors.patch | 48 +
ovirt-engine-remove-frontend-from-ear.patch | 62 +-
ovirt-engine-remove-hibernate-daos.patch | 3768 ++++++++++++++++++++
ovirt-engine-remove-jb5-login-module.patch | 285 ++
...ine-remove-jboss-ejb-specific-annotations.patch | 45 +
ovirt-engine-remove-jboss-interceptors.patch | 48 +
ovirt-engine-remove-jna.patch | 659 ++++
...t-engine-remove-local-user-authentication.patch | 732 ++++
ovirt-engine-remove-mockito.patch | 73 +
ovirt-engine-remove-p6spy.patch | 32 +
ovirt-engine-remove-powermock.patch | 138 +
ovirt-engine-remove-spring-from-restapi.patch | 455 +---
...-engine-replace-guidtype-with-empty-class.patch | 110 +
ovirt-engine-replace-index-page.patch | 164 +-
...engine-replace-pubkey2ssh-with-ssh-keygen.patch | 766 ++++
ovirt-engine-setup-fixes.patch | 773 ++++
ovirt-engine-update-commons-configuration.patch | 90 +-
ovirt-engine-update-hibernate.patch | 64 -
ovirt-engine-update-spring.patch | 258 --
ovirt-engine-update-to-jackson-1.9.patch | 63 +
ovirt-engine-update-to-quartz-2.1.patch | 328 ++
ovirt-engine-use-hibernate-jpa-2.0-api.patch | 34 +
ovirt-engine-use-maven-jaxb2-plugin.patch | 32 +
...spring-instrument-instead-of-spring-agent.patch | 13 +
ovirt-engine.spec | 991 ++++--
sources | 2 +-
45 files changed, 10604 insertions(+), 1410 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 75ee4bd..c77d3a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
/ovirt-engine-3.0.0_0001.tar.gz
-/ovirt-engine-3.1.0.tar.xz
diff --git a/ovirt-engine-add-dummy-hibernate-annotations.patch b/ovirt-engine-add-dummy-hibernate-annotations.patch
new file mode 100644
index 0000000..70df2a1
--- /dev/null
+++ b/ovirt-engine-add-dummy-hibernate-annotations.patch
@@ -0,0 +1,193 @@
+From 66255172f2178b1332b3226ad39d32ca37d4cdcf Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 9 Feb 2012 17:01:20 +0100
+Subject: [PATCH 7/9] packaging: Add dummy hibernate annotations
+
+Our code will probably in the future use Hibernate and Hibernate
+annotations, but right now the presence of the annotations just
+complicates the build. This patch adds the annotatios required for
+compilation.
+
+Change-Id: I5298c2e8d5b38786b34fe9e555d056265afdeba2
+---
+ .../java/org/hibernate/annotations/Cascade.java | 16 ++++++++++
+ .../org/hibernate/annotations/CascadeType.java | 18 +++++++++++
+ .../hibernate/annotations/GenericGenerator.java | 31 ++++++++++++++++++++
+ .../java/org/hibernate/annotations/Parameter.java | 19 ++++++++++++
+ .../main/java/org/hibernate/annotations/Type.java | 21 +++++++++++++
+ .../java/org/hibernate/annotations/TypeDef.java | 23 ++++++++++++++
+ 6 files changed, 128 insertions(+), 0 deletions(-)
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/Cascade.java
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/CascadeType.java
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/GenericGenerator.java
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/Parameter.java
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/Type.java
+ create mode 100644 backend/manager/modules/common/src/main/java/org/hibernate/annotations/TypeDef.java
+
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Cascade.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Cascade.java
+new file mode 100644
+index 0000000..fe1ef09
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Cascade.java
+@@ -0,0 +1,16 @@
++package org.hibernate.annotations;
++
++import static java.lang.annotation.ElementType.FIELD;
++import static java.lang.annotation.ElementType.METHOD;
++import java.lang.annotation.Retention;
++import static java.lang.annotation.RetentionPolicy.RUNTIME;
++import java.lang.annotation.Target;
++
++/**
++ * Apply a cascade strategy on an association
++ */
++ at Target({METHOD, FIELD})
++ at Retention(RUNTIME)
++public @interface Cascade {
++ CascadeType[] value();
++}
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/CascadeType.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/CascadeType.java
+new file mode 100644
+index 0000000..90be6a0
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/CascadeType.java
+@@ -0,0 +1,18 @@
++package org.hibernate.annotations;
++
++/**
++ * Cascade types (can override default EJB3 cascades
++ */
++public enum CascadeType {
++ ALL,
++ PERSIST,
++ MERGE,
++ REMOVE,
++ REFRESH,
++ DELETE,
++ SAVE_UPDATE,
++ REPLICATE,
++ DELETE_ORPHAN,
++ LOCK,
++ EVICT
++}
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/GenericGenerator.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/GenericGenerator.java
+new file mode 100644
+index 0000000..3615aa1
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/GenericGenerator.java
+@@ -0,0 +1,31 @@
++//$Id: GenericGenerator.java 14736 2008-06-04 14:23:42Z hardy.ferentschik $
++package org.hibernate.annotations;
++
++import static java.lang.annotation.ElementType.*;
++import java.lang.annotation.Retention;
++import static java.lang.annotation.RetentionPolicy.RUNTIME;
++import java.lang.annotation.Target;
++
++/**
++ * Generator annotation describing any kind of Hibernate
++ * generator in a detyped manner
++ *
++ * @author Emmanuel Bernard
++ */
++ at Target({PACKAGE, TYPE, METHOD, FIELD})
++ at Retention(RUNTIME)
++public @interface GenericGenerator {
++ /**
++ * unique generator name
++ */
++ String name();
++ /**
++ * Generator strategy either a predefined Hibernate
++ * strategy or a fully qualified class name.
++ */
++ String strategy();
++ /**
++ * Optional generator parameters
++ */
++ Parameter[] parameters() default {};
++}
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Parameter.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Parameter.java
+new file mode 100644
+index 0000000..66e2888
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Parameter.java
+@@ -0,0 +1,19 @@
++//$Id: Parameter.java 14736 2008-06-04 14:23:42Z hardy.ferentschik $
++package org.hibernate.annotations;
++
++import java.lang.annotation.Retention;
++import static java.lang.annotation.RetentionPolicy.RUNTIME;
++import java.lang.annotation.Target;
++
++/**
++ * Parameter (basically key/value pattern)
++ *
++ * @author Emmanuel Bernard
++ */
++ at Target({})
++ at Retention(RUNTIME)
++public @interface Parameter {
++ String name();
++
++ String value();
++}
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Type.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Type.java
+new file mode 100644
+index 0000000..ee8b55c
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/Type.java
+@@ -0,0 +1,21 @@
++//$Id: Type.java 14736 2008-06-04 14:23:42Z hardy.ferentschik $
++package org.hibernate.annotations;
++
++import static java.lang.annotation.ElementType.FIELD;
++import static java.lang.annotation.ElementType.METHOD;
++import java.lang.annotation.Retention;
++import static java.lang.annotation.RetentionPolicy.RUNTIME;
++import java.lang.annotation.Target;
++
++/**
++ * hibernate type
++ *
++ * @author Emmanuel Bernard
++ */
++ at Target({FIELD, METHOD})
++ at Retention(RUNTIME)
++public @interface Type {
++ String type();
++
++ Parameter[] parameters() default {};
++}
+diff --git a/backend/manager/modules/common/src/main/java/org/hibernate/annotations/TypeDef.java b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/TypeDef.java
+new file mode 100644
+index 0000000..0629e9b
+--- /dev/null
++++ b/backend/manager/modules/common/src/main/java/org/hibernate/annotations/TypeDef.java
+@@ -0,0 +1,23 @@
++//$Id: TypeDef.java 14736 2008-06-04 14:23:42Z hardy.ferentschik $
++package org.hibernate.annotations;
++
++import static java.lang.annotation.ElementType.PACKAGE;
++import static java.lang.annotation.ElementType.TYPE;
++import java.lang.annotation.Retention;
++import static java.lang.annotation.RetentionPolicy.RUNTIME;
++import java.lang.annotation.Target;
++
++/**
++ * Type definition
++ *
++ * @author Emmanuel Bernard
++ */
++ at Target({TYPE, PACKAGE})
++ at Retention(RUNTIME)
++public @interface TypeDef {
++ String name();
++
++ Class typeClass();
++
++ Parameter[] parameters() default {};
++}
+--
+1.7.7.6
+
diff --git a/ovirt-engine-add-id-to-the-notifier-assembly.patch b/ovirt-engine-add-id-to-the-notifier-assembly.patch
new file mode 100644
index 0000000..d64ff32
--- /dev/null
+++ b/ovirt-engine-add-id-to-the-notifier-assembly.patch
@@ -0,0 +1,40 @@
+From b3eb4c84e5b27eadb88b37f208b634f412df0294 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Mon, 27 Feb 2012 15:23:13 +0100
+Subject: [PATCH] core: Add an id to the notifier assembly
+
+Newer versions of the assembly plugin (including the one in
+Fedora) complain if this id is missing.
+
+Change-Id: I17a89148c5ce13c05d1f4586be660af78b016983
+---
+ .../engine-notifier-resources/pom.xml | 1 +
+ .../src/main/assembly/assembly.xml | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/backend/manager/tools/engine-notifier/engine-notifier-resources/pom.xml b/backend/manager/tools/engine-notifier/engine-notifier-resources/pom.xml
+index c338eee..544f87e 100644
+--- a/backend/manager/tools/engine-notifier/engine-notifier-resources/pom.xml
++++ b/backend/manager/tools/engine-notifier/engine-notifier-resources/pom.xml
+@@ -27,6 +27,7 @@
+ <descriptors>
+ <descriptor>src/main/assembly/assembly.xml</descriptor>
+ </descriptors>
++ <appendAssemblyId>false</appendAssemblyId>
+ </configuration>
+ </plugin>
+ </plugins>
+diff --git a/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/assembly/assembly.xml b/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/assembly/assembly.xml
+index a11765d..ad4e3b8 100644
+--- a/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/assembly/assembly.xml
++++ b/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/assembly/assembly.xml
+@@ -1,5 +1,5 @@
+ <assembly>
+- <id></id>
++ <id>resources</id>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <formats>
+ <format>zip</format>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-add-log4j.patch b/ovirt-engine-add-log4j.patch
new file mode 100644
index 0000000..f24cc51
--- /dev/null
+++ b/ovirt-engine-add-log4j.patch
@@ -0,0 +1,87 @@
+From ea4419b76e08e721040211c1be4c9337c9681bf4 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 15 Mar 2012 10:43:03 +0100
+Subject: [PATCH 05/23] Add log4j
+
+---
+ backend/manager/modules/utils/pom.xml | 5 +++++
+ backend/manager/tools/engine-config/pom.xml | 4 ++++
+ backend/manager/tools/engine-tools-common/pom.xml | 5 +++++
+ pom.xml | 7 +++++++
+ 4 files changed, 21 insertions(+)
+
+diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml
+index d47ed1f..bfb2d20 100644
+--- a/backend/manager/modules/utils/pom.xml
++++ b/backend/manager/modules/utils/pom.xml
+@@ -138,6 +138,11 @@
+ <scope>provided</scope>
+ </dependency>
+
++ <dependency>
++ <groupId>log4j</groupId>
++ <artifactId>log4j</artifactId>
++ </dependency>
++
+ </dependencies>
+
+ <build>
+diff --git a/backend/manager/tools/engine-config/pom.xml b/backend/manager/tools/engine-config/pom.xml
+index 3902f7e..4acc573 100644
+--- a/backend/manager/tools/engine-config/pom.xml
++++ b/backend/manager/tools/engine-config/pom.xml
+@@ -32,6 +32,10 @@
+ <version>${commons-jxpath.version}</version>
+ <scope>provided</scope>
+ </dependency>
++ <dependency>
++ <groupId>log4j</groupId>
++ <artifactId>log4j</artifactId>
++ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+diff --git a/backend/manager/tools/engine-tools-common/pom.xml b/backend/manager/tools/engine-tools-common/pom.xml
+index 9e56602..412dc15 100644
+--- a/backend/manager/tools/engine-tools-common/pom.xml
++++ b/backend/manager/tools/engine-tools-common/pom.xml
+@@ -37,6 +37,11 @@
+ <version>${commons-jxpath.version}</version>
+ <scope>provided</scope>
+ </dependency>
++ <dependency>
++ <groupId>log4j</groupId>
++ <artifactId>log4j</artifactId>
++ <scope>provided</scope>
++ </dependency>
+ </dependencies>
+
+ <build>
+diff --git a/pom.xml b/pom.xml
+index a83acea..aa90150 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -68,6 +68,7 @@
+ <commons-jxpath.version>1.3</commons-jxpath.version>
+ <jaxb-impl.version>2.2</jaxb-impl.version>
+ <jbosssx-bare.version>2.0.4</jbosssx-bare.version>
++ <log4j.version>1.2.16</log4j.version>
+ </properties>
+
+ <dependencyManagement>
+@@ -240,6 +241,12 @@
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-mapper-asl.version}</version>
+ </dependency>
++
++ <dependency>
++ <groupId>log4j</groupId>
++ <artifactId>log4j</artifactId>
++ <version>${log4j.version}</version>
++ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+--
+1.7.9.3
+
diff --git a/ovirt-engine-add-modules.patch b/ovirt-engine-add-modules.patch
new file mode 100644
index 0000000..ca02a40
--- /dev/null
+++ b/ovirt-engine-add-modules.patch
@@ -0,0 +1,166 @@
+commit 6d8504a86f3783dddfae3763b23baa4022faea00
+Author: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Tue Apr 24 19:50:46 2012 +0200
+
+ modules
+
+diff --git a/deployment/modules/com/sun/xml/bind/main/module.xml b/deployment/modules/com/sun/xml/bind/main/module.xml
+new file mode 100644
+index 0000000..22d4fad
+--- /dev/null
++++ b/deployment/modules/com/sun/xml/bind/main/module.xml
+@@ -0,0 +1,39 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!--
++ ~ JBoss, Home of Professional Open Source.
++ ~ Copyright 2011, Red Hat, Inc., and individual contributors
++ ~ as indicated by the @author tags. See the copyright.txt file in the
++ ~ distribution for a full listing of individual contributors.
++ ~
++ ~ This is free software; you can redistribute it and/or modify it
++ ~ under the terms of the GNU Lesser General Public License as
++ ~ published by the Free Software Foundation; either version 2.1 of
++ ~ the License, or (at your option) any later version.
++ ~
++ ~ This software 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 software; if not, write to the Free
++ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
++ -->
++
++<module xmlns="urn:jboss:module:1.1" name="com.sun.xml.bind">
++
++ <resources>
++ <resource-root path="jaxb-impl.jar"/>
++ <resource-root path="jaxb-xjc.jar"/>
++ <!-- Insert resources here -->
++ </resources>
++
++ <dependencies>
++ <module name="javax.api" />
++ <module name="javax.xml.bind.api" />
++ <module name="javax.xml.stream.api" />
++ </dependencies>
++</module>
++
+diff --git a/deployment/modules/org/hibernate/validator/main/module.xml b/deployment/modules/org/hibernate/validator/main/module.xml
+new file mode 100644
+index 0000000..69355b0
+--- /dev/null
++++ b/deployment/modules/org/hibernate/validator/main/module.xml
+@@ -0,0 +1,45 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!--
++ ~ JBoss, Home of Professional Open Source.
++ ~ Copyright 2010, Red Hat, Inc., and individual contributors
++ ~ as indicated by the @author tags. See the copyright.txt file in the
++ ~ distribution for a full listing of individual contributors.
++ ~
++ ~ This is free software; you can redistribute it and/or modify it
++ ~ under the terms of the GNU Lesser General Public License as
++ ~ published by the Free Software Foundation; either version 2.1 of
++ ~ the License, or (at your option) any later version.
++ ~
++ ~ This software 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 software; if not, write to the Free
++ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
++ -->
++
++<module xmlns="urn:jboss:module:1.1" name="org.hibernate.validator">
++ <resources>
++ <resource-root path="hibernate-validator.jar"/>
++ <resource-root path="jtype.jar"/>
++ <!-- Insert resources here -->
++ </resources>
++
++ <dependencies>
++ <module name="javax.api"/>
++ <module name="javax.persistence.api"/>
++ <module name="javax.validation.api"/>
++ <module name="javax.persistence.api"/>
++ <module name="javax.xml.bind.api"/>
++ <module name="org.jboss.logging"/>
++ <module name="org.jboss.common-core"/>
++ <module name="org.joda.time"/>
++ <module name="org.slf4j"/>
++ <module name="org.apache.xerces" services="import"/>
++ <module name="sun.jdk" services="import"/>
++ </dependencies>
++</module>
+diff --git a/deployment/modules/sun/jdk/main/module.xml b/deployment/modules/sun/jdk/main/module.xml
+deleted file mode 100644
+index 090b542..0000000
+--- a/deployment/modules/sun/jdk/main/module.xml
++++ /dev/null
+@@ -1,58 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-
+-<!--
+- ~ JBoss, Home of Professional Open Source.
+- ~ Copyright 2010, Red Hat, Inc., and individual contributors
+- ~ as indicated by the @author tags. See the copyright.txt file in the
+- ~ distribution for a full listing of individual contributors.
+- ~
+- ~ This is free software; you can redistribute it and/or modify it
+- ~ under the terms of the GNU Lesser General Public License as
+- ~ published by the Free Software Foundation; either version 2.1 of
+- ~ the License, or (at your option) any later version.
+- ~
+- ~ This software 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 software; if not, write to the Free
+- ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+- ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+- -->
+-<module xmlns="urn:jboss:module:1.1" name="sun.jdk">
+- <resources>
+- <!-- currently jboss modules has not way of importing services from
+- classes.jar so we duplicate them here -->
+- <resource-root path="service-loader-resources"/>
+- </resources>
+- <dependencies>
+- <system export="true">
+- <paths>
+- <path name="com/sun/script/javascript"/>
+- <path name="com/sun/jndi/dns"/>
+- <path name="com/sun/jndi/url"/>
+- <path name="com/sun/jndi/url/dns"/>
+- <path name="com/sun/jndi/ldap"/>
+- <path name="com/sun/security/auth"/>
+- <path name="com/sun/security/auth/login"/>
+- <path name="com/sun/security/auth/module"/>
+- <path name="sun/misc"/>
+- <path name="sun/security"/>
+- <path name="sun/security/krb5"/>
+- <path name="sun/nio"/>
+- <path name="sun/nio/ch"/>
+- <path name="sun/util"/>
+- <path name="sun/util/calendar"/>
+- <path name="sun/security/provider"/>
+- <path name="META-INF/services"/>
+- </paths>
+- <exports>
+- <include-set>
+- <path name="META-INF/services"/>
+- </include-set>
+- </exports>
+- </system>
+- </dependencies>
+-</module>
diff --git a/ovirt-engine-add-pghack-missing-methods.patch b/ovirt-engine-add-pghack-missing-methods.patch
new file mode 100644
index 0000000..938ef24
--- /dev/null
+++ b/ovirt-engine-add-pghack-missing-methods.patch
@@ -0,0 +1,38 @@
+From 91067d4ccfbbc654fe09bdfcc251b59fd0182443 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 13:58:36 +0100
+Subject: [PATCH] Add missing methods from PGHack
+
+The method "getParentLogger" has been added in Java 7.
+
+Change-Id: Ife2279fb8a64e8078905128a8f0f16a120453e70
+---
+ .../org/ovirt/engine/core/dal/dbbroker/PGHack.java | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PGHack.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PGHack.java
+index 14e725d..dafbee8 100644
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PGHack.java
++++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PGHack.java
+@@ -3,6 +3,8 @@ package org.ovirt.engine.core.dal.dbbroker;
+ import java.io.PrintWriter;
+ import java.sql.Connection;
+ import java.sql.SQLException;
++import java.sql.SQLFeatureNotSupportedException;
++import java.util.logging.Logger;
+
+ import javax.sql.DataSource;
+
+@@ -60,4 +62,9 @@ public class PGHack implements DataSource {
+ return real.unwrap(iface);
+ }
+
++ @Override
++ public Logger getParentLogger() throws SQLFeatureNotSupportedException {
++ return real.getParentLogger();
++ }
++
+ }
+--
+1.7.7.6
+
diff --git a/ovirt-engine-add-readme.patch b/ovirt-engine-add-readme.patch
index d124283..70e09e5 100644
--- a/ovirt-engine-add-readme.patch
+++ b/ovirt-engine-add-readme.patch
@@ -1,13 +1,3 @@
-From 30265235214f59e7f55878bcfaa45b012b83e1f2 Mon Sep 17 00:00:00 2001
-From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Sat, 9 Jun 2012 15:04:01 +0200
-Subject: [PATCH] core: Add README
-
----
- README | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
- create mode 100644 README
-
diff --git a/README b/README
new file mode 100644
index 0000000..8dc7f39
@@ -34,6 +24,3 @@ index 0000000..8dc7f39
+In addition oVirt provides a crucial venue for user and developer cooperation,
+and is the first truly open and comprehensive data centre virtualization
+management initiative.
---
-1.7.10.2
-
diff --git a/ovirt-engine-add-resteasy-listener-to-restapi.patch b/ovirt-engine-add-resteasy-listener-to-restapi.patch
new file mode 100644
index 0000000..2bcabcc
--- /dev/null
+++ b/ovirt-engine-add-resteasy-listener-to-restapi.patch
@@ -0,0 +1,34 @@
+diff --git a/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/web.xml b/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/web.xml
+index 3f77945..5ed3ceb 100644
+--- a/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/web.xml
++++ b/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/web.xml
+@@ -6,6 +6,29 @@
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+
++ <listener>
++ <listener-class>
++ org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
++ </listener-class>
++ </listener>
++
++ <servlet>
++ <servlet-name>Resteasy</servlet-name>
++ <servlet-class>
++ org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
++ </servlet-class>
++ <init-param>
++ <param-name>javax.ws.rs.Application</param-name>
++ <param-value>org.ovirt.engine.api.restapi.BackendApplication</param-value>
++ </init-param>
++ </servlet>
++
++ <servlet-mapping>
++ <servlet-name>Resteasy</servlet-name>
++ <url-pattern>/*</url-pattern>
++ </servlet-mapping>
++
++
+ <!-- <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Protected Context</web-resource-name>
diff --git a/ovirt-engine-add-systemd-service.patch b/ovirt-engine-add-systemd-service.patch
new file mode 100644
index 0000000..2765377
--- /dev/null
+++ b/ovirt-engine-add-systemd-service.patch
@@ -0,0 +1,421 @@
+commit 5d5282f63c2284453e8a6ab254359eb6ad97c788
+Author: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Wed Apr 18 16:39:13 2012 +0200
+
+ add-fedora-service
+
+diff --git a/packaging/fedora/ovirt-engine-logging.properties b/packaging/fedora/ovirt-engine-logging.properties
+new file mode 100644
+index 0000000..49a22bf
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine-logging.properties
+@@ -0,0 +1,23 @@
++# Additional logger names to configure (root logger is always configured)
++loggers=org.jboss.as.config
++
++# Dump system environment at boot by default
++logger.org.jboss.as.config.level=DEBUG
++
++# Root logger level
++logger.level=INFO
++# Root logger handlers
++logger.handlers=FILE
++
++# File handler configuration
++handler.FILE=org.jboss.logmanager.handlers.FileHandler
++handler.FILE.level=DEBUG
++handler.FILE.properties=autoFlush,fileName
++handler.FILE.autoFlush=true
++handler.FILE.fileName=/var/log/ovirt-engine/boot.log
++handler.FILE.formatter=PATTERN
++
++# Formatter pattern configuration
++formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
++formatter.PATTERN.properties=pattern
++formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n
+diff --git a/packaging/fedora/ovirt-engine-users.properties b/packaging/fedora/ovirt-engine-users.properties
+new file mode 100644
+index 0000000..d0807d7
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine-users.properties
+@@ -0,0 +1,22 @@
++#
++# Properties declaration of users for the realm 'ManagementRealm' which is the default realm
++# for new AS 7.1 installations. Further authentication mechanism can be configured
++# as part of the <management /> in standalone.xml.
++#
++# Users can be added to this properties file at any time, updates after the server has started
++# will be automatically detected.
++#
++# By default the properties realm expects the entries to be in the format: -
++# username=HEX( MD5( username ':' realm ':' password))
++#
++# A utility script is provided which can be executed from the bin folder to add the users: -
++# - Linux
++# bin/add-user.sh
++#
++# - Windows
++# bin\add-user.bat
++
++# The following illustrates how an admin user could be defined, this
++# is for illustration only and does not correspond to a usable password.
++#
++#admin=2a0923285184943425d1f53ddd58ec7a
+diff --git a/packaging/fedora/ovirt-engine.service b/packaging/fedora/ovirt-engine.service
+new file mode 100644
+index 0000000..53d988f
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine.service
+@@ -0,0 +1,11 @@
++[Unit]
++Description=oVirt Engine
++After=network.service
++
++[Service]
++EnvironmentFile=/etc/sysconfig/ovirt-engine
++ExecStart=/usr/share/ovirt-engine/bin/ovirt-engine.sh
++User=ovirt
++
++[Install]
++WantedBy=multi-user.target
+diff --git a/packaging/fedora/ovirt-engine.sh b/packaging/fedora/ovirt-engine.sh
+new file mode 100755
+index 0000000..b4567a5
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine.sh
+@@ -0,0 +1,53 @@
++#!/bin/sh
++
++# Base directories for the engine and for the application server:
++JBOSS_BASE=${JBOSS_BASE:-/usr/share/jboss-as}
++ENGINE_BASE=${ENGINE_BASE:-/usr/share/ovirt-engine}
++
++# Defaults for the heap size:
++ENGINE_MIN_HEAP=${ENGINE_HEAP_MIN:-1g}
++ENGINE_MAX_HEAP=${ENGINE_HEAP_MIN:-1g}
++
++# Module path should include first the engine modules so that they can override
++# those provided by the application server if needed:
++ENGINE_MODULEPATH=${ENGINE_MODULEPATH:-${ENGINE_BASE}/modules:${JBOSS_BASE}/modules}
++
++# Virtual machine options:
++OPTIONS="-server"
++OPTIONS="${OPTIONS} -XX:+UseCompressedOops"
++OPTIONS="${OPTIONS} -XX:+TieredCompilation"
++OPTIONS="${OPTIONS} -Xms${ENGINE_MIN_HEAP}"
++OPTIONS="${OPTIONS} -Xms${ENGINE_MAX_HEAP}"
++OPTIONS="${OPTIONS} -XX:MaxPermSize=256m"
++OPTIONS="${OPTIONS} -Djava.net.preferIPv4Stack=true"
++OPTIONS="${OPTIONS} -Dsun.rmi.dgc.client.gcInterval=3600000"
++OPTIONS="${OPTIONS} -Dsun.rmi.dgc.server.gcInterval=3600000"
++OPTIONS="${OPTIONS} -Djava.awt.headless=true"
++
++# Application server options:
++OPTIONS="${OPTIONS} -Dlogging.configuration=file:///etc/ovirt-engine/ovirt-engine-logging.properties"
++OPTIONS="${OPTIONS} -Dorg.jboss.resolver.warning=true"
++OPTIONS="${OPTIONS} -Djboss.modules.system.pkgs=org.jboss.byteman"
++OPTIONS="${OPTIONS} -Djboss.server.default.config=ovirt-engine.xml"
++OPTIONS="${OPTIONS} -Djboss.home.dir=${JBOSS_BASE}"
++OPTIONS="${OPTIONS} -Djboss.server.base.dir=${ENGINE_BASE}"
++OPTIONS="${OPTIONS} -Djboss.server.config.dir=/etc/ovirt-engine"
++OPTIONS="${OPTIONS} -Djboss.server.data.dir=/var/lib/ovirt-engine"
++OPTIONS="${OPTIONS} -Djboss.server.log.dir=/var/log/ovirt-engine"
++OPTIONS="${OPTIONS} -Djboss.server.temp.dir=/var/cache/ovirt-engine"
++OPTIONS="${OPTIONS} -Djboss.controller.temp.dir=/var/cache/ovirt-engine"
++
++# Remove and recreate deployment markers:
++/bin/rm -f ${ENGINE_BASE}/deployments/engine.ear.*
++/bin/touch ${ENGINE_BASE}/deployments/engine.ear.dodeploy
++/bin/rm -f ${ENGINE_BASE}/deployments/ROOT.war.*
++/bin/touch ${ENGINE_BASE}/deployments/ROOT.war.dodeploy
++
++# Start the java virtual machine:
++exec /bin/java \
++ ${OPTIONS} \
++ -jar ${JBOSS_BASE}/jboss-modules.jar \
++ -mp ${ENGINE_MODULEPATH} \
++ -jaxpmodule javax.xml.jaxp-provider \
++ org.jboss.as.standalone \
++ -c ovirt-engine.xml
+diff --git a/packaging/fedora/ovirt-engine.sysconfig b/packaging/fedora/ovirt-engine.sysconfig
+new file mode 100644
+index 0000000..fe0565e
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine.sysconfig
+@@ -0,0 +1,5 @@
++# These variables control the amount of memory used by the java virtual machine
++# where the engine runs:
++#
++#ENGINE_MIN_HEAP=1g
++#ENGINE_MAX_HEAP=1g
+diff --git a/packaging/fedora/ovirt-engine.xml b/packaging/fedora/ovirt-engine.xml
+new file mode 100644
+index 0000000..2a9b8c8
+--- /dev/null
++++ b/packaging/fedora/ovirt-engine.xml
+@@ -0,0 +1,265 @@
++<?xml version="1.0" ?>
++
++<server xmlns="urn:jboss:domain:1.1">
++
++ <extensions>
++ <extension module="org.jboss.as.connector"/>
++ <extension module="org.jboss.as.deployment-scanner"/>
++ <extension module="org.jboss.as.ee"/>
++ <extension module="org.jboss.as.ejb3"/>
++ <extension module="org.jboss.as.jmx"/>
++ <extension module="org.jboss.as.jpa"/>
++ <extension module="org.jboss.as.logging"/>
++ <extension module="org.jboss.as.naming"/>
++ <extension module="org.jboss.as.remoting"/>
++ <extension module="org.jboss.as.security"/>
++ <extension module="org.jboss.as.threads"/>
++ <extension module="org.jboss.as.transactions"/>
++ <extension module="org.jboss.as.web"/>
++ </extensions>
++
++ <management>
++ <security-realms>
++ <security-realm name="ManagementRealm">
++ <authentication>
++ <properties path="/etc/ovirt-engine/ovirt-engine-users.properties"/>
++ </authentication>
++ </security-realm>
++ </security-realms>
++ <management-interfaces>
++ <native-interface security-realm="ManagementRealm">
++ <socket-binding native="management-native"/>
++ </native-interface>
++ <http-interface security-realm="ManagementRealm" console-enabled="false">
++ <socket-binding http="management-http"/>
++ </http-interface>
++ </management-interfaces>
++ </management>
++
++ <profile>
++ <subsystem xmlns="urn:jboss:domain:logging:1.1">
++ <periodic-rotating-file-handler name="FILE" autoflush="true">
++ <level name="INFO"/>
++ <formatter>
++ <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
++ </formatter>
++ <file path="/var/log/ovirt-engine/server.log"/>
++ <suffix value=".yyyy-MM-dd"/>
++ </periodic-rotating-file-handler>
++ <size-rotating-file-handler name="ENGINE" autoflush="true">
++ <level name="INFO"/>
++ <formatter>
++ <pattern-formatter pattern="%d %-5p [%c] (%t) %s%E%n"/>
++ </formatter>
++ <file path="/var/log/ovirt-engine/engine.log"/>
++ <rotate-size value="1M"/>
++ <max-backup-index value="30"/>
++ <append value="true"/>
++ </size-rotating-file-handler>
++ <logger category="com.arjuna">
++ <level name="WARN"/>
++ </logger>
++ <logger category="org.apache.tomcat.util.modeler">
++ <level name="WARN"/>
++ </logger>
++ <logger category="sun.rmi">
++ <level name="WARN"/>
++ </logger>
++ <logger category="org.ovirt">
++ <level name="INFO"/>
++ <handlers>
++ <handler name="ENGINE"/>
++ </handlers>
++ </logger>
++ <logger category="org.ovirt.engine.core.bll">
++ <level name="INFO"/>
++ </logger>
++ <logger category="org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresJdbcTemplate">
++ <level name="WARN"/>
++ </logger>
++ <logger category="org.springframework.ldap">
++ <level name="ERROR"/>
++ </logger>
++ <root-logger>
++ <level name="INFO"/>
++ <handlers>
++ <handler name="FILE"/>
++ </handlers>
++ </root-logger>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:datasources:1.0">
++ <datasources>
++ <datasource jndi-name="java:/ENGINEDataSource" pool-name="ENGINEDataSource" enabled="true">
++ <connection-url>jdbc:postgresql://localhost:5432/engine</connection-url>
++ <driver>postgresql</driver>
++ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
++ <pool>
++ <min-pool-size>1</min-pool-size>
++ <max-pool-size>100</max-pool-size>
++ <prefill>true</prefill>
++ </pool>
++ <security>
++ <user-name>engine</user-name>
++ <security-domain>EncryptDBPassword</security-domain>
++ </security>
++ <statement>
++ <prepared-statement-cache-size>100</prepared-statement-cache-size>
++ </statement>
++ </datasource>
++ <drivers>
++ <driver name="postgresql" module="org.postgresql">
++ <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
++ </driver>
++ </drivers>
++ </datasources>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
++ <deployment-scanner path="/usr/share/ovirt-engine/deployments" scan-enabled="true" scan-interval="5000" auto-deploy-zipped="false" deployment-timeout="60"/>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:ee:1.0"/>
++ <subsystem xmlns="urn:jboss:domain:ejb3:1.2">
++ <session-bean>
++ <stateless>
++ <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
++ </stateless>
++ <stateful default-access-timeout="300000" cache-ref="simple"/>
++ <singleton default-access-timeout="300000"/>
++ </session-bean>
++ <mdb>
++ <resource-adapter-ref resource-adapter-name="hornetq-ra"/>
++ <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
++ </mdb>
++ <pools>
++ <bean-instance-pools>
++ <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
++ <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
++ </bean-instance-pools>
++ </pools>
++ <caches>
++ <cache name="simple" aliases="NoPassivationCache"/>
++ </caches>
++ <async thread-pool-name="default"/>
++ <timer-service thread-pool-name="default">
++ <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/>
++ </timer-service>
++ <remote connector-ref="remoting-connector" thread-pool-name="default"/>
++ <thread-pools>
++ <thread-pool name="default">
++ <max-threads count="10"/>
++ <keepalive-time time="100" unit="milliseconds"/>
++ </thread-pool>
++ </thread-pools>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:jca:1.1">
++ <archive-validation enabled="false" fail-on-error="false" fail-on-warn="false"/>
++ <bean-validation enabled="true"/>
++ <default-workmanager>
++ <short-running-threads>
++ <core-threads count="50"/>
++ <queue-length count="50"/>
++ <max-threads count="50"/>
++ <keepalive-time time="10" unit="seconds"/>
++ </short-running-threads>
++ <long-running-threads>
++ <core-threads count="50"/>
++ <queue-length count="50"/>
++ <max-threads count="50"/>
++ <keepalive-time time="10" unit="seconds"/>
++ </long-running-threads>
++ </default-workmanager>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:jmx:1.1">
++ <show-model value="true"/>
++ <remoting-connector/>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:jpa:1.0">
++ <jpa default-datasource=""/>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:naming:1.1"/>
++ <subsystem xmlns="urn:jboss:domain:remoting:1.1">
++ <connector name="remoting-connector" socket-binding="remoting"/>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>
++ <subsystem xmlns="urn:jboss:domain:security:1.1">
++ <security-domains>
++ <security-domain name="other" cache-type="default">
++ <authentication>
++ <login-module code="Remoting" flag="optional">
++ <module-option name="password-stacking" value="useFirstPass"/>
++ </login-module>
++ <login-module code="RealmUsersRoles" flag="required">
++ <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>
++ <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>
++ <module-option name="realm" value="ApplicationRealm"/>
++ <module-option name="password-stacking" value="useFirstPass"/>
++ </login-module>
++ </authentication>
++ </security-domain>
++ <security-domain name="jboss-web-policy" cache-type="default">
++ <authorization>
++ <policy-module code="Delegating" flag="required"/>
++ </authorization>
++ </security-domain>
++ <security-domain name="jboss-ejb-policy" cache-type="default">
++ <authorization>
++ <policy-module code="Delegating" flag="required"/>
++ </authorization>
++ </security-domain>
++ <security-domain name="EngineKerberosAuth">
++ <authentication>
++ <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required"/>
++ </authentication>
++ </security-domain>
++ <security-domain name="EncryptDBPassword">
++ <authentication>
++ <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
++ <module-option name="username" value="engine"/>
++ <module-option name="password" value=""/>
++ <module-option name="managedConnectionFactoryName" value="jboss.jca:name=ENGINEDataSource,service=LocalTxCM"/>
++ </login-module>
++ </authentication>
++ </security-domain>
++ </security-domains>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:transactions:1.1">
++ <core-environment>
++ <process-id>
++ <uuid/>
++ </process-id>
++ </core-environment>
++ <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
++ <coordinator-environment default-timeout="300"/>
++ </subsystem>
++ <subsystem xmlns="urn:jboss:domain:threads:1.1"/>
++ <subsystem xmlns="urn:jboss:domain:web:1.1" native="false" default-virtual-server="default-host">
++ <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
++ <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enable-lookups="false" secure="true">
++ <ssl name="ssl" password="mypass" certificate-key-file="/etc/pki/ovirt-engine/.keystore" protocol="TLSv1" verify-client="false"/>
++ </connector>
++ <virtual-server name="default-host" enable-welcome-root="false">
++ <alias name="localhost"/>
++ <alias name="example.com"/>
++ </virtual-server>
++ </subsystem>
++ </profile>
++
++ <interfaces>
++ <interface name="management">
++ <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
++ </interface>
++ <interface name="public">
++ <any-address/>
++ </interface>
++ </interfaces>
++
++ <socket-binding-group name="standard-sockets" default-interface="public">
++ <socket-binding name="http" port="8080"/>
++ <socket-binding name="https" port="8443"/>
++ <socket-binding name="management-native" interface="management" port="9999"/>
++ <socket-binding name="management-http" interface="management" port="9990"/>
++ <socket-binding name="remoting" port="4447"/>
++ <socket-binding name="txn-recovery-environment" port="4712"/>
++ <socket-binding name="txn-status-manager" port="4713"/>
++ </socket-binding-group>
++
++</server>
diff --git a/ovirt-engine-build-backend-only.patch b/ovirt-engine-build-backend-only.patch
index dcaa80f..1b2d0ca 100644
--- a/ovirt-engine-build-backend-only.patch
+++ b/ovirt-engine-build-backend-only.patch
@@ -1,25 +1,13 @@
-From 07eb6a6ca8ba8481951104e651fd553bfe3b2ba3 Mon Sep 17 00:00:00 2001
-From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Fri, 25 May 2012 15:39:51 +0200
-Subject: [PATCH 01/11] build-backend-only
-
----
- pom.xml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
diff --git a/pom.xml b/pom.xml
-index 6afb328..4750981 100644
+index 835d89c..f9218e4 100644
--- a/pom.xml
+++ b/pom.xml
-@@ -9,7 +9,7 @@
+@@ -11,7 +11,7 @@
<modules>
- <module>build-tools-root</module>
+ <module>build-tools</module>
<module>backend</module>
- <module>frontend</module>
+ <!-- <module>frontend</module> -->
<module>ear</module>
</modules>
- <properties>
---
-1.7.10.2
-
+
diff --git a/ovirt-engine-create-database-and-serial-when-needed.patch b/ovirt-engine-create-database-and-serial-when-needed.patch
new file mode 100644
index 0000000..8c07f78
--- /dev/null
+++ b/ovirt-engine-create-database-and-serial-when-needed.patch
@@ -0,0 +1,25 @@
+diff --git a/backend/manager/conf/ca/CreateCA.sh b/backend/manager/conf/ca/CreateCA.sh
+index 3d26267..4297861 100755
+--- a/backend/manager/conf/ca/CreateCA.sh
++++ b/backend/manager/conf/ca/CreateCA.sh
+@@ -27,6 +27,20 @@ echo C = $1 >> cacert.conf
+ echo O = $2 >> cacert.conf
+ echo CN = $3 >> cacert.conf
+
++# Create the database.txt and serial.txt files if they don't
++# exist, making sure that the application server can read and
++# write them:
++if [ ! -f database.txt ]
++then
++ touch database.txt
++ chown jboss-as database.txt
++fi
++if [ ! -f serial.txt ]
++then
++ echo 01 > serial.txt
++ chown jboss-as serial.txt
++fi
++
+ openssl genrsa -out private/ca.pem 1024 && openssl req -new -key private/ca.pem -config cacert.conf -out requests/ca.csr && openssl ca -selfsign -out ca.pem -in requests/ca.csr -keyfile private/ca.pem -days 3650 -startdate $4 -config openssl.conf -extfile cacert.conf -extensions v3_ca -batch
+
+ exit $?
diff --git a/ovirt-engine-dont-use-activation.patch b/ovirt-engine-dont-use-activation.patch
new file mode 100644
index 0000000..fd4888b
--- /dev/null
+++ b/ovirt-engine-dont-use-activation.patch
@@ -0,0 +1,57 @@
+From 55cebc3c95fa3b4c270fdfa9a97866c80487e381 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Mon, 27 Feb 2012 11:52:44 +0100
+Subject: [PATCH 1/4] Don't use activation
+
+Change-Id: I152b4091300666a10e7d608404207998157f6d75
+---
+ .../engine-notifier-service/pom.xml | 7 -------
+ pom.xml | 7 -------
+ 2 files changed, 0 insertions(+), 14 deletions(-)
+
+diff --git a/backend/manager/tools/engine-notifier/engine-notifier-service/pom.xml b/backend/manager/tools/engine-notifier/engine-notifier-service/pom.xml
+index f1a4eff..b8a969f 100644
+--- a/backend/manager/tools/engine-notifier/engine-notifier-service/pom.xml
++++ b/backend/manager/tools/engine-notifier/engine-notifier-service/pom.xml
+@@ -42,13 +42,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>javax.activation</groupId>
+- <artifactId>activation</artifactId>
+- <version>${activation.version}</version>
+- <scope>provided</scope>
+- </dependency>
+-
+- <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>${commons-configuration.version}</version>
+diff --git a/pom.xml b/pom.xml
+index 835d89c..53d788c 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -58,7 +58,6 @@
+ <easymock.version>3.0</easymock.version>
+ <javassist.version>3.12.0.GA</javassist.version>
+ <javax.mail.version>1.4.4</javax.mail.version>
+- <activation.version>1.1</activation.version>
+ <hibernate-core.version>3.3.0.SP1</hibernate-core.version>
+ <hibernate-validator.version>4.0.2.GA</hibernate-validator.version>
+ <hibernate-annotations.version>3.4.0.GA</hibernate-annotations.version>
+@@ -196,12 +195,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>javax.activation</groupId>
+- <artifactId>activation</artifactId>
+- <version>${activation.version}</version>
+- </dependency>
+-
+- <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${hibernate-core.version}</version>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-dont-use-hibernate-string-helper.patch b/ovirt-engine-dont-use-hibernate-string-helper.patch
new file mode 100644
index 0000000..d555fd5
--- /dev/null
+++ b/ovirt-engine-dont-use-hibernate-string-helper.patch
@@ -0,0 +1,48 @@
+From 0be1c6eeac7bd3cf46be8666129d74ed2ec4ff5f Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 17:36:21 +0100
+Subject: [PATCH] Don't use hibernate string helper
+
+Change-Id: If891e2693032d8f747cdbbdb1e842fb84711640b
+---
+ .../engine/core/bll/ChangeVMClusterCommand.java | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
+index cdc870e..c2a1e55 100644
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
++++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
+@@ -5,7 +5,6 @@ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+
+-import org.hibernate.annotations.common.util.StringHelper;
+ import org.ovirt.engine.core.common.AuditLogType;
+ import org.ovirt.engine.core.common.VdcObjectType;
+ import org.ovirt.engine.core.common.action.ChangeVMClusterParameters;
+@@ -83,10 +82,11 @@ public class ChangeVMClusterCommand<T extends ChangeVMClusterParameters> extends
+ List<network> networks = DbFacade.getInstance().getNetworkDAO().getAllForCluster(getParameters().getClusterId());
+ StringBuilder missingNets = new StringBuilder();
+ for (VmNetworkInterface iface: interfaces) {
+- if (!StringHelper.isEmpty(iface.getNetworkName())) {
++ String netName = iface.getNetworkName();
++ if (!"".equals(netName)) {
+ boolean exists = false;
+ for (network net: networks) {
+- if (net.getname().equals(iface.getNetworkName())) {
++ if (net.getname().equals(netName)) {
+ exists = true;
+ break;
+ }
+@@ -95,7 +95,7 @@ public class ChangeVMClusterCommand<T extends ChangeVMClusterParameters> extends
+ if (missingNets.length() > 0) {
+ missingNets.append(", ");
+ }
+- missingNets.append(iface.getNetworkName());
++ missingNets.append(netName);
+ }
+ }
+ }
+--
+1.7.7.6
+
diff --git a/ovirt-engine-fix-classpath-building-in-scripts.patch b/ovirt-engine-fix-classpath-building-in-scripts.patch
new file mode 100644
index 0000000..688b01f
--- /dev/null
+++ b/ovirt-engine-fix-classpath-building-in-scripts.patch
@@ -0,0 +1,296 @@
+diff --git a/backend/manager/conf/ca/generate-ssh-keys b/backend/manager/conf/ca/generate-ssh-keys
+index f4e2112..7ab45c0 100755
+--- a/backend/manager/conf/ca/generate-ssh-keys
++++ b/backend/manager/conf/ca/generate-ssh-keys
+@@ -5,9 +5,12 @@ CA_DIR=`dirname ${0}`
+ KEY_STORE="${CA_DIR}/.keystore"
+ KEY_ALIAS="engine"
+ STORE_PASS="NoSoup4U"
+-JBOSS_HOME="/usr/share/jboss-as"
+-EAR_LIB="${JBOSS_HOME}/standalone/deployments/engine.ear/lib"
+-CLASS_PATH="${EAR_LIB}/engineencryptutils-3.0.0-0001.jar:${EAR_LIB}/engine-compat.jar:${JBOSS_HOME}/modules/org/jboss/logging/main/jboss-logging-3.1.0.CR2.jar:${EAR_LIB}/commons-codec-1.4.jar"
++CLASS_PATH=$(build-classpath \
++ovirt-engine/engineencryptutils \
++ovirt-engine/compat \
++jboss-logging \
++apache-commons-codec \
++)
+ SSH_PRIV_KEY="${CA_DIR}/keys/engine_id_rsa"
+ PKEY_8="${CA_DIR}/keys/privatekey.pkcs8"
+
+diff --git a/backend/manager/conf/ca/store-utils.sh b/backend/manager/conf/ca/store-utils.sh
+index d6d518e..0b6ab71 100755
+--- a/backend/manager/conf/ca/store-utils.sh
++++ b/backend/manager/conf/ca/store-utils.sh
+@@ -37,7 +37,12 @@ else
+ EAR_LIB=$6
+ fi
+
+-CP=$EAR_LIB/engineencryptutils-3.0.0-0001.jar:$EAR_LIB/engine-compat.jar:$JB_HOME/common/lib/commons-logging.jar:$EAR_LIB/commons-codec-1.4.jar
++CP=$(build-classpath \
++ovirt-engine/engineencryptutils \
++ovirt-engine/compat \
++apache-commons-logging \
++apache-commons-codec \
++)
+
+ if [ "$1" == "-pfx" ]; then
+ PKEY_8=privatekey.pkcs8
+diff --git a/backend/manager/conf/kerberos/engine-manage-domains b/backend/manager/conf/kerberos/engine-manage-domains
+index 4258d61..73f687e 100755
+--- a/backend/manager/conf/kerberos/engine-manage-domains
++++ b/backend/manager/conf/kerberos/engine-manage-domains
+@@ -90,20 +90,26 @@ if [ "$1" == "--help" -o "$1" == "-h" ]; then
+ exit 0
+ fi
+
+-# Take configuration from configuration file
+-ENGINE_LIB_PATH=$engineLibPath
+-JAVA_LIB_HOME=/usr/share/java
+-LOCAL_LIB=lib
+-
+-if [ ! -d $ENGINE_LIB_PATH ]; then
+- die "Error: oVirt Engine library path does not exist"
+-fi
+-
+-if [ ! -d $JAVA_LIB_HOME ]; then
+- die "Error: java library path does not exist"
+-fi
+-
+-CP=$CONF_DIR:$JAVA_LIB_HOME/commons-logging.jar:$JAVA_LIB_HOME/commons-collections.jar:$JAVA_LIB_HOME/commons-lang.jar:$JAVA_LIB_HOME/commons-configuration.jar:$JAVA_LIB_HOME/commons-jxpath.jar:$JAVA_LIB_HOME/log4j.jar:$JAVA_LIB_HOME/commons-codec.jar:$JAVA_LIB_HOME/postgresql-jdbc.jar:$LOCAL_LIB/engine-compat.jar:$JAVA_LIB_HOME/engine-tools-common.jar:$ENGINE_LIB_PATH/utils-3.0.0-0001.jar:$ENGINE_LIB_PATH/engine-common.jar:$ENGINE_LIB_PATH/spring-tx-2.5.6.SEC02.jar:$ENGINE_LIB_PATH/commons-lang-2.4.jar:$ENGINE_LIB_PATH/spring-beans-2.5.6.SEC02.jar:$ENGINE_LIB_PATH/spring-core-2.5.6.SEC02.jar:$ENGINE_LIB_PATH/spring-ldap-core-1.3.0.RELEASE.jar:$ENGINE_LIB_PATH/engineencryptutils-3.0.0-0001.jar
++CP=$CONF_DIR:$(build-classpath \
++apache-commons-logging.jar \
++apache-commons-collections \
++apache-commons-lang \
++apache-commons-configuration \
++apache-commons-jxpath \
++log4j \
++apache-commons-codec \
++postgresql-jdbc \
++ovirt-engine/compat \
++ovirt-engine/engine-tools-common \
++ovirt-engine/utils \
++ovirt-engine/common \
++springframework/spring-tx \
++apache-commons-lang \
++springframework/spring-beans \
++springframework/spring-core \
++spring-ldap/spring-ldap-core \
++ovirt-engine/engineencryptutils
++)
+
+ for f in $(echo $CP|sed 's/:/ /g')
+ do
+diff --git a/backend/manager/conf/kerberos/kerberos-util.sh b/backend/manager/conf/kerberos/kerberos-util.sh
+index 8e8269c..641127e 100755
+--- a/backend/manager/conf/kerberos/kerberos-util.sh
++++ b/backend/manager/conf/kerberos/kerberos-util.sh
+@@ -26,18 +26,7 @@ if [ $1 == '-?' ]; then
+ exit 1
+ fi
+
+-JB_HOME=$6
+-if [ -z "$JB_HOME" ]; then
+- JB_HOME=/usr/local/jboss-eap-5.0/jboss-as
+-fi
+-
+-if [ -z "$5" ]; then
+- EAR_LIB=$JB_HOME/server/engine-slimmed/deploy/engine.ear/lib
+-else
+- EAR_LIB=$5
+-fi
+-
+-CP=$EAR_LIB/utils-3.0.0-0001.jar:$EAR_LIB/engine-compat.jar:$JB_HOME/common/lib/commons-logging.jar
++CP=$(build-classpath ovirt-engine/utils ovirt-engine/compat apache-commons-logging)
+
+ java -cp $CP org.ovirt.engine.core.utils.kerberos.KerberosUtil -realm="$1" -user="$2" -pass="$3" -conf="$4" -Dsun.security.krb5.debug=true
+
+diff --git a/backend/manager/conf/kerberos/kerberosInstaller.sh b/backend/manager/conf/kerberos/kerberosInstaller.sh
+index 291cd61..18561b8 100755
+--- a/backend/manager/conf/kerberos/kerberosInstaller.sh
++++ b/backend/manager/conf/kerberos/kerberosInstaller.sh
+@@ -41,7 +41,7 @@ fi
+ # Jboss is not extracted yet.
+ DEVELOPER_MODE=y
+ if [ -z "$DEVELOPER_MODE" ]; then
+- CLASSPATH=$JB_HOME/utils-3.0.0-0001.jar:$JB_HOME/engine-compat.jar:$JB_HOME/commons-logging.jar
++ CLASSPATH=$(build-classpath ovirt-engine/utils ovirt-engine/compat apache-commons-logging)
+ else
+ echo -e "\n### running in developer mode ###"
+ if [ ! -d $JB_HOME/$EAR_LIB ]; then
+diff --git a/backend/manager/conf/kerberos/kerberosUpdater.sh b/backend/manager/conf/kerberos/kerberosUpdater.sh
+index 689d30d..559886a 100755
+--- a/backend/manager/conf/kerberos/kerberosUpdater.sh
++++ b/backend/manager/conf/kerberos/kerberosUpdater.sh
+@@ -40,7 +40,7 @@ fi
+ # This is used during installation where Jboss is not extracted yet.
+ DEVELOPER_MODE=y
+ if [ -z $DEVELOPER_MODE ]; then
+- CLASSPATH=$JB_HOME/utils-3.0.0-0001.jar:$JB_HOME/engine-compat.jar:$JB_HOME/commons-logging.jar:$JB_HOME/sqljdbc4.jar:$JB_HOME/engineencryptutils-3.0.0-0001.jar:$JB_HOME/commons-codec-1.4.jar
++ CLASSPATH=$(build-classpath ovirt-engine/utils ovirt-engine/compat apache-commons-logging ovirt-engine/engineencryptutils apache-commons-codec)
+ else
+ CLASSPATH=$JB_HOME/$EAR_LIB/utils-3.0.0-0001.jar:$JB_HOME/$EAR_LIB/engine-compat.jar:$JB_HOME/common/lib/commons-logging.jar:$JB_HOME/common/lib/sqljdbc4.jar:$JB_HOME/$EAR_LIB/engineencryptutils-3.0.0-0001.jar:$JB_HOME/$EAR_LIB/commons-codec-1.4.jar
+ echo ### running in developer mode ###
+diff --git a/backend/manager/tools/engine-config/src/main/resources/engine-config b/backend/manager/tools/engine-config/src/main/resources/engine-config
+index e7ca3e9..7422ee2 100755
+--- a/backend/manager/tools/engine-config/src/main/resources/engine-config
++++ b/backend/manager/tools/engine-config/src/main/resources/engine-config
+@@ -92,7 +92,20 @@ fi
+ # Verify all classpath elements available
+ JAVA_LIB_HOME=/usr/share/java
+ LOCAL_LIB=lib
+-CP=$JAVA_LIB_HOME/commons-logging.jar:$JAVA_LIB_HOME/commons-collections.jar:$JAVA_LIB_HOME/commons-lang.jar:$JAVA_LIB_HOME/commons-configuration.jar:$JAVA_LIB_HOME/commons-jxpath.jar:$JAVA_LIB_HOME/log4j.jar:$JAVA_LIB_HOME/commons-codec.jar:$JAVA_LIB_HOME/postgresql-jdbc.jar:$LOCAL_LIB/engineencryptutils-3.0.0-0001.jar:$LOCAL_LIB/engine-compat.jar:$LOCAL_LIB/engine-config.jar:$JAVA_LIB_HOME/engine-tools-common.jar
++CP=$(build-classpath \
++apache-commons-logging \
++apache-commons-collections \
++apache-commons-lang \
++apache-commons-configuration \
++apache-commons-jxpath \
++log4j \
++apache-commons-codec \
++postgresql-jdbc \
++ovirt-engine/engineencryptutils \
++ovirt-engine/compat \
++ovirt-engine/engine-config \
++ovirt-engine/engine-tools-common \
++)
+
+ for f in $(echo $CP|sed 's/:/ /g')
+ do
+diff --git a/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh b/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh
+index da54a88..7c456a8 100755
+--- a/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh
++++ b/backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh
+@@ -221,7 +221,6 @@ else
+ fi
+
+ # Configure classpath for engine-notifier
+-JAVA_LIB_HOME=/usr/share/java
+ #JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=127.0.0.1:8787"
+
+ # Add the configuration directory to the classpath so that configuration
+@@ -229,74 +228,31 @@ JAVA_LIB_HOME=/usr/share/java
+ CP=/etc/engine/notifier/.
+
+ # Add the required jar files from the system wide jars directory:
+-jar_names='
+- commons-logging
+- commons-collections
+- commons-lang
+- log4j
+- commons-codec
+- commons-configuration
+- commons-jxpath
+- postgresql-jdbc
+- javamail
+- activation
+- engine-tools-common
+-'
+-for jar_name in ${jar_names}
+-do
+- jar_file=${JAVA_LIB_HOME}/${jar_name}.jar
+- if [ ! -s "${jar_file}" ]
+- then
+- die "Error: can't run without missing JAR file: ${jar_file}\n" 5
+- fi
+- CP=${CP}:${jar_file}
+-done
+-
+-# Add all the needed jar files from the oVirt Engine EAR to the classpath, but
+-# try to locate them using the name and not the version. This is important
+-# in order to make the script less dependent on the version of oVirt Engine
+-# installed:
+-jar_names='
+- stax-api
+- jaxb-api
+- slf4j-api
+- validation-api
+- hibernate-validator
+- hibernate-commons-annotations
+- hibernate-core
+- antlr
+- dom4j
+- xml-apis
+- ejb3-persistence
+- hibernate-annotations
+- jaxb-impl
+- engine-common
+- engine-compat
+- engineencryptutils
+-'
+-for jar_name in ${jar_names}
+-do
+- jar_file=$(find ${engineLib} -regex ".*/${jar_name}.*\.jar")
+- if [ -z "${jar_file}" -o ! -s "${jar_file}" ]
+- then
+- die "Error: can't run without missing JAR file: ${engineLib}/${jar_name}*.jar\n" 5
+- fi
+- CP=${CP}:${jar_file}
+-done
+-
+-# Add the jar files specific to the notifier:
+-jar_names='
+- engine-notifier
+-'
+-for jar_name in ${jar_names}
+-do
+- jar_file=${NOTIFIER_HOME}/${jar_name}.jar
+- if [ ! -s "${jar_file}" ]
+- then
+- die "Error: can't run without missing JAR file: ${jar_file}\n" 5
+- fi
+- CP=${CP}:${jar_file}
+-done
++CP=${CP}:$(build-classpath \
++apache-commons-logging \
++apache-commons-collections \
++apache-commons-lang \
++log4j \
++apache-commons-codec \
++apache-commons-configuration \
++apache-commons-jxpath \
++postgresql-jdbc \
++javamail \
++ovirt-engine/engine-tools-common \
++stax2-api \
++jaxb-api \
++slf4j/api \
++geronimo-validation \
++hibernate-validator \
++hibernate/hibernate-commons-annotations \
++antlr \
++dom4j \
++glassfish-jaxb/jaxb-impl \
++ovirt-engine/common \
++ovirt-engine/compat \
++ovirt-engine/engineencryptutils \
++ovirt-engine/engine-notifier-service \
++)
+
+ if [ -z "$NOTIFIER_PID" ]
+ then
+diff --git a/backend/manager/conf/ca/encryptpasswd.sh b/backend/manager/conf/ca/encryptpasswd.sh
+index b134849..48ff11b 100644
+--- a/backend/manager/conf/ca/encryptpasswd.sh
++++ b/backend/manager/conf/ca/encryptpasswd.sh
+@@ -26,19 +26,6 @@ if [[ "x${JAVA_HOME}" != "x" ]] ;then
+ JAVA_BIN=$JAVA_HOME/bin/java
+ fi
+
+-
+-pushd $JBOSS_HOME
+-#if [ -e "common/lib/jbosssx.jar" ]; then
+-# $JAVA_BIN -cp client/jboss-logging-spi.jar:common/lib/jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule $1
+-#elif [ -e "lib/jbosssx.jar" ]; then
+-# $JAVA_BIN -cp client/jboss-logging-spi.jar:lib/jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule $1
+-#else
+-# echo "unable to find jbosssx jar..."
+-# exit 1
+-#fi
+-
+-$JAVA_BIN -cp "./modules/org/jboss/logging/main/jboss-logging-3.1.0.CR2.jar:./modules/org/picketbox/main/picketbox-4.0.6.Beta1.jar" org.picketbox.datasource.security.SecureIdentityLoginModule $1
+-
+-popd
++$JAVA_BIN -cp $(build-classpath jboss-logging picketbox/picketbox) org.picketbox.datasource.security.SecureIdentityLoginModule $1
+
+ exit $?
diff --git a/ovirt-engine-fix-postgresdbenginedialect.patch b/ovirt-engine-fix-postgresdbenginedialect.patch
index 3a24546..663ac09 100644
--- a/ovirt-engine-fix-postgresdbenginedialect.patch
+++ b/ovirt-engine-fix-postgresdbenginedialect.patch
@@ -1,12 +1,3 @@
-From 0d52f36461c5b9419b3da426802e56744383b2a6 Mon Sep 17 00:00:00 2001
-From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Sat, 9 Jun 2012 14:58:43 +0200
-Subject: [PATCH] core: Update to Spring 3
-
----
- .../org/ovirt/engine/core/dal/dbbroker/PostgresDbEngineDialect.java | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PostgresDbEngineDialect.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PostgresDbEngineDialect.java
index ec9f8e8..6c8e9c7 100644
--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/PostgresDbEngineDialect.java
@@ -20,6 +11,3 @@ index ec9f8e8..6c8e9c7 100644
// Have only the declared parameters participate in the function metadata extraction, otherwise the
// CallMetaDataContext thinks that the returned column names are parameters.
getInParameterNames().addAll(args.keySet());
---
-1.7.10.2
-
diff --git a/ovirt-engine-makefile-fixes.patch b/ovirt-engine-makefile-fixes.patch
new file mode 100644
index 0000000..6cc1353
--- /dev/null
+++ b/ovirt-engine-makefile-fixes.patch
@@ -0,0 +1,369 @@
+commit ca9001dbc05473cfc99db64945fe8e8fee0dcbf6
+Author: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Wed Apr 18 22:14:55 2012 +0200
+
+ makefile-fixes
+
+diff --git a/Makefile b/Makefile
+index a1d04b5..9f5c02f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -9,7 +9,7 @@ MVN=$(shell which mvn)
+ BUILD_FLAGS=-P gwt-admin,gwt-user
+ DEPLOY_FLAGS=-f deploy.xml
+ JBOSS_HOME=/usr/share/jboss-as
+-EAR_DIR=/usr/share/ovirt-engine/engine.ear
++EAR_DIR=/usr/share/ovirt-engine/deployments/engine.ear
+ EAR_SRC_DIR=ear/target/engine
+ PY_SITE_PKGS:=$(shell python -c "from distutils.sysconfig import get_python_lib as f;print f()")
+ APP_VERSION:=$(shell cat pom.xml | grep '<engine.version>' | awk -F\> '{print $$2}' | awk -F\< '{print $$1}')
+@@ -41,10 +41,12 @@ clean:
+ test:
+ $(MVN) install $(BUILD_FLAGS)
+
+-install: build_mvn create_dirs install_ear install_quartz install_tools \
++install: build_mvn create_dirs install_ear install_tools \
+ install_config install_log_collector install_iso_uploader \
+ install_sysprep install_notification_service install_db_scripts \
+- install_misc install_setup install_sec
++ install_misc install_setup install_jboss_modules install_sec \
++ install_root_webapp \
++ install_systemd_service
+
+ tarball: $(TARBALL)
+ $(TARBALL):
+@@ -71,7 +73,9 @@ rpm: $(SRPM)
+
+ create_dirs:
+ @echo "*** Creating Directories"
+- @mkdir -p $(PREFIX)/usr/share/ovirt-engine/{sysprep,kerberos,scripts,3rd-party-lib,engine.ear,conf,dbscripts,resources,ovirt-isos,iso-uploader,log-collector,db-backups,engine.ear}
++ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/{kerberos,scripts,3rd-party-lib,conf,dbscripts,resources,ovirt-isos,iso-uploader,log-collector,db-backups}
++ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/bin
++ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/deployments
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/engine-config/lib
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/notifier/lib
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/lib
+@@ -86,20 +90,21 @@ create_dirs:
+ @mkdir -p $(PREFIX)/var/run/ovirt-engine/notifier
+ @mkdir -p $(PREFIX)/var/lock/ovirt-engine
+ @mkdir -p $(PREFIX)/etc/{init.d,tmpfiles.d,cron.daily}
+- @mkdir -p $(PREFIX)/etc/ovirt-engine/{engine-config,engine-manage-domains}
++ @mkdir -p $(PREFIX)/etc/ovirt-engine/{engine-config,engine-manage-domains,sysprep}
+ @mkdir -p $(PREFIX)$(EAR_DIR)
+- @mkdir -p $(PREFIX)$(JBOSS_HOME)/modules/org/postgresql/main/
+- @mkdir -p $(PREFIX)/usr/share/ovirt-engine/resources/jboss/modules/org
++ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/resources/jboss
+ @mkdir -p $(PREFIX)/etc/pki/ovirt-engine/{keys,private,requests,certs}
++ @mkdir -p $(PREFIX)/etc/sysconfig
++ @mkdir -p $(PREFIX)/usr/lib/systemd/system
++ @mkdir -p $(PREFIX)/var/lib/ovirt-engine
++ @mkdir -p $(PREFIX)/var/cache/ovirt-engine
+
+ install_ear:
+ @echo "*** Deploying EAR to $(PREFIX)"
+- mkdir -p $(PREFIX)$(EAR_DIR)
+- cp -rf $(EAR_SRC_DIR)/* $(PREFIX)$(EAR_DIR)
+-
+-install_quartz:
+- @echo "*** Deploying quartz.jar to $(PREFIX)"
+-# cp -f ear/target/quartz/quartz*.jar $(PREFIX)$(JBOSS_HOME)/common/lib/
++ install -dm 755 $(PREFIX)$(EAR_DIR)
++ cp -r $(EAR_SRC_DIR)/* $(PREFIX)$(EAR_DIR)
++ find $(PREFIX)$(EAR_DIR) -type d -exec chmod 755 {} \;
++ find $(PREFIX)$(EAR_DIR) -type f -exec chmod 644 {} \;
+
+ install_tools:
+ @echo "*** Installing Common Tools"
+@@ -109,120 +114,146 @@ install_tools:
+
+ install_setup:
+ @echo "*** Deploying setup executables"
+- cp -f ./packaging/fedora/setup/engine-config-install.properties $(PREFIX)/usr/share/ovirt-engine/conf
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/conf/engine-config-install.properties
+- cp -f ./packaging/fedora/setup/iptables.default $(PREFIX)/usr/share/ovirt-engine/conf
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/conf/iptables.default
+- cp -f ./packaging/fedora/setup/nfs.sysconfig $(PREFIX)/usr/share/ovirt-engine/conf
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/conf/nfs.sysconfig
+- cp -f ./packaging/fedora/setup/engine-setup.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/engine-setup.py
+- cp -f ./packaging/fedora/setup/nfsutils.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/nfsutils.py
+- cp -f ./packaging/fedora/setup/basedefs.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/basedefs.py
+- cp -f ./packaging/fedora/setup/engine_validators.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/engine_validators.py
+- cp -f ./packaging/fedora/setup/common_utils.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/common_utils.py
+- cp -f ./packaging/fedora/setup/resources/jboss/web-conf.js $(PREFIX)/etc/ovirt-engine
+- chmod 755 $(PREFIX)/etc/ovirt-engine/web-conf.js
+- cp -f ./packaging/fedora/setup/output_messages.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/output_messages.py
++
++ # Configuration files templates for engine-setup:
++ install -m 644 packaging/fedora/setup/engine-config-install.properties $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 644 packaging/fedora/setup/iptables.default $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 644 packaging/fedora/setup/nfs.sysconfig $(PREFIX)/usr/share/ovirt-engine/conf
++
++ # Python modules shared by the setup and cleanup tools:
++ install -m 644 packaging/fedora/setup/basedefs.py $(PREFIX)/usr/share/ovirt-engine/scripts
++ install -m 644 packaging/fedora/setup/common_utils.py $(PREFIX)/usr/share/ovirt-engine/scripts
++ install -m 644 packaging/fedora/setup/engine_validators.py $(PREFIX)/usr/share/ovirt-engine/scripts
++ install -m 644 packaging/fedora/setup/nfsutils.py $(PREFIX)/usr/share/ovirt-engine/scripts
++ install -m 644 packaging/fedora/setup/output_messages.py $(PREFIX)/usr/share/ovirt-engine/scripts
++
++ # Python main programs for the engine setup and cleanup tools:
++ install -m 755 packaging/fedora/setup/engine-setup.py $(PREFIX)/usr/share/ovirt-engine/scripts
+ ln -s /usr/share/ovirt-engine/scripts/engine-setup.py $(PREFIX)/usr/bin/engine-setup
+- cp -af ./packaging/fedora/setup/resources/jboss/* $(PREFIX)/usr/share/ovirt-engine/resources/jboss/
+- cp -af ./deployment/modules/org/* $(PREFIX)/usr/share/ovirt-engine/resources/jboss/modules/org/
+- ln -s /usr/share/java/postgresql-jdbc.jar $(PREFIX)/usr/share/ovirt-engine/resources/jboss/modules/org/postgresql/main/
+- cp -f ./packaging/fedora/setup/engine-cleanup.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/engine-cleanup.py
++ install -m 755 packaging/fedora/setup/engine-cleanup.py $(PREFIX)/usr/share/ovirt-engine/scripts
+ ln -s /usr/share/ovirt-engine/scripts/engine-cleanup.py $(PREFIX)/usr/bin/engine-cleanup
+- sed -i "s/MYVERSION/$(RPM_VERSION)/" $(PREFIX)/usr/share/ovirt-engine/resources/jboss/ROOT.war/engineVersion.js
++
++
++install_jboss_modules:
++ # Copy the module definitions:
++ install -dm 755 $(PREFIX)/usr/share/ovirt-engine/modules
++ cp -r deployment/modules/* $(PREFIX)/usr/share/ovirt-engine/modules
++ find $(PREFIX)/usr/share/ovirt-engine/modules -type d -exec chmod 755 {} \;
++ find $(PREFIX)/usr/share/ovirt-engine/modules -type f -exec chmod 644 {} \;
++
++ # PostgreSQL:
++ ln -s /usr/share/java/postgresql-jdbc.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/postgresql/main/.
++
++ # JAXB:
++ ln -s /usr/share/java/glassfish-jaxb/jaxb-impl.jar $(PREFIX)/usr/share/ovirt-engine/modules/com/sun/xml/bind/main/.
++ ln -s /usr/share/java/glassfish-jaxb/jaxb-xjc.jar $(PREFIX)/usr/share/ovirt-engine/modules/com/sun/xml/bind/main/.
++
++ # Hibernate validator needs to be overriden because it is missing the
++ # jtype library:
++ ln -s /usr/share/java/hibernate-validator.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/hibernate/validator/main/.
++ ln -s /usr/share/java/jtype.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/hibernate/validator/main/.
+
+ install_sec:
+- cd backend/manager/3rdparty/pub2ssh/; chmod +x pubkey2ssh.sh; mkdir -p bin; ./pubkey2ssh.sh; cd -
+- rm -rf $(PREFIX)/etc/pki/engine-config/*.bat
+- cp -f ./backend/manager/3rdparty/pub2ssh/bin/pubkey2ssh $(PREFIX)/etc/pki/ovirt-engine
+- chmod 755 $(PREFIX)/etc/pki/ovirt-engine
+- cp -a ./backend/manager/conf/ca/* $(PREFIX)/etc/pki/ovirt-engine
++ # Create the directories:
++ install -dm 755 $(PREFIX)/etc/pki/ovirt-engine
++ install -dm 755 $(PREFIX)/etc/pki/ovirt-engine/certs
++ install -dm 755 $(PREFIX)/etc/pki/ovirt-engine/keys
++ install -dm 755 $(PREFIX)/etc/pki/ovirt-engine/private
++ install -dm 755 $(PREFIX)/etc/pki/ovirt-engine/requests
++
++ # Configuration files:
++ install -m 644 backend/manager/conf/ca/openssl.conf $(PREFIX)/etc/pki/ovirt-engine
++ install -m 644 backend/manager/conf/ca/cacert.template $(PREFIX)/etc/pki/ovirt-engine
++ install -m 644 backend/manager/conf/ca/cert.template $(PREFIX)/etc/pki/ovirt-engine
++
++ # Certificate database:
++ install -m 644 backend/manager/conf/ca/database.txt $(PREFIX)/etc/pki/ovirt-engine
++ install -m 644 backend/manager/conf/ca/serial.txt $(PREFIX)/etc/pki/ovirt-engine
++
++ # Scripts:
++ install -m 755 backend/manager/conf/ca/*.sh $(PREFIX)/etc/pki/ovirt-engine
++ install -m 755 backend/manager/conf/ca/generate-ssh-keys $(PREFIX)/etc/pki/ovirt-engine
+
+ install_config:
+ @echo "*** Deploying engine-config & engine-manage-domains"
+- cp -f ./backend/manager/tools/engine-config/src/main/resources/engine-config $(PREFIX)/usr/share/ovirt-engine/engine-config/
+- chmod 750 $(PREFIX)/usr/share/ovirt-engine/engine-config/engine-config
+- cp -f ./backend/manager/tools/engine-config/src/main/resources/engine-config.conf $(PREFIX)/etc/ovirt-engine/engine-config/
+- chmod 755 $(PREFIX)/etc/ovirt-engine/engine-config/engine-config.conf
+- cp -f ./backend/manager/tools/engine-config/src/main/resources/engine-config.*properties $(PREFIX)/etc/ovirt-engine/engine-config/
+- chmod 644 $(PREFIX)/etc/ovirt-engine/engine-config/engine-config.*properties
+- cp -f ./backend/manager/tools/engine-config/src/main/resources/log4j.xml $(PREFIX)/etc/ovirt-engine/engine-config/
+- chmod 644 $(PREFIX)/etc/ovirt-engine/engine-config/log4j.xml
+- cp -f ./backend/manager/tools/engine-config/target/engine-config-$(APP_VERSION).jar $(PREFIX)/usr/share/ovirt-engine/engine-config/lib/
+- rm -f $(PREFIX)/usr/share/ovirt-engine/engine-config/lib/engine-config.jar
+- ln -s /usr/share/ovirt-engine/engine-config/lib/engine-config-$(APP_VERSION).jar $(PREFIX)/usr/share/ovirt-engine/engine-config/lib/engine-config.jar
+- cp -f ./backend/manager/modules/engineencryptutils/target/engineencryptutils-$(APP_VERSION).jar $(PREFIX)/usr/share/ovirt-engine/engine-config/lib/
+- cp -f ./ear/target/engine/lib/engine-compat.jar $(PREFIX)/usr/share/ovirt-engine/engine-config/lib/
+- rm -f $(PREFIX)/usr/bin/engine-config
++
++ # Configuration files for the configuration tool:
++ install -m 644 backend/manager/tools/engine-config/src/main/resources/engine-config.conf $(PREFIX)/etc/ovirt-engine/engine-config/
++ install -m 644 backend/manager/tools/engine-config/src/main/resources/engine-config.*properties $(PREFIX)/etc/ovirt-engine/engine-config/
++ install -m 644 backend/manager/tools/engine-config/src/main/resources/log4j.xml $(PREFIX)/etc/ovirt-engine/engine-config/
++
++ # Main program for the configuraiton tool:
++ install -m 755 backend/manager/tools/engine-config/src/main/resources/engine-config $(PREFIX)/usr/share/ovirt-engine/engine-config/
+ ln -s /usr/share/ovirt-engine/engine-config/engine-config $(PREFIX)/usr/bin/engine-config
+
+- cp -f ./backend/manager/conf/kerberos/engine-manage-domains $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/
+- chmod 750 $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/engine-manage-domains
+- cp -f ./backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf $(PREFIX)/etc/ovirt-engine/engine-manage-domains/
+- chmod 755 $(PREFIX)/etc/ovirt-engine/engine-manage-domains/engine-manage-domains.conf
+- cp -f ./backend/manager/modules/utils/src/main/resources/engine-manage-domains/log4j.xml $(PREFIX)/etc/ovirt-engine/engine-manage-domains/
+- chmod 644 $(PREFIX)/etc/ovirt-engine/engine-manage-domains/log4j.xml
+- cp -f ./ear/target/engine/lib/engine-compat.jar $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/lib/
+- rm -f $(PREFIX)/usr/bin/engine-manage-domains
++ # Configuration files for the domain management tool (no execution
++ install -m 644 backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf $(PREFIX)/etc/ovirt-engine/engine-manage-domains/
++ install -m 644 backend/manager/modules/utils/src/main/resources/engine-manage-domains/log4j.xml $(PREFIX)/etc/ovirt-engine/engine-manage-domains/
++
++ # Main program for the domain management tool (needs execution
++ install -m 755 backend/manager/conf/kerberos/engine-manage-domains $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/
+ ln -s /usr/share/ovirt-engine/engine-manage-domains/engine-manage-domains $(PREFIX)/usr/bin/engine-manage-domains
+
+ install_log_collector:
+ @echo "*** Deploying log collector"
+- cp -f ./backend/manager/tools/engine-logcollector/src/rhev/logcollector.py $(PREFIX)/usr/share/ovirt-engine/log-collector/
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/log-collector/logcollector.py
+- /usr/bin/gzip -c ./backend/manager/tools/engine-logcollector/src/rhev/engine-log-collector.8 > $(PREFIX)/usr/share/man/man8/engine-log-collector.8.gz
++
++ # Python modules shouldn't have execution permission:
++ install -m 644 backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/api.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
++ install -m 644 backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/hypervisors.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
++ install -m 644 backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/__init__.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
++
++ # Then main program needs execution permission:
++ install -m 755 backend/manager/tools/engine-logcollector/src/rhev/logcollector.py $(PREFIX)/usr/share/ovirt-engine/log-collector/
++ ln -s /usr/share/ovirt-engine/log-collector/logcollector.py $(PREFIX)/usr/bin/engine-log-collector
++
++ # The configuration file should be readable only by root as it may
++ # contain passwords:
++ install -m 600 backend/manager/tools/engine-logcollector/src/rhev/logcollector.conf $(PREFIX)/etc/ovirt-engine/
++
++ # Manual page:
++ gzip -c backend/manager/tools/engine-logcollector/src/rhev/engine-log-collector.8 > $(PREFIX)/usr/share/man/man8/engine-log-collector.8.gz
+ chmod 644 $(PREFIX)/usr/share/man/man8/engine-log-collector.8.gz
+- cp -f ./backend/manager/tools/engine-logcollector/src/rhev/logcollector.conf $(PREFIX)/etc/ovirt-engine/
+- chmod 600 $(PREFIX)/etc/ovirt-engine/logcollector.conf
+- cp -f ./backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/api.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
+- cp -f ./backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/hypervisors.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
+- cp -f ./backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/__init__.py $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/log-collector/schemas/*
+- cp -f ./backend/manager/tools/engine-logcollector/src/sos/plugins/jboss.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
+- cp -f ./backend/manager/tools/engine-logcollector/src/sos/plugins/engine.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
+- cp -f ./backend/manager/tools/engine-logcollector/src/sos/plugins/postgresql.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
+- chmod 755 $(PREFIX)$(PY_SITE_PKGS)/sos/plugins/*
+- rm -f $(PREFIX)/usr/bin/engine-log-collector
+- ln -s /usr/share/ovirt-engine/log-collector/logcollector.py $(PREFIX)/usr/bin/engine-log-collector
++
++ # SOS plugins:
++ install -m 755 backend/manager/tools/engine-logcollector/src/sos/plugins/jboss.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
++ install -m 755 backend/manager/tools/engine-logcollector/src/sos/plugins/engine.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
++ install -m 755 backend/manager/tools/engine-logcollector/src/sos/plugins/postgresql.py $(PREFIX)$(PY_SITE_PKGS)/sos/plugins
+
+ install_iso_uploader:
+ @echo "*** Deploying iso uploader"
+- cp -f ./backend/manager/tools/engine-iso-uploader/src/engine-iso-uploader.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/iso-uploader/engine-iso-uploader.py
+- /usr/bin/gzip -c ./backend/manager/tools/engine-iso-uploader/src/engine-iso-uploader.8 > $(PREFIX)/usr/share/man/man8/engine-iso-uploader.8.gz
+- chmod 644 $(PREFIX)/usr/share/man/man8/engine-iso-uploader.8.gz
+- cp -f ./backend/manager/tools/engine-iso-uploader/src/isouploader.conf $(PREFIX)/etc/ovirt-engine/
+- chmod 600 $(PREFIX)/etc/ovirt-engine/isouploader.conf
+- cp -f ./backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/api.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/schemas
+- cp -f ./backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/__init__.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/schemas
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/iso-uploader/schemas/*
+- rm -f $(PREFIX)/usr/bin/engine-iso-uploader
++
++ # Python modules shouldn't have execution permission:
++ install -m 644 backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/api.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/schemas
++ install -m 644 backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/__init__.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/schemas
++
++ # Then main program needs execution permission:
++ install -m 755 backend/manager/tools/engine-iso-uploader/src/engine-iso-uploader.py $(PREFIX)/usr/share/ovirt-engine/iso-uploader/
+ ln -s /usr/share/ovirt-engine/iso-uploader/engine-iso-uploader.py $(PREFIX)/usr/bin/engine-iso-uploader
+
++ # The configuration file should be readable only by root because it may
++ # contain passwords used to connect with SSH to the file servers:
++ install -m 600 backend/manager/tools/engine-iso-uploader/src/isouploader.conf $(PREFIX)/etc/ovirt-engine/
++
++ # Manual page:
++ gzip -c backend/manager/tools/engine-iso-uploader/src/engine-iso-uploader.8 > $(PREFIX)/usr/share/man/man8/engine-iso-uploader.8.gz
++ chmod 644 $(PREFIX)/usr/share/man/man8/engine-iso-uploader.8.gz
++
+ install_sysprep:
+- @echo "*** Deploying sysperp"
+- cp -f ./backend/manager/conf/sysprep/* $(PREFIX)/usr/share/ovirt-engine/sysprep
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/sysprep/*
++ @echo "*** Deploying sysprep"
++ cp -f ./backend/manager/conf/sysprep/* $(PREFIX)/etc/ovirt-engine/sysprep
++ chmod 644 $(PREFIX)/etc/ovirt-engine/sysprep/*
+
+ install_notification_service:
+ @echo "*** Deploying notification service"
+- cp -f ./backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/log4j.xml $(PREFIX)/etc/ovirt-engine/notifier/
+- chmod 644 $(PREFIX)/etc/ovirt-engine/notifier/log4j.xml
+- cp -f ./backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.conf $(PREFIX)/etc/ovirt-engine/notifier/
+- chmod 640 $(PREFIX)/etc/ovirt-engine/notifier/notifier.conf
+- cp -f ./backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh $(PREFIX)/usr/share/ovirt-engine/notifier/
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/notifier/notifier.sh
+- cp -f ./backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/engine-notifierd $(PREFIX)/etc/init.d/
+- chmod 755 $(PREFIX)/etc/init.d/engine-notifierd
+- cp -f ./backend/manager/tools/engine-notifier/engine-notifier-service/target/engine-notifier-service-$(APP_VERSION).jar $(PREFIX)/usr/share/ovirt-engine/notifier/engine-notifier.jar
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/notifier/engine-notifier.jar
++
++ # The main program and the startup script need execution permission:
++ install -m 755 backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.sh $(PREFIX)/usr/share/ovirt-engine/notifier/
++ install -m 755 backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/engine-notifierd $(PREFIX)/etc/init.d/
++
++ # The configuration file should be readable only by root and ovirt
++ # because it may contain credentials used to connect to mail servers:
++ install -m 640 backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/notifier.conf $(PREFIX)/etc/ovirt-engine/notifier/
++ install -m 644 backend/manager/tools/engine-notifier/engine-notifier-resources/src/main/resources/log4j.xml $(PREFIX)/etc/ovirt-engine/notifier/
+
+ install_db_scripts:
+ @echo "*** Deploying Database scripts"
+@@ -230,24 +261,35 @@ install_db_scripts:
+
+ install_misc:
+ @echo "*** Copying additional files"
+- cp -f ./backend/manager/conf/jaas.conf $(PREFIX)/usr/share/ovirt-engine/conf
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/conf/jaas.conf
+- cp -f ./backend/manager/conf/engine.conf $(PREFIX)/etc/ovirt-engine/
+- chmod 640 $(PREFIX)/etc/ovirt-engine/engine.conf
+- cp -f ./backend/manager/conf/jboss-log4j.xml $(PREFIX)/usr/share/ovirt-engine/conf
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/conf/jboss-log4j.xml
+- cp -f ./backend/manager/conf/kerberos/* $(PREFIX)/usr/share/ovirt-engine/kerberos
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/kerberos/*
+- rm -rf $(PREFIX)/usr/share/ovirt-engine/keberos/*.bat
+- cp -f ./backend/manager/conf/vds_installer.py $(PREFIX)/usr/share/ovirt-engine/scripts
+- cp -f ./packaging/ovirtlogrot.sh $(PREFIX)/usr/share/ovirt-engine/scripts
+- chmod 755 $(PREFIX)/usr/share/ovirt-engine/scripts/vds_installer.py
+- ln -s /usr/share/java/postgresql-jdbc.jar $(PREFIX)$(JBOSS_HOME)/modules/org/postgresql/main/postgresql-jdbc.jar
+- cp -f ./backend/manager/conf/jboss-log4j.xml $(PREFIX)/usr/share/ovirt-engine/conf
+- cp -f ./packaging/fedora/setup/resources/postgres/postgres-ds.xml $(PREFIX)/usr/share/ovirt-engine/conf
+- cp -f ./LICENSE $(PREFIX)/usr/share/ovirt-engine
+- cp -f ./packaging/ovirtlogrot.sh ${PREFIX}/usr/share/ovirt-engine/scripts/
+- cp -f ./packaging/resources/ovirt-cron ${PREFIX}/etc/cron.daily/
+- cp -f ./packaging/resources/ovirt-tmpfilesd ${PREFIX}/etc/tmpfiles.d/ovirt-engine.conf
++ install -m 644 backend/manager/conf/jaas.conf $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 640 backend/manager/conf/engine.conf $(PREFIX)/etc/ovirt-engine
++ install -m 644 backend/manager/conf/jboss-log4j.xml $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 755 backend/manager/conf/kerberos/*.sh $(PREFIX)/usr/share/ovirt-engine/kerberos
++ install -m 644 backend/manager/conf/vds_installer.py $(PREFIX)/usr/share/ovirt-engine/scripts
++ install -m 644 backend/manager/conf/jboss-log4j.xml $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 644 packaging/fedora/setup/resources/postgres/postgres-ds.xml $(PREFIX)/usr/share/ovirt-engine/conf
++ install -m 644 packaging/fedora/ovirt-engine.xml $(PREFIX)/etc/ovirt-engine
++ install -m 644 packaging/fedora/ovirt-engine-logging.properties $(PREFIX)/etc/ovirt-engine
++ install -m 644 packaging/fedora/ovirt-engine-users.properties $(PREFIX)/etc/ovirt-engine
++ install -m 755 packaging/ovirtlogrot.sh ${PREFIX}/usr/share/ovirt-engine/scripts/
++ install -m 755 packaging/resources/ovirt-cron ${PREFIX}/etc/cron.daily
++ install -m 644 packaging/resources/ovirt-tmpfilesd ${PREFIX}/etc/tmpfiles.d/ovirt-engine.conf
++
++install_root_webapp:
++ @echo "*** Deploying root webapp"
++
++ # Copy the root web application to the deployments directory (the web-conf.js file will be
++ # copied inside by engine-setup):
++ cp -r packaging/fedora/setup/resources/jboss/ROOT.war $(PREFIX)/usr/share/ovirt-engine/deployments
++ find $(PREFIX)/usr/share/ovirt-engine/deployments/ROOT.war -type d -exec chmod 755 {} \;
++ find $(PREFIX)/usr/share/ovirt-engine/deployments/ROOT.war -type f -exec chmod 644 {} \;
++ install -m 644 packaging/fedora/setup/resources/jboss/web-conf.js $(PREFIX)/etc/ovirt-engine
+
++ # XXX: Is this really needed?
++ sed -i "s/MYVERSION/$(RPM_VERSION)/" $(PREFIX)/usr/share/ovirt-engine/deployments/ROOT.war/engineVersion.js
+
++install_systemd_service:
++ @echo "*** Deploying systemd service"
++ install -m 755 packaging/fedora/ovirt-engine.sh $(PREFIX)/usr/share/ovirt-engine/bin
++ install -m 644 packaging/fedora/ovirt-engine.sysconfig $(PREFIX)/etc/sysconfig/ovirt-engine
++ install -m 644 packaging/fedora/ovirt-engine.service $(PREFIX)/usr/lib/systemd/system
diff --git a/ovirt-engine-move-sysprep-files-to-etc.patch b/ovirt-engine-move-sysprep-files-to-etc.patch
new file mode 100644
index 0000000..71035e4
--- /dev/null
+++ b/ovirt-engine-move-sysprep-files-to-etc.patch
@@ -0,0 +1,33 @@
+diff --git a/Makefile b/Makefile
+index 1cbb33f..f795af8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -71,7 +71,7 @@ rpm: $(SRPM)
+
+ create_dirs:
+ @echo "*** Creating Directories"
+- @mkdir -p $(PREFIX)/usr/share/ovirt-engine/{sysprep,kerberos,scripts,3rd-party-lib,engine.ear,conf,dbscripts,resources,ovirt-isos,iso-uploader,log-collector,db-backups,engine.ear}
++ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/{kerberos,scripts,3rd-party-lib,engine.ear,conf,dbscripts,resources,ovirt-isos,iso-uploader,log-collector,db-backups,engine.ear}
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/engine-config/lib
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/notifier/lib
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/engine-manage-domains/lib
+@@ -86,7 +86,7 @@ create_dirs:
+ @mkdir -p $(PREFIX)/var/run/ovirt-engine/notifier
+ @mkdir -p $(PREFIX)/var/lock/ovirt-engine
+ @mkdir -p $(PREFIX)/etc/{init.d,tmpfiles.d,cron.daily}
+- @mkdir -p $(PREFIX)/etc/ovirt-engine/{engine-config,engine-manage-domains}
++ @mkdir -p $(PREFIX)/etc/ovirt-engine/{engine-config,engine-manage-domains,sysprep}
+ @mkdir -p $(PREFIX)$(EAR_DIR)
+ @mkdir -p $(PREFIX)$(JBOSS_HOME)/modules/org/postgresql/main/
+ @mkdir -p $(PREFIX)/usr/share/ovirt-engine/resources/jboss/modules/org
+@@ -208,8 +208,8 @@ install_iso_uploader:
+
+ install_sysprep:
+ @echo "*** Deploying sysperp"
+- cp -f ./backend/manager/conf/sysprep/* $(PREFIX)/usr/share/ovirt-engine/sysprep
+- chmod 644 $(PREFIX)/usr/share/ovirt-engine/sysprep/*
++ cp -f ./backend/manager/conf/sysprep/* $(PREFIX)/etc/ovirt-engine/sysprep
++ chmod 644 $(PREFIX)/etc/ovirt-engine/sysprep/*
+
+ install_notification_service:
+ @echo "*** Deploying notification service"
diff --git a/ovirt-engine-remove-dependency-on-jboss-interceptors.patch b/ovirt-engine-remove-dependency-on-jboss-interceptors.patch
new file mode 100644
index 0000000..218d869
--- /dev/null
+++ b/ovirt-engine-remove-dependency-on-jboss-interceptors.patch
@@ -0,0 +1,48 @@
+From 6ea46f9d35015436115647299fc44b68d96cc298 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 12:03:15 +0100
+Subject: [PATCH] core: Remove dependency on jboss interceptors (#NA)
+
+This dependency is not needed and it complicates building of the
+RPMs in Fedora.
+
+Change-Id: Ibcd421297a6f7a2894177b65f8646b3016282851
+---
+ backend/manager/modules/utils/pom.xml | 4 ----
+ pom.xml | 5 -----
+ 2 files changed, 0 insertions(+), 9 deletions(-)
+
+diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml
+index 1e01679..a7bf1d9 100644
+--- a/backend/manager/modules/utils/pom.xml
++++ b/backend/manager/modules/utils/pom.xml
+@@ -14,10 +14,6 @@
+
+ <dependencies>
+ <dependency>
+- <groupId>org.jboss.interceptor</groupId>
+- <artifactId>jboss-interceptor-core</artifactId>
+- </dependency>
+- <dependency>
+ <groupId>org.jboss.spec.javax.interceptor</groupId>
+ <artifactId>jboss-interceptors-api_1.1_spec</artifactId>
+ <version>1.0.0.Final</version>
+diff --git a/pom.xml b/pom.xml
+index 50a249a..923f05f 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -79,11 +79,6 @@
+ <version>1.0.0.Final</version>
+ </dependency>
+ <dependency>
+- <groupId>org.jboss.interceptor</groupId>
+- <artifactId>jboss-interceptor-core</artifactId>
+- <version>2.0.0.Alpha3</version>
+- </dependency>
+- <dependency>
+ <groupId>org.quartz-scheduler</groupId>
+ <artifactId>quartz</artifactId>
+ <version>${quartz.version}</version>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-frontend-from-ear.patch b/ovirt-engine-remove-frontend-from-ear.patch
index a044e19..c3fe4fa 100644
--- a/ovirt-engine-remove-frontend-from-ear.patch
+++ b/ovirt-engine-remove-frontend-from-ear.patch
@@ -1,19 +1,10 @@
-From 5ab615e67acd6b2fafa9367c10033d47a0903637 Mon Sep 17 00:00:00 2001
-From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Wed, 1 Aug 2012 13:17:28 +0200
-Subject: [PATCH] core: Remove frontend from EAR
-
----
- ear/pom.xml | 56 --------------------------------------------------------
- 1 file changed, 56 deletions(-)
-
diff --git a/ear/pom.xml b/ear/pom.xml
-index 0cb0837..da93b8f 100644
+index 2521a24..b9f5b24 100644
--- a/ear/pom.xml
+++ b/ear/pom.xml
-@@ -65,42 +65,14 @@
- </dependency>
+@@ -52,63 +52,14 @@
+ <!-- WARS -->
<dependency>
- <groupId>org.ovirt.engine.ui</groupId>
- <artifactId>rmw-war</artifactId>
@@ -22,6 +13,27 @@ index 0cb0837..da93b8f 100644
- </dependency>
-
- <dependency>
+- <groupId>org.ovirt.engine.ui</groupId>
+- <artifactId>rm-war</artifactId>
+- <version>${engine.version}</version>
+- <type>war</type>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.ovirt.engine.ui</groupId>
+- <artifactId>components-war</artifactId>
+- <version>${engine.version}</version>
+- <type>war</type>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.ovirt.engine.ui</groupId>
+- <artifactId>components-war</artifactId>
+- <version>${engine.version}</version>
+- <type>war</type>
+- </dependency>
+-
+- <dependency>
<groupId>org.ovirt.engine.api</groupId>
<artifactId>restapi-webapp</artifactId>
<version>${engine.version}</version>
@@ -54,9 +66,9 @@ index 0cb0837..da93b8f 100644
<groupId>org.ovirt.engine.core</groupId>
<artifactId>scheduler</artifactId>
<version>${engine.version}</version>
-@@ -214,42 +186,14 @@
- </webModule>
+@@ -202,47 +153,12 @@
+ <!-- ** WARs -->
<webModule>
- <groupId>org.ovirt.engine.ui</groupId>
- <artifactId>rmw-war</artifactId>
@@ -65,6 +77,20 @@ index 0cb0837..da93b8f 100644
- </webModule>
-
- <webModule>
+- <groupId>org.ovirt.engine.ui</groupId>
+- <artifactId>rm-war</artifactId>
+- <bundleFileName>ovirtengine.war</bundleFileName>
+- <contextRoot>/OvirtEngine</contextRoot>
+- </webModule>
+-
+- <webModule>
+- <groupId>org.ovirt.engine.ui</groupId>
+- <artifactId>components-war</artifactId>
+- <bundleFileName>components.war</bundleFileName>
+- <contextRoot>/Components</contextRoot>
+- </webModule>
+-
+- <webModule>
<groupId>org.ovirt.engine.api</groupId>
<artifactId>restapi-webapp</artifactId>
<bundleFileName>restapi.war</bundleFileName>
@@ -87,6 +113,11 @@ index 0cb0837..da93b8f 100644
-
<!-- ** EJB-JARs -->
<ejbModule>
+ <groupId>org.ovirt.engine.core</groupId>
+@@ -252,13 +168,6 @@
+ </ejbModule>
+
+ <ejbModule>
- <groupId>org.ovirt.engine.ui</groupId>
- <artifactId>genericapi</artifactId>
- <bundleFileName>engine-genericapi.jar</bundleFileName>
@@ -97,6 +128,3 @@ index 0cb0837..da93b8f 100644
<groupId>org.ovirt.engine.core</groupId>
<artifactId>scheduler</artifactId>
<bundleFileName>engine-scheduler.jar</bundleFileName>
---
-1.7.11.2
-
diff --git a/ovirt-engine-remove-hibernate-daos.patch b/ovirt-engine-remove-hibernate-daos.patch
new file mode 100644
index 0000000..b0b294c
--- /dev/null
+++ b/ovirt-engine-remove-hibernate-daos.patch
@@ -0,0 +1,3768 @@
+From 4d41b9b2ac9b34fda4ee994317d8837b7fb90244 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 13:18:55 +0100
+Subject: [PATCH] Remove Hibernate DAOs
+
+Change-Id: I3beb6f25f8468aea2bdb289d3aa13344b2b083da
+---
+ .../engine/core/dao/ActionGroupDAOWrapperImpl.java | 44 ---
+ .../engine/core/dao/AdGroupDAOHibernateImpl.java | 52 ----
+ .../engine/core/dao/AsyncTaskDAOHibernateImpl.java | 11 -
+ .../engine/core/dao/AuditLogDAOHibernateImpl.java | 92 ------
+ .../engine/core/dao/BaseDAOHibernateImpl.java | 152 ----------
+ .../ovirt/engine/core/dao/BaseDAOWrapperImpl.java | 19 --
+ .../engine/core/dao/BookmarkDAOHibernateImpl.java | 14 -
+ .../BusinessEntitySnapshotDAOHibernateImpl.java | 62 ----
+ .../engine/core/dao/DbUserDAOWrapperImpl.java | 120 --------
+ .../engine/core/dao/DiskImageDAOWrapperImpl.java | 146 ----------
+ .../ovirt/engine/core/dao/EventDAOWrapperImpl.java | 90 ------
+ .../org/ovirt/engine/core/dao/GuidGenerator.java | 18 --
+ ...ImageGroupStorageDomainMapDAOHibernateImpl.java | 24 --
+ .../ovirt/engine/core/dao/LunDAOHibernateImpl.java | 29 --
+ .../core/dao/NetworkClusterDAOHibernateImpl.java | 44 ---
+ .../engine/core/dao/NetworkDAOHibernateImpl.java | 28 --
+ .../core/dao/PermissionDAOHibernateImpl.java | 297 --------------------
+ .../engine/core/dao/RoleDAOHibernateImpl.java | 81 ------
+ .../core/dao/RoleGroupMapDAOHibernateImpl.java | 31 --
+ .../core/dao/StorageDomainDAOWrapperImpl.java | 193 -------------
+ .../dao/StorageDomainDynamicDAOHibernateImpl.java | 10 -
+ .../dao/StorageDomainStaticDAOHibernateImpl.java | 96 -------
+ .../core/dao/StoragePoolDAOHibernateImpl.java | 126 ---------
+ .../dao/StoragePoolIsoMapDAOHibernateImpl.java | 47 ---
+ .../StorageServerConnectionDAOHibernateImpl.java | 97 -------
+ ...rageServerConnectionLunMapDAOHibernateImpl.java | 19 --
+ .../ovirt/engine/core/dao/TagDAOHibernateImpl.java | 247 ----------------
+ .../engine/core/dao/VdcOptionDAOHibernateImpl.java | 28 --
+ .../ovirt/engine/core/dao/VdsDAOWrapperImpl.java | 276 ------------------
+ .../engine/core/dao/VdsGroupDAOHibernateImpl.java | 48 ----
+ .../engine/core/dao/VdsStaticDAODbFacadeImpl.java | 5 +-
+ .../engine/core/dao/VmPoolDAOHibernateImpl.java | 153 ----------
+ .../ActionVersionMapDAOHibernateImpl.java | 10 -
+ .../actiongroup/RoleGroupMapDAOHibernateImpl.java | 28 --
+ .../core/dao/dialect/EnginePostgreSQLDialect.java | 13 -
+ .../core/dao/events/MapDAOHibernateImpl.java | 19 --
+ .../NotificationHistoryDAOHibernateImpl.java | 18 --
+ .../NotificationMethodsDAOHibernateImpl.java | 22 --
+ .../dao/events/SubscriberDAOHibernateImpl.java | 47 ---
+ .../core/dao/images/DiskImageDAOHibernateImpl.java | 79 ------
+ .../images/DiskImageDynamicDAOHibernateImpl.java | 11 -
+ .../images/DiskImageTemplateDAOHibernateImpl.java | 89 ------
+ .../dao/images/ImageVmMapDAOHibernateImpl.java | 11 -
+ .../dao/images/ImageVmPoolMapDAOHibernateImpl.java | 11 -
+ .../StatelessImageVmMapDAOHibernateImpl.java | 11 -
+ .../engine/core/dao/tags/TagUserGroupMapDAO.java | 27 --
+ .../ovirt/engine/core/dao/tags/TagUserMapDAO.java | 38 ---
+ .../ovirt/engine/core/dao/tags/TagVdsMapDAO.java | 11 -
+ .../ovirt/engine/core/dao/tags/TagVmMapDAO.java | 28 --
+ .../core/dao/users/SessionDAOHibernateImpl.java | 11 -
+ .../core/dao/users/UserDAOHibernateImpl.java | 25 --
+ .../core/dao/vds/VdsDynamicDAOHibernateImpl.java | 16 -
+ .../core/dao/vds/VdsStaticDAOHibernateImpl.java | 16 -
+ .../dao/vds/VdsStatisticsDAOHibernateImpl.java | 15 -
+ .../TimeLeaseVmPoolMapDAOHibernateImpl.java | 11 -
+ .../dao/vmpools/VmPoolMapDAOHibernateImpl.java | 24 --
+ 56 files changed, 2 insertions(+), 3288 deletions(-)
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ActionGroupDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AdGroupDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BookmarkDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BusinessEntitySnapshotDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EventDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/GuidGenerator.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageGroupStorageDomainMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/LunDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkClusterDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleGroupMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDynamicDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolIsoMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionLunMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/TagDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdcOptionDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAOWrapperImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmPoolDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/ActionVersionMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/RoleGroupMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/dialect/EnginePostgreSQLDialect.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/MapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationHistoryDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationMethodsDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/SubscriberDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDynamicDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageTemplateDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmPoolMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/StatelessImageVmMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserGroupMapDAO.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserMapDAO.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVdsMapDAO.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVmMapDAO.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/SessionDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/UserDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsDynamicDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStaticDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStatisticsDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/TimeLeaseVmPoolMapDAOHibernateImpl.java
+ delete mode 100644 backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/VmPoolMapDAOHibernateImpl.java
+
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ActionGroupDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ActionGroupDAOWrapperImpl.java
+deleted file mode 100644
+index ca92b07..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ActionGroupDAOWrapperImpl.java
++++ /dev/null
+@@ -1,44 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.action.VdcActionType;
+-import org.ovirt.engine.core.common.businessentities.ActionGroup;
+-import org.ovirt.engine.core.common.businessentities.action_version_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.actiongroup.ActionVersionMapDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.actiongroup.RoleGroupMapDAOHibernateImpl;
+-
+-public class ActionGroupDAOWrapperImpl extends BaseDAOWrapperImpl implements ActionGroupDAO {
+- private RoleGroupMapDAOHibernateImpl roleGroupMapDAO = new RoleGroupMapDAOHibernateImpl();
+- private ActionVersionMapDAOHibernateImpl actionVersionMapDAO = new ActionVersionMapDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- roleGroupMapDAO.setSession(session);
+- }
+-
+- @Override
+- public List<ActionGroup> getAllForRole(Guid id) {
+- return roleGroupMapDAO.getAllForRole(id);
+- }
+-
+- @Override
+- public action_version_map getActionVersionMapByActionType(VdcActionType action_type) {
+- return actionVersionMapDAO.get(action_type.getValue());
+- }
+-
+- @Override
+- public void addActionVersionMap(action_version_map map) {
+- actionVersionMapDAO.save(map);
+- }
+-
+- @Override
+- public void removeActionVersionMap(VdcActionType action_type) {
+- actionVersionMapDAO.remove(action_type.getValue());
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AdGroupDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AdGroupDAOHibernateImpl.java
+deleted file mode 100644
+index 3228d44..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AdGroupDAOHibernateImpl.java
++++ /dev/null
+@@ -1,52 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.Transaction;
+-
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>AdGroupDAOHibernateImpl</code> provides an implementation of {@link AdGroupDAO} that uses Hibernate for
+- * underlying persistence.
+- *
+- */
+-public class AdGroupDAOHibernateImpl extends BaseDAOHibernateImpl<ad_groups, Guid> implements AdGroupDAO {
+- @Override
+- public void remove(Guid id) {
+- /*
+- * This implementation was necessary in order to handle cascading deletes of what is in the tags_user_group_map
+- * table. it can be moved to the default generic implementation when the association between ad_groups and tags
+- * are handled via @OneToMany relationships.
+- */
+- Session session = getSession();
+-
+- Transaction transaction = session.beginTransaction();
+-
+- Query query = session.createQuery("delete from tags_user_group_map tugm where tugm.groupId = :group_id");
+-
+- query.setParameter("group_id", id);
+- query.executeUpdate();
+-
+- ad_groups instance = get(id);
+-
+- if (instance != null) {
+- session.delete(instance);
+- }
+-
+- transaction.commit();
+- }
+-
+- public AdGroupDAOHibernateImpl() {
+- super(ad_groups.class);
+- }
+-
+- @Override
+- public List<ad_groups> getAllTimeLeasedForPool(int id) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAOHibernateImpl.java
+deleted file mode 100644
+index 87662d2..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import org.ovirt.engine.core.common.businessentities.async_tasks;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class AsyncTaskDAOHibernateImpl extends BaseDAOHibernateImpl<async_tasks, Guid> implements AsyncTaskDAO {
+- public AsyncTaskDAOHibernateImpl() {
+- super(async_tasks.class);
+- }
+-
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAOHibernateImpl.java
+deleted file mode 100644
+index 8c905ed..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAOHibernateImpl.java
++++ /dev/null
+@@ -1,92 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.Date;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.SQLQuery;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.AuditLog;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NotImplementedException;
+-
+-public class AuditLogDAOHibernateImpl extends BaseDAOHibernateImpl<AuditLog, Long> implements AuditLogDAO {
+- public AuditLogDAOHibernateImpl() {
+- super(AuditLog.class);
+- }
+-
+- @Override
+- public AuditLog get(long id) {
+- return get(Long.valueOf(id));
+- }
+-
+- @Override
+- public void remove(long id) {
+- remove(Long.valueOf(id));
+- }
+-
+- @Override
+- public List<AuditLog> getAllAfterDate(Date cutoff) {
+- return findByCriteria(Restrictions.gt("logTime", cutoff));
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<AuditLog> getAllWithQuery(String sql) {
+- SQLQuery query = getSession().createSQLQuery(sql).addEntity(AuditLog.class);
+-
+- return query.list();
+- }
+-
+- @Override
+- public void removeAllBeforeDate(Date cutoff) {
+- Query query = getSession().createQuery("delete from AuditLog where logTime < :cutoff " +
+- "and processed = true " +
+- "and id not in (select auditLogId from event_notification_hist)");
+-
+- query.setParameter("cutoff", cutoff);
+-
+- getSession().beginTransaction();
+- query.executeUpdate();
+- getSession().getTransaction().commit();
+- }
+-
+- @Override
+- public void removeAllForVds(Guid id, boolean configAlerts) {
+- Query query = null;
+-
+- if (configAlerts) {
+- query = getSession().createQuery("delete from AuditLog al where al.vdsId = :vds_id " +
+- "and al.severity >= 10");
+- } else {
+- query = getSession().createQuery("delete from AuditLog al where al.vds_id = :vds_id " +
+- "and al.severity >= 10 " +
+- "and al.logType >= 9000");
+- }
+-
+- query.setParameter("vds_id", id);
+-
+- getSession().beginTransaction();
+- query.executeUpdate();
+- getSession().getTransaction().commit();
+- }
+-
+- @Override
+- public void removeAllOfTypeForVds(Guid id, int type) {
+- Query query = getSession().createQuery("delete from AuditLog al where al.vdsId = :vds_id " +
+- "and al.logType = :log_type");
+-
+- query.setParameter("vds_id", id);
+- query.setParameter("log_type", type);
+-
+- getSession().beginTransaction();
+- query.executeUpdate();
+- getSession().getTransaction().commit();
+- }
+-
+- @Override
+- public int getTimeToWaitForNextPmOp(String vdsName, String event) {
+- throw new NotImplementedException();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOHibernateImpl.java
+deleted file mode 100644
+index 0a7dff2..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOHibernateImpl.java
++++ /dev/null
+@@ -1,152 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.io.Serializable;
+-import java.util.ArrayList;
+-import java.util.List;
+-import java.util.StringTokenizer;
+-
+-import org.hibernate.Criteria;
+-import org.hibernate.SQLQuery;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Criterion;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>BaseDAOHibernateImpl</code> captures the common functions for DAOs.
+- *
+- */
+-public abstract class BaseDAOHibernateImpl<T, PK extends Serializable> {
+- private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
+-
+- private Class<T> type;
+-
+- public BaseDAOHibernateImpl(Class<T> type) {
+- this.type = type;
+- }
+-
+- public void setSession(Session session) {
+- sessions.set(session);
+- }
+-
+- protected Session getSession() {
+- return sessions.get();
+- }
+-
+- @SuppressWarnings("unchecked")
+- public T get(PK id) {
+- Session session = getSession();
+- T result = (T) session.get(type, id);
+-
+- return result;
+- }
+-
+- public T getByName(final String name) {
+- return findOneByCriteria(Restrictions.eq("name", name));
+- }
+-
+- public List<T> getAll() {
+- return findByCriteria();
+- }
+-
+- /**
+- * Supports returning a single object based on specified criteria.
+- *
+- * @param criteria
+- * the search criteria
+- * @return the object
+- */
+- @SuppressWarnings("unchecked")
+- protected T findOneByCriteria(Criterion... criteria) {
+- Criteria filter = getSession().createCriteria(type);
+-
+- for (Criterion criterion : criteria) {
+- filter.add(criterion);
+- }
+-
+- return (T) filter.uniqueResult();
+- }
+-
+- /**
+- * Retrieves all instances with the specified query.
+- *
+- * @param query
+- * the query
+- * @return the list of results
+- */
+- @SuppressWarnings("unchecked")
+- public List<T> findAllWithSQL(String sql) {
+- Session session = getSession();
+- SQLQuery query = session.createSQLQuery(sql);
+-
+- return (List<T>) query.list();
+- }
+-
+- /**
+- * Supports returning lists of objects based on specified criteria.
+- *
+- * @param criteria
+- * the search criteria
+- * @return the list of objects
+- */
+- @SuppressWarnings("unchecked")
+- protected List<T> findByCriteria(Criterion... criteria) {
+- Session session = getSession();
+- Criteria filter = session.createCriteria(type);
+-
+- for (Criterion criterion : criteria) {
+- filter.add(criterion);
+- }
+-
+- List<T> result = filter.list();
+-
+- return result;
+- }
+-
+- public void save(T instance) {
+- Session session = getSession();
+-
+- session.beginTransaction();
+- session.save(instance);
+- session.getTransaction().commit();
+- }
+-
+- public void update(T instance) {
+- save(instance);
+- }
+-
+- public void updateStatus(T instance) {
+- //TODO
+- }
+-
+- public void remove(PK id) {
+- T instance = get(id);
+-
+- if (instance != null) {
+- Session session = getSession();
+-
+- session.beginTransaction();
+- session.delete(instance);
+- session.getTransaction().commit();
+- }
+- }
+-
+- /**
+- * Takes as input a series of comma-delimited UUID values. It then converts them into a List containing Guid objects
+- * and returns that.
+- *
+- * @param ids
+- * the ids
+- * @return the list of Guids
+- */
+- protected List<Guid> convertIdsToGuids(String ids) {
+- List<Guid> filter = new ArrayList<Guid>();
+- StringTokenizer tokens = new StringTokenizer(ids, ",", false);
+-
+- while (tokens.hasMoreElements()) {
+- filter.add(new Guid(tokens.nextToken()));
+- }
+- return filter;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOWrapperImpl.java
+deleted file mode 100644
+index ae1b33a..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAOWrapperImpl.java
++++ /dev/null
+@@ -1,19 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import org.hibernate.Session;
+-
+-/**
+- * <code>BaseDAOHibernateImpl</code> captures the common functions for DAOs that wrap other DAOs.
+- *
+- */
+-public class BaseDAOWrapperImpl {
+- private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
+-
+- public void setSession(Session session) {
+- sessions.set(session);
+- }
+-
+- protected Session getSession() {
+- return sessions.get();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BookmarkDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BookmarkDAOHibernateImpl.java
+deleted file mode 100644
+index 66d45a3..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BookmarkDAOHibernateImpl.java
++++ /dev/null
+@@ -1,14 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import org.ovirt.engine.core.common.businessentities.bookmarks;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>BookmarkDAOHibernateImpl</code> provides an implementation of {@link BookmarkDAO} that uses Hibernate for
+- * persistence.
+- */
+-public class BookmarkDAOHibernateImpl extends BaseDAOHibernateImpl<bookmarks, Guid> implements BookmarkDAO {
+- public BookmarkDAOHibernateImpl() {
+- super(bookmarks.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BusinessEntitySnapshotDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BusinessEntitySnapshotDAOHibernateImpl.java
+deleted file mode 100644
+index 54d02c0..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BusinessEntitySnapshotDAOHibernateImpl.java
++++ /dev/null
+@@ -1,62 +0,0 @@
+-/**
+- *
+- */
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.apache.commons.collections.KeyValue;
+-
+-import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * @author yzaslavs
+- *
+- */
+-public class BusinessEntitySnapshotDAOHibernateImpl implements BusinessEntitySnapshotDAO {
+-
+- /**
+- *
+- */
+- public BusinessEntitySnapshotDAOHibernateImpl() {
+- // TODO Auto-generated constructor stub
+- }
+-
+- /* (non-Javadoc)
+- * @see org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO#get(org.ovirt.engine.core.compat.Guid)
+- */
+- /* (non-Javadoc)
+- * @see org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO#getAllForCommandId(org.ovirt.engine.core.compat.Guid)
+- */
+- @Override
+- public List<BusinessEntitySnapshot> getAllForCommandId(Guid commandID) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- /* (non-Javadoc)
+- * @see org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO#removeAllForCommandId(org.ovirt.engine.core.compat.Guid)
+- */
+- @Override
+- public void removeAllForCommandId(Guid commandID) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- /* (non-Javadoc)
+- * @see org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO#save(org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot)
+- */
+- @Override
+- public void save(BusinessEntitySnapshot entitySnapshot) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- @Override
+- public List<KeyValue> getAllCommands() {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAOWrapperImpl.java
+deleted file mode 100644
+index 22c7956..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAOWrapperImpl.java
++++ /dev/null
+@@ -1,120 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-import java.util.Map;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.DbUser;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dal.dbbroker.user_sessions;
+-import org.ovirt.engine.core.dal.dbbroker.user_sessions_id;
+-import org.ovirt.engine.core.dao.users.SessionDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.users.UserDAOHibernateImpl;
+-
+-/**
+- * <code>DbUserDAOWrapperImpl</code> provides an implementation of {@link DbUserDAO} using child DAOs.
+- *
+- */
+-public class DbUserDAOWrapperImpl extends BaseDAOWrapperImpl implements DbUserDAO {
+- private UserDAOHibernateImpl userDAO = new UserDAOHibernateImpl();
+- private SessionDAOHibernateImpl sessionDAO = new SessionDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- userDAO.setSession(session);
+- sessionDAO.setSession(session);
+- }
+-
+- @Override
+- public DbUser get(Guid id) {
+- return userDAO.get(id);
+- }
+-
+- @Override
+- public DbUser getByUsername(String username) {
+- return userDAO.findOneByCriteria(Restrictions.eq("username", username));
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<DbUser> getAllForVm(Guid id) {
+- Session session = getSession();
+- Query query = session.createQuery("select user from DbUser user, permissions perms " +
+- "where user.id = perms.adElementId " +
+- "and perms.objectType = 2 " +
+- "and perms.objectId = :vm_id");
+-
+- query.setParameter("vm_id", id);
+-
+- return (List<DbUser>) query.list();
+- }
+-
+- @Override
+- public List<DbUser> getAllTimeLeasedUsersForVm(int vmid) {
+- // TODO this API is broken
+- return null;
+- }
+-
+- @Override
+- public List<DbUser> getAllWithQuery(String query) {
+- return userDAO.findAllWithSQL(query);
+- }
+-
+- @Override
+- public List<DbUser> getAll() {
+- return userDAO.getAll();
+- }
+-
+- @Override
+- public List<user_sessions> getAllUserSessions() {
+- return sessionDAO.getAll();
+- }
+-
+- @Override
+- public void save(DbUser user) {
+- userDAO.save(user);
+- }
+-
+- @Override
+- public void saveSession(user_sessions session) {
+- sessionDAO.save(session);
+- }
+-
+- @Override
+- public void update(DbUser user) {
+- save(user);
+- }
+-
+- @Override
+- public void remove(Guid user) {
+- userDAO.remove(user);
+- }
+-
+- @Override
+- public void removeUserSession(String session, Guid user) {
+- sessionDAO.remove(new user_sessions_id(user, session));
+- }
+-
+- @Override
+- public void removeUserSessions(Map<String, Guid> sessionmap) {
+- for (Map.Entry<String, Guid> entry : sessionmap.entrySet()) {
+- sessionDAO.remove(new user_sessions_id(entry.getValue(), entry.getKey()));
+- }
+- }
+-
+- @Override
+- public void removeAllSessions() {
+- // List<user_sessions> all = sessionDAO.getAll();
+- // user_sessions[] sessions = new user_sessions[all.size()];
+- // all.toArray(sessions);
+-
+- for (user_sessions session : sessionDAO.getAll()) {
+- sessionDAO.remove(new user_sessions_id(session.getuser_id(), session.getsession_id()));
+- }
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDAOWrapperImpl.java
+deleted file mode 100644
+index e76f5b5..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDAOWrapperImpl.java
++++ /dev/null
+@@ -1,146 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.apache.commons.lang.NotImplementedException;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-import org.ovirt.engine.core.common.businessentities.DiskImage;
+-import org.ovirt.engine.core.common.businessentities.image_vm_pool_map;
+-import org.ovirt.engine.core.common.businessentities.stateless_vm_image_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.images.DiskImageDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.images.DiskImageDynamicDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.images.DiskImageTemplateDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.images.ImageVmMapDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.images.ImageVmPoolMapDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.images.StatelessImageVmMapDAOHibernateImpl;
+-
+-/**
+- * <code>DiskImageDAOWrapperImpl</code> provides an implementation of {@link DiskImageDAO} that wraps underlying
+- * Hibernate DAOs.
+- *
+- */
+-public class DiskImageDAOWrapperImpl extends BaseDAOWrapperImpl implements DiskImageDAO {
+- private DiskImageDAOHibernateImpl imageDAO = new DiskImageDAOHibernateImpl();
+- private DiskImageDynamicDAOHibernateImpl dynamicDAO = new DiskImageDynamicDAOHibernateImpl();
+- private DiskImageTemplateDAOHibernateImpl templateDAO = new DiskImageTemplateDAOHibernateImpl();
+- private ImageVmMapDAOHibernateImpl imageVmMapDAO = new ImageVmMapDAOHibernateImpl();
+- private ImageVmPoolMapDAOHibernateImpl imageVmPoolMapDAO = new ImageVmPoolMapDAOHibernateImpl();
+- private StatelessImageVmMapDAOHibernateImpl statelessImageVmMapDAO = new StatelessImageVmMapDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- imageDAO.setSession(session);
+- dynamicDAO.setSession(session);
+- templateDAO.setSession(session);
+- imageVmMapDAO.setSession(session);
+- }
+-
+- @Override
+- public DiskImage get(Guid id) {
+- return imageDAO.get(id);
+- }
+-
+- @Override
+- public DiskImage getSnapshotById(Guid id) {
+- return imageDAO.get(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAllForVm(Guid id) {
+- return imageDAO.getAllForVm(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAllSnapshotsForParent(Guid id) {
+- return imageDAO.getAllSnapshotsForParent(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAllSnapshotsForStorageDomain(Guid id) {
+- return imageDAO.getAllSnapshotsForStorageDomain(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAllSnapshotsForVmSnapshot(Guid id) {
+- return imageDAO.getAllSnapshotsForVmSnapshot(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAllSnapshotsForImageGroup(Guid id) {
+- return imageDAO.getAllSnapshotsForImageGroup(id);
+- }
+-
+- @Override
+- public List<DiskImage> getAll() {
+- return imageDAO.getAll();
+- }
+-
+- @Override
+- public void save(DiskImage image) {
+- imageDAO.save(image);
+- }
+-
+- @Override
+- public void update(DiskImage image) {
+- imageDAO.update(image);
+- }
+-
+- @Override
+- public void remove(Guid id) {
+- imageDAO.remove(id);
+- }
+-
+- @Override
+- public void removeAllForVmId(Guid id) {
+- imageDAO.removeAllForVmId(id);
+- }
+-
+- @Override
+- public image_vm_pool_map getImageVmPoolMapByImageId(Guid imageId) {
+- return imageVmPoolMapDAO.findOneByCriteria(Restrictions.eq("imageId", imageId));
+- }
+-
+- @Override
+- public void addImageVmPoolMap(image_vm_pool_map map) {
+- imageVmPoolMapDAO.save(map);
+- }
+-
+- @Override
+- public void removeImageVmPoolMap(Guid imageId) {
+- imageVmPoolMapDAO.remove(imageId);
+- }
+-
+- @Override
+- public List<image_vm_pool_map> getImageVmPoolMapByVmId(Guid vmId) {
+- return imageVmPoolMapDAO.findByCriteria(Restrictions.eq("vmId", vmId));
+- }
+-
+- @Override
+- public stateless_vm_image_map getStatelessVmImageMapForImageId(Guid imageId) {
+- return statelessImageVmMapDAO.get(imageId);
+- }
+-
+- @Override
+- public void addStatelessVmImageMap(stateless_vm_image_map map) {
+- statelessImageVmMapDAO.save(map);
+- }
+-
+- @Override
+- public void removeStatelessVmImageMap(Guid imageId) {
+- statelessImageVmMapDAO.remove(imageId);
+- }
+-
+- @Override
+- public List<stateless_vm_image_map> getAllStatelessVmImageMapsForVm(Guid vmId) {
+- return statelessImageVmMapDAO.findByCriteria(Restrictions.eq("vmId", vmId));
+- }
+-
+- @Override
+- public DiskImage getAncestor(Guid id) {
+- throw new NotImplementedException();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EventDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EventDAOWrapperImpl.java
+deleted file mode 100644
+index d68f869..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EventDAOWrapperImpl.java
++++ /dev/null
+@@ -1,90 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.event_map;
+-import org.ovirt.engine.core.common.businessentities.event_notification_hist;
+-import org.ovirt.engine.core.common.businessentities.event_notification_methods;
+-import org.ovirt.engine.core.common.businessentities.event_subscriber;
+-import org.ovirt.engine.core.common.businessentities.event_subscriber_id;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.events.MapDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.events.NotificationHistoryDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.events.NotificationMethodsDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.events.SubscriberDAOHibernateImpl;
+-
+-public class EventDAOWrapperImpl extends BaseDAOWrapperImpl implements EventDAO {
+- private MapDAOHibernateImpl mapDAO = new MapDAOHibernateImpl();
+- private NotificationHistoryDAOHibernateImpl notificationHistoryDAO = new NotificationHistoryDAOHibernateImpl();
+- private NotificationMethodsDAOHibernateImpl notificationMethodsDAO = new NotificationMethodsDAOHibernateImpl();
+- private SubscriberDAOHibernateImpl subscriberDAO = new SubscriberDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- mapDAO.setSession(session);
+- notificationHistoryDAO.setSession(session);
+- notificationMethodsDAO.setSession(session);
+- subscriberDAO.setSession(session);
+- }
+-
+- @Override
+- public List<event_subscriber> getAll() {
+- return subscriberDAO.getAll();
+- }
+-
+- @Override
+- public List<event_subscriber> getAllForSubscriber(Guid id) {
+- return subscriberDAO.getAllForSubscriber(id);
+- }
+-
+- @Override
+- public List<event_notification_methods> getAllEventNotificationMethods() {
+- return notificationMethodsDAO.getAll();
+- }
+-
+- @Override
+- public List<event_notification_methods> getEventNotificationMethodsById(int method_id) {
+- return notificationMethodsDAO.getEventNotificationMethodsById(method_id);
+- }
+-
+- @Override
+- public List<event_notification_methods> getEventNotificationMethodsByType(String method_type) {
+- return notificationMethodsDAO.getEventNotificationMethodsByType(method_type);
+- }
+-
+- @Override
+- public void subscribe(event_subscriber subscriber) {
+- subscriberDAO.save(subscriber);
+- }
+-
+- @Override
+- public void update(event_subscriber subscriber, int oldMethodId) {
+- subscriberDAO.update(subscriber, oldMethodId);
+- }
+-
+- @Override
+- public void unsubscribe(event_subscriber subscriber) {
+- subscriberDAO.remove(new event_subscriber_id(subscriber.getsubscriber_id(),
+- subscriber.getevent_up_name(),
+- subscriber.getmethod_id(),
+- subscriber.gettag_name()));
+- }
+-
+- @Override
+- public List<event_map> getEventMapByName(String event_up_name) {
+- return mapDAO.getByEventUpName(event_up_name);
+- }
+-
+- @Override
+- public List<event_map> getAllEventMaps() {
+- return mapDAO.getAll();
+- }
+-
+- public event_notification_hist getHistory(Guid subscriberId, long auditLogId) {
+- return notificationHistoryDAO.getHistory(subscriberId, auditLogId);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/GuidGenerator.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/GuidGenerator.java
+deleted file mode 100644
+index 9f33ec4..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/GuidGenerator.java
++++ /dev/null
+@@ -1,18 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.io.Serializable;
+-
+-import org.hibernate.HibernateException;
+-import org.hibernate.engine.SessionImplementor;
+-import org.hibernate.id.IdentifierGenerator;
+-
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class GuidGenerator implements IdentifierGenerator {
+-
+- @Override
+- public Serializable generate(SessionImplementor session, Object object) throws HibernateException {
+- return Guid.NewGuid();
+- }
+-
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageGroupStorageDomainMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageGroupStorageDomainMapDAOHibernateImpl.java
+deleted file mode 100644
+index 73e34a6..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageGroupStorageDomainMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,24 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.image_group_storage_domain_map;
+-import org.ovirt.engine.core.common.businessentities.image_group_storage_domain_map_id;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class ImageGroupStorageDomainMapDAOHibernateImpl extends BaseDAOHibernateImpl<image_group_storage_domain_map, image_group_storage_domain_map_id> {
+- public ImageGroupStorageDomainMapDAOHibernateImpl() {
+- super(image_group_storage_domain_map.class);
+- }
+-
+- public List<image_group_storage_domain_map> getAllForImage(Guid image_group_id) {
+- return findByCriteria(Restrictions.eq("id.imageGroupId", image_group_id));
+- }
+-
+- public List<image_group_storage_domain_map> findAllForStorageDomain(Guid storage_domain_id) {
+- return findByCriteria(Restrictions.eq("id.storageDomainId", storage_domain_id));
+- }
+-
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/LunDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/LunDAOHibernateImpl.java
+deleted file mode 100644
+index 9c40d1e..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/LunDAOHibernateImpl.java
++++ /dev/null
+@@ -1,29 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.LUNs;
+-
+-public class LunDAOHibernateImpl extends BaseDAOHibernateImpl<LUNs, String> implements LunDAO {
+- public LunDAOHibernateImpl() {
+- super(LUNs.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<LUNs> getAllForStorageServerConnection(String id) {
+- Query query = getSession().getNamedQuery("all_luns_for_storage_server_connection");
+-
+- query.setParameter("storage_server_connection", id);
+-
+- return query.list();
+- }
+-
+- @Override
+- public List<LUNs> getAllForVolumeGroup(String id) {
+- return findByCriteria(Restrictions.eq("volumeGroupId", id));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkClusterDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkClusterDAOHibernateImpl.java
+deleted file mode 100644
+index 1f393c2..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkClusterDAOHibernateImpl.java
++++ /dev/null
+@@ -1,44 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.network_cluster;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>NetworkClusterDAOHibernateImpl</code> provides an implementation of {@link NetworkClusterDAO} that uses
+- * Hibernate for the persistence implementation.
+- *
+- */
+-public class NetworkClusterDAOHibernateImpl extends BaseDAOHibernateImpl<network_cluster, Guid> implements NetworkClusterDAO {
+- public NetworkClusterDAOHibernateImpl() {
+- super(network_cluster.class);
+- }
+-
+- @Override
+- public List<network_cluster> getAllForCluster(Guid cluster) {
+- return findByCriteria(Restrictions.eq("clusterId", cluster));
+- }
+-
+- @Override
+- public List<network_cluster> getAllForNetwork(Guid network) {
+- return findByCriteria(Restrictions.eq("networkId", network));
+- }
+-
+- @Override
+- public void remove(final Guid clusterid, final Guid networkid) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("delete_network_cluster");
+-
+- query.setParameter("cluster_id", clusterid);
+- query.setParameter("network_id", networkid);
+-
+- session.beginTransaction();
+- query.executeUpdate();
+- session.getTransaction().commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDAOHibernateImpl.java
+deleted file mode 100644
+index 93f9a98..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDAOHibernateImpl.java
++++ /dev/null
+@@ -1,28 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.network;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>NetworkDAOHibernateImpl</code> provides an implementation of {@Link NetworkDAO} using Hibernate.
+- *
+- */
+-public class NetworkDAOHibernateImpl extends BaseDAOHibernateImpl<network, Guid> implements NetworkDAO {
+- public NetworkDAOHibernateImpl() {
+- super(network.class);
+- }
+-
+- @Override
+- public List<network> getAllForDataCenter(Guid id) {
+- return findByCriteria(Restrictions.eq("storage_pool_id", id));
+- }
+-
+- @Override
+- public List<network> getAllForCluster(Guid id) {
+- return findByCriteria(Restrictions.eq("cluster.clusterId", id));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAOHibernateImpl.java
+deleted file mode 100644
+index ed56ab5..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAOHibernateImpl.java
++++ /dev/null
+@@ -1,297 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.apache.commons.lang.NotImplementedException;
+-import org.ovirt.engine.core.common.VdcObjectType;
+-import org.ovirt.engine.core.common.businessentities.DbUser;
+-import org.ovirt.engine.core.common.businessentities.VDSGroup;
+-import org.ovirt.engine.core.common.businessentities.VdsStatic;
+-import org.ovirt.engine.core.common.businessentities.VmStatic;
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.common.businessentities.permissions;
+-import org.ovirt.engine.core.common.businessentities.roles;
+-import org.ovirt.engine.core.common.businessentities.vm_pools;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-
+-public class PermissionDAOHibernateImpl extends BaseDAOHibernateImpl<permissions, Guid> implements PermissionDAO {
+- public PermissionDAOHibernateImpl() {
+- super(permissions.class);
+- }
+-
+- @Override
+- public permissions get(Guid id) {
+- Query query = getSession().createQuery("select perms " +
+- "from permissions as perms, " +
+- "roles as role " +
+- "where role.id = perms.roleId " +
+- "and perms.id = :permission_id");
+-
+- query.setParameter("permission_id", id);
+-
+- permissions result = (permissions) query.uniqueResult();
+- return fillInPermissionDetails(result);
+- }
+-
+- @Override
+- public permissions getForRoleAndAdElementAndObject(Guid roleid, Guid elementid, Guid objectid) {
+- return fillInPermissionDetails(findOneByCriteria(
+- Restrictions.eq("roleId", roleid),
+- Restrictions.eq("adElementId", elementid),
+- Restrictions.eq("objectId", objectid)));
+- }
+-
+- @Override
+- public permissions getForRoleAndAdElementAndObjectWithGroupCheck(Guid roleid, Guid elementid, Guid objectid) {
+- Query query = getSession().createQuery("from DbUser where id = :id");
+-
+- query.setParameter("id", objectid);
+-
+- DbUser user = (DbUser) query.uniqueResult();
+-
+- query = getSession().createQuery("from ad_groups where name in :names");
+- query.setParameterList("names", user.getGroupsAsArray());
+-
+- List<ad_groups> groups = query.list();
+-
+- List<Guid> ids = new ArrayList<Guid>();
+-
+- ids.add(user.getuser_id());
+- for (ad_groups group : groups) {
+- ids.add(group.getid());
+- }
+-
+- return fillInPermissionDetails(findOneByCriteria(
+- Restrictions.eq("roleId", roleid),
+- Restrictions.eq("adElementId", elementid),
+- Restrictions.eq("objectId", objectid),
+- Restrictions.in("adElementId", ids)));
+- }
+-
+- @Override
+- public List<permissions> getAllForAdElement(Guid id) {
+- return fillInPermissionDetails(findByCriteria(Restrictions.eq("adElementId", id)));
+- }
+-
+- @Override
+- public List<permissions> getAllForRole(Guid id) {
+- return fillInPermissionDetails(findByCriteria(Restrictions.eq("roleId", id)));
+- }
+-
+- @Override
+- public List<permissions> getAllForRoleAndAdElement(Guid roleid, Guid elementid) {
+- return fillInPermissionDetails(findByCriteria(Restrictions.eq("roleId", roleid),
+- Restrictions.eq("adElementId", elementid)));
+- }
+-
+- @Override
+- public List<permissions> getAllForRoleAndObject(Guid roleid, Guid objectid) {
+- return fillInPermissionDetails(findByCriteria(Restrictions.eq("roleId", roleid),
+- Restrictions.eq("objectId", objectid)));
+- }
+-
+- @Override
+- public List<permissions> getAllForEntity(Guid id) {
+- return fillInPermissionDetails(findByCriteria(Restrictions.eq("objectId", id)));
+- }
+-
+- @Override
+- public List<permissions> getTreeForEntity(Guid id, VdcObjectType type) {
+- List<NGuid> ids = new ArrayList<NGuid>();
+-
+- // all use the system id
+- ids.add(Guid.SYSTEM);
+- ids.add(id);
+-
+- switch (type) {
+- case VM:
+- getVmParentIds(id, ids);
+- break;
+- case VDS:
+- getVdsParentIds(id, ids);
+- break;
+- case VmTemplate:
+- getVmTemplateParentIds(id, ids);
+- break;
+- case VmPool:
+- getVmPoolParentIds(id, ids);
+- break;
+- case VdsGroups:
+- getVdsGroupParentIds(id, ids);
+- break;
+- case System:
+- case StoragePool:
+- case Storage:
+- case User:
+- case Role:
+- ids.add(id);
+- break;
+- default:
+- // no IDs are returned, so exit with an empty result set
+- ids.clear();
+- return new ArrayList<permissions>();
+- }
+-
+- return fillInPermissionDetails(findByCriteria(Restrictions.in("objectId", ids)));
+- }
+-
+- private void getVmParentIds(Guid id, List<NGuid> ids) {
+- Query query = getSession().createQuery("from VmStatic where id = :id");
+- query.setParameter("id", id);
+-
+- VmStatic vmStatic = (VmStatic) query.uniqueResult();
+-
+- if (vmStatic != null) {
+- addVdsGroupId(vmStatic.getvds_group_id(), ids);
+- }
+- }
+-
+- private void getVdsParentIds(Guid id, List<NGuid> ids) {
+- Query query = getSession().createQuery("from VdsStatic where id = :id");
+- query.setParameter("id", id);
+-
+- VdsStatic vdsStatic = (VdsStatic) query.uniqueResult();
+-
+- if (vdsStatic != null) {
+- addVdsGroupId(vdsStatic.getvds_group_id(), ids);
+- }
+- }
+-
+- private void getVmTemplateParentIds(Guid id, List<NGuid> ids) {
+-
+- }
+-
+- private void getVmPoolParentIds(Guid id, List<NGuid> ids) {
+- Query query = getSession().createQuery("from vm_pools where id = :id");
+- query.setParameter("id", id);
+-
+- vm_pools vmPool = (vm_pools) query.uniqueResult();
+-
+- if (vmPool != null) {
+- addVdsGroupId(vmPool.getvds_group_id(), ids);
+- }
+- }
+-
+- private void getVdsGroupParentIds(Guid id, List<NGuid> ids) {
+- addVdsGroupId(id, ids);
+- }
+-
+- private void addVdsGroupId(Guid id, List<NGuid> ids) {
+- ids.add(id);
+-
+- Query query = getSession().createQuery("from VDSGroup where id = :id");
+-
+- query.setParameter("id", id);
+-
+- VDSGroup vdsGroup = (VDSGroup) query.uniqueResult();
+-
+- if (vdsGroup != null) {
+- ids.add(vdsGroup.getstorage_pool_id());
+- }
+- }
+-
+- @Override
+- public void removeForEntity(Guid id) {
+- Query query = getSession().createQuery("delete from permissions perms where perms.objectId = :id");
+-
+- query.setParameter("id", id);
+-
+- getSession().beginTransaction();
+- query.executeUpdate();
+- getSession().getTransaction().commit();
+- }
+-
+- private List<permissions> fillInPermissionDetails(List<permissions> found) {
+- for (permissions permission : found) {
+- fillInPermissionDetails(permission);
+- }
+-
+- return found;
+- }
+-
+- /**
+- * Retrieves the extra information previously retrieved by storage procedures.
+- *
+- * @param permission
+- * the instance
+- * @return
+- */
+- private permissions fillInPermissionDetails(permissions permission) {
+- if (permission != null) {
+- // get the object name
+- if (permission.getad_element_id().equals(Guid.EVERYONE)) {
+- permission.setObjectName("Everyone");
+- } else {
+- Query query = getSession().createQuery("from DbUser where id = :id");
+-
+- query.setParameter("id", permission.getad_element_id());
+-
+- DbUser user = (DbUser) query.uniqueResult();
+-
+- if (user != null)
+- permission.setOwnerName(user.getCoalescedName());
+- }
+-
+- // get the entity name
+- Query query = null;
+- String entityName = null;
+-
+- switch (permission.getObjectType()) {
+- case System:
+- entityName = "System";
+- break;
+- case VM:
+- query = getSession().createQuery("select name from VmStatic where id = :id");
+- break;
+- case VDS:
+- query = getSession().createQuery("select name from VdsStatic where id = :id");
+- break;
+- case VmTemplate:
+- query = getSession().createQuery("select name from VmTemplate where id = :id");
+- break;
+- case VmPool:
+- query = getSession().createQuery("select name from vm_pools where id = :id");
+- break;
+- case VdsGroups:
+- query = getSession().createQuery("select name from VDSGroup where id = :id");
+- break;
+- case Storage:
+- query = getSession().createQuery("select storageName from storage_domain_static where id = :id");
+- break;
+- case StoragePool:
+- query = getSession().createQuery("select name from storage_pool where id = :id");
+- break;
+- }
+-
+- if (query != null) {
+- query.setParameter("id", permission.getObjectId());
+- entityName = (String) query.uniqueResult();
+- }
+-
+- permission.setObjectName(entityName);
+-
+- // get the role details
+- query = getSession().createQuery("from roles where id = :id");
+- query.setParameter("id", permission.getrole_id().toString());
+-
+- roles role = (roles) query.uniqueResult();
+-
+- if (role != null) {
+- permission.setRoleName(role.getname());
+- permission.setRoleType(role.getType());
+- }
+- }
+-
+- return permission;
+- }
+-
+- @Override
+- public List<permissions> getAllDirectPermissionsForAdElement(Guid id) {
+- throw new NotImplementedException();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleDAOHibernateImpl.java
+deleted file mode 100644
+index 5b828df..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleDAOHibernateImpl.java
++++ /dev/null
+@@ -1,81 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-
+-import org.ovirt.engine.core.common.businessentities.DbUser;
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.common.businessentities.roles;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class RoleDAOHibernateImpl extends BaseDAOHibernateImpl<roles, Guid> implements RoleDAO {
+- public RoleDAOHibernateImpl() {
+- super(roles.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<roles> getAllForAdElement(Guid id) {
+- Guid[] ids = getUserAndGroupIdsForUser(id);
+-
+- if (ids.length == 0) {
+- return new ArrayList<roles>();
+- }
+-
+- Query query = getSession().createQuery("from roles role, permissions perms " +
+- "where perms.roleId = role.id " +
+- "and perms.adElementId in ( :ids )");
+-
+- query.setParameterList("ids", ids);
+-
+- return query.list();
+- }
+-
+- /**
+- * Retrieves the IDs for all groups for the supplied user.
+- *
+- * @param userId
+- * the user
+- * @return a collection containing the ID of the user and all of his groups
+- */
+- private Guid[] getUserAndGroupIdsForUser(Guid userId) {
+- Query query = getSession().createQuery("from DbUser where id = :id");
+-
+- query.setParameter("id", userId);
+-
+- DbUser user = (DbUser) query.uniqueResult();
+-
+- if (user == null) {
+- return new Guid[0];
+- }
+-
+- query = getSession().createQuery("from ad_groups where name in (:names)");
+- query.setParameterList("names", user.getGroupsAsArray());
+-
+- @SuppressWarnings("unchecked")
+- List<ad_groups> groups = query.list();
+-
+- Guid[] result = new Guid[groups.size() + 1];
+-
+- result[0] = userId;
+- for (int index = 0; index < groups.size(); index++) {
+- result[index + 1] = groups.get(index).getid();
+- }
+-
+- return result;
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<roles> getForAdElement(Guid id) {
+- Query query = getSession().createQuery("from roles role, permissions perms " +
+- "where perms.roleId = role.id " +
+- "and perms.adElementId = :id");
+-
+- query.setParameter("id", id);
+-
+- return query.list();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleGroupMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleGroupMapDAOHibernateImpl.java
+deleted file mode 100644
+index 19a0dbb..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RoleGroupMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,31 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.ActionGroup;
+-import org.ovirt.engine.core.common.businessentities.RoleGroupMap;
+-import org.ovirt.engine.core.common.businessentities.RoleGroupMapId;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class RoleGroupMapDAOHibernateImpl extends BaseDAOHibernateImpl<RoleGroupMap, RoleGroupMapId> implements RoleGroupMapDAO {
+- public RoleGroupMapDAOHibernateImpl() {
+- super(RoleGroupMap.class);
+- }
+-
+- @Override
+- public RoleGroupMap getByActionGroupAndRole(ActionGroup group, Guid id) {
+- return get(new RoleGroupMapId(id, group));
+- }
+-
+- @Override
+- public List<RoleGroupMap> getAllForRole(Guid id) {
+- return findByCriteria(Restrictions.eq("id.roleId", id));
+- }
+-
+- @Override
+- public void remove(ActionGroup group, Guid id) {
+- remove(new RoleGroupMapId(id, group));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAOWrapperImpl.java
+deleted file mode 100644
+index 408b9b0..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAOWrapperImpl.java
++++ /dev/null
+@@ -1,193 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+-import org.ovirt.engine.core.common.businessentities.image_group_storage_domain_map;
+-import org.ovirt.engine.core.common.businessentities.image_group_storage_domain_map_id;
+-import org.ovirt.engine.core.common.businessentities.storage_domain_dynamic;
+-import org.ovirt.engine.core.common.businessentities.storage_domain_static;
+-import org.ovirt.engine.core.common.businessentities.storage_domains;
+-import org.ovirt.engine.core.common.businessentities.storage_pool_iso_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-
+-public class StorageDomainDAOWrapperImpl extends BaseDAOWrapperImpl implements StorageDomainDAO {
+- StorageDomainStaticDAOHibernateImpl staticDAO = new StorageDomainStaticDAOHibernateImpl();
+- StorageDomainDynamicDAOHibernateImpl dynamicDAO = new StorageDomainDynamicDAOHibernateImpl();
+- StoragePoolIsoMapDAOHibernateImpl storagePoolIsoMapDAO = new StoragePoolIsoMapDAOHibernateImpl();
+- ImageGroupStorageDomainMapDAOHibernateImpl imageGroupStorageDomainMapDAO =
+- new ImageGroupStorageDomainMapDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+- staticDAO.setSession(session);
+- dynamicDAO.setSession(session);
+- storagePoolIsoMapDAO.setSession(session);
+- imageGroupStorageDomainMapDAO.setSession(session);
+- }
+-
+- @Override
+- public Guid getMasterStorageDomainIdForPool(Guid pool) {
+- Guid returnValue = Guid.Empty;
+- List<storage_domains> domains = getAllForStoragePool(pool);
+- for (storage_domains domain : domains) {
+- if (domain.getstorage_domain_type() == StorageDomainType.Master) {
+- returnValue = domain.getid();
+- break;
+- }
+- }
+- return returnValue;
+- }
+-
+- @Override
+- public storage_domains get(Guid id) {
+- storage_domain_static staticPart = staticDAO.get(id);
+-
+- return createDomain(staticPart);
+- }
+-
+- private storage_domains createDomain(storage_domain_static staticPart) {
+- storage_domains result = null;
+-
+- if (staticPart != null) {
+- @SuppressWarnings("deprecation")
+- storage_domain_dynamic dynamicPart = dynamicDAO.get(staticPart.getId());
+- if (dynamicPart != null) {
+- result = new storage_domains();
+-
+- result.setStorageStaticData(staticPart);
+- result.setStorageDynamicData(dynamicPart);
+-
+- fillInDetails(result);
+- }
+- }
+-
+- return result;
+- }
+-
+- private void fillInDetails(storage_domains result) {
+- Query query;
+-
+- query = getSession().createQuery("select spimap from storage_pool_iso_map spimap," +
+- "storage_pool pool " +
+- "where spimap.id.storagePoolId = pool.id " +
+- "and spimap.id.storageId = :id");
+-
+- query.setParameter("id", result.getid());
+-
+- @SuppressWarnings("unchecked")
+- List<storage_pool_iso_map> spimaps = query.list();
+-
+- result.setStoragePoolIsoMapData(spimaps.size() > 0 ? spimaps.get(0) : null);
+- }
+-
+- @Override
+- public storage_domains getForStoragePool(Guid id, NGuid storagepool) {
+- storage_domain_static staticPart = staticDAO.getForStoragePool(id, storagepool);
+-
+- if (staticPart != null) {
+- return createDomain(staticPart);
+- }
+-
+- return null;
+- }
+-
+- @Override
+- public List<storage_domains> getAllForConnection(String connection) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @Override
+- public List<storage_domains> getAllForStoragePool(Guid pool) {
+- return createDomains(staticDAO.getAllForStoragePool(pool));
+- }
+-
+- private List<storage_domains> createDomains(List<storage_domain_static> staticParts) {
+- List<storage_domains> result = new ArrayList<storage_domains>();
+-
+- for (storage_domain_static staticPart : staticParts) {
+- storage_domains domain = createDomain(staticPart);
+-
+- if (domain != null)
+- result.add(domain);
+- }
+-
+- return result;
+- }
+-
+- @Override
+- public List<storage_domains> getAllForImageGroup(NGuid imageGroup) {
+- return createDomains(staticDAO.getAllForImageGroup(imageGroup));
+- }
+-
+- @Override
+- public List<storage_domains> getAllForStorageDomain(Guid id) {
+- return createDomains(staticDAO.getAllForStorageDomain(id));
+- }
+-
+- @Override
+- public List<storage_domains> getAllWithQuery(String query) {
+- return createDomains(staticDAO.findAllWithSQL(query));
+- }
+-
+- @Override
+- public List<storage_domains> getAll() {
+- return createDomains(staticDAO.getAll());
+- }
+-
+- @Override
+- public List<Guid> getAllStorageDomainsByImageGroup(Guid imageGroupId) {
+- List<storage_domain_static> domains = staticDAO.getAllForImageGroup(imageGroupId);
+- List<Guid> result = new ArrayList<Guid>();
+-
+- for (storage_domain_static domain : domains) {
+- result.add(domain.getId());
+- }
+-
+- return result;
+- }
+-
+- @Override
+- public void remove(Guid id) {
+- dynamicDAO.remove(id);
+- staticDAO.remove(id);
+- }
+-
+- @Override
+- public image_group_storage_domain_map getImageGroupStorageDomainMapForImageGroupAndStorageDomain(image_group_storage_domain_map map) {
+- return imageGroupStorageDomainMapDAO.get(new image_group_storage_domain_map_id(map.getimage_group_id(),
+- map.getstorage_domain_id()));
+- }
+-
+- @Override
+- public void addImageGroupStorageDomainMap(image_group_storage_domain_map map) {
+- imageGroupStorageDomainMapDAO.save(map);
+- }
+-
+- @Override
+- public void removeImageGroupStorageDomainMap(image_group_storage_domain_map map) {
+- imageGroupStorageDomainMapDAO.remove(new image_group_storage_domain_map_id(map.getimage_group_id(),
+- map.getstorage_domain_id()));
+- }
+-
+- @Override
+- public List<image_group_storage_domain_map> getAllImageGroupStorageDomainMapsForStorageDomain(Guid storage_domain_id) {
+- return imageGroupStorageDomainMapDAO.findAllForStorageDomain(storage_domain_id);
+- }
+-
+- @Override
+- public List<image_group_storage_domain_map> getAllImageGroupStorageDomainMapsForImage(Guid image_group_id) {
+- return imageGroupStorageDomainMapDAO.getAllForImage(image_group_id);
+- }
+-
+- @Override
+- public List<storage_domains> getAllByStoragePoolAndConnection(Guid storagePoolId, String connection) {
+- return null;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDynamicDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDynamicDAOHibernateImpl.java
+deleted file mode 100644
+index e7f75d0..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDynamicDAOHibernateImpl.java
++++ /dev/null
+@@ -1,10 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import org.ovirt.engine.core.common.businessentities.storage_domain_dynamic;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class StorageDomainDynamicDAOHibernateImpl extends BaseDAOHibernateImpl<storage_domain_dynamic, Guid> implements StorageDomainDynamicDAO {
+- public StorageDomainDynamicDAOHibernateImpl() {
+- super(storage_domain_dynamic.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAOHibernateImpl.java
+deleted file mode 100644
+index 6507b06..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAOHibernateImpl.java
++++ /dev/null
+@@ -1,96 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.apache.commons.lang.NotImplementedException;
+-import org.hibernate.Query;
+-import org.hibernate.criterion.Restrictions;
+-import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
+-import org.ovirt.engine.core.common.businessentities.StorageType;
+-import org.ovirt.engine.core.common.businessentities.storage_domain_static;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-
+-public class StorageDomainStaticDAOHibernateImpl extends BaseDAOHibernateImpl<storage_domain_static, Guid> implements StorageDomainStaticDAO {
+-
+- public StorageDomainStaticDAOHibernateImpl() {
+- super(storage_domain_static.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_domain_static> getAllForStoragePoolOfStorageType(StorageType type, Guid pool) {
+- Query query = getSession().getNamedQuery("all_storage_domain_static_for_storage_pool_of_type");
+-
+- query.setParameter("pool_id", pool);
+- query.setParameter("storage_type", type);
+-
+- return fillInDetails(query.list());
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_domain_static> getAllForStoragePool(Guid pool) {
+- Query query = getSession().getNamedQuery("all_storage_domain_static_for_storage_pool");
+-
+- query.setParameter("pool_id", pool);
+-
+- return fillInDetails(query.list());
+- }
+-
+- private List<storage_domain_static> fillInDetails(List<storage_domain_static> list) {
+- for (storage_domain_static sds : list) {
+- Query query =
+- getSession().createQuery("select pool.name from storage_pool pool, storage_pool_iso_map map " +
+- "where pool.id = map.id.storagePoolId " +
+- "and map.id.storageId = :storage_id");
+-
+- query.setParameter("storage_id", sds.getId());
+-
+- @SuppressWarnings("unchecked")
+- List<String> names = query.list();
+- sds.setstorage_pool_name(names.isEmpty() != true ? names.get(0) : "");
+- }
+- return list;
+- }
+-
+- @Override
+- public List<storage_domain_static> getAllOfStorageType(StorageType type) {
+- List<storage_domain_static> result = findByCriteria(Restrictions.eq("storagePoolType", type));
+-
+- return fillInDetails(result);
+- }
+-
+- public storage_domain_static getForStoragePool(Guid id, NGuid storagepool) {
+- Query query = getSession().getNamedQuery("storage_domain_static_for_storage_pool");
+-
+- query.setParameter("id", id);
+- query.setParameter("storage_pool_id", storagepool);
+-
+- return (storage_domain_static) query.uniqueResult();
+- }
+-
+- @SuppressWarnings("unchecked")
+- public List<storage_domain_static> getAllForImageGroup(NGuid imageGroup) {
+- Query query = getSession().getNamedQuery("all_storage_domain_static_for_image_group");
+-
+- query.setParameter("image_group_id", imageGroup);
+-
+- return query.list();
+- }
+-
+- @SuppressWarnings("unchecked")
+- public List<storage_domain_static> getAllForStorageDomain(Guid id) {
+- Query query = getSession().getNamedQuery("all_storage_domain_static_for_storage_domain");
+-
+- query.setParameter("storage_domain_id", id);
+-
+- return query.list();
+- }
+-
+- @Override
+- public List<Guid> getAllIds(Guid pool, StorageDomainStatus status) {
+- // TODO Auto-generated method stub
+- throw new NotImplementedException();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolDAOHibernateImpl.java
+deleted file mode 100644
+index 473b02c..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolDAOHibernateImpl.java
++++ /dev/null
+@@ -1,126 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.ActionGroup;
+-import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
+-import org.ovirt.engine.core.common.businessentities.StorageType;
+-import org.ovirt.engine.core.common.businessentities.storage_pool;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class StoragePoolDAOHibernateImpl extends BaseDAOHibernateImpl<storage_pool, Guid> implements StoragePoolDAO {
+-
+- // private StoragePoolIsoMapDAO storagePoolIsoMapDAO = new StoragePoolIsoMapDAO();
+-
+- public StoragePoolDAOHibernateImpl() {
+- super(storage_pool.class);
+- }
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+- //storagePoolIsoMapDAO.setSession(session);
+- }
+-
+- @Override
+- public storage_pool getForVds(final Guid vds) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_storage_pools_for_vds");
+- query.setParameter("vds_id", vds);
+- return (storage_pool) query.uniqueResult();
+- }
+-
+- @Override
+- public storage_pool getForVdsGroup(final Guid vdsGroup) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_storage_pools_for_vds_group");
+-
+- query.setParameter("vds_group_id", vdsGroup);
+-
+- return (storage_pool) query.uniqueResult();
+- }
+-
+- @Override
+- public List<storage_pool> getAllOfType(final StorageType type) {
+- return findByCriteria(Restrictions.eq("storagePoolType", type.getValue()));
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_pool> getAllForStorageDomain(final Guid storageDomain) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_storage_pools_for_storage_domain");
+-
+- query.setParameter("storage_domain_id", storageDomain);
+-
+- return query.list();
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_pool> getAllWithQuery(final String queryString) {
+- Session session = getSession();
+- Query query = session.createQuery(queryString);
+-
+- return query.list();
+- }
+-
+- @Override
+- public void updateStatus(Guid id, StoragePoolStatus status) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- @Override
+- public void updatePartial(storage_pool pool) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- @Override
+- public List<storage_pool> getDataCentersWithPermittedActionOnClusters(Guid userId, ActionGroup actionGroup) {
+- Query query = getSession().getNamedQuery("fn_perms_get_storage_pools_with_permitted_action_on_vds_groups");
+-
+- query.setParameter("v_user_id", userId).setParameter("v_action_group_id", actionGroup.getId());
+-
+- return (List<storage_pool>) query.uniqueResult();
+- }
+-
+- /* Moved to iso map dao , left modifications to Derril
+- @Override
+- public storage_pool_iso_map getStoragePoolIsoMapByIsoAndStoragePool(Guid isoId, Guid storagePoolId) {
+- return storagePoolIsoMapDAO.get(new StoragePoolIsoMapId(isoId,storagePoolId));
+- }
+-
+- @Override
+- public void addStoragePoolIsoMap(storage_pool_iso_map map) {
+- storagePoolIsoMapDAO.save(map);
+-
+- }
+-
+- @Override
+- public void updateStoragePoolIsoMap(storage_pool_iso_map map) {
+- storagePoolIsoMapDAO.update(map);
+- }
+-
+- @Override
+- public void removeStoragePoolIsoMap(Guid storagePoolId, Guid isoDomainId) {
+- storagePoolIsoMapDAO.remove(new StoragePoolIsoMapId(isoDomainId,storagePoolId));
+- }
+-
+- @Override
+- public List<storage_pool_iso_map> getAllStoragePoolIsoMapsForStoragePool(Guid storagePoolId) {
+- return storagePoolIsoMapDAO.getAllForStoragePool(storagePoolId);
+- }
+-
+- @Override
+- public List<storage_pool_iso_map> getAllStoragePoolIsoMapsForIso(Guid isoId) {
+- return storagePoolIsoMapDAO.getAllForStorage(isoId);
+-
+- }
+- */
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolIsoMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolIsoMapDAOHibernateImpl.java
+deleted file mode 100644
+index ff59f1d..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StoragePoolIsoMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,47 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMapId;
+-import org.ovirt.engine.core.common.businessentities.storage_pool_iso_map;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * StoragePoolIsoMap DAO hibernate implementation
+- *
+- */
+-public class StoragePoolIsoMapDAOHibernateImpl extends BaseDAOHibernateImpl<storage_pool_iso_map, StoragePoolIsoMapId> {
+-
+- public StoragePoolIsoMapDAOHibernateImpl() {
+- super(storage_pool_iso_map.class);
+- }
+-
+- /**
+- * Gets all maps for a given storage pool ID
+- * @param storagePoolId storage pool ID for which the maps will be returned
+- * @return list of maps
+- */
+- @SuppressWarnings("unchecked")
+- public List<storage_pool_iso_map> getAllForStoragePool(Guid storagePoolId) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_storage_pool_iso_map_by_storage_pool_id");
+- query.setParameter("storagePoolId", storagePoolId);
+- return query.list();
+- }
+-
+- /**
+- * Gets all maps for a given storage ID
+- * @param storageId storage ID to return all the maps for
+- * @return list of maps (empty list if there is no matching map)
+- */
+- @SuppressWarnings("unchecked")
+- public List<storage_pool_iso_map> getAllForStorage(Guid storageId) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_storage_pool_iso_map_by_storage_id");
+- query.setParameter("storageId", storageId);
+- return query.list();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOHibernateImpl.java
+deleted file mode 100644
+index 57fef50..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOHibernateImpl.java
++++ /dev/null
+@@ -1,97 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.storage_server_connections;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class StorageServerConnectionDAOHibernateImpl extends BaseDAOHibernateImpl<storage_server_connections, String> implements StorageServerConnectionDAO {
+- private StorageServerConnectionLunMapDAOHibernateImpl mapDAO = new StorageServerConnectionLunMapDAOHibernateImpl();
+-
+- public StorageServerConnectionDAOHibernateImpl() {
+- super(storage_server_connections.class);
+- }
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- mapDAO.setSession(session);
+- }
+-
+- @Override
+- public storage_server_connections getForIqn(String iqn) {
+- return findOneByCriteria(Restrictions.eq("iqn", iqn));
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_server_connections> getAllForStoragePool(Guid storagePoolId) {
+- Query query = getSession().createQuery("select conn from " +
+- "LUN_storage_server_connection_map map1, " +
+- "LUNs lun, " +
+- "storage_domain_static domain, " +
+- "storage_server_connections conn, " +
+- "storage_pool_iso_map map2, " +
+- "storage_pool pool " +
+- "where map1.id.lunId = lun.id " +
+- "and lun.volumeGroupId = domain.storage " +
+- "and map1.id.storageServerConnection = conn.id " +
+- "and map2.id.storageId = domain.id " +
+- "and pool.id = map2.id.storagePoolId " +
+- "and (pool.id = :storage_pool_id)");
+-
+- query.setParameter("storage_pool_id", storagePoolId);
+-
+- return query.list();
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<storage_server_connections> getAllForVolumeGroup(String group) {
+- Query query = getSession().createQuery("select conn from " +
+- "LUN_storage_server_connection_map map1, " +
+- "LUNs lun, " +
+- "storage_domain_static domain, " +
+- "storage_server_connections conn " +
+- "where map1.id.lunId = lun.id " +
+- "and lun.volumeGroupId = domain.storage " +
+- "and map1.id.storageServerConnection = conn.id " +
+- "and domain.storage = :volume_group_id");
+-
+- query.setParameter("volume_group_id", group);
+-
+- return query.list();
+- }
+-
+- @Override
+- public List<storage_server_connections> getAllForStorage(String storage) {
+- return findByCriteria(Restrictions.eq("connection", storage));
+- }
+-
+- @Override
+- public List<storage_server_connections> getAllForConnection(storage_server_connections connection) {
+- return findByCriteria(Restrictions.eq("connection", connection));
+- }
+- /* TODO - align with Storage Connection Lun Map split
+- @Override
+- public LUN_storage_server_connection_map getLUNStorageMapForLUNAndStorageServerConnection(String lunId,
+- String storageServerConnection) {
+- return mapDAO.get(new LUN_storage_server_connection_map_id(lunId, storageServerConnection));
+- }
+-
+- @Override
+- public void addLUNStorageMap(LUN_storage_server_connection_map map) {
+- mapDAO.save(map);
+- }
+-
+- @Override
+- public List<LUN_storage_server_connection_map> getAllLUNStorageMapsForLUN(String lunId) {
+- return mapDAO.getAllLUNStorageMapsForLun(lunId);
+- }
+- */
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionLunMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionLunMapDAOHibernateImpl.java
+deleted file mode 100644
+index 3b7f18b..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionLunMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,19 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.LUN_storage_server_connection_map;
+-import org.ovirt.engine.core.common.businessentities.LUN_storage_server_connection_map_id;
+-
+-public class StorageServerConnectionLunMapDAOHibernateImpl extends BaseDAOHibernateImpl<LUN_storage_server_connection_map, LUN_storage_server_connection_map_id>
+- implements StorageServerConnectionLunMapDAO {
+- public StorageServerConnectionLunMapDAOHibernateImpl() {
+- super(LUN_storage_server_connection_map.class);
+- }
+-
+- public List<LUN_storage_server_connection_map> getAll(String lunId) {
+- return findByCriteria(Restrictions.eq("id.lunId", lunId));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/TagDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/TagDAOHibernateImpl.java
+deleted file mode 100644
+index 6eba997..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/TagDAOHibernateImpl.java
++++ /dev/null
+@@ -1,247 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.TagsType;
+-import org.ovirt.engine.core.common.businessentities.tags;
+-import org.ovirt.engine.core.common.businessentities.tags_user_group_map;
+-import org.ovirt.engine.core.common.businessentities.tags_user_map;
+-import org.ovirt.engine.core.common.businessentities.tags_vds_map;
+-import org.ovirt.engine.core.common.businessentities.tags_vds_map_id;
+-import org.ovirt.engine.core.common.businessentities.tags_vm_map;
+-import org.ovirt.engine.core.common.businessentities.tags_vm_pool_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.tags.TagUserGroupMapDAO;
+-import org.ovirt.engine.core.dao.tags.TagUserMapDAO;
+-import org.ovirt.engine.core.dao.tags.TagVdsMapDAO;
+-import org.ovirt.engine.core.dao.tags.TagVmMapDAO;
+-
+-/**
+- * <code>TagDAOHibernateImpl</code> provides an implementation of {@link TagDAO} based on Hibernate.
+- *
+- */
+-public class TagDAOHibernateImpl extends BaseDAOHibernateImpl<tags, Guid> implements TagDAO {
+- private TagUserGroupMapDAO tagUserGroupMapDAO = new TagUserGroupMapDAO();
+- private TagUserMapDAO tagUserMapDAO = new TagUserMapDAO();
+- private TagVdsMapDAO tagVdsMapDAO = new TagVdsMapDAO();
+- private TagVmMapDAO tagVmMapDAO = new TagVmMapDAO();
+-
+- public TagDAOHibernateImpl() {
+- super(tags.class);
+- }
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- tagUserGroupMapDAO.setSession(session);
+- tagUserMapDAO.setSession(session);
+- tagVdsMapDAO.setSession(session);
+- tagVmMapDAO.setSession(session);
+- }
+-
+- @Override
+- public List<tags> getAllForParent(Guid id) {
+- return findByCriteria(Restrictions.eq("parent", id));
+- }
+-
+- @Override
+- public List<tags> getAllForUserGroups(String ids) {
+- // TODO need to refactor the caller to send in Guids
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("userGroup.id", filter.toArray()));
+- }
+-
+- @Override
+- public List<tags> getAllUserGroupTagsWithIds(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("id", filter),
+- Restrictions.isNotNull("userGroup"));
+- }
+-
+- @Override
+- public List<tags> getAllForVds(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("vds.id", filter));
+- }
+-
+- @Override
+- public List<tags> getAllForVdsWithIds(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("id", filter), Restrictions.isNotNull("vds"));
+- }
+-
+- @Override
+- public List<tags> getAllForVm(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("vm.id", filter));
+- }
+-
+- @Override
+- public List<tags> getAllVmTagsWithIds(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("id", filter), Restrictions.isNotNull("vm"));
+- }
+-
+- @Override
+- public List<tags> getAllForVmPools(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("vmPool.id", filter));
+- }
+-
+- @Override
+- public List<tags> getAllForUsers(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("user.id", filter));
+- }
+-
+- @Override
+- public List<tags> getAllForUsersWithIds(String ids) {
+- List<Guid> filter = convertIdsToGuids(ids);
+-
+- return findByCriteria(Restrictions.in("id", filter),
+- Restrictions.isNotNull("user"));
+- }
+-
+- @Override
+- public tags_user_group_map getTagUserGroupByGroupIdAndByTagId(Guid tagId, Guid groupId) {
+- return tagUserGroupMapDAO.findOneByCriteria(Restrictions.eq("tagId", tagId),
+- Restrictions.eq("groupId", groupId));
+- }
+-
+- @Override
+- public void detachUserGroupFromTag(Guid tagId, Guid groupId) {
+- tagUserGroupMapDAO.remove(tagId, groupId);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<tags_user_group_map> getTagUserGroupMapsForTagName(String tagName) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("get_all_tags_user_group_maps_for_tag_name");
+-
+- query.setParameter("tag_name", tagName);
+-
+- return query.list();
+- }
+-
+- @Override
+- public tags_user_map getTagUserByTagIdAndByuserId(Guid tagId, Guid userId) {
+- return tagUserMapDAO.findOneByCriteria(Restrictions.eq("tagId", tagId), Restrictions.eq("userId", userId));
+- }
+-
+- @Override
+- public void attachUserGroupToTag(tags_user_group_map map) {
+- tagUserGroupMapDAO.save(map);
+- }
+-
+- @Override
+- public void attachUserToTag(tags_user_map tagUserMap) {
+- tagUserMapDAO.save(tagUserMap);
+- }
+-
+- @Override
+- public void detachUserFromTag(Guid tagId, Guid userId) {
+- tagUserMapDAO.remove(tagId, userId);
+- }
+-
+- @Override
+- public List<tags_user_map> getTagUserMapByTagName(String tagName) {
+- return tagUserMapDAO.getTaguserMapByTagName(tagName);
+- }
+-
+- @Override
+- public tags_vds_map getTagVdsByTagIdAndByVdsId(Guid tagId, Guid vdsId) {
+- return tagVdsMapDAO.findOneByCriteria(Restrictions.eq("id.tagId", tagId), Restrictions.eq("id.vdsId", vdsId));
+- }
+-
+- @Override
+- public void attachVdsToTag(tags_vds_map tagVdsMap) {
+- tagVdsMapDAO.save(tagVdsMap);
+- }
+-
+- @Override
+- public void detachVdsFromTag(Guid tagId, Guid vdsId) {
+- tagVdsMapDAO.remove(new tags_vds_map_id(tagId, vdsId));
+- }
+-
+- @Override
+- public List<tags_vds_map> getTagVdsMapByTagName(String tagName) {
+- tags tag = getByName(tagName);
+-
+- if (tag != null) {
+- return tagVdsMapDAO.findByCriteria(Restrictions.eq("id.tagId", tag.gettag_id()));
+- } else {
+- return new ArrayList<tags_vds_map>();
+- }
+- }
+-
+- @Override
+- public tags_vm_map getTagVmByTagIdAndByVmId(Guid tagId, Guid vmId) {
+- return tagVmMapDAO.findOneByCriteria(Restrictions.eq("id.tagId", tagId), Restrictions.eq("id.vmId", vmId));
+- }
+-
+- @Override
+- public void attachVmToTag(tags_vm_map tagVmMap) {
+- tagVmMapDAO.save(tagVmMap);
+- }
+-
+- @Override
+- public void updateDefaultDisplayForVmTag(tags_vm_map tagsVmMap) {
+- tagVmMapDAO.save(tagsVmMap);
+- }
+-
+- @Override
+- public void detachVmFromTag(Guid tagId, Guid vmId) {
+- tagVmMapDAO.remove(tagId, vmId);
+- }
+-
+- @Override
+- public List<tags_vm_map> getTagVmMapByTagName(String tagName) {
+- tags tag = getByName(tagName);
+-
+- if (tag != null) {
+- return tagVmMapDAO.findByCriteria(Restrictions.eq("id.tagId", tag.gettag_id()));
+- } else {
+- return new ArrayList<tags_vm_map>();
+- }
+- }
+-
+- @Override
+- public List<tags_vm_map> getTagVmMapByVmIdAndDefaultTag(Guid vmid) {
+- List<tags> defaultTags = findByCriteria(Restrictions.eq("type", TagsType.AdElementTag));
+- List<Guid> ids = new ArrayList<Guid>();
+-
+- for (tags tag : defaultTags) {
+- ids.add(tag.gettag_id());
+- }
+-
+- return tagVmMapDAO.findByCriteria(Restrictions.in("id.tagId", ids));
+- }
+-
+- @Override
+- public List<tags_vm_map> getTimeLeasedUserVmsByAdGroupAndVmPoolId(Guid adGroupId, Guid vmPoolId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @Override
+- public List<tags_vm_pool_map> getVmPoolTagsByVmPoolIdAndAdElementId(NGuid vmPoolId, Guid adElementId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdcOptionDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdcOptionDAOHibernateImpl.java
+deleted file mode 100644
+index 443a146..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdcOptionDAOHibernateImpl.java
++++ /dev/null
+@@ -1,28 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.VdcOption;
+-
+-public class VdcOptionDAOHibernateImpl extends BaseDAOHibernateImpl<VdcOption, Integer> implements VdcOptionDAO {
+- public VdcOptionDAOHibernateImpl() {
+- super(VdcOption.class);
+- }
+-
+- @Override
+- public VdcOption getByNameAndVersion(String name, String version) {
+- return findOneByCriteria(Restrictions.eq("name", name),
+- Restrictions.eq("version", version));
+- }
+-
+- @Override
+- public VdcOption get(int id) {
+- return super.get(Integer.valueOf(id));
+- }
+-
+- @Override
+- public void remove(int id) {
+- super.remove(Integer.valueOf(id));
+- }
+-
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAOWrapperImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAOWrapperImpl.java
+deleted file mode 100644
+index 8b576fb..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAOWrapperImpl.java
++++ /dev/null
+@@ -1,276 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-import org.ovirt.engine.core.common.businessentities.VDS;
+-import org.ovirt.engine.core.common.businessentities.VDSType;
+-import org.ovirt.engine.core.common.businessentities.VdsDynamic;
+-import org.ovirt.engine.core.common.businessentities.VdsStatic;
+-import org.ovirt.engine.core.common.businessentities.VdsStatistics;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.vds.VdsDynamicDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.vds.VdsStaticDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.vds.VdsStatisticsDAOHibernateImpl;
+-
+-public class VdsDAOWrapperImpl extends BaseDAOWrapperImpl implements VdsDAO {
+-
+- private VdsStaticDAOHibernateImpl vdsStaticDAO = new VdsStaticDAOHibernateImpl();
+- private VdsDynamicDAOHibernateImpl vdsDynamicDAO = new VdsDynamicDAOHibernateImpl();
+- private VdsStatisticsDAOHibernateImpl vdsStatisticsDAO = new VdsStatisticsDAOHibernateImpl();
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- vdsStaticDAO.setSession(session);
+- vdsDynamicDAO.setSession(session);
+- vdsStatisticsDAO.setSession(session);
+- }
+-
+- @Override
+- public VDS get(NGuid id) {
+- Guid guid = new Guid(id.getUuid());
+-
+- VdsStatic staticPart = vdsStaticDAO.get(guid);
+- VdsDynamic dynamicPart = vdsDynamicDAO.get(guid);
+- VdsStatistics statisticsPart = vdsStatisticsDAO.get(guid);
+-
+- // if we didn't find one, then return null
+- if (staticPart == null || dynamicPart == null || statisticsPart == null) {
+- return null;
+- }
+-
+- return new VDS(staticPart, dynamicPart, statisticsPart);
+- }
+- /* TODO - align with VDS DAO split - Darryl
+- @Override
+- public VdsStatic getStatic(Guid id) {
+- return vdsStaticDAO.get(id);
+- }
+-
+- @Override
+- public VdsDynamic getDynamic(Guid id) {
+- return vdsDynamicDAO.get(id);
+- }
+-
+- @Override
+- public VdsStatistics getStatistics(Guid id) {
+- return vdsStatisticsDAO.get(id);
+- }
+-
+- @Override
+- public VdsStatic getStaticByName(String name) {
+- return vdsStaticDAO.getByName(name);
+- } */
+-
+- private List<VDS> convertToVdsList(List<VdsStatic> found) {
+- List<VDS> result = new ArrayList<VDS>();
+-
+- for (VdsStatic vdsStatic : found) {
+- VdsDynamic vdsDynamic = vdsDynamicDAO.get(vdsStatic.getId());
+- VdsStatistics vdsStatistics = vdsStatisticsDAO.get(vdsStatic.getId());
+-
+- result.add(new VDS(vdsStatic, vdsDynamic, vdsStatistics));
+- }
+-
+- return result;
+- }
+-
+- @Override
+- public List<VDS> getAllWithName(String name) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("name", name));
+-
+- return convertToVdsList(found);
+- }
+-
+- @Override
+- public List<VDS> getAllForHostname(String hostname) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("hostname", hostname));
+-
+- return convertToVdsList(found);
+- }
+- /* TODO - align with VDS DAO split - Darryl
+- @Override
+- public List<VDS> getAllWithIpAddress(String address) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("ip", address));
+-
+- return convertToVdsList(found);
+- } */
+-
+- @Override
+- public List<VDS> getAllWithUniqueId(String id) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("uniqueId", id));
+-
+- return convertToVdsList(found);
+- }
+-
+- @Override
+- public List<VDS> getAllOfType(VDSType vds) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("vdsType", vds.getValue()));
+-
+- return convertToVdsList(found);
+- }
+-
+- @Override
+- public List<VDS> getAllOfTypes(VDSType[] types) {
+- Integer[] intTypes = new Integer[types.length];
+-
+- for (int index = 0; index < types.length; index++) {
+- intTypes[index] = types[index].getValue();
+- }
+-
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.in("vdsType", intTypes));
+-
+- return convertToVdsList(found);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<VDS> getAllForVdsGroupWithoutMigrating(final Guid vdsGroup) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_vds_static_for_vds_group_without_migration");
+-
+- query.setParameter("vds_group_id", vdsGroup);
+-
+- return convertToVdsList(query.list());
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<VDS> getAllWithQuery(String sql) {
+- Session session = getSession();
+- Query query = session.createSQLQuery(sql);
+-
+- return query.list();
+- }
+-
+- @Override
+- public List<VDS> getAll() {
+- List<VdsStatic> found = vdsStaticDAO.getAll();
+-
+- return convertToVdsList(found);
+- }
+- /* TODO - align with VDS DAO split - Darryl
+- @Override
+- public List<VDS> getAllForVdsGroup(Guid vdsGroup) {
+- List<VdsStatic> found = vdsStaticDAO.findByCriteria(Restrictions.eq("vdsGroupId", vdsGroup));
+-
+- return convertToVdsList(found);
+- }
+-
+- @Override
+- public List<VdsStatic> getAllForHost(String hostname) {
+- return vdsStaticDAO.findByCriteria(Restrictions.eq("hostname", hostname));
+- }
+-
+- @Override
+- public List<VdsStatic> getAllWithIpAddress(String address) {
+- return vdsStaticDAO.findByCriteria(Restrictions.eq("ip", address));
+- }
+-
+- @Override
+- public List<VdsStatic> getAllForVdsGroup(Guid vdsGroup) {
+- return vdsStaticDAO.findByCriteria(Restrictions.eq("vdsGroupId", vdsGroup));
+- }
+-
+- @Override
+- public void save(VdsStatic vds) {
+- vdsStaticDAO.save(vds);
+- }
+-
+- @Override
+- public void saveDynamic(VdsDynamic vds) {
+- vdsDynamicDAO.save(vds);
+- }
+-
+- @Override
+- public void saveStatistics(VdsStatistics stats) {
+- vdsStatisticsDAO.save(stats);
+- }
+-
+- @Override
+- public void updateStatic(VdsStatic vds) {
+- saveStatic(vds);
+- }
+-
+- @Override
+- public void updateDynamic(VdsDynamic vds) {
+- saveDynamic(vds);
+- }
+-
+- @Override
+- public void updateStatistics(VdsStatistics stats) {
+- saveStatistics(stats);
+- }
+-
+- @Override
+- public void removeStatic(Guid id) {
+- vdsStaticDAO.remove(id);
+- }
+-
+- @Override
+- public void removeDynamic(Guid id) {
+- vdsDynamicDAO.remove(id);
+- }
+-
+- @Override
+- public void removeStatistics(Guid id) {
+- vdsStatisticsDAO.remove(id);
+- } */
+-
+- /* TODO - align with VDS DAO split - Darryl , all methods below were added to apply inherited interface.*/
+-
+- @Override
+- public List<VDS> getAllWithIpAddress(String address) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @Override
+- public List<VDS> getAllForVdsGroup(Guid vdsGroup) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+- /* TODO Follow separation of Spm Id Map handling from VdsDAO - Darryl
+- @Override
+- public vds_spm_id_map getVdsSpmIdMapForVds(Guid vdsId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @Override
+- public void addVdsSpmIdMap(vds_spm_id_map vds_spm_id_map) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- @Override
+- public void removeVdsSpmIdMap(Guid vdsId) {
+- // TODO Auto-generated method stub
+-
+- }
+-
+- @Override
+- public List<vds_spm_id_map> getAllVdsSpmIdMapsForStoragePool(Guid storagePoolId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @Override
+- public vds_spm_id_map getVdsSpmIdMapForStoragePoolAndVdsSpmId(Guid storagePoolId, int VdsSPMId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+- */
+-
+- @Override
+- public List<VDS> getListForSpmSelection(Guid storagePoolId) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java
+deleted file mode 100644
+index 9f69d8b..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java
++++ /dev/null
+@@ -1,48 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.ActionGroup;
+-import org.ovirt.engine.core.common.businessentities.VDSGroup;
+-import org.ovirt.engine.core.compat.Guid;
+-
+-/**
+- * <code>VdsGroupDAOHibernateImpl</code> provides an implementation of {@link VdsGroupDAO} based on Hibernate.
+- *
+- */
+-public class VdsGroupDAOHibernateImpl extends BaseDAOHibernateImpl<VDSGroup, Guid> implements VdsGroupDAO {
+- public VdsGroupDAOHibernateImpl() {
+- super(VDSGroup.class);
+- }
+-
+- @Override
+- public VDSGroup getWithRunningVms(Guid id) {
+- Query query = getSession().getNamedQuery("vdsgroup_with_running_vms");
+-
+- query.setParameter("vds_group_id", id);
+-
+- return (VDSGroup) query.uniqueResult();
+- }
+-
+- @Override
+- public List<VDSGroup> getAllForStoragePool(Guid id) {
+- return findByCriteria(Restrictions.eq("storagePool", id));
+- }
+-
+- @Override
+- public List<VDSGroup> getAllWithQuery(String query) {
+- return findAllWithSQL(query);
+- }
+-
+- @Override
+- public List<VDSGroup> getClustersWithPermittedAction(Guid userId, ActionGroup actionGroup) {
+- Query query = getSession().getNamedQuery("fn_perms_get_vds_groups_with_with_permitted_action");
+-
+- query.setParameter("v_user_id", userId).setParameter("v_action_group_id", actionGroup.getId());
+-
+- return (List<VDSGroup>) query.uniqueResult();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
+index 5e6da53..e9f5cd0 100644
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
++++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
+@@ -6,7 +6,6 @@ import java.util.List;
+ import java.util.Map;
+
+ import org.apache.commons.lang.NotImplementedException;
+-import org.hibernate.annotations.common.util.StringHelper;
+ import org.ovirt.engine.core.common.businessentities.VDSType;
+ import org.ovirt.engine.core.common.businessentities.VdsStatic;
+ import org.ovirt.engine.core.common.config.Config;
+@@ -286,7 +285,7 @@ public class VdsStaticDAODbFacadeImpl extends BaseDAODbFacade implements VdsStat
+ }
+
+ public static String encryptPassword(String password) {
+- if (StringHelper.isEmpty(password)) {
++ if (password == null || "".equals(password)) {
+ return password;
+ }
+ String result = password;
+@@ -303,7 +302,7 @@ public class VdsStaticDAODbFacadeImpl extends BaseDAODbFacade implements VdsStat
+ }
+
+ public static String decryptPassword(String password) {
+- if (StringHelper.isEmpty(password)) {
++ if (password == null || "".equals(password)) {
+ return password;
+ }
+ String result = password;
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmPoolDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmPoolDAOHibernateImpl.java
+deleted file mode 100644
+index a5d10a3..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmPoolDAOHibernateImpl.java
++++ /dev/null
+@@ -1,153 +0,0 @@
+-package org.ovirt.engine.core.dao;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-import java.util.StringTokenizer;
+-
+-import org.hibernate.Criteria;
+-import org.hibernate.Query;
+-import org.hibernate.SQLQuery;
+-import org.hibernate.Session;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.DbUser;
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.common.businessentities.time_lease_vm_pool_map;
+-import org.ovirt.engine.core.common.businessentities.time_lease_vm_pool_map_id;
+-import org.ovirt.engine.core.common.businessentities.vm_pool_map;
+-import org.ovirt.engine.core.common.businessentities.vm_pools;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.vmpools.TimeLeaseVmPoolMapDAOHibernateImpl;
+-import org.ovirt.engine.core.dao.vmpools.VmPoolMapDAOHibernateImpl;
+-
+-public class VmPoolDAOHibernateImpl extends BaseDAOHibernateImpl<vm_pools, NGuid> implements VmPoolDAO {
+- private VmPoolMapDAOHibernateImpl vmPoolMapDAO = new VmPoolMapDAOHibernateImpl();
+- private TimeLeaseVmPoolMapDAOHibernateImpl timeLeaseVmPoolDAO = new TimeLeaseVmPoolMapDAOHibernateImpl();
+-
+- public VmPoolDAOHibernateImpl() {
+- super(vm_pools.class);
+- }
+-
+- @Override
+- public void setSession(Session session) {
+- super.setSession(session);
+-
+- vmPoolMapDAO.setSession(session);
+- timeLeaseVmPoolDAO.setSession(session);
+- }
+-
+- @Override
+- public void removeVmFromVmPool(Guid vm) {
+- vmPoolMapDAO.remove(vm);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<vm_pools> getAllForUser(Guid userid) {
+- List<vm_pools> result = new ArrayList<vm_pools>();
+-
+- /* we need to get the user, then get the list of ad groups for that user */
+- Query query = getSession().createQuery("from DbUser where id = :user_id");
+-
+- query.setParameter("user_id", userid);
+-
+- DbUser user = (DbUser) query.uniqueResult();
+-
+- if (user != null) {
+- Criteria criteria =
+- getSession().createCriteria(ad_groups.class).add(Restrictions.in("name",
+- splitApartNames(user.getgroups())));
+-
+- List<ad_groups> adElements = criteria.list();
+- Guid[] ids = new Guid[adElements.size() + 1];
+-
+- ids[0] = userid;
+- for (int index = 0; index < adElements.size(); index++) {
+- ids[index + 1] = adElements.get(index).getid();
+- }
+-
+- query = getSession().createQuery("select pool " +
+- "from vm_pools pool, permissions perms, roles role " +
+- "where pool.id = perms.objectId " +
+- "and perms.adElementId in ( :adElements ) " +
+- "and perms.roleId = role.id " +
+- "and role.type = 2");
+-
+- query.setParameterList("adElements", ids);
+-
+- result = query.list();
+- }
+-
+- return result;
+- }
+-
+- private String[] splitApartNames(String text) {
+- List<String> names = new ArrayList<String>();
+- StringTokenizer tokens = new StringTokenizer(text, ",", false);
+-
+- while (tokens.hasMoreElements()) {
+- names.add(tokens.nextToken());
+- }
+-
+- String[] result = new String[names.size()];
+-
+- names.toArray(result);
+-
+- return result;
+- }
+-
+- @Override
+- public List<vm_pools> getAllForAdGroup(Guid adGroup) {
+- // TODO Auto-generated method stub
+- return null;
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<vm_pools> getAllWithQuery(String sql) {
+- SQLQuery query = getSession().createSQLQuery(sql).addEntity(vm_pools.class);
+-
+- return query.list();
+- }
+-
+- @Override
+- public vm_pool_map getVmPoolMapByVmGuid(Guid vmId) {
+- return vmPoolMapDAO.getByVmGuid(vmId);
+- }
+-
+- @Override
+- public void addVmToPool(vm_pool_map map) {
+- vmPoolMapDAO.save(map);
+- }
+-
+- @Override
+- public List<vm_pool_map> getVmPoolsMapByVmPoolId(NGuid vmPoolId) {
+- return vmPoolMapDAO.getVmPoolsMapByVmPoolId(vmPoolId);
+- }
+-
+- @Override
+- public time_lease_vm_pool_map getTimeLeasedVmPoolMapByIdForVmPool(Guid id, NGuid vmPoolId) {
+- return timeLeaseVmPoolDAO.get(new time_lease_vm_pool_map_id(id, new Guid(vmPoolId.getUuid())));
+- }
+-
+- @Override
+- public void addTimeLeasedVmPoolMap(time_lease_vm_pool_map map) {
+- timeLeaseVmPoolDAO.save(map);
+- }
+-
+- @Override
+- public void updateTimeLeasedVmPoolMap(time_lease_vm_pool_map map) {
+- timeLeaseVmPoolDAO.update(map);
+- }
+-
+- @Override
+- public void removeTimeLeasedVmPoolMap(Guid id, Guid vmPoolId) {
+- timeLeaseVmPoolDAO.remove(new time_lease_vm_pool_map_id(id, vmPoolId));
+- }
+-
+- @Override
+- public List<time_lease_vm_pool_map> getAllTimeLeasedVmPoolMaps() {
+- return timeLeaseVmPoolDAO.getAll();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/ActionVersionMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/ActionVersionMapDAOHibernateImpl.java
+deleted file mode 100644
+index 4d83438..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/ActionVersionMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,10 +0,0 @@
+-package org.ovirt.engine.core.dao.actiongroup;
+-
+-import org.ovirt.engine.core.common.businessentities.action_version_map;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class ActionVersionMapDAOHibernateImpl extends BaseDAOHibernateImpl<action_version_map, Integer> {
+- public ActionVersionMapDAOHibernateImpl() {
+- super(action_version_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/RoleGroupMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/RoleGroupMapDAOHibernateImpl.java
+deleted file mode 100644
+index 5e8decf..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/actiongroup/RoleGroupMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,28 +0,0 @@
+-package org.ovirt.engine.core.dao.actiongroup;
+-
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.ActionGroup;
+-import org.ovirt.engine.core.common.businessentities.RoleGroupMap;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class RoleGroupMapDAOHibernateImpl extends BaseDAOHibernateImpl<RoleGroupMap, Guid> {
+- public RoleGroupMapDAOHibernateImpl() {
+- super(RoleGroupMap.class);
+- }
+-
+- public List<ActionGroup> getAllForRole(Guid id) {
+- List<RoleGroupMap> maps = findByCriteria(Restrictions.eq("id.roleId", id));
+- List<ActionGroup> result = new ArrayList<ActionGroup>();
+-
+- for(RoleGroupMap map: maps) {
+- result.add(map.getActionGroup());
+- }
+-
+- return result;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/dialect/EnginePostgreSQLDialect.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/dialect/EnginePostgreSQLDialect.java
+deleted file mode 100644
+index 352b03a..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/dialect/EnginePostgreSQLDialect.java
++++ /dev/null
+@@ -1,13 +0,0 @@
+-package org.ovirt.engine.core.dao.dialect;
+-
+-import java.sql.Types;
+-
+-import org.hibernate.dialect.PostgreSQLDialect;
+-
+-public class EnginePostgreSQLDialect extends PostgreSQLDialect {
+- public EnginePostgreSQLDialect() {
+- super();
+-
+- this.registerColumnType(Types.OTHER, "uuid");
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/MapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/MapDAOHibernateImpl.java
+deleted file mode 100644
+index 84f6683..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/MapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,19 +0,0 @@
+-package org.ovirt.engine.core.dao.events;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.event_map;
+-import org.ovirt.engine.core.common.businessentities.event_map_id;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class MapDAOHibernateImpl extends BaseDAOHibernateImpl<event_map, event_map_id> {
+- public MapDAOHibernateImpl() {
+- super(event_map.class);
+- }
+-
+- public List<event_map> getByEventUpName(String event_up_name) {
+- return findByCriteria(Restrictions.eq("id.eventUpName", event_up_name));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationHistoryDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationHistoryDAOHibernateImpl.java
+deleted file mode 100644
+index f50cdf6..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationHistoryDAOHibernateImpl.java
++++ /dev/null
+@@ -1,18 +0,0 @@
+-package org.ovirt.engine.core.dao.events;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.event_notification_hist;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class NotificationHistoryDAOHibernateImpl extends BaseDAOHibernateImpl<event_notification_hist, Guid> {
+- public NotificationHistoryDAOHibernateImpl() {
+- super(event_notification_hist.class);
+- }
+-
+- public event_notification_hist getHistory(Guid subscriberId, long auditLogId) {
+- return findOneByCriteria(Restrictions.eq("subscriberId", subscriberId),
+- Restrictions.eq("auditLogId", auditLogId));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationMethodsDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationMethodsDAOHibernateImpl.java
+deleted file mode 100644
+index 8d06036..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/NotificationMethodsDAOHibernateImpl.java
++++ /dev/null
+@@ -1,22 +0,0 @@
+-package org.ovirt.engine.core.dao.events;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.event_notification_methods;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class NotificationMethodsDAOHibernateImpl extends BaseDAOHibernateImpl<event_notification_methods, Integer> {
+- public NotificationMethodsDAOHibernateImpl() {
+- super(event_notification_methods.class);
+- }
+-
+- public List<event_notification_methods> getEventNotificationMethodsById(int method_id) {
+- return findByCriteria(Restrictions.eq("methodId", method_id));
+- }
+-
+- public List<event_notification_methods> getEventNotificationMethodsByType(String method_type) {
+- return findByCriteria(Restrictions.eq("methodType", method_type));
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/SubscriberDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/SubscriberDAOHibernateImpl.java
+deleted file mode 100644
+index e9c83fe..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/events/SubscriberDAOHibernateImpl.java
++++ /dev/null
+@@ -1,47 +0,0 @@
+-package org.ovirt.engine.core.dao.events;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-import org.hibernate.Transaction;
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.event_subscriber;
+-import org.ovirt.engine.core.common.businessentities.event_subscriber_id;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class SubscriberDAOHibernateImpl extends BaseDAOHibernateImpl<event_subscriber, event_subscriber_id> {
+- public SubscriberDAOHibernateImpl() {
+- super(event_subscriber.class);
+- }
+-
+- public List<event_subscriber> getAllForSubscriber(Guid id) {
+- return findByCriteria(Restrictions.eq("id.subscriberId", id));
+- }
+-
+- public void update(event_subscriber subscriber, int oldMethodId) {
+- /*
+- * for some odd reason doing a simple update on an event_subscriber object doesn't update the object, so an
+- * explicit HQL update is necessary
+- */
+- Session session = getSession();
+- Transaction transaction = session.beginTransaction();
+-
+- Query query = session.createQuery("update event_subscriber es " +
+- "set es.id.methodId = :method_id " +
+- "where es.id.eventUpName = :event_up_name " +
+- "and es.id.methodId = :old_method_id " +
+- "and es.id.subscriberId = :subscriber_id");
+-
+- query.setParameter("method_id", subscriber.getmethod_id());
+- query.setParameter("event_up_name", subscriber.getevent_up_name());
+- query.setParameter("old_method_id", oldMethodId);
+- query.setParameter("subscriber_id", subscriber.getsubscriber_id());
+-
+- query.executeUpdate();
+-
+- transaction.commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDAOHibernateImpl.java
+deleted file mode 100644
+index 389c1bd..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDAOHibernateImpl.java
++++ /dev/null
+@@ -1,79 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Transaction;
+-import org.hibernate.criterion.Restrictions;
+-import org.ovirt.engine.core.common.businessentities.DiskImage;
+-import org.ovirt.engine.core.common.businessentities.image_vm_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-/**
+- * <code>DiskImageDAOHibernateImpl</code> performs persistence operations on instances of {@link DiskImage} using
+- * Hibernate.
+- *
+- */
+-public class DiskImageDAOHibernateImpl extends BaseDAOHibernateImpl<DiskImage, Guid> {
+- public DiskImageDAOHibernateImpl() {
+- super(DiskImage.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- public List<DiskImage> getAllForVm(Guid id) {
+- Query query = getSession().createQuery("select image from DiskImage image, " +
+- "image_vm_map ivmap " +
+- "where ivmap.id.imageId = image.id " +
+- "and ivmap.id.vmId = :vm_id");
+-
+- query.setParameter("vm_id", id);
+-
+- return fillInDetails(query.list());
+- }
+-
+- private List<DiskImage> fillInDetails(List<DiskImage> images) {
+- for (DiskImage image : images) {
+- Query query = getSession().createQuery("from image_vm_map where id.imageId = :image_id");
+-
+- query.setParameter("image_id", image.getId());
+-
+- image_vm_map result = (image_vm_map) query.uniqueResult();
+-
+- if (result != null) {
+- image.setactive(result.getactive());
+- image.setvm_guid(result.getvm_id());
+- }
+- }
+-
+- return images;
+- }
+-
+- public List<DiskImage> getAllSnapshotsForParent(Guid id) {
+- return fillInDetails(findByCriteria(Restrictions.eq("parentId", id)));
+- }
+-
+- public List<DiskImage> getAllSnapshotsForStorageDomain(Guid id) {
+- return fillInDetails(findByCriteria(Restrictions.eq("storage_id", id)));
+- }
+-
+- public List<DiskImage> getAllSnapshotsForVmSnapshot(Guid id) {
+- return fillInDetails(findByCriteria(Restrictions.eq("vm_snapshot_id", id)));
+- }
+-
+- public List<DiskImage> getAllSnapshotsForImageGroup(Guid id) {
+- return fillInDetails(findByCriteria(Restrictions.eq("image_group_id", id)));
+- }
+-
+- public void removeAllForVmId(Guid id) {
+- Query query = getSession().createQuery("delete from DiskImage i " +
+- "where i.id = (select ivmap.id.imageId from image_vm_map ivmap where ivmap.id.vmId = :vm_id)");
+-
+- query.setParameter("vm_id", id);
+-
+- Transaction transaction = getSession().beginTransaction();
+-
+- query.executeUpdate();
+- transaction.commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDynamicDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDynamicDAOHibernateImpl.java
+deleted file mode 100644
+index 41bf2b2..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageDynamicDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class DiskImageDynamicDAOHibernateImpl extends BaseDAOHibernateImpl<DiskImageDynamic, Guid> {
+- public DiskImageDynamicDAOHibernateImpl() {
+- super(DiskImageDynamic.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageTemplateDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageTemplateDAOHibernateImpl.java
+deleted file mode 100644
+index 7acea6f..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/DiskImageTemplateDAOHibernateImpl.java
++++ /dev/null
+@@ -1,89 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Transaction;
+-
+-import org.ovirt.engine.core.common.businessentities.DiskImageTemplate;
+-import org.ovirt.engine.core.common.businessentities.vm_template_image_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class DiskImageTemplateDAOHibernateImpl extends BaseDAOHibernateImpl<DiskImageTemplate, Guid> {
+- public DiskImageTemplateDAOHibernateImpl() {
+- super(DiskImageTemplate.class);
+- }
+-
+- @Override
+- public DiskImageTemplate get(Guid id) {
+- return fillInDetails(super.get(id));
+- }
+-
+- public void removeTemplate(Guid id, Guid vm) {
+- Query query =
+- getSession().createQuery("delete from DiskImageTemplate " +
+- "where id = :id " +
+- "and id in " +
+- "(select vtim.id.imageTemplateId from vm_template_image_map vtim " +
+- "where vtim.id.vmTemplateId = :template_id)");
+-
+- query.setParameter("id", id);
+- query.setParameter("template_id", vm);
+-
+- Transaction transaction = getSession().beginTransaction();
+-
+- query.executeUpdate();
+- transaction.commit();
+- }
+-
+- public DiskImageTemplate getTemplateByVmTemplateAndId(Guid vm, Guid template) {
+- Query query = getSession().createQuery("select ditmpl from DiskImageTemplate ditmpl, " +
+- "vm_template_image_map vtimap " +
+- "where ditmpl.id = :template_id " +
+- "and vtimap.id.imageTemplateId = :template_id " +
+- "and vtimap.id.vmTemplateId = :vm_template_id");
+-
+- query.setParameter("template_id", template);
+- query.setParameter("vm_template_id", vm);
+-
+- return fillInDetails((DiskImageTemplate) query.uniqueResult());
+- }
+-
+- private DiskImageTemplate fillInDetails(DiskImageTemplate template) {
+- if (template != null) {
+- Query query =
+- getSession().createQuery("from vm_template_image_map where id.imageTemplateId = :template_id");
+-
+- query.setParameter("template_id", template.getit_guid());
+-
+- vm_template_image_map result = (vm_template_image_map) query.uniqueResult();
+-
+- if (result != null) {
+- template.setvtim_it_guid(result.id.imageTemplateId);
+- template.setvmt_guid(result.id.vmTemplateId);
+- template.setinternal_drive_mapping(result.internalDriveMapping);
+- }
+- }
+-
+- return template;
+- }
+-
+- public List<DiskImageTemplate> getAllTemplatesForVmTemplate(Guid vmTemplate) {
+- Query query = getSession().createQuery("select ditmpl from DiskImageTemplate ditmpl, " +
+- "vm_template_image_map vtimap " +
+- "where vtimap.id.imageTemplateId = ditmpl.id " +
+- "and vtimap.id.vmTemplateId = :template_id");
+-
+- query.setParameter("template_id", vmTemplate);
+-
+- return fillInDetails(query.list());
+- }
+-
+- private List<DiskImageTemplate> fillInDetails(List<DiskImageTemplate> templates) {
+- for (DiskImageTemplate template : templates) {
+- fillInDetails(template);
+- }
+- return templates;
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmMapDAOHibernateImpl.java
+deleted file mode 100644
+index cd113c7..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import org.ovirt.engine.core.common.businessentities.image_vm_map;
+-import org.ovirt.engine.core.common.businessentities.image_vm_map_id;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class ImageVmMapDAOHibernateImpl extends BaseDAOHibernateImpl<image_vm_map, image_vm_map_id> {
+- public ImageVmMapDAOHibernateImpl() {
+- super(image_vm_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmPoolMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmPoolMapDAOHibernateImpl.java
+deleted file mode 100644
+index 2e53777..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/ImageVmPoolMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import org.ovirt.engine.core.common.businessentities.image_vm_pool_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class ImageVmPoolMapDAOHibernateImpl extends BaseDAOHibernateImpl<image_vm_pool_map, Guid> {
+- public ImageVmPoolMapDAOHibernateImpl() {
+- super(image_vm_pool_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/StatelessImageVmMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/StatelessImageVmMapDAOHibernateImpl.java
+deleted file mode 100644
+index 0afc3d6..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/images/StatelessImageVmMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.images;
+-
+-import org.ovirt.engine.core.common.businessentities.stateless_vm_image_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class StatelessImageVmMapDAOHibernateImpl extends BaseDAOHibernateImpl<stateless_vm_image_map, Guid> {
+- public StatelessImageVmMapDAOHibernateImpl() {
+- super(stateless_vm_image_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserGroupMapDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserGroupMapDAO.java
+deleted file mode 100644
+index f7cf769..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserGroupMapDAO.java
++++ /dev/null
+@@ -1,27 +0,0 @@
+-package org.ovirt.engine.core.dao.tags;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.tags_user_group_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class TagUserGroupMapDAO extends BaseDAOHibernateImpl<tags_user_group_map, Guid> {
+- public TagUserGroupMapDAO() {
+- super(tags_user_group_map.class);
+- }
+-
+- public void remove(Guid tagId, Guid groupId) {
+- Session session = getSession();
+- Query query =
+- session.createQuery("delete tags_user_group_map where tagId = :tag_id and groupId = :group_id");
+-
+- query.setParameter("tag_id", tagId);
+- query.setParameter("group_id", groupId);
+-
+- session.beginTransaction();
+- query.executeUpdate();
+- session.getTransaction().commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserMapDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserMapDAO.java
+deleted file mode 100644
+index 54f0401..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagUserMapDAO.java
++++ /dev/null
+@@ -1,38 +0,0 @@
+-package org.ovirt.engine.core.dao.tags;
+-
+-import java.util.List;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.tags_user_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class TagUserMapDAO extends BaseDAOHibernateImpl<tags_user_map, Guid> {
+- public TagUserMapDAO() {
+- super(tags_user_map.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- public List<tags_user_map> getTaguserMapByTagName(String tagName) {
+- Session session = getSession();
+- Query query = session.getNamedQuery("all_tag_user_maps_by_tag_name");
+-
+- query.setParameter("tag_name", tagName);
+-
+- return query.list();
+- }
+-
+- public void remove(Guid tagId, Guid userId) {
+- Session session = getSession();
+- Query query = session.createQuery("delete tags_user_map where tagId = :tag_id and userId = :user_id");
+-
+- query.setParameter("tag_id", tagId);
+- query.setParameter("user_id", userId);
+-
+- session.beginTransaction();
+- query.executeUpdate();
+- session.getTransaction().commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVdsMapDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVdsMapDAO.java
+deleted file mode 100644
+index f22d1d0..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVdsMapDAO.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.tags;
+-
+-import org.ovirt.engine.core.common.businessentities.tags_vds_map;
+-import org.ovirt.engine.core.common.businessentities.tags_vds_map_id;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class TagVdsMapDAO extends BaseDAOHibernateImpl<tags_vds_map, tags_vds_map_id> {
+- public TagVdsMapDAO() {
+- super(tags_vds_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVmMapDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVmMapDAO.java
+deleted file mode 100644
+index 18217a3..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/tags/TagVmMapDAO.java
++++ /dev/null
+@@ -1,28 +0,0 @@
+-package org.ovirt.engine.core.dao.tags;
+-
+-import org.hibernate.Query;
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.tags_vm_map;
+-import org.ovirt.engine.core.common.businessentities.tags_vm_map_id;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class TagVmMapDAO extends BaseDAOHibernateImpl<tags_vm_map, tags_vm_map_id> {
+- public TagVmMapDAO() {
+- super(tags_vm_map.class);
+- }
+-
+- public void remove(Guid tagId, Guid vmId) {
+- Session session = getSession();
+- Query query =
+- session.createQuery("delete tags_vm_map m where m.id.tagId = :tag_id and m.id.vmId = :vm_id");
+-
+- query.setParameter("tag_id", tagId);
+- query.setParameter("vm_id", vmId);
+-
+- session.beginTransaction();
+- query.executeUpdate();
+- session.getTransaction().commit();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/SessionDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/SessionDAOHibernateImpl.java
+deleted file mode 100644
+index fdbcf23..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/SessionDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.users;
+-
+-import org.ovirt.engine.core.dal.dbbroker.user_sessions;
+-import org.ovirt.engine.core.dal.dbbroker.user_sessions_id;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class SessionDAOHibernateImpl extends BaseDAOHibernateImpl<user_sessions, user_sessions_id> {
+- public SessionDAOHibernateImpl() {
+- super(user_sessions.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/UserDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/UserDAOHibernateImpl.java
+deleted file mode 100644
+index d89880b..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/users/UserDAOHibernateImpl.java
++++ /dev/null
+@@ -1,25 +0,0 @@
+-package org.ovirt.engine.core.dao.users;
+-
+-import java.util.List;
+-
+-import org.hibernate.SQLQuery;
+-import org.hibernate.Session;
+-
+-import org.ovirt.engine.core.common.businessentities.DbUser;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class UserDAOHibernateImpl extends BaseDAOHibernateImpl<DbUser, Guid> {
+- public UserDAOHibernateImpl() {
+- super(DbUser.class);
+- }
+-
+- @SuppressWarnings("unchecked")
+- @Override
+- public List<DbUser> findAllWithSQL(String sql) {
+- Session session = getSession();
+- SQLQuery query = session.createSQLQuery(sql).addEntity(DbUser.class);
+-
+- return (List<DbUser>) query.list();
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsDynamicDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsDynamicDAOHibernateImpl.java
+deleted file mode 100644
+index 62b8b99..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsDynamicDAOHibernateImpl.java
++++ /dev/null
+@@ -1,16 +0,0 @@
+-package org.ovirt.engine.core.dao.vds;
+-
+-import org.ovirt.engine.core.common.businessentities.VdsDynamic;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-/**
+- * <code>VdsDynamicDAOHibernateImpl</code> extends {@link BaseDAOHibernateImpl} to work with instances of
+- * {@link VdsDynamic}.
+- *
+- */
+-public class VdsDynamicDAOHibernateImpl extends BaseDAOHibernateImpl<VdsDynamic, NGuid> {
+- public VdsDynamicDAOHibernateImpl() {
+- super(VdsDynamic.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStaticDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStaticDAOHibernateImpl.java
+deleted file mode 100644
+index 469d4c9..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStaticDAOHibernateImpl.java
++++ /dev/null
+@@ -1,16 +0,0 @@
+-package org.ovirt.engine.core.dao.vds;
+-
+-import org.ovirt.engine.core.common.businessentities.VdsStatic;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-/**
+- * <code>VdsStaticDAOHibernateImpl</code> extends {@link BaseDAOHibernateImpl} to work with instances of
+- * {@link VdsStatic}.
+- *
+- */
+-public class VdsStaticDAOHibernateImpl extends BaseDAOHibernateImpl<VdsStatic, NGuid> {
+- public VdsStaticDAOHibernateImpl() {
+- super(VdsStatic.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStatisticsDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStatisticsDAOHibernateImpl.java
+deleted file mode 100644
+index e15ad91..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vds/VdsStatisticsDAOHibernateImpl.java
++++ /dev/null
+@@ -1,15 +0,0 @@
+-package org.ovirt.engine.core.dao.vds;
+-
+-import org.ovirt.engine.core.common.businessentities.VdsStatistics;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-/**
+- * <code>VdsStatisticsDAOHibernateImpl</code> provides a DAO for working with instances of {@link VdsStatistics}.
+- *
+- */
+-public class VdsStatisticsDAOHibernateImpl extends BaseDAOHibernateImpl<VdsStatistics, Guid> {
+- public VdsStatisticsDAOHibernateImpl() {
+- super(VdsStatistics.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/TimeLeaseVmPoolMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/TimeLeaseVmPoolMapDAOHibernateImpl.java
+deleted file mode 100644
+index 9ba2d48..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/TimeLeaseVmPoolMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,11 +0,0 @@
+-package org.ovirt.engine.core.dao.vmpools;
+-
+-import org.ovirt.engine.core.common.businessentities.time_lease_vm_pool_map;
+-import org.ovirt.engine.core.common.businessentities.time_lease_vm_pool_map_id;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class TimeLeaseVmPoolMapDAOHibernateImpl extends BaseDAOHibernateImpl<time_lease_vm_pool_map, time_lease_vm_pool_map_id> {
+- public TimeLeaseVmPoolMapDAOHibernateImpl() {
+- super(time_lease_vm_pool_map.class);
+- }
+-}
+diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/VmPoolMapDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/VmPoolMapDAOHibernateImpl.java
+deleted file mode 100644
+index d69f166..0000000
+--- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/vmpools/VmPoolMapDAOHibernateImpl.java
++++ /dev/null
+@@ -1,24 +0,0 @@
+-package org.ovirt.engine.core.dao.vmpools;
+-
+-import java.util.List;
+-
+-import org.hibernate.criterion.Restrictions;
+-
+-import org.ovirt.engine.core.common.businessentities.vm_pool_map;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.NGuid;
+-import org.ovirt.engine.core.dao.BaseDAOHibernateImpl;
+-
+-public class VmPoolMapDAOHibernateImpl extends BaseDAOHibernateImpl<vm_pool_map, Guid> {
+- public VmPoolMapDAOHibernateImpl() {
+- super(vm_pool_map.class);
+- }
+-
+- public vm_pool_map getByVmGuid(Guid vmId) {
+- return findOneByCriteria(Restrictions.eq("vmId", vmId));
+- }
+-
+- public List<vm_pool_map> getVmPoolsMapByVmPoolId(NGuid vmPoolId) {
+- return findByCriteria(Restrictions.eq("vmPoolId", vmPoolId));
+- }
+-}
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-jb5-login-module.patch b/ovirt-engine-remove-jb5-login-module.patch
new file mode 100644
index 0000000..2135f01
--- /dev/null
+++ b/ovirt-engine-remove-jb5-login-module.patch
@@ -0,0 +1,285 @@
+From 102fd62eebe72fc93aa63e97319d9ecf1951bb66 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 9 Feb 2012 14:49:16 +0100
+Subject: [PATCH 4/9] packaging: Remove JB5 specific login module
+
+Change-Id: I2dcbbdd5c635128d0a9633b766355d3dc48a4614
+---
+ backend/manager/modules/engineencryptutils/pom.xml | 48 -----
+ .../login/EngineSecureIdentityLoginModule.java | 198 --------------------
+ 2 files changed, 0 insertions(+), 246 deletions(-)
+ delete mode 100644 backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/login/EngineSecureIdentityLoginModule.java
+
+diff --git a/backend/manager/modules/engineencryptutils/pom.xml b/backend/manager/modules/engineencryptutils/pom.xml
+index 41a0a92..2da80c6 100644
+--- a/backend/manager/modules/engineencryptutils/pom.xml
++++ b/backend/manager/modules/engineencryptutils/pom.xml
+@@ -18,43 +18,6 @@
+ <artifactId>compat</artifactId>
+ <version>${engine.version}</version>
+ </dependency>
+-
+- <dependency>
+- <groupId>org.jboss.security</groupId>
+- <artifactId>jbosssx-bare</artifactId>
+- <version>${jbosssx-bare.version}</version>
+- <scope>provided</scope>
+- <!-- excluding artifacts that are explicitly loaded elsewhere -->
+- <exclusions>
+- <exclusion>
+- <groupId>org.hibernate</groupId>
+- <artifactId>hibernate</artifactId>
+- </exclusion>
+- <exclusion>
+- <groupId>org.hibernate</groupId>
+- <artifactId>hibernate-annotations</artifactId>
+- </exclusion>
+- <exclusion>
+- <groupId>org.hibernate</groupId>
+- <artifactId>hibernate-commons-annotations</artifactId>
+- </exclusion>
+- <exclusion>
+- <groupId>org.hibernate</groupId>
+- <artifactId>hibernate-validator</artifactId>
+- </exclusion>
+- <exclusion>
+- <groupId>sun-jaxb</groupId>
+- <artifactId>jaxb-impl</artifactId>
+- </exclusion>
+- </exclusions>
+- </dependency>
+-
+- <dependency>
+- <groupId>sun-jaxb</groupId>
+- <artifactId>jaxb-impl</artifactId>
+- <version>${jaxb-impl.version}</version>
+- <scope>provided</scope>
+- </dependency>
+ </dependencies>
+
+ <build>
+@@ -67,17 +30,6 @@
+ </additionalClasspathElements>
+ </configuration>
+ </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-jar-plugin</artifactId>
+- <configuration>
+- <archive>
+- <manifest>
+- <mainClass>org.ovirt.engine.core.login.EngineSecureIdentityLoginModule</mainClass>
+- </manifest>
+- </archive>
+- </configuration>
+- </plugin>
+ </plugins>
+ </build>
+
+diff --git a/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/login/EngineSecureIdentityLoginModule.java b/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/login/EngineSecureIdentityLoginModule.java
+deleted file mode 100644
+index 5d2a98f..0000000
+--- a/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/login/EngineSecureIdentityLoginModule.java
++++ /dev/null
+@@ -1,198 +0,0 @@
+-package org.ovirt.engine.core.login;
+-
+-import java.security.AccessController;
+-import java.security.Principal;
+-import java.security.PrivilegedAction;
+-import java.security.acl.Group;
+-import java.util.Map;
+-
+-import javax.resource.spi.security.PasswordCredential;
+-import javax.security.auth.Subject;
+-import javax.security.auth.callback.CallbackHandler;
+-import javax.security.auth.login.LoginException;
+-
+-import org.jboss.resource.security.AbstractPasswordCredentialLoginModule;
+-import org.jboss.security.SimplePrincipal;
+-
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-import org.ovirt.engine.core.engineencryptutils.EncryptionUtils;
+-
+-/**
+- * An example of how one could use this custom login class other than the JBoss default class
+- * {@code org.jboss.resource.security.SecureIdentityLoginModule} which this class is based on:<br>
+- * <li>Add full path to the jar which contains this class to <i>$JBOSS_HOME/$PROFILE/conf/bootstrap/security.xml</i> as
+- * an entry of element <classloader name="security-classloader"...><br>
+- * e.g.:
+- * <pre>
+- * <root>${jboss.server.home.url}deploy/engine.ear/lib/engine-login-3.0.0-0001.jar</root>
+- * </pre>
+- * <li>Modify <i>$JBOSS_HOME/$PROFILE/conf/login-config.xml</i> to use the custom login class in element
+- * <application-policy name="EncryptDBPassword"> (a complete element is shown below) e.g.:
+- * <pre>
+- * <code>
+- * <!--login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"-->
+- * <login-module code="org.ovirt.engine.core.login.EngineSecureIdentityLoginModule" flag="required">
+- * </pre>
+- * </code> <li>Encrypt the database password for a jca connection factory and set it in <i>EncryptDBPassword</i>
+- * application-policy element:
+- * <code>
+- * <pre>
+- * <application-policy name="EncryptDBPassword">
+- * <authentication>
+- * <!--login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"-->
+- * <login-module code="org.ovirt.engine.core.security.login.EngineSecureIdentityLoginModule" flag="required">
+- * <module-option name="username">sa</module-option>
+- * <module-option name="password">-1ef77a3433f8ba8aa370e115b1e73a8b</module-option>
+- * <module-option name="managedConnectionFactoryName">jboss.jca:name=ENGINEDataSource,service=LocalTxCM</module-option>
+- * </login-module>
+- * </authentication>
+- * </application-policy>
+- * </pre>
+- * </code>
+- * <li>{@link #decode()} responsible for decoding the password by a customized algorithm as provided by {@link
+- * EncryptionUtils.#decode(String, String, String)}<br>
+- * or using the default if not specified any.
+- * <li>The default value for cipher algorithm is Blowfish, and key derived from the phrase 'jaas is the way'.<br>
+- * However, it is designed to support additional algorithms and keys. The full list of supported algorithms is <br>
+- * specified in the following link.
+- * @link<a href="http://download.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html">Java
+- * Cryptography Algorithms</a>
+- */
+-public class EngineSecureIdentityLoginModule extends AbstractPasswordCredentialLoginModule {
+-
+- private static final LogCompat log = LogFactoryCompat.getLog(EngineSecureIdentityLoginModule.class);
+-
+- private String username;
+- private String password;
+-
+- public void initialize(Subject subject, CallbackHandler handler, Map sharedState, Map options) {
+- super.initialize(subject, handler, sharedState, options);
+- username = (String) options.get("username");
+- if (username == null) {
+- username = (String) options.get("userName");
+- if (username == null) {
+- throw new IllegalArgumentException("The user name is a required option");
+- }
+- }
+- password = (String) options.get("password");
+- if (password == null) {
+- throw new IllegalArgumentException("The password is a required option");
+- }
+- }
+-
+- public boolean login() throws LoginException {
+- log.trace("login called");
+- if (super.login() == true)
+- return true;
+-
+- super.loginOk = true;
+- return true;
+- }
+-
+- public boolean commit() throws LoginException {
+- Principal principal = new SimplePrincipal(username);
+- AccessController.doPrivileged(new AddPrincipalsAction(subject, principal));
+- sharedState.put("javax.security.auth.login.name", username);
+- // Decode the encrypted password
+- try {
+- char[] decodedPassword = decode(password);
+- PasswordCredential cred = new PasswordCredential(username, decodedPassword);
+- cred.setManagedConnectionFactory(getMcf());
+- AccessController.doPrivileged(new AddCredentialsAction(subject, cred));
+- } catch (Exception e) {
+- log.debug("Failed to decode password", e);
+- throw new LoginException("Failed to decode password: " + e.getMessage());
+- }
+- return true;
+- }
+-
+- public boolean abort() {
+- username = null;
+- password = null;
+- return true;
+- }
+-
+- protected Principal getIdentity() {
+- log.trace("getIdentity called, username=" + username);
+- Principal principal = new SimplePrincipal(username);
+- return principal;
+- }
+-
+- protected Group[] getRoleSets() throws LoginException {
+- Group[] empty = new Group[0];
+- return empty;
+- }
+-
+- private static String encode(String secret, String keyMaterial, String algorithm) {
+- return EncryptionUtils.encode(secret, keyMaterial, algorithm);
+- }
+-
+- /**
+- * responsible for decoding the password by a customized algorithm as provided by {@link
+- * EncryptionUtils.decode(password, key, algorithm)}. Customizing algorithm and key material could be achieved by
+- * supplying other than null values to {@link EncryptionUtils.decode(password, key, algorithm)}
+- */
+- private static char[] decode(String secret) {
+- String decode = EncryptionUtils.decode(secret, null, null);
+- return decode != null ? decode.toCharArray() : null;
+- }
+-
+- static class AddPrincipalsAction implements PrivilegedAction<Object> {
+- Subject subject;
+- Principal p;
+-
+- AddPrincipalsAction(Subject subject, Principal p) {
+- this.subject = subject;
+- this.p = p;
+- }
+-
+- public Object run() {
+- subject.getPrincipals().add(p);
+- return null;
+- }
+- }
+-
+- static class AddCredentialsAction implements PrivilegedAction<Object> {
+- Subject subject;
+- PasswordCredential cred;
+-
+- AddCredentialsAction(Subject subject, PasswordCredential cred) {
+- this.subject = subject;
+- this.cred = cred;
+- }
+-
+- public Object run() {
+- subject.getPrivateCredentials().add(cred);
+- return null;
+- }
+- }
+-
+- /**
+- * Main entry point to encrypt a password using the hard-coded pass phrase
+- * @param args
+- * <br>
+- * - [0] = the password to encode<br>
+- * - [1] = the key material for encoding<br>
+- * - [2] = the algorithm for encoding
+- * @throws Exception
+- */
+- public static void main(String[] args) throws Exception {
+- String encode = null;
+-
+- switch (args.length) {
+- case 1:
+- encode = encode(args[0], null, null);
+- System.out.println("Encoded password: " + encode);
+- break;
+- case 3:
+- encode = encode(args[0], args[1], args[2]);
+- System.out.println("Encoded password: " + encode);
+- break;
+- default:
+- System.out.println("Usage: <password> [<key material> <algorithm>]");
+- break;
+- }
+- }
+-}
+-
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-jboss-ejb-specific-annotations.patch b/ovirt-engine-remove-jboss-ejb-specific-annotations.patch
new file mode 100644
index 0000000..af09e72
--- /dev/null
+++ b/ovirt-engine-remove-jboss-ejb-specific-annotations.patch
@@ -0,0 +1,45 @@
+From 55ebb080ff606d17cca2d159c06d55b5f53cad30 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 15 Mar 2012 10:53:30 +0100
+Subject: [PATCH 14/14] Remove JBoss EJB specific annotations
+
+---
+ backend/manager/modules/beans/scheduler/pom.xml | 5 -----
+ backend/manager/modules/bll/pom.xml | 5 -----
+ 2 files changed, 10 deletions(-)
+
+diff --git a/backend/manager/modules/beans/scheduler/pom.xml b/backend/manager/modules/beans/scheduler/pom.xml
+index e77e4dc..a9b0522 100644
+--- a/backend/manager/modules/beans/scheduler/pom.xml
++++ b/backend/manager/modules/beans/scheduler/pom.xml
+@@ -29,11 +29,6 @@
+ <groupId>org.quartz-scheduler</groupId>
+ <artifactId>quartz</artifactId>
+ </dependency>
+-
+- <dependency>
+- <groupId>org.jboss.ejb3</groupId>
+- <artifactId>jboss-ejb3-ext-api</artifactId>
+- </dependency>
+ </dependencies>
+
+ <build>
+diff --git a/backend/manager/modules/bll/pom.xml b/backend/manager/modules/bll/pom.xml
+index 15160c6..4c56525 100644
+--- a/backend/manager/modules/bll/pom.xml
++++ b/backend/manager/modules/bll/pom.xml
+@@ -91,11 +91,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.jboss.ejb3</groupId>
+- <artifactId>jboss-ejb3-ext-api</artifactId>
+- </dependency>
+-
+- <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+--
+1.7.9.3
+
diff --git a/ovirt-engine-remove-jboss-interceptors.patch b/ovirt-engine-remove-jboss-interceptors.patch
new file mode 100644
index 0000000..218d869
--- /dev/null
+++ b/ovirt-engine-remove-jboss-interceptors.patch
@@ -0,0 +1,48 @@
+From 6ea46f9d35015436115647299fc44b68d96cc298 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 12:03:15 +0100
+Subject: [PATCH] core: Remove dependency on jboss interceptors (#NA)
+
+This dependency is not needed and it complicates building of the
+RPMs in Fedora.
+
+Change-Id: Ibcd421297a6f7a2894177b65f8646b3016282851
+---
+ backend/manager/modules/utils/pom.xml | 4 ----
+ pom.xml | 5 -----
+ 2 files changed, 0 insertions(+), 9 deletions(-)
+
+diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml
+index 1e01679..a7bf1d9 100644
+--- a/backend/manager/modules/utils/pom.xml
++++ b/backend/manager/modules/utils/pom.xml
+@@ -14,10 +14,6 @@
+
+ <dependencies>
+ <dependency>
+- <groupId>org.jboss.interceptor</groupId>
+- <artifactId>jboss-interceptor-core</artifactId>
+- </dependency>
+- <dependency>
+ <groupId>org.jboss.spec.javax.interceptor</groupId>
+ <artifactId>jboss-interceptors-api_1.1_spec</artifactId>
+ <version>1.0.0.Final</version>
+diff --git a/pom.xml b/pom.xml
+index 50a249a..923f05f 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -79,11 +79,6 @@
+ <version>1.0.0.Final</version>
+ </dependency>
+ <dependency>
+- <groupId>org.jboss.interceptor</groupId>
+- <artifactId>jboss-interceptor-core</artifactId>
+- <version>2.0.0.Alpha3</version>
+- </dependency>
+- <dependency>
+ <groupId>org.quartz-scheduler</groupId>
+ <artifactId>quartz</artifactId>
+ <version>${quartz.version}</version>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-jna.patch b/ovirt-engine-remove-jna.patch
new file mode 100644
index 0000000..bd16b11
--- /dev/null
+++ b/ovirt-engine-remove-jna.patch
@@ -0,0 +1,659 @@
+From 4b6a09c08774f25c5d1675d1b96fdc77d90492e5 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Sat, 11 Feb 2012 22:03:42 +0100
+Subject: [PATCH] packaging: Remove dependency on JNA
+
+Change-Id: I09d3afb6fd1df62db78848fb9a1eb72edd49f656
+---
+ backend/manager/modules/utils/pom.xml | 5 -
+ .../core/utils/jwin32/ConvertSidException.java | 9 -
+ .../core/utils/jwin32/LOCAL_GROUP_INFO_0.java | 27 --
+ .../ovirt/engine/core/utils/jwin32/NetStruct.java | 60 -----
+ .../engine/core/utils/jwin32/USER_INFO_20.java | 30 ---
+ .../org/ovirt/engine/core/utils/jwin32/jwin32.java | 250 --------------------
+ .../ovirt/engine/core/utils/jwin32/AppTest.java | 206 ----------------
+ 7 files changed, 0 insertions(+), 587 deletions(-)
+ delete mode 100644 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/ConvertSidException.java
+ delete mode 100644 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/LOCAL_GROUP_INFO_0.java
+ delete mode 100644 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/NetStruct.java
+ delete mode 100644 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/USER_INFO_20.java
+ delete mode 100644 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/jwin32.java
+ delete mode 100644 backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/jwin32/AppTest.java
+
+diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml
+index d47ed1f..d80a516 100644
+--- a/backend/manager/modules/utils/pom.xml
++++ b/backend/manager/modules/utils/pom.xml
+@@ -118,11 +118,6 @@
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </dependency>
+- <dependency>
+- <groupId>com.sun.jna</groupId>
+- <artifactId>jna</artifactId>
+- <version>3.0.9</version>
+- </dependency>
+
+ <dependency>
+ <groupId>org.easymock</groupId>
+diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/ConvertSidException.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/ConvertSidException.java
+deleted file mode 100644
+index f0fbd51..0000000
+--- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/ConvertSidException.java
++++ /dev/null
+@@ -1,9 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-import org.ovirt.engine.core.compat.ApplicationException;
+-
+-public class ConvertSidException extends ApplicationException {
+- public ConvertSidException(String message) {
+- super(message);
+- }
+-}
+diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/LOCAL_GROUP_INFO_0.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/LOCAL_GROUP_INFO_0.java
+deleted file mode 100644
+index 44659f1..0000000
+--- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/LOCAL_GROUP_INFO_0.java
++++ /dev/null
+@@ -1,27 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-
+-import com.sun.jna.Pointer;
+-import com.sun.jna.WString;
+-import com.sun.jna.Structure;
+-
+-
+-public class LOCAL_GROUP_INFO_0 extends NetStruct {
+- public static class ByReference extends LOCAL_GROUP_INFO_0 implements Structure.ByReference {
+- }
+-
+- public LOCAL_GROUP_INFO_0() {
+- super();
+- }
+-
+- public LOCAL_GROUP_INFO_0(Pointer memory) {
+- useMemory(memory);
+- read();
+- }
+-
+- public WString lgrpi0_name;
+-
+- public String getSID() throws ConvertSidException {
+- return (getSID(lgrpi0_name));
+- }
+-}
+diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/NetStruct.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/NetStruct.java
+deleted file mode 100644
+index f0a01e2..0000000
+--- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/NetStruct.java
++++ /dev/null
+@@ -1,60 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-import com.sun.jna.ptr.IntByReference;
+-import com.sun.jna.WString;
+-import com.sun.jna.Structure;
+-import com.sun.jna.ptr.PointerByReference;
+-
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-
+-public abstract class NetStruct extends Structure {
+- private static LogCompat log = LogFactoryCompat.getLog(USER_INFO_20.class);
+-
+- protected String getSID(WString strAccountName) throws ConvertSidException {
+- log.debug("getSID entry");
+-
+- byte[] sid;
+- String retSID = "";
+- IntByReference cbSid;
+- PointerByReference peUse;
+- IntByReference cchReferencedDomainName;
+- PointerByReference stringSID = new PointerByReference();
+- char[] referencedDomainName;
+-
+- cbSid = new IntByReference(jwin32.SECURITY_MAX_SID_SIZE);
+- sid = new byte[cbSid.getValue()];
+- cchReferencedDomainName = new IntByReference(100);
+- referencedDomainName = new char[cchReferencedDomainName.getValue()];
+- peUse = new PointerByReference();
+-
+- if (!jwin32.advapi32.LookupAccountNameW(
+- new WString(""),
+- strAccountName,
+- sid,
+- cbSid,
+- referencedDomainName,
+- cchReferencedDomainName,
+- peUse
+- )) {
+- log.error(
+- "LookupAccountNameA failed for " + strAccountName +
+- " GetLastError=" + jwin32.kernel32.GetLastError()
+- );
+- throw new ConvertSidException("LookupAccountNameA failed for" + strAccountName);
+- }
+-
+- if (!jwin32.advapi32.ConvertSidToStringSidA(sid, stringSID)) {
+- log.error(
+- "ConvertSidToStringSidA failed for " + strAccountName +
+- " GetLastError=" + jwin32.kernel32.GetLastError()
+- );
+- throw new ConvertSidException("ConvertSidToStringSidA failed for" + strAccountName);
+- }
+-
+- retSID = stringSID.getValue().getString(0, false);
+- jwin32.kernel32.LocalFree(stringSID.getValue());
+-
+- return (retSID);
+- }
+-}
+diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/USER_INFO_20.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/USER_INFO_20.java
+deleted file mode 100644
+index fc3a085..0000000
+--- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/USER_INFO_20.java
++++ /dev/null
+@@ -1,30 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-import com.sun.jna.WString;
+-import com.sun.jna.Structure;
+-import com.sun.jna.Pointer;
+-
+-
+-public class USER_INFO_20 extends NetStruct {
+- public static class ByReference extends USER_INFO_20 implements Structure.ByReference {
+- }
+-
+- public WString usri20_name;
+- public WString usri20_full_name;
+- public WString usri20_comment;
+- public int usri20_flags;
+- public int usri20_user_id;
+-
+- public USER_INFO_20() {
+- super();
+- }
+-
+- public USER_INFO_20(Pointer memory) {
+- useMemory(memory);
+- read();
+- }
+-
+- public String getSID() throws ConvertSidException {
+- return (getSID(usri20_name));
+- }
+-}
+diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/jwin32.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/jwin32.java
+deleted file mode 100644
+index d049810..0000000
+--- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/jwin32/jwin32.java
++++ /dev/null
+@@ -1,250 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-import com.sun.jna.ptr.IntByReference;
+-import com.sun.jna.win32.StdCallLibrary;
+-import com.sun.jna.Native;
+-import com.sun.jna.WString;
+-import com.sun.jna.Platform;
+-import com.sun.jna.Pointer;
+-import com.sun.jna.ptr.PointerByReference;
+-
+-public interface jwin32 extends StdCallLibrary {
+- public static final int LOGON32_PROVIDER_DEFAULT = 0;
+-
+- public static final int LOGON32_LOGON_INTERACTIVE = 2;
+- public static final int LOGON32_LOGON_NETWORK = 3;
+- public static final int LOGON32_LOGON_BATCH = 4;
+- public static final int LOGON32_LOGON_SERVICE = 5;
+- public static final int LOGON32_LOGON_UNLOCK = 7;
+- public static final int LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
+- public static final int LOGON32_LOGON_NEW_CREDENTIALS = 9;
+-
+- public static final int NERR_Success = 0;
+- public static final int ERROR_MORE_DATA = 234;
+-
+- public static final int FILTER_TEMP_DUPLICATE_ACCOUNT = 0x0001;
+- public static final int FILTER_NORMAL_ACCOUNT = 0x0002;
+- public static final int FILTER_INTERDOMAIN_TRUST_ACCOUNT = 0x0008;
+- public static final int FILTER_WORKSTATION_TRUST_ACCOUNT = 0x0010;
+- public static final int FILTER_SERVER_TRUST_ACCOUNT = 0x0020;
+-
+- public static final int MAX_PREFERRED_LENGTH = -1;
+-
+- public static final int UF_SCRIPT = 0x0001;
+- public static final int UF_ACCOUNTDISABLE = 0x0002;
+- public static final int UF_HOMEDIR_REQUIRED = 0x0008;
+- public static final int UF_LOCKOUT = 0x0010;
+- public static final int UF_PASSWD_NOTREQD = 0x0020;
+- public static final int UF_PASSWD_CANT_CHANGE = 0x0040;
+- public static final int UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = 0x0080;
+-
+- //
+- // Account type bits as part of usri_flags.
+- //
+- public static final int UF_TEMP_DUPLICATE_ACCOUNT = 0x0100;
+- public static final int UF_NORMAL_ACCOUNT = 0x0200;
+- public static final int UF_INTERDOMAIN_TRUST_ACCOUNT = 0x0800;
+- public static final int UF_WORKSTATION_TRUST_ACCOUNT = 0x1000;
+- public static final int UF_SERVER_TRUST_ACCOUNT = 0x2000;
+-
+- public static final int UF_MACHINE_ACCOUNT_MASK = (
+- UF_INTERDOMAIN_TRUST_ACCOUNT |
+- UF_WORKSTATION_TRUST_ACCOUNT |
+- UF_SERVER_TRUST_ACCOUNT
+- );
+-
+- public static final int UF_ACCOUNT_TYPE_MASK = (
+- UF_TEMP_DUPLICATE_ACCOUNT |
+- UF_NORMAL_ACCOUNT |
+- UF_INTERDOMAIN_TRUST_ACCOUNT |
+- UF_WORKSTATION_TRUST_ACCOUNT |
+- UF_SERVER_TRUST_ACCOUNT
+- );
+-
+- public static final int UF_DONT_EXPIRE_PASSWD = 0x10000;
+- public static final int UF_MNS_LOGON_ACCOUNT = 0x20000;
+- public static final int UF_SMARTCARD_REQUIRED = 0x40000;
+- public static final int UF_TRUSTED_FOR_DELEGATION = 0x80000;
+- public static final int UF_NOT_DELEGATED = 0x100000;
+- public static final int UF_USE_DES_KEY_ONLY = 0x200000;
+- public static final int UF_DONT_REQUIRE_PREAUTH = 0x400000;
+- public static final int UF_PASSWORD_EXPIRED = 0x800000;
+- public static final int UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 0x1000000;
+- public static final int UF_NO_AUTH_DATA_REQUIRED = 0x2000000;
+- public static final int UF_PARTIAL_SECRETS_ACCOUNT = 0x4000000;
+- public static final int UF_USE_AES_KEYS = 0x8000000;
+-
+- public static final int SECURITY_MAX_SID_SIZE = 68; // This is 32bit need to figure out 64
+-
+- public static final int UF_SETTABLE_BITS = (
+- UF_SCRIPT |
+- UF_ACCOUNTDISABLE |
+- UF_LOCKOUT |
+- UF_HOMEDIR_REQUIRED |
+- UF_PASSWD_NOTREQD |
+- UF_PASSWD_CANT_CHANGE |
+- UF_ACCOUNT_TYPE_MASK |
+- UF_DONT_EXPIRE_PASSWD |
+- UF_MNS_LOGON_ACCOUNT |
+- UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED |
+- UF_SMARTCARD_REQUIRED |
+- UF_TRUSTED_FOR_DELEGATION |
+- UF_NOT_DELEGATED |
+- UF_USE_DES_KEY_ONLY |
+- UF_DONT_REQUIRE_PREAUTH |
+- UF_PASSWORD_EXPIRED |
+- UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION |
+- UF_NO_AUTH_DATA_REQUIRED |
+- UF_USE_AES_KEYS |
+- UF_PARTIAL_SECRETS_ACCOUNT
+- );
+-
+- jwin32 advapi32 = (jwin32) Native.loadLibrary(
+- (Platform.isWindows() ? "advapi32" : "c"),
+- jwin32.class
+- );
+-
+- jwin32 netapi32 = (jwin32) Native.loadLibrary(
+- (Platform.isWindows() ? "netapi32" : "c"),
+- jwin32.class
+- );
+-
+- jwin32 kernel32 = (jwin32) Native.loadLibrary(
+- (Platform.isWindows() ? "kernel32" : "c"),
+- jwin32.class
+- );
+-
+- /*
+- * public boolean LookupAccountName ( String lpSystemName, String lpAccountName, Pointer Sid, IntByReference cbSid,
+- * char[] ReferencedDomainName, IntByReference cchReferencedDomainName, PointerByReference peUse );
+- */
+- public boolean LookupAccountNameA(
+- String lpSystemName,
+- String lpAccountName,
+- byte[] Sid,
+- IntByReference cbSid,
+- char[] ReferencedDomainName, // not sure it should not be byte, only for the A version
+- IntByReference cchReferencedDomainName,
+- PointerByReference peUse
+- );
+-
+- public boolean LookupAccountNameW(
+- WString lpSystemName,
+- WString lpAccountName,
+- byte[] Sid,
+- IntByReference cbSid,
+- char[] ReferencedDomainName,
+- IntByReference cchReferencedDomainName,
+- PointerByReference peUse
+- );
+-
+- public boolean CloseHandle(
+- int hObject
+- );
+-
+- public boolean ConvertSidToStringSidA(
+- byte[] Sid,
+- PointerByReference stringSID
+- );
+-
+- public int GetLastError();
+-
+- public boolean ImpersonateLoggedOnUser(
+- IntByReference hToken
+- );
+-
+- public Pointer LocalFree(Pointer hMem);
+-
+- public boolean LogonUserA(
+- String userName,
+- String domain,
+- String password,
+- int dwLogonType,
+- int dwLogonProvider,
+- IntByReference lToken
+- );
+-
+- public boolean LogonUserW(
+- WString userName,
+- WString domain,
+- WString password,
+- int dwLogonType,
+- int dwLogonProvider,
+- IntByReference lToken
+- );
+-
+- public int NetUserGetInfo(
+- WString servername,
+- WString username,
+- int level,
+- // PUSER_INFO_23.ByReference bufptr
+- PointerByReference bufptr
+- );
+-
+- public int NetUserEnum(
+- WString servername,
+- int level,
+- int filter,
+- PointerByReference bufptr,
+- int prefmaxlen,
+- IntByReference entriesread,
+- IntByReference totalentries,
+- IntByReference resume_handle
+- );
+-
+- public int NetGroupGetInfo(
+- WString servername,
+- WString username,
+- int level,
+- PointerByReference bufptr
+- );
+-
+- public int NetLocalGroupEnum(
+- WString servername,
+- int level,
+- PointerByReference bufptr,
+- int prefmaxlen,
+- IntByReference entriesread,
+- IntByReference totalentries,
+- IntByReference resume_handle
+- );
+-
+- public int NetLocalGroupGetInfo(
+- WString servername,
+- WString groupname,
+- int level,
+- PointerByReference bufptr
+- );
+-
+- public int NetGroupEnum(
+- WString servername,
+- int level,
+- PointerByReference bufptr, // PointerByReference bufptr,
+- int prefmaxlen,
+- IntByReference entriesread,
+- IntByReference totalentries,
+- IntByReference resume_handle
+- );
+-
+- public int NetQueryDisplayInformation(
+- WString servername,
+- int level,
+- int index,
+- int entriesRequested,
+- int prefferedMaximumLength,
+- IntByReference totalentries,
+- PointerByReference bufptr
+- );
+-
+- public int NetUserChangePassword(
+- WString domainname,
+- WString username,
+- WString oldpassword,
+- WString newpassword
+- );
+-
+- public int NetApiBufferFree(
+- Pointer Buffer
+- );
+-
+-}
+diff --git a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/jwin32/AppTest.java b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/jwin32/AppTest.java
+deleted file mode 100644
+index 5bd5ce9..0000000
+--- a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/jwin32/AppTest.java
++++ /dev/null
+@@ -1,206 +0,0 @@
+-package org.ovirt.engine.core.utils.jwin32;
+-
+-import com.sun.jna.WString;
+-import com.sun.jna.ptr.IntByReference;
+-import com.sun.jna.ptr.PointerByReference;
+-
+-import java.io.PrintStream;
+-import java.io.UnsupportedEncodingException;
+-
+-import java.nio.ByteBuffer;
+-import java.nio.ByteOrder;
+-
+-import org.ovirt.engine.core.compat.*;
+-
+-/**
+- * Unit test for simple App.
+- */
+-public class AppTest {
+- private static boolean isRunningOnWindows() {
+- String osName = System.getProperty("os.name");
+- return osName.contains("Windows");
+- }
+-
+- /**
+- * Rigourous Test :-)
+- */
+- /*
+- * public void testApp() { IntByReference i = new IntByReference();
+- *
+- * assertTrue ( advapi32.INSTANCE.LogonUserA ( "TestUser", "", "TestUser", 2, 0, i ) );
+- *
+- * assertTrue ( advapi32.INSTANCE.LogonUserW ( new WString("TestUser"), new WString(""), new WString("TestUser"), 2,
+- * advapi32.LOGON32_PROVIDER_DEFAULT, i ) ); }
+- */
+- public static String getAccountSid(String account) {
+-
+- if (!isRunningOnWindows()) {
+- System.out.println("getAccountSid should be run on windows");
+- return null;
+- }
+-
+- byte[] sid;
+- String retSID = "";
+- IntByReference cbSid;
+- PointerByReference peUse;
+- IntByReference cchReferencedDomainName;
+- PointerByReference stringSID = new PointerByReference();
+- char[] referencedDomainName;
+-
+- cbSid = new IntByReference(jwin32.SECURITY_MAX_SID_SIZE);
+- sid = new byte[cbSid.getValue()];
+- cchReferencedDomainName = new IntByReference(100);
+- referencedDomainName = new char[cchReferencedDomainName.getValue()];
+- peUse = new PointerByReference();
+-
+- if (!jwin32.advapi32.LookupAccountNameA(
+- "",
+- account,
+- sid,
+- cbSid,
+- referencedDomainName,
+- cchReferencedDomainName,
+- peUse
+- )) {
+- System.out.println("Error");
+- }
+-
+- if (!jwin32.advapi32.ConvertSidToStringSidA(sid, stringSID)) {
+- // ERROR
+- System.out.println("!ERROR=!" + jwin32.kernel32.GetLastError() + " cbSid=" + cbSid.getValue());
+- }
+-
+- retSID = stringSID.getValue().getString(0, false);
+- jwin32.kernel32.LocalFree(stringSID.getValue());
+-
+- return (retSID);
+- }
+-
+- @org.junit.Test
+- public void testGroupsEnum() throws UnsupportedEncodingException {
+-
+- if (!isRunningOnWindows()) {
+- System.out.println("testGroupsEnum should be run on windows");
+- return;
+- }
+- int nStatus;
+- PointerByReference pGI0 = new PointerByReference();
+- PointerByReference pGI1 = new PointerByReference();
+- IntByReference nEntriesRead = new IntByReference();
+- IntByReference nTotalEntries = new IntByReference();
+- IntByReference nResumeHandle = new IntByReference();
+-
+- PrintStream out = new PrintStream(System.out, true, "UTF-8");
+-
+- try {
+- nStatus = jwin32.netapi32.NetLocalGroupEnum(
+- new WString(""),
+- 0,
+- pGI0,
+- jwin32.MAX_PREFERRED_LENGTH,
+- nEntriesRead,
+- nTotalEntries,
+- null
+- );
+-
+- System.out.println("NetGroupEnum return=" + nStatus + " nEntriesRead=" + nEntriesRead.getValue());
+-
+- if (nStatus == jwin32.NERR_Success ||
+- nStatus == jwin32.ERROR_MORE_DATA) {
+- LOCAL_GROUP_INFO_0 groupsArr = new LOCAL_GROUP_INFO_0(pGI0.getValue());
+- LOCAL_GROUP_INFO_0[] groups = (LOCAL_GROUP_INFO_0[]) groupsArr.toArray(nEntriesRead.getValue());
+-
+- for (LOCAL_GROUP_INFO_0 group : groups) {
+- String retSID;
+- PointerByReference group_sid;
+- PointerByReference stringSID = new PointerByReference();
+- IntByReference nSIDSize = new IntByReference();
+-
+- out.println("!Group name=" + group.lgrpi0_name.toString() + "!");
+- out.println("! sid=!" + getAccountSid(group.lgrpi0_name.toString()));
+- }
+-
+- }
+-
+- } catch (Exception e) {
+- System.out.println(e.getMessage());
+- }
+-
+- }
+-
+- public static byte[] toByta(long data) {
+- return new byte[] {
+- (byte) ((data >> 56) & 0xff),
+- (byte) ((data >> 48) & 0xff),
+- (byte) ((data >> 40) & 0xff),
+- (byte) ((data >> 32) & 0xff),
+- (byte) ((data >> 24) & 0xff),
+- (byte) ((data >> 16) & 0xff),
+- (byte) ((data >> 8) & 0xff),
+- (byte) ((data >> 0) & 0xff), };
+- }
+-
+- @org.junit.Test
+- public void testSidtoGuid() throws UnsupportedEncodingException {
+-
+- if (!isRunningOnWindows()) {
+- System.out.println("testSidtoGuid should be run on windows");
+- return;
+- }
+-
+- String strSid = getAccountSid("Administrator");
+- int x = 0;
+-
+- PrintStream out = new PrintStream(System.out, true, "UTF-8");
+-
+- try {
+- ByteBuffer bb = ByteBuffer.allocate(16);
+- bb.order(ByteOrder.LITTLE_ENDIAN);
+-
+- String[] arrSidParts = strSid.split("-");
+- for (int i = 4; i < arrSidParts.length; i++) {
+- bb.putInt((int) Long.parseLong(arrSidParts[i]));
+- }
+-
+- Guid guid = new Guid(bb.array(), false);
+- out.println(guid.toString());
+-
+- } catch (Exception e) {
+- out.println("!" + e.getMessage() + "!");
+- e.printStackTrace();
+- }
+- }
+-
+- @org.junit.Test
+- public void testGroupDisplay() {
+- try {
+-
+- if (!isRunningOnWindows()) {
+- System.out.println("test should be run on windows");
+- return;
+- }
+-
+- PointerByReference pNDG = new PointerByReference();
+- IntByReference nEntriesRead = new IntByReference();
+- int nStatus = jwin32.netapi32.NetQueryDisplayInformation(
+- new WString(""),
+- 3,
+- 0,
+- 100,
+- jwin32.MAX_PREFERRED_LENGTH,
+- nEntriesRead,
+- pNDG);
+-
+- System.out.println("NetQueryDisplayInformation return " + nStatus);
+-
+- if (nStatus == jwin32.NERR_Success ||
+- nStatus == jwin32.ERROR_MORE_DATA) {
+-
+- System.out.println("Returned " + nEntriesRead.getValue() + " entries ");
+- }
+-
+- } catch (Exception ex) {
+- ex.printStackTrace();
+- }
+- }
+-}
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-local-user-authentication.patch b/ovirt-engine-remove-local-user-authentication.patch
new file mode 100644
index 0000000..d7ae832
--- /dev/null
+++ b/ovirt-engine-remove-local-user-authentication.patch
@@ -0,0 +1,732 @@
+From 2cbc913e9dd532a04e26ce879f35ddcadd88e034 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 17:27:20 +0100
+Subject: [PATCH] Remove local user authentication
+
+This is only needed in Windows.
+
+Change-Id: I6c35052bb4e359c2a09a466804f9d1be80f8b240
+---
+ .../bll/adbroker/LUAuthenticateUserCommand.java | 72 -----
+ .../core/bll/adbroker/LUBrokerCommandBase.java | 289 --------------------
+ .../bll/adbroker/LUChangeUserPasswordCommand.java | 36 ---
+ .../adbroker/LUCreateComputerAccountCommand.java | 12 -
+ .../bll/adbroker/LUGetAdGroupByGroupIdCommand.java | 30 --
+ .../bll/adbroker/LUGetAdUserByUserIdCommand.java | 33 ---
+ .../adbroker/LUGetAdUserByUserIdListCommand.java | 18 --
+ .../bll/adbroker/LUGetAdUserByUserNameCommand.java | 52 ----
+ .../bll/adbroker/LUSearchGroupsByQueryCommand.java | 42 ---
+ .../bll/adbroker/LUSearchUserByQueryCommand.java | 38 ---
+ .../engine/core/bll/adbroker/LocalUserBroker.java | 8 -
+ 11 files changed, 0 insertions(+), 630 deletions(-)
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUAuthenticateUserCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUBrokerCommandBase.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUChangeUserPasswordCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUCreateComputerAccountCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdGroupByGroupIdCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdListCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserNameCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchGroupsByQueryCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchUserByQueryCommand.java
+ delete mode 100644 backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LocalUserBroker.java
+
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUAuthenticateUserCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUAuthenticateUserCommand.java
+deleted file mode 100644
+index 80ab637..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUAuthenticateUserCommand.java
++++ /dev/null
+@@ -1,72 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.bll.WindowsErrorsTranslationMap;
+-import org.ovirt.engine.core.common.businessentities.AdUser;
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-import org.ovirt.engine.core.dal.VdcBllMessages;
+-import org.ovirt.engine.core.utils.jwin32.jwin32;
+-
+-import com.sun.jna.WString;
+-import com.sun.jna.ptr.IntByReference;
+-
+-public class LUAuthenticateUserCommand extends LUBrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUAuthenticateUserCommand.class);
+-
+- public LUAuthenticateUserCommand(LdapUserPasswordBaseParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- AdUser user = new AdUser();
+- log.debug("Executing LUAuthenticateUserCommand");
+- IntByReference lToken = new IntByReference();
+- try {
+- if (jwin32.advapi32.LogonUserW(
+- new WString(getLoginName().toString()),
+- new WString(getDomain().toString()),
+- new WString(getPassword()),
+- jwin32.LOGON32_LOGON_NETWORK,
+- jwin32.LOGON32_PROVIDER_DEFAULT,
+- lToken
+- )
+-
+- ) {
+- // Login successful now lets collect the user data.
+- user = (AdUser) LdapFactory.getInstance(getDomain()).RunAdAction(
+- AdActionType.GetAdUserByUserName, new LdapSearchByUserNameParameters(
+- getParameters().getSessionId(), getDomain(), getLoginName())).getReturnValue();
+- user.setPassword(getPassword());
+- UserAuthenticationResult result = new UserAuthenticationResult(user);
+- setReturnValue(result);
+- setSucceeded(true);
+- } else {
+- int lastError = jwin32.kernel32.GetLastError();
+- log.error("Last error is: " + lastError);
+- VdcBllMessages errorCode = WindowsErrorsTranslationMap.getError(lastError);
+- //If there was an error - at first define a general error code of authentication failure, but
+- //try to get a more concrete error code
+- UserAuthenticationResult result = new UserAuthenticationResult(VdcBllMessages.USER_FAILED_TO_AUTHENTICATE);
+- if (errorCode != null) {
+- log.debug("Found error code " + result.toString());
+- //A more concrete error code is found
+- result = new UserAuthenticationResult(errorCode);
+- } else {
+- log.debug("No error code found, using default error code of USER_FAILED_TO_AUTHENTICATE");
+- }
+-
+- setReturnValue(result);
+- setSucceeded(false);
+- }
+- } catch (RuntimeException ee) {
+- // TODO: Need normal Error handling
+- // QLogger.getInstance().Warn("Failed authenticating " +
+- // getLoginName() + "@" + getDomain(), ee);
+- } finally {
+- if (lToken.getValue() != 0) {
+- jwin32.kernel32.CloseHandle(lToken.getValue());
+- }
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUBrokerCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUBrokerCommandBase.java
+deleted file mode 100644
+index 100966d..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUBrokerCommandBase.java
++++ /dev/null
+@@ -1,289 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import java.nio.ByteBuffer;
+-import java.nio.ByteOrder;
+-import java.util.ArrayList;
+-import java.util.regex.Pattern;
+-
+-import org.ovirt.engine.core.common.businessentities.AdUser;
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-import org.ovirt.engine.core.compat.Regex;
+-import org.ovirt.engine.core.compat.RegexOptions;
+-import org.ovirt.engine.core.utils.jwin32.ConvertSidException;
+-import org.ovirt.engine.core.utils.jwin32.LOCAL_GROUP_INFO_0;
+-import org.ovirt.engine.core.utils.jwin32.USER_INFO_20;
+-import org.ovirt.engine.core.utils.jwin32.jwin32;
+-import com.sun.jna.WString;
+-import com.sun.jna.ptr.IntByReference;
+-import com.sun.jna.ptr.PointerByReference;
+-
+-public abstract class LUBrokerCommandBase extends BrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUBrokerCommandBase.class);
+-
+- @Override
+- protected String getPROTOCOL() {
+- return "LDAP://";
+- }
+-
+- protected LUBrokerCommandBase(LdapBrokerBaseParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- public LdapReturnValueBase Execute() {
+- try {
+- ExecuteQuery();
+- } catch (RuntimeException e) {
+- log.errorFormat("Error in executing LU broker command. Exception is {0} ", e.getMessage());
+- _ldapReturnValue.setSucceeded(false);
+- _ldapReturnValue.setReturnValue(null);
+- }
+- return _ldapReturnValue;
+- }
+-
+- protected abstract void ExecuteQuery();
+-
+- /**
+- * This method convert a single condition from the ldap query string into a
+- * regex. The pattern describe the condition to be converted. If the pattern
+- * does not exist in the query it will return a null.
+- *
+- * @param query
+- * @param pattern
+- * @return
+- */
+- protected Regex queryToRegex(String query, String pattern) {
+- Regex retval = null;
+- if (query.contains(pattern)) {
+- String value = query.substring(query.indexOf(pattern)).split("[()=]")[1].trim();
+- log.debug("queryToRegex, value=" + value);
+- retval = new Regex(value, RegexOptions.IgnoreCase);
+- }
+- return retval;
+- }
+-
+- protected Pattern queryToPattern(String query, String pattern) {
+- Pattern retval = null;
+- if (query.contains(pattern)) {
+- String value = query.substring(query.indexOf(pattern)).split("[()=]")[1].trim();
+- log.debug("queryToPattern, value=" + value.replace("*", ".*"));
+- retval = Pattern.compile(value.replace("*", ".*"), Pattern.CASE_INSENSITIVE);
+- }
+- return retval;
+- }
+-
+- /**
+- * This method return an array list of local users with their info. I had to
+- * hack around quite a few bits here, so I guess it worth some through
+- * explaining. But first please follow the most important rule of WIN32 APIs
+- * - get into MSDN and read the remarks section about NetUserEnum. Ok, so as
+- * you can see, NetUserEnum allocate memory area by itself. this memory area
+- * is later on populated with an array of structures (pointer to pointer)
+- * which hold the wanted information. This required some trickery. which I
+- * couldnt get working any other way, so please test this throughly if you
+- * think of any cleaner solution. I was mapping the needed structure into
+- * java class according to JNA instructions. adding it a ByReference class
+- * (again, according to instructions). Then (here come the tricky part) I've
+- * created another class which have a member of that previous ByReference
+- * type and is overriding the toArray method so that it will actually call
+- * the toArray of the original structure mapping class. Doing the same with
+- * PointerByRefernce and useMemory failed! (you can try again if you like, I
+- * might have gotten something wrong there.) Ok, so we've got that part
+- * working, now, we need the following info about each user: full name, SID
+- * and flags (expired, locked, etc.) it seems very apropriate to use
+- * USER_INFO_20 but!!! it seems that calling NetUserEnum with level=23 fails
+- * with error 124 or 1722, another trickery is needed! So I'm calling
+- * NetUserEnum with level=0 which gives only the username, then calling
+- * NetUserGetInfo (again, highly advasiable, no required, to read the
+- * remarks section) with level=23 which miraculously works ;)
+- *
+- * Update: made it working by useMemory and PointerByReference. but had to
+- * drop the sid for that so now, this is used only with USER_INFO_20 (no
+- * need anymore for 0 and 23) and a special Implementation, using
+- * LookupAccountName to get the sid, which is shared with LOCAL_GROUP class
+- */
+-
+- protected ArrayList<AdUser> getAdUsers() {
+- int nStatus;
+- ArrayList<AdUser> retVal = new ArrayList<AdUser>();
+- IntByReference nEntriesRead = new IntByReference();
+- IntByReference nTotalEntries = new IntByReference();
+- PointerByReference pUI20 = new PointerByReference();
+-
+- nStatus = jwin32.netapi32.NetUserEnum(new WString(""), 20, jwin32.FILTER_NORMAL_ACCOUNT, pUI20,
+- jwin32.MAX_PREFERRED_LENGTH, // This
+- // have
+- // high
+- // potential
+- // of
+- // breaking
+- // on
+- // systems
+- // with
+- // a
+- // large
+- // number
+- // of
+- // users!
+- nEntriesRead,
+- nTotalEntries,
+- null);
+-
+- if (nStatus == jwin32.NERR_Success || nStatus == jwin32.ERROR_MORE_DATA) {
+-
+- // Allocates a USER_INFO_0 object that maps to a USER_INFO_0
+- // struct that is located in the address that is held by the
+- // value of pUI0.
+- // This address is the beginning of a sequence of structures of
+- // USER_INFO_0, so retrieving array is possible.
+- USER_INFO_20 userTemp = new USER_INFO_20(pUI20.getValue());
+- USER_INFO_20 users[] = (USER_INFO_20[]) userTemp.toArray(nTotalEntries.getValue());
+-
+- for (USER_INFO_20 user : users) {
+- retVal.add(populateUser(user));
+- }
+-
+- if (nEntriesRead.getValue() > 0) {
+- jwin32.netapi32.NetApiBufferFree(pUI20.getValue());
+- }
+- }
+-
+- return (retVal);
+- }
+-
+- protected ArrayList<ad_groups> getAdGroups() {
+- log.debug("getAdGroups Entry");
+-
+- int nStatus;
+- PointerByReference pGI0 = new PointerByReference();
+- IntByReference nEntriesRead = new IntByReference();
+- IntByReference nTotalEntries = new IntByReference();
+- ArrayList<ad_groups> retVal = new ArrayList<ad_groups>();
+-
+- nStatus = jwin32.netapi32.NetLocalGroupEnum(
+- new WString(""),
+- 0,
+- pGI0,
+- jwin32.MAX_PREFERRED_LENGTH,
+- nEntriesRead,
+- nTotalEntries,
+- null
+- );
+-
+- if (nStatus == jwin32.NERR_Success ||
+- nStatus == jwin32.ERROR_MORE_DATA) {
+- log.debug("NetLocalGroupEnum returned " + nEntriesRead.getValue() + " entries");
+-
+- LOCAL_GROUP_INFO_0 groupsArr = new LOCAL_GROUP_INFO_0(pGI0.getValue());
+- LOCAL_GROUP_INFO_0[] groups = (LOCAL_GROUP_INFO_0[]) groupsArr.toArray(nEntriesRead.getValue());
+-
+- for (LOCAL_GROUP_INFO_0 group : groups) {
+- String retSID;
+- PointerByReference group_sid;
+- PointerByReference stringSID = new PointerByReference();
+- IntByReference nSIDSize = new IntByReference();
+-
+- log.debug("populating group name=" + group.lgrpi0_name);
+-
+- retVal.add(populateGroup(group));
+- }
+-
+- if (nEntriesRead.getValue() > 0) {
+- jwin32.netapi32.NetApiBufferFree(pGI0.getValue());
+- }
+- } else {
+- log.error("getAdGroups, NetLocalGroupEnum error (" + jwin32.kernel32.GetLastError() + ") return=" + nStatus);
+- }
+-
+- log.debug("getAdGroups, Return size=" + retVal.size());
+- return (retVal);
+- }
+-
+- protected AdUser populateUser(USER_INFO_20 child) {
+- log.debug("populateUser Entry");
+-
+- try {
+- AdUser user = new AdUser();
+- user.setUserId(sidToGuid(child.getSID()));
+- user.setName(child.usri20_full_name.toString());
+- user.setUserName(child.usri20_name.toString());
+- /*
+- * According to MSDN documentation for C# Environment.MachineName it
+- * seems the class is getting the machine name from environment
+- * variable named COMPUTERNAME
+- */
+- user.setDomainControler(System.getenv("COMPUTERNAME"));
+-
+- user.setPasswordExpired((child.usri20_flags & jwin32.UF_PASSWORD_EXPIRED) == jwin32.UF_PASSWORD_EXPIRED);
+-
+- // debug print all properties
+- // List<string> test = new List<string>();
+- // foreach (string key in child.Properties.PropertyNames)
+- // {
+- // test.Add(key + ":" + child.Properties[key].Value);
+- // }
+- return user;
+- } catch (ConvertSidException ex) {
+- log.error("convert sid failed");
+- return null;
+- }
+- }
+-
+- protected ad_groups populateGroup(LOCAL_GROUP_INFO_0 child) {
+- log.debug("populateGroup, Entry");
+-
+- try {
+- ad_groups group = new ad_groups();
+- group.setid(sidToGuid(child.getSID()));
+- group.setname(child.lgrpi0_name.toString()); // todo: getName()
+- group.setdomain(System.getenv("COMPUTERNAME"));
+-
+- log.debug("populateGroup, Return");
+- return group;
+- } catch (ConvertSidException ex) {
+- log.error("convert sid failed");
+- return null;
+- }
+- }
+-
+- /* do we really need a byte[] format ? */
+- protected static Guid sidToGuid(byte[] sid) {
+- if (sid == null) {
+- return (null);
+- }
+-
+- byte[] barray = new byte[16];
+- if (sid.length == 16) {
+- barray = sid;
+- } else if (sid.length > 16) {
+- int offset = sid.length - 16;
+- for (int i = 0; i < 15; i++) {
+- barray[i] = sid[i + offset];
+- }
+- }
+- return new Guid(barray, true);
+- }
+-
+- private static Guid sidToGuid(String sid) throws ConvertSidException {
+- log.debug("sidToGuid Entry, sid=" + sid + " length=" + sid.length());
+-
+- try {
+- ByteBuffer bb = ByteBuffer.allocate(16);
+- bb.order(ByteOrder.LITTLE_ENDIAN);
+-
+- String[] arrSidParts = sid.split("-");
+- for (int i = 4; i < arrSidParts.length; i++) {
+- bb.putInt((int) Long.parseLong(arrSidParts[i]));
+- }
+-
+- return new Guid(bb.array(), false);
+- } catch (java.lang.ArrayIndexOutOfBoundsException aioobe) {
+- throw new ConvertSidException("Given sid has a wrong length. Please validate it: " + sid);
+- } catch (java.nio.BufferOverflowException boe) {
+- throw new ConvertSidException("Given sid length is too long. Please validate it: " + sid);
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUChangeUserPasswordCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUChangeUserPasswordCommand.java
+deleted file mode 100644
+index 2f2478a..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUChangeUserPasswordCommand.java
++++ /dev/null
+@@ -1,36 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.utils.jwin32.jwin32;
+-import com.sun.jna.WString;
+-
+-public class LUChangeUserPasswordCommand extends LUBrokerCommandBase {
+- private String getDestinationNewPassword() {
+- return (((LdapChangeUserPasswordParameters) getParameters()).getDestinationUserNewPassword());
+- }
+-
+- private String getDestinationUserName() {
+- return (((LdapChangeUserPasswordParameters) getParameters()).getDestinationUserName());
+- }
+-
+- private String getDestinationUserPassword() {
+- return (((LdapChangeUserPasswordParameters) getParameters()).getDestinationUserPassword());
+- }
+-
+- public LUChangeUserPasswordCommand(LdapChangeUserPasswordParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- if (jwin32.netapi32.NetUserChangePassword(
+- new WString(""), // new WString(this.getDomain().toString()),
+- new WString(this.getDestinationUserName()),
+- new WString(((LdapChangeUserPasswordParameters) getParameters()).getDestinationUserPassword()),
+- new WString(((LdapChangeUserPasswordParameters) getParameters()).getDestinationUserNewPassword())
+- ) == jwin32.NERR_Success) {
+- setSucceeded(true);
+- } else {
+- setSucceeded(false);
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUCreateComputerAccountCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUCreateComputerAccountCommand.java
+deleted file mode 100644
+index 6b87638..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUCreateComputerAccountCommand.java
++++ /dev/null
+@@ -1,12 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-public class LUCreateComputerAccountCommand extends LUBrokerCommandBase {
+- public LUCreateComputerAccountCommand(LdapCreateComputerAccountParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- setSucceeded(false);
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdGroupByGroupIdCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdGroupByGroupIdCommand.java
+deleted file mode 100644
+index 0bb5710..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdGroupByGroupIdCommand.java
++++ /dev/null
+@@ -1,30 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.compat.Guid;
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-
+-public class LUGetAdGroupByGroupIdCommand extends LUBrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUGetAdUserByUserIdCommand.class);
+-
+- private Guid getGroupId() {
+- return ((LdapSearchByIdParameters) getParameters()).getId();
+- }
+-
+- public LUGetAdGroupByGroupIdCommand(LdapSearchByIdParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- log.debug("ExecuteQuery Entry, group ID=" + getGroupId().toString());
+- for (ad_groups group : getAdGroups()) {
+- if (group.getid().equals(getGroupId())) {
+- setReturnValue(group);
+- setSucceeded(true);
+- break;
+- }
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdCommand.java
+deleted file mode 100644
+index 281e149..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdCommand.java
++++ /dev/null
+@@ -1,33 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.common.businessentities.AdUser;
+-import org.ovirt.engine.core.compat.*;
+-
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-
+-import org.ovirt.engine.core.utils.jwin32.*;
+-
+-public class LUGetAdUserByUserIdCommand extends LUBrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUGetAdUserByUserIdCommand.class);
+-
+- private Guid getUserId() {
+- return ((LdapSearchByIdParameters) getParameters()).getId();
+- }
+-
+- public LUGetAdUserByUserIdCommand(LdapSearchByIdParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- log.debug("ExecuteQuery Entry, user ID=" + getUserId().toString());
+- for (AdUser user : getAdUsers()) {
+- if (user.getUserId().equals(getUserId())) {
+- setReturnValue(user);
+- setSucceeded(true);
+- break;
+- }
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdListCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdListCommand.java
+deleted file mode 100644
+index 8f097b7..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserIdListCommand.java
++++ /dev/null
+@@ -1,18 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.common.businessentities.*;
+-
+-import java.util.ArrayList;
+-import org.ovirt.engine.core.utils.jwin32.*;
+-
+-public class LUGetAdUserByUserIdListCommand extends LUBrokerCommandBase {
+- public LUGetAdUserByUserIdListCommand(LdapSearchByIdListParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- ArrayList<AdUser> users = getAdUsers();
+- setReturnValue(users);
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserNameCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserNameCommand.java
+deleted file mode 100644
+index e5ccd2c..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUGetAdUserByUserNameCommand.java
++++ /dev/null
+@@ -1,52 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import org.ovirt.engine.core.common.businessentities.*;
+-
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-import org.ovirt.engine.core.utils.jwin32.*;
+-
+-import com.sun.jna.ptr.*;
+-import com.sun.jna.WString;
+-
+-public class LUGetAdUserByUserNameCommand extends LUBrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUGetAdUserByUserNameCommand.class);
+-
+- private String getUserName() {
+- return ((LdapSearchByUserNameParameters) getParameters()).getUserName();
+- }
+-
+- public LUGetAdUserByUserNameCommand(LdapSearchByUserNameParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- log.debug("ExecuteQuery, Entry");
+-
+- IntByReference lToken = null;
+- PointerByReference p = new PointerByReference();
+- int nStatus;
+- IntByReference nEntriesRead;
+- IntByReference nTotalEntries;
+- IntByReference nResumeHandle;
+-
+- if (jwin32.netapi32.NetUserGetInfo(new WString(this.getDomain()), new WString(this.getUserName()), 20, p
+- ) == jwin32.NERR_Success) {
+-
+- USER_INFO_20 ui = new USER_INFO_20(p.getValue());
+- log.debug("ui=" + ui.usri20_name);
+- AdUser user = populateUser(ui);
+- jwin32.netapi32.NetApiBufferFree(p.getValue());
+-
+- // Getting the groups
+- // Seems local users don't get groups..
+- // TODO: check if this just strange or unused.
+-
+- setReturnValue(user);
+- setSucceeded((getReturnValue() != null));
+- } else {
+- log.error("ExecuteQuery, NetUserGetInfo failed (" + jwin32.kernel32.GetLastError() + ")");
+- }
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchGroupsByQueryCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchGroupsByQueryCommand.java
+deleted file mode 100644
+index 5363c97..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchGroupsByQueryCommand.java
++++ /dev/null
+@@ -1,42 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import java.util.regex.Matcher;
+-import java.util.regex.Pattern;
+-
+-import org.ovirt.engine.core.common.businessentities.ad_groups;
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-
+-public class LUSearchGroupsByQueryCommand extends LUBrokerCommandBase {
+- private static LogCompat log = LogFactoryCompat.getLog(LUSearchGroupsByQueryCommand.class);
+-
+- protected String getQuery() {
+- // TODO:rgolan
+- return "";
+- //return ((LdapSearchByQueryParameters) getParameters()).getQuery();
+- }
+-
+- public LUSearchGroupsByQueryCommand(LdapSearchByQueryParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- log.debug("ExecuteQuery Entry, Query=" + getQuery());
+-
+- java.util.ArrayList<ad_groups> groups = new java.util.ArrayList<ad_groups>();
+-
+- Pattern p = queryToPattern(getQuery(), "name");
+-
+- for (ad_groups group : getAdGroups()) {
+- Matcher mName = p.matcher(group.getname());
+-
+- if (p == null || mName.matches()) {
+- log.debug("sid=" + group.getid());
+- groups.add(group);
+- }
+- }
+- log.debug("ExecuteQuery Return, groups.size = " + groups.size());
+- setReturnValue(groups);
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchUserByQueryCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchUserByQueryCommand.java
+deleted file mode 100644
+index a1997ea..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LUSearchUserByQueryCommand.java
++++ /dev/null
+@@ -1,38 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-import java.util.regex.Pattern;
+-import java.util.regex.Matcher;
+-import org.ovirt.engine.core.compat.*;
+-import org.ovirt.engine.core.common.businessentities.*;
+-import org.ovirt.engine.core.utils.jwin32.*;
+-import org.ovirt.engine.core.compat.LogCompat;
+-import org.ovirt.engine.core.compat.LogFactoryCompat;
+-
+-public class LUSearchUserByQueryCommand extends LUSearchGroupsByQueryCommand {
+- private static LogCompat log = LogFactoryCompat.getLog(LUSearchUserByQueryCommand.class);
+-
+- public LUSearchUserByQueryCommand(LdapSearchByQueryParameters parameters) {
+- super(parameters);
+- }
+-
+- @Override
+- protected void ExecuteQuery() {
+- log.debug("ExecuteQuery Entry, Query=" + getQuery());
+-
+- java.util.ArrayList<AdUser> users = new java.util.ArrayList<AdUser>();
+-
+- Pattern p = queryToPattern(getQuery(), "givenname");
+-
+- for (AdUser user : getAdUsers()) {
+- Matcher mName = p.matcher(user.getUserName());
+- Matcher mFull = p.matcher(user.getName());
+-
+- if (p == null || mName.matches() || mFull.matches()) {
+- log.debug("sid=" + user.getUserId());
+- users.add(user);
+- }
+- }
+- log.debug("ExecuteQuery Return, users.size = " + users.size());
+- setReturnValue(users);
+- }
+-}
+diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LocalUserBroker.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LocalUserBroker.java
+deleted file mode 100644
+index ac9a89b..0000000
+--- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LocalUserBroker.java
++++ /dev/null
+@@ -1,8 +0,0 @@
+-package org.ovirt.engine.core.bll.adbroker;
+-
+-public class LocalUserBroker extends LdapBrokerBase {
+- @Override
+- protected String getBrokerType() {
+- return "LU";
+- }
+-}
+--
+1.7.7.6
+
diff --git a/ovirt-engine-remove-mockito.patch b/ovirt-engine-remove-mockito.patch
new file mode 100644
index 0000000..05593bf
--- /dev/null
+++ b/ovirt-engine-remove-mockito.patch
@@ -0,0 +1,73 @@
+From 0c3e7661755e93642947d25fabe8010db021fba1 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 15 Mar 2012 10:33:54 +0100
+Subject: [PATCH] Remove mockito
+
+---
+ frontend/webadmin/modules/webadmin/pom.xml | 8 --------
+ pom.xml | 16 ----------------
+ 2 files changed, 24 deletions(-)
+
+diff --git a/frontend/webadmin/modules/webadmin/pom.xml b/frontend/webadmin/modules/webadmin/pom.xml
+index d40ace2..a282187 100644
+--- a/frontend/webadmin/modules/webadmin/pom.xml
++++ b/frontend/webadmin/modules/webadmin/pom.xml
+@@ -21,7 +21,6 @@
+ <guice.version>3.0</guice.version>
+ <gin.version>1.5.0</gin.version>
+ <junit.version>4.8.1</junit.version>
+- <mockito.version>1.8.5</mockito.version>
+
+ <maven-compiler-plugin.version>2.3.2</maven-compiler-plugin.version>
+ <!--Version 2.5 is important? currently version is inherited from parent -->
+@@ -139,13 +138,6 @@
+ <scope>test</scope>
+ </dependency>
+
+- <dependency>
+- <groupId>org.mockito</groupId>
+- <artifactId>mockito-core</artifactId>
+- <version>${mockito.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+ <!-- oVirt dependencies -->
+ <dependency>
+ <groupId>${engine.groupId}</groupId>
+diff --git a/pom.xml b/pom.xml
+index d254820..66c7832 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -57,8 +57,6 @@
+ <findbugs.version>2.3.3</findbugs.version>
+ <easymock.version>3.0</easymock.version>
+ <powermock.version>1.4.10</powermock.version>
+- <powermock-api-mockito.version>1.4.10</powermock-api-mockito.version>
+- <mockito.version>1.8.5</mockito.version>
+ <javassist.version>3.12.0.GA</javassist.version>
+ <javax.mail.version>1.4.4</javax.mail.version>
+ <activation.version>1.1</activation.version>
+@@ -262,20 +260,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-api-mockito</artifactId>
+- <version>${powermock-api-mockito.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.mockito</groupId>
+- <artifactId>mockito-all</artifactId>
+- <version>${mockito.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons-logging.version}</version>
+--
+1.7.9.3
+
diff --git a/ovirt-engine-remove-p6spy.patch b/ovirt-engine-remove-p6spy.patch
new file mode 100644
index 0000000..45a437f
--- /dev/null
+++ b/ovirt-engine-remove-p6spy.patch
@@ -0,0 +1,32 @@
+From cc3a08fdec58d3fca5b8430cea6773a6a0cef7dc Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 15 Mar 2012 10:39:58 +0100
+Subject: [PATCH 3/3] Remove p6spy
+
+---
+ backend/manager/modules/pom.xml | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/backend/manager/modules/pom.xml b/backend/manager/modules/pom.xml
+index f8c1930..82e703c 100644
+--- a/backend/manager/modules/pom.xml
++++ b/backend/manager/modules/pom.xml
+@@ -26,15 +26,6 @@
+ <module>restapi</module>
+ </modules>
+
+- <dependencies>
+- <dependency>
+- <groupId>p6spy</groupId>
+- <artifactId>p6spy</artifactId>
+- <version>1.3</version>
+- <scope>test</scope>
+- </dependency>
+- </dependencies>
+-
+ <build>
+ <plugins>
+ <plugin>
+--
+1.7.9.3
+
diff --git a/ovirt-engine-remove-powermock.patch b/ovirt-engine-remove-powermock.patch
new file mode 100644
index 0000000..98e81d8
--- /dev/null
+++ b/ovirt-engine-remove-powermock.patch
@@ -0,0 +1,138 @@
+From 8f2e66d615e9687c01168f1065fa43a199f453aa Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 15 Mar 2012 10:38:22 +0100
+Subject: [PATCH 2/2] Remove powermock
+
+---
+ backend/manager/modules/bll/pom.xml | 24 ------------------------
+ backend/manager/modules/restapi/jaxrs/pom.xml | 14 --------------
+ backend/manager/modules/restapi/types/pom.xml | 14 --------------
+ pom.xml | 13 -------------
+ 4 files changed, 65 deletions(-)
+
+diff --git a/backend/manager/modules/bll/pom.xml b/backend/manager/modules/bll/pom.xml
+index d877eb3..15160c6 100644
+--- a/backend/manager/modules/bll/pom.xml
++++ b/backend/manager/modules/bll/pom.xml
+@@ -108,30 +108,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-module-junit4</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-api-easymock</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+-<!--
+- <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-mockito-release-full</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- -->
+-
+- <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+diff --git a/backend/manager/modules/restapi/jaxrs/pom.xml b/backend/manager/modules/restapi/jaxrs/pom.xml
+index 048988f..9a794b2 100644
+--- a/backend/manager/modules/restapi/jaxrs/pom.xml
++++ b/backend/manager/modules/restapi/jaxrs/pom.xml
+@@ -59,20 +59,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-module-junit4</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-api-easymock</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+diff --git a/backend/manager/modules/restapi/types/pom.xml b/backend/manager/modules/restapi/types/pom.xml
+index 08ab55c..02e9f73 100644
+--- a/backend/manager/modules/restapi/types/pom.xml
++++ b/backend/manager/modules/restapi/types/pom.xml
+@@ -38,20 +38,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-module-junit4</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-api-easymock</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+diff --git a/pom.xml b/pom.xml
+index 66c7832..a83acea 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -56,7 +56,6 @@
+ <gwt.plugin.version>1.3.2.google</gwt.plugin.version>
+ <findbugs.version>2.3.3</findbugs.version>
+ <easymock.version>3.0</easymock.version>
+- <powermock.version>1.4.10</powermock.version>
+ <javassist.version>3.12.0.GA</javassist.version>
+ <javax.mail.version>1.4.4</javax.mail.version>
+ <activation.version>1.1</activation.version>
+@@ -253,13 +252,6 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.powermock</groupId>
+- <artifactId>powermock-module-junit4</artifactId>
+- <version>${powermock.version}</version>
+- <scope>test</scope>
+- </dependency>
+-
+- <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons-logging.version}</version>
+@@ -312,11 +304,6 @@
+ </snapshots>
+ </repository>
+
+- <repository>
+- <id>powermock-repo</id>
+- <url>http://powermock.googlecode.com/svn/repo/</url>
+- </repository>
+-
+ <repository>
+ <id>atlassian.public.repo</id>
+ <name>The Atlassian public repo</name>
+--
+1.7.9.3
+
diff --git a/ovirt-engine-remove-spring-from-restapi.patch b/ovirt-engine-remove-spring-from-restapi.patch
index d6b0fe9..ee80315 100644
--- a/ovirt-engine-remove-spring-from-restapi.patch
+++ b/ovirt-engine-remove-spring-from-restapi.patch
@@ -1,134 +1,25 @@
-From 232458460af2c0b8a7a4b7800531e72e274bbcd8 Mon Sep 17 00:00:00 2001
+From f67c6e7b82599eb14c9738bab8688ecd531bc11a Mon Sep 17 00:00:00 2001
From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Mon, 25 Jun 2012 17:50:55 +0200
-Subject: [PATCH 2/2] restapi: Remove spring framework
+Date: Sun, 18 Mar 2012 20:19:31 +0100
+Subject: [PATCH] Remove spring from restapi
-Remove the dependency on the spring framework.
-
-Change-Id: I3f27d340261e4b5c4b6b7f27a98c3d13c38569f0
-Signed-off-by: Juan Hernandez <juan.hernandez at redhat.com>
---
- Makefile | 12 ++
- .../modules/restapi/interface/common/jaxrs/pom.xml | 7 +
- .../modules/restapi/interface/definition/pom.xml | 6 -
- backend/manager/modules/restapi/jaxrs/pom.xml | 11 ++
- .../engine/api/restapi/BackendApplication.java | 164 +++++++++++++++++++
- backend/manager/modules/restapi/types/pom.xml | 6 -
- backend/manager/modules/restapi/webapp/pom.xml | 50 +-----
- .../src/main/webapp/WEB-INF/applicationContext.xml | 180 ---------------------
- .../restapi/webapp/src/main/webapp/WEB-INF/web.xml | 30 +---
- .../modules/com/sun/xml/bind/main/module.xml | 1 +
- .../org/apache/james/mime4j/main/module.xml | 40 +++++
- .../modules/org/codehaus/jettison/main/module.xml | 36 +++++
- .../modules/org/yaml/snakeyaml/main/module.xml | 38 +++++
- ear/pom.xml | 10 --
- packaging/fedora/engine-service.xml | 3 +
- packaging/fedora/spec/ovirt-engine.spec.in | 26 +--
- 16 files changed, 326 insertions(+), 294 deletions(-)
+ .../engine/api/restapi/BackendApplication.java | 162 +++++++++++++++++++
+ backend/manager/modules/restapi/pom.xml | 2 +-
+ backend/manager/modules/restapi/types/pom.xml | 6 -
+ backend/manager/modules/restapi/webapp/pom.xml | 52 +-----
+ .../src/main/webapp/WEB-INF/applicationContext.xml | 171 --------------------
+ .../restapi/webapp/src/main/webapp/WEB-INF/web.xml | 30 +---
+ 6 files changed, 171 insertions(+), 252 deletions(-)
create mode 100644 backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java
delete mode 100644 backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/applicationContext.xml
- create mode 100644 deployment/modules/org/apache/james/mime4j/main/module.xml
- create mode 100644 deployment/modules/org/codehaus/jettison/main/module.xml
- create mode 100644 deployment/modules/org/yaml/snakeyaml/main/module.xml
-diff --git a/Makefile b/Makefile
-index cc949fb..07d49e6 100644
---- a/Makefile
-+++ b/Makefile
-@@ -323,6 +323,7 @@ install_jboss_modules:
- # JAXB module:
- ln -s /usr/share/java/glassfish-jaxb/jaxb-impl.jar $(PREFIX)/usr/share/ovirt-engine/modules/com/sun/xml/bind/main/.
- ln -s /usr/share/java/glassfish-jaxb/jaxb-xjc.jar $(PREFIX)/usr/share/ovirt-engine/modules/com/sun/xml/bind/main/.
-+ ln -s /usr/share/java/istack-commons-runtime.jar $(PREFIX)/usr/share/ovirt-engine/modules/com/sun/xml/bind/main/.
-
- # JAX-RS API modules:
- ln -s /usr/share/java/resteasy/jaxrs-api.jar $(PREFIX)/usr/share/ovirt-engine/modules/javax/ws/rs/api/main/.
-@@ -349,6 +350,17 @@ install_jboss_modules:
- ln -s /usr/share/java/hibernate-validator.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/hibernate/validator/main/.
- ln -s /usr/share/java/jtype.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/hibernate/validator/main/.
-
-+ # Jettison:
-+ ln -s /usr/share/java/jettison.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/codehaus/jettison/main
-+
-+ # Apache MIME4J:
-+ ln -s /usr/share/java/apache-mime4j/core.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/apache/james/mime4j/main/.
-+ ln -s /usr/share/java/apache-mime4j/dom.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/apache/james/mime4j/main/.
-+ ln -s /usr/share/java/apache-mime4j/storage.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/apache/james/mime4j/main/.
-+
-+ # Snakeyaml:
-+ ln -s /usr/share/java/snakeyaml.jar $(PREFIX)/usr/share/ovirt-engine/modules/org/yaml/snakeyaml/main/.
-+
- install_service:
- @echo "*** Deploying service"
-
-diff --git a/backend/manager/modules/restapi/interface/common/jaxrs/pom.xml b/backend/manager/modules/restapi/interface/common/jaxrs/pom.xml
-index 2acd248..71cb167 100644
---- a/backend/manager/modules/restapi/interface/common/jaxrs/pom.xml
-+++ b/backend/manager/modules/restapi/interface/common/jaxrs/pom.xml
-@@ -21,6 +21,13 @@
- </dependency>
-
- <dependency>
-+ <groupId>org.jboss.resteasy</groupId>
-+ <artifactId>resteasy-jaxrs</artifactId>
-+ <version>${resteasy.version}</version>
-+ <scope>provided</scope>
-+ </dependency>
-+
-+ <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
-diff --git a/backend/manager/modules/restapi/interface/definition/pom.xml b/backend/manager/modules/restapi/interface/definition/pom.xml
-index 4ee46f8..5636c82 100644
---- a/backend/manager/modules/restapi/interface/definition/pom.xml
-+++ b/backend/manager/modules/restapi/interface/definition/pom.xml
-@@ -30,12 +30,6 @@
-
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
-- <artifactId>resteasy-yaml-provider</artifactId>
-- <version>${resteasy.version}</version>
-- </dependency>
--
-- <dependency>
-- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jackson-provider</artifactId>
- <version>${resteasy.version}</version>
- <scope>provided</scope>
-diff --git a/backend/manager/modules/restapi/jaxrs/pom.xml b/backend/manager/modules/restapi/jaxrs/pom.xml
-index f158b41..2fbbadc 100644
---- a/backend/manager/modules/restapi/jaxrs/pom.xml
-+++ b/backend/manager/modules/restapi/jaxrs/pom.xml
-@@ -52,11 +52,22 @@
- </dependency>
-
- <dependency>
-+ <groupId>org.yaml</groupId>
-+ <artifactId>snakeyaml</artifactId>
-+ <version>1.8</version>
-+ </dependency>
-+
-+ <dependency>
- <groupId>org.jboss.spec.javax.servlet</groupId>
- <artifactId>jboss-servlet-api_3.0_spec</artifactId>
- </dependency>
-
- <dependency>
-+ <groupId>log4j</groupId>
-+ <artifactId>log4j</artifactId>
-+ </dependency>
-+
-+ <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymockclassextension</artifactId>
- <version>${easymock.version}</version>
diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java
new file mode 100644
-index 0000000..6c19b67
+index 0000000..7e23d8f
--- /dev/null
+++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java
-@@ -0,0 +1,164 @@
+@@ -0,0 +1,162 @@
+/*
+* Copyright (c) 2010 Red Hat, Inc.
+*
@@ -171,7 +62,6 @@ index 0000000..6c19b67
+import org.ovirt.engine.api.restapi.resource.BackendCapabilitiesResource;
+import org.ovirt.engine.api.restapi.resource.BackendClustersResource;
+import org.ovirt.engine.api.restapi.resource.BackendDataCentersResource;
-+import org.ovirt.engine.api.restapi.resource.BackendDisksResource;
+import org.ovirt.engine.api.restapi.resource.BackendDomainsResource;
+import org.ovirt.engine.api.restapi.resource.BackendEventsResource;
+import org.ovirt.engine.api.restapi.resource.BackendGroupsResource;
@@ -246,7 +136,6 @@ index 0000000..6c19b67
+ addResource(new BackendTemplatesResource());
+ addResource(new BackendNetworksResource());
+ addResource(new BackendVmPoolsResource());
-+ addResource(new BackendDisksResource());
+ addResource(new BackendTagsResource());
+ addResource(new BackendRolesResource());
+ addResource(new BackendUsersResource());
@@ -293,8 +182,21 @@ index 0000000..6c19b67
+ return singletons;
+ }
+}
+diff --git a/backend/manager/modules/restapi/pom.xml b/backend/manager/modules/restapi/pom.xml
+index 096ca28..d87d82a 100644
+--- a/backend/manager/modules/restapi/pom.xml
++++ b/backend/manager/modules/restapi/pom.xml
+@@ -21,7 +21,7 @@
+
+ <properties>
+ <engine.api.version>3.0.0-0001</engine.api.version>
+- <resteasy.version>2.2.2.GA</resteasy.version>
++ <resteasy.version>2.3.2.Final</resteasy.version>
+ </properties>
+
+ <repositories>
diff --git a/backend/manager/modules/restapi/types/pom.xml b/backend/manager/modules/restapi/types/pom.xml
-index 64391c6..e905c25 100644
+index 02e9f73..1edf7b7 100644
--- a/backend/manager/modules/restapi/types/pom.xml
+++ b/backend/manager/modules/restapi/types/pom.xml
@@ -19,12 +19,6 @@
@@ -311,23 +213,13 @@ index 64391c6..e905c25 100644
<artifactId>interface-common-jaxrs</artifactId>
<version>${engine.api.version}</version>
diff --git a/backend/manager/modules/restapi/webapp/pom.xml b/backend/manager/modules/restapi/webapp/pom.xml
-index 30c656c..4186dad 100644
+index 9b0edef..efd08ec 100644
--- a/backend/manager/modules/restapi/webapp/pom.xml
+++ b/backend/manager/modules/restapi/webapp/pom.xml
-@@ -14,7 +14,7 @@
- <properties>
- <webapp.name>restapi</webapp.name>
- </properties>
--<dependencies>
-+ <dependencies>
- <dependency>
- <groupId>org.ovirt.engine.api</groupId>
- <artifactId>restapi-jaxrs</artifactId>
-@@ -27,52 +27,6 @@
- <version>${resteasy.version}</version>
+@@ -28,56 +28,6 @@
<scope>provided</scope>
</dependency>
--
+
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-spring</artifactId>
@@ -336,9 +228,14 @@ index 30c656c..4186dad 100644
-
- <dependency>
- <groupId>org.springframework</groupId>
+- <artifactId>spring</artifactId>
+- <version>${spring.version}</version>
+- </dependency>
+-
+- <dependency>
+- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
-- <scope>test</scope>
- </dependency>
-
- <dependency>
@@ -365,7 +262,7 @@ index 30c656c..4186dad 100644
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
-- <artifactId>spring-instrument</artifactId>
+- <artifactId>spring-agent</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
@@ -376,7 +273,7 @@ index 30c656c..4186dad 100644
</dependencies>
<build>
<plugins>
-@@ -86,7 +40,7 @@
+@@ -91,7 +41,7 @@
<addClasspath>false</addClasspath>
</manifest>
<manifestEntries>
@@ -387,10 +284,10 @@ index 30c656c..4186dad 100644
</configuration>
diff --git a/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/applicationContext.xml b/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/applicationContext.xml
deleted file mode 100644
-index fd50e7f..0000000
+index c5892ee..0000000
--- a/backend/manager/modules/restapi/webapp/src/main/webapp/WEB-INF/applicationContext.xml
+++ /dev/null
-@@ -1,180 +0,0 @@
+@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<beans
- default-autowire="byName"
@@ -446,10 +343,6 @@ index fd50e7f..0000000
- lazy-init="true"
- class="org.ovirt.engine.api.restapi.resource.BackendVmPoolsResource"/>
-
-- <bean id="backendDisksResource"
-- lazy-init="true"
-- class="org.ovirt.engine.api.restapi.resource.BackendDisksResource"/>
--
- <bean id="backendTagsResource"
- lazy-init="true"
- class="org.ovirt.engine.api.restapi.resource.BackendTagsResource"/>
@@ -517,11 +410,6 @@ index fd50e7f..0000000
- </bean>
-
- <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
-- <!-- This is needed in Spring 3, otherwise it will try to
-- inject a prefefined "environment" object whose type is
-- not compatible with the JndiTemplate environment
-- property: -->
-- <property name="environment"><null/></property>
- <!--property name="environment">
- <props>
- <prop key="java.naming.factory.initial">
@@ -615,269 +503,6 @@ index 395e6ad..3f77945 100644
</security-constraint> -->
+
</web-app>
-diff --git a/deployment/modules/com/sun/xml/bind/main/module.xml b/deployment/modules/com/sun/xml/bind/main/module.xml
-index 1463c9f..717dcb2 100644
---- a/deployment/modules/com/sun/xml/bind/main/module.xml
-+++ b/deployment/modules/com/sun/xml/bind/main/module.xml
-@@ -30,6 +30,7 @@
- <resources>
- <resource-root path="jaxb-impl.jar"/>
- <resource-root path="jaxb-xjc.jar"/>
-+ <resource-root path="istack-commons-runtime.jar"/>
- </resources>
-
- <dependencies>
-diff --git a/deployment/modules/org/apache/james/mime4j/main/module.xml b/deployment/modules/org/apache/james/mime4j/main/module.xml
-new file mode 100644
-index 0000000..29d71dd
---- /dev/null
-+++ b/deployment/modules/org/apache/james/mime4j/main/module.xml
-@@ -0,0 +1,40 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+
-+<!--
-+ ~ JBoss, Home of Professional Open Source.
-+ ~ Copyright 2011, Red Hat, Inc., and individual contributors
-+ ~ as indicated by the @author tags. See the copyright.txt file in the
-+ ~ distribution for a full listing of individual contributors.
-+ ~
-+ ~ This is free software; you can redistribute it and/or modify it
-+ ~ under the terms of the GNU Lesser General Public License as
-+ ~ published by the Free Software Foundation; either version 2.1 of
-+ ~ the License, or (at your option) any later version.
-+ ~
-+ ~ This software 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 software; if not, write to the Free
-+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-+ -->
-+
-+<module xmlns="urn:jboss:module:1.1" name="org.apache.james.mime4j">
-+ <properties>
-+ <property name="jboss.api" value="private"/>
-+ </properties>
-+
-+ <resources>
-+ <resource-root path="core.jar"/>
-+ <resource-root path="dom.jar"/>
-+ <resource-root path="storage.jar"/>
-+ </resources>
-+
-+ <dependencies>
-+ <module name="javax.api"/>
-+ <module name="org.apache.commons.logging"/>
-+ </dependencies>
-+</module>
-diff --git a/deployment/modules/org/codehaus/jettison/main/module.xml b/deployment/modules/org/codehaus/jettison/main/module.xml
-new file mode 100644
-index 0000000..60364aa
---- /dev/null
-+++ b/deployment/modules/org/codehaus/jettison/main/module.xml
-@@ -0,0 +1,36 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+
-+<!--
-+ ~ JBoss, Home of Professional Open Source.
-+ ~ Copyright 2011, Red Hat, Inc., and individual contributors
-+ ~ as indicated by the @author tags. See the copyright.txt file in the
-+ ~ distribution for a full listing of individual contributors.
-+ ~
-+ ~ This is free software; you can redistribute it and/or modify it
-+ ~ under the terms of the GNU Lesser General Public License as
-+ ~ published by the Free Software Foundation; either version 2.1 of
-+ ~ the License, or (at your option) any later version.
-+ ~
-+ ~ This software 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 software; if not, write to the Free
-+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-+ -->
-+<module xmlns="urn:jboss:module:1.1" name="org.codehaus.jettison">
-+ <properties>
-+ <property name="jboss.api" value="private"/>
-+ </properties>
-+
-+ <resources>
-+ <resource-root path="jettison.jar"/>
-+ </resources>
-+
-+ <dependencies>
-+ <module name="javax.api"/>
-+ </dependencies>
-+</module>
-diff --git a/deployment/modules/org/yaml/snakeyaml/main/module.xml b/deployment/modules/org/yaml/snakeyaml/main/module.xml
-new file mode 100644
-index 0000000..9cc8171
---- /dev/null
-+++ b/deployment/modules/org/yaml/snakeyaml/main/module.xml
-@@ -0,0 +1,38 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+
-+<!--
-+ ~ JBoss, Home of Professional Open Source.
-+ ~ Copyright 2011, Red Hat, Inc., and individual contributors
-+ ~ as indicated by the @author tags. See the copyright.txt file in the
-+ ~ distribution for a full listing of individual contributors.
-+ ~
-+ ~ This is free software; you can redistribute it and/or modify it
-+ ~ under the terms of the GNU Lesser General Public License as
-+ ~ published by the Free Software Foundation; either version 2.1 of
-+ ~ the License, or (at your option) any later version.
-+ ~
-+ ~ This software 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 software; if not, write to the Free
-+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-+ -->
-+
-+<module xmlns="urn:jboss:module:1.1" name="org.yaml.snakeyaml">
-+
-+ <properties>
-+ <property name="jboss.api" value="private"/>
-+ </properties>
-+
-+ <resources>
-+ <resource-root path="snakeyaml.jar"/>
-+ </resources>
-+
-+ <dependencies>
-+ <module name="javax.api"/>
-+ </dependencies>
-+</module>
-diff --git a/ear/pom.xml b/ear/pom.xml
-index 523d33c..0cb0837 100644
---- a/ear/pom.xml
-+++ b/ear/pom.xml
-@@ -130,16 +130,6 @@
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
-- <dependency>
-- <groupId>org.springframework</groupId>
-- <artifactId>spring-instrument</artifactId>
-- <version>${spring.version}</version>
-- </dependency>
-- <dependency>
-- <groupId>org.springframework</groupId>
-- <artifactId>spring-aop</artifactId>
-- <version>${spring.version}</version>
-- </dependency>
-
- <!-- Set the scope of depedencies provided by JBoss so that
- they are not included in the resulting archive: -->
-diff --git a/packaging/fedora/engine-service.xml b/packaging/fedora/engine-service.xml
-index 779e48b..3803fd2 100644
---- a/packaging/fedora/engine-service.xml
-+++ b/packaging/fedora/engine-service.xml
-@@ -7,6 +7,7 @@
- <extension module="org.jboss.as.deployment-scanner"/>
- <extension module="org.jboss.as.ee"/>
- <extension module="org.jboss.as.ejb3"/>
-+ <extension module="org.jboss.as.jaxrs"/>
- <extension module="org.jboss.as.jpa"/>
- <extension module="org.jboss.as.logging"/>
- <extension module="org.jboss.as.naming"/>
-@@ -173,6 +174,8 @@
- </thread-pools>
- </subsystem>
-
-+ <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
-+
- <subsystem xmlns="urn:jboss:domain:jca:1.1">
- <archive-validation enabled="false" fail-on-error="false" fail-on-warn="false"/>
- <bean-validation enabled="true"/>
-diff --git a/packaging/fedora/spec/ovirt-engine.spec.in b/packaging/fedora/spec/ovirt-engine.spec.in
-index b02e9ad..6d6479f 100644
---- a/packaging/fedora/spec/ovirt-engine.spec.in
-+++ b/packaging/fedora/spec/ovirt-engine.spec.in
-@@ -152,8 +152,6 @@ virtualization infrastructure for Servers and Desktops.
- Summary: Engine core of oVirt Engine
- Group: Virtualization/Management
- Requires: %{name} = %{version}-%{release}
--Requires: antlr-tool
--Requires: aopalliance
- Requires: apache-commons-beanutils
- Requires: apache-commons-codec
- Requires: apache-commons-collections
-@@ -386,10 +384,13 @@ while read lib_path
- do
- rm -rf %{buildroot}%{engine_ear}/lib/${lib_path}*.jar
- done <<'.'
-+antlr
- activation
-+aopalliance
- c3p0
- ejb3-persistence
- jaxb-api
-+jaxb-impl
- jboss-interceptors-api_1.1_spec
- stax-api
- xml-apis
-@@ -401,8 +402,6 @@ do
- rm -rf %{buildroot}%{engine_ear}/lib/${lib_path}*.jar
- ln -s `build-classpath ${jar_name}` %{buildroot}%{engine_ear}/lib/${lib_path}.jar
- done <<'.'
--antlr antlr
--aopalliance aopalliance
- commons-beanutils commons-beanutils
- commons-codec commons-codec
- commons-collections commons-collections
-@@ -417,7 +416,6 @@ ws-commons-util ws-commons-util
- xmlrpc3-client xmlrpc-client
- xmlrpc3-common xmlrpc-common
- geronimo-validation validation-api
--glassfish-jaxb/jaxb-impl jaxb-impl
- hibernate-validator hibernate-validator
- hibernate/hibernate-commons-annotations hibernate-commons-annotations
- jsch jsch
-@@ -442,12 +440,8 @@ while read lib_path
- do
- rm -rf %{buildroot}%{restapi_war}/WEB-INF/lib/${lib_path}*.jar
- done <<'.'
--activation
--jaxb-api
--jboss-logging
--jboss-vfs
--sjsxp
--stax-api
-+commons-codec
-+log4j
- .
-
- # Then for the system jar files (using build-classpath):
-@@ -456,17 +450,7 @@ do
- rm -rf %{buildroot}%{restapi_war}/WEB-INF/lib/${lib_path}*.jar
- ln -s `build-classpath ${jar_name}` %{buildroot}%{restapi_war}/WEB-INF/lib/${lib_path}.jar
- done <<'.'
--aopalliance aopalliance
--commons-codec commons-codec
--commons-httpclient commons-httpclient
--glassfish-jaxb/jaxb-impl jaxb-impl
--jettison jettison
--resteasy/jaxrs-api jaxrs-api
--resteasy/resteasy-jaxb-provider resteasy-jaxb-provider
--resteasy/resteasy-jettison-provider resteasy-jettison-provider
--resteasy/resteasy-yaml-provider resteasy-yaml-provider
- snakeyaml snakeyaml
--istack-commons-runtime istack-commons-runtime
- .
-
- %preun
--
-1.7.11.2
+1.7.9.3
diff --git a/ovirt-engine-replace-guidtype-with-empty-class.patch b/ovirt-engine-replace-guidtype-with-empty-class.patch
new file mode 100644
index 0000000..46e7929
--- /dev/null
+++ b/ovirt-engine-replace-guidtype-with-empty-class.patch
@@ -0,0 +1,110 @@
+From b108ef0f89bf7b6befd708f2f4efcddba8e0d2dc Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 9 Feb 2012 16:50:51 +0100
+Subject: [PATCH 9/9] packaging: Replace GuidType with empty class
+
+To avoid bringing in the Hibernate dependencies.
+
+Change-Id: I37ceadd1f9544a827db4dc4441874c581923c95c
+---
+ .../common/businessentities/mapping/GuidType.java | 87 +-------------------
+ 1 files changed, 1 insertions(+), 86 deletions(-)
+
+diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/mapping/GuidType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/mapping/GuidType.java
+index aead3b5..d6a98c3 100644
+--- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/mapping/GuidType.java
++++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/mapping/GuidType.java
+@@ -1,89 +1,4 @@
+ package org.ovirt.engine.core.common.businessentities.mapping;
+
+-import java.io.Serializable;
+-import java.sql.PreparedStatement;
+-import java.sql.ResultSet;
+-import java.sql.SQLException;
+-import java.sql.Types;
+-
+-import org.hibernate.HibernateException;
+-import org.hibernate.usertype.UserType;
+-
+-import org.ovirt.engine.core.compat.Guid;
+-
+-public class GuidType implements UserType {
+-
+- @Override
+- public int[] sqlTypes() {
+- return new int[] { Types.OTHER };
+- }
+-
+- @Override
+- public Class<Guid> returnedClass() {
+- return Guid.class;
+- }
+-
+- @Override
+- public boolean equals(Object x, Object y) throws HibernateException {
+- return x != null ? x.equals(y) : y == null ? true : false;
+- }
+-
+- @Override
+- public int hashCode(Object x) throws HibernateException {
+- return x.hashCode();
+- }
+-
+- @Override
+- public Object nullSafeGet(ResultSet rs, String[] names, Object owner) {
+- Guid result = new Guid();
+-
+- try {
+- String value = rs.getString(names[0]);
+-
+- result = value != null ? new Guid(value) : null; // == null ? "" : value);
+- } catch (SQLException e) {
+- // TODO Auto-generated catch block
+- e.printStackTrace();
+- }
+-
+- return result;
+- }
+-
+- @Override
+- public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
+- if (value != null) {
+- if (value instanceof Guid) {
+- st.setObject(index, ((Guid) value).toString(), Types.OTHER);
+- } else {
+- st.setObject(index, new Guid(value.toString()), Types.OTHER);
+- }
+- } else {
+- st.setNull(index, Types.OTHER);
+- }
+- }
+-
+- @Override
+- public Object deepCopy(Object value) throws HibernateException {
+- return value != null ? new Guid(value.toString()) : null;
+- }
+-
+- @Override
+- public boolean isMutable() {
+- return false;
+- }
+-
+- @Override
+- public Serializable disassemble(Object value) throws HibernateException {
+- return value.toString();
+- }
+-
+- @Override
+- public Object assemble(Serializable cached, Object owner) throws HibernateException {
+- return new Guid(cached.toString());
+- }
+-
+- @Override
+- public Object replace(Object original, Object target, Object owner) throws HibernateException {
+- return original;
+- }
++public class GuidType {
+ }
+--
+1.7.7.6
+
diff --git a/ovirt-engine-replace-index-page.patch b/ovirt-engine-replace-index-page.patch
index ded5a9c..310ab28 100644
--- a/ovirt-engine-replace-index-page.patch
+++ b/ovirt-engine-replace-index-page.patch
@@ -1,34 +1,132 @@
-From 253713c286c1b2c41eea88d2803765ea5c98b217 Mon Sep 17 00:00:00 2001
-From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Wed, 1 Aug 2012 13:21:38 +0200
-Subject: [PATCH] core: Replace the index page
-
----
- backend/manager/modules/root/src/main/webapp/index.html | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/backend/manager/modules/root/src/main/webapp/index.html b/backend/manager/modules/root/src/main/webapp/index.html
-index 524d066..e41f0e2 100644
---- a/backend/manager/modules/root/src/main/webapp/index.html
-+++ b/backend/manager/modules/root/src/main/webapp/index.html
-@@ -51,12 +51,13 @@
-
- <div id='dynamicLinksSection' style="display: none;">
- <div>
-+ <span style="color:blue;font-weight:bold;">Note: You are using a stripped down version, full version with GUI included can be downloaded in <a href="www.ovirt.org">oVirt Project Site</a></span>
- <h2>
-- <span class="fakeH2">Portals</span>
-+ <span class="fakeH2">API</span>
- </h2>
-- <div><script type="text/JavaScript">getHttpsHref("UserPortal","User Portal");</script></div>
-- <div><script type="text/JavaScript">getHttpsHref("webadmin","Administrator Portal");</script></div>
-- <div><script type="text/JavaScript">getHttpHref("OvirtEngineWeb/RedirectServlet?Page=Reports","Reports Portal");</script></div>
-+ <div><script type="text/JavaScript">getHttpsHref("api","REST API");</script></div>
-+ <div><script type="text/JavaScript">getHttpHref("api","REST API (no SSL)");</script></div>
+diff --git a/packaging/fedora/setup/resources/jboss/ROOT.war/engine_index.html b/packaging/fedora/setup/resources/jboss/ROOT.war/engine_index.html
+index dc12dc2..03fcf9f 100644
+--- a/packaging/fedora/setup/resources/jboss/ROOT.war/engine_index.html
++++ b/packaging/fedora/setup/resources/jboss/ROOT.war/engine_index.html
+@@ -1,64 +1,63 @@
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+-<head>
+- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+- <title>Ovirt-Engine</title>
+- <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" charset="utf-8" />
+- <script src="engineVersion.js" type="text/javascript"></script>
+- <script src="web-conf.js" type="text/javascript"></script>
+- <script type="text/javascript">
+- function getHttpHref(addedUrl, description)
+- {
+- document.write("<a href=\""+http_url+"/"+addedUrl+"\"/>"+description+"</a>");
+- };
+- function getHttpsHref(addedUrl, description)
+- {
+- document.write("<a href=\""+https_url+"/"+addedUrl+"\"/>"+description+"</a>");
+- };
+-
+- function pageLoaded()
+- {
+- document.getElementById("warningMessage").style.display = "none";
+- document.getElementById("dynamicLinksSection").style.display = "block";
+- }
+- </script>
+-</head>
+-<body onload="pageLoaded()">
+- <div>
+- <div class="left">
+-
+- </div>
+-
+- <div class="center">
+-
+- </div>
+- </div>
+- <div class="main">
+- <div class="welcome">Welcome to Open Virtualization Manager.</div>
+- <div class="welcome">
+- <script type="text/JavaScript">
+- <!--
+- document.write("Version " + myVersion)
+- //-->
+- </script>
+- </div>
+-
+- <div class="warningMessage" id="warningMessage">
+- <b>* Your current browser settings prevent displaying this page correctly!</b>
+- Please allow Javascript to run on your browser (for example, by adding this site to 'Trusted Sites') and then refresh the page.
+- </div>
+-
+- <div id='dynamicLinksSection' style="display: none;">
+- <div>
+- <h2>
+- <span class="fakeH2">Portals</span>
+- </h2>
+- <div><script type="text/JavaScript">getHttpHref("webadmin","Administrator Portal (no SSL)");</script></div>
+- <div><script type="text/JavaScript">getHttpHref("engineanagerweb/RedirectServlet?Page=Reports","Reports Portal");</script></div>
+- <div><script type="text/JavaScript">getHttpsHref("webadmin","Administrator Portal");</script></div>
+- <div><script type="text/JavaScript">getHttpsHref("UserPortal","User Portal");</script></div>
+- </div>
+- </div>
+-</body>
+-</html>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
++ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
++<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
++<head>
++ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
++ <title>Ovirt-Engine</title>
++ <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" charset="utf-8" />
++ <script src="engineVersion.js" type="text/javascript"></script>
++ <script src="web-conf.js" type="text/javascript"></script>
++ <script type="text/javascript">
++ function getHttpHref(addedUrl, description)
++ {
++ document.write("<a href=\""+http_url+"/"+addedUrl+"\"/>"+description+"</a>");
++ };
++ function getHttpsHref(addedUrl, description)
++ {
++ document.write("<a href=\""+https_url+"/"+addedUrl+"\"/>"+description+"</a>");
++ };
++
++ function pageLoaded()
++ {
++ document.getElementById("warningMessage").style.display = "none";
++ document.getElementById("dynamicLinksSection").style.display = "block";
++ }
++ </script>
++</head>
++<body onload="pageLoaded()">
++ <div>
++ <div class="left">
++
++ </div>
++
++ <div class="center">
++
++ </div>
++ </div>
++ <div class="main">
++ <div class="welcome">Welcome to Open Virtualization Manager.</div>
++ <div class="welcome">
++ <script type="text/JavaScript">
++ <!--
++ document.write("Version " + myVersion)
++ //-->
++ </script>
++ </div>
++
++ <div class="warningMessage" id="warningMessage">
++ <b>* Your current browser settings prevent displaying this page correctly!</b>
++ Please allow Javascript to run on your browser (for example, by adding this site to 'Trusted Sites') and then refresh the page.
++ </div>
+
- </div>
- </div>
- </body>
---
-1.7.11.2
-
++ <div id='dynamicLinksSection' style="display: none;">
++ <div>
++ <span style="color:blue;font-weight:bold;">Note: You are using a stripped down version, full version with GUI included can be downloaded in <a href="www.ovirt.org">oVirt Project Site</a></span>
++ <h2>
++ <span class="fakeH2">API</span>
++ </h2>
++ <div><script type="text/JavaScript">getHttpsHref("api","REST API");</script></div>
++ <div><script type="text/JavaScript">getHttpHref("api","REST API (no SSL)");</script></div>
++ </div>
++ </div>
++</body>
++</html>
diff --git a/ovirt-engine-replace-pubkey2ssh-with-ssh-keygen.patch b/ovirt-engine-replace-pubkey2ssh-with-ssh-keygen.patch
new file mode 100644
index 0000000..1dfc94a
--- /dev/null
+++ b/ovirt-engine-replace-pubkey2ssh-with-ssh-keygen.patch
@@ -0,0 +1,766 @@
+diff --git a/backend/manager/3rdparty/pub2ssh/lgpl-2.1.txt b/backend/manager/3rdparty/pub2ssh/lgpl-2.1.txt
+deleted file mode 100644
+index 4362b49..0000000
+--- a/backend/manager/3rdparty/pub2ssh/lgpl-2.1.txt
++++ /dev/null
+@@ -1,502 +0,0 @@
+- GNU LESSER GENERAL PUBLIC LICENSE
+- Version 2.1, February 1999
+-
+- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+- Everyone is permitted to copy and distribute verbatim copies
+- of this license document, but changing it is not allowed.
+-
+-[This is the first released version of the Lesser GPL. It also counts
+- as the successor of the GNU Library Public License, version 2, hence
+- the version number 2.1.]
+-
+- Preamble
+-
+- The licenses for most software are designed to take away your
+-freedom to share and change it. By contrast, the GNU General Public
+-Licenses are intended to guarantee your freedom to share and change
+-free software--to make sure the software is free for all its users.
+-
+- This license, the Lesser General Public License, applies to some
+-specially designated software packages--typically libraries--of the
+-Free Software Foundation and other authors who decide to use it. You
+-can use it too, but we suggest you first think carefully about whether
+-this license or the ordinary General Public License is the better
+-strategy to use in any particular case, based on the explanations below.
+-
+- When we speak of free software, we are referring to freedom of use,
+-not price. Our General Public Licenses are designed to make sure that
+-you have the freedom to distribute copies of free software (and charge
+-for this service if you wish); that you receive source code or can get
+-it if you want it; that you can change the software and use pieces of
+-it in new free programs; and that you are informed that you can do
+-these things.
+-
+- To protect your rights, we need to make restrictions that forbid
+-distributors to deny you these rights or to ask you to surrender these
+-rights. These restrictions translate to certain responsibilities for
+-you if you distribute copies of the library or if you modify it.
+-
+- For example, if you distribute copies of the library, whether gratis
+-or for a fee, you must give the recipients all the rights that we gave
+-you. You must make sure that they, too, receive or can get the source
+-code. If you link other code with the library, you must provide
+-complete object files to the recipients, so that they can relink them
+-with the library after making changes to the library and recompiling
+-it. And you must show them these terms so they know their rights.
+-
+- We protect your rights with a two-step method: (1) we copyright the
+-library, and (2) we offer you this license, which gives you legal
+-permission to copy, distribute and/or modify the library.
+-
+- To protect each distributor, we want to make it very clear that
+-there is no warranty for the free library. Also, if the library is
+-modified by someone else and passed on, the recipients should know
+-that what they have is not the original version, so that the original
+-author's reputation will not be affected by problems that might be
+-introduced by others.
+-
+- Finally, software patents pose a constant threat to the existence of
+-any free program. We wish to make sure that a company cannot
+-effectively restrict the users of a free program by obtaining a
+-restrictive license from a patent holder. Therefore, we insist that
+-any patent license obtained for a version of the library must be
+-consistent with the full freedom of use specified in this license.
+-
+- Most GNU software, including some libraries, is covered by the
+-ordinary GNU General Public License. This license, the GNU Lesser
+-General Public License, applies to certain designated libraries, and
+-is quite different from the ordinary General Public License. We use
+-this license for certain libraries in order to permit linking those
+-libraries into non-free programs.
+-
+- When a program is linked with a library, whether statically or using
+-a shared library, the combination of the two is legally speaking a
+-combined work, a derivative of the original library. The ordinary
+-General Public License therefore permits such linking only if the
+-entire combination fits its criteria of freedom. The Lesser General
+-Public License permits more lax criteria for linking other code with
+-the library.
+-
+- We call this license the "Lesser" General Public License because it
+-does Less to protect the user's freedom than the ordinary General
+-Public License. It also provides other free software developers Less
+-of an advantage over competing non-free programs. These disadvantages
+-are the reason we use the ordinary General Public License for many
+-libraries. However, the Lesser license provides advantages in certain
+-special circumstances.
+-
+- For example, on rare occasions, there may be a special need to
+-encourage the widest possible use of a certain library, so that it becomes
+-a de-facto standard. To achieve this, non-free programs must be
+-allowed to use the library. A more frequent case is that a free
+-library does the same job as widely used non-free libraries. In this
+-case, there is little to gain by limiting the free library to free
+-software only, so we use the Lesser General Public License.
+-
+- In other cases, permission to use a particular library in non-free
+-programs enables a greater number of people to use a large body of
+-free software. For example, permission to use the GNU C Library in
+-non-free programs enables many more people to use the whole GNU
+-operating system, as well as its variant, the GNU/Linux operating
+-system.
+-
+- Although the Lesser General Public License is Less protective of the
+-users' freedom, it does ensure that the user of a program that is
+-linked with the Library has the freedom and the wherewithal to run
+-that program using a modified version of the Library.
+-
+- The precise terms and conditions for copying, distribution and
+-modification follow. Pay close attention to the difference between a
+-"work based on the library" and a "work that uses the library". The
+-former contains code derived from the library, whereas the latter must
+-be combined with the library in order to run.
+-
+- GNU LESSER GENERAL PUBLIC LICENSE
+- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+-
+- 0. This License Agreement applies to any software library or other
+-program which contains a notice placed by the copyright holder or
+-other authorized party saying it may be distributed under the terms of
+-this Lesser General Public License (also called "this License").
+-Each licensee is addressed as "you".
+-
+- A "library" means a collection of software functions and/or data
+-prepared so as to be conveniently linked with application programs
+-(which use some of those functions and data) to form executables.
+-
+- The "Library", below, refers to any such software library or work
+-which has been distributed under these terms. A "work based on the
+-Library" means either the Library or any derivative work under
+-copyright law: that is to say, a work containing the Library or a
+-portion of it, either verbatim or with modifications and/or translated
+-straightforwardly into another language. (Hereinafter, translation is
+-included without limitation in the term "modification".)
+-
+- "Source code" for a work means the preferred form of the work for
+-making modifications to it. For a library, complete source code means
+-all the source code for all modules it contains, plus any associated
+-interface definition files, plus the scripts used to control compilation
+-and installation of the library.
+-
+- Activities other than copying, distribution and modification are not
+-covered by this License; they are outside its scope. The act of
+-running a program using the Library is not restricted, and output from
+-such a program is covered only if its contents constitute a work based
+-on the Library (independent of the use of the Library in a tool for
+-writing it). Whether that is true depends on what the Library does
+-and what the program that uses the Library does.
+-
+- 1. You may copy and distribute verbatim copies of the Library's
+-complete source code as you receive it, in any medium, provided that
+-you conspicuously and appropriately publish on each copy an
+-appropriate copyright notice and disclaimer of warranty; keep intact
+-all the notices that refer to this License and to the absence of any
+-warranty; and distribute a copy of this License along with the
+-Library.
+-
+- You may charge a fee for the physical act of transferring a copy,
+-and you may at your option offer warranty protection in exchange for a
+-fee.
+-
+- 2. You may modify your copy or copies of the Library or any portion
+-of it, thus forming a work based on the Library, and copy and
+-distribute such modifications or work under the terms of Section 1
+-above, provided that you also meet all of these conditions:
+-
+- a) The modified work must itself be a software library.
+-
+- b) You must cause the files modified to carry prominent notices
+- stating that you changed the files and the date of any change.
+-
+- c) You must cause the whole of the work to be licensed at no
+- charge to all third parties under the terms of this License.
+-
+- d) If a facility in the modified Library refers to a function or a
+- table of data to be supplied by an application program that uses
+- the facility, other than as an argument passed when the facility
+- is invoked, then you must make a good faith effort to ensure that,
+- in the event an application does not supply such function or
+- table, the facility still operates, and performs whatever part of
+- its purpose remains meaningful.
+-
+- (For example, a function in a library to compute square roots has
+- a purpose that is entirely well-defined independent of the
+- application. Therefore, Subsection 2d requires that any
+- application-supplied function or table used by this function must
+- be optional: if the application does not supply it, the square
+- root function must still compute square roots.)
+-
+-These requirements apply to the modified work as a whole. If
+-identifiable sections of that work are not derived from the Library,
+-and can be reasonably considered independent and separate works in
+-themselves, then this License, and its terms, do not apply to those
+-sections when you distribute them as separate works. But when you
+-distribute the same sections as part of a whole which is a work based
+-on the Library, the distribution of the whole must be on the terms of
+-this License, whose permissions for other licensees extend to the
+-entire whole, and thus to each and every part regardless of who wrote
+-it.
+-
+-Thus, it is not the intent of this section to claim rights or contest
+-your rights to work written entirely by you; rather, the intent is to
+-exercise the right to control the distribution of derivative or
+-collective works based on the Library.
+-
+-In addition, mere aggregation of another work not based on the Library
+-with the Library (or with a work based on the Library) on a volume of
+-a storage or distribution medium does not bring the other work under
+-the scope of this License.
+-
+- 3. You may opt to apply the terms of the ordinary GNU General Public
+-License instead of this License to a given copy of the Library. To do
+-this, you must alter all the notices that refer to this License, so
+-that they refer to the ordinary GNU General Public License, version 2,
+-instead of to this License. (If a newer version than version 2 of the
+-ordinary GNU General Public License has appeared, then you can specify
+-that version instead if you wish.) Do not make any other change in
+-these notices.
+-
+- Once this change is made in a given copy, it is irreversible for
+-that copy, so the ordinary GNU General Public License applies to all
+-subsequent copies and derivative works made from that copy.
+-
+- This option is useful when you wish to copy part of the code of
+-the Library into a program that is not a library.
+-
+- 4. You may copy and distribute the Library (or a portion or
+-derivative of it, under Section 2) in object code or executable form
+-under the terms of Sections 1 and 2 above provided that you accompany
+-it with the complete corresponding machine-readable source code, which
+-must be distributed under the terms of Sections 1 and 2 above on a
+-medium customarily used for software interchange.
+-
+- If distribution of object code is made by offering access to copy
+-from a designated place, then offering equivalent access to copy the
+-source code from the same place satisfies the requirement to
+-distribute the source code, even though third parties are not
+-compelled to copy the source along with the object code.
+-
+- 5. A program that contains no derivative of any portion of the
+-Library, but is designed to work with the Library by being compiled or
+-linked with it, is called a "work that uses the Library". Such a
+-work, in isolation, is not a derivative work of the Library, and
+-therefore falls outside the scope of this License.
+-
+- However, linking a "work that uses the Library" with the Library
+-creates an executable that is a derivative of the Library (because it
+-contains portions of the Library), rather than a "work that uses the
+-library". The executable is therefore covered by this License.
+-Section 6 states terms for distribution of such executables.
+-
+- When a "work that uses the Library" uses material from a header file
+-that is part of the Library, the object code for the work may be a
+-derivative work of the Library even though the source code is not.
+-Whether this is true is especially significant if the work can be
+-linked without the Library, or if the work is itself a library. The
+-threshold for this to be true is not precisely defined by law.
+-
+- If such an object file uses only numerical parameters, data
+-structure layouts and accessors, and small macros and small inline
+-functions (ten lines or less in length), then the use of the object
+-file is unrestricted, regardless of whether it is legally a derivative
+-work. (Executables containing this object code plus portions of the
+-Library will still fall under Section 6.)
+-
+- Otherwise, if the work is a derivative of the Library, you may
+-distribute the object code for the work under the terms of Section 6.
+-Any executables containing that work also fall under Section 6,
+-whether or not they are linked directly with the Library itself.
+-
+- 6. As an exception to the Sections above, you may also combine or
+-link a "work that uses the Library" with the Library to produce a
+-work containing portions of the Library, and distribute that work
+-under terms of your choice, provided that the terms permit
+-modification of the work for the customer's own use and reverse
+-engineering for debugging such modifications.
+-
+- You must give prominent notice with each copy of the work that the
+-Library is used in it and that the Library and its use are covered by
+-this License. You must supply a copy of this License. If the work
+-during execution displays copyright notices, you must include the
+-copyright notice for the Library among them, as well as a reference
+-directing the user to the copy of this License. Also, you must do one
+-of these things:
+-
+- a) Accompany the work with the complete corresponding
+- machine-readable source code for the Library including whatever
+- changes were used in the work (which must be distributed under
+- Sections 1 and 2 above); and, if the work is an executable linked
+- with the Library, with the complete machine-readable "work that
+- uses the Library", as object code and/or source code, so that the
+- user can modify the Library and then relink to produce a modified
+- executable containing the modified Library. (It is understood
+- that the user who changes the contents of definitions files in the
+- Library will not necessarily be able to recompile the application
+- to use the modified definitions.)
+-
+- b) Use a suitable shared library mechanism for linking with the
+- Library. A suitable mechanism is one that (1) uses at run time a
+- copy of the library already present on the user's computer system,
+- rather than copying library functions into the executable, and (2)
+- will operate properly with a modified version of the library, if
+- the user installs one, as long as the modified version is
+- interface-compatible with the version that the work was made with.
+-
+- c) Accompany the work with a written offer, valid for at
+- least three years, to give the same user the materials
+- specified in Subsection 6a, above, for a charge no more
+- than the cost of performing this distribution.
+-
+- d) If distribution of the work is made by offering access to copy
+- from a designated place, offer equivalent access to copy the above
+- specified materials from the same place.
+-
+- e) Verify that the user has already received a copy of these
+- materials or that you have already sent this user a copy.
+-
+- For an executable, the required form of the "work that uses the
+-Library" must include any data and utility programs needed for
+-reproducing the executable from it. However, as a special exception,
+-the materials to be distributed need not include anything that is
+-normally distributed (in either source or binary form) with the major
+-components (compiler, kernel, and so on) of the operating system on
+-which the executable runs, unless that component itself accompanies
+-the executable.
+-
+- It may happen that this requirement contradicts the license
+-restrictions of other proprietary libraries that do not normally
+-accompany the operating system. Such a contradiction means you cannot
+-use both them and the Library together in an executable that you
+-distribute.
+-
+- 7. You may place library facilities that are a work based on the
+-Library side-by-side in a single library together with other library
+-facilities not covered by this License, and distribute such a combined
+-library, provided that the separate distribution of the work based on
+-the Library and of the other library facilities is otherwise
+-permitted, and provided that you do these two things:
+-
+- a) Accompany the combined library with a copy of the same work
+- based on the Library, uncombined with any other library
+- facilities. This must be distributed under the terms of the
+- Sections above.
+-
+- b) Give prominent notice with the combined library of the fact
+- that part of it is a work based on the Library, and explaining
+- where to find the accompanying uncombined form of the same work.
+-
+- 8. You may not copy, modify, sublicense, link with, or distribute
+-the Library except as expressly provided under this License. Any
+-attempt otherwise to copy, modify, sublicense, link with, or
+-distribute the Library is void, and will automatically terminate your
+-rights under this License. However, parties who have received copies,
+-or rights, from you under this License will not have their licenses
+-terminated so long as such parties remain in full compliance.
+-
+- 9. You are not required to accept this License, since you have not
+-signed it. However, nothing else grants you permission to modify or
+-distribute the Library or its derivative works. These actions are
+-prohibited by law if you do not accept this License. Therefore, by
+-modifying or distributing the Library (or any work based on the
+-Library), you indicate your acceptance of this License to do so, and
+-all its terms and conditions for copying, distributing or modifying
+-the Library or works based on it.
+-
+- 10. Each time you redistribute the Library (or any work based on the
+-Library), the recipient automatically receives a license from the
+-original licensor to copy, distribute, link with or modify the Library
+-subject to these terms and conditions. You may not impose any further
+-restrictions on the recipients' exercise of the rights granted herein.
+-You are not responsible for enforcing compliance by third parties with
+-this License.
+-
+- 11. If, as a consequence of a court judgment or allegation of patent
+-infringement or for any other reason (not limited to patent issues),
+-conditions are imposed on you (whether by court order, agreement or
+-otherwise) that contradict the conditions of this License, they do not
+-excuse you from the conditions of this License. If you cannot
+-distribute so as to satisfy simultaneously your obligations under this
+-License and any other pertinent obligations, then as a consequence you
+-may not distribute the Library at all. For example, if a patent
+-license would not permit royalty-free redistribution of the Library by
+-all those who receive copies directly or indirectly through you, then
+-the only way you could satisfy both it and this License would be to
+-refrain entirely from distribution of the Library.
+-
+-If any portion of this section is held invalid or unenforceable under any
+-particular circumstance, the balance of the section is intended to apply,
+-and the section as a whole is intended to apply in other circumstances.
+-
+-It is not the purpose of this section to induce you to infringe any
+-patents or other property right claims or to contest validity of any
+-such claims; this section has the sole purpose of protecting the
+-integrity of the free software distribution system which is
+-implemented by public license practices. Many people have made
+-generous contributions to the wide range of software distributed
+-through that system in reliance on consistent application of that
+-system; it is up to the author/donor to decide if he or she is willing
+-to distribute software through any other system and a licensee cannot
+-impose that choice.
+-
+-This section is intended to make thoroughly clear what is believed to
+-be a consequence of the rest of this License.
+-
+- 12. If the distribution and/or use of the Library is restricted in
+-certain countries either by patents or by copyrighted interfaces, the
+-original copyright holder who places the Library under this License may add
+-an explicit geographical distribution limitation excluding those countries,
+-so that distribution is permitted only in or among countries not thus
+-excluded. In such case, this License incorporates the limitation as if
+-written in the body of this License.
+-
+- 13. The Free Software Foundation may publish revised and/or new
+-versions of the Lesser General Public License from time to time.
+-Such new versions will be similar in spirit to the present version,
+-but may differ in detail to address new problems or concerns.
+-
+-Each version is given a distinguishing version number. If the Library
+-specifies a version number of this License which applies to it and
+-"any later version", you have the option of following the terms and
+-conditions either of that version or of any later version published by
+-the Free Software Foundation. If the Library does not specify a
+-license version number, you may choose any version ever published by
+-the Free Software Foundation.
+-
+- 14. If you wish to incorporate parts of the Library into other free
+-programs whose distribution conditions are incompatible with these,
+-write to the author to ask for permission. For software which is
+-copyrighted by the Free Software Foundation, write to the Free
+-Software Foundation; we sometimes make exceptions for this. Our
+-decision will be guided by the two goals of preserving the free status
+-of all derivatives of our free software and of promoting the sharing
+-and reuse of software generally.
+-
+- NO WARRANTY
+-
+- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+-
+- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+-DAMAGES.
+-
+- END OF TERMS AND CONDITIONS
+-
+- How to Apply These Terms to Your New Libraries
+-
+- If you develop a new library, and you want it to be of the greatest
+-possible use to the public, we recommend making it free software that
+-everyone can redistribute and change. You can do so by permitting
+-redistribution under these terms (or, alternatively, under the terms of the
+-ordinary General Public License).
+-
+- To apply these terms, attach the following notices to the library. It is
+-safest to attach them to the start of each source file to most effectively
+-convey the exclusion of warranty; and each file should have at least the
+-"copyright" line and a pointer to where the full notice is found.
+-
+- <one line to give the library's name and a brief idea of what it does.>
+- Copyright (C) <year> <name of author>
+-
+- This library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- This library 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 library; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-
+-Also add information on how to contact you by electronic and paper mail.
+-
+-You should also get your employer (if you work as a programmer) or your
+-school, if any, to sign a "copyright disclaimer" for the library, if
+-necessary. Here is a sample; alter the names:
+-
+- Yoyodyne, Inc., hereby disclaims all copyright interest in the
+- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+-
+- <signature of Ty Coon>, 1 April 1990
+- Ty Coon, President of Vice
+-
+-That's all there is to it!
+diff --git a/backend/manager/3rdparty/pub2ssh/pubkey2ssh.sh b/backend/manager/3rdparty/pub2ssh/pubkey2ssh.sh
+deleted file mode 100755
+index 8f6c307..0000000
+--- a/backend/manager/3rdparty/pub2ssh/pubkey2ssh.sh
++++ /dev/null
+@@ -1,5 +0,0 @@
+-#!/bin/sh
+-
+-g++ -I/usr/include/openssl -L/usr/lib64/ -lcrypto src/pubkey2ssh.c -o bin/pubkey2ssh
+-
+-exit $?
+\ No newline at end of file
+diff --git a/backend/manager/3rdparty/pub2ssh/readme.txt b/backend/manager/3rdparty/pub2ssh/readme.txt
+deleted file mode 100644
+index 329d585..0000000
+--- a/backend/manager/3rdparty/pub2ssh/readme.txt
++++ /dev/null
+@@ -1,29 +0,0 @@
+-The purpose of this project is to convert a PEM based public key
+-into OpenSSH format. This project includes one source file, which
+-can be conpiled for Linux using the shell script or Windows using
+-the batch script.
+-
+-In order to compile, you'll need to have openssl libraries installed,
+-and for windows you'll need Visual Stusio 2005 as well.
+-
+-In order to extract a public key from Java's keystore or encrypted
+-pem file, you can use one of the given examples below.
+-
+-1. Extract public key from private:
+-
+-openssl rsa -in /tmp/ca/keys/ca.pem -pubout -out id_rsa.foropenssl
+-openssl rsa -in id_rsa.foropenssl -pubout > /tmp/test.pub
+-
+-output:
+------BEGIN PUBLIC KEY-----
+-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFE/YnZIzhY9Z6VGR50b2v/E4k
+-fjH4gKkgGPhtPRpnoQPFUV5qI1vm1nsMN8caUW1IYmh6HMecGRLuFPrVPPUrdyYE
+-lrjujcoCuKrkp5+2fpUAGnpDZZ3nZC2Zhz0hA9xNN0jjejHT//HprzrIbUx4MU2R
+-sQhZVWdlrg2L5h9uiwIDAQAB
+------END PUBLIC KEY-----
+-
+-
+-2. Extract public key from keystore.
+-
+-keytool -rfc -export -keystore ca/.keystore -alias mycert -file aaa.txt
+-openssl x509 -noout -in aaa.txt -pubkey > aaa.pub
+\ No newline at end of file
+diff --git a/backend/manager/3rdparty/pub2ssh/src/pubkey2ssh.c b/backend/manager/3rdparty/pub2ssh/src/pubkey2ssh.c
+deleted file mode 100644
+index 2296ed6..0000000
+--- a/backend/manager/3rdparty/pub2ssh/src/pubkey2ssh.c
++++ /dev/null
+@@ -1,160 +0,0 @@
+-/*
+- * An implementation of convertion from OpenSSL to OpenSSH public key format
+- *
+- * Copyright (c) 2008 Mounir IDRASSI <mounir.idrassi at idrix.fr>. All rights reserved.
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2.1 of the License, or (at your option) any later version.
+- *
+- * 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 program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+- *
+- */
+-
+-
+-#include <memory.h>
+-#include <openssl/bio.h>
+-#include <openssl/evp.h>
+-#include <openssl/pem.h>
+-#include <openssl/err.h>
+-
+-
+-static unsigned char pSshHeader[11] = { 0x00, 0x00, 0x00, 0x07, 0x73, 0x73, 0x68, 0x2D, 0x72, 0x73, 0x61};
+-
+-static int SshEncodeBuffer(unsigned char *pEncoding, int bufferLen, unsigned char* pBuffer)
+-{
+- int adjustedLen = bufferLen, index;
+- if (*pBuffer & 0x80)
+- {
+- adjustedLen++;
+- pEncoding[4] = 0;
+- index = 5;
+- }
+- else
+- {
+- index = 4;
+- }
+- pEncoding[0] = (unsigned char) (adjustedLen >> 24);
+- pEncoding[1] = (unsigned char) (adjustedLen >> 16);
+- pEncoding[2] = (unsigned char) (adjustedLen >> 8);
+- pEncoding[3] = (unsigned char) (adjustedLen );
+- memcpy(&pEncoding[index], pBuffer, bufferLen);
+- return index + bufferLen;
+-}
+-
+-int main(int argc, char** argv)
+-{
+- int iRet = 0;
+- int nLen = 0, eLen = 0;
+- int encodingLength = 0;
+- int index = 0;
+- unsigned char *nBytes = NULL, *eBytes = NULL;
+- unsigned char* pEncoding = NULL;
+- FILE* pFile = NULL;
+- EVP_PKEY *pPubKey = NULL;
+- RSA* pRsa = NULL;
+- BIO *bio, *b64;
+-
+- ERR_load_crypto_strings();
+- OpenSSL_add_all_algorithms();
+-
+- if (argc != 3)
+- {
+- printf("usage: %s public_key_file_name ssh_key_description\n", argv[0]);
+- iRet = 1;
+- goto error;
+- }
+-
+- pFile = fopen(argv[1], "rt");
+- if (!pFile)
+- {
+- printf("Failed to open the given file\n");
+- iRet = 2;
+- goto error;
+- }
+-
+- pPubKey = PEM_read_PUBKEY(pFile, NULL, NULL, NULL);
+- if (!pPubKey)
+- {
+- printf("Unable to decode public key from the given file: %s\n", ERR_error_string(ERR_get_error(), NULL));
+- iRet = 3;
+- goto error;
+- }
+-
+- if (EVP_PKEY_type(pPubKey->type) != EVP_PKEY_RSA)
+- {
+- printf("Only RSA public keys are currently supported\n");
+- iRet = 4;
+- goto error;
+- }
+-
+- pRsa = EVP_PKEY_get1_RSA(pPubKey);
+- if (!pRsa)
+- {
+- printf("Failed to get RSA public key : %s\n", ERR_error_string(ERR_get_error(), NULL));
+- iRet = 5;
+- goto error;
+- }
+-
+- // reading the modulus
+- nLen = BN_num_bytes(pRsa->n);
+- nBytes = (unsigned char*) malloc(nLen);
+- BN_bn2bin(pRsa->n, nBytes);
+-
+- // reading the public exponent
+- eLen = BN_num_bytes(pRsa->e);
+- eBytes = (unsigned char*) malloc(eLen);
+- BN_bn2bin(pRsa->e, eBytes);
+-
+- encodingLength = 11 + 4 + eLen + 4 + nLen;
+- // correct depending on the MSB of e and N
+- if (eBytes[0] & 0x80)
+- encodingLength++;
+- if (nBytes[0] & 0x80)
+- encodingLength++;
+-
+- pEncoding = (unsigned char*) malloc(encodingLength);
+- memcpy(pEncoding, pSshHeader, 11);
+-
+- index = SshEncodeBuffer(&pEncoding[11], eLen, eBytes);
+- index = SshEncodeBuffer(&pEncoding[11 + index], nLen, nBytes);
+-
+- b64 = BIO_new(BIO_f_base64());
+- BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+- bio = BIO_new_fp(stdout, BIO_NOCLOSE);
+- BIO_printf(bio, "ssh-rsa ");
+- bio = BIO_push(b64, bio);
+- BIO_write(bio, pEncoding, encodingLength);
+- BIO_flush(bio);
+- bio = BIO_pop(b64);
+- BIO_printf(bio, " %s\n", argv[2]);
+- BIO_flush(bio);
+- BIO_free_all(bio);
+- BIO_free(b64);
+-
+-error:
+- if (pFile)
+- fclose(pFile);
+- if (pRsa)
+- RSA_free(pRsa);
+- if (pPubKey)
+- EVP_PKEY_free(pPubKey);
+- if (nBytes)
+- free(nBytes);
+- if (eBytes)
+- free(eBytes);
+- if (pEncoding)
+- free(pEncoding);
+-
+- EVP_cleanup();
+- ERR_free_strings();
+- return iRet;
+-}
+diff --git a/backend/manager/conf/ca/installCA.sh b/backend/manager/conf/ca/installCA.sh
+index 15b16bd..fb02e54 100755
+--- a/backend/manager/conf/ca/installCA.sh
++++ b/backend/manager/conf/ca/installCA.sh
+@@ -29,15 +29,6 @@ WORKDIR=$7
+ CA_SUBJECT=$8
+ [ -d "$7" ] || die "Directory $7 does not exists"
+
+-# Define pubkey2ssh location
+-if [ -s "$START_DIR/../../3rdparty/pub2ssh/bin/pubkey2ssh" ]; then
+- PUB_KEY=$START_DIR/../../3rdparty/pub2ssh/bin
+-elif [ -s "$WORKDIR/pubkey2ssh" ]; then
+- PUB_KEY=$WORKDIR/
+-else
+- die "Unable to find pubkey2ssh executable. Please make sure it's in path."
+-fi
+-
+ echo " "
+ echo "} Creating CA..."
+
+@@ -96,7 +87,7 @@ echo "} Importing oVirt certificate..."
+ echo " "
+ echo "} Exporting oVirt key as SSH..."
+ ./exportK2SSH.sh $WORKDIR/.keystore $ALIAS engine.pub $PASS
+-$PUB_KEY/pubkey2ssh $WORKDIR/keys/engine.pub $ALIAS > $WORKDIR/keys/engine.ssh.key.txt
++echo $(ssh-keygen -i -m pkcs8 -f $WORKDIR/keys/engine.pub) $ALIAS > $WORKDIR/keys/engine.ssh.key.txt
+ rm -f $WORKDIR/keys/engine.pub
+
+ exit 0
+diff --git a/packaging/fedora/spec/ovirt-engine.spec.in b/packaging/fedora/spec/ovirt-engine.spec.in
+index 255113e..74026d3 100644
+--- a/packaging/fedora/spec/ovirt-engine.spec.in
++++ b/packaging/fedora/spec/ovirt-engine.spec.in
+@@ -268,7 +268,6 @@ cp -rpf %{_datadir}/vdsm-bootstrap/* %{_engineeardir}/components.war/vds/ &> /de
+ %config(noreplace) %{_datadir}/%{name}/sysprep/sysprep.w7x64
+ %config(noreplace) %{_datadir}/%{name}/sysprep/sysprep.xp
+ %{_jbossdir}/modules/org/postgresql/main/postgresql-jdbc.jar
+-%attr (755,root,root) %{_sysconfdir}/pki/%{name}/pubkey2ssh
+
+ %files backend
+ %dir %{_engineeardir}
+--
+1.7.9.3
+
diff --git a/ovirt-engine-setup-fixes.patch b/ovirt-engine-setup-fixes.patch
new file mode 100644
index 0000000..3272967
--- /dev/null
+++ b/ovirt-engine-setup-fixes.patch
@@ -0,0 +1,773 @@
+commit 8f2e1adfa9a52f978681b12b974ff34b3ec195d6
+Author: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Wed Apr 18 22:13:47 2012 +0200
+
+ setup-fixes
+
+diff --git a/backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf b/backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf
+index a510a0b..c16581f 100755
+--- a/backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf
++++ b/backend/manager/modules/utils/src/main/resources/engine-manage-domains.conf
+@@ -1,7 +1,7 @@
+ jaasFile=/usr/share/ovirt-engine/conf/jaas.conf
+-krb5confFile=/usr/share/jboss-as/standalone/configuration/krb5.conf
+-jbossDataSourceFile=/usr/share/jboss-as/standalone/configuration/standalone.xml
+-jbossLoginConfigFile=/usr/share/jboss-as/standalone/configuration/standalone.xml
++krb5confFile=/etc/ovirt-engine/krb5.conf
++jbossDataSourceFile=/usr/share/ovirt-engine/ovirt-engine.xml
++jbossLoginConfigFile=/usr/share/ovirt-engine/ovirt-engine.xml
+ engineConfigExecutable=/usr/share/ovirt-engine/engine-config/engine-config
+ localHostEntry=localhost
+-engineLibPath=/usr/share/ovirt-engine/engine.ear/lib
++engineLibPath=/usr/share/ovirt-engine/deployments/engine.ear/lib
+diff --git a/backend/manager/tools/engine-config/src/main/resources/engine-config.conf b/backend/manager/tools/engine-config/src/main/resources/engine-config.conf
+index 91d37ac..c5799d0 100644
+--- a/backend/manager/tools/engine-config/src/main/resources/engine-config.conf
++++ b/backend/manager/tools/engine-config/src/main/resources/engine-config.conf
+@@ -2,8 +2,8 @@
+
+
+ # Data source files
+-jbossDataSourceFile=/usr/share/jboss-as/standalone/configuration/standalone.xml
+-jbossLoginConfigFile=/usr/share/jboss-as/standalone/configuration/standalone.xml
++jbossDataSourceFile=/etc/ovirt-engine/ovirt-engine.xml
++jbossLoginConfigFile=/etc/ovirt-engine/ovirt-engine.xml
+
+ # Data structure
+ configTable=vdc_options
+diff --git a/packaging/fedora/setup/basedefs.py b/packaging/fedora/setup/basedefs.py
+index 5432516..e691e17 100644
+--- a/packaging/fedora/setup/basedefs.py
++++ b/packaging/fedora/setup/basedefs.py
+@@ -13,68 +13,47 @@ PGPASS_FILE_TEMPLATE="hostname:port:database:username:password"
+ JBOSS_SECURITY_DOMAIN="EncryptDBPassword"
+ JBOSS_KERB_AUTH="EngineKerberosAuth"
+
+-JBOSS_PROFILE_NAME="default"
+ VDC_OPTION_CVER="general"
+ ENGINE_RPM_NAME="ovirt-engine"
+
+-JBOSS_SHARE_FOLDER="/usr/share/jboss-as"
+-
+ INTERNAL_ADMIN="admin"
+ INTERNAL_DOMAIN="internal"
+
++JBOSS_SHARE_FOLDER="/usr/share/jboss-as"
++
+ DIR_ETC_SYSCONFIG="/etc/sysconfig"
+ DIR_USR_SHARE="/usr/share"
+ DIR_VAR_LOG="/var/log"
+ DIR_VAR_LIB="/var/lib"
+ DIR_LOG="%s/ovirt-engine/" % DIR_VAR_LOG
+ DIR_CONFIG="%s/ovirt-engine/conf" % DIR_USR_SHARE
+-DIR_JBOSS_RESOURCES="%s/ovirt-engine/resources/jboss" % DIR_USR_SHARE
+ DIR_KERBEROS="%s/ovirt-engine/kerberos" % DIR_USR_SHARE
+-DIR_JBOSS="/usr/share/jboss-as"
+
+-DIR_JBOSS_ROOT_WAR_IMAGES_SRC="%s/%s" % (DIR_JBOSS_RESOURCES, "images/")
+-DIR_JBOSS_ROOT_WAR="%s/standalone/deployments/ROOT.war" % DIR_JBOSS
++DIR_JBOSS_ROOT_WAR="%s/ovirt-engine/deployments/ROOT.war" % DIR_USR_SHARE
+ DIR_ENGINE_EAR_SRC="%s/ovirt-engine/engine.ear" % DIR_USR_SHARE
+-DIR_ROOT_WAR_SRC="%s/ovirt-engine/resources/jboss/ROOT.war" % DIR_USR_SHARE
+ DIR_DB_SCRIPTS="%s/ovirt-engine/dbscripts/" % DIR_USR_SHARE
+ DIR_DB_BACKUPS="%s/ovirt-engine/db-backups" % DIR_USR_SHARE
+ DIR_ENGINE_CONFIG="%s/ovirt-engine/engine-config/" % DIR_USR_SHARE
+ DIR_RHEVM_CONFIG_CONF="/etc/ovirt-engine/engine-config/"
+ DIR_OVIRT_PKI="/etc/pki/ovirt-engine"
+-DIR_MODULES_SRC="%s/ovirt-engine/resources/jboss/modules" % DIR_USR_SHARE
+-DIR_MODULES_DEST="%s/modules" % DIR_JBOSS
+
+
+ FILE_INSTALLER_LOG="engine-setup.log"
+ FILE_JBOSS_HTTP_PARAMS="/etc/ovirt-engine/web-conf.js"
+-FILE_JBOSS_ROOT_WAR_CSS = "style.css"
+-FILE_JBOSS_ROOT_WAR_CSS_SRC="%s/%s" % (DIR_JBOSS_RESOURCES, FILE_JBOSS_ROOT_WAR_CSS)
+-FILE_JBOSS_WEB_XML_SRC="%s/standalone/deployments/ROOT.war/WEB-INF/web.xml" % DIR_JBOSS
+ FILE_EXTERNAL_CONFIG="%s/ovirt-engine/engine.ear/ovirtengine.war/ExternalConfig.txt" % DIR_USR_SHARE
+ FILE_DEFAULT_HTML="%s/ovirt-engine/engine.ear/ovirtengine.war/Default.htm" % DIR_USR_SHARE
+ FILE_SERVER_PARAMS_JS="%s/ovirt-engine/engine.ear/ovirtengine.war/ServerParameters.js" % DIR_USR_SHARE
+-FILE_KRB_CONF="%s/deployments/configuration/krb5.conf" % DIR_JBOSS
+ FILE_CA_CRT_SRC="/etc/pki/ovirt-engine/ca.pem"
+ FILE_CA_CRT_TEMPLATE="/etc/pki/ovirt-engine/cacert.template"
+ FILE_CERT_TEMPLATE="/etc/pki/ovirt-engine/cert.template"
+ FILE_JBOSSAS_CONF="/etc/jboss-as/jboss-as.conf"
+-FILE_JBOSS_STANDALONE="%s/standalone/configuration/standalone.xml" % DIR_JBOSS
+-FILE_JBOSS_ROOT_WAR_HTML="engine_index.html"
+-FILE_JBOSS_ROOT_WAR_HTML_DEST="%s/%s" % (DIR_JBOSS_ROOT_WAR, FILE_JBOSS_ROOT_WAR_HTML)
+-FILE_JBOSS_ROOT_WAR_HTML_SRC="%s/%s" % (DIR_JBOSS_RESOURCES, FILE_JBOSS_ROOT_WAR_HTML)
+-FILE_JBOSS_ROOT_WAR_JS_VERSION="engineVersion.js"
+-FILE_JBOSS_ROOT_WAR_CONTEXT_SRC="%s/ROOT_war-context.xml" % DIR_JBOSS_RESOURCES
+-FILE_JBOSS_ROOT_WAR_CONTEXT_DEST="%s/WEB-INF/context.xml" % DIR_JBOSS_ROOT_WAR
+-FILE_JBOSS_ROOT_WAR_FAVICON="favicon.ico"
+-FILE_JBOSS_ROOT_WAR_FAVICON_DEST="%s/%s" % (DIR_JBOSS_ROOT_WAR, FILE_JBOSS_ROOT_WAR_FAVICON)
+-FILE_JBOSS_ROOT_WAR_FAVICON_SRC="%s/%s" % (DIR_JBOSS_RESOURCES, FILE_JBOSS_ROOT_WAR_FAVICON)
++FILE_JBOSS_STANDALONE="/etc/ovirt-engine/ovirt-engine.xml"
+ FILE_DB_INSTALL_SCRIPT="engine-db-install.sh"
+ FILE_DB_UPGRADE_SCRIPT="upgrade.sh"
+ FILE_RHEVM_CONFIG_BIN=os.path.join(DIR_ENGINE_CONFIG, "engine-config")
+ FILE_RHEVM_CONFIG_PROPS="engine-config-install.properties"
+ FILE_RHEVM_EXTENDED_CONF = os.path.join(DIR_CONFIG, FILE_RHEVM_CONFIG_PROPS)
+ FILE_RESOLV_CONF="/etc/resolv.conf"
+-FILE_SLIMMING_PROFILE_CONF="/usr/share/ovirt-engine/conf/slimming.conf"
+ FILE_IPTABLES_DEFAULT="%s/ovirt-engine/conf/iptables.default" % DIR_USR_SHARE
+ FILE_IPTABLES_EXAMPLE="%s/ovirt-engine/conf/iptables.example" % DIR_USR_SHARE
+ FILE_IPTABLES_BACKUP="%s/ovirt-engine/conf/iptables.backup" % DIR_USR_SHARE
+@@ -87,7 +66,6 @@ FILE_ISOUPLOADER_CONF="/etc/ovirt-engine/isouploader.conf"
+ FILE_LOGCOLLECTOR_CONF="/etc/ovirt-engine/logcollector.conf"
+ FILE_PSQL_CONF="/var/lib/pgsql/data/postgresql.conf"
+ FILE_LIMITS_CONF="/etc/security/limits.conf"
+-FILE_JDK_MODULE_XML="%s/modules/sun/jdk/main/module.xml" % DIR_JBOSS
+
+ # ISO FILES
+ FILE_VIRTIO_WIN_VFD="/usr/share/virtio-win/virtio-win.vfd"
+@@ -135,7 +113,7 @@ CONST_VDSM_UID = 36
+ CONST_KVM_GID = 36
+ CONST_MAX_PSQL_CONNS= 150
+ CONST_FD_OPEN = 65535
+-CONST_FD_LINE = "jboss %s nofile %s"
++CONST_FD_LINE = "ovirt %s nofile %s"
+ CONST_SHMMAX=35554432
+
+ #text colors
+diff --git a/packaging/fedora/setup/engine-cleanup.py b/packaging/fedora/setup/engine-cleanup.py
+index 9590da7..44cf85f 100755
+--- a/packaging/fedora/setup/engine-cleanup.py
++++ b/packaging/fedora/setup/engine-cleanup.py
+@@ -26,10 +26,6 @@ LOG_PATH = "/var/log/%s" % (BASE_NAME)
+ PKI_DIR = "/etc/pki/%s" %(BASE_NAME)
+ TRUSTORE = os.path.join (PKI_DIR, ".truststore")
+ KEYSTORE = os.path.join (PKI_DIR, ".keystore")
+-JBOSS_SERVER_DIR = "/var/lib/jbossas/server"
+-VAR_SLIMMED_DIR = os.path.join(JBOSS_SERVER_DIR, basedefs.JBOSS_PROFILE_NAME)
+-ETC_JBOSS_DIR = "/etc/jbossas"
+-ETC_SLIMMED_DIR = os.path.join(ETC_JBOSS_DIR, basedefs.JBOSS_PROFILE_NAME)
+ PKI_BACKUP_DIR = "/etc/pki/%s-backups" % (PREFIX)
+
+ #MSGS
+@@ -38,16 +34,15 @@ MSG_RC_ERROR = "Return Code is not zero"
+ MSG_ERROR_BACKUP_DB = "Error: Database backup failed"
+ MSG_ERROR_DROP_DB = "Error: Database drop failed"
+ MSG_ERROR_CHECK_LOG = "Error: Cleanup failed.\nplease check log at %s"
+-MSG_ERR_FAILED_JBOSS_SERVICE_STILL_RUN = "Error: Can't stop jboss service. Please shut it down manually."
+-MSG_ERR_FAILED_STP_JBOSS_SERVICE = "Error: Can't stop JBoss"
+-MSG_ERR_FAILED_STATUS_JBOSS_SERVICE = "Error: Can't get JBoss service status"
++MSG_ERR_FAILED_ENGINE_SERVICE_STILL_RUN = "Error: Can't stop jboss service. Please shut it down manually."
++MSG_ERR_FAILED_STP_ENGINE_SERVICE = "Error: Can't stop JBoss"
++MSG_ERR_FAILED_STATUS_ENGINE_SERVICE = "Error: Can't get JBoss service status"
+
+ MSG_INFO_DONE = "DONE"
+ MSG_INFO_ERROR = "ERROR"
+-MSG_INFO_STOP_JBOSS = "Stopping JBoss Service"
++MSG_INFO_STOP_ENGINE = "Stopping Engine Service"
+ MSG_INFO_BACKUP_DB = "Backing Up Database"
+ MSG_INFO_REMOVE_DB = "Removing Database"
+-MSG_INFO_REMOVE_SLIMMED = "Removing %s JBoss profile" % (PROD_NAME)
+ MSG_INFO_REMOVE_CA = "Removing CA"
+ MSG_INFO_UNLINK_EAR = "Removing EAR link"
+ MSG_INFO_DB_BACKUP_FILE = "DB Backup available at"
+@@ -257,15 +252,15 @@ class DB():
+
+ return True
+
+-def stopJboss():
+- logging.debug("stoping jboss service.")
++def stopEngine():
++ logging.debug("stoping service.")
+
+- cmd = [basedefs.EXEC_SERVICE, "jboss-as", "stop"]
+- output, rc = utils.execCmd(cmd, None, True, MSG_ERR_FAILED_STP_JBOSS_SERVICE, [])
++ cmd = [basedefs.EXEC_SERVICE, BASE_NAME, "stop"]
++ output, rc = utils.execCmd(cmd, None, True, MSG_ERR_FAILED_STP_ENGINE_SERVICE, [])
+
+- # JBoss service sometimes return zero rc even if service is still up
++ # Service sometimes return zero rc even if service is still up
+ if "[FAILED]" in output and "Timeout: Shutdown command was sent, but process is still running" in output:
+- raise OSError(MSG_ERR_FAILED_JBOSS_SERVICE_STILL_RUN)
++ raise OSError(MSG_ERR_FAILED_ENGINE_SERVICE_STILL_RUN)
+
+ def restartPostgresql():
+ """
+@@ -301,14 +296,6 @@ def _printErrlMessages():
+ logging.info('%s'%(msg))
+ print ('%s'%(msg))
+
+-def unlinkEar():
+- links = [os.path.join(basedefs.DIR_JBOSS, "standalone", "deployments", "engine.ear"),
+- os.path.join(basedefs.DIR_JBOSS, "standalone", "deployments", "ROOT.war")]
+-
+- for link in links:
+- if os.path.exists(link):
+- os.unlink(link)
+-
+ def main(options):
+ db = DB()
+ ca = CA()
+@@ -321,8 +308,8 @@ def main(options):
+
+ print
+
+- # Stop JBoss
+- runFunc(stopJboss, MSG_INFO_STOP_JBOSS)
++ # Stop the service:
++ runFunc(stopEngine, MSG_INFO_STOP_ENGINE)
+
+ # Close all DB connections and drop DB (only if db exists)
+ if db.exists() and options.drop_db:
+@@ -333,11 +320,6 @@ def main(options):
+ if options.remove_ca:
+ runFunc([ca.backup, ca.remove], MSG_INFO_REMOVE_CA)
+
+- # Unlink ear link in JBoss
+- if options.unlink_ear:
+- runFunc([unlinkEar], MSG_INFO_UNLINK_EAR)
+-
+-
+ if len(err_messages) == 0:
+ print MSG_INFO_CLEANUP_OK
+ else:
+diff --git a/packaging/fedora/setup/engine-setup.py b/packaging/fedora/setup/engine-setup.py
+index 8bd3f69..93d22dd 100755
+--- a/packaging/fedora/setup/engine-setup.py
++++ b/packaging/fedora/setup/engine-setup.py
+@@ -573,99 +573,6 @@ def copyAndLinkConfig(config):
+ # return new path
+ return new_config_path
+
+-def _editJbossasConf():
+- try:
+- jbossasHandler = utils.TextConfigFileHandler(basedefs.FILE_JBOSSAS_CONF)
+- jbossasHandler.open()
+-
+- jbossasHandler.editParam("JBOSS_IP", "0.0.0.0")
+- jbossasHandler.editParam("JBOSSCONF", basedefs.JBOSS_PROFILE_NAME)
+-
+- jbossasHandler.close()
+- except:
+- logging.error(traceback.format_exc())
+- raise Exception(output_messages.ERR_EXP_UPD_JBOSS_CONF%(basedefs.FILE_JBOSSAS_CONF))
+-
+-def _linkHttpParams():
+- #copy context.xml to ROOT.war/WEB-INF
+- try:
+- #create links for files in /usr/share/rhevm/reosurces/jboss
+- targetsList = [ basedefs.FILE_JBOSS_HTTP_PARAMS ]
+-
+- for target in targetsList:
+- #first, remove existing destination
+- link = "%s/%s" % (basedefs.DIR_JBOSS_ROOT_WAR, os.path.basename(target))
+- if os.path.exists(link):
+- if os.path.islink(link):
+- logging.debug("removing link %s" % link)
+- os.unlink(link)
+- #logging.debug("Removing %s" % link)
+- elif os.path.isdir(link):
+- #remove dir using shutil.rmtree
+- logging.debug("removing directory %s" % link)
+- shutil.rmtree(link)
+- else:
+- logging.debug("removing file %s" % link)
+- os.remove(link)
+-
+- logging.debug("Linking %s to %s" % (target, link))
+- os.link(target, link)
+- except:
+- logging.error(traceback.format_exc())
+- raise Exception(output_messages.ERR_EXP_FAILED_ROOT_WAR)
+-
+-def _changeDefaultWelcomePage():
+- logging.debug("editing jboss conf file %s" % (basedefs.FILE_JBOSS_WEB_XML_SRC))
+- webXmlHandler = utils.XMLConfigFileHandler(basedefs.FILE_JBOSS_WEB_XML_SRC)
+- webXmlHandler.open()
+-
+- #check if the node already exists
+- welcomeFileListNode = webXmlHandler.xpathEval("/web-app/welcome-file-list")
+- if len(welcomeFileListNode) == 0: #get the child to insert the node after
+- servletMapNode = utils.getXmlNode(webXmlHandler, "/web-app/mime-mapping")
+-
+- #add new node - welcome-file-list
+- welcomeFileListNode = libxml2.newNode('welcome-file-list')
+-
+- #add the new node as a next sibling to the servletMapNode
+- servletMapNode.addNextSibling(welcomeFileListNode)
+-
+- #add child and set content to the new child node
+- welcomeFileNode = libxml2.newNode('welcome-file')
+- welcomeFileListNode.addChild(welcomeFileNode)
+- else:
+- logging.debug("jboss file %s already updated, updating tag content only" % (basedefs.FILE_JBOSS_WEB_XML_SRC))
+-
+- logging.debug("setting value of default root.war html-file to %s" % (basedefs.FILE_JBOSS_ROOT_WAR_HTML))
+- utils.setXmlContent(webXmlHandler, "/web-app/welcome-file-list/welcome-file", basedefs.FILE_JBOSS_ROOT_WAR_HTML)
+- webXmlHandler.close()
+-
+-def _addMimeMapNode(webXmlHandler):
+- """
+- adds a new mime-mapping node after description
+- """
+- descMapNode = utils.getXmlNode(webXmlHandler, "/web-app/description")
+- mimeMapListNode = libxml2.newNode('mime-mapping')
+-
+- #add the new node as a next sibling to the servletMapNode
+- descMapNode.addNextSibling(mimeMapListNode)
+-
+- #add the extention node
+- extFileNode = libxml2.newNode('extension')
+- mimeMapListNode.addChild(extFileNode)
+-
+- #add the mime-type node
+- typeFileNode = libxml2.newNode('mime-type')
+- mimeMapListNode.addChild(typeFileNode)
+-
+- #set content to extension node
+- logging.debug("setting value of extention to crt")
+- utils.setXmlContent(webXmlHandler, "/web-app/mime-mapping/extension", "crt")
+-
+- #set content to mime type node
+- logging.debug("setting value of mime-type to application/x-x509-ca-cert")
+- utils.setXmlContent(webXmlHandler, "/web-app/mime-mapping/mime-type", "application/x-x509-ca-cert")
+-
+ def _handleJbossCertFile():
+ """
+ copy ca.crt to ROOT.WAR dir
+@@ -680,37 +587,10 @@ def _handleJbossCertFile():
+ raise Exception(output_messages.ERR_EXP_CANT_FIND_CA_FILE % (basedefs.FILE_CA_CRT_SRC))
+
+ # change ownership to jboss
+- os.chown(destCaFile, utils.getUsernameId("jboss-as"), utils.getGroupId("jboss-as"))
+-
+- # update mime type in web.xml
+- logging.debug("editing jboss conf file %s" % (basedefs.FILE_JBOSS_WEB_XML_SRC))
+- webXmlHandler = utils.XMLConfigFileHandler(basedefs.FILE_JBOSS_WEB_XML_SRC)
+- webXmlHandler.open()
+-
+- #check if the node already exists
+- mimeMapListNode = webXmlHandler.xpathEval("/web-app/mime-mapping")
+-
+- #add new xml node in case we don't have one
+- if len(mimeMapListNode) == 0:
+- _addMimeMapNode(webXmlHandler)
+- else:
+- #if we already have a mapping node, check if it doesn't include the 'crt' map
+- mapNodes = webXmlHandler.xpathEval("/web-app/mime-mapping/extension")
+- nodeExists = False
+- for node in mapNodes:
+- if node.content == "crt":
+- nodeExists = True
+- break
+- if not nodeExists:
+- _addMimeMapNode(webXmlHandler)
+-
+- webXmlHandler.close()
++ os.chown(destCaFile, utils.getUsernameId("ovirt"), utils.getGroupId("ovirt"))
+
+ def _editRootWar():
+ try:
+- # Copy new files and images to rhevm-slimmed profile
+- _linkHttpParams()
+-
+ # Update rhevm_index.html file with consts
+ logging.debug("update %s with http & ssl urls"%(basedefs.FILE_JBOSS_HTTP_PARAMS))
+
+@@ -721,6 +601,9 @@ def _editRootWar():
+ utils.findAndReplace(basedefs.FILE_JBOSS_HTTP_PARAMS, "var http_port.*", 'var http_port = "%s";'%(conf["HTTP_PORT"]))
+ utils.findAndReplace(basedefs.FILE_JBOSS_HTTP_PARAMS, "var https_port.*", 'var https_port = "%s";'%(conf["HTTPS_PORT"]))
+
++ # Copy the updated file to the root web application:
++ utils.copyFile(basedefs.FILE_JBOSS_HTTP_PARAMS, basedefs.DIR_JBOSS_ROOT_WAR)
++
+ # Handle ca.crt
+ _handleJbossCertFile()
+
+@@ -832,12 +715,12 @@ def _changeCaPermissions(pkiDir):
+ os.path.join(pkiDir, "private", "ca.pem"),
+ os.path.join(pkiDir,".truststore")
+ ]
+- jbossUid = utils.getUsernameId("jboss-as")
+- jbossGid = utils.getGroupId("jboss-as")
++ ovirtUid = utils.getUsernameId("ovirt")
++ ovirtGid = utils.getGroupId("ovirt")
+
+ for item in changeList:
+- logging.debug("changing ownership of %s to %s/%s (uid/gid)" % (item, jbossUid, jbossGid))
+- os.chown(item, int(jbossUid), int(jbossGid))
++ logging.debug("changing ownership of %s to %s/%s (uid/gid)" % (item, ovirtUid, ovirtGid))
++ os.chown(item, int(ovirtUid), int(ovirtGid))
+ logging.debug("changing file permissions for %s to 0750" % (item))
+ os.chmod(item, 0750)
+
+@@ -915,33 +798,6 @@ def _configIptables():
+ logging.error(traceback.format_exc())
+ raise Exception(output_messages.ERR_EXP_FAILED_CFG_IPTABLES)
+
+-def _createJbossProfile():
+- logging.debug("creating jboss profile")
+- try:
+- dirs = [
+- {'src' : basedefs.DIR_ENGINE_EAR_SRC,
+- 'dest' : os.path.join(basedefs.DIR_JBOSS, "standalone", "deployments", "engine.ear")},
+- {'src' : basedefs.DIR_ROOT_WAR_SRC,
+- 'dest' : os.path.join(basedefs.DIR_JBOSS, "standalone", "deployments", "ROOT.war")}
+- ]
+-
+- for item in dirs:
+- if not os.path.exists(item['dest']):
+- if os.path.islink(item['dest']) and os.readlink(item['dest']) != item['src']:
+- os.remove(item['dest'])
+- os.symlink(item['src'], item['dest'])
+-
+- logging.debug("Successfully created jboss profile %s"%(basedefs.JBOSS_PROFILE_NAME))
+- else:
+- logging.debug("%s profile already exists, doing nothing"%(basedefs.JBOSS_PROFILE_NAME))
+-
+- logging.debug("touching .dodeploy file for %s" % item['dest'])
+- open("%s.dodeploy" % item['dest'], 'w').close()
+-
+- except:
+- logging.error(traceback.format_exc())
+- raise Exception("Failed to create JBoss profile")
+-
+ def _createDB():
+ """
+ create fresh engine db
+@@ -1017,7 +873,7 @@ def _updateVDCOptions():
+ "CertificateFileName":"/etc/pki/ovirt-engine/certs/engine.cer",
+ "CAEngineKey":"/etc/pki/ovirt-engine/private/ca.pem",
+ "TruststoreUrl":"/etc/pki/ovirt-engine/.keystore",
+- "ENGINEEARLib":"/usr/share/jboss-as/standalone/deployments/engine.ear",
++ "ENGINEEARLib":"/usr/share/ovirt-engine/deployments/engine.ear",
+ "CACertificatePath":"/etc/pki/ovirt-engine/ca.pem",
+ "CertAlias":"engine",
+ },
+@@ -1481,9 +1337,9 @@ def _displaySummary():
+
+ def _startJboss():
+ logging.debug("using chkconfig to enable jboss to load on system startup.")
+- output, rc = utils.execExternalCmd("/sbin/chkconfig jboss-as on", True, output_messages.ERR_FAILED_CHKCFG_JBOSS)
+- _handleJbossService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, False)
+- _handleJbossService('start', output_messages.INFO_START_JBOSS, output_messages.ERR_FAILED_START_JBOSS_SERVICE, False)
++ output, rc = utils.execExternalCmd("/sbin/chkconfig ovirt-engine on", True, output_messages.ERR_FAILED_CHKCFG_JBOSS)
++ _handleEngineService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, False)
++ _handleEngineService('start', output_messages.INFO_START_JBOSS, output_messages.ERR_FAILED_START_JBOSS_SERVICE, False)
+
+ def _configNfsShare():
+ #ISO_DOMAIN_NAME, NFS_MP
+@@ -1604,33 +1460,32 @@ def _addFinalInfoMsg():
+ messages.append(output_messages.INFO_ADD_USERS)
+ messages.append(output_messages.INFO_RHEVM_URL % conf["HTTP_URL"])
+
+-def _checkJbossService(configFile):
+- logging.debug("checking the status of jboss")
+- cmd = "%s jboss-as status" % (basedefs.EXEC_SERVICE)
++def _checkEngineService(configFile):
++ logging.debug("checking the status of engine")
++ cmd = "%s ovirt-engine status" % (basedefs.EXEC_SERVICE)
+ output, rc = utils.execExternalCmd(cmd)
+ if 0 == rc:
+- logging.debug("jboss-as is up and running")
++ logging.debug("engine is up and running")
+
+ #if we don't use an answer file, we need to ask the user if to stop jboss
+ if not configFile:
+ print output_messages.INFO_NEED_STOP_JBOSS
+ answer = _askYesNo(output_messages.INFO_Q_STOP_JBOSS)
+ if answer:
+- _handleJbossService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, True)
++ _handleEngineService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, True)
+ else:
+ logging.debug("User chose not to stop jboss")
+ return False
+ else:
+- #we stop the jboss service on a silent install
+- _handleJbossService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, True)
++ #we stop the service on a silent install
++ _handleEngineService('stop', output_messages.INFO_STOP_JBOSS, output_messages.ERR_FAILED_STP_JBOSS_SERVICE, True)
+ return True
+
+-def _handleJbossService(action, infoMsg, errMsg, printToStdout=False):
++def _handleEngineService(action, infoMsg, errMsg, printToStdout=False):
+ ''' stop or start the jbossas service
+ according to action param
+ '''
+-# cmd = "%s jboss %s" % (basedefs.EXEC_SERVICE, action)
+- cmd = ["%s" % basedefs.EXEC_SERVICE, "jboss-as", "%s" % action]
++ cmd = ["%s" % basedefs.EXEC_SERVICE, "ovirt-engine", "%s" % action]
+ logging.debug(infoMsg)
+ if printToStdout:
+ print infoMsg
+@@ -1810,49 +1665,6 @@ def stopRhevmDbRelatedServices(etlService, notificationService):
+ logging.warn(traceback.format_exc())
+ messages.append(output_messages.ERR_FAILED_STOP_SERVICE % "rhevm-notiferd")
+
+-def deployJbossModules():
+- """
+- deploy the postgres module and edit the xml for the jdk module
+- """
+- try:
+- # Copy module(s) from /usr/share/ovirt-engine/resources/jboss/modules
+- logging.debug("Adding modules to jboss's modules")
+- modules = [ { 'target' : "%s/org/postgresql" % basedefs.DIR_MODULES_SRC,
+- 'link' : "%s/org/postgresql" % basedefs.DIR_MODULES_DEST}
+- ]
+- for module in modules:
+- utils.replaceWithLink(module['target'], module['link'])
+-
+- # edit module.xml for the jdk module
+- backupFile = "%s.%i" % (basedefs.FILE_JDK_MODULE_XML, random.randint(1000000,9999999))
+- editFile = "%s.%s.%i" % (basedefs.FILE_JDK_MODULE_XML, "EDIT", random.randint(1000000,9999999))
+- logging.debug("Backing up %s into %s", basedefs.FILE_JDK_MODULE_XML, backupFile)
+- utils.copyFile(basedefs.FILE_JDK_MODULE_XML, backupFile)
+- utils.copyFile(basedefs.FILE_JDK_MODULE_XML, editFile)
+-
+- logging.debug("loading xml file handler")
+- xmlObj = utils.XMLConfigFileHandler(editFile)
+- xmlObj.open()
+-
+- logging.debug("registering name space")
+- xmlObj.registerNs('module','urn:jboss:module:1.1')
+-
+- paths = ['''<path name="sun/security"/>''', '''<path name="sun/security/krb5"/>''', '''<path name="com/sun/jndi/url"/>''', '''<path name="com/sun/jndi/url/dns"/>''' ]
+-
+- for path in paths:
+- logging.debug("adding %s as node", path)
+- xmlObj.addNodes("//module:module/module:dependencies/module:system/module:paths", path)
+-
+- xmlObj.close()
+-
+- shutil.move(editFile, basedefs.FILE_JDK_MODULE_XML)
+- logging.debug("JDK module configuration has been saved")
+-
+- except:
+- logging.error("Failed to deploy modules into jboss")
+- logging.error(traceback.format_exc())
+- raise output_messages.ERR_EXP_FAILED_DEPLOY_MODULES
+-
+ def configEncryptedPass():
+ """
+ push the encrypted password into standalone.xml
+@@ -1877,7 +1689,7 @@ def configEncryptedPass():
+ xmlObj.close()
+
+ shutil.move(editFile, basedefs.FILE_JBOSS_STANDALONE)
+- os.chown(basedefs.FILE_JBOSS_STANDALONE, utils.getUsernameId("jboss-as"), utils.getGroupId("jboss-as"))
++ os.chown(basedefs.FILE_JBOSS_STANDALONE, utils.getUsernameId("ovirt"), utils.getGroupId("ovirt"))
+ logging.debug("Jboss configuration has been saved")
+
+ except:
+@@ -1908,8 +1720,6 @@ def configJbossXml():
+ xmlObj.registerNs('domain','urn:jboss:domain:1.1')
+
+ logging.debug("Configuring Jboss")
+- configJbossLogging(xmlObj)
+- configJbossDatasource(xmlObj)
+ configJbossNetwork(xmlObj)
+ configJbossSSL(xmlObj)
+ logging.debug("Jboss has been configured")
+@@ -1917,7 +1727,7 @@ def configJbossXml():
+ xmlObj.close()
+
+ shutil.move(editFile, basedefs.FILE_JBOSS_STANDALONE)
+- os.chown(basedefs.FILE_JBOSS_STANDALONE, utils.getUsernameId("jboss-as"), utils.getGroupId("jboss-as"))
++ os.chown(basedefs.FILE_JBOSS_STANDALONE, utils.getUsernameId("ovirt"), utils.getGroupId("ovirt"))
+ logging.debug("Jboss configuration has been saved")
+
+ except:
+@@ -1925,151 +1735,6 @@ def configJbossXml():
+ logging.error(traceback.format_exc())
+ raise output_messages.ERR_EXP_FAILED_CONFIG_JBOSS
+
+-def configJbossLogging(xmlObj):
+- """
+- Configure the Logging for jboss
+- """
+- logging.debug("Configuring logging for jboss")
+-
+- logging.debug("Registering logging namespace")
+- xmlObj.registerNs('logging', 'urn:jboss:domain:logging:1.1')
+-
+- logging.debug("setting attributes")
+- nodes = xmlObj.xpathEval("//logging:subsystem/logging:console-handler[@name='CONSOLE']")
+- nodes[0].setProp("autoflush", "true")
+-
+- logging.debug("Adding level node with attribute: name, value: INFO")
+- nodes = xmlObj.xpathEval("//logging:subsystem/logging:periodic-rotating-file-handler[@name='FILE']")
+- nodes[0].setProp("autoflush", "true")
+-
+-
+- xmlObj.removeNodes("//logging:subsystem/logging:periodic-rotating-file-handler[@name='FILE']/logging:level")
+- levelStr = '''<level name="INFO" />'''
+- xmlObj.addNodes("//logging:subsystem/logging:periodic-rotating-file-handler[@name='FILE']", levelStr)
+-
+- xmlObj.removeNodes("//logging:subsystem/logging:size-rotating-file-handler[@name='ENGINE_LOG']")
+- logging.debug("Adding file handler for ENGINE_LOG")
+- fileHandlerStr = '''
+- <size-rotating-file-handler name="ENGINE_LOG" autoflush="true">
+- <level name="INFO"/>
+- <formatter>
+- <pattern-formatter pattern="%d %-5p [%c] (%t) %s%E%n"/>
+- </formatter>
+- <file path="/var/log/ovirt-engine/engine.log"/>
+- <rotate-size value="1M"/>
+- <max-backup-index value="30"/>
+- <append value="true"/>
+- </size-rotating-file-handler>
+-'''
+- xmlObj.addNodes("//logging:subsystem", fileHandlerStr)
+-
+- logging.debug("Adding Loggers for ovirt-engine")
+- loggerCats = ["org.ovirt", "org.ovirt.engine.core.bll", "org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresJdbcTemplate","org.springframework.ldap"]
+- for loggerCat in loggerCats:
+- xmlObj.removeNodes("//logging:subsystem/logging:logger[@category='%s']" % loggerCat)
+-
+- loggers = ['''
+- <logger category="org.ovirt">
+- <level name="INFO"/>
+- <handlers>
+- <handler name="ENGINE_LOG"/>
+- </handlers>
+- </logger>
+- ''','''
+- <logger category="org.ovirt.engine.core.bll">
+- <level name="INFO"/>
+- </logger>
+- ''','''
+- <logger category="org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresJdbcTemplate">
+- <level name="WARN"/>
+- </logger>
+- ''','''
+- <logger category="org.springframework.ldap">
+- <level name="ERROR"/>
+- </logger>
+- ''']
+-
+- for logger in loggers:
+- xmlObj.addNodes("//logging:subsystem", logger)
+-
+- logging.debug("Logging is enabled and configured in jboss's configuration")
+-
+-def configJbossDatasource(xmlObj):
+- """
+- configure the datasource for jboss
+- """
+- logging.debug("Configuring logging for jboss")
+-
+- logging.debug("Registering datasource namespaces")
+- xmlObj.registerNs('datasource', 'urn:jboss:domain:datasources:1.0')
+- xmlObj.registerNs('deployment-scanner', 'urn:jboss:domain:deployment-scanner:1.0')
+-
+- logging.debug("looking for ENGINEDatasource datasource")
+-
+- # removeNodes will remove the node if it exists and will do nothing if it does not exist
+- xmlObj.removeNodes("//datasource:subsystem/datasource:datasources/datasource:datasource[@jndi-name='java:/ENGINEDataSource']")
+-
+- datasourceStr = '''
+- <datasource jndi-name="java:/ENGINEDataSource" pool-name="ENGINEDataSource" enabled="true">
+- <connection-url>
+- jdbc:postgresql://localhost:5432/engine
+- </connection-url>
+- <driver>
+- postgresql
+- </driver>
+- <transaction-isolation>
+- TRANSACTION_READ_COMMITTED
+- </transaction-isolation>
+- <pool>
+- <min-pool-size>
+- 1
+- </min-pool-size>
+- <max-pool-size>
+- 100
+- </max-pool-size>
+- <prefill>
+- true
+- </prefill>
+- </pool>
+- <security>
+- <user-name>
+- engine
+- </user-name>
+- <security-domain>
+- EncryptDBPassword
+- </security-domain>
+- </security>
+- <statement>
+- <prepared-statement-cache-size>
+- 100
+- </prepared-statement-cache-size>
+- </statement>
+- </datasource>
+-'''
+- logging.debug("Adding ENGINE datasource")
+- xmlObj.addNodes("//datasource:subsystem/datasource:datasources", datasourceStr)
+-
+- logging.debug("Adding drivers to datasource")
+- xmlObj.removeNodes("//datasource:subsystem/datasource:datasources/datasource:drivers/datasource:driver[@name='postgresql']")
+- driversStr='''
+- <drivers>
+- <driver name="postgresql" module="org.postgresql">
+- <xa-datasource-class>
+- org.postgresql.xa.PGXADataSource
+- </xa-datasource-class>
+- </driver>
+- </drivers>
+-'''
+- xmlObj.addNodes("//datasource:subsystem/datasource:datasources", driversStr)
+-
+- logging.debug("configuring deployment-scanner")
+- node = xmlObj.xpathEval("//deployment-scanner:subsystem/deployment-scanner:deployment-scanner")[0]
+- node.setProp("name","default")
+- node.setProp("path","deployments")
+- node.setProp("scan-enabled","true")
+- node.setProp("deployment-timeout","60")
+- logging.debug("Datasource has been added into jboss's configuration")
+-
+ def configJbossSecurity(xmlObj):
+ """
+ configure security for jboss
+@@ -2170,13 +1835,13 @@ def startRhevmDbRelatedServices(etlService, notificationService):
+
+ def runMainFunctions(conf):
+ # Create rhevm-slimmed jboss profile
+- runFunction([_createJbossProfile, setMaxSharedMemory], output_messages.INFO_CONFIG_OVIRT_ENGINE)
++ runFunction([setMaxSharedMemory], output_messages.INFO_CONFIG_OVIRT_ENGINE)
+
+ # Create CA
+ runFunction(_createCA, output_messages.INFO_CREATE_CA)
+
+ # Edit JBoss configuration
+- runFunction([configJbossXml, deployJbossModules, _editRootWar], output_messages.INFO_UPD_JBOSS_CONF)
++ runFunction([configJbossXml, _editRootWar], output_messages.INFO_UPD_JBOSS_CONF)
+
+ # Install rhevm db if it's not installed and running already
+ if _isDbAlreadyInstalled() == False:
+@@ -2219,14 +1884,10 @@ def runMainFunctions(conf):
+
+ def isSecondRun():
+ keystore = os.path.join(basedefs.DIR_OVIRT_PKI, ".keystore")
+- engineLink = os.path.join(basedefs.DIR_JBOSS, "server", basedefs.JBOSS_PROFILE_NAME,"deploy","engine.ear")
+
+ if os.path.exists(keystore):
+ logging.debug("%s exists, second run detected", keystore)
+ return True
+- elif os.path.exists(engineLink):
+- logging.debug("%s exists, second run detected", engineLink)
+- return True
+ else:
+ return False
+
+@@ -2247,7 +1908,7 @@ def main(configFile=None):
+ return 0
+
+ #TODO: add validation to answer file before stopping jboss
+- if not _checkJbossService(configFile):
++ if not _checkEngineService(configFile):
+ logging.debug("exiting gracefully")
+ print output_messages.INFO_STOP_INSTALL_EXIT
+ return 0
+@@ -2294,6 +1955,7 @@ def _checkAvailableMemory():
+ """
+ checks for memory using the "free" command
+ """
++ return
+ #execute free -g to get output in GB
+ logging.debug("checking total memory")
+ cmd = "%s -g" % basedefs.EXEC_FREE
diff --git a/ovirt-engine-update-commons-configuration.patch b/ovirt-engine-update-commons-configuration.patch
index 12911fc..8b46e6c 100644
--- a/ovirt-engine-update-commons-configuration.patch
+++ b/ovirt-engine-update-commons-configuration.patch
@@ -1,18 +1,17 @@
-From 64b90591213ffdcc5e63075d5d43f4dda861535b Mon Sep 17 00:00:00 2001
+From 9c21f1900e7d7d4fd43e6b8dd3d543e60ce8ffba Mon Sep 17 00:00:00 2001
From: Juan Hernandez <juan.hernandez at redhat.com>
-Date: Wed, 1 Aug 2012 13:35:19 +0200
+Date: Tue, 24 Jul 2012 21:10:45 +0200
Subject: [PATCH] Update to commons-configuration 1.8
---
- .../engine/core/config/EngineConfigLogic.java | 4 +-
- .../fedora/setup/engine-config-install.properties | 60 +++++++++++-----------
- 2 files changed, 32 insertions(+), 32 deletions(-)
+ .../java/org/ovirt/engine/core/config/EngineConfigLogic.java | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/manager/tools/engine-config/src/main/java/org/ovirt/engine/core/config/EngineConfigLogic.java b/backend/manager/tools/engine-config/src/main/java/org/ovirt/engine/core/config/EngineConfigLogic.java
-index 7334bc0..340148f 100644
+index 6f5f2c5..f1df486 100644
--- a/backend/manager/tools/engine-config/src/main/java/org/ovirt/engine/core/config/EngineConfigLogic.java
+++ b/backend/manager/tools/engine-config/src/main/java/org/ovirt/engine/core/config/EngineConfigLogic.java
-@@ -84,9 +84,9 @@ public class EngineConfigLogic {
+@@ -67,9 +67,9 @@ public class EngineConfigLogic {
}
private void populateAlternateKeyMap(HierarchicalConfiguration config) {
@@ -24,74 +23,13 @@ index 7334bc0..340148f 100644
String rootKey = node.getRootNode()
.getParentNode().getName();
String[] alternateKeys = config.getStringArray("/" + rootKey + "/" + ALTERNATE_KEY);
-diff --git a/packaging/fedora/setup/engine-config-install.properties b/packaging/fedora/setup/engine-config-install.properties
-index 071ebc5..e0ee01c 100644
---- a/packaging/fedora/setup/engine-config-install.properties
-+++ b/packaging/fedora/setup/engine-config-install.properties
-@@ -1,33 +1,33 @@
-
- include=/etc/ovirt-engine/engine-config/engine-config.properties
-
--SQLServerSearchTemplate
--OrganizationName
--CertAlias
--InstallVds
--TruststoreUrl
--PostgresSearchTemplate
--ENGINEEARLib
--ScriptsPath
--UseSecureConnectionWithServers
--VdsErrorsFileName
--SQLServerPagingSyntax
--DataDir
--AsyncPollingCyclesBeforeCallbackCleanup
--AsyncPollingCyclesBeforeRefreshSuspend
--SQLServerPagingType
--keystoreUrl
--keystorePass
--PostgresPagingSyntax
--PostgresPagingType
--ConfigDir
--SignScriptName
--CAEngineKey
--BootstrapInstallerFileName
--CACertificatePath
--TruststorePass
--PublicURLPort
--AdUserId
--VdcVersion
--LdapServers
--MinimalETLVersion
-+SQLServerSearchTemplate=
-+OrganizationName=
-+CertAlias=
-+InstallVds=
-+TruststoreUrl=
-+PostgresSearchTemplate=
-+ENGINEEARLib=
-+ScriptsPath=
-+UseSecureConnectionWithServers=
-+VdsErrorsFileName=
-+SQLServerPagingSyntax=
-+DataDir=
-+AsyncPollingCyclesBeforeCallbackCleanup=
-+AsyncPollingCyclesBeforeRefreshSuspend=
-+SQLServerPagingType=
-+keystoreUrl=
-+keystorePass=
-+PostgresPagingSyntax=
-+PostgresPagingType=
-+ConfigDir=
-+SignScriptName=
-+CAEngineKey=
-+BootstrapInstallerFileName=
-+CACertificatePath=
-+TruststorePass=
-+PublicURLPort=
-+AdUserId=
-+VdcVersion=
-+LdapServers=
-+MinimalETLVersion=
+@@ -329,4 +329,4 @@ public class EngineConfigLogic {
+ public ConfigDAO getConfigDAO() {
+ return configDAO;
+ }
+-}
+\ No newline at end of file
++}
--
-1.7.11.2
+1.7.10.4
diff --git a/ovirt-engine-update-to-jackson-1.9.patch b/ovirt-engine-update-to-jackson-1.9.patch
new file mode 100644
index 0000000..460356f
--- /dev/null
+++ b/ovirt-engine-update-to-jackson-1.9.patch
@@ -0,0 +1,63 @@
+From 9fc507eda097bb581509935b17e771d9d4a12adf Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Mon, 27 Feb 2012 14:02:58 +0100
+Subject: [PATCH] restapi: Update to Jackson 1.9
+
+Starting with version 1.7 of Jackson the way to create custom
+serializers has changed: it uses a builder class instead of
+creating directly the serializer.
+
+Change-Id: I82085b16e2d8cb6a0df3a30d7be5fc367d245823
+---
+ .../api/resteasy/json/CustomBeanFactory.java | 23 ++++++++-----------
+ 1 files changed, 10 insertions(+), 13 deletions(-)
+
+diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomBeanFactory.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomBeanFactory.java
+index 27799b3..1c26d4d 100644
+--- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomBeanFactory.java
++++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomBeanFactory.java
+@@ -3,9 +3,8 @@ package org.ovirt.engine.api.resteasy.json;
+ import java.util.List;
+
+ import org.codehaus.jackson.map.SerializationConfig;
+-import org.codehaus.jackson.map.introspect.BasicBeanDescription;
+ import org.codehaus.jackson.map.ser.BeanPropertyWriter;
+-import org.codehaus.jackson.map.ser.BeanSerializer;
++import org.codehaus.jackson.map.ser.BeanSerializerBuilder;
+ import org.codehaus.jackson.map.ser.CustomSerializerFactory;
+
+ /*
+@@ -15,21 +14,19 @@ import org.codehaus.jackson.map.ser.CustomSerializerFactory;
+ public class CustomBeanFactory extends CustomSerializerFactory
+ {
+ @Override
+- protected BeanSerializer processViews(SerializationConfig config,
+- BasicBeanDescription beanDesc,
+- BeanSerializer ser,
+- List<BeanPropertyWriter> props) {
+- ser = super.processViews(config, beanDesc, ser, props);
++ protected void processViews(SerializationConfig config, BeanSerializerBuilder builder) {
++ super.processViews(config, builder);
+
+- BeanPropertyWriter[] writers = props.toArray(new BeanPropertyWriter[props.size()]);
++ List<BeanPropertyWriter> writersList = builder.getProperties();
++ BeanPropertyWriter[] writersArray = writersList.toArray(new BeanPropertyWriter[writersList.size()]);
+
+- for (int i = 0; i < writers.length; i++) {
+- if (writers[i].getName().startsWith("set") &&
+- writers[i].getPropertyType() == boolean.class) {
+- writers[i] = null;
++ for (int i = 0; i < writersArray.length; i++) {
++ if (writersArray[i].getName().startsWith("set") &&
++ writersArray[i].getPropertyType() == boolean.class) {
++ writersArray[i] = null;
+ }
+ }
+
+- return ser.withFiltered(writers);
++ builder.setFilteredProperties(writersArray);
+ }
+ }
+--
+1.7.7.6
+
diff --git a/ovirt-engine-update-to-quartz-2.1.patch b/ovirt-engine-update-to-quartz-2.1.patch
new file mode 100644
index 0000000..a7cc811
--- /dev/null
+++ b/ovirt-engine-update-to-quartz-2.1.patch
@@ -0,0 +1,328 @@
+From db1b5db69b4b076d588600f4de4114e461c22208 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 16 Feb 2012 15:05:35 +0100
+Subject: [PATCH] Update to Quartz 2.1
+
+This is needed because it is the version currently in Fedora.
+
+Change-Id: Idf39f22ac898129cd223f3c6c8d99f072f8ecef7
+---
+ .../core/utils/timer/FixedDelayJobListener.java | 30 +++++++---
+ .../core/utils/timer/SchedulerUtilQuartzImpl.java | 60 +++++++++++++------
+ .../utils/timer/SchedulerUtilQuartsImplTest.java | 13 +++-
+ pom.xml | 2 +-
+ 4 files changed, 72 insertions(+), 33 deletions(-)
+
+diff --git a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/FixedDelayJobListener.java b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/FixedDelayJobListener.java
+index 38aba0a..19a051e 100644
+--- a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/FixedDelayJobListener.java
++++ b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/FixedDelayJobListener.java
+@@ -1,5 +1,7 @@
+ package org.ovirt.engine.core.utils.timer;
+
++import static org.quartz.TriggerBuilder.newTrigger;
++
+ import java.util.Date;
+ import java.util.concurrent.TimeUnit;
+
+@@ -8,8 +10,8 @@ import org.quartz.JobDetail;
+ import org.quartz.JobExecutionContext;
+ import org.quartz.JobExecutionException;
+ import org.quartz.JobListener;
+-import org.quartz.SimpleTrigger;
+ import org.quartz.Trigger;
++import org.quartz.TriggerKey;
+
+ /**
+ * The FixedDelayJobListener is a JobListener implementation to turn a job into
+@@ -50,24 +52,34 @@ public class FixedDelayJobListener implements JobListener {
+ */
+ @Override
+ public void jobWasExecuted(JobExecutionContext context, JobExecutionException exception) {
+-
+- // generate the new trigger time
++ // Get the details of the job:
+ JobDetail jobdetail = context.getJobDetail();
+ JobDataMap data = jobdetail.getJobDataMap();
++
++ // This is being called for all our jobs, so first check if this is a fixed delay
++ // job and if not just exit:
++ if (data.containsKey(SchedulerUtilQuartzImpl.FIXED_DELAY_ENABLED)) {
++ boolean fixedDelayEnabled = data.getBoolean(SchedulerUtilQuartzImpl.FIXED_DELAY_ENABLED);
++ if (!fixedDelayEnabled) {
++ return;
++ }
++ }
++
++ // generate the new trigger time
+ long delay = data.getLongValue(SchedulerUtilQuartzImpl.FIXED_DELAY_VALUE);
+ TimeUnit delayUnit = (TimeUnit) data.getWrappedMap().get(SchedulerUtilQuartzImpl.FIXED_DELAY_TIME_UNIT);
+ Date runTime = SchedulerUtilQuartzImpl.getFutureDate(delay, delayUnit);
+
+ // generate the new trigger
+ Trigger oldTrigger = context.getTrigger();
+- String oldTriggerName = oldTrigger.getName();
+- String oldTriggerGroup = oldTrigger.getGroup();
+- SimpleTrigger newTrigger = new SimpleTrigger(oldTriggerName, oldTriggerGroup, runTime);
+- newTrigger.setJobGroup(jobdetail.getGroup());
+- newTrigger.setJobName(jobdetail.getName());
++ TriggerKey oldTriggerKey = oldTrigger.getKey();
++ Trigger newTrigger = newTrigger()
++ .withIdentity(oldTriggerKey)
++ .startAt(runTime)
++ .build();
+
+ // schedule the new trigger
+- sched.rescheduleAJob(oldTriggerName, oldTriggerGroup, newTrigger);
++ sched.rescheduleAJob(oldTriggerKey.getName(), oldTriggerKey.getGroup(), newTrigger);
+ // SchedulerUtilQuartzImpl.getInstance().rescheduleAJob(oldTriggerName,
+ // oldTriggerGroup, newTrigger);
+
+diff --git a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
+index cf36bcc..f3ecadd 100644
+--- a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
++++ b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
+@@ -1,33 +1,39 @@
+ package org.ovirt.engine.core.utils.timer;
+
++import static org.quartz.CronScheduleBuilder.cronSchedule;
++import static org.quartz.JobBuilder.newJob;
++import static org.quartz.JobKey.jobKey;
++import static org.quartz.TriggerBuilder.newTrigger;
++import static org.quartz.TriggerKey.triggerKey;
++import static org.quartz.impl.matchers.GroupMatcher.jobGroupEquals;
++
+ import java.util.Date;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+
+ import javax.annotation.PostConstruct;
+ import javax.annotation.PreDestroy;
++import javax.ejb.ConcurrencyManagement;
++import javax.ejb.ConcurrencyManagementType;
+ import javax.ejb.Singleton;
+ import javax.ejb.Startup;
+ import javax.ejb.TransactionAttribute;
+ import javax.ejb.TransactionAttributeType;
+-import javax.ejb.ConcurrencyManagement;
+-import javax.ejb.ConcurrencyManagementType;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.ovirt.engine.core.utils.ejb.BeanProxyType;
+ import org.ovirt.engine.core.utils.ejb.BeanType;
+ import org.ovirt.engine.core.utils.ejb.EjbUtils;
+-import org.quartz.CronTrigger;
+ import org.quartz.JobDataMap;
+ import org.quartz.JobDetail;
+ import org.quartz.Scheduler;
+ import org.quartz.SchedulerException;
+ import org.quartz.SchedulerFactory;
+-import org.quartz.SimpleTrigger;
+ import org.quartz.Trigger;
+ import org.quartz.impl.StdSchedulerFactory;
+
++
+ // Here we use a Singleton bean, names Scheduler.
+ // The @Startup annotation is to make sure the bean is initialized on startup.
+ // @ConcurrencyManagement - we use bean managed concurrency:
+@@ -45,6 +51,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ public static final String RUN_METHOD_NAME = "method.name";
+ public static final String RUN_METHOD_PARAM_TYPE = "method.paramType";
+ public static final String RUN_METHOD_PARAM = "method.param";
++ public static final String FIXED_DELAY_ENABLED = "fixedDelayEnabled";
+ public static final String FIXED_DELAY_VALUE = "fixedDelayValue";
+ public static final String FIXED_DELAY_TIME_UNIT = "fixedDelayTimeUnit";
+ private static final String TRIGGER_PREFIX = "trigger";
+@@ -55,7 +62,6 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+
+ private final AtomicLong sequenceNumber = new AtomicLong(Long.MIN_VALUE);
+
+-
+ /**
+ * This method is called upon the bean creation as part
+ * of the management Service bean lifecycle.
+@@ -73,7 +79,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ SchedulerFactory sf = new StdSchedulerFactory();
+ sched = sf.getScheduler();
+ sched.start();
+- sched.addJobListener(new FixedDelayJobListener(this));
++ sched.getListenerManager().addJobListener(new FixedDelayJobListener(this), jobGroupEquals(Scheduler.DEFAULT_GROUP));
+ } catch (SchedulerException se) {
+ log.error("there is a problem with the underlying Scheduler.", se);
+ }
+@@ -128,20 +134,24 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ long taskDelay,
+ TimeUnit timeUnit) {
+ String jobName = generateUniqueNameForInstance(instance, methodName);
+- JobDetail job = new JobDetail(jobName, Scheduler.DEFAULT_GROUP, JobWrapper.class);
+- job.addJobListener(FixedDelayJobListener.FIXED_JOB_LISTENER_NAME);
++ JobDetail job = newJob()
++ .withIdentity(jobName, Scheduler.DEFAULT_GROUP)
++ .ofType(JobWrapper.class)
++ .build();
+ JobDataMap data = job.getJobDataMap();
+ data.put(RUNNABLE_INSTANCE, instance);
+ data.put(RUN_METHOD_NAME, methodName);
+ data.put(RUN_METHOD_PARAM_TYPE, inputTypes);
+ data.put(RUN_METHOD_PARAM, inputParams);
++ data.put(FIXED_DELAY_ENABLED, true);
+ data.put(FIXED_DELAY_VALUE, taskDelay);
+ data.put(FIXED_DELAY_TIME_UNIT, timeUnit);
+-
+ Date runTime = getFutureDate(initialDelay, timeUnit);
+ String triggerName = generateUniqueNameForInstance(instance, TRIGGER_PREFIX);
+- SimpleTrigger trigger = new SimpleTrigger(triggerName, Scheduler.DEFAULT_GROUP, runTime);
+-
++ Trigger trigger = newTrigger()
++ .withIdentity(triggerName, Scheduler.DEFAULT_GROUP)
++ .startAt(runTime)
++ .build();
+ try {
+ sched.scheduleJob(job, trigger);
+ } catch (SchedulerException se) {
+@@ -177,7 +187,10 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ long initialDelay,
+ TimeUnit timeUnit) {
+ String jobName = generateUniqueNameForInstance(instance, methodName);
+- JobDetail job = new JobDetail(jobName, Scheduler.DEFAULT_GROUP, JobWrapper.class);
++ JobDetail job = newJob()
++ .withIdentity(jobName, Scheduler.DEFAULT_GROUP)
++ .ofType(JobWrapper.class)
++ .build();
+ JobDataMap data = job.getJobDataMap();
+ data.put(RUNNABLE_INSTANCE, instance);
+ data.put(RUN_METHOD_NAME, methodName);
+@@ -185,7 +198,10 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ data.put(RUN_METHOD_PARAM_TYPE, inputTypes);
+ Date runTime = getFutureDate(initialDelay, timeUnit);
+ String triggerName = generateUniqueNameForInstance(instance, TRIGGER_PREFIX);
+- SimpleTrigger trigger = new SimpleTrigger(triggerName, Scheduler.DEFAULT_GROUP, runTime);
++ Trigger trigger = newTrigger()
++ .withIdentity(triggerName, Scheduler.DEFAULT_GROUP)
++ .startAt(runTime)
++ .build();
+ try {
+ sched.scheduleJob(job, trigger);
+ } catch (SchedulerException se) {
+@@ -218,7 +234,10 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ Object[] inputParams,
+ String cronExpression) {
+ String jobName = generateUniqueNameForInstance(instance, methodName);
+- JobDetail job = new JobDetail(jobName, Scheduler.DEFAULT_GROUP, JobWrapper.class);
++ JobDetail job = newJob()
++ .withIdentity(jobName, Scheduler.DEFAULT_GROUP)
++ .ofType(JobWrapper.class)
++ .build();
+ JobDataMap data = job.getJobDataMap();
+ data.put(RUNNABLE_INSTANCE, instance);
+ data.put(RUN_METHOD_NAME, methodName);
+@@ -226,7 +245,10 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ data.put(RUN_METHOD_PARAM_TYPE, inputTypes);
+ try {
+ String triggerName = generateUniqueNameForInstance(instance, TRIGGER_PREFIX);
+- Trigger trigger = new CronTrigger(triggerName, Scheduler.DEFAULT_GROUP, cronExpression);
++ Trigger trigger = newTrigger()
++ .withIdentity(triggerName, Scheduler.DEFAULT_GROUP)
++ .withSchedule(cronSchedule(cronExpression))
++ .build();
+ sched.scheduleJob(job, trigger);
+ } catch (Exception se) {
+ log.error("failed to schedule job", se);
+@@ -248,7 +270,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ */
+ public void rescheduleAJob(String oldTriggerName, String oldTriggerGroup, Trigger newTrigger) {
+ try {
+- sched.rescheduleJob(oldTriggerName, oldTriggerGroup, newTrigger);
++ sched.rescheduleJob(triggerKey(oldTriggerName, oldTriggerGroup), newTrigger);
+ } catch (SchedulerException se) {
+ log.error("failed to reschedule the job", se);
+ }
+@@ -263,7 +285,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ @Override
+ public void pauseJob(String jobId) {
+ try {
+- sched.pauseJob(jobId, Scheduler.DEFAULT_GROUP);
++ sched.pauseJob(jobKey(jobId, Scheduler.DEFAULT_GROUP));
+ } catch (SchedulerException se) {
+ log.error("failed to pause a job with id=" + jobId, se);
+ }
+@@ -279,7 +301,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ @Override
+ public void deleteJob(String jobId) {
+ try {
+- sched.deleteJob(jobId, Scheduler.DEFAULT_GROUP);
++ sched.deleteJob(jobKey(jobId, Scheduler.DEFAULT_GROUP));
+ } catch (SchedulerException se) {
+ log.error("failed to delete a job with id=" + jobId, se);
+ }
+@@ -295,7 +317,7 @@ public class SchedulerUtilQuartzImpl implements SchedulerUtil {
+ @Override
+ public void resumeJob(String jobId) {
+ try {
+- sched.resumeJob(jobId, Scheduler.DEFAULT_GROUP);
++ sched.resumeJob(jobKey(jobId, Scheduler.DEFAULT_GROUP));
+ } catch (SchedulerException se) {
+ log.error("failed to pause a job with id=" + jobId, se);
+ }
+diff --git a/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java b/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java
+index 2d62ab9..defd4e7 100644
+--- a/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java
++++ b/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java
+@@ -1,11 +1,13 @@
+ package org.ovirt.engine.core.utils.timer;
+
+ import static org.junit.Assert.assertEquals;
++import static org.quartz.impl.matchers.GroupMatcher.jobGroupEquals;
+
+ import java.lang.reflect.Method;
+ import java.util.ArrayList;
+ import java.util.Date;
+ import java.util.List;
++import java.util.Set;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicInteger;
+
+@@ -14,6 +16,7 @@ import org.junit.Before;
+ import org.junit.BeforeClass;
+ import org.junit.Ignore;
+ import org.junit.Test;
++import org.quartz.JobKey;
+ import org.quartz.Scheduler;
+ import org.quartz.SchedulerException;
+
+@@ -76,12 +79,14 @@ public class SchedulerUtilQuartsImplTest {
+ 1,
+ 3,
+ TimeUnit.MILLISECONDS);
+- String[] jobs = scheduler.getRawScheduler().getJobNames(Scheduler.DEFAULT_GROUP);
+- assertEquals("Number of scheduled jobs", 1, jobs.length);
++ // String[] jobs = scheduler.getRawScheduler().getJobNames(Scheduler.DEFAULT_GROUP);
++ Set<JobKey> jobKeys = scheduler.getRawScheduler().getJobKeys(jobGroupEquals(Scheduler.DEFAULT_GROUP));
++
++ assertEquals("Number of scheduled jobs", 1, jobKeys.size());
+ // delete a valid job
+ scheduler.deleteJob(jobId);
+- jobs = scheduler.getRawScheduler().getJobNames(Scheduler.DEFAULT_GROUP);
+- assertEquals("Number of scheduled jobs", 0, jobs.length);
++ jobKeys = scheduler.getRawScheduler().getJobKeys(jobGroupEquals(Scheduler.DEFAULT_GROUP));
++ assertEquals("Number of scheduled jobs", 0, jobKeys.size());
+
+ // delete invalid job
+ scheduler.deleteJob("nojob");
+diff --git a/pom.xml b/pom.xml
+index 923f05f..835d89c 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -31,7 +31,7 @@
+ <junit.version>4.7</junit.version>
+ <commons-codec.version>1.4</commons-codec.version>
+ <commons-lang.version>2.4</commons-lang.version>
+- <quartz.version>1.8.3</quartz.version>
++ <quartz.version>2.1.2</quartz.version>
+ <postgres.jdbc.version>8.4-702.jdbc4</postgres.jdbc.version>
+ <commons-collections>3.1</commons-collections>
+ <javax.transaction>1.1</javax.transaction>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-use-hibernate-jpa-2.0-api.patch b/ovirt-engine-use-hibernate-jpa-2.0-api.patch
new file mode 100644
index 0000000..54012fd
--- /dev/null
+++ b/ovirt-engine-use-hibernate-jpa-2.0-api.patch
@@ -0,0 +1,34 @@
+From 183ed779270e3e2c3e0abc2f121141bc1b7cb895 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Thu, 9 Feb 2012 16:17:23 +0100
+Subject: [PATCH 8/9] packaging: Use hibernate-jpa-2.0-api
+
+Replace use of hibernate-annotations with hibernate-jpa-2.0-api as
+it contains the same classes.
+
+Change-Id: I7c057bd7e3e68e30f9d19a9ddbe08c62eafab5fe
+---
+ backend/manager/modules/common/pom.xml | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/backend/manager/modules/common/pom.xml b/backend/manager/modules/common/pom.xml
+index 8c0d273..3541707 100644
+--- a/backend/manager/modules/common/pom.xml
++++ b/backend/manager/modules/common/pom.xml
+@@ -30,9 +30,11 @@
+ </dependency>
+
+ <dependency>
+- <groupId>org.hibernate</groupId>
+- <artifactId>hibernate-annotations</artifactId>
++ <groupId>org.hibernate.javax.persistence</groupId>
++ <artifactId>hibernate-jpa-2.0-api</artifactId>
++ <version>1.0.1.Final</version>
+ </dependency>
++
+ </dependencies>
+
+ <build>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-use-maven-jaxb2-plugin.patch b/ovirt-engine-use-maven-jaxb2-plugin.patch
new file mode 100644
index 0000000..2b7dedb
--- /dev/null
+++ b/ovirt-engine-use-maven-jaxb2-plugin.patch
@@ -0,0 +1,32 @@
+From aa470845e87957e80e4031aba438640e5bf45204 Mon Sep 17 00:00:00 2001
+From: Juan Hernandez <juan.hernandez at redhat.com>
+Date: Wed, 22 Feb 2012 17:31:48 +0100
+Subject: [PATCH] restapi: Use maven-jaxb2-plugin
+
+This is an updated version of the plugin used to generate Java
+code from the .xsd describing the entities. The older plugin (and
+its old dependencies) are not available in Fedora.
+
+Change-Id: I498ad50f280cd7f6e8ac0734169000e75bb85a1b
+---
+ .../modules/restapi/interface/definition/pom.xml | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/backend/manager/modules/restapi/interface/definition/pom.xml b/backend/manager/modules/restapi/interface/definition/pom.xml
+index 5f2e477..05c24d3 100644
+--- a/backend/manager/modules/restapi/interface/definition/pom.xml
++++ b/backend/manager/modules/restapi/interface/definition/pom.xml
+@@ -47,8 +47,8 @@
+ <plugins>
+
+ <plugin>
+- <groupId>com.sun.tools.xjc.maven2</groupId>
+- <artifactId>maven-jaxb-plugin</artifactId>
++ <groupId>org.jvnet.jaxb2.maven2</groupId>
++ <artifactId>maven-jaxb22-plugin</artifactId>
+
+ <executions>
+ <execution>
+--
+1.7.7.6
+
diff --git a/ovirt-engine-use-spring-instrument-instead-of-spring-agent.patch b/ovirt-engine-use-spring-instrument-instead-of-spring-agent.patch
new file mode 100644
index 0000000..dc30dea
--- /dev/null
+++ b/ovirt-engine-use-spring-instrument-instead-of-spring-agent.patch
@@ -0,0 +1,13 @@
+diff --git a/ear/pom.xml b/ear/pom.xml
+index b9f5b24..d28d33b 100644
+--- a/ear/pom.xml
++++ b/ear/pom.xml
+@@ -101,7 +101,7 @@
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+- <artifactId>spring-agent</artifactId>
++ <artifactId>spring-instrument</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
diff --git a/ovirt-engine.spec b/ovirt-engine.spec
index 0bc5dcc..cfb973d 100644
--- a/ovirt-engine.spec
+++ b/ovirt-engine.spec
@@ -1,79 +1,176 @@
-
-# Short names for engine directories:
-%global engine_name ovirt-engine
-%global engine_etc %{_sysconfdir}/%{engine_name}
-%global engine_usr %{_datadir}/%{engine_name}
-%global engine_var %{_var}/lib/%{engine_name}
-%global engine_jar %{_javadir}/%{engine_name}
-%global engine_tmp %{_var}/cache/%{engine_name}
-%global engine_ear %{engine_usr}/engine.ear
-%global engine_pki %{_sysconfdir}/pki/%{engine_name}
-%global restapi_war %{engine_ear}/restapi.war
-%global root_war %{engine_ear}/root.war
+# The upstream projects uses 4 digits after the version number to indicate
+# minor changes after the release:
+%global upstream_version 3.0.0
+%global upstream_release 0001
+
+# Short names for directories:
+%global engine_data_dir %{_datadir}/%{name}
+%global engine_jar_dir %{_javadir}/%{name}
+%global engine_bin_dir %{engine_data_dir}/bin
+%global engine_modules_dir %{engine_data_dir}/modules
+%global engine_deployments_dir %{engine_data_dir}/deployments
+%global engine_content_dir %{_var}/lib/ovirt-engine
+%global engine_temp_dir %{_var}/cache/ovirt-engine
+%global engine_ear_dir %{engine_deployments_dir}/engine.ear
+%global engine_pki_dir %{_sysconfdir}/pki/%{name}
+%global restapi_war_dir %{engine_ear_dir}/restapi.war
+%global root_war_dir %{engine_deployments_dir}/ROOT.war
# The name of the engine user and group:
-%global engine_user ovirt
%global engine_group ovirt
+%global engine_user ovirt
%global engine_uid 108
+# Directory to install python libraries:
+%global py_site_pkgs %(python -c "from distutils.sysconfig import get_python_lib as f;print f()")
+
# Macro to create the engine user:
%global create_engine_user \
-bin/getent group %{engine_group} >/dev/null || /sbin/groupadd -r %{engine_group}; \
-/bin/getent passwd %{engine_user} >/dev/null || /sbin/useradd -c "oVirt Manager" -u %{engine_uid} -g %{engine_group} -M -d %{engine_var} %{engine_user}
-
+/bin/getent group %{engine_group} >/dev/null || /sbin/groupadd -r %{engine_group}; \
+/bin/getent passwd %{engine_user} >/dev/null || /sbin/useradd -c "oVirt Manager" -u %{engine_uid} -g %{engine_group} -s /bin/nologin %{engine_user}
Name: ovirt-engine
-Version: 3.1.0
-Release: 0.1.20120701git95220c%{?dist}
+Version: %{upstream_version}.%{upstream_release}
+Release: 15%{?dist}
Summary: Management server for Open Virtualization
Group: Applications/System
License: ASL 2.0
URL: http://www.ovirt.org
-# git checkout git://gerrit.ovirt.org/ovirt-engine
-# git archive --prefix=ovirt-engine-3.1.0/ --format=tar 95220cd6c4d2c9cfddc52391f6d04ed750692d51 | xz > ovirt-engine-3.1.0.tar.xz
-Source0: %{name}-%{version}.tar.xz
+# Upstream source code:
+Source0: http://ovirt.org/releases/stable/src/%{name}-%{upstream_version}_%{upstream_release}.tar.gz
-# Update to Hibernate 3.6.10:
-Patch0: %{name}-update-hibernate.patch
+BuildArch: noarch
# Build only the backend:
-Patch20: %{name}-build-backend-only.patch
-
-# Fix the checkstyle group, artifact and version:
-Patch30: %{name}-fix-checkstyle-gav.patch
-
-# Update to Spring 3:
-# Upstream: http://gerrit.ovirt.org/3002
-Patch45: %{name}-update-spring.patch
+Patch0: %{name}-build-backend-only.patch
+
+# Remove some dependencies used only for tests:
+Patch1: %{name}-remove-mockito.patch
+Patch10: %{name}-remove-powermock.patch
+Patch20: %{name}-remove-p6spy.patch
+
+# Remove JB5 specifc login module:
+# Upstream: http://gerrit.ovirt.org/2353
+Patch30: %{name}-remove-jb5-login-module.patch
+
+# Add log4j:
+# Upstream: http://gerrit.ovirt.org/2353
+Patch40: %{name}-add-log4j.patch
+
+# Add the dummy Hibernate annotations:
+Patch50: %{name}-add-dummy-hibernate-annotations.patch
+Patch60: %{name}-use-hibernate-jpa-2.0-api.patch
+Patch70: %{name}-replace-guidtype-with-empty-class.patch
+
+# Remove the dependency on JNA, as this was useful in Windows only:
+# Upstream: http://gerrit.ovirt.org/3249
+Patch80: %{name}-remove-jna.patch
+
+# Remove the dependency on jboss interceptors as it is not used and complicates
+# building:
+# Upstream: http://gerrit.ovirt.org/1997
+Patch100: %{name}-remove-jboss-interceptors.patch
+
+# Remove all the Hibernate DAOs as they are not used currently and the bring a
+# lot of dependencies:
+Patch110: %{name}-remove-hibernate-daos.patch
+
+# Add the methods missing in PGHack:
+# Upstream: http://gerrit.ovirt.org/2347
+Patch120: %{name}-add-pghack-missing-methods.patch
+
+# Remove dependency on JBoss EJB specific annotations as they are not used and
+# they complicate the building in Fedora:
+# Upstream: http://gerrit.ovirt.org/2008
+# Upstream: http://gerrit.ovirt.org/2015
+Patch130: %{name}-remove-jboss-ejb-specific-annotations.patch
+
+# Update to Quartz 2.1:
+# Upstream: http://gerrit.ovirt.org/3250
+Patch140: %{name}-update-to-quartz-2.1.patch
+
+# Remove local user authentication as this only makes sense in Windows:
+# Upstream: http://gerrit.ovirt.org/3249
+Patch150: %{name}-remove-local-user-authentication.patch
+
+# Don't use the hibernate string helper, just to avoid the dependency in
+# hibernate:
+# Upstream: http://gerrit.ovirt.org/3252
+Patch160: %{name}-dont-use-hibernate-string-helper.patch
+
+# Use the version of the XJC compiler and the corresponding Maven plugin that
+# are available in Fedora:
+# Upstream: http://gerrit.ovirt.org/2222
+Patch170: %{name}-use-maven-jaxb2-plugin.patch
+
+# Update the custom serializer to use the builder class used starting with
+# Jackson 1.7:
+# Upstream: http://gerrit.ovirt.org/3251
+Patch180: %{name}-update-to-jackson-1.9.patch
# Remove Spring from the RESTAPI:
# Upstream: http://gerrit.ovirt.org/1390
-Patch60: %{name}-remove-spring-from-restapi.patch
+Patch190: %{name}-remove-spring-from-restapi.patch
+
+# Don't require activation, as it is included in Java 7 and there is no package
+# for it:
+# Upstream: http://gerrit.ovirt.org/2354
+Patch200: %{name}-dont-use-activation.patch
+
+# Newer versions of the assembly plugin complain if there is no id in the
+# assembly.xml file:
+Patch210: %{name}-add-id-to-the-notifier-assembly.patch
+
+# Fix a generics related bug in the Postgres dialect class:
+Patch220: %{name}-fix-postgresdbenginedialect.patch
+
+# The spring-agent artifact has been renamed to spring-instrument starting with
+# Spring 3:
+Patch240: %{name}-use-spring-instrument-instead-of-spring-agent.patch
# Remove the frontend related content from the ear:
-Patch70: %{name}-remove-frontend-from-ear.patch
+Patch250: %{name}-remove-frontend-from-ear.patch
-# Make dependency on commons-collections explicit:
-# Upstream: http://gerrit.ovirt.org/6597
-Patch71: %{name}-make-dependency-on-commons-collections-explicit.patch
+# Replace pubkey2ssh with ssh-keygen in order to make the package noarch:
+# Upstream: http://gerrit.ovirt.org/3086
+Patch260: %{name}-replace-pubkey2ssh-with-ssh-keygen.patch
+
+# Use build-classpath in scripts:
+Patch270: %{name}-fix-classpath-building-in-scripts.patch
-# Update to commons-configuration 1.8:
-Patch72: %{name}-update-commons-configuration.patch
+# Create the CA database files when needed instead of including them in the
+# package:
+Patch310: %{name}-create-database-and-serial-when-needed.patch
-# Don't try to modify /etc/sysctl.conf as this file doesn't exist in Fedora 18
-# and the modification that we are doing is not needed:
-Patch73: %{name}-dont-modify-sysctl.patch
+# Add the modules required by the engine and those included with the
+# application server but that need to be overriden:
+Patch340: %{name}-add-modules.patch
+
+# Add the resteasy listener to the restapi, as the current version of the
+# application server doesn't include the bootstrap of resteasy:
+Patch350: %{name}-add-resteasy-listener-to-restapi.patch
+
+# Fixes for the makefile and for the setup tool:
+Patch360: %{name}-makefile-fixes.patch
+Patch370: %{name}-setup-fixes.patch
+
+# Make the dependency on commons-collections explicit:
+# Upstream: http://gerrit.ovirt.org/6597
+Patch380: %{name}-make-dependency-on-commons-collections-explicit.patch
+
+# Update the code to use commons-configuration 1.8:
+Patch390: %{name}-update-commons-configuration.patch
# Add a README file:
-Patch80: %{name}-add-readme.patch
+Patch1000: %{name}-add-readme.patch
# Replace the index page with one that doesn't include links to the user portal
# or webadmin:
-Patch90: %{name}-replace-index-page.patch
-
+Patch1010: %{name}-replace-index-page.patch
-BuildArch: noarch
+# The the service configuration and scripts:
+Patch1020: %{name}-add-systemd-service.patch
# Build time requirements:
BuildRequires: apache-commons-beanutils
@@ -86,13 +183,10 @@ BuildRequires: apache-commons-logging
BuildRequires: apache-mina
BuildRequires: apache-sshd
BuildRequires: bea-stax-api
-BuildRequires: checkstyle
BuildRequires: dos2unix
-BuildRequires: jackson
-BuildRequires: hibernate-commons-annotations
BuildRequires: hibernate-jpa-2.0-api
BuildRequires: hibernate-validator
-BuildRequires: hibernate3
+BuildRequires: jackson
BuildRequires: jakarta-commons-httpclient
BuildRequires: java-devel
BuildRequires: javamail
@@ -101,12 +195,10 @@ BuildRequires: jboss-annotations-1.1-api
BuildRequires: jboss-ejb-3.1-api
BuildRequires: jboss-logging
BuildRequires: jboss-interceptors-1.1-api
-BuildRequires: jboss-jacc-1.4-api
BuildRequires: jboss-servlet-3.0-api
BuildRequires: jpackage-utils
BuildRequires: jsch
BuildRequires: log4j
-BuildRequires: make
BuildRequires: maven
BuildRequires: maven-antrun-plugin
BuildRequires: maven-assembly-plugin
@@ -132,56 +224,39 @@ BuildRequires: springframework-instrument
BuildRequires: springframework-jdbc
BuildRequires: spring-ldap
BuildRequires: xmlrpc3-client
-BuildRequires: unzip
-# Run time requirements (most of these requirements should be
-# moved to the subpackages):
+# Run time requirements (most of these requirements should be moved to the
+# subpackages):
Requires: bea-stax-api
-Requires: bind-utils
-Requires: cracklib-python
Requires: geronimo-validation
-Requires: hibernate-commons-annotations
Requires: hibernate-jpa-2.0-api
Requires: hibernate-validator
-Requires: httpd
Requires: jakarta-commons-httpclient
Requires: java
Requires: jboss-interceptors-1.1-api
Requires: jboss-logging
Requires: jpackage-utils
Requires: log4j
-Requires: mod_ssl
-Requires: ntp
-Requires: openssl
-Requires: policycoreutils-python
Requires: postgresql-jdbc
Requires: vdsm-bootstrap
-Requires: yum-plugin-versionlock
# For local database:
-Requires: postgresql-server >= 8.4.7
-Requires: postgresql-contrib >= 8.4.7
+Requires: postgresql-server
+Requires: postgresql-contrib
# Require JBoss AS 7:
-Requires: jboss-as >= 7.1.1-3
-
-# We can't require exactly the same version and release of the
-# setup package because it needs to be updated independely as part
-# of the update process implemented in the engine-upgrade script:
-Requires: %{name}-setup >= %{version}-%{release}
+Requires: jboss-as >= 7.1.0-3
-# Require the subpackages so that everything is installed when the
-# main package is installed:
-Requires: %{name}-backend = %{version}-%{release}
-Requires: %{name}-restapi = %{version}-%{release}
+# Require the subpackages:
Requires: %{name}-config = %{version}-%{release}
-Requires: %{name}-notification-service = %{version}-%{release}
+Requires: %{name}-backend = %{version}-%{release}
Requires: %{name}-dbscripts = %{version}-%{release}
-
-# These packages are not available in Fedora yet:
-#Requires: ovirt-iso-uploader
-#Requires: ovirt-image-uploader
-#Requires: ovirt-log-collector
+Requires: %{name}-iso-uploader = %{version}-%{release}
+Requires: %{name}-log-collector = %{version}-%{release}
+Requires: %{name}-notification-service = %{version}-%{release}
+Requires: %{name}-restapi = %{version}-%{release}
+Requires: %{name}-setup = %{version}-%{release}
+Requires: %{name}-tools-common = %{version}-%{release}
%description
@@ -190,8 +265,17 @@ system that provides advanced capabilities for managing the Open
virtualization infrastructure for Servers and Desktops.
+%package config
+Summary: Configuration tool for Open Virtualization Manager
+Group: Applications/System
+Requires: %{name}-tools-common = %{version}-%{release}
+
+%description config
+The configuration tool for Open Virtualization Manager.
+
+
%package backend
-Summary: Engine core of oVirt Engine
+Summary: Engine core of Open Virtualization Manager
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Requires: antlr-tool
@@ -229,104 +313,181 @@ Requires: ws-commons-util
Requires: xmlrpc3-client
Requires: xmlrpc3-common
-
%description backend
-The backend engine of oVirt Engine
+The backend engine of Open Virtualization Manager.
-%package restapi
-Summary: RESTful API for oVirt Engine
+%package dbscripts
+Summary: Database scripts for Open Virtualization Manager
Group: Applications/System
Requires: %{name} = %{version}-%{release}
-%description restapi
-The RESTful API for oVirt Engine
+%description dbscripts
+Database scripts for Open Virtualization Manager.
-%package setup
-Summary: Setup and upgrade scripts for oVirt Engine
+%package iso-uploader
+Summary: ISO Uploader tool for Open Virtualization Manager
Group: Applications/System
-Requires: %{name}
-Requires: lsof
-Requires: nfs-utils
+Requires: %{name} = %{version}-%{release}
+Requires: python-lxml
-%description setup
-Setup and upgrade scripts for oVirt Engine
+%description iso-uploader
+ISO Uploader tool for Open Virtualization Manager.
-%package dbscripts
-Summary: Database scripts for oVirt Engine
-Group: Applications/System
-Requires: %{name}
+%package javadoc
+Summary: Javadocs for %{name}
+Group: Development/Libraries
+Requires: jpackage-utils
-%description dbscripts
-Database scripts for oVirt Engine
+%description javadoc
+This package contains the API documentation for %{name}.
-%package tools-common
-Summary: Common libraries for oVirt Engine Tools
+%package log-collector
+Summary: Log Collector tool for Open Virtualization Manager
Group: Applications/System
Requires: %{name} = %{version}-%{release}
-Requires: apache-commons-collections
-Requires: apache-commons-logging
-Requires: apache-commons-lang
-Requires: apache-commons-codec
-Requires: apache-commons-configuration
-Requires: apache-commons-jxpath
-Requires: log4j
+Requires: python-lxml
+Requires: sos
-%description tools-common
-The common libraries used by oVirt Engine Tools
+%description log-collector
+Log Collector tool for Open Virtualization Manager.
%package notification-service
-Summary: Notification service for oVirt Engine Tools
+Summary: Notification service for Open Virtualization Manager Tools
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Requires: %{name}-tools-common = %{version}-%{release}
-Requires: classpathx-mail
+Requires: javamail
%description notification-service
-The notification service used by oVirt Engine
+The notification service used by Open Virtualization Manager.
-%package config
-Summary: Configuration tool for oVirt Engine
+%package restapi
+Summary: Open API for Red Hat Enterprise Virtualization Manager
Group: Applications/System
-Requires: %{name}-tools-common = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
+Requires: aopalliance
+Requires: apache-commons-codec
+Requires: jakarta-commons-httpclient
+Requires: httpcomponents-client
+Requires: httpcomponents-core
+Requires: jackson
+Requires: javassist
+Requires: glassfish-jaxb
+Requires: glassfish-jaxb-api
+Requires: jboss-logging
+Requires: jcip-annotations
+Requires: jettison
+Requires: resteasy
+Requires: scannotation
+Requires: snakeyaml
+Requires: bea-stax-api
+Requires: istack-commons
-%description config
-The configuration tool for oVirt Engine
+%description restapi
+The Open API for Red Hat Enterprise Virtualization Manager.
-%package setup-plugin-allinone
-Summary: All-in-one plugin for oVirt Engine's setup
+%package setup
+Summary: Setup and upgrade scripts for Open Virtualization Manager
Group: Applications/System
-Requires: %{name}-setup
-Requires: %{name}-sdk
-Requires: vdsm
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-config = %{version}-%{release}
+Requires: %{name}-dbscripts = %{version}-%{release}
+Requires: lsof
+Requires: nfs-utils
+Requires: cracklib-python
+Requires: policycoreutils-python
+Requires: bind-utils
-%description setup-plugin-allinone
-All-in-one plugin for oVirt Engine's setup
+%description setup
+Setup and upgrade scripts for Open Virtualization Manager.
+
+
+%package tools-common
+Summary: Common libraries for Open Virtualization Manager Tools
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: apache-commons-codec
+Requires: apache-commons-collections
+Requires: apache-commons-configuration
+Requires: apache-commons-jxpath
+Requires: apache-commons-lang
+Requires: apache-commons-logging
+Requires: log4j
+
+%description tools-common
+The common libraries used by Open Virtualization Manager Tools.
%prep
# Unpack and patch the sources:
-%setup -q
+%setup -q -c -n %{name}-%{upstream_version}_%{upstream_release}
# Apply the patches:
+%patch1 -p1
%patch0 -p1
+%patch10 -p1
%patch20 -p1
%patch30 -p1
-%patch45 -p1
+%patch40 -p1
+%patch50 -p1
%patch60 -p1
%patch70 -p1
-%patch71 -p1
-%patch72 -p1
-%patch73 -p1
%patch80 -p1
-%patch90 -p1
+%patch100 -p1
+%patch110 -p1
+%patch120 -p1
+%patch130 -p1
+%patch140 -p1
+%patch150 -p1
+%patch160 -p1
+%patch170 -p1
+%patch180 -p1
+%patch190 -p1
+%patch200 -p1
+%patch210 -p1
+%patch220 -p1
+%patch240 -p1
+%patch250 -p1
+%patch260 -p1
+%patch270 -p1
+%patch310 -p1
+%patch340 -p1
+%patch350 -p1
+%patch360 -p1
+%patch370 -p1
+%patch380 -p1
+%patch390 -p1
+%patch1000 -p1
+%patch1010 -p1
+%patch1020 -p1
+
+# Remove some obsolete files:
+rm -rf backend/manager/conf/ca/Setup.txt
+
+# Remove extra modules that are not needed starting with JBoss AS 7.1:
+rm -rf deployment/modules/org/jboss/as/naming
+rm -rf deployment/modules/sun/jdk
+
+# Fix the end of line of the database scripts:
+find backend/manager/dbscripts -type f -name '*.sh' -exec dos2unix {} \;
+
+# Remove the shebang (first line) from python generated files:
+sed -i 1d \
+backend/manager/tools/engine-logcollector/src/rhev/tests.py \
+backend/manager/tools/engine-logcollector/src/rhev/schemas/jbossds.py \
+backend/manager/tools/engine-logcollector/src/rhev/schemas/api.py \
+backend/manager/tools/engine-iso-uploader/src/schemas/jbossds.py \
+backend/manager/tools/engine-iso-uploader/src/schemas/api.py \
+backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/jbossds.py \
+backend/manager/tools/engine-tools-common-lib/src/rhev/schemas/api.py
%build
@@ -343,25 +504,32 @@ make \
%install
-# Use the makefile to do the normal installation, after that we
-# will need to replace jar files with links to their actual
-# locations:
-make PREFIX=%{buildroot} SOURCE_DIR=%{_sourcedir} install
+# Use the makefile to do the normal installation, after that we will need to
+# replace jar files with links to their actual locations:
+make \
+ PREFIX="%{buildroot}" \
+ install
+
+# XXX: Need to review this, but right now they have to be removed to avoid
+# rpmbuild complaints:
+rm %{buildroot}/usr/share/java/engine-tools-common-3.0.0-0001.jar
+rm %{buildroot}/usr/share/java/engine-tools-common.jar
+
# Create the directories required for jar and POM files:
-install -d -m 755 %{buildroot}%{engine_jar}
+install -d -m 755 %{buildroot}%{engine_jar_dir}
install -d -m 755 %{buildroot}%{_mavenpomdir}
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
# Jar and POM files:
-while read module_path artifact_id
+while read module_path artifact_id subpackage_name
do
pom_file="${module_path}/pom.xml"
- jar_file="${module_path}/target/${artifact_id}-%{version}.jar"
+ jar_file="${module_path}/target/${artifact_id}-%{upstream_version}-%{upstream_release}.jar"
install -p -m 644 ${pom_file} %{buildroot}%{_mavenpomdir}/JPP.%{name}-${artifact_id}.pom
if [ -f "${jar_file}" ]
then
- install -p -m 644 ${jar_file} %{buildroot}%{engine_jar}/${artifact_id}.jar
+ install -p -m 644 ${jar_file} %{buildroot}%{engine_jar_dir}/${artifact_id}.jar
%add_maven_depmap JPP.%{name}-${artifact_id}.pom %{name}/${artifact_id}.jar
else
%add_maven_depmap JPP.%{name}-${artifact_id}.pom
@@ -380,6 +548,7 @@ backend/manager/modules/vdsbroker vdsbroker
backend/manager/modules/searchbackend searchbackend
backend/manager/modules/beans manager-beans
backend/manager/modules/beans/scheduler scheduler
+backend/manager/modules/beans/vdsbroker vdsbrokerbean
backend/manager/modules/bll bll
backend/manager/modules/restapi restapi-parent
backend/manager/modules/restapi/interface restapi-interface
@@ -395,168 +564,157 @@ backend/manager/tools/engine-notifier/engine-notifier-service engine-notifier-se
backend/manager/tools/engine-notifier/engine-notifier-resources engine-notifier-resources
.
-# Remove all the .jar files from the .ear, as we will replace them with links
-# to their actual locations:
-find %{buildroot}%{engine_ear} -depth -name '*.jar' -exec rm -rf {} \;
+# Remove all the jar files, as they have to be replaced with links pointing to
+# the actual locations:
+find %{buildroot}%{engine_deployments_dir} -depth -name '*.jar' -exec rm -rf {} \;
+
+# Remove manifests files as the dependencies there confuse the class loader:
+find %{buildroot}%{engine_deployments_dir} -name MANIFEST.MF -delete
-# Replace jar files in the ear with links to their actuals
-# locations, first for jar files from this package, as for these
-# can't use build-classpath:
+# Replace jar files in the ear with links to their actuals locations, first for
+# jar files from this package, as for these can't use build-classpath:
while read jar_name ear_path
do
- ln -s %{engine_jar}/${jar_name}.jar %{buildroot}%{engine_ear}/${ear_path}.jar
+ ln -s %{engine_jar_dir}/${jar_name}.jar %{buildroot}%{engine_ear_dir}/${ear_path}.jar
done <<'.'
bll engine-bll
scheduler engine-scheduler
+vdsbrokerbean engine-vdsbroker
common lib/engine-common
compat lib/engine-compat
dal lib/engine-dal
engineencryptutils lib/engine-encryptutils
engine-tools-common lib/engine-tools-common
utils lib/engine-utils
-vdsbroker lib/engine-vdsbroker
+vdsbroker lib/vdsbroker
searchbackend lib/searchbackend
.
# Then for the system jar files (using build-classpath):
-while read jar_name lib_path
+while read jar_name
do
- ln -s `build-classpath ${jar_name}` %{buildroot}%{engine_ear}/lib/${lib_path}.jar
+ ln -s `build-classpath ${jar_name}` %{buildroot}%{engine_ear_dir}/lib
done <<'.'
-apache-mina/mina-core mina-core
-apache-sshd/sshd-core sshd-core
-commons-beanutils commons-beanutils
-commons-codec commons-codec
-commons-collections commons-collections
-commons-httpclient commons-httpclient
-commons-lang commons-lang
-dom4j dom4j
-geronimo-validation validation-api
-hibernate/hibernate-commons-annotations hibernate-commons-annotations
-hibernate-validator hibernate-validator
-jsch jsch
-objectweb-asm/asm-all asm-all
-quartz quartz
-slf4j/api slf4j-api
-springframework/spring-aop spring-aop
-springframework/spring-beans spring-beans
-springframework/spring-context spring-context
-springframework/spring-core spring-core
-springframework/spring-expression spring-expression
-springframework/spring-instrument spring-instrument
-springframework/spring-jdbc spring-jdbc
-springframework/spring-tx spring-tx
-spring-ldap/spring-ldap-core spring-ldap-core
-ws-commons-util ws-commons-util
-xmlrpc3-client xmlrpc-client
-xmlrpc3-common xmlrpc-common
+antlr
+aopalliance
+apache-commons-beanutils
+apache-commons-codec
+apache-commons-collections
+apache-commons-lang
+apache-mina/mina-core
+apache-sshd/sshd-core
+bea-stax-api
+dom4j
+geronimo-validation
+jackson/jackson-core-asl
+jackson/jackson-mapper-asl
+jakarta-commons-httpclient
+jsch
+objectweb-asm/asm-all
+quartz
+slf4j/api
+slf4j/log4j12
+springframework/spring-aop
+springframework/spring-beans
+springframework/spring-context
+springframework/spring-core
+springframework/spring-instrument
+springframework/spring-jdbc
+springframework/spring-tx
+spring-ldap/spring-ldap-core
+ws-commons-util
+xmlrpc3-client
+xmlrpc3-common
.
-# Replace jar files in the RESTAPI web application with links to ther
-# actual locations, first for jar files from this package, as for these
-# can't use build-classpath:
-while read jar_name lib_path
+# Replace jar files in the RESTAPI web application with links to ther actual
+# locations, first for jar files from this package, as for these can't use
+# build-classpath:
+while read jar_name
do
- ln -s %{engine_jar}/${jar_name}.jar %{buildroot}%{restapi_war}/WEB-INF/lib/${lib_path}.jar
+ ln -s %{engine_jar_dir}/${jar_name}.jar %{buildroot}%{restapi_war_dir}/WEB-INF/lib
done <<'.'
-interface-common-jaxrs interface-common-jaxrs
-restapi-definition restapi-definition
-restapi-jaxrs restapi-jaxrs
-restapi-types restapi-types
+interface-common-jaxrs
+restapi-definition
+restapi-jaxrs
+restapi-types
.
# Then for the system jar files (using build-classpath):
-while read jar_name lib_path
+while read jar_name
do
- ln -s `build-classpath ${jar_name}` %{buildroot}%{restapi_war}/WEB-INF/lib/${lib_path}.jar
+ ln -s `build-classpath ${jar_name}` %{buildroot}%{restapi_war_dir}/WEB-INF/lib
done <<'.'
-nakeyaml snakeyaml
+aopalliance
+apache-commons-codec
+jakarta-commons-httpclient
+httpcomponents/httpclient
+httpcomponents/httpcore
+jackson/jackson-jaxrs
+jackson/jackson-xc
+javassist
+jaxb-api
+glassfish-jaxb/jaxb-impl
+resteasy/jaxrs-api
+jboss-logging
+jcip-annotations
+jettison
+resteasy/resteasy-jackson-provider
+resteasy/resteasy-jaxb-provider
+resteasy/resteasy-jaxrs
+resteasy/resteasy-jettison-provider
+resteasy/resteasy-yaml-provider
+scannotation
+snakeyaml
+bea-stax-api
+istack-commons-runtime
.
-%preun
-if [ "$1" -eq 0 ]
-then
- curdate=`date +"%Y_%m_%d_%H_%M_%%S"`
- if [[ -d %{_sysconfdir}/pki/%{engine_name} ]]; then
- mkdir -p %{_sysconfdir}/pki/%{engine_name}-backups/%{engine_name}-${curdate}
- #backup whole 'rhevm' dir into the backup dir with current date
- cp -pR %{_sysconfdir}/pki/%{engine_name}/ %{_sysconfdir}/pki/%{engine_name}-backups/%{engine_name}-${curdate}/
- fi
-fi
-
-
-%postun
-if [ "$1" -eq 0 ]
-then
- if [[ -d %{_sysconfdir}/pki/%{engine_name} ]]; then
- rm -rf %{_sysconfdir}/pki/%{engine_name}
- fi
-
- if [[ -f %{_sysconfdir}/yum/pluginconf.d/versionlock.list ]]
- then
- sed -i '/ovirt/d' %{_sysconfdir}/yum/pluginconf.d/versionlock.list
- fi
-fi
-
-
-%pre
-%create_engine_user
-
-
-%pre backend
-%create_engine_user
-
-
-%pre notification-service
-%create_engine_user
+# Javadoc files:
+install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
+cp -rp target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%files
# The main package owns most of the directories:
-%dir %{engine_usr}
-%dir %{engine_usr}/ovirt-isos
-%dir %{engine_usr}/resources
-%dir %{engine_usr}/db-backups
-%dir %{engine_usr}/scripts
-%dir %{_localstatedir}/run/%{engine_name}
-%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/log/%{engine_name}
-%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/lock/%{engine_name}
-
-# VDS installer script:
-%{engine_usr}/scripts/vds_installer.py*
-
-# Log rotation script:
-%{engine_usr}/scripts/ovirtlogrot.sh
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/ovirt-isos
+%dir %{_datadir}/%{name}/db-backups
+%dir %{_datadir}/%{name}/scripts
+%dir %{_localstatedir}/run/%{name}
+%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/log/%{name}
+%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/lock/%{name}
+%{_datadir}/%{name}/scripts/vds_installer.py*
+%{_datadir}/%{name}/scripts/ovirtlogrot.sh
%{_sysconfdir}/cron.daily/ovirt-cron
-
-# Misc configuration files:
-%{engine_usr}/conf
-%{_sysconfdir}/tmpfiles.d/ovirt-engine.conf
+%config(noreplace) %{_sysconfdir}/tmpfiles.d/ovirt-engine.conf
# Engine configuration files:
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_etc}
-%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{engine_etc}/engine.conf
-%config(noreplace) %{engine_etc}/web-conf.js
-
-# Files needed by the service:
-%config(noreplace) %{_sysconfdir}/sysconfig/%{engine_name}
-%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{engine_etc}/engine-service.xml
-%config(noreplace) %{_sysconfdir}/security/limits.d/10-ovirt-engine.conf
-%attr(-, %{engine_user}, %{engine_group}) %{engine_etc}/engine-service-logging.properties
-%attr(-, %{engine_user}, %{engine_group}) %{engine_etc}/engine-service-users.properties
-%{engine_usr}/scripts/engine-service.py*
-%{_unitdir}/%{engine_name}.service
-
-# Jar files used by all the components:
-%dir %{engine_jar}
-%{engine_jar}/common.jar
-%{engine_jar}/compat.jar
-%{engine_jar}/utils.jar
-
-# POM files:
+%dir %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}
+%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}/engine.conf
+%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}/ovirt-engine.xml
+%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}/ovirt-engine-logging.properties
+%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}/ovirt-engine-users.properties
+%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{_sysconfdir}/%{name}/web-conf.js
+
+# Files needed by the systemd service:
+%{engine_bin_dir}/ovirt-engine.sh
+%{_unitdir}/ovirt-engine.service
+%config(noreplace) %{_sysconfdir}/sysconfig/ovirt-engine
+
+# The main package owns the dependencies map and directory containing the jar
+# files (but not all its contents):
%{_mavendepmapfragdir}/%{name}
+%dir %{engine_jar_dir}
+
+# The parent POM:
%{_mavenpomdir}/JPP.%{name}-parent.pom
+
+# Jar and POM files used by all the components:
+%{engine_jar_dir}/common.jar
+%{engine_jar_dir}/compat.jar
+%{engine_jar_dir}/utils.jar
%{_mavenpomdir}/JPP.%{name}-common.pom
%{_mavenpomdir}/JPP.%{name}-compat.pom
%{_mavenpomdir}/JPP.%{name}-utils.pom
@@ -568,13 +726,14 @@ fi
%files backend
# Jar files:
-%{engine_jar}/bll.jar
-%{engine_jar}/dal.jar
-%{engine_jar}/engine-config.jar
-%{engine_jar}/engineencryptutils.jar
-%{engine_jar}/scheduler.jar
-%{engine_jar}/searchbackend.jar
-%{engine_jar}/vdsbroker.jar
+%{engine_jar_dir}/bll.jar
+%{engine_jar_dir}/dal.jar
+%{engine_jar_dir}/engine-config.jar
+%{engine_jar_dir}/engineencryptutils.jar
+%{engine_jar_dir}/scheduler.jar
+%{engine_jar_dir}/searchbackend.jar
+%{engine_jar_dir}/vdsbroker.jar
+%{engine_jar_dir}/vdsbrokerbean.jar
# POM files:
%{_mavenpomdir}/JPP.%{name}-backend.pom
@@ -591,95 +750,161 @@ fi
%{_mavenpomdir}/JPP.%{name}-scheduler.pom
%{_mavenpomdir}/JPP.%{name}-searchbackend.pom
%{_mavenpomdir}/JPP.%{name}-vdsbroker.pom
-
-# Directories for the deployments, contents and temporary files need to
-# be owned by the engine user because the application server needs to
-# write to them:
-%attr(-, %{engine_user}, %{engine_group}) %{engine_var}
-%attr(-, %{engine_user}, %{engine_group}) %{engine_tmp}
-
-# The backend owns the directory of the ear and most of its contents,
-# but not all, as most of the web applications are owned by other
-# subpackages:
-%dir %{engine_ear}
-%{engine_ear}/META-INF
-%{engine_ear}/lib
-%{engine_ear}/engine-bll.jar
-%{engine_ear}/engine-scheduler.jar
+%{_mavenpomdir}/JPP.%{name}-vdsbrokerbean.pom
+
+# Directory for the engine modules that complement and override those provided
+# by the application server:
+
+# Directories for the deployments, contents and temporary files need to be
+# owned by the engine because the application server needs to write to them:
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_deployments_dir}
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_content_dir}
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_temp_dir}
+
+# This package owns the directory of the ear and some (not all) of its
+# contents:
+%dir %{engine_ear_dir}
+%dir %{engine_ear_dir}/lib
+%{engine_ear_dir}/META-INF
+%{engine_ear_dir}/engine-bll.jar
+%{engine_ear_dir}/engine-scheduler.jar
+%{engine_ear_dir}/engine-vdsbroker.jar
+%{engine_ear_dir}/lib/*.jar
# Root web application:
-%{root_war}
+%{root_war_dir}
# Sysprep files:
-%config(noreplace) %{engine_etc}/sysprep
-
-# PKI directories are owned by the engine user because it needs to
-# create files inside:
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/certs
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/keys
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/private
-%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/requests
+%config(noreplace) %{_sysconfdir}/%{name}/sysprep
# PKI scripts:
-%{engine_pki}/*.sh
-%{engine_pki}/generate-ssh-keys
+%{engine_pki_dir}/*.sh
+%{engine_pki_dir}/generate-ssh-keys
+
+# PKI Directories are owned by the application server because it needs to
+# create files inside:
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/certs
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/keys
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/private
+%dir %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/requests
# PKI configuration files:
-%config(noreplace) %{engine_pki}/openssl.conf
-%config(noreplace) %{engine_pki}/cacert.template
-%config(noreplace) %{engine_pki}/cert.template
+%config(noreplace) %{engine_pki_dir}/openssl.conf
+%config(noreplace) %{engine_pki_dir}/cacert.template
+%config(noreplace) %{engine_pki_dir}/cert.template
-# The certificate database files:
-%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/database.txt
-%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{engine_pki}/serial.txt
+# The certificate database files are not created by the RPM, but by the scripts
+# as needed:
+%ghost %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/database.txt
+%ghost %attr(-, %{engine_user}, %{engine_group}) %{engine_pki_dir}/serial.txt
# Modules:
-%{engine_usr}/modules
+%dir %{engine_modules_dir}
+%{engine_modules_dir}/org/postgresql
+%{engine_modules_dir}/com/sun/xml/bind
+%{engine_modules_dir}/org/hibernate/validator
-%files setup
+%files config
-# Links to the main programs:
-%{_bindir}/engine-setup
-%{_bindir}/engine-upgrade
-%{_bindir}/engine-check-update
-%{_bindir}/engine-cleanup
+# Links to the main scripts:
+%{_bindir}/engine-config
+%{_bindir}/engine-manage-domains
+
+# Scripts:
+%{_datadir}/%{name}/engine-config
+%{_datadir}/%{name}/engine-manage-domains
+%{_datadir}/%{name}/kerberos
+
+# Configuration files for the configuration tool:
+%dir %{_sysconfdir}/%{name}/engine-config
+%config(noreplace) %{_sysconfdir}/%{name}/engine-config/engine-config.conf
+%config(noreplace) %{_sysconfdir}/%{name}/engine-config/engine-config.*properties
+%config(noreplace) %{_sysconfdir}/%{name}/engine-config/log4j.xml
+
+# Configuration files for the domain management tool:
+%dir %{_sysconfdir}/%{name}/engine-manage-domains
+%config(noreplace) %{_sysconfdir}/%{name}/engine-manage-domains/engine-manage-domains.conf
+%config(noreplace) %{_sysconfdir}/%{name}/engine-manage-domains/log4j.xml
+
+
+%files dbscripts
+%{_datadir}/%{name}/dbscripts
+
+
+%files iso-uploader
+
+# Link to the main program:
+%{_bindir}/engine-iso-uploader
# Python scripts:
-%{engine_usr}/scripts/basedefs.py*
-%{engine_usr}/scripts/engine_validators.py*
-%{engine_usr}/scripts/setup_params.py*
-%{engine_usr}/scripts/setup_sequences.py*
-%{engine_usr}/scripts/setup_controller.py*
-%{engine_usr}/scripts/common_utils.py*
-%{engine_usr}/scripts/output_messages.py*
-%{engine_usr}/scripts/nfsutils.py*
-%{engine_usr}/scripts/engine-setup.py*
-%{engine_usr}/scripts/engine-cleanup.py*
-%{engine_usr}/scripts/engine-upgrade.py*
-%{engine_usr}/scripts/post_upgrade.py*
+%{_datadir}/%{name}/iso-uploader
-# Plugins directory:
-%dir %{engine_usr}/scripts/plugins
-%{engine_usr}/scripts/plugins/example_plugin_000.py*
+# Configuration files:
+%config(noreplace) %{_sysconfdir}/%{name}/isouploader.conf
+# Manual pages:
+%doc %{_mandir}/man8/engine-iso-uploader.8.gz
-%files setup-plugin-allinone
-%{engine_usr}/scripts/plugins/all_in_one_100.py*
+%files javadoc
-%files dbscripts
-%{engine_usr}/dbscripts
+%{_javadocdir}/%{name}
+
+
+%files log-collector
+
+# Main program:
+%{_bindir}/engine-log-collector
+
+# Python files:
+%{_datadir}/%{name}/log-collector
+
+# SOS plugins:
+%{py_site_pkgs}/sos/plugins/engine.py*
+%{py_site_pkgs}/sos/plugins/jboss.py*
+%{py_site_pkgs}/sos/plugins/postgresql.py*
+
+# Configuration files:
+%config(noreplace) %{_sysconfdir}/%{name}/logcollector.conf
+
+# Manual page pages:
+%doc %{_mandir}/man8/engine-log-collector.8.gz
+
+%doc LICENSE
+
+
+%files notification-service
+
+# Startup scripts:
+%{_datadir}/%{name}/notifier
+%{_sysconfdir}/init.d/engine-notifierd
+
+# Log and state directories must be owned by ovirt because the notifier service
+# runs with that user and needs to write them:
+%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/log/%{name}/notifier
+%dir %attr(-, %{engine_user}, %{engine_group}) %{_localstatedir}/run/%{name}/notifier
+
+# Configuration files:
+%dir %{_sysconfdir}/%{name}/notifier
+%config(noreplace) %{_sysconfdir}/%{name}/notifier/notifier.conf
+%config(noreplace) %{_sysconfdir}/%{name}/notifier/log4j.xml
+
+# Jar files:
+%{engine_jar_dir}/engine-notifier-service.jar
+
+# POM files:
+%{_mavenpomdir}/JPP.%{name}-engine-notifier.pom
%files restapi
# Jar files:
-%{engine_jar}/interface-common-jaxrs.jar
-%{engine_jar}/restapi-definition.jar
-%{engine_jar}/restapi-jaxrs.jar
-%{engine_jar}/restapi-types.jar
+%{engine_jar_dir}/interface-common-jaxrs.jar
+%{engine_jar_dir}/restapi-definition.jar
+%{engine_jar_dir}/restapi-jaxrs.jar
+%{engine_jar_dir}/restapi-types.jar
# POM files:
%{_mavenpomdir}/JPP.%{name}-interface-common-jaxrs.pom
@@ -689,69 +914,83 @@ fi
%{_mavenpomdir}/JPP.%{name}-restapi-parent.pom
%{_mavenpomdir}/JPP.%{name}-restapi-types.pom
-# Everything inside of the web application is owned by this
-# subpackage:
-%{restapi_war}
+# Everything inside of the web application is owned by this subpackage:
+%{restapi_war_dir}
+
+
+%files setup
+
+# Links to the main programs:
+%{_bindir}/engine-setup
+%{_bindir}/engine-cleanup
+
+# Python scripts:
+%{_datadir}/%{name}/scripts/basedefs.py*
+%{_datadir}/%{name}/scripts/engine_validators.py*
+%{_datadir}/%{name}/scripts/common_utils.py*
+%{_datadir}/%{name}/scripts/output_messages.py*
+%{_datadir}/%{name}/scripts/nfsutils.py*
+%{_datadir}/%{name}/scripts/engine-setup.py*
+%{_datadir}/%{name}/scripts/engine-cleanup.py*
+
+# Resources used during the setup:
+%dir %{_datadir}/%{name}/resources
+%{_datadir}/%{name}/conf
+
+# The main web application:
+# XXX: I think this should be directly installed inside the .ear or in the
+# deployments directory instead of having the setup tool copy it.
+%{_datadir}/%{name}/resources/jboss
%files tools-common
# Jar files:
-%{engine_jar}/engine-tools-common.jar
+%{engine_jar_dir}/engine-tools-common.jar
# POM files:
%{_mavenpomdir}/JPP.%{name}-engine-tools-common.pom
-%files config
+# Create the ovirt group and group for all the subpackages that contain
+# files owned by them:
+%pre
+%create_engine_user
-# Links to the main scripts:
-%{_bindir}/engine-config
-%{_bindir}/engine-manage-domains
+%pre backend
+%create_engine_user
-# Scripts:
-%{engine_usr}/engine-config
-%{engine_usr}/engine-manage-domains
-%{engine_usr}/kerberos
+%pre notification-service
+%create_engine_user
-# Configuration files for the configuration tool:
-%dir %{engine_etc}/engine-config
-%{engine_etc}/engine-config/engine-config.conf
-%{engine_etc}/engine-config/engine-config.*properties
-%{engine_etc}/engine-config/log4j.xml
-# Configuration files for the domain management tool:
-%dir %{engine_etc}/engine-manage-domains
-%{engine_etc}/engine-manage-domains/engine-manage-domains.conf
-%{engine_etc}/engine-manage-domains/log4j.xml
+%post notification-service
+# Register the service:
+/sbin/chkconfig --add engine-notifierd
-%files notification-service
-# Startup scripts:
-%{_datadir}/%{engine_name}/notifier
-%{_initddir}/engine-notifierd
+%preun notification-service
-# Log and state directories must be owned by ovirt because the notifier service
-# runs with that user and needs to write them:
-%dir %attr(-, %{engine_user}, %{engine_group}) %{_var}/log/%{engine_name}/notifier
-%dir %attr(-, %{engine_user}, %{engine_group}) %{_localstatedir}/run/%{engine_name}/notifier
-
-# Configuration files:
-%dir %{engine_etc}/notifier
-%config(noreplace) %attr(-, %{engine_user}, %{engine_group}) %{engine_etc}/notifier/notifier.conf
-%{engine_etc}/notifier/log4j.xml
+# If the last version of the package is going to be removed then stop and
+# disable the service:
+if [ $1 = 0 ]
+then
+ /sbin/service engine-notifierd stop > /dev/null 2>&1
+ /sbin/chkconfig --del engine-notifierd
+fi
-# Jar files:
-%{engine_jar}/engine-notifier-service.jar
-# POM files:
-%{_mavenpomdir}/JPP.%{name}-engine-notifier.pom
+%changelog
+* Tue Jul 24 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.0.0.0001-15
+- Make dependency on commons-collections explicit
+- Update to commons-configuration 1.8
+* Fri Jul 20 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.0.0.0001-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-%changelog
-* Fri May 25 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.1.0-0.1.20120701git95220c
-- Update to upstream 3.1 pre-release
+* Thu Jun 7 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.0.0.0001-13
+- Add requires for policycoreutils-python and bind-utils (rhbz#829642)
* Tue Apr 24 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.0.0.0001-12
- Fixes needed to work with the jboss-as package
@@ -786,7 +1025,7 @@ fi
- Replaced geronimo and tomcat API packages with equivalent jboss packages
- Removed c3p0 and snakeyml dependencies
- Thu Mar 15 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.0.0.0001-4
+* Thu Mar 15 2012 Juan Hernandez <juan.hernandez at redhat.com> - 3.0.0.0001-4
- Adjusted to build in Fedora from source
* Wed Jan 04 2012 Ronen Angluster <ranglust at redhat.com> - 3.0.0.0001-3
diff --git a/sources b/sources
index 6cb1d2b..51aff9e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ac37722f0428b44c6f0cbf432173ff11 ovirt-engine-3.1.0.tar.xz
+badaa6723ec1533f630a83da15c04495 ovirt-engine-3.0.0_0001.tar.gz
More information about the scm-commits
mailing list