From 182ddf022ebb56af558c82dd466b206097fea7c9 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 01 Oct 2014 18:18:12 +0000
Subject: [PATCH] #2021 config - Added Metadata hibernate entities

---
 securis/src/main/java/net/curisit/securis/SeCurisServer.java          |   13 +
 securis/src/main/java/net/curisit/securis/db/Application.java         |   14 +
 securis/src/main/java/net/curisit/securis/beans/MetadataType.java     |   16 ++
 securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java |  116 ++++++++++++++
 securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java |  123 +++++++++++++++
 securis/src/main/java/net/curisit/securis/db/LicenseType.java         |   33 +++
 securis/src/main/java/net/curisit/securis/db/PackMetadata.java        |  114 ++++++++++++++
 7 files changed, 419 insertions(+), 10 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/SeCurisServer.java b/securis/src/main/java/net/curisit/securis/SeCurisServer.java
index 961da24..1e7bb8d 100644
--- a/securis/src/main/java/net/curisit/securis/SeCurisServer.java
+++ b/securis/src/main/java/net/curisit/securis/SeCurisServer.java
@@ -118,7 +118,7 @@
         Properties props = new Properties();
         props.put("javax.persistence.jdbc.password", securisModule.getPassword());
         props.put("javax.persistence.jdbc.url", securisModule.getUrl(securisModule.getAppDir()));
-        LOG.info("BD Url: {} {}", securisModule.getUrl(securisModule.getAppDir()), securisModule.getPassword());
+        //LOG.info("BD Url: {} {}", securisModule.getUrl(securisModule.getAppDir()), securisModule.getPassword());
         jpaPersistModule.properties(props);
 
         injector = Guice.createInjector(securisModule, new RequestsModule(), jpaPersistModule);
@@ -150,7 +150,13 @@
         QueuedThreadPool threadPool = new QueuedThreadPool();
         threadPool.setMaxThreads(50);
         
-        server = new Server(Config.getInt(Config.KEYS.SERVER_PORT, 9080));
+        server = new Server();
+        
+        ServerConnector httpConnector = new ServerConnector(server);
+        httpConnector.setPort(Config.getInt(Config.KEYS.SERVER_PORT, 9080));
+        httpConnector.setHost(Config.get(Config.KEYS.SERVER_HOSTNAME, "0.0.0.0"));
+        server.addConnector(httpConnector);
+        
         ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
         context.setContextPath("/");
         context.addEventListener(injector.getInstance(GuiceResteasyBootstrapServletContextListener.class));
@@ -176,7 +182,6 @@
 
         ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
         context.setErrorHandler(errorHandler);
-        LOG.info("Error Handlers: " + context.getErrorHandler());
         ContextHandlerCollection contexts = new ContextHandlerCollection();
 
         contexts.setHandlers(new Handler[] {
@@ -204,7 +209,6 @@
 //        sslContextFactory.setTrustStorePassword("curist3c");
         sslContextFactory.checkKeyStore();
         sslContextFactory.setNeedClientAuth(false);
-        LOG.info("Protocol: {}", sslContextFactory.getProtocol());
         
         ServerConnector sslConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory,HttpVersion.HTTP_1_1.asString()), new HttpConnectionFactory(https_config));
         sslConnector.setPort(Config.getInt(Config.KEYS.SERVER_SSL_PORT, 9443));
@@ -217,6 +221,7 @@
         try {
             server.start();
             savePID();
+            CONSOLE.info("Server running in: {}", String.format("http://%s:%d", httpConnector.getHost(), httpConnector.getPort()));
             server.join();
         } catch (Exception e) {
             LOG.error("Error starting SeCurisServer", e);
diff --git a/securis/src/main/java/net/curisit/securis/beans/MetadataType.java b/securis/src/main/java/net/curisit/securis/beans/MetadataType.java
new file mode 100644
index 0000000..a48734c
--- /dev/null
+++ b/securis/src/main/java/net/curisit/securis/beans/MetadataType.java
@@ -0,0 +1,16 @@
+package net.curisit.securis.beans;
+
+public enum MetadataType {
+
+    NUMBER(1),
+    STRING(2),
+    BOOLEAN(3);
+    
+    private final int id;
+    MetadataType(int id) {
+        this.id = id;
+    }
+    public int getId() {
+        return id;
+    }
+}
diff --git a/securis/src/main/java/net/curisit/securis/db/Application.java b/securis/src/main/java/net/curisit/securis/db/Application.java
index e32417f..055a12a 100644
--- a/securis/src/main/java/net/curisit/securis/db/Application.java
+++ b/securis/src/main/java/net/curisit/securis/db/Application.java
@@ -49,6 +49,12 @@
     @OneToMany(fetch = FetchType.LAZY, mappedBy = "application")
     private Set<LicenseType> licenseTypes;
 
+    @JsonIgnore
+    // We don't include the referenced entities to limit the size of each row at
+    // the listing
+    @OneToMany(fetch = FetchType.LAZY, mappedBy = "application")
+    private Set<ApplicationMetadata> metadata;
+
     public int getId() {
         return id;
     }
@@ -89,4 +95,12 @@
         this.licenseTypes = licenseTypes;
     }
 
+    public Set<ApplicationMetadata> getApplicationMetadata() {
+        return metadata;
+    }
+
+    public void setApplicationMetadata(Set<ApplicationMetadata> metadata) {
+        this.metadata = metadata;
+    }
+
 }
diff --git a/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java b/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java
new file mode 100644
index 0000000..d8094c2
--- /dev/null
+++ b/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java
@@ -0,0 +1,123 @@
+package net.curisit.securis.db;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import net.curisit.securis.beans.MetadataType;
+
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+/**
+ * Entity implementation class for Entity: application_metadata
+ * 
+ */
+@JsonAutoDetect
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@Entity
+@Table(name = "application_metadata")
+@NamedQueries({
+    @NamedQuery(name = "list-application-metadata", query = "SELECT a FROM ApplicationMetadata a where a.application.id = :applicationId")
+})
+public class ApplicationMetadata implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue
+    private int id;
+
+    private String key;
+
+    private String description;
+
+    private MetadataType dataType;
+
+    @JsonIgnore
+    @ManyToOne
+    @JoinColumn(name = "application_id")
+    private Application application;
+
+    @Column(name = "creation_timestamp")
+    private Date creationTimestamp;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public MetadataType getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(MetadataType dataType) {
+        this.dataType = dataType;
+    }
+
+    public Application getApplication() {
+        return application;
+    }
+
+    public void setApplication(Application application) {
+        this.application = application;
+    }
+
+    public Date getCreationTimestamp() {
+        return creationTimestamp;
+    }
+
+    public void setCreationTimestamp(Date creationTimestamp) {
+        this.creationTimestamp = creationTimestamp;
+    }
+
+
+    @JsonProperty("application_id")
+    public Integer getApplicationId() {
+        return application == null ? null : application.getId();
+    }
+
+    @JsonProperty("application_id")
+    public void setApplicationId(Integer idApplication) {
+        if (idApplication == null) {
+            application = null;
+        } else {
+            application = new Application();
+            application.setId(idApplication);
+        }
+    }
+
+}
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseType.java b/securis/src/main/java/net/curisit/securis/db/LicenseType.java
index c3e378c..a38deb9 100644
--- a/securis/src/main/java/net/curisit/securis/db/LicenseType.java
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseType.java
@@ -2,15 +2,18 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Set;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 import org.apache.logging.log4j.LogManager;
@@ -31,10 +34,12 @@
 @Entity
 @Table(name = "license_type")
 @NamedQueries({
-    @NamedQuery(name = "list-license_types", query = "SELECT lt FROM LicenseType lt")
+    @NamedQuery(name = "list-license_types", query = "SELECT lt FROM LicenseType lt"),
+    @NamedQuery(name = "list-application-license_types", query = "SELECT lt FROM LicenseType lt where lt.application.id = :appId")
 })
 public class LicenseType implements Serializable {
 
+    @SuppressWarnings("unused")
     private static final Logger LOG = LogManager.getLogger(LicenseType.class);
     private static final long serialVersionUID = 1L;
 
@@ -53,6 +58,20 @@
     @ManyToOne
     @JoinColumn(name = "application_id")
     private Application application;
+
+    @JsonIgnore
+    // We don't include the referenced entities to limit the size of each row at
+    // the listing
+    @OneToMany(fetch = FetchType.LAZY, mappedBy = "license_type")
+    private Set<LicenseTypeMetadata> metadata;
+    
+    public Set<LicenseTypeMetadata> getMetadata() {
+        return metadata;
+    }
+
+    public void setMetadata(Set<LicenseTypeMetadata> metadata) {
+        this.metadata = metadata;
+    }
 
     public int getId() {
         return id;
@@ -91,21 +110,23 @@
     }
 
     @JsonProperty("application_name")
-    public String getParentOrgName() {
+    public String getApplicationName() {
         return application == null ? null : application.getName();
     }
 
     @JsonProperty("application_id")
     public Integer getApplicationId() {
-        LOG.info("application  " + application);
         return application == null ? null : application.getId();
     }
 
     @JsonProperty("application_id")
     public void setApplicationId(Integer appId) {
-        LOG.info("setApplicationId(Integer appId)  " + appId);
-        application = new Application();
-        application.setId(appId);
+        if (appId == null) {
+            application = null;
+        } else {
+            application = new Application();
+            application.setId(appId);
+        }
     }
 
     public void setApplication(Application application) {
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java b/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java
new file mode 100644
index 0000000..350788d
--- /dev/null
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java
@@ -0,0 +1,116 @@
+package net.curisit.securis.db;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import net.curisit.securis.beans.MetadataType;
+
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+/**
+ * Entity implementation class for Entity: licensetype_metadata
+ * 
+ */
+@JsonAutoDetect
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@Entity
+@Table(name = "licensetype_metadata")
+@NamedQueries({
+    @NamedQuery(name = "list-licensetype-metadata", query = "SELECT a FROM LicenseTypeMetadata a where a.licenseType.id = :licenseTypeId")
+})
+public class LicenseTypeMetadata implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue
+    private int id;
+
+    private String value;
+
+    @JsonIgnore
+    @ManyToOne
+    @JoinColumn(name = "metadata_id")
+    private ApplicationMetadata metadata;
+
+    @JsonIgnore
+    @ManyToOne
+    @JoinColumn(name = "licensetype_id")
+    private LicenseType licenseType;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @JsonProperty("licensetype_id")
+    public Integer getLicenseTypeId() {
+        return licenseType == null ? null : licenseType.getId();
+    }
+
+    @JsonProperty("licensetype_id")
+    public void setLicenseTypeId(Integer idLicenseType) {
+        if (idLicenseType == null) {
+            licenseType = null;
+        } else {
+            licenseType = new LicenseType();
+            licenseType.setId(idLicenseType);
+        }
+    }
+
+    @JsonProperty("metadata_id")
+    public Integer getMetadataId() {
+        return metadata == null ? null : metadata.getId();
+    }
+
+    @JsonProperty("metadata_id")
+    public void setMetadataId(Integer idMetadata) {
+        if (idMetadata == null) {
+            metadata = null;
+        } else {
+            metadata = new ApplicationMetadata();
+            metadata.setId(idMetadata);
+        }
+    }
+
+    public ApplicationMetadata getMetadata() {
+        return metadata;
+    }
+
+    public void setMetadata(ApplicationMetadata metadata) {
+        this.metadata = metadata;
+    }
+
+    public LicenseType getLicenseType() {
+        return licenseType;
+    }
+
+    public void setLicenseType(LicenseType licenseType) {
+        this.licenseType = licenseType;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}
diff --git a/securis/src/main/java/net/curisit/securis/db/PackMetadata.java b/securis/src/main/java/net/curisit/securis/db/PackMetadata.java
new file mode 100644
index 0000000..d1f01d6
--- /dev/null
+++ b/securis/src/main/java/net/curisit/securis/db/PackMetadata.java
@@ -0,0 +1,114 @@
+package net.curisit.securis.db;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+/**
+ * Entity implementation class for Entity: pack_metadata
+ * 
+ */
+@JsonAutoDetect
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@Entity
+@Table(name = "pack_metadata")
+@NamedQueries({
+    @NamedQuery(name = "list-pack-metadata", query = "SELECT a FROM PackMetadata a where a.pack.id = :packId")
+})
+public class PackMetadata implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue
+    private int id;
+
+    private String value;
+
+    @JsonIgnore
+    @ManyToOne
+    @JoinColumn(name = "metadata_id")
+    private ApplicationMetadata metadata;
+
+    @JsonIgnore
+    @ManyToOne
+    @JoinColumn(name = "pack_id")
+    private Pack pack;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @JsonProperty("pack_id")
+    public Integer getPackId() {
+        return pack == null ? null : pack.getId();
+    }
+
+    @JsonProperty("pack_id")
+    public void setLicenseTypeId(Integer idPack) {
+        if (idPack == null) {
+            pack = null;
+        } else {
+            pack = new Pack();
+            pack.setId(idPack);
+        }
+    }
+
+    @JsonProperty("metadata_id")
+    public Integer getMetadataId() {
+        return metadata == null ? null : metadata.getId();
+    }
+
+    @JsonProperty("metadata_id")
+    public void setMetadataId(Integer idMetadata) {
+        if (idMetadata == null) {
+            metadata = null;
+        } else {
+            metadata = new ApplicationMetadata();
+            metadata.setId(idMetadata);
+        }
+    }
+
+    public ApplicationMetadata getMetadata() {
+        return metadata;
+    }
+
+    public void setMetadata(ApplicationMetadata metadata) {
+        this.metadata = metadata;
+    }
+
+    public Pack getPack() {
+        return pack;
+    }
+
+    public void setPack(Pack pack) {
+        this.pack = pack;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}

--
Gitblit v1.3.2