Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java (original) +++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java Fri Mar 12 19:56:11 2010 @@ -22,7 +22,7 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; import org.apache.commons.logging.Log; -import org.apache.james.imap.jcr.IsPersistent; +import org.apache.james.imap.jcr.Persistent; import org.apache.james.imap.jcr.JCRImapConstants; import org.apache.james.imap.store.mail.model.AbstractComparableProperty; @@ -32,7 +32,7 @@ import org.apache.james.imap.store.mail. * JCR implementation of {...@link Property} * */ -public class JCRProperty extends AbstractComparableProperty<JCRProperty> implements JCRImapConstants, IsPersistent { +public class JCRProperty extends AbstractComparableProperty<JCRProperty> implements JCRImapConstants, Persistent { private Node node; private final Log logger; @@ -59,6 +59,9 @@ public class JCRProperty extends Abstrac this.logger = logger; } + public JCRProperty(Property property, int order, Log logger) { + this(property.getNamespace(), property.getLocalName(), property.getValue(), order, logger); + } /* * (non-Javadoc) * @@ -158,6 +161,8 @@ public class JCRProperty extends Abstrac node.setProperty(LOCALNAME_PROPERTY, localName); node.setProperty(VALUE_PROPERTY, value); + this.node = node; + namespace = null; order = 0; localName = null;
Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java (original) +++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java Fri Mar 12 19:56:11 2010 @@ -29,7 +29,7 @@ import javax.jcr.Session; import org.apache.commons.logging.Log; import org.apache.james.imap.api.display.HumanReadableText; -import org.apache.james.imap.jcr.IsPersistent; +import org.apache.james.imap.jcr.Persistent; import org.apache.james.imap.jcr.JCRImapConstants; import org.apache.james.imap.jcr.JCRUtils; import org.apache.james.imap.jcr.user.model.JCRSubscription; @@ -65,10 +65,10 @@ public class JCRSubscriptionMapper exten public void delete(Subscription subscription) throws SubscriptionException { // Check if the subscription was persistent in JCR if not don't do // anything - if (subscription instanceof IsPersistent) { + if (subscription instanceof Persistent) { try { - Node node = ((IsPersistent) subscription).getNode(); + Node node = ((Persistent) subscription).getNode(); node.remove(); session.save(); } catch (PathNotFoundException e) { Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java (original) +++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java Fri Mar 12 19:56:11 2010 @@ -23,7 +23,7 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; import org.apache.commons.logging.Log; -import org.apache.james.imap.jcr.IsPersistent; +import org.apache.james.imap.jcr.Persistent; import org.apache.james.imap.jcr.JCRImapConstants; import org.apache.james.imap.store.user.model.Subscription; @@ -31,7 +31,7 @@ import org.apache.james.imap.store.user. * JCR implementation of a {...@link Subscription} * */ -public class JCRSubscription implements Subscription, IsPersistent, JCRImapConstants { +public class JCRSubscription implements Subscription, Persistent, JCRImapConstants { public final static String USERNAME_PROPERTY = PROPERTY_PREFIX + "subscriptionUsername"; public final static String MAILBOX_PROPERTY = PROPERTY_PREFIX + "subscriptionMailbox"; Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java (original) +++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java Fri Mar 12 19:56:11 2010 @@ -33,13 +33,13 @@ import javax.persistence.Lob; import javax.persistence.OneToMany; import javax.persistence.OrderBy; -import org.apache.james.imap.store.mail.model.Document; +import org.apache.james.imap.store.mail.model.AbstractDocument; import org.apache.james.imap.store.mail.model.Header; import org.apache.james.imap.store.mail.model.Property; import org.apache.james.imap.store.mail.model.PropertyBuilder; @Entity(name="Message") -public class JPAMessage implements Document { +public class JPAMessage extends AbstractDocument { /** Primary key */ @i...@generatedvalue private long id; @@ -125,15 +125,7 @@ public class JPAMessage implements Docum public List<Header> getHeaders() { return new ArrayList<Header>(headers); } - - /** - * @see org.apache.james.imap.store.mail.model.Document#getBodyContent() - */ - public ByteBuffer getBodyContent() { - final ByteBuffer contentBuffer = getFullContent(); - contentBuffer.position(bodyStartOctet); - return contentBuffer.slice(); - } + @Override public int hashCode() { @@ -167,15 +159,6 @@ public class JPAMessage implements Docum } /** - * The number of octets contained in the body of this part. - * - * @return number of octets - */ - public long getBodyOctets() { - return contentOctets - bodyStartOctet; - } - - /** * Gets the top level MIME content media type. * * @return top level MIME content media type, or null if default @@ -219,4 +202,9 @@ public class JPAMessage implements Docum public long getFullContentOctets() { return contentOctets; } + + @Override + protected int getBodyStartOctet() { + return bodyStartOctet; + } } Modified: james/imap/trunk/parent/pom.xml URL: http://svn.apache.org/viewvc/james/imap/trunk/parent/pom.xml?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/parent/pom.xml (original) +++ james/imap/trunk/parent/pom.xml Fri Mar 12 19:56:11 2010 @@ -419,7 +419,7 @@ <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <scope>test</scope> - <version>1.2</version> + <version>1.4</version> </dependency> <dependency> <groupId>commons-configuration</groupId> @@ -534,14 +534,25 @@ <dependency> <groupId>javax.jcr</groupId> <artifactId>jcr</artifactId> - <version>1.0</version> + <version>2.0</version> </dependency> <dependency> <groupId>org.apache.jackrabbit</groupId> <artifactId>jackrabbit-jcr-commons</artifactId> <version>2.0.0</version> </dependency> - + <dependency> + <groupId>org.apache.jackrabbit</groupId> + <artifactId>jackrabbit-core</artifactId> + <version>2.0.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.5.11</version> + <scope>test</scope> + </dependency> <!-- END JCR --> Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=922406&r1=922405&r2=922406&view=diff ============================================================================== --- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java (original) +++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java Fri Mar 12 19:56:11 2010 @@ -76,6 +76,9 @@ public abstract class StoreMailbox imple this.session = session; } + protected MailboxSession getMailboxSession() { + return session; + } /** * Copy the given {...@link MailboxMembership} to a new instance with the given uid * @@ -90,7 +93,7 @@ public abstract class StoreMailbox imple * * @return mapper */ - protected abstract MessageMapper createMessageMapper(MailboxSession session); + protected abstract MessageMapper createMessageMapper(MailboxSession session) throws MailboxException; protected abstract Mailbox getMailboxRow() throws MailboxException; Added: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java?rev=922406&view=auto ============================================================================== --- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java (added) +++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java Fri Mar 12 19:56:11 2010 @@ -0,0 +1,54 @@ +/**************************************************************** + * 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.james.imap.store.mail.model; + +import java.nio.ByteBuffer; + +/** + * Abstract base class for {...@link Document} + * + */ +public abstract class AbstractDocument implements Document{ + + /** + * @see org.apache.james.imap.store.mail.model.Document#getBodyContent() + */ + public ByteBuffer getBodyContent() { + final ByteBuffer contentBuffer = getFullContent(); + contentBuffer.position(getBodyStartOctet()); + return contentBuffer.slice(); + } + + /** + * The number of octets contained in the body of this part. + * + * @return number of octets + */ + public long getBodyOctets() { + return getFullContentOctets() - getBodyStartOctet(); + } + + /** + * Return the start octet of the body + * + * @return startOctet + */ + protected abstract int getBodyStartOctet(); + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
