You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2009/04/08 15:58:38 UTC
svn commit: r763248 - in /jackrabbit/trunk/jackrabbit-core/src/main:
java/org/apache/jackrabbit/core/nodetype/
resources/org/apache/jackrabbit/core/nodetype/
Author: tripod
Date: Wed Apr 8 13:58:37 2009
New Revision: 763248
URL: http://svn.apache.org/viewvc?rev=763248&view=rev
Log:
JCR-2065 use the internal CND file for builtin nodetypes
Removed:
jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java
jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java?rev=763248&r1=763247&r2=763248&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java Wed Apr 8 13:58:37 2009
@@ -18,16 +18,21 @@
import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
import org.apache.jackrabbit.core.nodetype.xml.NodeTypeWriter;
+import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefReader;
+import org.apache.jackrabbit.core.nodetype.compact.ParseException;
import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.commons.name.NameConstants;
import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.Reader;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
/**
* <code>NodeTypeDefStore</code> ...
@@ -59,6 +64,28 @@
}
/**
+ * Loads node types from a CND stream.
+ *
+ * @param in reader containing the nodetype definitions
+ * @param systemId optional name of the stream
+ *
+ * @throws IOException if an I/O error during reading occurrs
+ * @throws InvalidNodeTypeDefException if the CND cannot be parsed
+ */
+ public void loadCND(Reader in, String systemId)
+ throws IOException, InvalidNodeTypeDefException {
+ try {
+ CompactNodeTypeDefReader r = new CompactNodeTypeDefReader(in, systemId);
+ Iterator iter = r.getNodeTypeDefs().iterator();
+ while (iter.hasNext()) {
+ add((NodeTypeDef) iter.next());
+ }
+ } catch (ParseException e) {
+ throw new InvalidNodeTypeDefException("Unable to parse CND stream.", e);
+ }
+ }
+
+ /**
* @param out
* @param registry
* @throws IOException
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java?rev=763248&r1=763247&r2=763248&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java Wed Apr 8 13:58:37 2009
@@ -35,6 +35,8 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -59,7 +61,7 @@
private static Logger log = LoggerFactory.getLogger(NodeTypeRegistry.class);
private static final String BUILTIN_NODETYPES_RESOURCE_PATH =
- "org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml";
+ "org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd";
private static final String CUSTOM_NODETYPES_RESOURCE_NAME =
"custom_nodetypes.xml";
@@ -798,7 +800,10 @@
InputStream in = null;
try {
in = getClass().getClassLoader().getResourceAsStream(BUILTIN_NODETYPES_RESOURCE_PATH);
- store.load(in);
+ if (in != null) {
+ Reader r = new InputStreamReader(in, "utf-8");
+ store.loadCND(r, BUILTIN_NODETYPES_RESOURCE_PATH);
+ }
} catch (IOException ioe) {
String error =
"internal error: failed to read built-in node type definitions stored in "
Modified: jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd?rev=763248&r1=763247&r2=763248&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd Wed Apr 8 13:58:37 2009
@@ -43,6 +43,12 @@
- jcr:lockOwner (string) protected ignore
- jcr:lockIsDeep (boolean) protected ignore
+/**
+ * @since 2.0
+ */
+[mix:shareable] > mix:referenceable
+ mixin
+
//------------------------------------------------------------------------------
// V E R S I O N I N G
//------------------------------------------------------------------------------
@@ -58,7 +64,7 @@
< 'nt:version'
- jcr:mergeFailed (reference) protected multiple abort
-[nt:versionHistory] > mix:referenceable
+[nt:versionHistory] > nt:base, mix:referenceable
- jcr:versionableUuid (string) mandatory autocreated protected abort
+ jcr:rootVersion (nt:version) = nt:version mandatory autocreated protected abort
+ jcr:versionLabels (nt:versionLabels) = nt:versionLabels mandatory autocreated protected abort
@@ -68,7 +74,7 @@
- * (reference) protected abort
< 'nt:version'
-[nt:version] > mix:referenceable
+[nt:version] > nt:base, mix:referenceable
- jcr:created (date) mandatory autocreated protected abort
- jcr:predecessors (reference) protected multiple abort
< 'nt:version'
@@ -76,7 +82,7 @@
< 'nt:version'
+ jcr:frozenNode (nt:frozenNode) protected abort
-[nt:frozenNode] > mix:referenceable
+[nt:frozenNode] > nt:base, mix:referenceable
orderable
- jcr:frozenPrimaryType (name) mandatory autocreated protected abort
- jcr:frozenMixinTypes (name) protected multiple abort
@@ -142,7 +148,7 @@
[nt:linkedFile] > nt:hierarchyNode
- jcr:content (reference) primary mandatory
-[nt:resource] > mix:referenceable
+[nt:resource] > nt:base, mix:referenceable
- jcr:encoding (string)
- jcr:mimeType (string) mandatory
- jcr:data (binary) primary mandatory
@@ -201,7 +207,7 @@
// Principal based AC
// -----------------------------------------------------------------------------
-[rep:AccessControl] > nt:base
+[rep:AccessControl]
+ * (rep:AccessControl) protected ignore
+ * (rep:PrincipalAccessControl) protected ignore