Author: norman
Date: Sun Jan 10 12:56:21 2010
New Revision: 897633
URL: http://svn.apache.org/viewvc?rev=897633&view=rev
Log:
Move openjpa specific code to extra class / package to allow better reuse of
JPA code (IMAP-107)
Added:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/OpenJPAMailboxMapper.java
- copied, changed from r822681,
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/map/openjpa/OpenJPAMailboxMapper.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
Removed:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/map/openjpa/
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=897633&r1=897632&r2=897633&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
Sun Jan 10 12:56:21 2010
@@ -27,9 +27,9 @@
import org.apache.james.imap.jpa.mail.JPAMailboxMapper;
import org.apache.james.imap.jpa.mail.JPAMessageMapper;
-import org.apache.james.imap.jpa.mail.map.openjpa.OpenJPAMailboxMapper;
import org.apache.james.imap.jpa.mail.model.JPAHeader;
import org.apache.james.imap.jpa.mail.model.JPAMailboxMembership;
+import org.apache.james.imap.jpa.mail.openjpa.OpenJPAMailboxMapper;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.StoreMailbox;
import org.apache.james.imap.store.mail.MailboxMapper;
@@ -39,25 +39,28 @@
import org.apache.james.imap.store.mail.model.MailboxMembership;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
-public class JPAMailbox extends StoreMailbox {
+public abstract class JPAMailbox extends StoreMailbox {
- private final EntityManagerFactory entityManagerFactory;
+ protected final EntityManagerFactory entityManagerFactory;
public JPAMailbox(final Mailbox mailbox, final EntityManagerFactory
entityManagerfactory) {
super(mailbox);
this.entityManagerFactory = entityManagerfactory;
}
+ /**
+ * Create MailboxMapper
+ *
+ * @return mapper
+ */
+ protected abstract JPAMailboxMapper createMailboxMapper();
+
@Override
protected Mailbox getMailboxRow() throws MailboxException {
final MailboxMapper mapper = createMailboxMapper();
return mapper.findMailboxById(mailboxId);
}
- private JPAMailboxMapper createMailboxMapper() {
- final JPAMailboxMapper mapper = new
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
- return mapper;
- }
@Override
protected MessageMapper createMessageMapper() {
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java?rev=897633&r1=897632&r2=897633&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
Sun Jan 10 12:56:21 2010
@@ -21,7 +21,7 @@
import javax.persistence.EntityManagerFactory;
import org.apache.james.imap.jpa.mail.JPAMailboxMapper;
-import org.apache.james.imap.jpa.mail.map.openjpa.OpenJPAMailboxMapper;
+import org.apache.james.imap.jpa.mail.openjpa.OpenJPAMailboxMapper;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.Authenticator;
import org.apache.james.imap.store.StoreMailbox;
@@ -30,9 +30,9 @@
import org.apache.james.imap.store.mail.MailboxMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
-public class JPAMailboxManager extends StoreMailboxManager {
+public abstract class JPAMailboxManager extends StoreMailboxManager {
- private final EntityManagerFactory entityManagerFactory;
+ protected final EntityManagerFactory entityManagerFactory;
public JPAMailboxManager(final Authenticator authenticator, final
Subscriber subscriber,
final EntityManagerFactory entityManagerFactory) {
@@ -40,11 +40,6 @@
this.entityManagerFactory = entityManagerFactory;
}
- @Override
- protected MailboxMapper createMailboxMapper() {
- final JPAMailboxMapper mapper = new
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
- return mapper;
- }
@Override
protected StoreMailbox createMailbox(Mailbox mailboxRow) {
@@ -61,4 +56,5 @@
mapper.save(mailbox);
mapper.commit();
}
+
}
Copied:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/OpenJPAMailboxMapper.java
(from r822681,
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/map/openjpa/OpenJPAMailboxMapper.java)
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/OpenJPAMailboxMapper.java?p2=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/OpenJPAMailboxMapper.java&p1=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/map/openjpa/OpenJPAMailboxMapper.java&r1=822681&r2=897633&rev=897633&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/map/openjpa/OpenJPAMailboxMapper.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/openjpa/OpenJPAMailboxMapper.java
Sun Jan 10 12:56:21 2010
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imap.jpa.mail.map.openjpa;
+package org.apache.james.imap.jpa.mail.openjpa;
import javax.persistence.EntityManager;
@@ -27,7 +27,7 @@
import org.apache.openjpa.persistence.OpenJPAPersistence;
/**
- * Data access management for mailbox.
+ * OpenJPA implemetnation of MailboxMapper.
*/
public class OpenJPAMailboxMapper extends JPAMailboxMapper {
Added:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java?rev=897633&view=auto
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
(added)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
Sun Jan 10 12:56:21 2010
@@ -0,0 +1,48 @@
+/****************************************************************
+ * 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.jpa.openjpa;
+
+import javax.persistence.EntityManagerFactory;
+
+import org.apache.james.imap.jpa.JPAMailbox;
+import org.apache.james.imap.jpa.mail.JPAMailboxMapper;
+import org.apache.james.imap.jpa.mail.openjpa.OpenJPAMailboxMapper;
+import org.apache.james.imap.store.mail.model.Mailbox;
+
+/**
+ * OpenJPA implementation of Mailbox
+ *
+ */
+public class OpenJPAMailbox extends JPAMailbox{
+
+ public OpenJPAMailbox(Mailbox mailbox,
+ EntityManagerFactory entityManagerfactory) {
+ super(mailbox, entityManagerfactory);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.imap.jpa.JPAMailbox#createMailboxMapper()
+ */
+ protected JPAMailboxMapper createMailboxMapper() {
+ final JPAMailboxMapper mapper = new
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
+ return mapper;
+ }
+}
Added:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java?rev=897633&view=auto
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
(added)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
Sun Jan 10 12:56:21 2010
@@ -0,0 +1,46 @@
+/****************************************************************
+ * 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.jpa.openjpa;
+
+import javax.persistence.EntityManagerFactory;
+
+import org.apache.james.imap.jpa.JPAMailboxManager;
+import org.apache.james.imap.jpa.mail.openjpa.OpenJPAMailboxMapper;
+import org.apache.james.imap.store.Authenticator;
+import org.apache.james.imap.store.Subscriber;
+import org.apache.james.imap.store.mail.MailboxMapper;
+
+/**
+ * OpenJPA implementation of MailboxManager
+ *
+ */
+public class OpenJPAMailboxManager extends JPAMailboxManager{
+
+ public OpenJPAMailboxManager(Authenticator authenticator,
+ Subscriber subscriber, EntityManagerFactory
entityManagerFactory) {
+ super(authenticator, subscriber, entityManagerFactory);
+ }
+
+ @Override
+ protected MailboxMapper createMailboxMapper() {
+ return new
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]