From d71e6c093c519b8d60052b84cd8f7dd55d3edb49 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 12 Oct 2011 14:39:53 +0200 Subject: [PATCH] DATACMNS-73 - Created dedicated cross-store package. Removed obsolete classes. --- .../data/crossstore/ChangeSet.java | 38 ++++++++++++ .../data/crossstore/ChangeSetBacked.java | 28 +++++++++ .../ChangeSetPersister.java | 19 +++++- .../data/persistence/ChangeSet.java | 23 ------- .../data/persistence/ChangeSetBacked.java | 13 ---- ...geSetBackedTransactionSynchronization.java | 62 ------------------- .../persistence/ChangeSetConfiguration.java | 25 -------- .../persistence/ChangeSetSynchronizer.java | 28 --------- .../data/persistence/HashMapChangeSet.java | 1 + 9 files changed, 84 insertions(+), 153 deletions(-) create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSet.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetBacked.java rename spring-data-commons-core/src/main/java/org/springframework/data/{persistence => crossstore}/ChangeSetPersister.java (59%) delete mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSet.java delete mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBacked.java delete mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBackedTransactionSynchronization.java delete mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetConfiguration.java delete mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetSynchronizer.java diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSet.java b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSet.java new file mode 100644 index 000000000..c67d1c66d --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSet.java @@ -0,0 +1,38 @@ +/* + * Copyright 2011 the original author or authors. + * + * Licensed 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.springframework.data.crossstore; + +import java.util.Map; + +import org.springframework.core.convert.ConversionService; + +/** + * Interface representing the set of changes in an entity. + * + * @author Rod Johnson + * @author Thomas Risberg + */ +public interface ChangeSet { + + T get(String key, Class requiredClass, ConversionService cs); + + void set(String key, Object o); + + Map getValues(); + + Object removeProperty(String k); + +} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetBacked.java b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetBacked.java new file mode 100644 index 000000000..f0e0651aa --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetBacked.java @@ -0,0 +1,28 @@ +/* + * Copyright 2011 the original author or authors. + * + * Licensed 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.springframework.data.crossstore; + +/** + * Interface introduced to objects exposing ChangeSet information + * + * @author Rod Johnson + * @author Thomas Risberg + */ +public interface ChangeSetBacked { + + ChangeSet getChangeSet(); + +} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetPersister.java b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetPersister.java similarity index 59% rename from spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetPersister.java rename to spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetPersister.java index 130942427..bdf15810f 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetPersister.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/ChangeSetPersister.java @@ -1,4 +1,19 @@ -package org.springframework.data.persistence; +/* + * Copyright 2011 the original author or authors. + * + * Licensed 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.springframework.data.crossstore; import org.springframework.dao.DataAccessException; @@ -11,7 +26,6 @@ import org.springframework.dao.DataAccessException; public interface ChangeSetPersister { String ID_KEY = "_id"; - String CLASS_KEY = "_class"; /** @@ -45,6 +59,7 @@ public interface ChangeSetPersister { */ class NotFoundException extends Exception { + private static final long serialVersionUID = -8604207973816331140L; } } diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSet.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSet.java deleted file mode 100644 index 50be73f16..000000000 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSet.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.springframework.data.persistence; - -import java.util.Map; - -import org.springframework.core.convert.ConversionService; - -/** - * Interface representing the set of changes in an entity. - * - * @author Rod Johnson - * @author Thomas Risberg - */ -public interface ChangeSet { - - T get(String key, Class requiredClass, ConversionService cs); - - void set(String key, Object o); - - Map getValues(); - - Object removeProperty(String k); - -} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBacked.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBacked.java deleted file mode 100644 index 50e8b82a3..000000000 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBacked.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.springframework.data.persistence; - -/** - * Interface introduced to objects exposing ChangeSet information - * - * @author Rod Johnson - * @author Thomas Risberg - */ -public interface ChangeSetBacked { - - ChangeSet getChangeSet(); - -} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBackedTransactionSynchronization.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBackedTransactionSynchronization.java deleted file mode 100644 index 8523efe22..000000000 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetBackedTransactionSynchronization.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.springframework.data.persistence; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.data.persistence.ChangeSetBacked; -import org.springframework.data.persistence.ChangeSetPersister; -import org.springframework.transaction.support.TransactionSynchronization; - -public class ChangeSetBackedTransactionSynchronization implements TransactionSynchronization { - - protected final Log log = LogFactory.getLog(getClass()); - - private ChangeSetPersister changeSetPersister; - - private ChangeSetBacked entity; - - private int changeSetTxStatus = -1; - - public ChangeSetBackedTransactionSynchronization(ChangeSetPersister changeSetPersister, ChangeSetBacked entity) { - this.changeSetPersister = changeSetPersister; - this.entity = entity; - } - - public void afterCommit() { - log.debug("After Commit called for " + entity); - changeSetPersister.persistState(entity, entity.getChangeSet()); - changeSetTxStatus = 0; - } - - public void afterCompletion(int status) { - log.debug("After Completion called with status = " + status); - if (changeSetTxStatus == 0) { - if (status == STATUS_COMMITTED) { - // this is good - log.debug("ChangedSetBackedTransactionSynchronization completed successfully for " + this.entity); - } else { - // this could be bad - TODO: compensate - log.error("ChangedSetBackedTransactionSynchronization failed for " + this.entity); - } - } - } - - public void beforeCommit(boolean readOnly) { - } - - public void beforeCompletion() { - } - - public void flush() { - } - - public void resume() { - throw new IllegalStateException( - "ChangedSetBackedTransactionSynchronization does not support transaction suspension currently."); - } - - public void suspend() { - throw new IllegalStateException( - "ChangedSetBackedTransactionSynchronization does not support transaction suspension currently."); - } - -} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetConfiguration.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetConfiguration.java deleted file mode 100644 index e93680179..000000000 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetConfiguration.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.springframework.data.persistence; - -public class ChangeSetConfiguration { - - private ChangeSetPersister changeSetPersister; - - private ChangeSetSynchronizer changeSetManager; - - public ChangeSetPersister getChangeSetPersister() { - return changeSetPersister; - } - - public void setChangeSetPersister(ChangeSetPersister changeSetPersister) { - this.changeSetPersister = changeSetPersister; - } - - public ChangeSetSynchronizer getChangeSetManager() { - return changeSetManager; - } - - public void setChangeSetManager(ChangeSetSynchronizer changeSetManager) { - this.changeSetManager = changeSetManager; - } - -} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetSynchronizer.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetSynchronizer.java deleted file mode 100644 index 506f238fe..000000000 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/ChangeSetSynchronizer.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.springframework.data.persistence; - -import java.util.Map; - -import org.springframework.dao.DataAccessException; - -/** - * Interface to be implemented by classes that can synchronize between entities and ChangeSets. - * - * @param - * @author Rod Johnson - */ -public interface ChangeSetSynchronizer { - - Map> persistentFields(Class entityClassClass); - - /** - * Take all entity fields into a changeSet. - * - * @param entity - * @return - * @throws DataAccessException - */ - void populateChangeSet(ChangeSet changeSet, E entity) throws DataAccessException; - - void populateEntity(ChangeSet changeSet, E entity) throws DataAccessException; - -} diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/HashMapChangeSet.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/HashMapChangeSet.java index 1e8101dc4..703115e52 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/HashMapChangeSet.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/HashMapChangeSet.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; import org.springframework.core.convert.ConversionService; +import org.springframework.data.crossstore.ChangeSet; /** * Simple ChangeSet implementation backed by a HashMap.