rsanchez
2014-10-14 fb1b6755a9ecd43601dc4fbef9166d11d8a86f24
securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
....@@ -2,6 +2,7 @@
22
33 import java.util.Date;
44 import java.util.List;
5
+import java.util.Set;
56
67 import javax.inject.Inject;
78 import javax.inject.Provider;
....@@ -25,6 +26,7 @@
2526 import net.curisit.integrity.commons.Utils;
2627 import net.curisit.securis.DefaultExceptionHandler;
2728 import net.curisit.securis.db.Application;
29
+import net.curisit.securis.db.ApplicationMetadata;
2830 import net.curisit.securis.utils.TokenHelper;
2931
3032 import org.apache.logging.log4j.LogManager;
....@@ -110,6 +112,14 @@
110112 EntityManager em = emProvider.get();
111113 app.setCreationTimestamp(new Date());
112114 em.persist(app);
115
+ LOG.info("App ID: {}", app.getId());
116
+ if (app.getApplicationMetadata() != null) {
117
+ for (ApplicationMetadata md : app.getApplicationMetadata()) {
118
+ md.setApplication(app);
119
+ md.setCreationTimestamp(app.getCreationTimestamp());
120
+ em.persist(md);
121
+ }
122
+ }
113123
114124 return Response.ok(app).build();
115125 }
....@@ -134,7 +144,23 @@
134144 currentapp.setName(app.getName());
135145 currentapp.setDescription(app.getDescription());
136146 em.persist(currentapp);
137
-
147
+
148
+ Set<ApplicationMetadata> newMD = app.getApplicationMetadata();
149
+ for (ApplicationMetadata currentMd : currentapp.getApplicationMetadata()) {
150
+ if (newMD == null || !newMD.contains(currentMd));
151
+ em.remove(currentMd);
152
+ }
153
+
154
+ if (newMD != null) {
155
+ for (ApplicationMetadata md : newMD) {
156
+ md.setApplication(app);
157
+ if (md.getCreationTimestamp() == null) {
158
+ md.setCreationTimestamp(app.getCreationTimestamp());
159
+ }
160
+ em.persist(md);
161
+ }
162
+ }
163
+ currentapp.setApplicationMetadata(app.getApplicationMetadata());
138164 return Response.ok(currentapp).build();
139165 }
140166