You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by en...@apache.org on 2010/11/08 06:51:33 UTC
svn commit: r1032464 - in /incubator/gora/trunk: ./
gora-core/src/main/java/org/apache/gora/store/
gora-core/src/main/java/org/apache/gora/util/
gora-core/src/test/java/org/apache/gora/
gora-core/src/test/java/org/apache/gora/avro/store/ gora-core/src/...
Author: enis
Date: Mon Nov 8 05:51:32 2010
New Revision: 1032464
URL: http://svn.apache.org/viewvc?rev=1032464&view=rev
Log:
GORA-7. DataStoreFactory.createDataStore() should throw exceptions on failure.
Added:
incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/util/GoraException.java
Modified:
incubator/gora/trunk/CHANGES.txt
incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/store/DataStoreFactory.java
incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/GoraTestDriver.java
incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/avro/store/TestAvroStore.java
incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/memory/store/TestMemStore.java
incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java
incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/store/TestDataStoreFactory.java
Modified: incubator/gora/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/CHANGES.txt?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/CHANGES.txt (original)
+++ incubator/gora/trunk/CHANGES.txt Mon Nov 8 05:51:32 2010
@@ -8,3 +8,6 @@ Trunk (unreleased changes)
* GORA-6. Add methods that take dataStoreClass instead of data store instance
to Gora{Input|Output}Format and Gora{Mapper|Reducer}. (enis)
+
+* GORA-7. DataStoreFactory.createDataStore() should throw exceptions on
+ failure. (enis)
Modified: incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/store/DataStoreFactory.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/store/DataStoreFactory.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/store/DataStoreFactory.java (original)
+++ incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/store/DataStoreFactory.java Mon Nov 8 05:51:32 2010
@@ -26,8 +26,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.gora.persistency.Persistent;
import org.apache.gora.store.impl.DataStoreBase;
+import org.apache.gora.util.GoraException;
import org.apache.gora.util.ReflectionUtils;
-import org.apache.hadoop.util.StringUtils;
/**
* A Factory for {@link DataStore}s. DataStoreFactory instances are thread-safe.
@@ -83,19 +83,20 @@ public class DataStoreFactory {
public static <D extends DataStore<K,T>, K, T extends Persistent>
D createDataStore(Class<D> dataStoreClass
- , Class<K> keyClass, Class<T> persistent) {
+ , Class<K> keyClass, Class<T> persistent) throws GoraException {
return createDataStore(dataStoreClass, keyClass, persistent, properties);
}
public static <D extends DataStore<K,T>, K, T extends Persistent>
- D createDataStore(Class<D> dataStoreClass
- , Class<K> keyClass, Class<T> persistent, String schemaName) {
+ D createDataStore(Class<D> dataStoreClass , Class<K> keyClass,
+ Class<T> persistent, String schemaName) throws GoraException {
return createDataStore(dataStoreClass, keyClass, persistent, properties, schemaName);
}
public static <D extends DataStore<K,T>, K, T extends Persistent>
D createDataStore(Class<D> dataStoreClass, Class<K> keyClass
- , Class<T> persistent, Properties properties, String schemaName) {
+ , Class<T> persistent, Properties properties, String schemaName)
+ throws GoraException {
try {
setDefaultSchemaName(properties, schemaName);
D dataStore =
@@ -103,22 +104,24 @@ public class DataStoreFactory {
initializeDataStore(dataStore, keyClass, persistent, properties);
return dataStore;
- } catch (Exception ex) {
- log.error(StringUtils.stringifyException(ex));
- return null;
+ } catch (GoraException ex) {
+ throw ex;
+ } catch(Exception ex) {
+ throw new GoraException(ex);
}
}
public static <D extends DataStore<K,T>, K, T extends Persistent>
D createDataStore(Class<D> dataStoreClass
- , Class<K> keyClass, Class<T> persistent, Properties properties) {
+ , Class<K> keyClass, Class<T> persistent, Properties properties)
+ throws GoraException {
return createDataStore(dataStoreClass, keyClass, persistent, properties, null);
}
@SuppressWarnings("unchecked")
public static <D extends DataStore<K,T>, K, T extends Persistent>
D getDataStore( Class<D> dataStoreClass, Class<K> keyClass,
- Class<T> persistentClass) {
+ Class<T> persistentClass) throws GoraException {
int hash = getDataStoreKey(dataStoreClass, keyClass, persistentClass);
D dataStore = (D) dataStores.get(hash);
@@ -133,30 +136,37 @@ public class DataStoreFactory {
@SuppressWarnings("unchecked")
public static synchronized <K, T extends Persistent> DataStore<K, T> getDataStore(
String dataStoreClass, Class<K> keyClass, Class<T> persistentClass)
- throws ClassNotFoundException {
-
- Class<? extends DataStore<K,T>> c
+ throws GoraException {
+ try {
+ Class<? extends DataStore<K,T>> c
= (Class<? extends DataStore<K, T>>) Class.forName(dataStoreClass);
- return getDataStore(c, keyClass, persistentClass);
+ return getDataStore(c, keyClass, persistentClass);
+ } catch(GoraException ex) {
+ throw ex;
+ } catch (Exception ex) {
+ throw new GoraException(ex);
+ }
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public static synchronized DataStore getDataStore(
String dataStoreClass, String keyClass, String persistentClass)
- throws ClassNotFoundException {
+ throws GoraException {
- Class k = Class.forName(keyClass);
- Class p = Class.forName(persistentClass);
- return getDataStore(dataStoreClass, k, p);
+ try {
+ Class k = Class.forName(keyClass);
+ Class p = Class.forName(persistentClass);
+ return getDataStore(dataStoreClass, k, p);
+ } catch(GoraException ex) {
+ throw ex;
+ } catch (Exception ex) {
+ throw new GoraException(ex);
+ }
}
public static <K, T extends Persistent> DataStore<K, T> getDataStore(
- Class<K> keyClass, Class<T> persistent) {
- try {
- return getDataStore(defaultDataStoreClass, keyClass, persistent);
- } catch (ClassNotFoundException ex) {
- return null;
- }
+ Class<K> keyClass, Class<T> persistent) throws GoraException {
+ return getDataStore(defaultDataStoreClass, keyClass, persistent);
}
private static int getDataStoreKey(
Added: incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/util/GoraException.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/util/GoraException.java?rev=1032464&view=auto
==============================================================================
--- incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/util/GoraException.java (added)
+++ incubator/gora/trunk/gora-core/src/main/java/org/apache/gora/util/GoraException.java Mon Nov 8 05:51:32 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.gora.util;
+
+import java.io.IOException;
+
+/**
+ * Gora specific exception. This extends IOException, since
+ * most of what Gora does is I/O related.
+ */
+public class GoraException extends IOException {
+
+ private static final long serialVersionUID = -3889679982234557828L;
+
+ public GoraException() {
+ super();
+ }
+
+ public GoraException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public GoraException(String message) {
+ super(message);
+ }
+
+ public GoraException(Throwable cause) {
+ super(cause);
+ }
+}
Modified: incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/GoraTestDriver.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/GoraTestDriver.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/GoraTestDriver.java (original)
+++ incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/GoraTestDriver.java Mon Nov 8 05:51:32 2010
@@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFac
import org.apache.gora.persistency.Persistent;
import org.apache.gora.store.DataStore;
import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
/**
* GoraTestDriver is a helper class for third party tests.
@@ -99,7 +100,7 @@ public class GoraTestDriver {
@SuppressWarnings("unchecked")
public<K, T extends Persistent> DataStore<K,T>
- createDataStore(Class<K> keyClass, Class<T> persistentClass) {
+ createDataStore(Class<K> keyClass, Class<T> persistentClass) throws GoraException {
setProperties(DataStoreFactory.properties);
DataStore<K,T> dataStore = DataStoreFactory.createDataStore(
(Class<? extends DataStore<K,T>>)dataStoreClass, keyClass, persistentClass);
Modified: incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/avro/store/TestAvroStore.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/avro/store/TestAvroStore.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/avro/store/TestAvroStore.java (original)
+++ incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/avro/store/TestAvroStore.java Mon Nov 8 05:51:32 2010
@@ -26,7 +26,6 @@ import java.io.IOException;
import junit.framework.Assert;
-import org.apache.gora.avro.store.AvroStore;
import org.apache.gora.avro.store.AvroStore.CodecType;
import org.apache.gora.examples.generated.Employee;
import org.apache.gora.examples.generated.WebPage;
@@ -35,6 +34,7 @@ import org.apache.gora.query.Result;
import org.apache.gora.store.DataStore;
import org.apache.gora.store.DataStoreFactory;
import org.apache.gora.store.DataStoreTestUtil;
+import org.apache.gora.util.GoraException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.junit.After;
@@ -69,8 +69,8 @@ public class TestAvroStore {
}
@SuppressWarnings("unchecked")
- protected AvroStore<String, Employee> createEmployeeDataStore() {
- return (AvroStore<String, Employee>) DataStoreFactory.getDataStore(
+ protected AvroStore<String, Employee> createEmployeeDataStore() throws GoraException {
+ return DataStoreFactory.getDataStore(
AvroStore.class, String.class, Employee.class);
}
Modified: incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/memory/store/TestMemStore.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/memory/store/TestMemStore.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/memory/store/TestMemStore.java (original)
+++ incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/memory/store/TestMemStore.java Mon Nov 8 05:51:32 2010
@@ -24,6 +24,7 @@ import org.apache.gora.memory.store.MemS
import org.apache.gora.store.DataStore;
import org.apache.gora.store.DataStoreFactory;
import org.apache.gora.store.DataStoreTestBase;
+import org.apache.gora.util.GoraException;
/**
* Test case for {@link MemStore}.
@@ -32,13 +33,13 @@ public class TestMemStore extends DataSt
@SuppressWarnings("unchecked")
@Override
- protected DataStore<String, Employee> createEmployeeDataStore() {
+ protected DataStore<String, Employee> createEmployeeDataStore() throws GoraException {
return DataStoreFactory.getDataStore(MemStore.class, String.class, Employee.class);
}
@SuppressWarnings("unchecked")
@Override
- protected DataStore<String, WebPage> createWebPageDataStore() {
+ protected DataStore<String, WebPage> createWebPageDataStore() throws GoraException {
return DataStoreFactory.getDataStore(MemStore.class, String.class, WebPage.class);
}
}
Modified: incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java (original)
+++ incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java Mon Nov 8 05:51:32 2010
@@ -30,6 +30,7 @@ import org.apache.gora.query.Result;
import org.apache.gora.query.impl.PartitionQueryImpl;
import org.apache.gora.store.DataStoreFactory;
import org.apache.gora.store.impl.DataStoreBase;
+import org.apache.gora.util.GoraException;
public class MockDataStore extends DataStoreBase<String, MockPersistent> {
@@ -37,9 +38,14 @@ public class MockDataStore extends DataS
public static final String[] LOCATIONS = {"foo1", "foo2", "foo3", "foo4", "foo1"};
public static MockDataStore get() {
- MockDataStore dataStore = DataStoreFactory.getDataStore(MockDataStore.class
- , String.class, MockPersistent.class);
- return dataStore;
+ MockDataStore dataStore;
+ try {
+ dataStore = DataStoreFactory.getDataStore(MockDataStore.class
+ , String.class, MockPersistent.class);
+ return dataStore;
+ } catch (GoraException ex) {
+ throw new RuntimeException(ex);
+ }
}
public MockDataStore() { }
Modified: incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/store/TestDataStoreFactory.java
URL: http://svn.apache.org/viewvc/incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/store/TestDataStoreFactory.java?rev=1032464&r1=1032463&r2=1032464&view=diff
==============================================================================
--- incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/store/TestDataStoreFactory.java (original)
+++ incubator/gora/trunk/gora-core/src/test/java/org/apache/gora/store/TestDataStoreFactory.java Mon Nov 8 05:51:32 2010
@@ -25,8 +25,7 @@ import junit.framework.Assert;
import org.apache.gora.avro.store.DataFileAvroStore;
import org.apache.gora.mock.persistency.MockPersistent;
import org.apache.gora.mock.store.MockDataStore;
-import org.apache.gora.store.DataStore;
-import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
import org.junit.Before;
import org.junit.Test;
@@ -37,14 +36,14 @@ public class TestDataStoreFactory {
}
@Test
- public void testGetDataStore() throws ClassNotFoundException {
+ public void testGetDataStore() throws GoraException {
DataStore<?,?> dataStore = DataStoreFactory.getDataStore("org.apache.gora.mock.store.MockDataStore"
, String.class, MockPersistent.class);
Assert.assertNotNull(dataStore);
}
@Test
- public void testGetClasses() throws ClassNotFoundException {
+ public void testGetClasses() throws GoraException {
DataStore<?,?> dataStore = DataStoreFactory.getDataStore("org.apache.gora.mock.store.MockDataStore"
, String.class, MockPersistent.class);
Assert.assertNotNull(dataStore);
@@ -53,14 +52,14 @@ public class TestDataStoreFactory {
}
@Test
- public void testGetDataStore2() throws ClassNotFoundException {
+ public void testGetDataStore2() throws GoraException {
DataStore<?,?> dataStore = DataStoreFactory.getDataStore(MockDataStore.class
, String.class, MockPersistent.class);
Assert.assertNotNull(dataStore);
}
@Test
- public void testGetDataStore3() throws ClassNotFoundException {
+ public void testGetDataStore3() throws GoraException {
DataStore<?,?> dataStore1 = DataStoreFactory.getDataStore("org.apache.gora.mock.store.MockDataStore"
, Object.class, MockPersistent.class);
DataStore<?,?> dataStore2 = DataStoreFactory.getDataStore("org.apache.gora.mock.store.MockDataStore"
@@ -73,7 +72,7 @@ public class TestDataStoreFactory {
}
@Test
- public void testReadProperties() {
+ public void testReadProperties() throws GoraException{
//indirect testing
DataStore<?,?> dataStore = DataStoreFactory.getDataStore(String.class, MockPersistent.class);
Assert.assertNotNull(dataStore);