Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java Tue Sep 8 16:09:28 2009
@@ -73,7 +73,6 @@
import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
import org.apache.jackrabbit.spi.commons.value.ValueFormat;
import org.apache.jackrabbit.util.Text;
-import org.apache.jackrabbit.uuid.UUID;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.DavMethods;
@@ -191,6 +190,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
/**
* RepositoryServiceImpl...
@@ -229,7 +229,7 @@
private final Map nodeTypeDefinitions = new HashMap();
- private Map descriptors;
+ private Map descriptors;
public RepositoryServiceImpl(String uri, IdFactory idFactory,
NameFactory nameFactory,
@@ -354,7 +354,7 @@
NamePathResolver resolver = sessionInfo.getNamePathResolver();
if (resolver == null) {
resolver = new NamePathResolverImpl(sessionInfo);
- ((SessionInfoImpl) sessionInfo).setNamePathResolver(resolver);
+ sessionInfo.setNamePathResolver(resolver);
}
return resolver;
}
@@ -497,7 +497,7 @@
/**
* @see RepositoryService#getRepositoryDescriptors()
*/
- public Map getRepositoryDescriptors() throws RepositoryException {
+ public Map getRepositoryDescriptors() throws RepositoryException {
if (descriptors == null) {
ReportInfo info = new ReportInfo(RepositoryDescriptorsReport.REPOSITORY_DESCRIPTORS_REPORT, DEPTH_0);
ReportMethod method = null;
@@ -514,12 +514,21 @@
while (nsElems.hasNext()) {
Element elem = nsElems.nextElement();
String key = DomUtil.getChildText(elem, ItemResourceConstants.XML_DESCRIPTORKEY, ItemResourceConstants.NAMESPACE);
- String descriptor = DomUtil.getChildText(elem, ItemResourceConstants.XML_DESCRIPTORVALUE, ItemResourceConstants.NAMESPACE);
- if (key != null && descriptor != null) {
- descriptors.put(key, descriptor);
- } else {
- log.error("Invalid descriptor key / value pair: " + key + " -> " + descriptor);
+ ElementIterator it = DomUtil.getChildren(elem, ItemResourceConstants.XML_DESCRIPTORVALUE, ItemResourceConstants.NAMESPACE);
+ List vs = new ArrayList();
+ while (it.hasNext()) {
+ Element dv = it.nextElement();
+ String descriptor = DomUtil.getText(dv);
+ if (key != null && descriptor != null) {
+ String typeStr = (DomUtil.getAttribute(dv, ItemResourceConstants.ATTR_VALUE_TYPE, null));
+ int type = (typeStr == null) ? PropertyType.STRING : PropertyType.valueFromName(typeStr);
+ vs.add(getQValueFactory().create(descriptor, type));
+ } else {
+ log.error("Invalid descriptor key / value pair: " + key + " -> " + descriptor);
+ }
+
}
+ descriptors.put(key, vs.toArray(new QValue[vs.size()]));
}
}
} catch (IOException e) {
@@ -574,7 +583,6 @@
throw new LoginException("Login failed: Unknown workspace '" + workspaceName+ "'.");
}
- boolean success = false;
DavPropertySet props = responses[0].getProperties(DavServletResponse.SC_OK);
if (props.contains(ItemResourceConstants.JCR_WORKSPACE_NAME)) {
String wspName = props.get(ItemResourceConstants.JCR_WORKSPACE_NAME).getValue().toString();
@@ -1110,8 +1118,7 @@
throw new ItemNotFoundException("Unable to retrieve the property with id " + saveGetIdString(propertyId, resolver));
}
- PropertyInfo pInfo = new PropertyInfoImpl(propertyId, path, type, isMultiValued, values);
- return pInfo;
+ return new PropertyInfoImpl(propertyId, path, type, isMultiValued, values);
} catch (IOException e) {
throw new RepositoryException(e);
} catch (DavException e) {
@@ -1464,6 +1471,17 @@
execute(method, sessionInfo);
}
+ /**
+ * @see RepositoryService#checkout(SessionInfo, NodeId, NodeId)
+ */
+ public void checkout(SessionInfo sessionInfo, NodeId nodeId, NodeId activityOd) throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
+ // TODO
+ throw new UnsupportedOperationException("JCR-2104: JSR 283 Versioning. Implementation missing");
+ }
+
+ /**
+ * @see RepositoryService#checkpoint(SessionInfo, NodeId)
+ */
public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, RepositoryException {
// TODO
throw new UnsupportedOperationException("JCR-2104: JSR 283 Versioning. Implementation missing");
@@ -1639,9 +1657,9 @@
}
/**
- * @see RepositoryService#createConfiguration(SessionInfo, NodeId, NodeId)
+ * @see RepositoryService#createConfiguration(SessionInfo, NodeId)
*/
- public NodeId createConfiguration(SessionInfo sessionInfo, NodeId nodeId, NodeId baselineId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ public NodeId createConfiguration(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, RepositoryException {
// TODO
throw new UnsupportedOperationException("JCR-2104: JSR 283 Versioning. Implementation missing");
}
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java Tue Sep 8 16:09:28 2009
@@ -19,12 +19,9 @@
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.Path;
import org.apache.jackrabbit.spi.QValue;
-import org.apache.jackrabbit.spi.QValueFactory;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
-import org.apache.jackrabbit.spi.commons.value.AbstractQValueFactory;
-import org.apache.jackrabbit.spi.commons.value.AbstractQValue;
import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
-import org.apache.jackrabbit.util.ISO8601;
+import org.apache.jackrabbit.spi.commons.value.AbstractQValue;
import org.apache.jackrabbit.util.TransientFileFactory;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.jcr.ItemResourceConstants;
@@ -39,13 +36,10 @@
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
-import javax.jcr.ValueFormatException;
-import javax.jcr.Binary;
import javax.jcr.ValueFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -56,20 +50,20 @@
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
import java.util.Arrays;
-import java.util.Calendar;
-import java.util.TimeZone;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.net.URISyntaxException;
/**
* ValueFactoryImpl...
*/
-class QValueFactoryImpl extends AbstractQValueFactory {
+class QValueFactoryImpl extends org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl {
+
+ /**
+ * A dummy value for calling the constructor of AbstractQValue
+ */
+ private static final Object DUMMY_VALUE = new Serializable() {
+ private static final long serialVersionUID = -5667366239976271493L;
+ };
- private final NamePathResolver resolver;
private final ValueLoader loader;
private final ValueFactory vf;
@@ -78,7 +72,6 @@
}
QValueFactoryImpl(NamePathResolver resolver, ValueLoader loader) {
- this.resolver = resolver;
this.loader = loader;
vf = new ValueFactoryQImpl(this, resolver);
}
@@ -110,421 +103,18 @@
return loader.loadType(uri);
}
- //------------------------------------------------------< QValueFactory >---
- /**
- * @see QValueFactory#create(String, int)
- */
- public QValue create(String value, int type) throws RepositoryException {
- if (value == null) {
- throw new IllegalArgumentException("Cannot create QValue from null value.");
- }
- try {
- switch (type) {
- case PropertyType.BOOLEAN:
- return (Boolean.valueOf(value).booleanValue()) ?
- QValueImpl.TRUE :
- QValueImpl.FALSE;
- case PropertyType.DATE: {
- Calendar cal = ISO8601.parse(value);
- if (cal == null) {
- throw new ValueFormatException("not a valid date: " + value);
- }
- return new DateQValue(cal);
- }
- case PropertyType.DOUBLE:
- return new QValueImpl(Double.valueOf(value));
- case PropertyType.LONG:
- return new QValueImpl(Long.valueOf(value));
- case PropertyType.PATH:
- return new QValueImpl(PATH_FACTORY.create(value));
- case PropertyType.NAME:
- return new QValueImpl(NAME_FACTORY.create(value));
- case PropertyType.STRING:
- case PropertyType.REFERENCE:
- case PropertyType.WEAKREFERENCE:
- return new QValueImpl(value, type);
- case PropertyType.BINARY:
- return new BinaryQValue(value.getBytes(DEFAULT_ENCODING));
- case PropertyType.DECIMAL:
- return new QValueImpl(new BigDecimal(value));
- case PropertyType.URI:
- return new QValueImpl(URI.create(value));
- }
- } catch (IllegalArgumentException ex) {
- // given String value cannot be converted to Long/Double/Path/Name
- throw new ValueFormatException(ex);
- } catch (UnsupportedEncodingException ex) {
- throw new RepositoryException(ex);
- }
-
- // none of the legal types:
- throw new IllegalArgumentException("illegal type");
- }
-
- /**
- * @see QValueFactory#create(Calendar)
- */
- public QValue create(Calendar value) {
- if (value == null) {
- throw new IllegalArgumentException("Cannot create QValue from null value.");
- }
- // Calendar is not constant, must create a clone
- return new DateQValue((Calendar) value.clone());
- }
-
- /**
- * @see QValueFactory#create(double)
- */
- public QValue create(double value) {
- return new QValueImpl(Double.valueOf(value));
- }
-
- /**
- * @see QValueFactory#create(long)
- */
- public QValue create(long value) {
- return new QValueImpl(Long.valueOf(value));
- }
-
- /**
- * @see QValueFactory#create(boolean)
- */
- public QValue create(boolean value) throws RepositoryException {
- return (value) ? QValueImpl.TRUE : QValueImpl.FALSE;
- }
-
- /**
- * @see QValueFactory#create(URI)
- */
- public QValue create(URI value) {
- return new QValueImpl(value);
- }
-
- /**
- * @see QValueFactory#create(URI)
- */
- public QValue create(BigDecimal value) {
- return new QValueImpl(value);
- }
-
- /**
- * @see QValueFactory#create(Name)
- */
- public QValue create(Name value) {
- return new QValueImpl(value);
- }
-
- /**
- * @see QValueFactory#create(Path)
- */
- public QValue create(Path value) {
- return new QValueImpl(value);
- }
-
- /**
- * @see QValueFactory#create(byte[])
- */
- public QValue create(byte[] value) {
- if (value == null) {
- throw new IllegalArgumentException("Cannot create QValue from null value.");
- }
- return new BinaryQValue(value);
- }
-
- /**
- * @see QValueFactory#create(InputStream)
- */
- public QValue create(InputStream value) throws IOException {
- if (value == null) {
- throw new IllegalArgumentException("Cannot create QValue from null value.");
- }
- return new BinaryQValue(value);
- }
-
- /**
- * @see QValueFactory#create(File)
- */
- public QValue create(File value) throws IOException {
- if (value == null) {
- throw new IllegalArgumentException("Cannot create QValue from null value.");
- }
- return new BinaryQValue(value);
- }
-
//--------------------------------------------------------< Inner Class >---
- /**
- * QValue implementation for all valid PropertyTypes
- * except for BINARY.
- * @see QValueFactoryImpl.BinaryQValue
- */
- private static class QValueImpl extends AbstractQValue implements Serializable {
-
- private static final QValue TRUE = new QValueImpl(Boolean.TRUE);
- private static final QValue FALSE = new QValueImpl(Boolean.FALSE);
-
- private QValueImpl(String value, int type) {
- super(value, type);
- }
-
- private QValueImpl(Long value) {
- super(value);
- }
-
- private QValueImpl(Double value) {
- super(value);
- }
- private QValueImpl(Boolean value) {
- super(value);
- }
-
- private QValueImpl(Calendar value) {
- super(value);
- }
-
- private QValueImpl(Name value) {
- super(value);
- }
-
- private QValueImpl(Path value) {
- super(value);
- }
-
- protected QValueImpl(BigDecimal value) {
- super(value);
- }
-
- protected QValueImpl(URI value) {
- super(value);
- }
-
- //---------------------------------------------------------< QValue >---
- /**
- * @see QValue#getString()
- */
- public String getString() {
- return val.toString();
- }
-
- /**
- * @see QValue#getStream()
- */
- public InputStream getStream() throws RepositoryException {
- try {
- // convert via string
- return new ByteArrayInputStream(getString().getBytes(DEFAULT_ENCODING));
- } catch (UnsupportedEncodingException e) {
- throw new RepositoryException(QValueFactoryImpl.DEFAULT_ENCODING + " is not supported encoding on this platform", e);
- }
- }
-
- /**
- * @see org.apache.jackrabbit.spi.QValue#getDecimal()
- */
- public BigDecimal getDecimal() throws RepositoryException {
- if (val instanceof BigDecimal) {
- return (BigDecimal) val;
- } else if (val instanceof Double) {
- return new BigDecimal((Double) val);
- } else if (val instanceof Long) {
- return new BigDecimal((Long) val);
- } else if (val instanceof Calendar) {
- return new BigDecimal(((Calendar) val).getTimeInMillis());
- } else {
- try {
- return new BigDecimal(getString());
- } catch (NumberFormatException e) {
- throw new ValueFormatException("not a valid decimal string: " + getString(), e);
- }
- }
- }
-
- /**
- * @see QValue#getCalendar()
- */
- public Calendar getCalendar() throws RepositoryException {
- if (val instanceof Calendar) {
- return (Calendar) ((Calendar) val).clone();
- } else if (val instanceof Double) {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
- cal.setTimeInMillis(((Double) val).longValue());
- return cal;
- } else if (val instanceof Long) {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
- cal.setTimeInMillis(((Long) val).longValue());
- return cal;
- } else if (val instanceof BigDecimal) {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
- cal.setTimeInMillis(((BigDecimal) val).longValue());
- return cal;
- } else {
- String str = getString();
- Calendar cal = ISO8601.parse(str);
- if (cal == null) {
- int type = getType();
- if (type == PropertyType.LONG) {
- cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
- cal.setTimeInMillis(new Long(str).longValue());
- } else if (type == PropertyType.DOUBLE) {
- cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
- cal.setTimeInMillis(new Double(str).longValue());
- } else {
- throw new ValueFormatException("not a date string: " + getString());
- }
- }
- return cal;
- }
- }
-
- /**
- * @see QValue#getDouble()
- */
- public double getDouble() throws RepositoryException {
- if (val instanceof Double) {
- return ((Double) val).doubleValue();
- } else if (val instanceof BigDecimal) {
- return ((BigDecimal) val).doubleValue();
- } else if (val instanceof Calendar) {
- return ((Calendar) val).getTimeInMillis();
- } else {
- try {
- return Double.parseDouble(getString());
- } catch (NumberFormatException ex) {
- int type = getType();
- if (type == PropertyType.DATE) {
- Calendar cal = ISO8601.parse(getString());
- if (cal != null) {
- return cal.getTimeInMillis();
- }
- }
- throw new ValueFormatException("not a double: " + getString(), ex);
- }
- }
- }
-
- /**
- * @see QValue#getLong()
- */
- public long getLong() throws RepositoryException {
- if (val instanceof Long) {
- return ((Long) val).longValue();
- } else if (val instanceof Double) {
- return ((Double) val).longValue();
- } else if (val instanceof BigDecimal) {
- return ((BigDecimal) val).longValue();
- } else if (val instanceof Calendar) {
- return ((Calendar) val).getTimeInMillis();
- } else {
- String str = getString();
- try {
- return Long.parseLong(str);
- } catch (NumberFormatException ex) {
- int type = getType();
- if (type == PropertyType.DOUBLE) {
- return new Double(str).longValue();
- } else if (type == PropertyType.DATE) {
- Calendar cal = ISO8601.parse(getString());
- if (cal != null) {
- return cal.getTimeInMillis();
- }
- }
- throw new ValueFormatException("not a long: " + getString(), ex);
- }
- }
- }
-
- /**
- * @see QValue#getBinary()
- */
- public Binary getBinary() throws RepositoryException {
- // TODO FIXME consolidate Binary implementations
- return new Binary() {
- public InputStream getStream() throws RepositoryException {
- return QValueImpl.this.getStream();
- }
-
- public int read(byte[] b, long position) throws IOException, RepositoryException {
- InputStream in = getStream();
- try {
- in.skip(position);
- return in.read(b);
- } finally {
- in.close();
- }
- }
-
- public long getSize() throws RepositoryException {
- return getLength();
- }
-
- public void dispose() {
- }
-
- };
- }
-
- }
-
- //--------------------------------------------------------< Inner Class >---
- /**
- * Extension for values of type {@link PropertyType#DATE}.
- */
- private class DateQValue extends QValueImpl {
-
- private final String formattedStr;
-
- private DateQValue(Calendar value) {
- super(value);
- formattedStr = ISO8601.format(value);
- }
-
- /**
- * @return The formatted String of the internal Calendar value.
- * @see QValue#getString()
- * @see ISO8601#format(Calendar)
- */
- public String getString() {
- return formattedStr;
- }
-
- //---------------------------------------------------------< Object >---
- /**
- * @param obj The object to be checked for equality.
- * @return true if the given Object is a DateQValue with an
- * equal String representation.
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj instanceof DateQValue) {
- DateQValue other = (DateQValue) obj;
- return formattedStr.equals(other.formattedStr);
- } else if (obj instanceof QValueImpl) {
- QValueImpl other = (QValueImpl) obj;
- return other.getType() == PropertyType.DATE && formattedStr.equals(other.getString());
- }
- return false;
- }
-
- /**
- * @return the hashCode of the formatted String of the Calender value.
- * @see Object#hashCode()
- */
- public int hashCode() {
- return formattedStr.hashCode();
- }
- }
-
- //--------------------------------------------------------< Inner Class >---
/**
* BinaryQValue represents a binary Value which is
* backed by a resource or byte[]. Unlike BinaryValue it has no
* state, i.e. the getStream() method always returns a fresh
* InputStream instance.
*/
- private class BinaryQValue implements QValue, Serializable, ValueLoader.Target {
+ private class BinaryQValue extends AbstractQValue implements ValueLoader.Target {
+
+ private static final long serialVersionUID = 2736654000266713469L;
+
/**
* empty array
*/
@@ -553,11 +143,6 @@
private byte[] buffer;
/**
- * Converted text
- */
- private transient String text = null;
-
- /**
* URI to retrieve the value from
*/
private String uri;
@@ -566,6 +151,7 @@
private boolean initialized = true;
private BinaryQValue(long length, String uri, int index) {
+ super(DUMMY_VALUE, PropertyType.BINARY);
this.length = length;
this.uri = uri;
this.index = index;
@@ -578,58 +164,6 @@
* to a temporary file or to a byte buffer if its size is smaller than
* {@link #MAX_BUFFER_SIZE}.
*
- * The new instance represents a temporary value whose dynamically
- * allocated resources will be freed explicitly on {@link #discard()}.
- *
- * @param in stream to be represented as a BinaryQValue instance
- * @throws IOException if an error occurs while reading from the stream or
- * writing to the temporary file
- */
- private BinaryQValue(InputStream in) throws IOException {
- init(in, true);
- }
-
-
- /**
- * Creates a new BinaryQValue instance from a
- * byte[] array.
- *
- * @param bytes byte array to be represented as a BinaryQValue
- * instance
- */
- private BinaryQValue(byte[] bytes) {
- buffer = bytes;
- file = null;
- // this instance is not backed by a temporarily allocated buffer
- temp = false;
- }
-
- /**
- * Creates a new BinaryQValue instance from a File.
- *
- * @param file file to be represented as a BinaryQValue instance
- * @throws IOException if the file can not be read
- */
- private BinaryQValue(File file) throws IOException {
- String path = file.getCanonicalPath();
- if (!file.isFile()) {
- throw new IOException(path + ": the specified file does not exist");
- }
- if (!file.canRead()) {
- throw new IOException(path + ": the specified file can not be read");
- }
- // this instance is backed by a 'real' file
- this.file = file;
- // this instance is not backed by temporarily allocated resource/buffer
- temp = false;
- }
-
- /**
- * Creates a new BinaryQValue instance from an
- * InputStream. The contents of the stream is spooled
- * to a temporary file or to a byte buffer if its size is smaller than
- * {@link #MAX_BUFFER_SIZE}.
- *
* The temp parameter governs whether dynamically allocated
* resources will be freed explicitly on {@link #discard()}. Note that any
* dynamically allocated resources (temp file/buffer) will be freed
@@ -677,6 +211,7 @@
}
}
} finally {
+ in.close();
if (out != null) {
out.close();
}
@@ -695,12 +230,6 @@
}
//---------------------------------------------------------< QValue >---
- /**
- * @see QValue#getType()
- */
- public int getType() {
- return PropertyType.BINARY;
- }
/**
* Returns the length of this BinaryQValue.
@@ -727,32 +256,6 @@
}
/**
- * @see QValue#getString()
- */
- public String getString() throws RepositoryException {
- if (text == null) {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- try {
- spool(out);
- byte[] data = out.toByteArray();
- text = new String(data, QValueFactoryImpl.DEFAULT_ENCODING);
- } catch (UnsupportedEncodingException e) {
- throw new RepositoryException(QValueFactoryImpl.DEFAULT_ENCODING
- + " not supported on this platform", e);
- } catch (IOException e) {
- throw new ValueFormatException("conversion from stream to string failed", e);
- } finally {
- try {
- out.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- return text;
- }
-
- /**
* @see QValue#getStream()
*/
public InputStream getStream() throws RepositoryException {
@@ -788,44 +291,6 @@
}
/**
- * @see QValue#getCalendar()
- */
- public Calendar getCalendar() throws RepositoryException {
- Calendar cal = ISO8601.parse(getString());
- if (cal == null) {
- throw new ValueFormatException("not a date string: " + getString());
- } else {
- return cal;
- }
- }
-
- /**
- * @see QValue#getDouble()
- */
- public double getDouble() throws RepositoryException {
- try {
- return Double.parseDouble(getString());
- } catch (NumberFormatException ex) {
- throw new ValueFormatException(ex);
- }
- }
-
- /**
- * @see QValue#getLong()
- */
- public long getLong() throws RepositoryException {
- try {
- return Long.parseLong(getString());
- } catch (NumberFormatException ex) {
- throw new ValueFormatException(ex);
- }
- }
-
- public boolean getBoolean() throws RepositoryException {
- return new Boolean(getString()).booleanValue();
- }
-
- /**
* @see QValue#getPath()
*/
public Path getPath() throws RepositoryException {
@@ -833,59 +298,6 @@
}
/**
- * @see QValue#getDecimal()
- */
- public BigDecimal getDecimal() throws RepositoryException {
- try {
- return new BigDecimal(getString());
- } catch (NumberFormatException ex) {
- throw new ValueFormatException(ex);
- }
- }
-
- /**
- * @see QValue#getURI()
- */
- public URI getURI() throws RepositoryException {
- try {
- return new URI(getString());
- } catch (URISyntaxException ex) {
- throw new ValueFormatException(ex);
- }
- }
-
- /**
- * @see QValue#getBinary()
- */
- public Binary getBinary() throws RepositoryException {
- // TODO FIXME consolidate Binary implementations
- // TODO optimize
- return new Binary() {
- public InputStream getStream() throws RepositoryException {
- return BinaryQValue.this.getStream();
- }
-
- public int read(byte[] b, long position) throws IOException, RepositoryException {
- InputStream in = getStream();
- try {
- in.skip(position);
- return in.read(b);
- } finally {
- in.close();
- }
- }
-
- public long getSize() throws RepositoryException {
- return getLength();
- }
-
- public void dispose() {
- }
-
- };
- }
-
- /**
* Frees temporarily allocated resources such as temporary file, buffer, etc.
* If this BinaryQValue is backed by a persistent resource
* calling this method will have no effect.
@@ -972,50 +384,6 @@
}
//----------------------------------------------------------------------
- /**
- * Spools the contents of this BinaryQValue to the given
- * output stream.
- *
- * @param out output stream
- * @throws RepositoryException if the input stream for this
- * BinaryQValue could not be obtained
- * @throws IOException if an error occurs while while spooling
- */
- private void spool(OutputStream out) throws RepositoryException, IOException {
- InputStream in;
- if (file != null) {
- // this instance is backed by a 'real' file
- try {
- in = new FileInputStream(file);
- } catch (FileNotFoundException fnfe) {
- throw new RepositoryException("file backing binary value not found",
- fnfe);
- }
- } else if (buffer != null) {
- // this instance is backed by an in-memory buffer
- in = new ByteArrayInputStream(buffer);
- } else {
- // only uri present:
- loadBinary();
- if (buffer == null) {
- in = new FileInputStream(file);
- } else {
- in = new ByteArrayInputStream(buffer);
- }
- }
- try {
- byte[] buffer = new byte[0x2000];
- int read;
- while ((read = in.read(buffer)) > 0) {
- out.write(buffer, 0, read);
- }
- } finally {
- try {
- in.close();
- } catch (IOException ignore) {
- }
- }
- }
private synchronized void loadBinary() throws RepositoryException, IOException {
if (uri == null) {
@@ -1099,4 +467,4 @@
}
}
}
-}
\ No newline at end of file
+}
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java Tue Sep 8 16:09:28 2009
@@ -86,6 +86,8 @@
private static final String ORDER_POSITION_LAST = "#last";
private static final String ORDER_POSITION_BEFORE = "#before";
+ private static final String DEFAULT_CHARSET = "UTF-8";
+
/**
* base uri to the extended jcr-server that can handle the GET and POST
* (or PATCH) requests sent by this service implementation.
@@ -588,7 +590,6 @@
public void setMixins(NodeId nodeId, Name[] mixinNodeTypeNames) throws RepositoryException {
assertMethod();
- NamePathResolver resolver = getNamePathResolver(sessionInfo);
QValue[] vs = new QValue[mixinNodeTypeNames.length];
for (int i = 0; i < mixinNodeTypeNames.length; i++) {
vs[i] = getQValueFactory(sessionInfo).create(mixinNodeTypeNames[i]);
@@ -602,7 +603,6 @@
public void setPrimaryType(NodeId nodeId, Name primaryNodeTypeName) throws RepositoryException {
assertMethod();
- NamePathResolver resolver = getNamePathResolver(sessionInfo);
QValue v = getQValueFactory(sessionInfo).create(primaryNodeTypeName);
addProperty(nodeId, NameConstants.JCR_PRIMARYTYPE, v);
}
@@ -694,7 +694,7 @@
* @param value
*/
private void addPart(String paramName, String value) {
- parts.add(new StringPart(paramName, value));
+ parts.add(new StringPart(paramName, value, DEFAULT_CHARSET));
}
/**
@@ -711,13 +711,13 @@
part = new FilePart(paramName, new BinaryPartSource(value));
break;
case PropertyType.NAME:
- part = new StringPart(paramName, resolver.getJCRName(value.getName()));
+ part = new StringPart(paramName, resolver.getJCRName(value.getName()), DEFAULT_CHARSET);
break;
case PropertyType.PATH:
- part = new StringPart(paramName, resolver.getJCRPath(value.getPath()));
+ part = new StringPart(paramName, resolver.getJCRPath(value.getPath()), DEFAULT_CHARSET);
break;
default:
- part = new StringPart(paramName, value.getString());
+ part = new StringPart(paramName, value.getString(), DEFAULT_CHARSET);
}
String ctype = JcrValueType.contentTypeFromType(value.getType());
((PartBase) part).setContentType(ctype);
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2davex/BatchTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2davex/BatchTest.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2davex/BatchTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2davex/BatchTest.java Tue Sep 8 16:09:28 2009
@@ -34,7 +34,6 @@
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
import org.apache.jackrabbit.spi.commons.namespace.AbstractNamespaceResolver;
-import org.apache.jackrabbit.uuid.UUID;
import javax.jcr.ItemNotFoundException;
import javax.jcr.NamespaceException;
@@ -47,6 +46,7 @@
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
+import java.util.UUID;
/**
* ConnectionTest...
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/pom.xml?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/pom.xml (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/pom.xml Tue Sep 8 16:09:28 2009
@@ -54,7 +54,7 @@
**/TestAll.java
once
- -Xmx128m -enableassertions
+ -Xmx256m -enableassertions
derby.system.durability
@@ -71,7 +71,10 @@
org.apache.jackrabbit.jcr2spi.name.NamespaceRegistryTest#testRegisteredNamespaceVisibility
org.apache.jackrabbit.test.api.ShareableNodeTest
org.apache.jackrabbit.test.api.version.simple
- org.apache.jackrabbit.test.api.version.ActivitiesTest
+ org.apache.jackrabbit.test.api.version.ActivitiesTest#testActivitiesPath
+ org.apache.jackrabbit.test.api.version.ActivitiesTest#testActivitiesRelation
+ org.apache.jackrabbit.test.api.version.ConfigurationsTest#testCreateConfigWithBaseline
+ org.apache.jackrabbit.test.api.LifecycleTest
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java Tue Sep 8 16:09:28 2009
@@ -50,7 +50,7 @@
throws RepositoryException, NameException {
super(resolver.getQPath(property.getPath()),
idFactory.createPropertyId(property, resolver),
- property.getType(), property.getDefinition().isMultiple(),
+ property.getType(), property.isMultiple(),
getValues(property, resolver, qValueFactory));
}
@@ -67,7 +67,7 @@
NamePathResolver resolver,
QValueFactory factory)
throws RepositoryException {
- boolean isMultiValued = property.getDefinition().isMultiple();
+ boolean isMultiValued = property.isMultiple();
QValue[] values;
if (isMultiValued) {
Value[] jcrValues = property.getValues();
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java Tue Sep 8 16:09:28 2009
@@ -42,6 +42,7 @@
import org.apache.jackrabbit.spi.Event;
import org.apache.jackrabbit.spi.commons.EventFilterImpl;
import org.apache.jackrabbit.spi.commons.EventBundleImpl;
+import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
import org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefinitionImpl;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
@@ -50,6 +51,7 @@
import org.apache.jackrabbit.spi.commons.conversion.NameException;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
+import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
import org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl;
import org.apache.jackrabbit.spi.commons.value.ValueFormat;
import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
@@ -206,14 +208,29 @@
/**
* {@inheritDoc}
*/
- public Map getRepositoryDescriptors() throws RepositoryException {
- Map descriptors = new HashMap();
- String[] keys = repository.getDescriptorKeys();
- for (int i = 0; i < keys.length; i++) {
- if (keys[i].equals(Repository.OPTION_TRANSACTIONS_SUPPORTED)) {
- descriptors.put(keys[i], "false");
+ public Map getRepositoryDescriptors() throws RepositoryException {
+ Map descriptors = new HashMap();
+ for (String key : repository.getDescriptorKeys()) {
+ if (key.equals(Repository.OPTION_TRANSACTIONS_SUPPORTED)) {
+ descriptors.put(key, new QValue[] {qValueFactory.create(false)});
} else {
- descriptors.put(keys[i], repository.getDescriptor(keys[i]));
+ Value[] vs = repository.getDescriptorValues(key);
+ QValue[] qvs = new QValue[vs.length];
+ for (int i = 0; i < vs.length; i++) {
+ // Name and path resolver that uses a dummy namespace resolver
+ // as Name/Path values are not expected to occur in the
+ // descriptors. TODO: check again.
+ NamePathResolver resolver = new DefaultNamePathResolver(new NamespaceResolver() {
+ public String getURI(String prefix) throws NamespaceException {
+ return prefix;
+ }
+ public String getPrefix(String uri) throws NamespaceException {
+ return uri;
+ }
+ });
+ qvs[i] = ValueFormat.getQValue(vs[i], resolver, qValueFactory);
+ }
+ descriptors.put(key, qvs);
}
}
return descriptors;
@@ -684,7 +701,22 @@
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
- getNode(nodeId, getSessionInfoImpl(sessionInfo)).checkout();
+ getNode(nodeId, sInfo).checkout();
+ return null;
+ }
+ }, sInfo);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void checkout(final SessionInfo sessionInfo, final NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
+ final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
+ Node activity = (activityId == null) ? null : getNode(activityId, sInfo);
+ sInfo.getSession().getWorkspace().getVersionManager().setActivity(activity);
+ executeWithLocalEvents(new Callable() {
+ public Object run() throws RepositoryException {
+ getNode(nodeId, sInfo).checkout();
return null;
}
}, sInfo);
@@ -966,11 +998,10 @@
public void removeActivity(SessionInfo sessionInfo, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
final VersionManager vMgr = getVersionManager(sInfo);
- Node activity = (Node) executeWithLocalEvents(new Callable() {
+ executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
- // TODO: uncomment as soon as removeActivity method is fixed in jsr 283
- // return vMgr.removeActivity(getNode(activityId, sInfo));
- throw new UnsupportedOperationException("Impl missing... waiting for updated jsr 283 jar.");
+ vMgr.removeActivity(getNode(activityId, sInfo));
+ return null;
}
}, getSessionInfoImpl(sessionInfo));
}
@@ -997,12 +1028,13 @@
/**
* {@inheritDoc}
*/
- public NodeId createConfiguration(SessionInfo sessionInfo, final NodeId nodeId, final NodeId baselineId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ public NodeId createConfiguration(SessionInfo sessionInfo, final NodeId nodeId)
+ throws UnsupportedRepositoryOperationException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
final VersionManager vMgr = getVersionManager(sInfo);
Node configuration = (Node) executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
- return vMgr.createConfiguration(getNodePath(nodeId, sInfo), (Version) getNode(baselineId, sInfo));
+ return vMgr.createConfiguration(getNodePath(nodeId, sInfo));
}
}, getSessionInfoImpl(sessionInfo));
return idFactory.createNodeId(configuration, sInfo.getNamePathResolver());
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/pom.xml?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/pom.xml (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/pom.xml Tue Sep 8 16:09:28 2009
@@ -1,116 +1,116 @@
-
-
-
-
-
- 4.0.0
-
-
-
-
-
- org.apache.jackrabbit
- jackrabbit-parent
- 2.0-SNAPSHOT
- ../jackrabbit-parent/pom.xml
-
- jackrabbit-standalone
- bundle
- Jackrabbit Standalone
- Runnable jar packaging of Apache Jackrabbit
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- true
-
-
-
- org.apache.jackrabbit.standalone
-
-
- *;inline=
- *.txt|*.html|*.jsp|*.xml|*.jar|*.properties|
- remoting/**|bootstrap/**|javax/**|repackage/**|images/**|
- com/**|Resources/**|css/**|schema*/**|EDU/**|error/**|org/**|
- META-INF/*.tld|META-INF/maven/**|META-INF/services/**|
- WEB-INF/config.xml|WEB-INF/*.properties|WEB-INF/templates/**
-
- true
- org.apache.jackrabbit.standalone.Main
-
-
-
-
-
-
-
-
- javax.jcr
- jcr
- compile
-
-
- org.apache.jackrabbit
- jackrabbit-webapp
- 2.0-SNAPSHOT
- war
-
-
- org.apache.jackrabbit
- jackrabbit-webapp
- 2.0-SNAPSHOT
- jar
-
-
- org.mortbay.jetty
- jetty
-
-
- org.mortbay.jetty
- jsp-2.1
-
-
-
- org.mortbay.jetty
- jetty-util
-
-
- org.mortbay.jetty
- servlet-api-2.5
-
-
- org.mortbay.jetty
- jsp-api-2.1
-
-
- commons-cli
- commons-cli
- 1.1
-
-
-
-
+
+
+
+
+
+ 4.0.0
+
+
+
+
+
+ org.apache.jackrabbit
+ jackrabbit-parent
+ 2.0-SNAPSHOT
+ ../jackrabbit-parent/pom.xml
+
+ jackrabbit-standalone
+ bundle
+ Jackrabbit Standalone
+ Runnable jar packaging of Apache Jackrabbit
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ true
+
+
+
+ org.apache.jackrabbit.standalone
+
+
+ *;inline=
+ *.txt|*.html|*.jsp|*.xml|*.jar|*.properties|
+ remoting/**|bootstrap/**|javax/**|repackage/**|images/**|
+ com/**|Resources/**|css/**|schema*/**|EDU/**|error/**|org/**|
+ META-INF/*.tld|META-INF/maven/**|META-INF/services/**|
+ WEB-INF/config.xml|WEB-INF/*.properties|WEB-INF/templates/**
+
+ true
+ org.apache.jackrabbit.standalone.Main
+
+
+
+
+
+
+
+
+ javax.jcr
+ jcr
+ compile
+
+
+ org.apache.jackrabbit
+ jackrabbit-webapp
+ 2.0-SNAPSHOT
+ war
+
+
+ org.apache.jackrabbit
+ jackrabbit-webapp
+ 2.0-SNAPSHOT
+ jar
+
+
+ org.mortbay.jetty
+ jetty
+
+
+ org.mortbay.jetty
+ jsp-2.1
+
+
+
+ org.mortbay.jetty
+ jetty-util
+
+
+ org.mortbay.jetty
+ servlet-api-2.5
+
+
+ org.mortbay.jetty
+ jsp-api-2.1
+
+
+ commons-cli
+ commons-cli
+ 1.1
+
+
+
+
Propchange: jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/src/main/java/org/apache/jackrabbit/standalone/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/src/main/java/org/apache/jackrabbit/standalone/Main.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/src/main/java/org/apache/jackrabbit/standalone/Main.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-standalone/src/main/java/org/apache/jackrabbit/standalone/Main.java Tue Sep 8 16:09:28 2009
@@ -185,10 +185,7 @@
}
message("Creating a repository copy in " + targetDir);
-
- RepositoryCopier copier = new RepositoryCopier(source, target);
- copier.copy();
-
+ RepositoryCopier.copy(source, target);
message("The repository has been successfully copied.");
}
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/pom.xml?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/pom.xml (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/pom.xml Tue Sep 8 16:09:28 2009
@@ -63,9 +63,8 @@
org.apache.tika
- tika
- 0.3
- jdk14
+ tika-parsers
+ 0.4
bouncycastle
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/DefaultTextExtractor.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/DefaultTextExtractor.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/DefaultTextExtractor.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/DefaultTextExtractor.java Tue Sep 8 16:09:28 2009
@@ -24,7 +24,6 @@
import org.apache.tika.config.TikaConfig;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.Parser;
import org.apache.tika.parser.ParsingReader;
/**
@@ -35,7 +34,7 @@
/**
* Auto-detecting parser.
*/
- private static final Parser PARSER;
+ private static final AutoDetectParser PARSER;
/**
* Supported content types.
@@ -43,34 +42,21 @@
private static final String[] TYPES;
static {
- // The default Tika configuration refers to Apache POI libraries that
- // are compiled for Java 5, and can thus not be loaded in Java 1.4.
- // This makes it impossible to load the default Tika configuration
- // (see TIKA-217 for background), and so we need to use the following
- // workaround to instantiate the Tika AutoDetectParser without the
- // POI classes (and thus support for MS Office formats) when running
- // on Java 1.4.
- AutoDetectParser parser;
- if ("1.4".equals(System.getProperty("java.specification.version"))) {
- InputStream stream =
- DefaultTextExtractor.class.getResourceAsStream("tika-config-jdk14.xml");
+ InputStream stream =
+ DefaultTextExtractor.class.getResourceAsStream("tika-config.xml");
+ try {
try {
- try {
- parser = new AutoDetectParser(new TikaConfig(stream));
- } finally {
- stream.close();
- }
- } catch (Exception e) {
- throw new RuntimeException(
- "Unable to load Tika configuration", e);
+ PARSER = new AutoDetectParser(new TikaConfig(stream));
+
+ Set types = PARSER.getParsers().keySet();
+ TYPES = types.toArray(new String[types.size()]);
+ } finally {
+ stream.close();
}
- } else {
- parser = new AutoDetectParser();
+ } catch (Exception e) {
+ throw new RuntimeException(
+ "Unable to load Tika configuration", e);
}
- PARSER = parser;
-
- Set types = parser.getParsers().keySet();
- TYPES = (String[]) types.toArray(new String[types.size()]);
}
public String[] getContentTypes() {
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-webapp/src/main/webapp/META-INF/LICENSE.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-webapp/src/main/webapp/META-INF/LICENSE.txt?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-webapp/src/main/webapp/META-INF/LICENSE.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-webapp/src/main/webapp/META-INF/LICENSE.txt Tue Sep 8 16:09:28 2009
@@ -202,11 +202,11 @@
limitations under the License.
-APACHE JACKRABBIT SUBCOMPONENTS:
+APACHE JACKRABBIT SUBCOMPONENTS
-Apache Jackrabbit includes subcomponents with separate copyright notices
-and license terms. Your use of these subcomponents is subject to the terms
-and conditions of the following licenses:
+Apache Jackrabbit includes parts with separate copyright notices and license
+terms. Your use of these subcomponents is subject to the terms and conditions
+of the following licenses:
XPath parser (jackrabbit-spi-commons)
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/lock/DefaultActiveLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/lock/DefaultActiveLock.java?rev=812570&r1=812569&r2=812570&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/lock/DefaultActiveLock.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/lock/DefaultActiveLock.java Tue Sep 8 16:09:28 2009
@@ -16,7 +16,8 @@
*/
package org.apache.jackrabbit.webdav.lock;
-import org.apache.jackrabbit.uuid.UUID;
+import java.util.UUID;
+
import org.apache.jackrabbit.webdav.DavConstants;
/**
@@ -31,7 +32,7 @@
*/
public class DefaultActiveLock extends AbstractActiveLock {
- private final String token = DavConstants.OPAQUE_LOCK_TOKEN_PREFIX + UUID.randomUUID().toString();
+ private final String token = DavConstants.OPAQUE_LOCK_TOKEN_PREFIX + UUID.randomUUID();
private String owner;
private boolean isDeep = true; // deep by default
private long expirationTime = DavConstants.INFINITE_TIMEOUT; // never expires by default;