This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 406b4c14d6233f24ed4d797fd0197ab2dcbcdd59 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Fri Jun 10 14:58:53 2022 +0200 CAMEL-18127: use a common resume adapter when possible --- .../org/apache/camel/resume/adapter.properties | 2 +- .../support/DefaultCouchbaseResumeAdapter.java | 72 ---------------------- .../org/apache/camel/resume/adapter.properties | 2 +- .../consumer/DefaultCouchDbResumeAdapter.java | 72 ---------------------- .../org/apache/camel/resume/adapter.properties | 2 +- .../support/resume/ResumeActionAwareAdapter.java | 10 ++- 6 files changed, 11 insertions(+), 149 deletions(-) diff --git a/components/camel-cassandraql/src/main/resources/org/apache/camel/resume/adapter.properties b/components/camel-cassandraql/src/main/resources/org/apache/camel/resume/adapter.properties index 59898d3e1ac..336c53d8298 100644 --- a/components/camel-cassandraql/src/main/resources/org/apache/camel/resume/adapter.properties +++ b/components/camel-cassandraql/src/main/resources/org/apache/camel/resume/adapter.properties @@ -16,4 +16,4 @@ ## --------------------------------------------------------------------------- -adapterClass=org.apache.camel.component.cassandra.consumer.support.DefaultCassandraResumeAdapter +adapterClass=org.apache.camel.support.resume.ResumeActionAwareAdapter diff --git a/components/camel-couchbase/src/main/java/org/apache/camel/component/couchbase/consumer/support/DefaultCouchbaseResumeAdapter.java b/components/camel-couchbase/src/main/java/org/apache/camel/component/couchbase/consumer/support/DefaultCouchbaseResumeAdapter.java deleted file mode 100644 index 8162bf5710d..00000000000 --- a/components/camel-couchbase/src/main/java/org/apache/camel/component/couchbase/consumer/support/DefaultCouchbaseResumeAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.camel.component.couchbase.consumer.support; - -import java.nio.ByteBuffer; - -import org.apache.camel.resume.Cacheable; -import org.apache.camel.resume.Deserializable; -import org.apache.camel.resume.Offset; -import org.apache.camel.resume.OffsetKey; -import org.apache.camel.resume.ResumeAction; -import org.apache.camel.resume.ResumeActionAware; -import org.apache.camel.resume.cache.ResumeCache; - -public class DefaultCouchbaseResumeAdapter implements ResumeActionAware, Cacheable, Deserializable { - private ResumeAction resumeAction; - private ResumeCache<Object> cache; - - @Override - public void setResumeAction(ResumeAction resumeAction) { - this.resumeAction = resumeAction; - } - - @Override - public void resume() { - cache.forEach(resumeAction::evalEntry); - } - - private boolean add(Object key, Object offset) { - cache.add(key, offset); - - return true; - } - - @Override - public boolean add(OffsetKey<?> key, Offset<?> offset) { - return add(key.getValue(), offset.getValue()); - } - - @Override - public void setCache(ResumeCache<?> cache) { - this.cache = (ResumeCache<Object>) cache; - } - - @Override - public ResumeCache<?> getCache() { - return cache; - } - - @Override - public boolean deserialize(ByteBuffer keyBuffer, ByteBuffer valueBuffer) { - Object key = deserializeObject(keyBuffer); - Object value = deserializeObject(valueBuffer); - - return add(key, value); - } -} diff --git a/components/camel-couchbase/src/main/resources/org/apache/camel/resume/adapter.properties b/components/camel-couchbase/src/main/resources/org/apache/camel/resume/adapter.properties index 5a7ec013b1e..336c53d8298 100644 --- a/components/camel-couchbase/src/main/resources/org/apache/camel/resume/adapter.properties +++ b/components/camel-couchbase/src/main/resources/org/apache/camel/resume/adapter.properties @@ -16,4 +16,4 @@ ## --------------------------------------------------------------------------- -adapterClass=org.apache.camel.component.couchbase.consumer.support.DefaultCouchbaseResumeAdapter +adapterClass=org.apache.camel.support.resume.ResumeActionAwareAdapter diff --git a/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/consumer/DefaultCouchDbResumeAdapter.java b/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/consumer/DefaultCouchDbResumeAdapter.java deleted file mode 100644 index 4b7c0550c88..00000000000 --- a/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/consumer/DefaultCouchDbResumeAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.camel.component.couchdb.consumer; - -import java.nio.ByteBuffer; - -import org.apache.camel.resume.Cacheable; -import org.apache.camel.resume.Deserializable; -import org.apache.camel.resume.Offset; -import org.apache.camel.resume.OffsetKey; -import org.apache.camel.resume.ResumeAction; -import org.apache.camel.resume.ResumeActionAware; -import org.apache.camel.resume.cache.ResumeCache; - -public class DefaultCouchDbResumeAdapter implements ResumeActionAware, Cacheable, Deserializable { - private ResumeCache<Object> cache; - private ResumeAction resumeAction; - - @Override - public void setResumeAction(ResumeAction resumeAction) { - this.resumeAction = resumeAction; - } - - @Override - public void resume() { - cache.forEach(resumeAction::evalEntry); - } - - private boolean add(Object key, Object offset) { - cache.add(key, offset); - - return true; - } - - @Override - public boolean add(OffsetKey<?> key, Offset<?> offset) { - return add(key.getValue(), offset.getValue()); - } - - @Override - public void setCache(ResumeCache<?> cache) { - this.cache = (ResumeCache<Object>) cache; - } - - @Override - public ResumeCache<?> getCache() { - return cache; - } - - @Override - public boolean deserialize(ByteBuffer keyBuffer, ByteBuffer valueBuffer) { - Object key = deserializeObject(keyBuffer); - Object value = deserializeObject(valueBuffer); - - return add(key, value); - } -} diff --git a/components/camel-couchdb/src/main/resources/org/apache/camel/resume/adapter.properties b/components/camel-couchdb/src/main/resources/org/apache/camel/resume/adapter.properties index c8d679476bb..80310b84de3 100644 --- a/components/camel-couchdb/src/main/resources/org/apache/camel/resume/adapter.properties +++ b/components/camel-couchdb/src/main/resources/org/apache/camel/resume/adapter.properties @@ -15,4 +15,4 @@ ## limitations under the License. ## --------------------------------------------------------------------------- -org.apache.camel.component.couchdb.consumer.DefaultCouchDbResumeAdapter +adapterClass=org.apache.camel.support.resume.ResumeActionAwareAdapter diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/consumer/support/DefaultCassandraResumeAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/resume/ResumeActionAwareAdapter.java similarity index 80% rename from components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/consumer/support/DefaultCassandraResumeAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/resume/ResumeActionAwareAdapter.java index 3115aeec590..0bc07685ed7 100644 --- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/consumer/support/DefaultCassandraResumeAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/resume/ResumeActionAwareAdapter.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.camel.component.cassandra.consumer.support; +package org.apache.camel.support.resume; import java.nio.ByteBuffer; @@ -27,7 +27,13 @@ import org.apache.camel.resume.ResumeAction; import org.apache.camel.resume.ResumeActionAware; import org.apache.camel.resume.cache.ResumeCache; -public class DefaultCassandraResumeAdapter implements ResumeActionAware, Cacheable, Deserializable { +/** + * A simple resume adapter that support caching, deserialization and actions. This is usually suitable for supporting + * resume operations that have simple cache storage requirements, but delegate the resume action to the integrations + * (i.e.: such as when resuming from database components, where the resume operation can only be determined by the + * integration itself) + */ +public class ResumeActionAwareAdapter implements ResumeActionAware, Cacheable, Deserializable { private ResumeCache<Object> cache; private ResumeAction resumeAction;