Author: ate
Date: Tue Sep 11 14:10:34 2012
New Revision: 1383424
URL: http://svn.apache.org/viewvc?rev=1383424&view=rev
Log:
RAVE-696: aligning rave-web-jcr with new routes and pages configuration model
- pending: fix and re-enable jcr config model unit-test
Added:
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/module.json
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
- copied, changed from r1383356,
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPagesConfigManager.java
- copied, changed from r1383339,
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManager.java
rave/sandbox/content-services/rave-web-jcr/src/main/resources/raveconfig.cnd
- copied, changed from r1383356,
rave/sandbox/content-services/rave-web-jcr/src/main/resources/rave-page-config.cnd
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/module.json
Removed:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManager.java
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinition.java
rave/sandbox/content-services/rave-web-jcr/src/main/resources/rave-page-config.cnd
Modified:
rave/sandbox/content-services/demo-portal/pom.xml
rave/sandbox/content-services/pom.xml
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinitions.java
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoute.java
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoutes.java
rave/sandbox/content-services/rave-web-jcr/src/main/resources/META-INF/rave/module.json
rave/sandbox/content-services/rave-web-jcr/src/test/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManagerTest.java
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
rave/sandbox/content-services/rave-web-jcr/src/test/resources/test-config.xml
Modified: rave/sandbox/content-services/demo-portal/pom.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/pom.xml?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
--- rave/sandbox/content-services/demo-portal/pom.xml (original)
+++ rave/sandbox/content-services/demo-portal/pom.xml Tue Sep 11 14:10:34 2012
@@ -90,13 +90,13 @@
<type>war</type>
<scope>provided</scope>
</dependency>
- <!--<dependency>-->
- <!--<groupId>org.apache.rave.sandbox.jcr</groupId>-->
- <!--<artifactId>rave-jcr-console</artifactId>-->
- <!--<version>${project.version}</version>-->
- <!--<type>war</type>-->
- <!--<scope>provided</scope>-->
- <!--</dependency>-->
+ <dependency>
+ <groupId>org.apache.rave.sandbox.jcr</groupId>
+ <artifactId>rave-jcr-console</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.rave.sandbox.jcr</groupId>
<artifactId>rave-jcr-config</artifactId>
@@ -112,6 +112,11 @@
<artifactId>rave-web-hmvc</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.rave.sandbox.jcr</groupId>
+ <artifactId>rave-web-jcr</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!-- Default database -->
<dependency>
@@ -218,14 +223,14 @@
<context>${rave.repository.context.path}</context>
</properties>
</deployable>
- <!--<deployable>-->
- <!--<groupId>org.apache.rave.sandbox.jcr</groupId>-->
- <!--<artifactId>rave-jcr-console</artifactId>-->
- <!--<type>war</type>-->
- <!--<properties>-->
- <!--<context>/console</context>-->
- <!--</properties>-->
- <!--</deployable>-->
+ <deployable>
+ <groupId>org.apache.rave.sandbox.jcr</groupId>
+ <artifactId>rave-jcr-console</artifactId>
+ <type>war</type>
+ <properties>
+ <context>/console</context>
+ </properties>
+ </deployable>
<deployable>
<groupId>org.apache.rave.sandbox.jcr</groupId>
<artifactId>rave-demo-portal</artifactId>
Added:
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/module.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/module.json?rev=1383424&view=auto
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/module.json
(added)
+++
rave/sandbox/content-services/demo-portal/src/main/resources/META-INF/rave/module.json
Tue Sep 11 14:10:34 2012
@@ -0,0 +1,10 @@
+{
+ "name":"rave-demo-portal",
+ "contents":{
+ "raveconfig":{
+ "file":"page-config.json",
+ "parent":"/",
+ "importBehavior":"merge"
+ }
+ }
+}
Copied:
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
(from r1383356,
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json)
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json?p2=rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json&p1=rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json&r1=1383356&r2=1383424&rev=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
Tue Sep 11 14:10:34 2012
@@ -1,33 +1,44 @@
{
- "myConfiguration":{
- "jcr:primaryType":"raveconfig:pageconfiguration",
- "name":"myConfiguration",
- "pageDefinitions":{
- "jcr:primaryType":"raveconfig:pagedefinition",
- "myPage":{
- "jcr:primaryType":"raveconfig:pagedefinition",
- "name":"myPage",
- "path":"/mypage2",
- "description":"Simple page",
-
"controller":"org.apache.rave.unittest.NonExistingMyPageController",
- "head":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"head",
- "path":"myHeader",
-
"controller":"org.apache.rave.unittest.NonExistingMyHeaderController"
- },
- "body":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"body",
- "path":"myBody",
-
"controller":"org.apache.rave.unittest.NonExistingMyContentController"
- },
- "footer":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"footer",
- "path":"myFooter",
-
"controller":"org.apache.rave.unittest.NonExistingMyFooterController"
- }
+ "myRoutes":{
+ "jcr:primaryType":"raveconfig:routes",
+ "name":"myRoutes",
+ "route1":{
+ "jcr:primaryType":"raveconfig:route",
+ "name":"route1",
+ "path":"/mypage1",
+ "target":"/mypage",
+ "action": "action1"
+ },
+ "route2":{
+ "jcr:primaryType":"raveconfig:route",
+ "name":"route2",
+ "path":"/mypage2",
+ "target":"/mypage",
+ "action": "action2"
+ }
+ },
+ "myPages":{
+ "jcr:primaryType":"raveconfig:pagedefinitions",
+ "name":"myPages",
+ "myPage":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"myPage",
+ "description":"Simple page",
+
"controller":"org.apache.rave.unittest.NonExistingMyPageController",
+ "head":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"head",
+
"controller":"org.apache.rave.unittest.NonExistingMyHeaderController"
+ },
+ "body":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"body",
+
"controller":"org.apache.rave.unittest.NonExistingMyContentController"
+ },
+ "footer":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"footer",
+
"controller":"org.apache.rave.unittest.NonExistingMyFooterController"
}
}
}
Modified: rave/sandbox/content-services/pom.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/pom.xml?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
--- rave/sandbox/content-services/pom.xml (original)
+++ rave/sandbox/content-services/pom.xml Tue Sep 11 14:10:34 2012
@@ -189,11 +189,8 @@
<module>rave-jcr-integration</module>
<module>rave-jcr-utils</module>
<module>rave-web-hmvc</module>
- <!--<module>rave-web-jcr</module>-->
+ <module>rave-web-jcr</module>
<module>rave-jcr-tools</module>
- <!-- disable incomple simple-app module
- <module>simple-app</module>
- -->
<module>demo-portal</module>
</modules>
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinitions.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinitions.java?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinitions.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageDefinitions.java
Tue Sep 11 14:10:34 2012
@@ -24,23 +24,18 @@ import java.util.List;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Collection;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Field;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Node;
-import org.apache.rave.portal.web.mvc.config.PageDefinitions;
-import org.apache.rave.portal.web.mvc.config.PageDefinition;
import org.apache.rave.portal.web.mvc.config.PageFragment;
/**
* @version "$Id$"
*/
-@Node(discriminator = false, jcrType = "raveconfig:pageconfiguration")
-public class JcrPageDefinitions implements PageDefinitions {
+@Node(discriminator = false, jcrType = "raveconfig:pagedefinitions")
+public class JcrPageDefinitions {
@Field(path = true, id = true)
private String path;
- @Collection(elementClassName = JcrPageDefinition.class, jcrType =
"raveconfig:pagedefinition")
- private List<PageDefinition> pageDefinitions;
-
@Collection(elementClassName = JcrPageFragment.class, jcrType =
"raveconfig:pagefragment")
private List<PageFragment> pageFragments;
@@ -52,7 +47,6 @@ public class JcrPageDefinitions implemen
// TODO implement
}
- @Override
public String getName() {
return name;
}
@@ -62,16 +56,6 @@ public class JcrPageDefinitions implemen
}
- @Override
- public List<PageDefinition> getPageDefinitions() {
- return pageDefinitions;
- }
-
- public void setPageDefinitions(List<PageDefinition> definitions) {
- pageDefinitions = definitions;
-
- }
-
public List<PageFragment> getPageFragments() {
return pageFragments;
}
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
Tue Sep 11 14:10:34 2012
@@ -22,7 +22,6 @@ package org.apache.rave.portal.web.mvc.c
import java.util.ArrayList;
import java.util.List;
-import org.apache.jackrabbit.ocm.mapper.impl.annotation.Bean;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Collection;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Field;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Node;
@@ -48,8 +47,10 @@ public class JcrPageFragment implements
@Field(path = true)
private String path;
- @Field(jcrType = "String")
- private String extend;
+ @Field(jcrName="abstract", jcrType = "Boolean")
+ private boolean jcrAbstact;
+ @Field(jcrName="extends", jcrType = "String")
+ private String jcrExtends;
@Field(jcrType = "String")
private String controller;
@Field(jcrType = "String")
@@ -61,26 +62,13 @@ public class JcrPageFragment implements
@Field(jcrType = "String", id=true)
private String name;
- @Bean(jcrType = "raveconfig:pagefragment", jcrName =
"raveconfig:parentfragment")
- private JcrPageFragment jcrParent;
-
- @Collection(elementClassName = JcrPageFragment.class, jcrType =
"raveconfig:pagefragment", jcrName = "pageFragments")
+ @Collection(elementClassName = JcrPageFragment.class, jcrType =
"raveconfig:pagefragment")
private List<PageFragment> children;
public String getPath() {
return path;
}
- // needed only for OCM mapper which used Java bean methods mapping to
determine the persistent field or bean type
- public JcrPageFragment getJcrParent() {
- return jcrParent;
- }
-
- // needed only for OCM mapper which used Java bean methods mapping to
determine the persistent field or bean type
- public void setJcrParent(JcrPageFragment jcrParent) {
- this.jcrParent = jcrParent;
- }
-
@Override
public String getViewName() {
return viewName;
@@ -112,13 +100,38 @@ public class JcrPageFragment implements
this.description = description;
}
+ public boolean isJcrAbstact() {
+ return jcrAbstact;
+ }
+
+ public void setJcrAbstact(boolean jcrAbstact) {
+ this.jcrAbstact = jcrAbstact;
+ }
+
+ public String getJcrExtends() {
+ return jcrExtends;
+ }
+
+ public void setJcrExtends(String jcrExtends) {
+ this.jcrExtends = jcrExtends;
+ }
+
+ @Override
+ public boolean isAbstract() {
+ return this.jcrAbstact;
+ }
+
+ public void setAbstract(boolean jcrAbstract) {
+ this.jcrAbstact = jcrAbstract;
+ }
+
@Override
- public String getExtend() {
- return extend;
+ public String getExtends() {
+ return jcrExtends;
}
- public void setExtend(String extend) {
- this.extend = extend;
+ public void setExtends(String jcrExtends) {
+ this.jcrExtends = jcrExtends;
}
@Override
@@ -152,12 +165,10 @@ public class JcrPageFragment implements
final StringBuilder sb = new StringBuilder();
sb.append("JcrPageFragment");
sb.append("{path='").append(path).append('\'');
- sb.append(", reference='").append(extend).append('\'');
+ sb.append(", extends='").append(jcrExtends).append('\'');
sb.append(", controller='").append(controller).append('\'');
sb.append(", name='").append(name).append('\'');
- sb.append(", jcrParent=").append(jcrParent);
sb.append('}');
return sb.toString();
}
-
}
Copied:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPagesConfigManager.java
(from r1383339,
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManager.java)
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPagesConfigManager.java?p2=rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPagesConfigManager.java&p1=rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManager.java&r1=1383339&r2=1383424&rev=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManager.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPagesConfigManager.java
Tue Sep 11 14:10:34 2012
@@ -20,9 +20,12 @@
package org.apache.rave.portal.web.mvc.config.jcr;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
-import javax.jcr.Node;
+import javax.jcr.Credentials;
+import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
@@ -30,83 +33,142 @@ import org.apache.jackrabbit.ocm.manager
import org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl;
import org.apache.jackrabbit.ocm.mapper.Mapper;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.AnnotationMapperImpl;
-import org.apache.rave.portal.web.mvc.config.PageRoutesManager;
-import org.apache.rave.portal.web.mvc.config.RoutesManager;
+import org.apache.rave.jcr.LazyRepositoryFactory;
+import org.apache.rave.jcr.LazyRepositoryFactoryListener;
+import org.apache.rave.portal.web.mvc.config.PageFragment;
+import org.apache.rave.portal.web.mvc.config.PagesConfig;
import org.apache.rave.portal.web.mvc.config.InvalidConfigurationException;
-import org.apache.rave.portal.web.mvc.config.PageDefinitions;
-import org.apache.rave.portal.web.mvc.config.Routes;
+import org.apache.rave.portal.web.mvc.config.PagesConfigManager;
+import org.apache.rave.portal.web.mvc.config.Route;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
*/
-public class JcrConfigManager implements PageRoutesManager {
+public class JcrPagesConfigManager implements PagesConfigManager,
LazyRepositoryFactoryListener {
- private static Logger log =
LoggerFactory.getLogger(JcrConfigManager.class);
+ private static Logger log =
LoggerFactory.getLogger(JcrPagesConfigManager.class);
- private Session session;
- private String configPath;
- private ObjectContentManager manager;
+ private static class PagesConfigImpl implements PagesConfig {
- private String urlMappingsPath;
+ private List<Route> routes;
+ private Map<String, PageFragment> pages;
- private String configurationPath;
+ public PagesConfigImpl(List<Route> routes, Map<String, PageFragment>
pages) {
+ this.routes = routes;
+ this.pages = pages;
+ }
+ @Override
+ public Map<String, PageFragment> getPages() {
+ return pages;
+ }
- public void setUrlMappingsPath(final String urlMappingsPath) {
- this.urlMappingsPath = urlMappingsPath;
+ @Override
+ public List<Route> getRoutes() {
+ return routes;
+ }
}
- public void setConfigurationPath(final String configurationPath) {
- this.configurationPath = configurationPath;
+ private LazyRepositoryFactory repositoryFactory;
+ private Credentials credetials;
+ private Repository repository;
+ private PagesConfig config;
+
+ private String routesPath;
+ private String pageDefinitionsPath;
+
+ // delay refresh in milliseconds
+ private long refreshDelay;
+
+ private volatile long lastBuildTime;
+
+ public JcrPagesConfigManager(LazyRepositoryFactory repositoryFactory,
Credentials credentials, String routesPath, String pageDefinitionsPath) {
+ this.credetials = credentials;
+ this.routesPath = routesPath;
+ this.pageDefinitionsPath = pageDefinitionsPath;
+ Repository repository = repositoryFactory.getRepository(this);
+ if (repository != null) {
+ repositoryAvailable(repositoryFactory.getFactoryKey(), repository);
+ }
}
- public JcrConfigManager(Session session, String configPath) {
- this.session = session;
- this.configPath = configPath;
- this.manager = createManager();
+ @Override
+ public synchronized void repositoryAvailable(final Object factoryKey,
final Repository repository) {
+ this.repository = repository;
+ loadConfig();
}
+ @Override
+ public synchronized void repositoryNotAvailable(final Object factoryKey) {
+ config = null;
+ repository = null;
+ }
- public Routes getRoutes() throws InvalidConfigurationException {
- final Routes routes = (Routes) manager.getObject(JcrRoutes.class,
configPath + '/' + urlMappingsPath);
- log.info("Loaded URL configuration {}", routes);
- return routes;
-
+ public void setRefreshDelay(long refreshDelay) {
+ this.refreshDelay = refreshDelay;
+ }
+ private boolean checkBuildTime() {
+ if ((lastBuildTime + refreshDelay) > System.currentTimeMillis()) {
+ if (lastModified() > lastBuildTime) {
+ return true;
+ }
+ }
+ return false;
}
- @Override
- public PageDefinitions getPageDefinitions() {
- final PageDefinitions definitions = (PageDefinitions)
manager.getObject(JcrPageDefinitions.class, configPath + '/' +
configurationPath);
- log.info("Loaded PAGE definitions {}", definitions);
- return definitions;
+ public synchronized void shutdown() {
+// repositoryFactory.removeListener(this);
}
- private void initConfigRoot() {
+ protected synchronized void loadConfig() {
+ Session session = null;
+ config = null;
try {
- if (!session.nodeExists(configPath)) {
-
- final Node root = session.getNode("/");
-
- root.addNode(configPath.substring(1, configPath.length()),
"nt:unstructured");
- session.save();
+ session = repository.login(credetials);
+ ObjectContentManager ocm = createManager(session);
+ JcrRoutes routes = (JcrRoutes) ocm.getObject(JcrRoutes.class,
routesPath);
+ log.info("Loaded Routes configuration {}", routes);
+ JcrPageDefinitions definitions = (JcrPageDefinitions)
ocm.getObject(JcrPageDefinitions.class, pageDefinitionsPath);
+ log.info("Loaded Page definitions {}", definitions);
+ Map<String, PageFragment> pages = new HashMap<String,
PageFragment>();
+ for (PageFragment pf : definitions.getPageFragments()) {
+ pages.put(pf.getName(), pf);
}
+ config = new PagesConfigImpl(routes.getRoutes(), pages);
+ lastBuildTime = System.currentTimeMillis();
+
} catch (RepositoryException e) {
+ e.printStackTrace(); //To change body of catch statement use File
| Settings | File Templates.
+ }
+ finally {
+ if (session != null && session.isLive()) {
+ session.logout();
+ }
+ }
+ }
+
+ @Override
+ public synchronized PagesConfig getConfig() throws
InvalidConfigurationException {
+ PagesConfig existing = config;
- throw new InvalidConfigurationException("Couldn't initialize
configuration root path: " + configPath, e);
+ if (existing != null && !checkBuildTime()) {
+ return existing;
}
+ loadConfig();
+ return config;
+
}
- private ObjectContentManager createManager() {
+ private ObjectContentManager createManager(Session session) {
@SuppressWarnings("rawtypes")
List<Class> classes = new ArrayList<Class>();
- //
- // implementations:
+
+ // persistent classes:
classes.add(JcrRoute.class);
classes.add(JcrRoutes.class);
- classes.add(JcrPageDefinition.class);
classes.add(JcrPageFragment.class);
classes.add(JcrPageDefinitions.class);
@@ -116,6 +178,6 @@ public class JcrConfigManager implements
public long lastModified() {
// just make sure the model gets invalidated on the right jcr event
- return 0;
+ return lastBuildTime;
}
}
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoute.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoute.java?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoute.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoute.java
Tue Sep 11 14:10:34 2012
@@ -31,41 +31,44 @@ import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
*/
-@Node(discriminator = false, jcrType = "raveconfig:urlmapping", jcrMixinTypes
= "mix:referenceable")
+@Node(discriminator = false, jcrType = "raveconfig:route", jcrMixinTypes =
"mix:referenceable")
public class JcrRoute implements Route {
private static Logger log = LoggerFactory.getLogger(JcrRoute.class);
+ @Field(path = true, id = true)
+ private String jcrNodePath;
+
@Field(jcrType = "String")
- private String url;
+ private String path;
@Field(jcrType = "String")
- private String page;
+ private String target;
- @Field(jcrType = "action")
+ @Field(jcrType = "String")
private String action;
- @Collection(jcrType = "raveconfig:urlmapping", jcrName =
"raveconfig:urlmapping")
+ @Collection(elementClassName = JcrRoute.class, jcrType =
"raveconfig:route", jcrName = "raveconfig:route")
private List<Route> children;
@Override
public String getPath() {
- return url;
+ return path;
}
@Override
- public void setPath(String url) {
- this.url = url;
+ public void setPath(String path) {
+ this.path = path;
}
@Override
public String getTarget() {
- return page;
+ return target;
}
@Override
public void setTarget(String target) {
- this.page = target;
+ this.target = target;
}
@Override
@@ -92,8 +95,9 @@ public class JcrRoute implements Route {
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("JcrRoute");
- sb.append("{url='").append(url).append('\'');
- sb.append(", page='").append(page).append('\'');
+ sb.append("{path='").append(path).append('\'');
+ sb.append(", target='").append(target).append('\'');
+ sb.append(", action='").append(action).append('\'');
sb.append(", children=").append(children);
sb.append('}');
return sb.toString();
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoutes.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoutes.java?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoutes.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrRoutes.java
Tue Sep 11 14:10:34 2012
@@ -26,13 +26,12 @@ import org.apache.jackrabbit.ocm.mapper.
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Field;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Node;
import org.apache.rave.portal.web.mvc.config.Route;
-import org.apache.rave.portal.web.mvc.config.Routes;
/**
* @version "$Id$"
*/
-@Node(discriminator = false, jcrType = "raveconfig:urlconfiguration",
jcrMixinTypes = "mix:referenceable")
-public class JcrRoutes implements Routes {
+@Node(discriminator = false, jcrType = "raveconfig:routes", jcrMixinTypes =
"mix:referenceable")
+public class JcrRoutes {
@Field(path = true, id = true)
private String path;
@@ -40,7 +39,7 @@ public class JcrRoutes implements Routes
@Field(jcrName = "raveconfig:name", jcrType = "String")
private String name;
- @Collection(elementClassName = JcrRoute.class, jcrType =
"raveconfig:urlmapping")
+ @Collection(elementClassName = JcrRoute.class, jcrType =
"raveconfig:route")
private List<Route> routes;
public JcrRoutes() {
@@ -50,18 +49,15 @@ public class JcrRoutes implements Routes
this.name = name;
}
- @Override
public String getName() {
return name;
}
- @Override
public void setName(String name) {
this.name = name;
}
- @Override
public List<Route> getRoutes() {
if (routes == null) {
return new ArrayList<Route>();
@@ -69,7 +65,6 @@ public class JcrRoutes implements Routes
return routes;
}
- @Override
public void setRoutes(List<Route> routes) {
this.routes = routes;
}
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/resources/META-INF/rave/module.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/resources/META-INF/rave/module.json?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/resources/META-INF/rave/module.json
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/resources/META-INF/rave/module.json
Tue Sep 11 14:10:34 2012
@@ -1,18 +1,11 @@
{
- "name":"pageconfiguration",
+ "name":"raveconfig",
"namespaces":{
"rave":"http://www.apache.org/rave/config/1.0"
},
"cnds":{
"rave":{
- "file":"rave-page-config.cnd"
- }
- },
- "contents":{
- "raveconfig":{
- "file":"page-config.json",
- "parent":"/",
- "importBehavior":"merge"
+ "file":"raveconfig.cnd"
}
}
}
Copied:
rave/sandbox/content-services/rave-web-jcr/src/main/resources/raveconfig.cnd
(from r1383356,
rave/sandbox/content-services/rave-web-jcr/src/main/resources/rave-page-config.cnd)
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/resources/raveconfig.cnd?p2=rave/sandbox/content-services/rave-web-jcr/src/main/resources/raveconfig.cnd&p1=rave/sandbox/content-services/rave-web-jcr/src/main/resources/rave-page-config.cnd&r1=1383356&r2=1383424&rev=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/resources/rave-page-config.cnd
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/resources/raveconfig.cnd
Tue Sep 11 14:10:34 2012
@@ -27,23 +27,10 @@
//############################################
[raveconfig:pagefragment] > raveconfig:relaxed
- + raveconfig:parentfragment (raveconfig:pagefragment)
+ * (raveconfig:pagefragment) multiple
-[raveconfig:pagedefinition] > raveconfig:pagefragment
-
-// collections
-[raveconfig:fragmentcollection]
-+ * (raveconfig:pagefragment) multiple
-
-[raveconfig:definitioncollection]
-+ * (raveconfig:pagedefinition) multiple
-
-
-
-[raveconfig:pageconfiguration] > raveconfig:relaxed
+[raveconfig:pagedefinitions] > raveconfig:relaxed
+ * (raveconfig:pagefragment) multiple
-+ * (raveconfig:pagedefinition) multiple
//############################################
@@ -51,9 +38,8 @@
//############################################
-[raveconfig:urlmapping] > raveconfig:relaxed
- + raveconfig:urlmapping (raveconfig:urlmapping)
- + * (raveconfig:urlmapping) multiple
+[raveconfig:route] > raveconfig:relaxed
+ + * (raveconfig:route) multiple
-[raveconfig:urlconfiguration] > raveconfig:relaxed
-+ * (raveconfig:urlmapping) multiple
\ No newline at end of file
+[raveconfig:routes] > raveconfig:relaxed
++ * (raveconfig:route) multiple
\ No newline at end of file
Modified:
rave/sandbox/content-services/rave-web-jcr/src/test/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManagerTest.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/test/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManagerTest.java?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/test/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManagerTest.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/test/java/org/apache/rave/portal/web/mvc/config/jcr/JcrConfigManagerTest.java
Tue Sep 11 14:10:34 2012
@@ -26,7 +26,7 @@ public class JcrConfigManagerTest extend
// private static Logger log =
LoggerFactory.getLogger(JcrConfigManagerTest.class);
// public static final String CONFIG_ROOT = "/raveconfig";
-// public static final String RAVE_CND = "rave-page-config.cnd";
+// public static final String RAVE_CND = "raveconfig.cnd";
//
// @Override
// public void setUp() throws Exception {
Added:
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/module.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/module.json?rev=1383424&view=auto
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/module.json
(added)
+++
rave/sandbox/content-services/rave-web-jcr/src/test/resources/META-INF/rave/module.json
Tue Sep 11 14:10:34 2012
@@ -0,0 +1,18 @@
+{
+ "name":"raveconfig",
+ "namespaces":{
+ "rave":"http://www.apache.org/rave/config/1.0"
+ },
+ "cnds":{
+ "rave":{
+ "file":"raveconfig.cnd"
+ }
+ },
+ "contents":{
+ "raveconfig":{
+ "file":"page-config.json",
+ "parent":"/",
+ "importBehavior":"merge"
+ }
+ }
+}
Modified:
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/test/resources/page-config.json
Tue Sep 11 14:10:34 2012
@@ -1,33 +1,44 @@
{
- "myConfiguration":{
- "jcr:primaryType":"raveconfig:pageconfiguration",
- "name":"myConfiguration",
- "pageDefinitions":{
- "jcr:primaryType":"raveconfig:pagedefinition",
- "myPage":{
- "jcr:primaryType":"raveconfig:pagedefinition",
- "name":"myPage",
- "path":"/mypage2",
- "description":"Simple page",
-
"controller":"org.apache.rave.unittest.NonExistingMyPageController",
- "head":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"head",
- "path":"myHeader",
-
"controller":"org.apache.rave.unittest.NonExistingMyHeaderController"
- },
- "body":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"body",
- "path":"myBody",
-
"controller":"org.apache.rave.unittest.NonExistingMyContentController"
- },
- "footer":{
- "jcr:primaryType":"raveconfig:pagefragment",
- "name":"footer",
- "path":"myFooter",
-
"controller":"org.apache.rave.unittest.NonExistingMyFooterController"
- }
+ "myRoutes":{
+ "jcr:primaryType":"raveconfig:routes",
+ "name":"myRoutes",
+ "route1":{
+ "jcr:primaryType":"raveconfig:route",
+ "name":"route1",
+ "path":"/mypage1",
+ "target":"/mypage",
+ "action": "action1"
+ },
+ "route2":{
+ "jcr:primaryType":"raveconfig:route",
+ "name":"route2",
+ "path":"/mypage2",
+ "target":"/mypage",
+ "action": "action2"
+ }
+ },
+ "myPages":{
+ "jcr:primaryType":"raveconfig:pagedefinitions",
+ "name":"myPages",
+ "myPage":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"myPage",
+ "description":"Simple page",
+
"controller":"org.apache.rave.unittest.NonExistingMyPageController",
+ "head":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"head",
+
"controller":"org.apache.rave.unittest.NonExistingMyHeaderController"
+ },
+ "body":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"body",
+
"controller":"org.apache.rave.unittest.NonExistingMyContentController"
+ },
+ "footer":{
+ "jcr:primaryType":"raveconfig:pagefragment",
+ "name":"footer",
+
"controller":"org.apache.rave.unittest.NonExistingMyFooterController"
}
}
}
Modified:
rave/sandbox/content-services/rave-web-jcr/src/test/resources/test-config.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/test/resources/test-config.xml?rev=1383424&r1=1383423&r2=1383424&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/test/resources/test-config.xml
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/test/resources/test-config.xml
Tue Sep 11 14:10:34 2012
@@ -92,11 +92,18 @@
<!-- FILE LOADING -->
<bean name="routedHandlerMapping"
class="org.apache.rave.portal.web.mvc.RoutedRequestMappingHandlerMapping">
<property name="order" value="-1"/>
- <property name="routesManager" ref="fileConfigurationManager"/>
+ <property name="configManager" ref="pagesConfigManager"/>
</bean>
- <bean id="fileConfigurationManager"
class="org.apache.rave.portal.web.mvc.config.file.FilePageRoutesManager"/>
+ <bean id="pagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.jcr.JcrPagesConfigManager">
+ <constructor-arg index="0" ref="lazyRepositoryFactory"/>
+ <constructor-arg index="1" ref="jcrCredentials"/>
+ <constructor-arg index="2" value="/raveconfig/myRoutes"/>
+ <constructor-arg index="3" value="/raveconfig/myPages"/>
+ <property name="refreshDelay" value="3000"/>
+ </bean>
+
<bean name="unroutedHandlerMapping"
class="org.apache.rave.portal.web.mvc.UnRoutedRequestMappingHandlerMapping">
<property name="order" value="0"/>