svn commit: r1336592 - /jackrabbit/oak/trunk/oak-core/pom.xml

2012-05-10 Thread mduerig
Author: mduerig
Date: Thu May 10 11:14:38 2012
New Revision: 1336592

URL: http://svn.apache.org/viewvc?rev=1336592view=rev
Log:
OAK-94: oak-it/osgi fails due to required packages not being exported
Add missing packages to Export-Package directive

Modified:
jackrabbit/oak/trunk/oak-core/pom.xml

Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1336592r1=1336591r2=1336592view=diff
==
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Thu May 10 11:14:38 2012
@@ -43,7 +43,9 @@
   org.apache.jackrabbit.oak.core,
   org.apache.jackrabbit.oak.util,
   org.apache.jackrabbit.oak.namepath,
-  org.apache.jackrabbit.oak.plugins.name
+  org.apache.jackrabbit.oak.plugins.name,
+  org.apache.jackrabbit.oak.security.principal,
+  org.apache.jackrabbit.oak.spi.security.principal
 /Export-Package
 Bundle-Activator
   org.apache.jackrabbit.oak.osgi.Activator




svn commit: r1336628 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java

2012-05-10 Thread reschke
Author: reschke
Date: Thu May 10 12:02:13 2012
New Revision: 1336628

URL: http://svn.apache.org/viewvc?rev=1336628view=rev
Log:
remove unused import

Modified:

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java?rev=1336628r1=1336627r2=1336628view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceMappings.java
 Thu May 10 12:02:13 2012
@@ -16,21 +16,21 @@
 */
 package org.apache.jackrabbit.oak.plugins.name;
 
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.ContentSession;
-import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.api.Root;
-import org.apache.jackrabbit.oak.api.Tree;
-
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+
+import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.api.ContentSession;
+import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.api.Tree;
+
 /**
  * Prove of concept implementation for OAK-61.
  *




svn commit: r1336712 - /jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java

2012-05-10 Thread mduerig
Author: mduerig
Date: Thu May 10 14:17:28 2012
New Revision: 1336712

URL: http://svn.apache.org/viewvc?rev=1336712view=rev
Log:
remove unused/redundant method

Modified:

jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java

Modified: 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java?rev=1336712r1=1336711r2=1336712view=diff
==
--- 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/ArrayUtils.java
 Thu May 10 14:17:28 2012
@@ -225,17 +225,4 @@ public class ArrayUtils {
 return new HashSetT(java.util.Arrays.asList(elements));
 }
 
-// TODO duplicate of copyArrayAdd?
-/**
- * Create a new array of the same type with an additional element added.
- * @param array
- * @param value
- * @param T
- * @return array of {@code array.length + 1} with {@code value} as its 
last element.
- */
-public static T T[] add(T[] array, T value) {
-T[] copy = java.util.Arrays.copyOf(array, array.length + 1);
-copy[array.length] = value;
-return copy;
-}
 }




svn commit: r1336714 - in /jackrabbit/oak/trunk: oak-it/jcr/pom.xml oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java

2012-05-10 Thread reschke
Author: reschke
Date: Thu May 10 14:21:41 2012
New Revision: 1336714

URL: http://svn.apache.org/viewvc?rev=1336714view=rev
Log:
OAK-16: implement random access in BinaryImpl

Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml

jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java

Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1336714r1=1336713r2=1336714view=diff
==
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Thu May 10 14:21:41 2012
@@ -46,7 +46,6 @@
   value
 org.apache.jackrabbit.test.api.NodeReadMethodsTest#testGetPrimaryItem
 org.apache.jackrabbit.test.api.NodeReadMethodsTest#testGetUUID
-org.apache.jackrabbit.test.api.BinaryPropertyTest#testRandomAccess
 org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUIDFailure
 org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUID
 org.apache.jackrabbit.test.api.PathTest#testGetItem

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java?rev=1336714r1=1336713r2=1336714view=diff
==
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/BinaryImpl.java
 Thu May 10 14:21:41 2012
@@ -55,8 +55,15 @@ class BinaryImpl implements Binary {
 
 @Override
 public int read(byte[] b, long position) throws IOException, 
RepositoryException {
-// TODO
-throw new UnsupportedOperationException(implementation missing);
+InputStream stream = value.unwrap().getNewStream();
+try {
+if (position != stream.skip(position)) {
+throw new IOException(Can't skip to position  + position);
+}
+return stream.read(b);
+} finally {
+stream.close();
+}
 }
 
 @Override




svn commit: r1336717 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/api/ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ oak-core/src/main/java/org/apache/jackrab

2012-05-10 Thread thomasm
Author: thomasm
Date: Thu May 10 14:30:40 2012
New Revision: 1336717

URL: http://svn.apache.org/viewvc?rev=1336717view=rev
Log:
OAK-34 Define query API - support workspaces and access rights in queries

Modified:

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ChildNodeImpl.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/DescendantNodeImpl.java

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SameNodeImpl.java

jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/QueryTest.java

jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java

jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java?rev=1336717r1=1336716r2=1336717view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java
 Thu May 10 14:30:40 2012
@@ -49,12 +49,13 @@ public interface QueryEngine {
  *
  * @param statement the query statement
  * @param language the language
+ * @param session the content session to use
  * @param bindings the bind variable value bindings
  * @return the result
  * @throws ParseException if the statement could not be parsed
  * @throws IllegalArgumentException if there was an error executing the 
query
  */
-Result executeQuery(String statement, String language, MapString, 
CoreValue bindings) throws ParseException;
+Result executeQuery(String statement, String language, ContentSession 
session, MapString, CoreValue bindings) throws ParseException;
 
 // TODO pass namespace mapping
 // TODO pass node type information (select * from [xyz] is supposed to 
return at least the mandatory columns for xyz)

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java?rev=1336717r1=1336716r2=1336717view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java
 Thu May 10 14:30:40 2012
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import org.apache.jackrabbit.mk.api.MicroKernel;
+import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.CoreValue;
 import org.apache.jackrabbit.oak.api.CoreValueFactory;
 import org.apache.jackrabbit.oak.query.ast.AstVisitorBase;
@@ -69,6 +70,7 @@ public class Query {
 private long offset;
 private boolean prepared;
 private final CoreValueFactory valueFactory;
+private ContentSession session;
 
 Query(SourceImpl source, ConstraintImpl constraint, OrderingImpl[] 
orderings,
   ColumnImpl[] columns, CoreValueFactory valueFactory) {
@@ -461,6 +463,10 @@ public class Query {
 return new ArrayListString(bindVariableMap.keySet());
 }
 
+public String getWorkspaceName() {
+return session.getWorkspaceName();
+}
+
 public void setQueryEngine(QueryEngineImpl queryEngine) {
 this.queryEngine = queryEngine;
 }
@@ -469,4 +475,8 @@ public class Query {
 return queryEngine.getBestIndex(filter);
 }
 
+public void setSession(ContentSession session) {
+this.session = session;
+}
+
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java?rev=1336717r1=1336716r2=1336717view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
 (original)
+++ 

svn commit: r1336718 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java

2012-05-10 Thread thomasm
Author: thomasm
Date: Thu May 10 14:33:29 2012
New Revision: 1336718

URL: http://svn.apache.org/viewvc?rev=1336718view=rev
Log:
OAK-16 Proper ValueFactory implementation and Value handling (toString, reduce 
noise)

Modified:

jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java?rev=1336718r1=1336717r2=1336718view=diff
==
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java
 Thu May 10 14:33:29 2012
@@ -37,7 +37,7 @@ import java.util.Calendar;
 import java.util.TimeZone;
 
 /**
- * ValueImpl...
+ * The implementation of JCR values.
  */
 class ValueImpl implements Value {
 
@@ -48,7 +48,7 @@ class ValueImpl implements Value {
 
 private final CoreValue value;
 private final NamePathMapper namePathMapper;
-
+
 private InputStream stream = null;
 
 /**
@@ -67,17 +67,12 @@ class ValueImpl implements Value {
 }
 
 //-- Value 
---
-/**
- * @see javax.jcr.Value#getType()
- */
+
 @Override
 public int getType() {
 return value.getType();
 }
 
-/**
- * @see javax.jcr.Value#getBoolean()
- */
 @Override
 public boolean getBoolean() throws RepositoryException {
 if (getType() == PropertyType.STRING || getType() == 
PropertyType.BINARY || getType() == PropertyType.BOOLEAN) {
@@ -87,9 +82,6 @@ class ValueImpl implements Value {
 }
 }
 
-/**
- * @see javax.jcr.Value#getDate()
- */
 @Override
 public Calendar getDate() throws RepositoryException {
 Calendar cal;
@@ -109,9 +101,6 @@ class ValueImpl implements Value {
 return cal;
 }
 
-/**
- * @see javax.jcr.Value#getDecimal()
- */
 @Override
 public BigDecimal getDecimal() throws RepositoryException {
 try {
@@ -127,9 +116,6 @@ class ValueImpl implements Value {
 }
 }
 
-/**
- * @see javax.jcr.Value#getDouble()
- */
 @Override
 public double getDouble() throws RepositoryException {
 try {
@@ -145,9 +131,6 @@ class ValueImpl implements Value {
 }
 }
 
-/**
- * @see javax.jcr.Value#getLong()
- */
 @Override
 public long getLong() throws RepositoryException {
 try {
@@ -163,9 +146,6 @@ class ValueImpl implements Value {
 }
 }
 
-/**
- * @see javax.jcr.Value#getString()
- */
 @Override
 public String getString() throws RepositoryException {
 switch (getType()) {
@@ -187,10 +167,6 @@ class ValueImpl implements Value {
 }
 }
 
-
-/**
- * @see javax.jcr.Value#getStream()
- */
 @Override
 public InputStream getStream() throws IllegalStateException, 
RepositoryException {
 if (stream == null) {
@@ -207,22 +183,17 @@ class ValueImpl implements Value {
 stream = value.getNewStream();
 }
 }
-
+
 return stream;
 }
 
-/**
- * @see javax.jcr.Value#getBinary()
- */
 @Override
 public Binary getBinary() throws RepositoryException {
 return new BinaryImpl(this);
 }
 
 //- Object 
---
-/**
- * @see Object#equals(Object)
- */
+
 @Override
 public boolean equals(Object obj) {
 if (obj instanceof ValueImpl) {
@@ -232,11 +203,14 @@ class ValueImpl implements Value {
 }
 }
 
-/**
- * @see Object#hashCode()
- */
-@Override
+ @Override
 public int hashCode() {
 return value.hashCode();
 }
+
+@Override
+public String toString() {
+return value.toString();
+}
+
 }
\ No newline at end of file




svn commit: r1336730 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java

2012-05-10 Thread mduerig
Author: mduerig
Date: Thu May 10 14:57:42 2012
New Revision: 1336730

URL: http://svn.apache.org/viewvc?rev=1336730view=rev
Log:
demote field to local var

Modified:

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java?rev=1336730r1=1336729r2=1336730view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
 Thu May 10 14:57:42 2012
@@ -55,7 +55,6 @@ public class ContentRepositoryImpl imple
 
 private static final String APP_NAME = jackrabbit.oak;
 
-private final MicroKernel microKernel;
 private final QueryEngine queryEngine;
 private final NodeStore nodeStore;
 
@@ -75,11 +74,10 @@ public class ContentRepositoryImpl imple
  * Creates an Oak repository instance based on the given, already
  * initialized components.
  *
- * @param mk underlying kernel instance
+ * @param microKernel underlying kernel instance
  * @param indexProvider index provider
  */
-public ContentRepositoryImpl(MicroKernel mk, QueryIndexProvider 
indexProvider) {
-microKernel = mk;
+public ContentRepositoryImpl(MicroKernel microKernel, QueryIndexProvider 
indexProvider) {
 nodeStore = new KernelNodeStore(microKernel, new EmptyCommitHook());
 QueryIndexProvider qip = (indexProvider == null) ? 
getDefaultIndexProvider(microKernel) : indexProvider;
 queryEngine = new QueryEngineImpl(nodeStore, microKernel, qip);




svn commit: r1336742 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java

2012-05-10 Thread mduerig
Author: mduerig
Date: Thu May 10 15:15:17 2012
New Revision: 1336742

URL: http://svn.apache.org/viewvc?rev=1336742view=rev
Log:
typo

Modified:

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java?rev=1336742r1=1336741r2=1336742view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java
 Thu May 10 15:15:17 2012
@@ -76,7 +76,7 @@ public interface CoreValueFactory {
  * @return a new value instance.
  * @throws IllegalArgumentException if the specified {@code InputStream} 
is {@code null}.
  * @throws IOException If an error occurs while processing the stream.
- * @throws //TODO define exceptions (currently impl. throws 
MikrokernelException)
+ * @throws //TODO define exceptions (currently impl. throws 
MicrokernelException)
  */
 CoreValue createValue(InputStream value) throws IOException;
 




svn commit: r1336746 - in /jackrabbit/oak/trunk/oak-it/jcr: pom.xml src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java

2012-05-10 Thread reschke
Author: reschke
Date: Thu May 10 15:31:15 2012
New Revision: 1336746

URL: http://svn.apache.org/viewvc?rev=1336746view=rev
Log:
OAK-6: add test content for export tests, update test exclusions

Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml

jackrabbit/oak/trunk/oak-it/jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java

Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1336746r1=1336745r2=1336746view=diff
==
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Thu May 10 15:31:15 2012
@@ -48,6 +48,11 @@ org.apache.jackrabbit.test.api.NodeReadM
 org.apache.jackrabbit.test.api.NodeReadMethodsTest#testGetUUID
 org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUIDFailure
 org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUID
+org.apache.jackrabbit.test.api.ExportSysViewTest#testExportSysView_handler_session_saveBinary_recurse
+org.apache.jackrabbit.test.api.ExportSysViewTest#testExportSysView_stream_session_skipBinary_recurse
+org.apache.jackrabbit.test.api.ExportSysViewTest#testExportSysView_stream_session_skipBinary_noRecurse
+org.apache.jackrabbit.test.api.ExportSysViewTest#testExportSysView_stream_session_saveBinary_noRecurse
+org.apache.jackrabbit.test.api.ExportSysViewTest#testExportSysView_stream_session_saveBinary_recurse
 org.apache.jackrabbit.test.api.PathTest#testGetItem
 org.apache.jackrabbit.test.api.PathTest#testCreatePathValue
 org.apache.jackrabbit.test.api.PathTest#testCreateMultiplePathValue

Modified: 
jackrabbit/oak/trunk/oak-it/jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java?rev=1336746r1=1336745r2=1336746view=diff
==
--- 
jackrabbit/oak/trunk/oak-it/jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-it/jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java
 Thu May 10 15:31:15 2012
@@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Calendar;
 
+import javax.jcr.Binary;
 import javax.jcr.Node;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.PropertyType;
@@ -28,6 +29,7 @@ import javax.jcr.Session;
 import javax.jcr.ValueFactory;
 
 import org.apache.jackrabbit.commons.JcrUtils;
+import org.apache.jackrabbit.value.BinaryValue;
 
 public class TestContentLoader {
 
@@ -42,6 +44,7 @@ public class TestContentLoader {
 addPropertyTestData(getOrAddNode(data, property));
 addQueryTestData(getOrAddNode(data, query));
 addNodeTestData(getOrAddNode(data, node));
+addExportTestData(getOrAddNode(data, docViewTest));
 
 session.save();
 }
@@ -105,9 +108,7 @@ public class TestContentLoader {
 resource.addMixin(mix:referenceable);
 resource.setProperty(jcr:encoding, ENCODING);
 resource.setProperty(jcr:mimeType, text/plain);
-resource.setProperty(
-jcr:data,
-new ByteArrayInputStream(Hello 
w\u00F6rld..getBytes(ENCODING)));
+resource.setProperty(jcr:data, new BinaryValue(Hello 
w\u00F6rld..getBytes(ENCODING)));
 resource.setProperty(jcr:lastModified, Calendar.getInstance());
 
 
@@ -129,4 +130,72 @@ public class TestContentLoader {
 node, testFile, text/plain,
 new ByteArrayInputStream(Hello, World!.getBytes(UTF-8)));
 }
+
+private  void addExportTestData(Node node) throws RepositoryException, 
IOException {
+getOrAddNode(node, invalidXmlName).setProperty(propName, some 
text);
+
+// three nodes which should be serialized as xml text in docView export
+// separated with spaces
+getOrAddNode(node, jcr:xmltext).setProperty(
+jcr:xmlcharacters, A text without any special character.);
+getOrAddNode(node, some-element);
+getOrAddNode(node, jcr:xmltext).setProperty(
+jcr:xmlcharacters,
+ The entity reference characters: , ', ,, ,  \ should
++  be escaped in xml export. );
+getOrAddNode(node, some-element);
+getOrAddNode(node, jcr:xmltext).setProperty(
+jcr:xmlcharacters, A text without any special character.);
+
+Node big = getOrAddNode(node, bigNode);
+big.setProperty(
+propName0,
+SGVsbG8gd8O2cmxkLg==;SGVsbG8gd8O2cmxkLg==.split(;),
+PropertyType.BINARY);
+big.setProperty(propName1, text 1);
+big.setProperty(
+propName2,
+multival text 1;multival text 2;multival text 

svn commit: r1336763 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java

2012-05-10 Thread angela
Author: angela
Date: Thu May 10 15:56:25 2012
New Revision: 1336763

URL: http://svn.apache.org/viewvc?rev=1336763view=rev
Log:
 OAK-91 - Implement Authentication Support (WIP)

Modified:

jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java?rev=1336763r1=1336762r2=1336763view=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/LoginModuleImpl.java
 Thu May 10 15:56:25 2012
@@ -36,7 +36,51 @@ import java.util.Map;
 import java.util.Set;
 
 /**
- * LoginModuleImpl...
+ * Default login module implementation that authenticates JCR {@code 
Credentials}
+ * against the repository. Based on the credentials the {@link Principal}s
+ * associated with user are retrieved from a configurable {@link 
PrincipalProvider}.
+ *
+ * h3Credentials/h3
+ *
+ * The {@code Credentials} are collected during {@link #login()} using the
+ * following logic:
+ *
+ * ul
+ * li{@code Credentials} as specified in {@link 
javax.jcr.Repository#login(javax.jcr.Credentials)}
+ * in which case they are retrieved from the {@code CallbackHandler}./li
+ * liA {@link #SHARED_KEY_CREDENTIALS} entry in the shared state. The
+ * expected value is a set of {@code Credentials}. Ffor backwards 
compatibility
+ * with the Jackrabbit 2.x) the former {@link #SHARED_KEY_JR_CREDENTIALS}
+ * entry in the shared state is also respected. In the latter case
+ * the expected value is a single {@code Credentials} object./li
+ * liIf neither of the above variants provides Credentials this module
+ * tries to obtain them from the subject. See also
+ * {@link Subject#getSubject(java.security.AccessControlContext)}/li
+ * /ul
+ *
+ * This implementation of the {@code LoginModule} currently supports the 
following
+ * types of JCR Credentials:
+ *
+ * ul
+ * li{@link SimpleCredentials}/li
+ * li{@link GuestCredentials}/li
+ * li// TODO {@link TokenCredentials}/li
+ * /ul
+ *
+ * The {@link Credentials} obtained during the {@link #login()} are added to
+ * the shared state and - upon successful {@link #commit()} to the {@link 
Subject}.
+ *
+ * h3Principals/h3
+ *
+ * TODO
+ *
+ * h3Login vs. Impersonation/h3
+ *
+ * TODO
+ *
+ *
+ *
+ *
  */
 public class LoginModuleImpl implements LoginModule {
 
@@ -45,11 +89,34 @@ public class LoginModuleImpl implements 
  */
 private static final Logger log = 
LoggerFactory.getLogger(LoginModuleImpl.class);
 
+/**
+ * Backwards compatibility: Key of the sharedState entry referring to a
+ * Credentials object being passed between multiple login modules.
+ *
+ * @deprecated Use {@link #SHARED_KEY_CREDENTIALS} instead.
+ */
+private static final String SHARED_KEY_JR_CREDENTIALS = 
org.apache.jackrabbit.credentials;
+
+/**
+ * Key of the sharedState entry referring to a Set of Credentials that is
+ * shared between multiple login modules.
+ */
+public static final String SHARED_KEY_CREDENTIALS = 
org.apache.jackrabbit.oak.credentials;
+
+//public static final String SHARED_KEY_LOGIN_NAME = 
javax.security.auth.login.name;
+
+protected static final SetClass SUPPORTED_CREDENTIALS = new 
HashSetClass(2);
+static {
+SUPPORTED_CREDENTIALS.add(SimpleCredentials.class);
+SUPPORTED_CREDENTIALS.add(GuestCredentials.class);
+}
+
 private Subject subject;
 private CallbackHandler callbackHandler;
+private Map sharedState;
 
 private SetCredentials credentials;
-private String principalName;
+private SetPrincipal principals;
 
 // LoginModule 
---
 @Override
@@ -58,14 +125,15 @@ public class LoginModuleImpl implements 
 
 this.subject = subject;
 this.callbackHandler = callbackHandler;
+this.sharedState = sharedState;
 }
 
 @Override
 public boolean login() throws LoginException {
 // TODO
-credentials = retrieveCredentials();
+credentials = getCredentials();
 if (supportsCredentials()) {
-principalName = retrievePrincipalName();
+principals = getPrincipals();
 return true;
 } else {
 return false;
@@ -76,91 +144,156 @@ public class LoginModuleImpl implements 
 public boolean commit() throws LoginException {
 // TODO
 
-