You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@batchee.apache.org by st...@apache.org on 2014/04/27 22:11:29 UTC
[1/2] git commit: upgrade to latest apache-parent-14
Repository: incubator-batchee
Updated Branches:
refs/heads/master 0096011dd -> 9bf9764af
upgrade to latest apache-parent-14
Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/2999efa2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/2999efa2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/2999efa2
Branch: refs/heads/master
Commit: 2999efa2e904b61b0533ce8ccbb67a24a127c12d
Parents: 0096011
Author: Mark Struberg <st...@apache.org>
Authored: Sun Apr 27 22:09:12 2014 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Sun Apr 27 22:09:12 2014 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/2999efa2/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e0eeaad..58ab2cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>13</version>
+ <version>14</version>
</parent>
<groupId>org.apache.batchee</groupId>
[2/2] git commit: BATCHEE-32 add NoStateTypedItem*
Posted by st...@apache.org.
BATCHEE-32 add NoStateTypedItem*
patch submitted by Reinhard Sandtner. txs!
Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/9bf9764a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/9bf9764a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/9bf9764a
Branch: refs/heads/master
Commit: 9bf9764af13ee8c8e29ca6440c8b3590a1fbfa7f
Parents: 2999efa
Author: Mark Struberg <st...@apache.org>
Authored: Sun Apr 27 22:10:46 2014 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Sun Apr 27 22:10:46 2014 +0200
----------------------------------------------------------------------
.../extras/buffered/BufferedItemReader.java | 14 +---
.../extras/typed/NoStateTypedItemReader.java | 43 ++++++++++++
.../extras/typed/NoStateTypedItemWriter.java | 43 ++++++++++++
.../batchee/extras/typed/TypedItemReader.java | 5 +-
.../typed/NoStateTypedItemReaderTest.java | 73 ++++++++++++++++++++
.../typed/NoStateTypedItemWriterTest.java | 67 ++++++++++++++++++
.../META-INF/batch-jobs/no-state-reader.xml | 23 ++++++
.../META-INF/batch-jobs/no-state-writer.xml | 23 ++++++
8 files changed, 275 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/main/java/org/apache/batchee/extras/buffered/BufferedItemReader.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/main/java/org/apache/batchee/extras/buffered/BufferedItemReader.java b/extensions/extras/src/main/java/org/apache/batchee/extras/buffered/BufferedItemReader.java
index e3cb0e2..f9ea4be 100644
--- a/extensions/extras/src/main/java/org/apache/batchee/extras/buffered/BufferedItemReader.java
+++ b/extensions/extras/src/main/java/org/apache/batchee/extras/buffered/BufferedItemReader.java
@@ -16,10 +16,9 @@
*/
package org.apache.batchee.extras.buffered;
-import java.io.Serializable;
import java.util.Iterator;
-import org.apache.batchee.extras.typed.TypedItemReader;
+import org.apache.batchee.extras.typed.NoStateTypedItemReader;
/**
@@ -35,7 +34,7 @@ import org.apache.batchee.extras.typed.TypedItemReader;
*
* @param <R> the return type of the reader
*/
-public abstract class BufferedItemReader<R> extends TypedItemReader<R, Serializable> {
+public abstract class BufferedItemReader<R> extends NoStateTypedItemReader<R> {
private Iterator<R> valuesIt = null;
@@ -58,13 +57,4 @@ public abstract class BufferedItemReader<R> extends TypedItemReader<R, Serializa
return null;
}
- @Override
- public void close() throws Exception {
- // no-op
- }
-
- @Override
- protected void doOpen(Serializable checkpoint) {
- // no-op
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemReader.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemReader.java b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemReader.java
new file mode 100644
index 0000000..e9f5a48
--- /dev/null
+++ b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemReader.java
@@ -0,0 +1,43 @@
+/*
+ * 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.batchee.extras.typed;
+
+import java.io.Serializable;
+
+/**
+ * {@link TypedItemReader} which doesn't need a CheckpointInfo.
+ *
+ * @param <R> The type of the item returned in {@link #readItem()}.
+ */
+public abstract class NoStateTypedItemReader<R> extends TypedItemReader<R, Serializable> {
+
+ @Override
+ protected void doOpen(Serializable checkpoint) {
+ // no-op
+ }
+
+ @Override
+ protected Serializable doCheckpointInfo() {
+ // no-op
+ return null;
+ }
+
+ @Override
+ public void close() throws Exception {
+ // no-op
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemWriter.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemWriter.java b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemWriter.java
new file mode 100644
index 0000000..dc77118
--- /dev/null
+++ b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/NoStateTypedItemWriter.java
@@ -0,0 +1,43 @@
+/*
+ * 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.batchee.extras.typed;
+
+import java.io.Serializable;
+
+/**
+ * {@link TypedItemWriter} which doesn't need a CheckpointInfo.
+ *
+ * @param <R> The type of the item returned in {@link #writeItems(java.util.List)}.
+ */
+public abstract class NoStateTypedItemWriter<R> extends TypedItemWriter<R, Serializable> {
+
+ @Override
+ protected void doOpen(Serializable checkpoint) {
+ // no-op
+ }
+
+ @Override
+ protected Serializable doCheckpointInfo() {
+ // no-op
+ return null;
+ }
+
+ @Override
+ public void close() throws Exception {
+ // no-op
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/TypedItemReader.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/TypedItemReader.java b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/TypedItemReader.java
index 5006ded..620da59 100644
--- a/extensions/extras/src/main/java/org/apache/batchee/extras/typed/TypedItemReader.java
+++ b/extensions/extras/src/main/java/org/apache/batchee/extras/typed/TypedItemReader.java
@@ -28,10 +28,7 @@ import java.io.Serializable;
public abstract class TypedItemReader<R, C extends Serializable> implements ItemReader {
protected abstract void doOpen(C checkpoint);
protected abstract R doRead();
-
- protected C doCheckpointInfo() {
- return null;
- }
+ protected abstract C doCheckpointInfo();
@Override
public void open(Serializable checkpoint) throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemReaderTest.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemReaderTest.java b/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemReaderTest.java
new file mode 100644
index 0000000..772c5a0
--- /dev/null
+++ b/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemReaderTest.java
@@ -0,0 +1,73 @@
+/*
+ * 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.batchee.extras.typed;
+
+import org.apache.batchee.util.Batches;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import javax.batch.api.chunk.AbstractItemWriter;
+import javax.batch.operations.JobOperator;
+import javax.batch.runtime.BatchRuntime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * Test for the abstract {@link NoStateTypedItemReader}
+ */
+public class NoStateTypedItemReaderTest {
+
+
+ @Test
+ public void testDoRead() throws Exception {
+ DummyItemWriter.items.clear();
+
+ JobOperator jobOperator = BatchRuntime.getJobOperator();
+ Batches.waitForEnd(jobOperator, jobOperator.start("no-state-reader", new Properties()));
+
+ Assert.assertFalse(DummyItemWriter.items.isEmpty(), "items must be not empty");
+ Assert.assertEquals(DummyItemWriter.items.size(), 4);
+ Assert.assertEquals(DummyItemWriter.items.get(0), "A");
+ Assert.assertEquals(DummyItemWriter.items.get(1), "B");
+ Assert.assertEquals(DummyItemWriter.items.get(2), "3");
+ Assert.assertEquals(DummyItemWriter.items.get(3), "4");
+ }
+
+
+ public static class MyNoStateTypedItemReader extends NoStateTypedItemReader<String> {
+
+ private static final String[] ITEMS_TO_READ = new String[] {"A","B", "3", "4"};
+ private int count;
+
+ @Override
+ protected String doRead() {
+ return count == ITEMS_TO_READ.length ? null : ITEMS_TO_READ[count++];
+ }
+ }
+
+ public static class DummyItemWriter extends AbstractItemWriter {
+
+ public static List<Object> items = new ArrayList<Object>();
+
+ @Override
+ public void writeItems(List<Object> items) throws Exception {
+ DummyItemWriter.items.addAll(items);
+ }
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemWriterTest.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemWriterTest.java b/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemWriterTest.java
new file mode 100644
index 0000000..d2b0b82
--- /dev/null
+++ b/extensions/extras/src/test/java/org/apache/batchee/extras/typed/NoStateTypedItemWriterTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.batchee.extras.typed;
+
+import org.apache.batchee.util.Batches;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import javax.batch.api.chunk.AbstractItemReader;
+import javax.batch.operations.JobOperator;
+import javax.batch.runtime.BatchRuntime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+public class NoStateTypedItemWriterTest {
+
+ @Test
+ public void testDoWrite() throws Exception {
+ MyNoStateTypedItemWriter.items.clear();
+
+ JobOperator jobOperator = BatchRuntime.getJobOperator();
+ Batches.waitForEnd(jobOperator, jobOperator.start("no-state-writer", new Properties()));
+
+ Assert.assertFalse(MyNoStateTypedItemWriter.items.isEmpty(), "items must be not empty");
+ Assert.assertEquals(MyNoStateTypedItemWriter.items.size(), 3);
+ Assert.assertEquals(MyNoStateTypedItemWriter.items.get(0).longValue(), 12L);
+ Assert.assertEquals(MyNoStateTypedItemWriter.items.get(1).longValue(), 45L);
+ Assert.assertEquals(MyNoStateTypedItemWriter.items.get(2).longValue(), 113L);
+ }
+
+
+ public static class DummyItemReader extends AbstractItemReader {
+
+ private static final long[] DUMMY_ITEMS_TO_READ = new long[]{12L, 45L, 113L};
+ private int count;
+
+ @Override
+ public Object readItem() throws Exception {
+ return count == DUMMY_ITEMS_TO_READ.length ? null : DUMMY_ITEMS_TO_READ[count++];
+ }
+ }
+
+ public static class MyNoStateTypedItemWriter extends NoStateTypedItemWriter<Long> {
+
+ public static List<Long> items = new ArrayList<Long>();
+
+ @Override
+ protected void doWriteItems(List<Long> items) {
+ MyNoStateTypedItemWriter.items.addAll(items);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-reader.xml
----------------------------------------------------------------------
diff --git a/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-reader.xml b/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-reader.xml
new file mode 100644
index 0000000..c3069c2
--- /dev/null
+++ b/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-reader.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ See the NOTICE file distributed with this work for additional information
+ regarding copyright ownership. 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.
+-->
+<job id="no-state-reader" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
+ <step id="step">
+ <chunk>
+ <reader ref="org.apache.batchee.extras.typed.NoStateTypedItemReaderTest$MyNoStateTypedItemReader" />
+ <writer ref="org.apache.batchee.extras.typed.NoStateTypedItemReaderTest$DummyItemWriter" />
+ </chunk>
+ </step>
+</job>
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/9bf9764a/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-writer.xml
----------------------------------------------------------------------
diff --git a/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-writer.xml b/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-writer.xml
new file mode 100644
index 0000000..00f6b11
--- /dev/null
+++ b/extensions/extras/src/test/resources/META-INF/batch-jobs/no-state-writer.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ See the NOTICE file distributed with this work for additional information
+ regarding copyright ownership. 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.
+-->
+<job id="no-state-writer" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
+ <step id="step">
+ <chunk>
+ <reader ref="org.apache.batchee.extras.typed.NoStateTypedItemWriterTest$DummyItemReader" />
+ <writer ref="org.apache.batchee.extras.typed.NoStateTypedItemWriterTest$MyNoStateTypedItemWriter" />
+ </chunk>
+ </step>
+</job>