[jboss-svn-commits] JBL Code SVN: r9990 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 5 16:34:48 EST 2007
Author: wrzep
Date: 2007-03-05 16:34:47 -0500 (Mon, 05 Mar 2007)
New Revision: 9990
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
Log:
JBLAB-840
cleanup
-Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2007-03-05 21:08:16 UTC (rev 9989)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2007-03-05 21:34:47 UTC (rev 9990)
@@ -39,11 +39,8 @@
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
-import javax.portlet.PortalContext;
import javax.portlet.PortletRequest;
import javax.servlet.ServletRequest;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
import org.jboss.portlet.JBossRenderRequest;
import org.jboss.shotoku.ContentManager;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-03-05 21:08:16 UTC (rev 9989)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-03-05 21:34:47 UTC (rev 9990)
@@ -92,14 +92,9 @@
* Project id --> Corresponding NEW project descriptor object
*/
private Map<String, Project> newProjects;
+
/**
- * Copy of map above. We put separately parsed objects here
- * to use them in RW mode.
- */
- private Map<String, Project> newProjectsRW;
-
- /**
* Configuration from projects.xml descriptor.
*/
private Configuration configuration;
@@ -133,6 +128,8 @@
private Map<String, DelegateContext> levelsContexts;
private String portalName;
+ private XmlInputFactory isf;
+ private JAXBContext projectRWJC = null;
/**
* Parses project xml descriptors and stores information about the projects.
@@ -143,10 +140,12 @@
* Name of the portal to which projects belongs to.
*/
public ProjectsDescriptor(XmlInputFactory isf, String portalName) {
+
this.portalName = portalName;
+ this.isf = isf;
+
projects = new LinkedHashMap<String, ProjectDescriptor>();
newProjects = new LinkedHashMap<String,Project>();
- newProjectsRW = new LinkedHashMap<String,Project>();
projectWithErrorsDescriptors = new HashSet<String>();
projectsContexts = Collections
@@ -154,6 +153,12 @@
contexts = Collections
.synchronizedMap(new HashMap<String, DelegateContext>());
+ try {
+ projectRWJC = JAXBContext.newInstance("org.jboss.forge.common.projects.project.rw");
+ } catch (JAXBException e) {
+ log.warn("I could not create JAXBContext.", e);
+ }
+
try {
DomToXmlTransformer xht = new DomToXmlTransformer();
@@ -174,7 +179,7 @@
}
try {
- LabsServices.getProjectPagesService().updatePages(getNewProjects().values());//TODO!!!
+ LabsServices.getProjectPagesService().updatePages(getNewProjects().values());
} catch (ServiceRetrievalException e) {
log.error("Error getting labs project pages service.", e);
}
@@ -308,10 +313,8 @@
Node n;
NodeList nodes = root.getChildNodes();
- JAXBContext projectRWJC=null;
- JAXBContext projectsJC=null;
+ JAXBContext projectsJC=null;
-
try {
projectsJC = JAXBContext.newInstance("org.jboss.forge.common.projects.configuration");
} catch (JAXBException e) {
@@ -329,12 +332,6 @@
log.warn("I could not create projects.xml configuration.",e);
}
}
-
- try {
- projectRWJC = JAXBContext.newInstance("org.jboss.forge.common.projects.project.rw");
- } catch (JAXBException e) {
- log.warn("I could not create JAXBContext.", e);
- }
for (int i = 0; i < nodes.getLength(); i++) {
n = nodes.item(i);
@@ -370,16 +367,11 @@
newProjects.put(projectId,
(Project) ReadOnlyProxy.newInstance(newProject));
- ProjectRW newProjectRW = (ProjectRW)un.unmarshal(
- isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
-
- newProjectsRW.put(projectId,
- (Project) SyncProxy.newInstance(newProjectRW));
-
log.info("Project "+projectId+" created.");
} catch (Exception e) {
- log.warn("I could not create Project "+projectId+" (RW mode).",e);
+
+ log.warn("I could not create Project "+projectId+".",e);
}
}
@@ -837,19 +829,33 @@
}
/**
- * Be aware that Project objects returned are NOT thread safe.
- * To obtain Project objects use ProjectsService(RW) instead.
+ * Be aware that Project beans returned are in read-only mode.
+ * Mutable operations will throw IllegalOperationException.
*/
public Map<String, ? extends Project> getNewProjects() {
return newProjects;
}
/**
- * Be aware that Project objects returned are NOT thread safe.
- * To obtain Project objects use ProjectsService(RW) instead.
+ * @return new Project bean in Read-Write mode.
+ * Do NOT use in immutable operations as it will affect performance.
*/
- public Map<String, ? extends Project> getNewProjectsRW() {
- return newProjectsRW;
+ public Project getNewProjectRW(String projectId) {
+
+ ProjectRW newProjectRW;
+
+ try {
+ Unmarshaller un = projectRWJC.createUnmarshaller();
+ newProjectRW = (ProjectRW) un.unmarshal(
+ isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
+
+ } catch (Exception e) {
+
+ log.warn("I could not create Project "+projectId+" (RW mode).", e);
+ return null;
+ }
+
+ return (Project) SyncProxy.newInstance(newProjectRW);
}
public Configuration getConfiguration () {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java 2007-03-05 21:08:16 UTC (rev 9989)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java 2007-03-05 21:34:47 UTC (rev 9990)
@@ -85,13 +85,10 @@
private ContentManager cm;
public Project getProjectByNameRW(String projectId) {
- Projects projectsClass = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
- Map<String,? extends Project> projects = projectsClass.getProjectsDescriptor().getNewProjectsRW();
- return projects.get(projectId);
-
- //TODO new, fresh(!) copy of ProjectRW
-
- //return null;
+
+ Projects projectsClass = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
+
+ return projectsClass.getProjectsDescriptor().getNewProjectRW(projectId);
}
public Polls getProjectPollsRW(String projectId) {
More information about the jboss-svn-commits
mailing list