ambari git commit: AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception (dlysnichenko)

2015-05-15 Thread dmitriusan
Repository: ambari
Updated Branches:
  refs/heads/trunk c36ec9091 - eef00a9ec


AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception 
(dlysnichenko)


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

Branch: refs/heads/trunk
Commit: eef00a9ec7d9561eeac087d743a852e3d34d67ba
Parents: c36ec90
Author: Lisnichenko Dmitro dlysniche...@hortonworks.com
Authored: Fri May 15 14:09:51 2015 +0300
Committer: Lisnichenko Dmitro dlysniche...@hortonworks.com
Committed: Fri May 15 14:09:51 2015 +0300

--
 .../internal/WidgetLayoutResourceProvider.java  |  9 
 .../entities/WidgetLayoutUserWidgetEntity.java  |  8 +++
 .../WidgetLayoutResourceProviderTest.java   | 23 
 .../ambari/server/orm/dao/WidgetDAOTest.java|  3 ++-
 .../server/orm/dao/WidgetLayoutDAOTest.java |  2 --
 5 files changed, 33 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
--
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
index 8f068d5..174a106 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
@@ -286,6 +286,15 @@ public class WidgetLayoutResourceProvider extends 
AbstractControllerResourceProv
 
   Set widgetsSet = (LinkedHashSet) 
propertyMap.get(WIDGETLAYOUT_WIDGETS_PROPERTY_ID);
 
+  //Remove old relations from widget entities
+  for (WidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntity : 
entity.getListWidgetLayoutUserWidgetEntity()) {
+
widgetLayoutUserWidgetEntity.getWidget().getListWidgetLayoutUserWidgetEntity()
+.remove(widgetLayoutUserWidgetEntity);
+widgetDAO.merge(widgetLayoutUserWidgetEntity.getWidget());
+  }
+  entity.setListWidgetLayoutUserWidgetEntity(new 
LinkedListWidgetLayoutUserWidgetEntity());
+  widgetLayoutDAO.merge(entity);
+
   ListWidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntityList 
= new LinkedListWidgetLayoutUserWidgetEntity();
   int order=0;
   for (Object widgetObject : widgetsSet) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
--
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
index 1d6e1b5..dbae31b 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.orm.entities;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Id;
@@ -43,7 +44,7 @@ public class WidgetLayoutUserWidgetEntity {
   @JoinColumn(name = widget_layout_id, referencedColumnName = id)
   private WidgetLayoutEntity widgetLayout;
 
-  @ManyToOne
+  @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, 
CascadeType.REFRESH})
   @JoinColumn(name = widget_id, referencedColumnName = id)
   private WidgetEntity widget;
 
@@ -97,10 +98,7 @@ public class WidgetLayoutUserWidgetEntity {
 
 WidgetLayoutUserWidgetEntity that = (WidgetLayoutUserWidgetEntity) o;
 
-if (widgetLayout.getId() != that.widgetLayout.getId()) return false;
-if (widget.getId() != that.widget.getId()) return false;
-
-return true;
+return (widgetLayout.equals(that.widgetLayout)  
widget.equals(that.widget));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
--
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
 

ambari git commit: AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception.

2015-05-14 Thread swagle
Repository: ambari
Updated Branches:
  refs/heads/trunk 3d9072733 - 501afc0f5


AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception.


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/501afc0f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/501afc0f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/501afc0f

Branch: refs/heads/trunk
Commit: 501afc0f58c65eaeccf6c388ae6100c2c3d31048
Parents: 3d90727
Author: Siddharth Wagle swa...@hortonworks.com
Authored: Thu May 14 16:07:19 2015 -0700
Committer: Siddharth Wagle swa...@hortonworks.com
Committed: Thu May 14 16:07:19 2015 -0700

--
 .../internal/WidgetLayoutResourceProvider.java  |  9 
 .../entities/WidgetLayoutUserWidgetEntity.java  |  8 +++
 .../WidgetLayoutResourceProviderTest.java   | 23 
 3 files changed, 31 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
--
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
index 8f068d5..174a106 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java
@@ -286,6 +286,15 @@ public class WidgetLayoutResourceProvider extends 
AbstractControllerResourceProv
 
   Set widgetsSet = (LinkedHashSet) 
propertyMap.get(WIDGETLAYOUT_WIDGETS_PROPERTY_ID);
 
+  //Remove old relations from widget entities
+  for (WidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntity : 
entity.getListWidgetLayoutUserWidgetEntity()) {
+
widgetLayoutUserWidgetEntity.getWidget().getListWidgetLayoutUserWidgetEntity()
+.remove(widgetLayoutUserWidgetEntity);
+widgetDAO.merge(widgetLayoutUserWidgetEntity.getWidget());
+  }
+  entity.setListWidgetLayoutUserWidgetEntity(new 
LinkedListWidgetLayoutUserWidgetEntity());
+  widgetLayoutDAO.merge(entity);
+
   ListWidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntityList 
= new LinkedListWidgetLayoutUserWidgetEntity();
   int order=0;
   for (Object widgetObject : widgetsSet) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
--
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
index 1d6e1b5..dbae31b 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.orm.entities;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Id;
@@ -43,7 +44,7 @@ public class WidgetLayoutUserWidgetEntity {
   @JoinColumn(name = widget_layout_id, referencedColumnName = id)
   private WidgetLayoutEntity widgetLayout;
 
-  @ManyToOne
+  @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, 
CascadeType.REFRESH})
   @JoinColumn(name = widget_id, referencedColumnName = id)
   private WidgetEntity widget;
 
@@ -97,10 +98,7 @@ public class WidgetLayoutUserWidgetEntity {
 
 WidgetLayoutUserWidgetEntity that = (WidgetLayoutUserWidgetEntity) o;
 
-if (widgetLayout.getId() != that.widgetLayout.getId()) return false;
-if (widget.getId() != that.widget.getId()) return false;
-
-return true;
+return (widgetLayout.equals(that.widgetLayout)  
widget.equals(that.widget));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
--
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
index 1a9e230..8184d34 100644
---