[jboss-svn-commits] JBL Code SVN: r35462 - in labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community: magnolia/services/project and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 8 08:13:15 EDT 2010
Author: unibrew
Date: 2010-10-08 08:13:15 -0400 (Fri, 08 Oct 2010)
New Revision: 35462
Modified:
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/navigation/ProjectNavigationBean.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsService.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsServiceBean.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/utils/EnumHashMapValueExtractor.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/ws/MagnoliaWebServiceBean.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/project/Project.java
Log:
[ORG-753] Small changes needed to deploy it fine in both ears.
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/navigation/ProjectNavigationBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/navigation/ProjectNavigationBean.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/navigation/ProjectNavigationBean.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -19,7 +19,7 @@
import org.apache.log4j.Logger;
import org.jboss.community.magnolia.services.exceptions.ProjectNavigationException;
import org.jboss.community.magnolia.services.exceptions.ProjectServiceException;
-import org.jboss.community.magnolia.services.project.ProjectsService;
+import org.jboss.community.magnolia.services.project.ProjectsServiceLocal;
import org.jboss.community.magnolia.services.utils.EnumHashMapValueExtractor;
import org.jboss.community.magnolia.services.utils.HasVisibleChildrenPages;
import org.jboss.community.magnolia.services.utils.VisibleChildrenPages;
@@ -39,8 +39,8 @@
@Stateless(name="ProjectNavigationService")
public class ProjectNavigationBean implements ProjectNavigationRemote, ProjectNavigationLocal {
- @EJB(mappedName="magnoliaAuthor/ProjectsService/local")
- ProjectsService projectsService;
+ @EJB
+ ProjectsServiceLocal projectsService;
private static Logger log = Logger.getLogger(ProjectNavigationBean.class);
@@ -93,7 +93,7 @@
Template template;
try {
- Project project = projectsService.getProject(projectIdName);
+ Project project = projectsService.getProject(projectIdName,parentIdName);
template = freemarkerCfg.getTemplate("projectNavigation.ftl");
root.put("project", project);
System.out.println("PROJECT: "+project.toString());
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsService.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsService.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -25,5 +25,17 @@
* the specified id doesn't exist.
*/
public Project getProject(String idName) throws ProjectServiceException;
+
+ /**
+ * Provides all info about a particular project.
+ *
+ * @param Idname
+ * of a project.
+ * @param parentIdName
+ * of a parent project.
+ * @return POJO with all project related information or null if project with
+ * the specified id doesn't exist.
+ */
+ public Project getProject(String idName,String parentIdName) throws ProjectServiceException;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsServiceBean.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/project/ProjectsServiceBean.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -18,6 +18,7 @@
import javax.ejb.Stateless;
import javax.jcr.ItemNotFoundException;
import javax.jcr.RepositoryException;
+import javax.jcr.ValueFormatException;
import javax.jcr.query.InvalidQueryException;
import org.apache.jackrabbit.uuid.UUID;
@@ -37,73 +38,39 @@
public class ProjectsServiceBean implements ProjectsServiceRemote, ProjectsServiceLocal {
private Logger log = Logger.getLogger(ProjectsServiceBean.class);
+
+ public Project getProject(String idName) throws ProjectServiceException {
+ return getProject(idName,null);
+ }
/* (non-Javadoc)
* @see org.jboss.community.magnolia.services.project.ProjectsService#getProject(java.lang.String)
*/
- public Project getProject(String idName) throws ProjectServiceException {
+ public Project getProject(String idName,String parentIdName) throws ProjectServiceException {
Context ctx = MgnlContext.getSystemContext();
HierarchyManager websiteHM = ctx.getHierarchyManager("website");
QueryManager websiteQM = websiteHM.getQueryManager();
try {
- Query projectQuery = websiteQM.createQuery(getQueryStatement(idName), info.magnolia.cms.core.search.Query.SQL);
+
+ Query projectQuery = websiteQM.createQuery(getQueryStatementVer1(idName,parentIdName), info.magnolia.cms.core.search.Query.SQL);
QueryResult queryResult = projectQuery.execute();
System.out.println("JESTEM TU");
Collection<DefaultContent> projectNodes = queryResult.getContent("mgnl:contentNode");
HashMap<ProjectProperty,String> projectProperties = new HashMap<ProjectProperty,String>();
if (!projectNodes.isEmpty()) {
- DefaultContent projectNode = projectNodes.iterator().next();
- System.out.println("OBJECT: "+projectNode.toString()+" HANDLE: "+projectNode.getHandle());
- Collection<DefaultNodeData> properties = projectNode.getNodeDataCollection();
- for (DefaultNodeData projectProperty : properties) {
- System.out.println("NodeType: "+projectProperty.getType()+"NodeCOntent: "+" NodeDataHandle: "+projectProperty.getHandle()+" NodeDataStringValue: "+projectProperty.getValue().getString());
- String handle = projectProperty.getHandle();
- String projectPropertyName = projectProperty.getName();
- System.out.println("projectPropertyName: "+projectPropertyName);
- ProjectProperty propertyEnum = ProjectProperty.BUILD_LINK.getPropertyByKey(projectPropertyName);
- if (propertyEnum==null) {
- log.warn("Encountered project property name that is not yet defined.");
- continue;
- }
-
- String projectPropertyValue = projectProperty.getValue().getString();
- System.out.println("PROJECTPROPERTYVALUE: "+projectPropertyValue);
-
- //TODO: This is a bit wrong that exception is being thrown during standard UUID link checking.
- boolean isUUID=false;
- try {
- UUID.fromString(projectPropertyValue);
- isUUID=true;
- } catch (IllegalArgumentException exception) {
- //IT JUST MEANS THAT THIS STRING IS NOT AN UUID.
- isUUID=false;
- }
-
- if (isUUID) {
- System.out.println("INSIDE UUID MATCHED");
- ProjectProperty propertyUUIDEnum = ProjectProperty.BUILD_LINK.getPropertyByKey(projectPropertyName+"_UUID");
- if (propertyUUIDEnum==null) {
- log.warn("Encountered project property UUID link that is not yet defined.");
- }
-
- String handleFromProjectProperty = null;
- try {
- handleFromProjectProperty = websiteHM.getContentByUUID(projectPropertyValue).getHandle();
- } catch (ItemNotFoundException e) {
- // This exception is being thrown if somebody deletes a page to which link is saved in the navigation
- String message="A page with UUID "+projectPropertyValue+" was deleted but link still exists in navigation.";
- log.debug(message,e);
- }
- projectProperties.put(propertyUUIDEnum, projectPropertyValue);
- projectProperties.put(propertyEnum, handleFromProjectProperty);
-
- } else {
- System.out.println("INSIDE ELSE OF UUID");
- projectProperties.put(propertyEnum, projectPropertyValue);
- }
- }
+ extractQueryResults(projectNodes, projectProperties, websiteHM);
}
+
+ projectQuery = websiteQM.createQuery(getQueryStatementVer2(idName,parentIdName), info.magnolia.cms.core.search.Query.SQL);
+ queryResult = projectQuery.execute();
+ System.out.println("JESTEM TU");
+ projectNodes = queryResult.getContent("mgnl:contentNode");
+ if (!projectNodes.isEmpty()) {
+ extractQueryResults(projectNodes, projectProperties, websiteHM);
+ }
+
return new Project(projectProperties);
+
} catch (InvalidQueryException e1) {
e1.printStackTrace();
String message = "Project search query failed due to mistake in the query.";
@@ -121,12 +88,79 @@
return null;
}
- private String getQueryStatement (String projectId) {
+ private void extractQueryResults (Collection<DefaultContent> projectNodes,HashMap<ProjectProperty,String> projectProperties,HierarchyManager websiteHM) throws ValueFormatException, IllegalStateException, RepositoryException {
+ DefaultContent projectNode = projectNodes.iterator().next();
+ System.out.println("OBJECT: "+projectNode.toString()+" HANDLE: "+projectNode.getHandle());
+ Collection<DefaultNodeData> properties = projectNode.getNodeDataCollection();
+ for (DefaultNodeData projectProperty : properties) {
+ System.out.println("NodeType: "+projectProperty.getType()+"NodeCOntent: "+" NodeDataHandle: "+projectProperty.getHandle()+" NodeDataStringValue: "+projectProperty.getValue().getString());
+ String handle = projectProperty.getHandle();
+ String projectPropertyName = projectProperty.getName();
+ System.out.println("projectPropertyName: "+projectPropertyName);
+ ProjectProperty propertyEnum = ProjectProperty.BUILD_LINK.getPropertyByKey(projectPropertyName);
+ if (propertyEnum==null) {
+ log.warn("Encountered project property name that is not yet defined.");
+ continue;
+ }
+
+ String projectPropertyValue = projectProperty.getValue().getString();
+ System.out.println("PROJECTPROPERTYVALUE: "+projectPropertyValue);
+
+ //TODO: This is a bit wrong that exception is being thrown during standard UUID link checking.
+ boolean isUUID=false;
+ try {
+ UUID.fromString(projectPropertyValue);
+ isUUID=true;
+ } catch (IllegalArgumentException exception) {
+ //IT JUST MEANS THAT THIS STRING IS NOT AN UUID.
+ isUUID=false;
+ }
+
+ if (isUUID) {
+ System.out.println("INSIDE UUID MATCHED");
+ ProjectProperty propertyUUIDEnum = ProjectProperty.BUILD_LINK.getPropertyByKey(projectPropertyName+"_UUID");
+ if (propertyUUIDEnum==null) {
+ log.warn("Encountered project property UUID link that is not yet defined.");
+ }
+
+ String handleFromProjectProperty = null;
+ try {
+ handleFromProjectProperty = websiteHM.getContentByUUID(projectPropertyValue).getHandle();
+ } catch (ItemNotFoundException e) {
+ // This exception is being thrown if somebody deletes a page to which link is saved in the navigation
+ String message="A page with UUID "+projectPropertyValue+" was deleted but link still exists in navigation.";
+ log.debug(message,e);
+ }
+ projectProperties.put(propertyUUIDEnum, projectPropertyValue);
+ projectProperties.put(propertyEnum, handleFromProjectProperty);
+
+ } else {
+ System.out.println("INSIDE ELSE OF UUID");
+ projectProperties.put(propertyEnum, projectPropertyValue);
+ }
+ }
+ }
+
+ private String getQueryStatementVer1 (String projectId,String parentProjectId) {
+ System.out.println("QUERY VER1 PROJECTID: "+projectId+" PARENTID: "+parentProjectId);
String query = "SELECT * FROM nt:base " +
"WHERE mgnl:template = 'projectNavigation' " +
- "AND jcr:path LIKE '%/";
+ "AND jcr:path LIKE '/";
+ query+=parentProjectId!=null && parentProjectId.trim().length()>0?parentProjectId+"/":"";
query+=projectId+"/headerParagraphs/%'";
+ System.out.println("QUERY1: "+query);
return query;
}
+
+ private String getQueryStatementVer2 (String projectId,String parentProjectId) {
+ System.out.println("QUERY VER2 PROJECTID: "+projectId+" PARENTID: "+parentProjectId);
+ String query = "SELECT * FROM nt:base " +
+ "WHERE mgnl:template = 'projectNavigation' " +
+ "AND jcr:path LIKE '/";
+ query+=parentProjectId!=null && parentProjectId.trim().length()>0?parentProjectId+"/%/":"";
+ query+=projectId+"/headerParagraphs/%'";
+ System.out.println("QUERY2: "+query);
+ return query;
+ }
}
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/utils/EnumHashMapValueExtractor.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/utils/EnumHashMapValueExtractor.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/utils/EnumHashMapValueExtractor.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -22,19 +22,11 @@
if (arguments.size() != 2) {
throw new TemplateModelException("Wrong number of arguments.");
}
- System.out.println("PROP1: " + arguments.get(0));
- System.out.println("PROP2: " + arguments.get(1));
ProjectProperty projectPropKey = ProjectProperty.valueOf(arguments.get(
0).toString());
- System.out.println("OBJECT: "
- + ((StringModel) arguments.get(1)).getWrappedObject()
- .toString());
Object object = ((StringModel) arguments.get(1)).getWrappedObject();
- System.out.println("BREAKPOINT");
Project project = (Project) object;
- System.out.println("BREAKPOINT2");
String returnValue = project.getProperty(projectPropKey);
- System.out.println("RETURN VALUE: " + returnValue);
return returnValue == null ? "" : returnValue;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/ws/MagnoliaWebServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/ws/MagnoliaWebServiceBean.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/magnolia/services/ws/MagnoliaWebServiceBean.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -9,8 +9,8 @@
import org.jboss.community.magnolia.services.exceptions.ProjectNavigationException;
import org.jboss.community.magnolia.services.exceptions.ProjectServiceException;
-import org.jboss.community.magnolia.services.navigation.ProjectNavigation;
-import org.jboss.community.magnolia.services.project.ProjectsService;
+import org.jboss.community.magnolia.services.navigation.ProjectNavigationLocal;
+import org.jboss.community.magnolia.services.project.ProjectsServiceLocal;
import org.jboss.community.project.Project;
/**
@@ -21,11 +21,11 @@
@WebService(endpointInterface="org.jboss.community.magnolia.services.ws.MagnoliaWebService")
public class MagnoliaWebServiceBean implements MagnoliaWebService {
- @EJB(mappedName="magnoliaAuthor/ProjectNavigationService/local")
- ProjectNavigation pn;
+ @EJB
+ ProjectNavigationLocal pn;
- @EJB(mappedName="magnoliaAuthor/ProjectsService/local")
- ProjectsService ps;
+ @EJB
+ ProjectsServiceLocal ps;
public String getFooterNavigationHTMLWithParent(String projectIdName,String parentProjectId) {
try {
@@ -58,12 +58,17 @@
}
public Project getProjectById(String projectId) {
- return getProjectByIdAndParentId(projectId, null);
+ try {
+ return ps.getProject(projectId);
+ } catch (ProjectServiceException e) {
+ // Nothing to do, the exception was for sure already logged but WS+JAXB cannot handle it.
+ }
+ return null;
}
public Project getProjectByIdAndParentId(String projectId,String parentProjectId) {
try {
- return ps.getProject(projectId);
+ return ps.getProject(projectId,parentProjectId);
} catch (ProjectServiceException e) {
// Nothing to do, the exception was for sure already logged but WS+JAXB cannot handle it.
}
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/project/Project.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/project/Project.java 2010-10-08 10:52:57 UTC (rev 35461)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-services/projects/src/main/java/org/jboss/community/project/Project.java 2010-10-08 12:13:15 UTC (rev 35462)
@@ -6,7 +6,8 @@
import java.io.Serializable;
import java.util.HashMap;
-import lombok.Data;
+import javax.xml.bind.annotation.XmlType;
+
import lombok.ToString;
/**
@@ -15,6 +16,7 @@
*
*/
@ToString
+ at XmlType
public class Project implements Serializable {
private static final long serialVersionUID = 1L;
More information about the jboss-svn-commits
mailing list