You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2013/04/23 11:37:32 UTC
svn commit: r1470862 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
oak-run/src/main/java/org/ap...
Author: alexparvulescu
Date: Tue Apr 23 09:37:31 2013
New Revision: 1470862
URL: http://svn.apache.org/r1470862
Log:
OAK-757 Merge DefaultTypeEditor into the TypeEditor
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/DefaultTypeEditor.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/Activator.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/Activator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/Activator.java?rev=1470862&r1=1470861&r2=1470862&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/Activator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/Activator.java Tue Apr 23 09:37:31 2013
@@ -28,7 +28,6 @@ import org.apache.jackrabbit.oak.api.Con
import org.apache.jackrabbit.oak.core.ContentRepositoryImpl;
import org.apache.jackrabbit.oak.kernel.KernelNodeStore;
import org.apache.jackrabbit.oak.osgi.OsgiRepositoryInitializer.RepositoryInitializerObserver;
-import org.apache.jackrabbit.oak.plugins.nodetype.DefaultTypeEditor;
import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
import org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer;
import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
@@ -104,8 +103,6 @@ public class Activator implements Bundle
Oak oak = new Oak(store)
// FIXME: proper osgi setup for security provider (see OAK-17 and sub-tasks)
.with(new SecurityProviderImpl())
- // TODO: DefaultTypeEditor is JCR specific and does not belong here
- .with(new DefaultTypeEditor())
.with(validatorProvider)
.with(indexProvider)
.with(indexHookProvider);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java?rev=1470862&r1=1470861&r2=1470862&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java Tue Apr 23 09:37:31 2013
@@ -23,6 +23,7 @@ import static org.apache.jackrabbit.JcrC
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.JcrConstants.JCR_REQUIREDTYPE;
import static org.apache.jackrabbit.JcrConstants.JCR_VALUECONSTRAINTS;
+import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
import static org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
import static org.apache.jackrabbit.oak.api.Type.NAME;
import static org.apache.jackrabbit.oak.api.Type.NAMES;
@@ -39,9 +40,11 @@ import javax.jcr.Value;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
import org.apache.jackrabbit.oak.spi.commit.DefaultEditor;
import org.apache.jackrabbit.oak.spi.commit.Editor;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import com.google.common.base.Joiner;
@@ -68,17 +71,28 @@ class TypeEditor extends DefaultEditor {
private final List<String> typeNames = newArrayList();
private EffectiveType effective = null;
+
+ private final NodeBuilder node;
- TypeEditor(NodeState types) {
+ // TODO: Calculate default type from the node definition
+ private final String defaultType = NT_UNSTRUCTURED;
+
+ TypeEditor(NodeState types, NodeBuilder node) {
this.parent = null;
this.nodeName = null;
this.types = checkNotNull(types);
+ this.node = node;
}
private TypeEditor(TypeEditor parent, String name) {
this.parent = checkNotNull(parent);
this.nodeName = checkNotNull(name);
this.types = parent.types;
+ if (parent != null && parent.node != null) {
+ this.node = parent.node.child(name);
+ } else {
+ this.node = null;
+ }
}
private String getPath() {
@@ -97,6 +111,9 @@ class TypeEditor extends DefaultEditor {
@Override
public void enter(NodeState before, NodeState after)
throws CommitFailedException {
+ if (after.getProperty(JCR_PRIMARYTYPE) == null && node != null) {
+ node.setProperty(JCR_PRIMARYTYPE, defaultType, Type.NAME);
+ }
computeEffectiveType(after);
// find matching entry in the parent node's effective type
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java?rev=1470862&r1=1470861&r2=1470862&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java Tue Apr 23 09:37:31 2013
@@ -37,7 +37,7 @@ public class TypeEditorProvider implemen
NodeState system = after.getChildNode(JCR_SYSTEM);
NodeState types = system.getChildNode(JCR_NODE_TYPES);
if (types.exists()) {
- return new VisibleEditor(new TypeEditor(types));
+ return new VisibleEditor(new TypeEditor(types, builder));
} else {
return null;
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java?rev=1470862&r1=1470861&r2=1470862&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java Tue Apr 23 09:37:31 2013
@@ -31,7 +31,6 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.p2.Property2IndexProvider;
import org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider;
import org.apache.jackrabbit.oak.plugins.name.NamespaceValidatorProvider;
-import org.apache.jackrabbit.oak.plugins.nodetype.DefaultTypeEditor;
import org.apache.jackrabbit.oak.plugins.nodetype.RegistrationEditorProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
@@ -59,7 +58,6 @@ public class Jcr {
with(new InitialContent());
with(JcrConflictHandler.JCR_CONFLICT_HANDLER);
- with(new DefaultTypeEditor());
with(new VersionHook());
with(new SecurityProviderImpl());
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1470862&r1=1470861&r2=1470862&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Tue Apr 23 09:37:31 2013
@@ -33,7 +33,6 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.p2.Property2IndexHookProvider;
import org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider;
import org.apache.jackrabbit.oak.plugins.name.NamespaceValidatorProvider;
-import org.apache.jackrabbit.oak.plugins.nodetype.DefaultTypeEditor;
import org.apache.jackrabbit.oak.plugins.nodetype.RegistrationEditorProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
@@ -168,7 +167,6 @@ public class Main {
.with(new NamespaceValidatorProvider())
.with(new TypeEditorProvider())
.with(new RegistrationEditorProvider())
- .with(new DefaultTypeEditor())
.with(new Property2IndexHookProvider())
.with(securityProvider)
.with(new InitialContent())