Author: [email protected]
Date: Wed Sep 28 17:21:50 2011
New Revision: 1421
Log:
[AMDATUCASSANDRA-99] Fixed the problem by adding null checks in the Cassandra
storage implementations. But more investigation is needed for the reason of the
hector exceptions stated in the JIRA issue
Added:
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
Modified:
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
Modified:
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
Wed Sep 28 17:21:50 2011
@@ -107,6 +107,9 @@
}
public boolean hasToken(final String token) {
+ if (token == null) {
+ return false;
+ }
String value = m_pm.getValue(CF_TOKEN, token, null, C_TIMESTAMP,
String.class);
return value != null;
}
@@ -116,6 +119,9 @@
}
public Token getToken(String token) {
+ if (token == null) {
+ return null;
+ }
List<HColumn<String, String>> columns = m_pm.getColumns(CF_TOKEN,
token, String.class);
String secret = null;
long timestamp = 0L;
Modified:
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
Wed Sep 28 17:21:50 2011
@@ -28,7 +28,7 @@
public class CassandraTokenStoreTest {
@Test
public void test() throws Exception {
- // Create the mock objects
+ // Create the mock objects
LogServiceMock logService = new LogServiceMock();
CassandraPersistenceManagerMock<String, String, Object> pm = new
CassandraPersistenceManagerMock<String, String, Object>("Default");
ColumnFamilyDefinition[] colDefs = new
TokenColumnFamilyProvider().getColumnFamilies();
Added:
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
==============================================================================
--- (empty file)
+++
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
Wed Sep 28 17:21:50 2011
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ *
+ * 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.amdatu.cassandra.test.integration.tests;
+
+import org.amdatu.auth.tokenprovider.Token;
+import org.amdatu.cassandra.test.integration.tests.framework.CassandraTestBase;
+
+public class TokenStoreTest extends CassandraTestBase {
+
+ @Override
+ public void execute() throws Exception {
+ String key = "i_am_the_token";
+ String secret = "i_am_the_secret";
+ Token token = new Token(key, secret, System.currentTimeMillis());
+
+ // Try add/remove token
+ assertFalse(m_tokenStore.hasToken(key));
+ m_tokenStore.addToken(token);
+ assertTrue(m_tokenStore.hasToken(key));
+ m_tokenStore.removeToken(token);
+ assertFalse(m_tokenStore.hasToken(key));
+
+ // Verify that getToken and hasToken return null when the provided
token is null
+ assertFalse(m_tokenStore.hasToken(null));
+ assertNull(m_tokenStore.getToken(null));
+ }
+}
Modified:
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
==============================================================================
---
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
(original)
+++
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
Wed Sep 28 17:21:50 2011
@@ -24,6 +24,7 @@
import org.amdatu.auth.oauth.consumerregistry.OAuthServiceConsumerRegistry;
import org.amdatu.auth.oauth.server.OAuthNonceStorageProvider;
+import org.amdatu.auth.tokenprovider.TokenStorageProvider;
import org.amdatu.cassandra.application.CassandraConfigurationService;
import org.amdatu.cassandra.application.CassandraDaemonService;
import
org.amdatu.cassandra.persistencemanager.CassandraPersistenceManagerFactory;
@@ -34,6 +35,7 @@
import org.amdatu.cassandra.test.integration.tests.NonceStoreTest;
import
org.amdatu.cassandra.test.integration.tests.OAuthServiceConsumerRESTTest;
import org.amdatu.cassandra.test.integration.tests.OAuthServiceConsumerTest;
+import org.amdatu.cassandra.test.integration.tests.TokenStoreTest;
import org.amdatu.cassandra.test.integration.tests.UserAdminStoreTest;
import org.amdatu.core.itest.base.CoreFixture;
import org.amdatu.core.itest.base.TestContext;
@@ -70,6 +72,7 @@
private UserAdmin m_userAdmin;
private OAuthServiceConsumerRegistry m_consumerRegistry;
private OAuthNonceStorageProvider m_nonceStore;
+ private TokenStorageProvider m_tokenStore;
@Configuration
public Option[] config() {
@@ -115,11 +118,13 @@
m_userAdmin = assertAvailable(m_testContext, UserAdmin.class);
m_consumerRegistry = assertAvailable(m_testContext,
OAuthServiceConsumerRegistry.class);
m_nonceStore = assertAvailable(m_testContext,
OAuthNonceStorageProvider.class);
+ m_tokenStore = assertAvailable(m_testContext,
TokenStorageProvider.class);
// Create the dependency manager
m_dependencyManager = new
DependencyManager(m_testContext.getBundleContext());
- // Execute the tests
+ // Execute the tests
+ test(TokenStoreTest.class);
test(CassandraDaemonTest.class);
test(CassandraPersistenceManagerTest.class);
test(UserAdminStoreTest.class);
@@ -150,5 +155,6 @@
test.setUserAdmin(m_userAdmin);
test.setOAuthConsumerRegistry(m_consumerRegistry);
test.setOAuthNonceStore(m_nonceStore);
+ test.setTokenStore(m_tokenStore);
}
}
Modified:
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
==============================================================================
---
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
(original)
+++
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
Wed Sep 28 17:21:50 2011
@@ -19,6 +19,7 @@
import org.amdatu.auth.oauth.consumerregistry.OAuthServiceConsumerRegistry;
import org.amdatu.auth.oauth.server.OAuthNonceStorageProvider;
+import org.amdatu.auth.tokenprovider.TokenStorageProvider;
import org.amdatu.cassandra.application.CassandraDaemonService;
import
org.amdatu.cassandra.persistencemanager.CassandraPersistenceManagerFactory;
import org.amdatu.core.itest.base.TestContext;
@@ -37,6 +38,7 @@
protected volatile UserAdmin m_userAdmin;
protected volatile OAuthServiceConsumerRegistry m_OAuthConsumerRegistry;
protected volatile OAuthNonceStorageProvider m_OAuthNonceStore;
+ protected volatile TokenStorageProvider m_tokenStore;
public abstract void execute() throws Exception;
@@ -76,6 +78,10 @@
m_OAuthNonceStore = store;
}
+ public void setTokenStore(TokenStorageProvider tokenStore) {
+ m_tokenStore = tokenStore;
+ }
+
protected void assertFalse(boolean check) {
Assert.assertFalse(getStackTrace(), check);
}
@@ -88,6 +94,10 @@
Assert.assertNotNull(getStackTrace(), object);
}
+ protected void assertNull(Object object) {
+ Assert.assertNull(getStackTrace(), object);
+ }
+
protected String getStackTrace() {
String eol = System.getProperty("line.separator");
String stackTrace = "Assertion failed." + eol + "Stacktrace:" + eol;
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits