|
From: <fg...@us...> - 2013-10-20 15:00:33
|
Revision: 4400
http://openutils.svn.sourceforge.net/openutils/?rev=4400&view=rev
Author: fgiust
Date: 2013-10-20 15:00:28 +0000 (Sun, 20 Oct 2013)
Log Message:
-----------
API updates
Modified Paths:
--------------
magnoliamodules/trunk/openutils-mgnlrepoutils/pom.xml
magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/Linkfix.java
magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/LinkfixPage.java
magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/RepositoryUtilsPage.java
magnoliamodules/trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/util/JackrabbitUtil.java
magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsDeprecatedAdapters.java
magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java
magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/util/NodeUtilsExt.java
magnoliamodules/trunk/openutils-mgnlutils/src/test/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctionsTest.java
Modified: magnoliamodules/trunk/openutils-mgnlrepoutils/pom.xml
===================================================================
--- magnoliamodules/trunk/openutils-mgnlrepoutils/pom.xml 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlrepoutils/pom.xml 2013-10-20 15:00:28 UTC (rev 4400)
@@ -79,6 +79,11 @@
<version>5.0.1</version>
</dependency>
<dependency>
+ <groupId>net.sourceforge.openutils</groupId>
+ <artifactId>openutils-mgnlutils</artifactId>
+ <version>5.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
Modified: magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/Linkfix.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/Linkfix.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/Linkfix.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -19,11 +19,10 @@
package net.sourceforge.openutils.mgnlrepoutils;
-import info.magnolia.cms.core.Content;
-import info.magnolia.cms.core.Content.ContentFilter;
-import info.magnolia.cms.core.ItemType;
-import info.magnolia.cms.core.NodeData;
import info.magnolia.context.MgnlContext;
+import info.magnolia.jcr.util.MetaDataUtil;
+import info.magnolia.jcr.util.NodeUtil;
+import it.openutils.mgnlutils.util.NodeUtilsExt;
import java.io.StringWriter;
import java.util.Collection;
@@ -31,6 +30,9 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
@@ -54,22 +56,6 @@
private static final Pattern UUID_PATTERN = Pattern
.compile("([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})");
- private static final ContentFilter ACCEPTALL_CONTENTFILTER = new ContentFilter()
- {
-
- public boolean accept(Content content)
- {
- try
- {
- return !ItemType.NT_METADATA.equals(content.getNodeTypeName());
- }
- catch (RepositoryException e)
- {
- return true;
- }
- }
- };
-
private Map<String, String> replacements;
private Collection<String> sourceRepositoriesAndPaths;
@@ -153,7 +139,7 @@
log.info("Processing {}", source);
- Content node = MgnlContext.getHierarchyManager(repo).getContent(path);
+ Node node = MgnlContext.getJCRSession(repo).getNode(path);
processNode(node);
}
@@ -165,26 +151,27 @@
* @param node
* @throws RepositoryException
*/
- private void processNode(Content node) throws RepositoryException
+ private void processNode(Node node) throws RepositoryException
{
- log.debug("Processing {}", node.getHandle());
+ log.debug("Processing {}", NodeUtil.getPathIfPossible(node));
nodesCount++;
- Collection<NodeData> nodedatas = node.getNodeDataCollection();
+ PropertyIterator properties = node.getProperties();
boolean nodeUpdated = false;
- for (NodeData nodedata : nodedatas)
+ while (properties.hasNext())
{
- nodeUpdated = processNodedata(nodedata) || nodeUpdated;
+ nodeUpdated = processProperty(properties.nextProperty()) || nodeUpdated;
}
if (nodeUpdated)
{
- node.updateMetaData();
+ MetaDataUtil.updateMetaData(node);
}
- Collection<Content> children = node.getChildren(ACCEPTALL_CONTENTFILTER);
- for (Content child : children)
+ Iterable<Node> children = NodeUtil.getNodes(node, NodeUtil.EXCLUDE_META_DATA_FILTER);
+
+ for (Node child : children)
{
processNode(child);
}
@@ -195,9 +182,9 @@
* @param nodedata
* @throws RepositoryException
*/
- private boolean processNodedata(NodeData data) throws RepositoryException
+ private boolean processProperty(Property data) throws RepositoryException
{
- if (data.isMultiValue() == NodeData.MULTIVALUE_TRUE)
+ if (data.isMultiple())
{
return processMultiValue(data);
}
@@ -214,7 +201,7 @@
* @param data
* @throws RepositoryException
*/
- private boolean processString(NodeData data) throws RepositoryException
+ private boolean processString(Property data) throws RepositoryException
{
String dataAsString = data.getString();
if (StringUtils.isEmpty(dataAsString))
@@ -236,10 +223,7 @@
{
log.debug("Replacing UUID {} with {}", uuid, newuuid);
- fullLog.append(String.format(
- "%s:%s\n",
- data.getHierarchyManager().getWorkspace().getName(),
- data.getHandle()));
+ fullLog.append(String.format("%s:%s\n", data.getSession().getWorkspace().getName(), data.getPath()));
gotMatches = true;
substitutionsCount++;
@@ -265,10 +249,7 @@
log.debug("Replacing text {} with {}", plainpath, repl.getValue());
- fullLog.append(String.format(
- "%s:%s\n",
- data.getHierarchyManager().getWorkspace().getName(),
- data.getHandle()));
+ fullLog.append(String.format("%s:%s\n", data.getSession().getWorkspace().getName(), data.getPath()));
gotMatches = true;
substitutionsCount++;
@@ -283,7 +264,7 @@
if (gotMatches)
{
data.setValue(newString);
- data.save();
+ data.getSession().save();
return true;
}
@@ -320,8 +301,12 @@
String newhandle = StringUtils.replace(handle, replacement.getKey(), replacement.getValue());
try
{
- Content newcontent = MgnlContext.getHierarchyManager(repo).getContent(newhandle);
- return newcontent.getUUID();
+ Node newcontent = NodeUtilsExt.getNodeIfExists(MgnlContext.getJCRSession(repo), newhandle);
+
+ if (newcontent != null)
+ {
+ return NodeUtil.getNodeIdentifierIfPossible(newcontent);
+ }
}
catch (RepositoryException e)
{
@@ -339,7 +324,7 @@
* @param data
* @throws RepositoryException
*/
- private boolean processMultiValue(NodeData data) throws RepositoryException
+ private boolean processMultiValue(Property data) throws RepositoryException
{
Value[] values = data.getValues();
@@ -378,12 +363,7 @@
String newString = sb.toString();
log.info("Creating value {}", newString);
- values[j] = data
- .getHierarchyManager()
- .getWorkspace()
- .getSession()
- .getValueFactory()
- .createValue(newString);
+ values[j] = data.getSession().getWorkspace().getSession().getValueFactory().createValue(newString);
}
}
@@ -394,7 +374,7 @@
log.debug("Setting value {} {}", values.length, values);
data.setValue(values);
- data.save();
+ data.getSession().save();
return true;
}
Modified: magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/LinkfixPage.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/LinkfixPage.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/LinkfixPage.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -155,7 +155,7 @@
// test it
try
{
- MgnlContext.getHierarchyManager(repo);
+ MgnlContext.getJCRSession(repo);
}
catch (IllegalArgumentException e)
{
Modified: magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/RepositoryUtilsPage.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/RepositoryUtilsPage.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlrepoutils/src/main/java/net/sourceforge/openutils/mgnlrepoutils/RepositoryUtilsPage.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -19,12 +19,13 @@
package net.sourceforge.openutils.mgnlrepoutils;
-import info.magnolia.cms.beans.config.ContentRepository;
import info.magnolia.cms.util.AlertUtil;
import info.magnolia.context.MgnlContext;
import info.magnolia.module.admininterface.TemplatedMVCHandler;
import info.magnolia.objectfactory.Components;
import info.magnolia.repository.RepositoryManager;
+import info.magnolia.repository.definition.WorkspaceMappingDefinition;
+import it.openutils.mgnlutils.util.NodeUtilsExt;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@@ -134,7 +135,7 @@
private SearchIndex getSearchIndex(String repo) throws RepositoryException, NoSuchMethodException,
IllegalAccessException, InvocationTargetException
{
- WorkspaceImpl workspace = (WorkspaceImpl) MgnlContext.getHierarchyManager(repo).getWorkspace();
+ WorkspaceImpl workspace = (WorkspaceImpl) NodeUtilsExt.unwrap(MgnlContext.getJCRSession(repo).getWorkspace());
QueryManagerImpl queryManager = (QueryManagerImpl) workspace.getQueryManager();
@@ -144,10 +145,13 @@
private PersistenceManager getPersistenceManager(String repo) throws Exception
{
- WorkspaceImpl workspace = (WorkspaceImpl) MgnlContext.getHierarchyManager(repo).getWorkspace();
+ WorkspaceImpl workspace = (WorkspaceImpl) NodeUtilsExt.unwrap(MgnlContext.getJCRSession(repo).getWorkspace());
Repository repository = workspace.getSession().getRepository();
- String workspaceName = ContentRepository.getMappedWorkspaceName(repo);
+ WorkspaceMappingDefinition mapping = Components.getComponent(RepositoryManager.class).getWorkspaceMapping(repo);
+
+ String workspaceName = mapping != null ? mapping.getPhysicalWorkspaceName() : repo;
+
return getPM(repository, workspaceName);
}
Modified: magnoliamodules/trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/util/JackrabbitUtil.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/util/JackrabbitUtil.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/util/JackrabbitUtil.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -21,8 +21,8 @@
import info.magnolia.context.SystemContext;
import info.magnolia.jcr.RuntimeRepositoryException;
-import info.magnolia.jcr.wrapper.DelegateSessionWrapper;
import info.magnolia.objectfactory.Components;
+import it.openutils.mgnlutils.util.NodeUtilsExt;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -98,15 +98,8 @@
Session session;
try
{
- session = Components.getComponent(SystemContext.class).getJCRSession(repository);
-
// TAGCLOUD-21
- while (session instanceof DelegateSessionWrapper)
- {
- session = ((DelegateSessionWrapper) session).getWrappedSession();
- }
-
- return session;
+ return NodeUtilsExt.unwrap(Components.getComponent(SystemContext.class).getJCRSession(repository));
}
catch (RepositoryException e)
{
Modified: magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsDeprecatedAdapters.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsDeprecatedAdapters.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsDeprecatedAdapters.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -27,6 +27,7 @@
import info.magnolia.context.MgnlContext;
import info.magnolia.context.WebContext;
import info.magnolia.jcr.util.ContentMap;
+import it.openutils.mgnlutils.util.NodeUtilsExt;
import java.util.Properties;
@@ -52,8 +53,7 @@
AggregationState aggregationState = getAggregationStateIfAvailable();
if (aggregationState != null)
{
- Content mainContent = aggregationState.getCurrentContent();
- return mainContent != null ? mainContent.getJCRNode() : null;
+ return toNode(aggregationState.getCurrentContent());
}
return null;
}
@@ -63,8 +63,7 @@
AggregationState aggregationState = getAggregationStateIfAvailable();
if (aggregationState != null)
{
- Content mainContent = aggregationState.getMainContent();
- return mainContent != null ? mainContent.getJCRNode() : null;
+ return toNode(aggregationState.getMainContent());
}
return null;
}
@@ -95,11 +94,11 @@
}
else if (nodeorcontent instanceof Content)
{
- return ((Content) nodeorcontent).getJCRNode();
+ return NodeUtilsExt.wrap(((Content) nodeorcontent).getJCRNode());
}
else if (nodeorcontent instanceof NodeMapWrapper)
{
- return ((NodeMapWrapper) nodeorcontent).getJCRNode();
+ return NodeUtilsExt.wrap(((NodeMapWrapper) nodeorcontent).getJCRNode());
}
else if (nodeorcontent instanceof String)
{
Modified: magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -142,22 +142,10 @@
{
return null;
}
- try
- {
- Node node = MgnlContext.getJCRSession(repository).getNode(path);
- return node;
+ Node node = NodeUtilsExt.getNodeByIdOrPath(repository, path);
- }
- catch (RepositoryException e)
- {
- log.debug("{} loading path {} from workspace {}:{}", new Object[]{
- e.getClass().getName(),
- path,
- repository,
- e.getMessage() });
- }
- return null;
+ return node;
}
/**
@@ -994,31 +982,8 @@
return null;
}
- try
- {
- Session session = MgnlContext.getJCRSession(StringUtils.isNotBlank(repo)
- ? repo
- : RepositoryConstants.WEBSITE);
- if (identifier.startsWith("/"))
- {
- if (session.nodeExists(identifier))
- {
- content = session.getNode(identifier);
- }
- }
- else
- {
- content = session.getNodeByIdentifier(StringUtils.trim(identifier));
- }
- }
- catch (ItemNotFoundException e)
- {
- log.debug("Node \"" + identifier + "\" not found");
- }
- catch (RepositoryException e)
- {
- log.error(e.getClass().getName() + " getting node \"" + identifier + "\"", e);
- }
+ content = NodeUtilsExt.getNodeByIdOrPath(repo, StringUtils.trim(identifier));
+
}
else
{
@@ -1162,21 +1127,7 @@
return null;
}
- Session session;
- try
- {
- session = MgnlContext.getJCRSession(repo);
- Node loaded = session.getNodeByIdentifier(uuid);
-
- return loaded;
-
- }
- catch (ItemNotFoundException e)
- {
- // ignore
- }
-
- return null;
+ return NodeUtilsExt.getNodeByIdOrPath(repo, uuid);
}
/**
Modified: magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/util/NodeUtilsExt.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/util/NodeUtilsExt.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/util/NodeUtilsExt.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -21,7 +21,6 @@
import info.magnolia.cms.core.AggregationState;
import info.magnolia.cms.core.Path;
-import info.magnolia.cms.util.ContentUtil;
import info.magnolia.content2bean.Content2BeanException;
import info.magnolia.content2bean.Content2BeanUtil;
import info.magnolia.context.MgnlContext;
@@ -30,12 +29,12 @@
import info.magnolia.jcr.util.NodeUtil;
import info.magnolia.jcr.util.PropertyUtil;
import info.magnolia.jcr.wrapper.ChannelVisibilityContentDecorator;
+import info.magnolia.jcr.wrapper.DelegateSessionWrapper;
+import info.magnolia.jcr.wrapper.DelegateWorkspaceWrapper;
import info.magnolia.jcr.wrapper.HTMLEscapingNodeWrapper;
import info.magnolia.jcr.wrapper.I18nNodeWrapper;
import info.magnolia.link.LinkFactory;
import info.magnolia.link.LinkTransformerManager;
-import info.magnolia.link.LinkUtil;
-import info.magnolia.objectfactory.Components;
import java.util.regex.Pattern;
@@ -43,10 +42,10 @@
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.Workspace;
import org.apache.commons.lang.StringUtils;
-
/**
* @author fgiust
* @version $Id: NodeUtilsExt.java 4292 2013-09-12 15:54:10Z fgiust $
@@ -75,7 +74,7 @@
{
try
{
- return session.getNode(absolutepath);
+ return wrap(session.getNode(absolutepath));
}
catch (RepositoryException e)
{
@@ -153,7 +152,7 @@
{
try
{
- return NodeUtil.getNodeByIdentifier(workspace, uuidOrPath);
+ return wrap(NodeUtil.getNodeByIdentifier(workspace, uuidOrPath));
}
catch (ItemNotFoundException e)
{
@@ -168,7 +167,7 @@
{
try
{
- return getNodeIfExists(MgnlContext.getJCRSession(workspace), uuidOrPath);
+ return wrap(getNodeIfExists(MgnlContext.getJCRSession(workspace), uuidOrPath));
}
catch (RepositoryException e)
{
@@ -272,7 +271,35 @@
return LinkTransformerManager
.getInstance()
.getAbsolute(addcontextpath)
- .transform(LinkFactory.createLink(ContentUtil.asContent(node)));
+ .transform(LinkFactory.createLink(info.magnolia.cms.util.ContentUtil.asContent(node)));
}
+
+ public static Session unwrap(Session session)
+ {
+ if (session == null)
+ {
+ return null;
+ }
+ while (session instanceof DelegateSessionWrapper)
+ {
+ session = ((DelegateSessionWrapper) session).getWrappedSession();
+ }
+
+ return session;
+ }
+
+ public static Workspace unwrap(Workspace workspace)
+ {
+ if (workspace == null)
+ {
+ return null;
+ }
+ while (workspace instanceof DelegateWorkspaceWrapper)
+ {
+ workspace = ((DelegateWorkspaceWrapper) workspace).getWrappedWorkspace();
+ }
+
+ return workspace;
+ }
}
Modified: magnoliamodules/trunk/openutils-mgnlutils/src/test/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctionsTest.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlutils/src/test/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctionsTest.java 2013-10-20 14:20:48 UTC (rev 4399)
+++ magnoliamodules/trunk/openutils-mgnlutils/src/test/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctionsTest.java 2013-10-20 15:00:28 UTC (rev 4400)
@@ -118,19 +118,12 @@
((MockWebContext) MgnlContext.getInstance()).setContextPath("/testcontextpath");
Components.getComponent(ServerConfiguration.class).setDefaultExtension("html");
- try
- {
- Class classI18nContentSupport = Class.forName("info.magnolia.cms.i18n.DefaultI18nContentSupport");
- Method i18nGetLocale = classI18nContentSupport.getMethod("getDefaultLocale");
- // Magnolia version >= 4.3.x
- i18nGetLocale.invoke(i18nSupport, en.getLocale());
- }
- catch (Throwable e)
- {
- // Magnolia version < 4.3.x
- MgnlContext.getInstance().setLocale(new Locale(""));
- }
+ Class classI18nContentSupport = Class.forName("info.magnolia.cms.i18n.DefaultI18nContentSupport");
+ Method i18nGetLocale = classI18nContentSupport.getMethod("getDefaultLocale");
+ // Magnolia version >= 4.3.x
+ i18nGetLocale.invoke(i18nSupport, en.getLocale());
+
// info.magnolia.link.BaseLinkTest.setUp()
// not configured in the repository
ComponentsTestUtil.setImplementation(URI2RepositoryManager.class, URI2RepositoryManager.class);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|