From 04f9a9d2dbd2d79bfffea9c5a6b7ba1b32c5f42b Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Mon, 17 Nov 2014 15:29:03 +0000
Subject: [PATCH] #396 fix - Supporting MySQL, changed "persist()" by "merge()"
---
securis/src/main/resources/META-INF/persistence.xml | 5 +-
securis/src/main/java/net/curisit/securis/db/License.java | 4 ++
securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java | 26 ++++++++----
securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java | 2
securis/src/main/resources/log4j2.xml | 1
securis/src/main/java/net/curisit/securis/db/LicenseHistory.java | 21 ++++++----
securis/src/main/java/net/curisit/securis/services/LicenseResource.java | 8 +++-
securis/src/main/java/net/curisit/securis/services/ApplicationResource.java | 21 ++++++----
securis/src/main/java/net/curisit/securis/services/PackResource.java | 21 ++++++----
9 files changed, 69 insertions(+), 40 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/db/License.java b/securis/src/main/java/net/curisit/securis/db/License.java
index 5d28362..c8e1e1a 100644
--- a/securis/src/main/java/net/curisit/securis/db/License.java
+++ b/securis/src/main/java/net/curisit/securis/db/License.java
@@ -16,6 +16,7 @@
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
+import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@@ -349,6 +350,9 @@
LOG.error("There are more than 1 active license for request data: {}\nHash: {}", requestData, BlockedRequest.generateHash(requestData));
throw new SeCurisServiceException(ErrorCodes.DUPLICATED_REQUEST_DATA, "There are more than 1 active license for request data hash: "
+ BlockedRequest.generateHash(requestData));
+ } catch (NoResultException e) {
+ // There is no license for request data
+ return null;
}
}
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java b/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
index 3666c03..e44e236 100644
--- a/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
@@ -3,6 +3,7 @@
import java.io.Serializable;
import java.util.Date;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@@ -52,7 +53,9 @@
private String action;
private String comments;
- private Date timestamp;
+ @Column(name = "creation_timestamp")
+ @JsonProperty("creation_timestamp")
+ private Date creationTimestamp;
public int getId() {
return id;
@@ -95,18 +98,18 @@
this.comments = comments;
}
- public Date getTimestamp() {
- return timestamp;
- }
-
- public void setTimestamp(Date timestamp) {
- this.timestamp = timestamp;
- }
-
public void setId(int id) {
this.id = id;
}
+ public Date getCreationTimestamp() {
+ return creationTimestamp;
+ }
+
+ public void setCreationTimestamp(Date creationTimestamp) {
+ this.creationTimestamp = creationTimestamp;
+ }
+
public static class Actions {
public static final String CREATE = "creation";
public static final String ADD_REQUEST = "request";
diff --git a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
index c399160..28e3625 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
@@ -154,22 +154,27 @@
}
currentapp.setName(app.getName());
currentapp.setDescription(app.getDescription());
- em.persist(currentapp);
+ em.merge(currentapp);
Set<ApplicationMetadata> newMD = app.getApplicationMetadata();
for (ApplicationMetadata currentMd : currentapp.getApplicationMetadata()) {
- if (newMD == null || !newMD.contains(currentMd))
- ;
- em.remove(currentMd);
+ if (newMD == null || !newMD.contains(currentMd)) {
+ em.remove(currentMd);
+ }
}
if (newMD != null) {
+ Set<ApplicationMetadata> oldMD = currentapp.getApplicationMetadata();
for (ApplicationMetadata md : newMD) {
- md.setApplication(app);
- if (md.getCreationTimestamp() == null) {
- md.setCreationTimestamp(app.getCreationTimestamp());
+ if (oldMD.contains(md)) {
+ em.merge(md);
+ } else {
+ md.setApplication(app);
+ if (md.getCreationTimestamp() == null) {
+ md.setCreationTimestamp(app.getCreationTimestamp());
+ }
+ em.persist(md);
}
- em.persist(md);
}
}
currentapp.setApplicationMetadata(app.getApplicationMetadata());
diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
index e338592..2428bb1 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
@@ -358,11 +358,11 @@
try {
lic.setRequestData(JsonUtils.toJSON((RequestBean) signedLicense));
if (BlockedRequest.isRequestBlocked(lic.getRequestData(), em)) {
- throw new SeCurisServiceException(ErrorCodes.BLOCKED_REQUEST_DATA, "Given request data is blocked and cannot be activate");
+ throw new SeCurisServiceException(ErrorCodes.BLOCKED_REQUEST_DATA, "Given request data is blocked and cannot be activated");
}
lic.setLicenseData(JsonUtils.toJSON(signedLicense));
} catch (SeCurisException e) {
- LOG.error("Error generaing license JSON", e);
+ LOG.error("Error generating license JSON", e);
throw new SeCurisServiceException(ErrorCodes.INVALID_FORMAT, "Error generating license JSON");
}
} else {
@@ -371,11 +371,15 @@
lic.setCreatedBy(createdBy);
lic.setCreationTimestamp(new Date());
lic.setModificationTimestamp(lic.getCreationTimestamp());
+ LOG.info("LICENSE: {}", lic);
em.persist(lic);
+ LOG.info("LICENSE on HISTORY create");
em.persist(licenseHelper.createLicenseHistoryAction(lic, createdBy, LicenseHistory.Actions.CREATE));
if (lic.getStatus() == LicenseStatus.ACTIVE) {
+ LOG.info("LICENSE ACTIVATION on HISTORY create");
em.persist(licenseHelper.createLicenseHistoryAction(lic, createdBy, LicenseHistory.Actions.CREATE, "Activated on creation"));
}
+ LOG.info("LICENSE created oK ??");
return Response.ok(lic).build();
}
diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
index 2a800e0..79f4e5c 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
@@ -132,8 +132,8 @@
lt.setCreationTimestamp(new Date());
em.persist(lt);
- Set<LicenseTypeMetadata> newMD = lt.getMetadata();
-
+ Set<LicenseTypeMetadata> newMD = lt.getMetadata();
+
if (newMD != null) {
for (LicenseTypeMetadata md : newMD) {
md.setLicenseType(lt);
@@ -174,21 +174,29 @@
currentlt.setCode(lt.getCode());
currentlt.setName(lt.getName());
currentlt.setDescription(lt.getDescription());
- em.persist(currentlt);
-
- Set<LicenseTypeMetadata> newMD = lt.getMetadata();
+
+ Set<LicenseTypeMetadata> newMD = lt.getMetadata();
for (LicenseTypeMetadata currentMd : currentlt.getMetadata()) {
- if (newMD == null || !newMD.contains(currentMd));
+ if (newMD == null || !newMD.contains(currentMd)) {
em.remove(currentMd);
+ LOG.info("Removing MD: {}", currentMd);
+ }
}
-
+
if (newMD != null) {
+ Set<LicenseTypeMetadata> oldMD = currentlt.getMetadata();
+
for (LicenseTypeMetadata md : newMD) {
- md.setLicenseType(currentlt);
- em.persist(md);
+ if (oldMD.contains(md)) {
+ em.merge(md);
+ } else {
+ md.setLicenseType(currentlt);
+ em.persist(md);
+ }
}
}
currentlt.setMetadata(newMD);
+ em.merge(currentlt);
return Response.ok(currentlt).build();
}
diff --git a/securis/src/main/java/net/curisit/securis/services/PackResource.java b/securis/src/main/java/net/curisit/securis/services/PackResource.java
index cd18426..8a29756 100644
--- a/securis/src/main/java/net/curisit/securis/services/PackResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/PackResource.java
@@ -225,23 +225,28 @@
currentPack.setComments(pack.getComments());
currentPack.setNumLicenses(pack.getNumLicenses());
- em.persist(currentPack);
-
Set<PackMetadata> newMD = pack.getMetadata();
for (PackMetadata currentMd : currentPack.getMetadata()) {
- if (newMD == null || !newMD.contains(currentMd))
- ;
- em.remove(currentMd);
+ if (newMD == null || !newMD.contains(currentMd)) {
+ em.remove(currentMd);
+ }
}
if (newMD != null) {
+ Set<PackMetadata> oldMD = currentPack.getMetadata();
for (PackMetadata md : newMD) {
- md.setPack(currentPack);
- em.persist(md);
+ if (oldMD.contains(md)) {
+ em.merge(md);
+ } else {
+ md.setPack(currentPack);
+ em.persist(md);
+ }
}
}
currentPack.setMetadata(newMD);
- return Response.ok(pack).build();
+ em.merge(currentPack);
+
+ return Response.ok(currentPack).build();
}
@POST
diff --git a/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java b/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
index 191e53d..e3346b2 100644
--- a/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
+++ b/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
@@ -45,7 +45,7 @@
LicenseHistory lh = new LicenseHistory();
lh.setLicense(lic);
lh.setUser(user);
- lh.setTimestamp(new Date());
+ lh.setCreationTimestamp(new Date());
lh.setAction(action);
lh.setComments(comments);
return lh;
diff --git a/securis/src/main/resources/META-INF/persistence.xml b/securis/src/main/resources/META-INF/persistence.xml
index 69af565..92977c8 100644
--- a/securis/src/main/resources/META-INF/persistence.xml
+++ b/securis/src/main/resources/META-INF/persistence.xml
@@ -14,8 +14,9 @@
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.connection.datasource" value="java:comp/env/jdbc/SeCurisDS" />
-<!-- <property name="hibernate.show_sql" value="true" />
- <property name="hibernate.format_sql" value="true"/>
+ <property name="hibernate.show_sql" value="true" />
+
+ <!-- <property name="hibernate.format_sql" value="true"/>
-->
</properties>
diff --git a/securis/src/main/resources/log4j2.xml b/securis/src/main/resources/log4j2.xml
index c78efd8..b8b903c 100644
--- a/securis/src/main/resources/log4j2.xml
+++ b/securis/src/main/resources/log4j2.xml
@@ -23,7 +23,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n" />
</Console>
-
</Appenders>
<Loggers>
--
Gitblit v1.3.2