[jboss-svn-commits] JBL Code SVN: r5188 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status: service/impl service/impl/protocol/db service/impl/protocol/shotoku service/protocol templates
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 19 17:41:17 EDT 2006
Author: wrzep
Date: 2006-07-19 17:41:09 -0400 (Wed, 19 Jul 2006)
New Revision: 5188
Added:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java
Log:
JBLAB-689
Implemented entity beans (including entity relationships).
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -43,6 +43,7 @@
import org.jboss.forge.status.service.ScoresService;
import org.jboss.forge.status.service.ScoresServiceLocal;
import org.jboss.forge.status.service.ScoresServiceRemote;
+import org.jboss.forge.status.service.impl.protocol.db.DBScoresFactory;
import org.jboss.forge.status.service.protocol.PluginConf;
import org.jboss.forge.status.service.protocol.PluginsValues;
import org.jboss.forge.status.service.protocol.ScoresFactory;
@@ -114,7 +115,9 @@
ScoresRepositoryManager dbrm;
try {
dbrm = new DBScoresRepositoryManager();
- dbrm.save(pluginsValues);
+ PluginsValues ple = (new DBScoresFactory()).
+ createPluginsValues(projects, plugins);
+ dbrm.save(ple);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -39,11 +39,11 @@
public class DBScoresFactory implements ScoresFactory {
public PluginsValues createPluginsValues(Projects projects, Plugins plugins) {
- return null; //TODO
+ return new PluginsValuesEntity(projects, plugins);
}
public PluginValues createPluginValues(Plugin plugin, Set<String> projectIds) {
- return null; //TODO
+ return new PluginValuesEntity(plugin, projectIds);
}
}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -23,47 +23,69 @@
package org.jboss.forge.status.service.impl.protocol.db;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
import javax.persistence.Table;
-import org.jboss.forge.status.service.protocol.PluginsValues;
+import org.jboss.forge.status.plugins.Plugin;
+import org.jboss.forge.status.service.protocol.PluginValues;
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
*/
@Entity
- at Table(name = "jblab_plugin_values")
-public class PluginValuesEntity extends ScoresEntity
+ at Table(name = "jblab_jmm_plugin_values")
+public class PluginValuesEntity extends ScoresEntity implements PluginValues
{
+ private static final long serialVersionUID = 6211914842083801542L;
+
private long id;
private String pluginId;
-
+ private String linkName;
+
+ private Map<String, ValueEntity> values = new HashMap<String, ValueEntity>();
+
/**
* Default constructor
*/
public PluginValuesEntity () {}
- /**
- * Main constructor for PluginValuesEntity
- * which takes all possible values to set all its attributes.
- */
- public PluginValuesEntity (String pluginId) {
+ public PluginValuesEntity(Plugin plugin, Set<String> projectIds) {
- this.pluginId = pluginId;
+ // Get plugin properties
+ pluginId = plugin.getId();
+ linkName = plugin.getLinkName();
+
+ // Get plugin values
+ for (String projectId : projectIds) {
+
+ ValueEntity value = new ValueEntity(projectId,
+ plugin.getValue(projectId),
+ plugin.getRate(projectId),
+ plugin.getLink(projectId));
+ values.put(projectId, value);
+ }
}
- @Id
+ @Id
@GeneratedValue
@Column(name = "id")
public long getId() {
return id;
}
- private void setId(long id) {
+ protected void setId(long id) {
this.id = id;
}
@@ -74,5 +96,48 @@
public void setPluginId(String pluginId) {
this.pluginId = pluginId;
- }
+ }
+
+ @Column(name = "linkName")
+ public String getLinkName() {
+ return linkName;
+ }
+
+ protected void setLinkName(String linkName) {
+ this.linkName = linkName;
+ }
+
+ @OneToMany(cascade={CascadeType.ALL})
+ @JoinColumn(name="plugin_values_id")
+ @MapKey(name="projectId")
+ public Map<String, ValueEntity> getValues() {
+ return values;
+ }
+
+ public void setValues(Map<String, ValueEntity> values) {
+ this.values = values;
+ }
+
+ /* Non-DB methods */
+
+ public long getValue(String projectId) {
+
+ ValueEntity valueEntity = values.get(projectId);
+
+ return (valueEntity == null ? 0 : valueEntity.getValue());
+ }
+
+ public int getRate(String projectId) {
+
+ ValueEntity valueEntity = values.get(projectId);
+
+ return (valueEntity == null ? 0 : valueEntity.getRate());
+ }
+
+ public String getLink(String projectId) {
+
+ ValueEntity valueEntity = values.get(projectId);
+
+ return (valueEntity == null ? "" : valueEntity.getLink());
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -24,14 +24,26 @@
package org.jboss.forge.status.service.impl.protocol.db;
import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
import javax.persistence.Table;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.permissions.NullPermissionsChecker;
+import org.jboss.forge.status.plugins.Plugin;
+import org.jboss.forge.status.service.protocol.PluginValues;
import org.jboss.forge.status.service.protocol.PluginsValues;
+import org.jboss.forge.status.tools.Plugins;
/**
*
@@ -41,27 +53,46 @@
* project scores for Status Matrix.
*/
@Entity
- at Table(name = "jblab_plugins_values")
-public class PluginsValuesEntity extends ScoresEntity
+ at Table(name = "jblab_jmm_plugins_values")
+public class PluginsValuesEntity extends ScoresEntity implements PluginsValues
{
+ private static final long serialVersionUID = 1299912767177909726L;
+
private long id;
private Calendar date;
-
+
+ /** Map : pluginId -> pluginValue */
+ private Map<String,PluginValuesEntity> values;
+
/**
* Default constructor
*/
public PluginsValuesEntity () {}
-
- /**
- * Main constructor for PluginsValuesEntity
- * which takes all possible values to set all its attributes.
- */
- public PluginsValuesEntity (Calendar date) {
-
- this.date = date;
- }
+
+ /**
+ * @param projects Projects present in the Status Matrix
+ * @param plugins Plugins which values will be stored
+ */
+ public PluginsValuesEntity(Projects projects, Plugins plugins) {
+
+ date = Calendar.getInstance();
+
+ values = new HashMap<String,PluginValuesEntity>();
+
+ Set<String> projectIds =
+ projects.getProjectIds(new NullPermissionsChecker(), null);
+
+ for (Plugin plugin : plugins.getPlugins()) {
+
+ PluginValuesEntity pluginValues =
+ new PluginValuesEntity(plugin, projectIds);
+
+ values.put(plugin.getId(), pluginValues);
+ }
+ }
+
@Id
@GeneratedValue
@Column(name = "id")
@@ -69,7 +100,7 @@
return id;
}
- private void setId(long id) {
+ protected void setId(long id) {
this.id = id;
}
@@ -81,4 +112,21 @@
public void setDate(Calendar date) {
this.date = date;
}
+
+ @OneToMany(cascade={CascadeType.ALL})
+ @JoinColumn(name="plugins_values_id")
+ @MapKey(name="pluginId")
+ public Map<String, PluginValuesEntity> getValues() {
+ return values;
+ }
+
+ public void setValues(Map<String, PluginValuesEntity> values) {
+ this.values = values;
+ }
+
+ public PluginValues getPluginValues(String pluginId) {
+ return values.get(pluginId);
+ }
+
+
}
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -0,0 +1,105 @@
+
+ /*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.
+ */
+
+package org.jboss.forge.status.service.impl.protocol.db;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
+ */
+ at Entity
+ at Table(name = "jblab_jmm_scores")
+public class ValueEntity extends ScoresEntity
+{
+
+ private long id;
+
+ private String projectId;
+ private long value;
+ private int rate;
+ private String link;
+
+ public ValueEntity() {}
+
+ public ValueEntity(String projectId, long value, int rate, String link) {
+
+ this.projectId = projectId;
+ this.value = value;
+ this.rate = rate;
+ this.link = link;
+ }
+
+ @Id
+ @GeneratedValue
+ @Column(name = "id")
+ public long getId() {
+ return id;
+ }
+
+ protected void setId(long id) {
+ this.id = id;
+ }
+
+ @Column(name = "projectId")
+ public String getProjectId() {
+ return projectId;
+ }
+
+ public void setProjectId(String projectId) {
+ this.projectId = projectId;
+ }
+
+ @Column(name = "link")
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ @Column(name = "rate")
+ public int getRate() {
+ return rate;
+ }
+
+ public void setRate(int rate) {
+ this.rate = rate;
+ }
+
+ @Column(name = "value")
+ public long getValue() {
+ return value;
+ }
+
+ public void setValue(long value) {
+ this.value = value;
+ };
+
+
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -38,12 +38,12 @@
private static final long serialVersionUID = 5196364802717262757L;
+ private String pluginId;
+ private String linkName;
+
private Map<String,Long> values = new HashMap<String,Long>();
private Map<String,Integer> rates = new HashMap<String,Integer>();
private Map<String,String> links = new HashMap<String,String>();
-
- private String pluginId;
- private String linkName;
public PluginValuesImpl(Plugin plugin, Set<String> projectIds) {
@@ -60,15 +60,15 @@
}
}
- public String getId() {
+ public String getPluginId() {
return pluginId;
}
- public Long getValue(String projectId) {
+ public long getValue(String projectId) {
return values.get(projectId);
}
- public Integer getRate(String projectId) {
+ public int getRate(String projectId) {
return rates.get(projectId);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -30,11 +30,11 @@
public interface PluginValues extends Serializable {
- public String getId();
+ public String getPluginId();
- public Long getValue(String projectId);
+ public long getValue(String projectId);
- public Integer getRate(String projectId);
+ public int getRate(String projectId);
public String getLink(String projectId);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java 2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java 2006-07-19 21:41:09 UTC (rev 5188)
@@ -116,7 +116,7 @@
}
} catch (Exception e) {
log.error("Could not get value for plugin: "
- + pluginValues.getId(), e);
+ + pluginValues.getPluginId(), e);
}
}
@@ -162,7 +162,7 @@
* @return Column plugin id
*/
public String getId() {
- return pluginValues.getId();
+ return pluginValues.getPluginId();
}
/**
More information about the jboss-svn-commits
mailing list