You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2011/04/20 11:29:04 UTC
svn commit: r1095338 [2/2] - in /jackrabbit/trunk:
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/
jackrabbit-...
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/ParseException.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/ParseException.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/ParseException.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/ParseException.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/ParseException.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/ParseException.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/ParseException.java Wed Apr 20 09:29:02 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
/**
* <code>ParseException</code>...
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinition.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinition.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinition.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinition.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinition.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinition.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinition.java Wed Apr 20 09:29:02 2011
@@ -14,26 +14,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
-import java.util.Arrays;
+import org.apache.jackrabbit.spi.Name;
+
+import java.util.Collections;
+import java.util.Set;
/**
* <code>PrivilegeDefinition</code>
*/
public class PrivilegeDefinition {
- private final String name;
+ private final Name name;
private final boolean isAbstract;
- private final String[] declaredAggregateNames;
+ private final Set<Name> declaredAggregateNames;
- public PrivilegeDefinition(String name, boolean isAbstract, String[] declaredAggregateNames) {
+ public PrivilegeDefinition(Name name, boolean isAbstract, Set<Name> declaredAggregateNames) {
this.name = name;
this.isAbstract = isAbstract;
- this.declaredAggregateNames = declaredAggregateNames == null ? new String[0] : declaredAggregateNames;
+ this.declaredAggregateNames = declaredAggregateNames == null ? Collections.<Name>emptySet() : Collections.unmodifiableSet(declaredAggregateNames);
}
- public String getName() {
+ public Name getName() {
return name;
}
@@ -41,7 +44,7 @@ public class PrivilegeDefinition {
return isAbstract;
}
- public String[] getDeclaredAggregateNames() {
+ public Set<Name> getDeclaredAggregateNames() {
return declaredAggregateNames;
}
@@ -53,17 +56,16 @@ public class PrivilegeDefinition {
PrivilegeDefinition that = (PrivilegeDefinition) o;
if (isAbstract != that.isAbstract) return false;
- if (!Arrays.equals(declaredAggregateNames, that.declaredAggregateNames)) return false;
if (name != null ? !name.equals(that.name) : that.name != null) return false;
+ return declaredAggregateNames.equals(that.declaredAggregateNames);
- return true;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (isAbstract ? 1 : 0);
- result = 31 * result + (declaredAggregateNames != null ? Arrays.hashCode(declaredAggregateNames) : 0);
+ result = 31 * result + (declaredAggregateNames != null ? declaredAggregateNames.hashCode() : 0);
return result;
}
}
\ No newline at end of file
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionReader.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionReader.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionReader.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionReader.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionReader.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionReader.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionReader.java Wed Apr 20 09:29:02 2011
@@ -14,9 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
import java.io.InputStream;
+import java.io.Reader;
import java.util.HashMap;
import java.util.Map;
@@ -52,6 +53,28 @@ public class PrivilegeDefinitionReader {
}
/**
+ * Creates a new <code>PrivilegeDefinitionReader</code> for the given
+ * input stream. The specified content type is used in order to determine
+ * the type of privilege serialization.
+ *
+ * @param reader The reader to read the privilege definitions from.
+ * @param contentType Currently only types supported by
+ * {@link PrivilegeXmlHandler#isSupportedContentType(String)PrivilegeXmlHandler}
+ * are allowed.
+ * @throws ParseException If an error occurs.
+ * @throws IllegalArgumentException if the specified content type is not supported.
+ */
+ public PrivilegeDefinitionReader(Reader reader, String contentType) throws ParseException {
+ if (PrivilegeXmlHandler.isSupportedContentType(contentType)) {
+ PrivilegeHandler pxh = new PrivilegeXmlHandler();
+ privilegeDefinitions = pxh.readDefinitions(reader, namespaces);
+ } else {
+ // not yet supported
+ throw new IllegalArgumentException("Unsupported content type " + contentType);
+ }
+ }
+
+ /**
* Returns the privilege definitions retrieved from the input stream.
*
* @return an array of <code>PrivilegeDefinition</code>
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionWriter.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionWriter.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionWriter.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionWriter.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionWriter.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeDefinitionWriter.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeDefinitionWriter.java Wed Apr 20 09:29:02 2011
@@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.Writer;
import java.util.Map;
/**
@@ -57,4 +58,18 @@ public class PrivilegeDefinitionWriter {
public void writeDefinitions(OutputStream out, PrivilegeDefinition[] privilegeDefinitions, Map<String, String> namespaces) throws IOException {
ph.writeDefinitions(out, privilegeDefinitions, namespaces);
}
+
+ /**
+ * Writes the privilege definitions to the specified output stream.
+ *
+ * @param writer The writer.
+ * @param privilegeDefinitions The privilege definitions to write to the
+ * given output stream.
+ * @param namespaces The namespace mapping (prefix to uri) used by the
+ * specified definitions.
+ * @throws IOException If an error occurs.
+ */
+ public void writeDefinitions(Writer writer, PrivilegeDefinition[] privilegeDefinitions, Map<String, String> namespaces) throws IOException {
+ ph.writeDefinitions(writer, privilegeDefinitions, namespaces);
+ }
}
\ No newline at end of file
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandler.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandler.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandler.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandler.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandler.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandler.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandler.java Wed Apr 20 09:29:02 2011
@@ -14,11 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
import java.util.Map;
/**
@@ -37,6 +39,16 @@ public interface PrivilegeHandler {
PrivilegeDefinition[] readDefinitions(InputStream in, Map<String, String> namespaces) throws ParseException;
/**
+ * Read the privilege definitions and update the specified namespace mapping.
+ *
+ * @param reader
+ * @param namespaces
+ * @return the privilege definitions contained in the specified stream.
+ * @throws ParseException
+ */
+ PrivilegeDefinition[] readDefinitions(Reader reader, Map<String, String> namespaces) throws ParseException;
+
+ /**
* Write the specified privilege definitions to the given output stream.
*
* @param out
@@ -45,4 +57,14 @@ public interface PrivilegeHandler {
* @throws IOException
*/
void writeDefinitions(OutputStream out, PrivilegeDefinition[] definitions, Map<String, String> namespaces) throws IOException;
+
+ /**
+ * Write the specified privilege definitions to the given writer.
+ *
+ * @param writer
+ * @param definitions
+ * @param namespaces
+ * @throws IOException
+ */
+ void writeDefinitions(Writer writer, PrivilegeDefinition[] definitions, Map<String, String> namespaces) throws IOException;
}
\ No newline at end of file
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeXmlHandler.java (from r1095335, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeXmlHandler.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeXmlHandler.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeXmlHandler.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeXmlHandler.java&r1=1095335&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/privilege/PrivilegeXmlHandler.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeXmlHandler.java Wed Apr 20 09:29:02 2011
@@ -14,14 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
+import org.apache.jackrabbit.util.Text;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
@@ -29,6 +34,7 @@ import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
@@ -36,11 +42,14 @@ import javax.xml.transform.stream.Stream
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
-
-import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
+import java.util.Set;
/**
* The <code>PrivilegeXmlHandler</code> loads and stores privilege definitions from a XML document using the
@@ -72,6 +81,8 @@ class PrivilegeXmlHandler implements Pri
private static final String LICENSE_HEADER = createLicenseHeader();
+ private static final NameFactory NAME_FACTORY = NameFactoryImpl.getInstance();
+
private static String createLicenseHeader() {
return "\n" +
" Licensed to the Apache Software Foundation (ASF) under one or more\n" +
@@ -131,11 +142,23 @@ class PrivilegeXmlHandler implements Pri
* @see PrivilegeHandler#readDefinitions(java.io.InputStream, java.util.Map)
*/
public PrivilegeDefinition[] readDefinitions(InputStream in, Map<String, String> namespaces) throws ParseException {
+ return readDefinitions(new InputSource(in), namespaces);
+
+ }
+
+ /**
+ * @see PrivilegeHandler#readDefinitions(java.io.Reader, java.util.Map)
+ */
+ public PrivilegeDefinition[] readDefinitions(Reader reader, Map<String, String> namespaces) throws ParseException {
+ return readDefinitions(new InputSource(reader), namespaces);
+ }
+
+ private PrivilegeDefinition[] readDefinitions(InputSource input, Map<String, String> namespaces) throws ParseException {
try {
List<PrivilegeDefinition> defs = new ArrayList<PrivilegeDefinition>();
DocumentBuilder builder = createDocumentBuilder();
- Document doc = builder.parse(in);
+ Document doc = builder.parse(input);
Element root = doc.getDocumentElement();
if (!XML_PRIVILEGES.equals(root.getNodeName())) {
throw new IllegalArgumentException("root element must be named 'privileges'");
@@ -160,38 +183,51 @@ class PrivilegeXmlHandler implements Pri
} catch (ParserConfigurationException e) {
throw new ParseException(e);
}
-
}
/**
- * @see PrivilegeHandler#writeDefinitions(java.io.OutputStream, PrivilegeDefinition[], java.util.Map)
+ * @see PrivilegeHandler#writeDefinitions(java.io.OutputStream, PrivilegeDefinition[], java.util.Map)
*/
public void writeDefinitions(OutputStream out, PrivilegeDefinition[] definitions, Map<String, String> namespaces) throws IOException {
+ writeDefinitions(new StreamResult(out), definitions, namespaces);
+ }
+
+ /**
+ * @see PrivilegeHandler#writeDefinitions(java.io.Writer, PrivilegeDefinition[], java.util.Map)
+ */
+ public void writeDefinitions(Writer writer, PrivilegeDefinition[] definitions, Map<String, String> namespaces) throws IOException {
+ writeDefinitions(new StreamResult(writer), definitions, namespaces);
+ }
+
+ private void writeDefinitions(Result result, PrivilegeDefinition[] definitions, Map<String, String> namespaces) throws IOException {
try {
+ Map<String, String> uriToPrefix = new HashMap<String, String>(namespaces.size());
DocumentBuilder builder = createDocumentBuilder();
Document doc = builder.newDocument();
doc.appendChild(doc.createComment(LICENSE_HEADER));
Element privileges = (Element) doc.appendChild(doc.createElement(XML_PRIVILEGES));
for (String prefix : namespaces.keySet()) {
- privileges.setAttribute(ATTR_XMLNS + prefix, namespaces.get(prefix));
+ String uri = namespaces.get(prefix);
+ privileges.setAttribute(ATTR_XMLNS + prefix, uri);
+ uriToPrefix.put(uri, prefix);
}
for (PrivilegeDefinition def : definitions) {
Element priv = (Element) privileges.appendChild(doc.createElement(XML_PRIVILEGE));
- priv.setAttribute(ATTR_NAME, def.getName());
+ priv.setAttribute(ATTR_NAME, getQualifiedName(def.getName(), uriToPrefix));
priv.setAttribute(ATTR_ABSTRACT, Boolean.valueOf(def.isAbstract()).toString());
- for (String aggrName : def.getDeclaredAggregateNames()) {
+ for (Name aggrName : def.getDeclaredAggregateNames()) {
Element contains = (Element) priv.appendChild(doc.createElement(XML_CONTAINS));
- contains.setAttribute(ATTR_NAME, aggrName);
+ contains.setAttribute(ATTR_NAME, getQualifiedName(aggrName, uriToPrefix));
}
}
Transformer transformer = TRANSFORMER_FACTORY.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
- transformer.transform(new DOMSource(doc), new StreamResult(out));
+ transformer.transform(new DOMSource(doc), result);
} catch (Exception e) {
IOException io = new IOException(e.getMessage());
@@ -213,21 +249,21 @@ class PrivilegeXmlHandler implements Pri
updateNamespaceMapping(elem, namespaces);
- String name = elem.getAttribute(ATTR_NAME);
+ Name name = getName(elem.getAttribute(ATTR_NAME), namespaces);
boolean isAbstract = Boolean.parseBoolean(elem.getAttribute(ATTR_ABSTRACT));
- List<String> aggrNames = new ArrayList<String>();
+ Set<Name> aggrNames = new HashSet<Name>();
NodeList nodeList = elem.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node contains = nodeList.item(i);
if (isElement(n) && XML_CONTAINS.equals(contains.getNodeName())) {
String aggrName = ((Element) contains).getAttribute(ATTR_NAME);
if (aggrName != null) {
- aggrNames.add(aggrName);
+ aggrNames.add(getName(aggrName, namespaces));
}
}
}
- return new PrivilegeDefinition(name, isAbstract, aggrNames.toArray(new String[aggrNames.size()]));
+ return new PrivilegeDefinition(name, isAbstract, aggrNames);
}
// could not parse into privilege definition
@@ -274,4 +310,16 @@ class PrivilegeXmlHandler implements Pri
private static boolean isElement(Node n) {
return n.getNodeType() == Node.ELEMENT_NODE;
}
+
+ private Name getName(String jcrName, Map<String,String> namespaces) {
+ String prefix = Text.getNamespacePrefix(jcrName);
+ String uri = (Name.NS_EMPTY_PREFIX.equals(prefix)) ? Name.NS_DEFAULT_URI : namespaces.get(prefix);
+ return NAME_FACTORY.create(uri, Text.getLocalName(jcrName));
+ }
+
+ private String getQualifiedName(Name name, Map<String,String> uriToPrefix) {
+ String uri = name.getNamespaceURI();
+ String prefix = (Name.NS_DEFAULT_URI.equals(uri)) ? Name.NS_EMPTY_PREFIX : uriToPrefix.get(uri);
+ return prefix + ":" + name.getLocalName();
+ }
}
Copied: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandlerTest.java (from r1092629, jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandlerTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandlerTest.java?p2=jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandlerTest.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandlerTest.java&r1=1092629&r2=1095338&rev=1095338&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/privilege/PrivilegeHandlerTest.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/PrivilegeHandlerTest.java Wed Apr 20 09:29:02 2011
@@ -14,20 +14,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.commons.privilege;
+package org.apache.jackrabbit.spi.commons.privilege;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.Map;
+import java.util.Set;
import junit.framework.TestCase;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
/**
* <code>PrivilegeReadTest</code>...
*/
public class PrivilegeHandlerTest extends TestCase {
+ private static final NameFactory NF = NameFactoryImpl.getInstance();
/*
<privilege name="foo:testRead"/>
<privilege name="foo:testWrite"/>
@@ -39,12 +46,20 @@ public class PrivilegeHandlerTest extend
</privilege>
*/
- public static PrivilegeDefinition DEF_READ = new PrivilegeDefinition("foo:testRead", false, null);
- public static PrivilegeDefinition DEF_WRITE = new PrivilegeDefinition("foo:testWrite", false, null);
- public static PrivilegeDefinition DEF_ABSTRACT = new PrivilegeDefinition("foo:testAbstract", true, null);
- public static PrivilegeDefinition DEF_NON_ABSTRACT = new PrivilegeDefinition("foo:testNonAbstract", false, null);
- public static PrivilegeDefinition DEF_ALL = new PrivilegeDefinition("foo:testAll", false, new String[]{"foo:testRead", "foo:testWrite"});
- public static PrivilegeDefinition[] DEF_EXPECTED = new PrivilegeDefinition[]{
+ private static final String TEST_PREFIX = "foo";
+ private static final String TEST_URI = "http://www.foo.com/1.0";
+
+ private static PrivilegeDefinition DEF_READ = new PrivilegeDefinition(NF.create(TEST_URI,"testRead"), false, null);
+ private static PrivilegeDefinition DEF_WRITE = new PrivilegeDefinition(NF.create(TEST_URI,"testWrite"), false, null);
+ private static PrivilegeDefinition DEF_ABSTRACT = new PrivilegeDefinition(NF.create(TEST_URI,"testAbstract"), true, null);
+ private static PrivilegeDefinition DEF_NON_ABSTRACT = new PrivilegeDefinition(NF.create(TEST_URI,"testNonAbstract"), false, null);
+ private static Set<Name> aggr = new LinkedHashSet<Name>();
+ static {
+ aggr.add(DEF_READ.getName());
+ aggr.add(DEF_WRITE.getName());
+ }
+ private static PrivilegeDefinition DEF_ALL = new PrivilegeDefinition(NF.create(TEST_URI,"testAll"), false, aggr);
+ private static PrivilegeDefinition[] DEF_EXPECTED = new PrivilegeDefinition[]{
DEF_READ,
DEF_WRITE,
DEF_ABSTRACT,
@@ -57,7 +72,7 @@ public class PrivilegeHandlerTest extend
PrivilegeDefinitionReader reader = new PrivilegeDefinitionReader(in, "text/xml");
- Map<String, PrivilegeDefinition> defs = new HashMap<String, PrivilegeDefinition>();
+ Map<Name, PrivilegeDefinition> defs = new HashMap<Name, PrivilegeDefinition>();
for (PrivilegeDefinition def: reader.getPrivilegeDefinitions()) {
defs.put(def.getName(), def);
}
@@ -69,15 +84,15 @@ public class PrivilegeHandlerTest extend
assertTrue("Not all definitions present", defs.isEmpty());
// check for namespace
- String fooUri = reader.getNamespaces().get("foo");
- assertEquals("Namespace included", "http://www.foo.com/1.0", fooUri);
+ String fooUri = reader.getNamespaces().get(TEST_PREFIX);
+ assertEquals("Namespace included", TEST_URI, fooUri);
}
public void testWrite() throws Exception {
PrivilegeDefinitionWriter writer = new PrivilegeDefinitionWriter("text/xml");
Map<String, String> namespaces = new HashMap<String, String>();
- namespaces.put("foo", "http://www.foo.com/1.0");
+ namespaces.put(TEST_PREFIX, TEST_URI);
ByteArrayOutputStream out = new ByteArrayOutputStream();
writer.writeDefinitions(out, DEF_EXPECTED, namespaces);
Added: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java?rev=1095338&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java (added)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java Wed Apr 20 09:29:02 2011
@@ -0,0 +1,39 @@
+/*
+ * 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.jackrabbit.spi.commons.privilege;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Test suite that includes all testcases for package org.apache.jackrabbit.spi.commons.privilege.
+ */
+public class TestAll extends TestCase {
+
+ /**
+ * Returns a <code>Test</code> suite that executes all tests inside this
+ * package.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("org.apache.jackrabbit.spi.commons.privilege tests");
+
+ suite.addTestSuite(PrivilegeHandlerTest.class);
+
+ return suite;
+ }
+}
Propchange: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/privilege/TestAll.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev URL