You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by dj...@apache.org on 2024/01/11 11:25:48 UTC
(gora) branch revert-273-GORA-698 created (now e5940fa7)
This is an automated email from the ASF dual-hosted git repository.
djkevincr pushed a change to branch revert-273-GORA-698
in repository https://gitbox.apache.org/repos/asf/gora.git
at e5940fa7 Revert "[IN-PROGRESS] GORA-698 Geode DataStore"
This branch includes the following new commits:
new e5940fa7 Revert "[IN-PROGRESS] GORA-698 Geode DataStore"
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(gora) 01/01: Revert "[IN-PROGRESS] GORA-698 Geode DataStore"
Posted by dj...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
djkevincr pushed a commit to branch revert-273-GORA-698
in repository https://gitbox.apache.org/repos/asf/gora.git
commit e5940fa712c3f475de44c6ce2c3e1ad9aa143c82
Author: Kevin Ratnasekera <dj...@yahoo.com>
AuthorDate: Thu Jan 11 12:25:43 2024 +0100
Revert "[IN-PROGRESS] GORA-698 Geode DataStore"
---
gora-geode/pom.xml | 87 ---------
.../org/apache/gora/geode/query/GeodeQuery.java | 38 ----
.../org/apache/gora/geode/query/GeodeResult.java | 85 ---------
.../org/apache/gora/geode/store/GeodeStore.java | 200 ---------------------
.../gora/geode/store/GeodeStoreParameters.java | 60 -------
gora-geode/src/test/conf/gora.properties | 18 --
.../gora/geode/GeodeStartupLogWaitStrategy.java | 36 ----
.../org/apache/gora/geode/GoraGeodeTestDriver.java | 88 ---------
gora-geode/src/test/java/store/TestGeodeStore.java | 161 -----------------
pom.xml | 8 -
10 files changed, 781 deletions(-)
diff --git a/gora-geode/pom.xml b/gora-geode/pom.xml
deleted file mode 100644
index 420e90ca..00000000
--- a/gora-geode/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>gora</artifactId>
- <groupId>org.apache.gora</groupId>
- <version>1.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>gora-geode</artifactId>
-
- <properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- </properties>
-
- <dependencies>
- <!-- Gora Internal Dependencies -->
- <dependency>
- <groupId>org.apache.gora</groupId>
- <artifactId>gora-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.gora</groupId>
- <artifactId>gora-core</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </dependency>
-
- <!-- Hadoop Dependencies -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-client</artifactId>
- </dependency>
-
- <!-- Geode Dependencies -->
- <dependency>
- <groupId>org.apache.geode</groupId>
- <artifactId>geode-core</artifactId>
- </dependency>
-
- <!-- Logging Dependencies -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
-
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <exclusions>
- <exclusion>
- <groupId>javax.jms</groupId>
- <artifactId>jms</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Testing Dependencies -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-minicluster</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.testcontainers</groupId>
- <artifactId>testcontainers</artifactId>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-</project>
\ No newline at end of file
diff --git a/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeQuery.java b/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeQuery.java
deleted file mode 100644
index f6684d5d..00000000
--- a/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeQuery.java
+++ /dev/null
@@ -1,38 +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.gora.geode.query;
-
-import org.apache.gora.persistency.impl.PersistentBase;
-import org.apache.gora.query.impl.QueryBase;
-import org.apache.gora.store.DataStore;
-
-/**
- * {@link GeodeQuery} is the primary class
- * responsible for representing a cache manipulation query.
- */
-public class GeodeQuery<K, T extends PersistentBase> extends QueryBase<K, T> {
-
- public GeodeQuery() {
- super(null);
- }
-
- public GeodeQuery(DataStore<K, T> dataStore) {
- super(dataStore);
- }
-
-}
diff --git a/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeResult.java b/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeResult.java
deleted file mode 100644
index 9583270b..00000000
--- a/gora-geode/src/main/java/org/apache/gora/geode/query/GeodeResult.java
+++ /dev/null
@@ -1,85 +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.gora.geode.query;
-
-import org.apache.gora.geode.store.GeodeStore;
-import org.apache.gora.persistency.impl.PersistentBase;
-import org.apache.gora.query.Query;
-import org.apache.gora.query.impl.ResultBase;
-import org.apache.gora.store.DataStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.NavigableSet;
-
-/**
- * {@link GeodeResult} is the primary class
- * responsible for representing result set of a cache manipulation query
- * {@link org.apache.gora.geode.query.GeodeQuery}
- */
-public class GeodeResult<K, T extends PersistentBase> extends ResultBase<K, T> {
-
- private static final Logger LOG = LoggerFactory.getLogger(GeodeResult.class);
- private NavigableSet<K> cacheKeySet;
- private Iterator<K> iterator;
- private int current;
-
- public GeodeResult(DataStore<K, T> dataStore, Query<K, T> query) {
- super(dataStore, query);
- }
-
- public GeodeResult(DataStore<K, T> dataStore, Query<K, T> query, NavigableSet<K> cacheKeySet) {
- super(dataStore, query);
- this.cacheKeySet = cacheKeySet;
- this.iterator = cacheKeySet.iterator();
- this.current = 0;
- }
-
- public GeodeStore<K, T> getDataStore() {
- return (GeodeStore<K, T>) super.getDataStore();
- }
-
- @Override
- public float getProgress() throws IOException {
- if (cacheKeySet.size() == 0) {
- return 1;
- }
- return ((float) current / (float) cacheKeySet.size());
- }
-
- @Override
- protected boolean nextInner() throws IOException {
- if (!iterator.hasNext()) {
- return false;
- }
- key = iterator.next();
- LOG.info("Results set pointer is now moved to key {}.", key);
- persistent = dataStore.get(key);
- this.current++;
- return true;
- }
-
- @Override
- public int size() {
- int totalSize = cacheKeySet.size();
- int intLimit = (int) this.limit;
- return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize;
- }
-}
diff --git a/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStore.java b/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStore.java
deleted file mode 100644
index 97136c1e..00000000
--- a/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStore.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package org.apache.gora.geode.store;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.RegionFactory;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.gora.geode.query.GeodeQuery;
-import org.apache.gora.geode.query.GeodeResult;
-import org.apache.gora.persistency.impl.PersistentBase;
-import org.apache.gora.query.PartitionQuery;
-import org.apache.gora.query.Query;
-import org.apache.gora.query.Result;
-import org.apache.gora.query.impl.PartitionQueryImpl;
-import org.apache.gora.store.impl.DataStoreBase;
-import org.apache.gora.util.GoraException;
-
-import java.io.IOException;
-import java.util.NavigableSet;
-import java.util.Properties;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.concurrent.ConcurrentSkipListSet;
-
-import static org.apache.geode.cache.RegionShortcut.REPLICATE;
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_USERNAME;
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_SERVER_PORT;
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_SERVER_HOST;
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_PASSWORD;
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_REGION_SHORTCUT;
-import static org.apache.gora.geode.store.GeodeStoreParameters.PREFERRED_SCHEMA_NAME;
-
-
-public class GeodeStore<K, T extends PersistentBase> extends DataStoreBase<K, T> {
-
- private ClientCache clientCache;
- private Region<K, T> region;
- private Properties geodeProperties;
- private CacheFactory cacheFactory;
-
- @Override
- public void initialize(Class<K> keyClass, Class<T> persistentClass, Properties properties) throws GoraException {
- super.initialize(keyClass, persistentClass, properties);
- String geodeHostName = (String) properties.get(GEODE_SERVER_HOST);
- int portNumber = Integer.parseInt((String) properties.get(GEODE_SERVER_PORT));
- clientCache = new ClientCacheFactory().addPoolLocator(geodeHostName, portNumber).create();
- String userName = properties.getProperty(GEODE_USERNAME);
- String password = properties.getProperty(GEODE_PASSWORD);
- geodeProperties = properties;
-
- Properties clientProperties = clientCache.getDistributedSystem().getProperties();
- if (userName != null) {
- clientProperties.setProperty("security-username", userName);
- clientProperties.setProperty("security-password", password);
- } else throw new GoraException();
- cacheFactory = new CacheFactory(clientProperties);
- }
-
- @Override
- /*
- Schema Name can be assigned via Property file using @PREFERRED_SCHEMA_NAME, or else PersistentClass name is used as the default schema name.
- */
- public String getSchemaName() {
- String preferredSchemaName = properties.getProperty(PREFERRED_SCHEMA_NAME);
- if (preferredSchemaName == null) {
- return persistentClass.getSimpleName();
- }
- return preferredSchemaName;
- }
-
- @Override
- public void createSchema() throws GoraException {
- try {
- Cache cache = cacheFactory.create();
- String regionShortCut = geodeProperties.getProperty(GEODE_REGION_SHORTCUT);
- RegionFactory<K, T> regionFactory;
- if (regionShortCut != null) {
- regionFactory = cache.createRegionFactory(RegionShortcut.valueOf(regionShortCut));
- } else {
- regionFactory = cache.createRegionFactory(REPLICATE);
- }
- region = regionFactory.create(getSchemaName());
- } catch (Exception e) {
- throw new GoraException(e);
- }
- }
-
- @Override
- public void deleteSchema() {
- region.destroyRegion();
- }
-
- @Override
- public boolean schemaExists() {
- Properties properties = clientCache.getDistributedSystem().getProperties();
- CacheFactory factory = new CacheFactory(properties);
- Cache cache = factory.create();
- Region<K, T> rf = cache.getRegion(getSchemaName());
- return rf != null;
- }
-
- @Override
- public boolean exists(K key) {
- for (K existingKey : region.getInterestList()) {
- if (existingKey.equals(key)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public T get(K key, String[] fields) {
- return region.get(key);
- }
-
- @Override
- public void put(K key, T obj) {
- region.put(key, obj);
- }
-
- @Override
- public boolean delete(K key) {
- region.destroy(key);
- return true;
- }
-
- @Override
- public long deleteByQuery(Query<K, T> query) throws GoraException {
- try {
- long deletedRows = 0;
- Result<K, T> result = query.execute();
- while (result.next()) {
- if (delete(result.getKey())) {
- deletedRows++;
- }
- }
- LOG.info("Geode datastore deleted {} rows from Persistent datastore.", deletedRows);
- return deletedRows;
- } catch (Exception e) {
- throw new GoraException(e);
- }
- }
-
- @Override
- public Result<K, T> execute(Query<K, T> query) {
- K startKey = query.getStartKey();
- K endKey = query.getEndKey();
- NavigableSet<K> cacheEntrySubList = new ConcurrentSkipListSet<>();
- if (startKey != null && endKey != null) {
- boolean isInTheRegion = false;
- for (K key : region.keySet()) {
- if (key == startKey) {
- isInTheRegion = true;
- }
- if (isInTheRegion) {
- cacheEntrySubList.add(key);
- }
- if (key == endKey) {
- break;
- }
- }
- } else {
- // Empty
- cacheEntrySubList = Collections.emptyNavigableSet();
- }
- return new GeodeResult<>(this, query, cacheEntrySubList);
- }
-
-
- @Override
- public Query<K, T> newQuery() {
- GeodeQuery<K, T> query = new GeodeQuery<>(this);
- query.setFields(getFieldsToQuery(null));
- return query;
- }
-
- @Override
- public List<PartitionQuery<K, T>> getPartitions(Query<K, T> query) throws IOException {
- List<PartitionQuery<K, T>> partitions = new ArrayList<>();
- PartitionQueryImpl<K, T> partitionQuery = new PartitionQueryImpl<>(
- query);
- partitionQuery.setConf(this.getConf());
- partitions.add(partitionQuery);
- return partitions;
- }
-
- @Override
- public void flush() {
- LOG.info("Geode datastore flushed successfully.");
- }
-
- @Override
- public void close() {
-
- }
-}
diff --git a/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStoreParameters.java b/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStoreParameters.java
deleted file mode 100644
index 138bc299..00000000
--- a/gora-geode/src/main/java/org/apache/gora/geode/store/GeodeStoreParameters.java
+++ /dev/null
@@ -1,60 +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.gora.geode.store;
-
-/**
- * Configuration Properties.
- */
-public class GeodeStoreParameters {
-
- /**
- * Property pointing to geode server contact points.
- * string (multiple values with comma separated)
- */
- public static final String GEODE_SERVER_HOST = "gora.geode.server.hostname";
-
- /**
- * Property pointing to the port to use to connect to the geode hosts.
- * integer
- */
- public static final String GEODE_SERVER_PORT = "gora.geode.server.port";
-
- /**
- * Property pointing to the gora schemaName.
- * integer
- */
- public static final String PREFERRED_SCHEMA_NAME = "gora.geode.preferred.schemaName";
-
- /**
- * Property pointing to the geode region shortcut.
- * integer
- */
- public static final String GEODE_REGION_SHORTCUT = "gora.geode.region.shortcut";
-
- /**
- * Property pointing to the username to connect to the server.
- * string
- */
- public static final String GEODE_USERNAME = "gora.geode.username";
-
- /**
- * Property pointing to the password to connect to the server.
- * string
- */
- public static final String GEODE_PASSWORD = "gora.geode.password";
-
-}
diff --git a/gora-geode/src/test/conf/gora.properties b/gora-geode/src/test/conf/gora.properties
deleted file mode 100644
index 3e8e111a..00000000
--- a/gora-geode/src/test/conf/gora.properties
+++ /dev/null
@@ -1,18 +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.
-
-gora.datastore.default=org.apache.gora.geode.store.GeodeStore
-gora.datastore.geode.server=localhost
-gora.datastore.geode.port="gora.geode.server.port"
\ No newline at end of file
diff --git a/gora-geode/src/test/java/org/apache/gora/geode/GeodeStartupLogWaitStrategy.java b/gora-geode/src/test/java/org/apache/gora/geode/GeodeStartupLogWaitStrategy.java
deleted file mode 100644
index 67110ba1..00000000
--- a/gora-geode/src/test/java/org/apache/gora/geode/GeodeStartupLogWaitStrategy.java
+++ /dev/null
@@ -1,36 +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.gora.geode;
-
-import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
-
-
-/**
- * Log based Geode server startup wait strategy to sync server
- * startup to test suit startup.
- */
-public class GeodeStartupLogWaitStrategy extends LogMessageWaitStrategy {
-
- private static final String regEx = ".*Apache Geode has started. Time to relax..*";
-
- public GeodeStartupLogWaitStrategy() {
- withRegEx(regEx);
- }
-
-}
\ No newline at end of file
diff --git a/gora-geode/src/test/java/org/apache/gora/geode/GoraGeodeTestDriver.java b/gora-geode/src/test/java/org/apache/gora/geode/GoraGeodeTestDriver.java
deleted file mode 100644
index c11e5c51..00000000
--- a/gora-geode/src/test/java/org/apache/gora/geode/GoraGeodeTestDriver.java
+++ /dev/null
@@ -1,88 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.geode;
-
-import org.apache.gora.GoraTestDriver;
-
-import org.apache.gora.geode.store.GeodeStore;
-import org.apache.gora.geode.store.GeodeStoreParameters;
-import org.apache.gora.persistency.Persistent;
-import org.apache.gora.store.DataStore;
-import org.apache.gora.store.DataStoreFactory;
-import org.apache.gora.util.GoraException;
-import org.testcontainers.containers.GenericContainer;
-
-import java.util.Properties;
-
-import static org.apache.gora.geode.store.GeodeStoreParameters.GEODE_SERVER_PORT;
-
-/**
- * Helper class for third party tests using gora-geode backend.
- * @see GoraTestDriver for test specifics.
- * This driver is the base for all test cases that require an Geode server.
- * In this case we use docker container. A docker container is run before tests
- * and it is stopped after tests.
- *
- */
-public class GoraGeodeTestDriver extends GoraTestDriver {
-
- private final GenericContainer GeodeContainer;
- private Properties properties = DataStoreFactory.createProps();
-
- /**
- * Default constructor
- */
- public GoraGeodeTestDriver(GenericContainer GeodeContainer) {
- super(GeodeStore.class);
- this.GeodeContainer = GeodeContainer;
- }
-
- @Override
- public void setUpClass() {
- log.info("Setting up Geode Test Driver");
- properties.put(GeodeStoreParameters.GEODE_SERVER_HOST, GeodeContainer.getContainerIpAddress());
- properties.put(GEODE_SERVER_PORT, GeodeContainer.getMappedPort(10334).toString());
- }
-
- @Override
- public void tearDownClass() {
- log.info("Teardown Geode test driver");
- }
-
- /**
- * Instantiate a new {@link DataStore}. Uses 'null' schema.
- *
- * @param keyClass The key class.
- * @param persistentClass The value class.
- * @return A new store instance.
- * @throws GoraException
- */
- @Override
- public <K, T extends Persistent> DataStore<K, T> createDataStore(Class<K> keyClass, Class<T> persistentClass)
- throws GoraException {
-
- final DataStore<K, T> dataStore = DataStoreFactory
- .createDataStore((Class<? extends DataStore<K, T>>) dataStoreClass, keyClass, persistentClass, conf,
- properties);
- dataStores.add(dataStore);
- log.info("Datastore for {} was added.", persistentClass);
- return dataStore;
- }
-
-}
diff --git a/gora-geode/src/test/java/store/TestGeodeStore.java b/gora-geode/src/test/java/store/TestGeodeStore.java
deleted file mode 100644
index 421a7666..00000000
--- a/gora-geode/src/test/java/store/TestGeodeStore.java
+++ /dev/null
@@ -1,161 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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 store;
-
-
-
-import org.apache.avro.util.Utf8;
-import org.apache.gora.examples.WebPageDataCreator;
-import org.apache.gora.examples.generated.WebPage;
-import org.apache.gora.geode.GeodeStartupLogWaitStrategy;
-import org.apache.gora.geode.GoraGeodeTestDriver;
-import org.apache.gora.geode.query.GeodeResult;
-import org.apache.gora.query.Query;
-import org.apache.gora.store.DataStoreTestBase;
-import org.apache.gora.util.GoraException;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.testcontainers.containers.GenericContainer;
-
-
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.time.Duration;
-
-import static org.junit.Assert.*;
-
-/**
- * Tests extending {@link DataStoreTestBase}
- * which run the base JUnit test suite for Gora.
- */
-public class TestGeodeStore extends DataStoreTestBase {
-
- private static final String DOCKER_CONTAINER_NAME = "apachegeode/" +
- "" +
- "geode:1.15.0";
-
- /**
- * JUnit integration testing with Docker and Testcontainers
- */
- @ClassRule
- public static GenericContainer Geode_CONTAINER = new GenericContainer(DOCKER_CONTAINER_NAME)
- .withExposedPorts(10334)
- .waitingFor(new GeodeStartupLogWaitStrategy())
- .withStartupTimeout(Duration.ofSeconds(300));
-
-
- // void withCommand("tail","-f","/dev/null").start();
-
- // geode = new GenericContainer<>("apachegeode/geode:1.12.0");
-
-
- static {
- try {
- setTestDriver(new GoraGeodeTestDriver(Geode_CONTAINER));
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @Test
- public void testPutAndGet() throws GoraException {
- WebPage page = webPageStore.newPersistent();
-
- // Write webpage data
- page.setUrl(new Utf8("http://example.com"));
- byte[] contentBytes = "example content in example.com".getBytes(Charset.defaultCharset());
- ByteBuffer buff = ByteBuffer.wrap(contentBytes);
- page.setContent(buff);
- webPageStore.put("com.example/http", page);
- webPageStore.flush();
-
- WebPage storedPage = webPageStore.get("com.example/http");
-
- assertNotNull(storedPage);
- assertEquals(page.getUrl(), storedPage.getUrl());
- }
-
- @Test
- public void testCreateAndDeleteSchema() throws IOException {
- WebPage page = webPageStore.newPersistent();
-
- // Write webpage data
- page.setUrl(new Utf8("http://example.com"));
- webPageStore.put("com.example/http", page);
- webPageStore.flush();
-
- assertEquals("WebPage isn't created.", page.getUrl(), webPageStore.get("com.example/http").getUrl());
-
- webPageStore.deleteSchema();
-
- assertNull(webPageStore.get("com.example/http"));
- }
-
- @Test
- public void testGetSchemaName() throws IOException {
- assertEquals("WebPage", webPageStore.getSchemaName());
- assertEquals("Employee", employeeStore.getSchemaName());
- }
-
- @Test
- public void testExecute() throws IOException {
- WebPageDataCreator.createWebPageData(webPageStore);
-
- final Query<String, WebPage> query = webPageStore.newQuery();
-
- int limit = 5;
- query.setLimit(limit);
- GeodeResult<String, WebPage> result = (GeodeResult<String, WebPage>) webPageStore.execute(query);
- assertEquals(limit, result.size());
-
- limit = 10;
- query.setLimit(limit);
- result = (GeodeResult<String, WebPage>) webPageStore.execute(query);
- assertEquals(limit, result.size());
-
- }
-
- /**
- * By design, you cannot update a Geode document blindly, you can only attempt to update a specific revision of a document. FIXME
- */
- @Test
- @Ignore
- public void testUpdate() throws Exception {
- //By design, you cannot update a Geode document blindly, you can only attempt to update a specific revision of a document. FIXME
- }
-
- @Ignore("GeodeStore doesn't support 3 types union field yet")
- @Override
- public void testGet3UnionField() throws Exception {
- // GeodeStore doesn't support 3 types union field yet
- }
-
- @Ignore("Skip until GORA-66 is fixed: need better semantic for end/start keys")
- @Override
- public void testDeleteByQueryFields() throws IOException {
- // Skip until GORA-66 is fixed: need better semantic for end/start keys
- }
-
-}
diff --git a/pom.xml b/pom.xml
index ab2244ef..5dc91eac 100755
--- a/pom.xml
+++ b/pom.xml
@@ -780,7 +780,6 @@
<module>gora-arangodb</module>
<module>gora-rethinkdb</module>
<module>gora-elasticsearch</module>
- <module>gora-geode</module>
<module>gora-tutorial</module>
<module>gora-benchmark</module>
<module>sources-dist</module>
@@ -1640,13 +1639,6 @@
<version>2.0.10</version>
</dependency>
- <!-- Geode Dependencies -->
- <dependency>
- <groupId>org.apache.geode</groupId>
- <artifactId>geode-core</artifactId>
- <version>1.15.0</version>
- </dependency>
-
<!-- Amazon Dependencies -->
<dependency>
<groupId>com.amazonaws</groupId>