You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ma...@apache.org on 2012/08/15 12:13:17 UTC
svn commit: r1373306 - in /rave/sandbox/content-services:
rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/
rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/
rave-jcr-integration/pag...
Author: marijan
Date: Wed Aug 15 10:13:16 2012
New Revision: 1373306
URL: http://svn.apache.org/viewvc?rev=1373306&view=rev
Log:
RAVE-695 Create new rave-jcr-ocm module providing JCR based Object Content Mapping (OCM) support
- refactorings
- add file based (XML) configuration
- add testcases
Added:
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FileConfigDao.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FilePageConfigDao.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java (with props)
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageDefinitionConfig.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageFragmentConfig.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDao.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/RenderMapping.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfig.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfigDao.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlMapping.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml (with props)
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_url_mapping.xml
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java (contents, props changed)
- copied, changed from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDaoTest.java
Removed:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/PageDefinition.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/PageFragment.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FileConfigDao.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FilePageConfigDao.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfigDao.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageDefinitionConfig.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageFragmentConfig.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDao.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/RenderMapping.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfig.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfigDao.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlMapping.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/service/APageService.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/PageDefinitionTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/PageFragmentTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDaoTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_url_mapping.xml
Modified:
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageConfiguration.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageConfiguration.java
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FileConfigDao.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FileConfigDao.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FileConfigDao.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java Wed Aug 15 10:13:16 2012
@@ -17,29 +17,33 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+package org.apache.rave.jcr.config;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLDecoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
+ * Utility class used by page configuration related classes
+ *
* @version "$Id$"
*/
-public abstract class FileConfigDao {
-
- private static Logger log = LoggerFactory.getLogger(FileConfigDao.class);
+public final class ConfigUtils {
+ private static Logger log = LoggerFactory.getLogger(ConfigUtils.class);
public static final String FILE_PATH_PREFIX = "file:";
-
public static final String CLASSPATH_PREFIX = "classpath:";
+ private ConfigUtils() {
+ }
+
+
/**
* Returns the physical resource file object. <p> <ul> <li>When the resourcePath starts with 'file:', it is assumed
* as a file path on the file system.</li> <li>When the resourcePath starts with 'classpath:', it is assumed as a
@@ -49,7 +53,7 @@ public abstract class FileConfigDao {
* @param resourcePath the path of the resource.
* @return File or null if nothing is found or encoding exception is thrown
*/
- protected File getResourceFile(String resourcePath) {
+ public static File getResourceFile(String resourcePath) {
if (resourcePath == null) {
throw new IllegalArgumentException("resourcePath parameter cannot be <null>");
}
@@ -58,7 +62,7 @@ public abstract class FileConfigDao {
return new File(fileName);
} else if (resourcePath.startsWith(CLASSPATH_PREFIX)) {
String classPath = resourcePath.substring(CLASSPATH_PREFIX.length());
- URL url = FilePageConfigDao.class.getClassLoader().getResource(classPath);
+ URL url = FileConfigManager.class.getClassLoader().getResource(classPath);
try {
if (url == null) {
return null;
@@ -75,4 +79,5 @@ public abstract class FileConfigDao {
return new File(resourcePath);
}
}
+
}
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/ConfigUtils.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FilePageConfigDao.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FilePageConfigDao.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/FilePageConfigDao.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java Wed Aug 15 10:13:16 2012
@@ -17,47 +17,52 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config;
+package org.apache.rave.jcr.config;
-import org.apache.commons.io.IOUtils;
-import org.apache.rave.portal.web.exceptions.InvalidConfigurationException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rave.jcr.config.exc.InvalidConfigurationException;
+import org.apache.rave.jcr.config.model.FilePageConfiguration;
+import org.apache.rave.jcr.config.model.api.PageConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
*/
-public class FilePageConfigDao extends FileConfigDao implements PageConfigDao {
+public class FileConfigManager implements ConfigManager {
- private static Logger log = LoggerFactory.getLogger(FilePageConfigDao.class);
+ private static Logger log = LoggerFactory.getLogger(FileConfigManager.class);
@Override
- public PageConfig loadConfig(String path) throws InvalidConfigurationException {
+ public PageConfiguration loadConfiguration(String path) {
log.info("Loading configuration: {}", path);
FileInputStream is = null;
try {
- File file = getResourceFile(path);
+ File file = ConfigUtils.getResourceFile(path);
if (file == null) {
throw new InvalidConfigurationException("Configuration file not found for path: " + path);
}
- JAXBContext context = JAXBContext.newInstance(PageConfig.class);
+ JAXBContext context = JAXBContext.newInstance(FilePageConfiguration.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
is = new FileInputStream(file);
- final PageConfig pageConfig = (PageConfig) unmarshaller.unmarshal(is);
- if (pageConfig != null) {
- pageConfig.initialize();
+ final PageConfiguration filePageConfiguration = (PageConfiguration) unmarshaller.unmarshal(is);
+ if (filePageConfiguration != null) {
+ filePageConfiguration.initialize();
}
- return pageConfig;
+ return filePageConfiguration;
} catch (JAXBException e) {
throw new InvalidConfigurationException("Error parsing configuration file: " + path, e);
} catch (FileNotFoundException e) {
@@ -66,6 +71,22 @@ public class FilePageConfigDao extends F
IOUtils.closeQuietly(is);
}
+ }
+
+ @Override
+ public void saveConfiguration(PageConfiguration configuration) {
+ try {
+ JAXBContext context = JAXBContext.newInstance(FilePageConfiguration.class);
+
+ Marshaller marshaller = context.createMarshaller();
+ final StringWriter writer = new StringWriter();
+ marshaller.marshal(configuration, writer);
+ // TODO write XML to file system
+ log.info("{}", writer);
+ } catch (JAXBException e) {
+ log.error("Error writing configuration", e);
+ }
+
}
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/FileConfigManager.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java?rev=1373306&view=auto
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java (added)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java Wed Aug 15 10:13:16 2012
@@ -0,0 +1,262 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.jcr.config.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.rave.jcr.config.model.api.PageConfiguration;
+import org.apache.rave.jcr.config.model.api.PageDefinition;
+import org.apache.rave.jcr.config.model.api.PageFragment;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @version "$Id$"
+ */
+@XmlRootElement(name = "configuration")
+public class FilePageConfiguration implements PageConfiguration {
+
+
+ private static final Logger log = LoggerFactory.getLogger(FilePageConfiguration.class);
+ private String name;
+
+ /**
+ * Flag which indicates if all components are parsed and initialized.
+ */
+ private boolean initialized;
+
+ private Map<String, PageDefinition> filteredDefinitons;
+ private Map<String, PageFragment> filteredFragments;
+
+ private List<PageDefinition> pageDefinitions;
+ private List<PageFragment> pageFragments;
+
+
+ @Override
+ public final void initialize() {
+ if (!initialized) {
+ // filter invalid entries (e.g. entries without a name and duplicates)
+ filterDefinitions();
+ filterFragments();
+ // resolve references/overrides
+ if (initialized) {
+ return;
+ }
+ // merge with parent child components
+ for (PageFragment pageFragment : pageFragments) {
+ final String reference = pageFragment.getReference();
+ if (StringUtils.isNotBlank(reference)) {
+ // lookup parent:
+ final PageDefinition pageDefinition = filteredDefinitons.get(reference);
+ if (pageDefinition != null) {
+ final PageFragment fragment = filteredFragments.get(pageFragment.getName());
+ if (fragment != null) {
+ fragment.setParent(pageDefinition);
+ mergeFragment(fragment);
+ continue;
+ } else {
+ log.warn("*** INVALID PARENT for PageDefinition {}", pageDefinition);
+ }
+ }
+ // check if fragment is our parent
+ final PageFragment parentFragment = filteredFragments.get(reference);
+ if (parentFragment != null) {
+ final PageFragment fragment = filteredFragments.get(pageFragment.getName());
+ fragment.setParent(parentFragment);
+ mergeFragment(fragment);
+ continue;
+ }
+ // we could not find parent reference
+ log.warn("**** SKIPPING populating of item: parent with name [{}] could not be found for PageFragment with name [{}].", reference, pageFragment.getName());
+ }
+
+ }
+ initialized = true;
+ }
+ }
+
+
+ private void mergeFragmentChildren(PageFragment owner, PageFragment pageFragment) {
+ final List<PageFragment> fragmentChildren = pageFragment.getChildren();
+ if (fragmentChildren != null) {
+ final List<PageFragment> children = owner.getChildren();
+ log.debug("@Merging fragment children {} with parent children {}", fragmentChildren, children);
+ for (PageFragment child : fragmentChildren) {
+ final PageFragment fragment = createFragment(child);
+ // process children
+ fragment.setParent(owner);
+ mergeFragmentChildren(fragment, child);
+ children.add(fragment);
+ }
+ }
+ }
+
+ private PageFragment createFragment(PageFragment pageFragment) {
+ final PageFragment fragment = new FilePageFragment(null, pageFragment.getName());
+ fragment.setController(pageFragment.getController());
+ fragment.setDescription(pageFragment.getDescription());
+ return fragment;
+ }
+
+ public void mergeFragment(PageFragment fragment) {
+ final PageFragment parent = fragment.getParent();
+ if (parent != null) {
+ log.debug("@merging fragment:[ {} ] with parent:[ {} ]", fragment.getName(), parent.getName());
+ // merge first level and it's kids
+ final List<PageFragment> parentChildren = parent.getChildren();
+ final List<PageFragment> children = fragment.getChildren();
+ for (PageFragment parentChild : parentChildren) {
+ if (!contains(fragment, parentChild)) {
+ log.info("Adding child fragment:[ {} ] from parent", parentChild.getName());
+ children.add(parentChild);
+ } else {
+ log.debug("*** SKIPPING parent:[ {} ] fragment because are overriding it.", parentChild.getName());
+ }
+ }
+
+ }
+ }
+
+ private boolean contains(PageFragment fragment, PageFragment parentChild) {
+ final List<PageFragment> children = fragment.getChildren();
+ for (PageFragment child : children) {
+ if (parentChild.getName().equals(child.getName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ @XmlAttribute
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public void setPageDefinitions(List<PageDefinition> definitions) {
+
+ this.pageDefinitions = definitions;
+ }
+
+
+ @XmlElement(name = "page-definition", type = FilePageDefinition.class)
+ @Override
+ public List<PageDefinition> getPageDefinitions() {
+ if (pageDefinitions == null) {
+ pageDefinitions = new ArrayList<PageDefinition>();
+ }
+ return pageDefinitions;
+ }
+
+
+ @XmlElement(name = "page-fragment", type = FilePageFragment.class)
+ public List<PageFragment> getPageFragments() {
+ if (pageFragments == null) {
+ pageFragments = new ArrayList<PageFragment>();
+ }
+ return pageFragments;
+ }
+
+ @Override
+ public void setPageFragments(List<PageFragment> pageFragments) {
+ this.pageFragments = pageFragments;
+
+ }
+
+ @Override
+ public void addPageFragment(PageFragment fragment) {
+ getPageFragments().add(fragment);
+ }
+
+ @Override
+ public void addPageDefinition(PageDefinition definition) {
+ getPageDefinitions().add(definition);
+ }
+
+
+ //*************************************************************************************
+ // UTILITIES
+ //*************************************************************************************
+ private void filterDefinitions() {
+
+ filteredDefinitons = new HashMap<String, PageDefinition>();
+ final Iterator<PageDefinition> iterator = pageDefinitions.iterator();
+ while (iterator.hasNext()) {
+ PageDefinition definition = iterator.next();
+ final String definitionName = definition.getName();
+ if (StringUtils.isBlank(definitionName)) {
+ log.warn("*** SKIPPING Pagedefinition because it has no name: {}", definition);
+ iterator.remove();
+ continue;
+ }
+ if (filteredDefinitons.containsKey(definitionName)) {
+ log.warn("*** SKIPPING Pagedefinition [{}] because it was already defined", definitionName);
+ iterator.remove();
+ continue;
+ }
+ filteredDefinitons.put(definitionName, definition);
+ }
+ }
+
+ private void filterFragments() {
+ filteredFragments = new HashMap<String, PageFragment>();
+ final Iterator<PageFragment> iterator = pageFragments.iterator();
+ while (iterator.hasNext()) {
+ PageFragment fragment = iterator.next();
+ final String fragmentName = fragment.getName();
+ if (StringUtils.isBlank(fragmentName)) {
+ log.warn("*** SKIPPING PageFragment because it has no name: {}", fragment);
+ iterator.remove();
+ continue;
+ }
+ if (filteredFragments.containsKey(fragmentName)) {
+ log.warn("*** SKIPPING PageFragment [{}] was already defined", fragmentName);
+ iterator.remove();
+ continue;
+ }
+ filteredFragments.put(fragmentName, fragment);
+ }
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("FilePageConfiguration");
+ sb.append("{name='").append(name).append('\'');
+ sb.append('}');
+ return sb.toString();
+ }
+
+}
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageDefinitionConfig.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageDefinitionConfig.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageDefinitionConfig.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java Wed Aug 15 10:13:16 2012
@@ -17,32 +17,47 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config;
+package org.apache.rave.jcr.config.model;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.rave.jcr.config.model.api.PageDefinition;
+import org.apache.rave.jcr.config.model.api.PageFragment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.xml.bind.annotation.XmlRootElement;
-
/**
* @version "$Id$"
*/
@XmlRootElement(name = "page-definition")
-public class PageDefinitionConfig extends PageFragmentConfig {
+public class FilePageDefinition extends FilePageFragment implements PageDefinition {
+
+ private static Logger log = LoggerFactory.getLogger(FilePageDefinition.class);
- private static Logger log = LoggerFactory.getLogger(PageDefinitionConfig.class);
+ public FilePageDefinition() {
+ }
+
+ public FilePageDefinition(String name) {
+ super(name);
+ }
+
+ public FilePageDefinition(String path, String name) {
+ super(path, name);
+ }
@Override
- public String getParent() {
+ @XmlTransient
+ public PageFragment getParent() {
// page definition cannot have a parent
return null;
}
@Override
- public void setParent(String parent) {
+ public void setParent(PageFragment parent) {
// we have no parent
- //throw new InvalidConfigurationException("PageDefinition cannot have a parent");
+ log.warn("*** INVALID: Trying to set parent on PageDefinition {}, parent is: {}", this, parent);
}
@@ -55,4 +70,5 @@ public class PageDefinitionConfig extend
sb.append('}');
return sb.toString();
}
+
}
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageFragmentConfig.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageFragmentConfig.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageFragmentConfig.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java Wed Aug 15 10:13:16 2012
@@ -17,129 +17,147 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config;
+package org.apache.rave.jcr.config.model;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
+import javax.xml.bind.annotation.XmlTransient;
-import static org.apache.rave.portal.web.model.PageFragment.TYPE;
+import org.apache.rave.jcr.config.model.api.PageFragment;
/**
* @version "$Id$"
*/
@XmlRootElement(name = "page-fragment")
-public class PageFragmentConfig {
-
- private static Logger log = LoggerFactory.getLogger(PageFragmentConfig.class);
+public class FilePageFragment implements PageFragment {
- private String parent;
+ private PageFragment parent;
private String reference;
private String name;
private String path;
private String displayName;
private String description;
- private TYPE type = TYPE.TEMPLATE;
- private String src;
+
private String controller;
- private List<PageFragmentConfig> children;
+ private List<PageFragment> children;
- @XmlAttribute
+ public FilePageFragment() {
+ }
+
+
+ public FilePageFragment(String name) {
+ this.name = name;
+ }
+
+ public FilePageFragment(String path, String name) {
+ this(name);
+ this.path = path;
+ }
+
+ @XmlAttribute(name = "parent")
+ @Override
public String getReference() {
return reference;
}
+ @Override
public void setReference(String reference) {
this.reference = reference;
}
@XmlAttribute
+ @Override
public String getPath() {
return path;
}
+ @Override
public void setPath(String path) {
this.path = path;
}
@XmlAttribute
+ @Override
public String getDisplayName() {
return displayName;
}
+ @Override
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
@XmlAttribute
+ @Override
public String getDescription() {
return description;
}
+ @Override
public void setDescription(String description) {
this.description = description;
}
- @XmlAttribute
- public TYPE getType() {
- return type;
- }
-
- public void setType(TYPE type) {
- this.type = type;
- }
-
- @XmlAttribute
- public String getSrc() {
- return src;
- }
-
- public void setSrc(String src) {
- this.src = src;
- }
@XmlAttribute
+ @Override
public String getController() {
return controller;
}
+ @Override
public void setController(String controller) {
this.controller = controller;
}
- @XmlElementRef(name = "page-fragment", type = PageFragmentConfig.class)
- public List<PageFragmentConfig> getChildren() {
+ @XmlElementRef(name = "page-fragment", type = FilePageFragment.class)
+ @Override
+ public List<PageFragment> getChildren() {
+ if (children == null) {
+ children = new ArrayList<PageFragment>();
+ }
return children;
}
- public void setChildren(List<PageFragmentConfig> children) {
+ @Override
+ public void setChildren(List<PageFragment> children) {
this.children = children;
}
+ @Override
+ public void addChild(PageFragment child) {
+
+ getChildren().add(child);
+ }
+
@XmlAttribute
+ @Override
public String getName() {
return name;
}
+ @Override
public void setName(String name) {
this.name = name;
}
- @XmlAttribute
- public String getParent() {
+ @XmlTransient
+ @Override
+ public PageFragment getParent() {
return parent;
}
- public void setParent(String parentName) {
- this.parent = parentName;
+ @Override
+ public void setParent(PageFragment parent) {
+ this.parent = parent;
}
@Override
@@ -152,11 +170,9 @@ public class PageFragmentConfig {
sb.append(", path='").append(path).append('\'');
sb.append(", displayName='").append(displayName).append('\'');
sb.append(", description='").append(description).append('\'');
- sb.append(", type=").append(type);
- sb.append(", src='").append(src).append('\'');
sb.append(", controller='").append(controller).append('\'');
- sb.append(", children=").append(children);
sb.append('}');
return sb.toString();
}
}
+
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageConfiguration.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageConfiguration.java?rev=1373306&r1=1373305&r2=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageConfiguration.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageConfiguration.java Wed Aug 15 10:13:16 2012
@@ -50,6 +50,11 @@ public class JcrPageConfiguration implem
@Override
+ public void initialize() {
+ // TODO implement
+ }
+
+ @Override
public String getName() {
return name;
}
Modified: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java?rev=1373306&r1=1373305&r2=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java Wed Aug 15 10:13:16 2012
@@ -38,6 +38,12 @@ public class JcrPageFragment implements
private static Logger log = LoggerFactory.getLogger(JcrPageFragment.class);
+ public JcrPageFragment() {
+ }
+
+ public JcrPageFragment(String name) {
+ this.name = name;
+ }
@Field(path = true, id = true)
private String path;
Modified: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageConfiguration.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageConfiguration.java?rev=1373306&r1=1373305&r2=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageConfiguration.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageConfiguration.java Wed Aug 15 10:13:16 2012
@@ -34,6 +34,11 @@ import org.apache.jackrabbit.ocm.mapper.
public interface PageConfiguration {
/**
+ * Method called after configuration is loaded to do initialization
+ */
+ void initialize();
+
+ /**
* Configuration name
*
* @return config name,
@@ -54,6 +59,7 @@ public interface PageConfiguration {
*/
List<PageDefinition> getPageDefinitions();
+
void setPageDefinitions(List<PageDefinition> definitions);
/**
@@ -63,6 +69,7 @@ public interface PageConfiguration {
*/
List<PageFragment> getPageFragments();
+
void setPageFragments(List<PageFragment> fragments);
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDao.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDao.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDao.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java Wed Aug 15 10:13:16 2012
@@ -17,25 +17,26 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
+package org.apache.rave.jcr.config.url;
-import org.apache.commons.io.IOUtils;
-import org.apache.rave.portal.web.exceptions.InvalidConfigurationException;
-import org.apache.rave.portal.web.model.config.FileConfigDao;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rave.jcr.config.ConfigUtils;
+import org.apache.rave.jcr.config.exc.InvalidConfigurationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
*/
-public class FileUrlConfigDao extends FileConfigDao implements UrlConfigDao {
+public class FileUrlConfigDao implements UrlConfigDao {
private static Logger log = LoggerFactory.getLogger(FileUrlConfigDao.class);
@@ -44,7 +45,7 @@ public class FileUrlConfigDao extends Fi
log.info("Loading configuration: {}", path);
FileInputStream is = null;
try {
- File file = getResourceFile(path);
+ File file = ConfigUtils.getResourceFile(path);
if (file == null) {
throw new InvalidConfigurationException("Configuration file not found for path: " + path);
}
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/FileUrlConfigDao.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/RenderMapping.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/RenderMapping.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/RenderMapping.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java Wed Aug 15 10:13:16 2012
@@ -17,14 +17,14 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+package org.apache.rave.jcr.config.url;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* @version "$Id$"
*/
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/RenderMapping.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfig.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfig.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfig.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java Wed Aug 15 10:13:16 2012
@@ -17,15 +17,16 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
+package org.apache.rave.jcr.config.url;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfig.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfigDao.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfigDao.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlConfigDao.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java Wed Aug 15 10:13:16 2012
@@ -17,9 +17,10 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
+package org.apache.rave.jcr.config.url;
-import org.apache.rave.portal.web.exceptions.InvalidConfigurationException;
+
+import org.apache.rave.jcr.config.exc.InvalidConfigurationException;
/**
* @version "$Id$"
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlConfigDao.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlMapping.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlMapping.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/url/UrlMapping.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java Wed Aug 15 10:13:16 2012
@@ -17,14 +17,15 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
+package org.apache.rave.jcr.config.url;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
-import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @version "$Id$"
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/url/UrlMapping.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml?rev=1373306&view=auto
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml (added)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml Wed Aug 15 10:13:16 2012
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+<configuration name="default">
+ <!--
+ STANDARD PAGE (HAS NO PARENT)
+ -->
+ <page-definition name="standard" description="Page that is being extended by other pages"
+ displayname="Standard page"
+ owner="testUser" type="TEMPLATE" path="/standard">
+ <page-fragment name="menuController" class="org.apache.rave.portal.web.hmvc.example.MyMenuController"
+ type="COMPONENT"/>
+ <page-fragment name="header" path="/header">
+ <page-fragment name="headerController" class="org.apache.rave.portal.web.hmvc.example.MyHeaderController"
+ type="COMPONENT"/>
+ </page-fragment>
+ <page-fragment name="footer" path="/footer">
+ <page-fragment name="footerController" class="org.apache.rave.portal.web.hmvc.example.MyFooterController"
+ type="COMPONENT"/>
+ </page-fragment>
+ </page-definition>
+ <!-- INVALID PAGE DEFINITION (ALREADY DEFINED) -->
+ <page-definition name="standard" description="Page that is being extended by other pages"
+ displayname="Standard page -INVALID"
+ owner="testUser" type="TEMPLATE" path="/standard">
+
+ </page-definition>
+
+
+ <!--
+ LOGIN PAGE (extends STANDARD page)
+ -->
+ <page-fragment name="loginPage" path="/login" description="Login screen" parent="standard">
+ <page-fragment name="header" path="/header">
+ <page-fragment name="headerController" class="com.test.LoginHeaderController"/>
+ </page-fragment>
+ <page-fragment name="body" path="/body">
+ <page-fragment name="headerController" class="com.test.LoginHeaderController"/>
+ </page-fragment>
+ </page-fragment>
+
+ <!--
+ ADMIN PAGE (extends ADMIN page, see below)
+ -->
+ <page-fragment name="userAdminPage" path="/admin/user" description="User administration pages"
+ parent="adminPage">
+ <!-- @overrides footer-->
+ <page-fragment name="footer" path="/footer">
+ <page-fragment name="footerController" class="org.apache.rave.portal.web.hmvc.example.MyFooterController"/>
+ </page-fragment>
+ <!-- @overrides admin header-->
+ <page-fragment name="header" path="/header">
+ <page-fragment name="headerController" class="org.apache.rave.portal.web.hmvc.example.MyHeaderController"
+ />
+ </page-fragment>
+ <!-- add body-->
+ <page-fragment name="body" path="/body">
+ <page-fragment name="bodyController" class="org.apache.rave.portal.web.hmvc.example.MyBodyController"/>
+
+ </page-fragment>
+ </page-fragment>
+ <!-- INVALID USER ADMIN PAGE (ALREADY DEFINED ABOVE)-->
+ <page-fragment name="userAdminPage" path="/admin/user" description="User administration pages"
+ parent="adminPage">
+ <!-- add body-->
+ <page-fragment name="body" path="/body">
+ <page-fragment name="bodyController" class="org.apache.rave.portal.web.hmvc.example.MyBodyController"/>
+ </page-fragment>
+ </page-fragment>
+
+
+ <!--
+ ADMIN PAGE (extends STANDARD page)
+ -->
+ <page-fragment name="adminPage" path="/admin" description="Administration pages"
+ parent="standard">
+ <!-- @overrides footer-->
+ <page-fragment name="footer" path="/footer"
+ controller="org.apache.rave.portal.web.hmvc.example.MyFooterController">
+ <page-fragment name="footerController" class="org.apache.rave.portal.web.hmvc.example.MyFooterController"/>
+ </page-fragment>
+ </page-fragment>
+
+</configuration>
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_configuration.xml
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_url_mapping.xml)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml&p1=rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_url_mapping.xml&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_url_mapping.xml (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml Wed Aug 15 10:13:16 2012
@@ -8,7 +8,7 @@
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
@@ -16,22 +16,22 @@
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
+ -->
<url-configuration name="default">
- <!--admin page mapping -->
- <url-mapping url="/login" page="loginPage">
- <render-mapping name="loginPage/header" path="/login/login.jsp"/>
- <render-mapping name="loginPage/footer" path="/login/login.jsp"/>
- </url-mapping>
- <url-mapping url="/admin" page="adminPage"/>
- <url-mapping url="/user" page="userAdminPage">
- <url-mapping url="admin" page="userAdminPage">
- <url-mapping url="edit" page="userAdminPage">
- <render-mapping name="userAdminPage/footer" path="/user/pages/footer.jsp"/>
- </url-mapping>
- <url-mapping url="add" page="userAdminPage"/>
- <url-mapping url="delete" page="userAdminPage"/>
- </url-mapping>
+ <!--admin page mapping -->
+ <url-mapping url="/login" page="loginPage">
+ <render-mapping name="loginPage/header" path="/login/login.jsp"/>
+ <render-mapping name="loginPage/footer" path="/login/login.jsp"/>
+ </url-mapping>
+ <url-mapping url="/admin" page="adminPage"/>
+ <url-mapping url="/user" page="userAdminPage">
+ <url-mapping url="admin" page="userAdminPage">
+ <url-mapping url="edit" page="userAdminPage">
+ <render-mapping name="userAdminPage/footer" path="/user/pages/footer.jsp"/>
+ </url-mapping>
+ <url-mapping url="add" page="userAdminPage"/>
+ <url-mapping url="delete" page="userAdminPage"/>
</url-mapping>
+ </url-mapping>
</url-configuration>
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/resources/example_url_mapping.xml
------------------------------------------------------------------------------
svn:keywords = Id
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java Wed Aug 15 10:13:16 2012
@@ -17,57 +17,60 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config;
+package org.apache.rave.jcr.config;
-import org.apache.rave.portal.web.exceptions.InvalidConfigurationException;
-import org.apache.rave.portal.web.model.PageDefinition;
-import org.apache.rave.portal.web.model.PageFragment;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.rave.jcr.config.exc.InvalidConfigurationException;
+import org.apache.rave.jcr.config.model.JcrPageFragment;
+import org.apache.rave.jcr.config.model.api.PageConfiguration;
+import org.apache.rave.jcr.config.model.api.PageDefinition;
+import org.apache.rave.jcr.config.model.api.PageFragment;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import static junit.framework.Assert.*;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
/**
* @version "$Id$"
*/
-public class FilePageConfigDaoTest {
+public class FileConfigManagerTest {
+
+ private static Logger log = LoggerFactory.getLogger(FileConfigManagerTest.class);
- private static Logger log = LoggerFactory.getLogger(FilePageConfigDaoTest.class);
@Test
public void testLoadConfig() throws Exception {
- PageConfigDao dao = new FilePageConfigDao();
- final PageConfig config = dao.loadConfig(FileConfigDao.CLASSPATH_PREFIX + "example_configuration.xml");
+ ConfigManager dao = new FileConfigManager();
+ final PageConfiguration config = dao.loadConfiguration(ConfigUtils.CLASSPATH_PREFIX + "example_configuration.xml");
assertNotNull(config);
assertEquals("default", config.getName());
- final List<PageDefinitionConfig> definitions = config.getDefinitions();
+ final Collection<PageDefinition> definitions = config.getPageDefinitions();
assertEquals("expected only (1) definition (name=standard) page", 1, definitions.size());
final Collection<PageDefinition> pageDefinitions = config.getPageDefinitions();
assertEquals("Expected one page definition", 1, pageDefinitions.size());
- final Collection<PageFragment> kids = config.getFragmentDefinitions();
- assertEquals("expected 3 page fragments", 3, kids.size());
- final Map<String, PageFragment> fragmentDefinitionsMap = config.getFragmentDefinitionsMap();
- final PageFragment adminFragment = fragmentDefinitionsMap.get("adminPage");
- final PageDefinitionConfig standardPage = definitions.get(0);
- for (PageFragment kid : kids) {
- final PageFragment parent = kid.getParent();
- assertTrue("Expected valid parent, but found null", parent != null);
- if (kid.getName().equals("userAdminPage")) {
- assertEquals("Expected that userAdmin extends adminPage", parent.getName(), adminFragment.getName());
- } else {
- assertEquals("Expected that other pages extend standard page", parent.getName(), standardPage.getName());
+ final List<PageFragment> kids = config.getPageFragments();
+ assertNotNull("Expected child fragments", kids);
+ assertEquals("Expected 3 kids", 3, kids.size());
+ PageFragment adminFragment = null;
+ List<PageFragment> fragments = config.getPageFragments();
+ for (PageFragment fragment : fragments) {
+ if (fragment.getName().equals("adminPage")) {
+ adminFragment = fragment;
+ break;
}
-
}
+ assertTrue(adminFragment != null);
+ final PageDefinition standardPage = definitions.iterator().next();
+ assertTrue(standardPage != null);
final List<PageFragment> adminKids = adminFragment.getChildren();
- assertEquals(3, adminKids.size());
+ assertEquals("AdminFragment should have 3 kids", 3, adminKids.size());
// admin should have header from page definition
PageDefinition standard = pageDefinitions.iterator().next();
final List<PageFragment> children = standard.getChildren();
@@ -90,27 +93,37 @@ public class FilePageConfigDaoTest {
assertTrue("Expected that footer has a child nodes", adminFooter != null);
assertEquals(1, adminFooter.getChildren().size());
- final PageFragment userAdminFragment = fragmentDefinitionsMap.get("userAdminPage");
- assertEquals(4, userAdminFragment.getChildren().size());
+ PageFragment userAdminFragment = null;
+
+ for (PageFragment fragment : fragments) {
+ if (fragment.getName().equals("userAdminPage")) {
+ userAdminFragment = fragment;
+ break;
+ }
+ }
+ assertTrue(userAdminFragment != null);
+ assertEquals(3, userAdminFragment.getChildren().size());
}
@Test(expected = InvalidConfigurationException.class)
public void testLoadConfigFail() throws Exception {
- PageConfigDao dao = new FilePageConfigDao();
+ ConfigManager dao = new FileConfigManager();
// this should throw InvalidConfigurationException exception
- dao.loadConfig(FileConfigDao.CLASSPATH_PREFIX + "NONE_EXISTING_example_configuration.xml");
+ dao.loadConfiguration(ConfigUtils.CLASSPATH_PREFIX + "NONE_EXISTING_example_configuration.xml");
}
@Test
public void testNoParent() throws Exception {
- PageConfigDao dao = new FilePageConfigDao();
- final PageConfig config = dao.loadConfig(FileConfigDao.CLASSPATH_PREFIX + "example_configuration.xml");
+ ConfigManager dao = new FileConfigManager();
+ final PageConfiguration config = dao.loadConfiguration(ConfigUtils.CLASSPATH_PREFIX + "example_configuration.xml");
assertNotNull(config);
- final List<PageDefinitionConfig> definitions = config.getDefinitions();
- final PageDefinitionConfig standardPage = definitions.get(0);
- standardPage.setParent("test");
+ final Collection<PageDefinition> definitions = config.getPageDefinitions();
+ final PageDefinition standardPage = definitions.iterator().next();
+ standardPage.setParent(new JcrPageFragment("test"));
assertTrue(standardPage.getParent() == null);
+
}
-}
+
+}
\ No newline at end of file
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java?rev=1373306&r1=1373305&r2=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java Wed Aug 15 10:13:16 2012
@@ -19,7 +19,7 @@
package org.apache.rave.jcr.config;
-import java.util.List;
+import java.util.Collection;
import org.apache.rave.jcr.config.model.JcrPageConfiguration;
import org.apache.rave.jcr.config.model.JcrPageDefinition;
@@ -87,7 +87,7 @@ public class JcrConfigManagerTest extend
manager.saveConfiguration(configuration);
retrievedConfiguration = manager.loadConfiguration(configName);
assertTrue(retrievedConfiguration != null);
- final List<PageFragment> pageFragments = retrievedConfiguration.getPageFragments();
+ final Collection<PageFragment> pageFragments = retrievedConfiguration.getPageFragments();
assertEquals(pageFragments.size(), 2);
assertEquals(retrievedConfiguration.getPageDefinitions().size(), 2);
for (PageFragment pageFragment : pageFragments) {
Copied: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java (from r1372943, rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDaoTest.java)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java?p2=rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java&p1=rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDaoTest.java&r1=1372943&r2=1373306&rev=1373306&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/url/FileUrlConfigDaoTest.java (original)
+++ rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java Wed Aug 15 10:13:16 2012
@@ -17,15 +17,15 @@
* under the License.
*/
-package org.apache.rave.portal.web.model.config.url;
+package org.apache.rave.jcr.config.url;
-import org.apache.rave.portal.web.model.config.FileConfigDao;
+import java.util.List;
+
+import org.apache.rave.jcr.config.ConfigUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.List;
-
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
@@ -39,7 +39,7 @@ public class FileUrlConfigDaoTest {
@Test
public void testLoadUrlConfig() throws Exception {
FileUrlConfigDao dao = new FileUrlConfigDao();
- final UrlConfig config = dao.loadUrlConfig(FileConfigDao.CLASSPATH_PREFIX + "example_url_mapping.xml");
+ final UrlConfig config = dao.loadUrlConfig(ConfigUtils.CLASSPATH_PREFIX + "example_url_mapping.xml");
log.info("config {}", config);
assertTrue(config != null);
assertEquals("default", config.getName());
@@ -75,3 +75,4 @@ public class FileUrlConfigDaoTest {
}
}
+
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/url/FileUrlConfigDaoTest.java
------------------------------------------------------------------------------
svn:keywords = Id