http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java deleted file mode 100644 index 0f514a4..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java +++ /dev/null @@ -1,187 +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.geode.modules.hibernate.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.ExecutorService; - -import org.hibernate.cache.CacheDataDescription; -import org.hibernate.cache.CacheException; -import org.hibernate.cache.EntityRegion; -import org.hibernate.cache.access.AccessType; -import org.hibernate.cache.access.EntityRegionAccessStrategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.apache.geode.cache.Region; -import org.apache.geode.distributed.DistributedSystem; -import org.apache.geode.internal.cache.LocalRegion; -import org.apache.geode.modules.hibernate.GemFireRegionFactory; -import org.apache.geode.modules.util.ModuleStatistics; - -public class GemFireEntityRegion extends GemFireBaseRegion implements EntityRegion { - - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final boolean USE_JTA = Boolean.getBoolean("gemfiremodules.useJTA"); - - /** - * keys for which interest has been registered already - */ - private ConcurrentMap<Object, Boolean> registeredKeys = new ConcurrentHashMap<Object, Boolean>(); - - /** - * map to store the entries that were pre-fetched when the underlying region has no local storage - */ - protected ConcurrentMap<Object, EntityWrapper> preFetchMap = new ConcurrentHashMap<Object, EntityWrapper>(); - - public GemFireEntityRegion(Region<Object, EntityWrapper> region, - boolean isClient, CacheDataDescription metadata, GemFireRegionFactory regionFactory) { - super(region, isClient, metadata, regionFactory); - } - - @Override - public boolean isTransactionAware() { - // there are no colocation guarantees while using hibernate - // so return false for a PartitionedRegion for now - if (USE_JTA) { - return true; - } - return false; - } - - @Override - public CacheDataDescription getCacheDataDescription() { - return this.metadata; - } - - @Override - public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType) - throws CacheException { - if (AccessType.READ_ONLY.equals(accessType)) { - log.info("creating read-only access for region: " + this.getName()); - return new ReadOnlyAccess(this); - } - else if (AccessType.NONSTRICT_READ_WRITE.equals(accessType)) { - log.info("creating nonstrict-read-write access for region: " - + this.getName()); - return new NonStrictReadWriteAccess(this); - } - else if (AccessType.READ_WRITE.equals(accessType)) { - log.info("creating read-write access for region: " - + this.getName()); - return new ReadWriteAccess(this); - } - else if (AccessType.TRANSACTIONAL.equals(accessType)) { - log.info("creating transactional access for region: " - + this.getName()); - return new TransactionalAccess(this); - } - throw new UnsupportedOperationException("Unknown access type: " - + accessType); - } - - /** - * Should this region should register interest in keys. - * @return true for client regions with storage - */ - public boolean isRegisterInterestRequired() { - return this.isClientRegion && this.region.getAttributes().getDataPolicy().withStorage(); - } - - /** - * register interest in this key, if not already registered - * @param key - */ - public void registerInterest(Object key) { - if (!this.registeredKeys.containsKey(key)) { - this.region.registerInterest(key); - this.registeredKeys.put(key, Boolean.TRUE); - log.debug("registered interest in key{}", key); - } - } - - public void registerInterest(Collection<?> list) { - // build a list of keys for which interest is not - // already registered - List<Object> interestList = new ArrayList<Object>(); - for (Object o : list) { - if (!this.registeredKeys.containsKey(o)) { - interestList.add(o); - } - } - // register interest in this list - this.region.registerInterest(interestList); - log.debug("registered interest in {} keys", interestList.size()); - } - - /** - * wraps the keys in {@link KeyWrapper} and calls getAll - * on the underlying GemFire region. When the underlying region - * is a proxy region, the fetched entries are stored in a local - * map. - * @param keys - */ - public void getAll(Collection<?> keys) { - Set<KeyWrapper> wrappedKeys = new HashSet<KeyWrapper>(); - for (Object o : keys) { - wrappedKeys.add(new KeyWrapper(o)); - } - if (isRegisterInterestRequired()) { - registerInterest(wrappedKeys); - } else { - Map<Object, EntityWrapper> retVal = this.region.getAll(wrappedKeys); - putInLocalMap(retVal); - } - } - - /** - * if the underlying gemfire region does not have local storage, put - * the pre-fetched entries in {@link #preFetchMap} - * @param map map of prefetched entries - */ - private void putInLocalMap(Map<Object, EntityWrapper> map) { - if (!this.region.getAttributes().getDataPolicy().withStorage()) { - // if the value is null, do not cache in preFetchMap - for (Entry<Object, EntityWrapper> e : map.entrySet()) { - if (e.getValue() != null) { - this.preFetchMap.put(e.getKey(), e.getValue()); - log.debug("putting key: {} value: {} in local map", e.getKey(), e.getValue()); - } - } - } - } - - /** - * If this key was pre-fetched, get the entity. - * @param key - * @return the prefetched entity - */ - public EntityWrapper get(Object key) { - return this.preFetchMap.remove(key); - } -} -
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireQueryResultsRegion.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireQueryResultsRegion.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireQueryResultsRegion.java deleted file mode 100644 index 28c9095..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireQueryResultsRegion.java +++ /dev/null @@ -1,113 +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.geode.modules.hibernate.internal; - -import java.util.Collections; -import java.util.Map; - -import org.hibernate.cache.CacheException; -import org.hibernate.cache.QueryResultsRegion; -import org.hibernate.cache.Timestamper; -import org.hibernate.cache.TimestampsRegion; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.apache.geode.cache.EntryNotFoundException; -import org.apache.geode.cache.Region; - -public class GemFireQueryResultsRegion implements QueryResultsRegion, TimestampsRegion { - - private final Region region; - - private Logger log = LoggerFactory.getLogger(getClass()); - - public GemFireQueryResultsRegion(Region region) { - this.region = region; - } - - @Override - public Object get(Object key) throws CacheException { - log.debug("get query results for {} ", key); - return this.region.get(key); - } - - @Override - public void put(Object key, Object value) throws CacheException { - log.debug("For key {} putting query results {} ", key, value); - this.region.put(key, value); - } - - @Override - public void evict(Object key) throws CacheException { - log.debug("removing query results for key {}", key); - this.region.remove(key); - } - - @Override - public void evictAll() throws CacheException { - log.debug("clearing the query cache"); - this.region.clear(); - } - - @Override - public String getName() { - return this.region.getName(); - } - - @Override - public void destroy() throws CacheException { - if (!this.region.isDestroyed()) { - this.region.destroyRegion(); - } - } - - @Override - public boolean contains(Object key) { - return this.region.containsKey(key); - } - - @Override - public long getSizeInMemory() { - return -1; - } - - @Override - public long getElementCountInMemory() { - return this.region.size(); - } - - @Override - public long getElementCountOnDisk() { - // TODO make this an overflow region - return -1; - } - - @Override - public Map toMap() { - return Collections.unmodifiableMap(this.region); - } - - @Override - public long nextTimestamp() { - return Timestamper.next(); - } - - @Override - public int getTimeout() { - return 60*1000; // all other cache providers have same value - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/KeyWrapper.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/KeyWrapper.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/KeyWrapper.java deleted file mode 100644 index dc8793f..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/KeyWrapper.java +++ /dev/null @@ -1,92 +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.geode.modules.hibernate.internal; - -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; -import java.io.Serializable; - -import org.hibernate.cache.CacheKey; - -import org.apache.geode.DataSerializable; -import org.apache.geode.DataSerializer; - -/** - * wraps {@link CacheKey}, and implements equals and - * hashCode. This is required for register interest - * operation/prefetching - * - */ -public class KeyWrapper implements DataSerializable { - - private Serializable key; - private String entityName; - - private static final String separator = "#"; - - public KeyWrapper() { - } - - public KeyWrapper(Object p_key) { - if (p_key instanceof String) { - String stringKey = (String)p_key; - this.key = stringKey.substring(stringKey.indexOf(separator)+1); - this.entityName = stringKey.substring(0, stringKey.indexOf(separator)); - } else { - CacheKey cacheKey = (CacheKey)p_key; - this.key = cacheKey.getKey(); - this.entityName = cacheKey.getEntityOrRoleName(); - } - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof KeyWrapper) { - KeyWrapper other = (KeyWrapper)obj; - if (this.key.toString().equals(other.key.toString()) - && this.entityName.equals(other.entityName)) { - return true; - } - } - return false; - } - - @Override - public int hashCode() { - return this.key.toString().hashCode() + this.entityName.hashCode(); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.entityName).append(separator).append(this.key); - return sb.toString(); - } - - @Override - public void toData(DataOutput out) throws IOException { - DataSerializer.writeObject(this.key, out); - out.writeUTF(this.entityName); - } - - @Override - public void fromData(DataInput in) throws IOException, ClassNotFoundException { - this.key = DataSerializer.readObject(in); - this.entityName = in.readUTF(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/NonStrictReadWriteAccess.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/NonStrictReadWriteAccess.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/NonStrictReadWriteAccess.java deleted file mode 100644 index d6e9968..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/NonStrictReadWriteAccess.java +++ /dev/null @@ -1,83 +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.geode.modules.hibernate.internal; - -import org.hibernate.cache.CacheException; -import org.hibernate.cache.access.SoftLock; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class NonStrictReadWriteAccess extends Access { - - private Logger log = LoggerFactory.getLogger(getClass()); - - public NonStrictReadWriteAccess(GemFireEntityRegion region) { - super(region); - } - - @Override - public SoftLock lockItem(Object key, Object version) throws CacheException { - log.debug("lock item called for key {}", key); - return null; - } - - @Override - public boolean afterUpdate(Object key, Object value, Object currentVersion, - Object previousVersion, SoftLock lock) throws CacheException { - log.debug("after update called for key: {} value: {}", key, value); - getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L)); - return true; - } - - @Override - public boolean update(Object key, Object value, Object currentVersion, - Object previousVersion) throws CacheException { - log.debug("updating key: {} value: {}", key, value); - getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L)); - return true; - } -// -// @Override -// public boolean insert(Object key, Object value, Object version) -// throws CacheException { -// log.debug("inserting key:{} value:{}", key, value); -// getGemFireRegion().put(key, new EntityWrapper(value, -1L)); -// return true; -// } -// -// @Override -// public boolean afterInsert(Object key, Object value, Object version) -// throws CacheException { -// log.debug("after insert called for key:{} value:{}", key, value); -// getGemFireRegion().put(key, new EntityWrapper(value, -1L)); -// return true; -// } -// - @Override - public boolean putFromLoad(Object key, Object value, long txTimestamp, - Object version) throws CacheException { - return putFromLoad(key, value, txTimestamp, version, true); - } - - @Override - public boolean putFromLoad(Object key, Object value, long txTimestamp, - Object version, boolean minimalPutOverride) throws CacheException { - log.debug("putting a new entry from load key:{} value:{}", key, value); - getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L)); - return true; - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadOnlyAccess.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadOnlyAccess.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadOnlyAccess.java deleted file mode 100644 index e99210f..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadOnlyAccess.java +++ /dev/null @@ -1,55 +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.geode.modules.hibernate.internal; - -import org.hibernate.cache.CacheException; -import org.hibernate.cache.access.SoftLock; - -public class ReadOnlyAccess extends Access { - - public ReadOnlyAccess(GemFireEntityRegion region) { - super(region); - } - - @Override - public boolean insert(Object key, Object value, Object version) - throws CacheException { - throw new UnsupportedOperationException( - "insert not supported on read only access"); - } - - @Override - public boolean update(Object key, Object value, Object currentVersion, - Object previousVersion) throws CacheException { - throw new UnsupportedOperationException( - "update not supported on read only access"); - } - - @Override - public boolean afterInsert(Object key, Object value, Object version) - throws CacheException { - throw new UnsupportedOperationException( - "insert not supported on read only access"); - } - - @Override - public boolean afterUpdate(Object key, Object value, Object currentVersion, - Object previousVersion, SoftLock lock) throws CacheException { - throw new UnsupportedOperationException( - "update not supported on read only access"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadWriteAccess.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadWriteAccess.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadWriteAccess.java deleted file mode 100644 index 5597c97..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/ReadWriteAccess.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.geode.modules.hibernate.internal; - -import org.hibernate.cache.CacheException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ReadWriteAccess extends Access { - - private Logger log = LoggerFactory.getLogger(getClass()); - - public ReadWriteAccess(GemFireEntityRegion region) { - super(region); - } - - @Override - public boolean update(Object key, Object value, Object currentVersion, - Object previousVersion) throws CacheException { - return super.update(key, value, currentVersion, previousVersion); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/RegionFactoryDelegate.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/RegionFactoryDelegate.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/RegionFactoryDelegate.java deleted file mode 100644 index 1891528..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/RegionFactoryDelegate.java +++ /dev/null @@ -1,146 +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.geode.modules.hibernate.internal; - -import org.apache.geode.cache.*; -import org.apache.geode.cache.client.ClientRegionShortcut; -import org.apache.geode.cache.execute.FunctionService; -import org.apache.geode.distributed.internal.DistributionConfig; -import org.apache.geode.internal.cache.GemFireCacheImpl; -import org.apache.geode.modules.hibernate.GemFireCacheProvider; -import org.apache.geode.modules.util.BootstrappingFunction; -import org.apache.geode.modules.util.CreateRegionFunction; -import org.apache.geode.modules.util.RegionConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Iterator; -import java.util.Properties; - -import static org.apache.geode.distributed.ConfigurationProperties.*; - -public class RegionFactoryDelegate { - - private static final String DEFAULT_REGION_TYPE = RegionShortcut.REPLICATE_HEAP_LRU.name(); - - private static final String CLIENT_DEFAULT_REGION_TYPE = ClientRegionShortcut.PROXY.name(); - - protected final Properties gemfireProperties; - protected final Properties regionProperties; - - protected Logger log = LoggerFactory.getLogger(getClass()); - - private Cache cache; - - public RegionFactoryDelegate(Properties gemfireProperties, Properties regionProperties) { - this.gemfireProperties = gemfireProperties; - this.regionProperties = regionProperties; - } - - public GemFireCache startCache() { - log.info("Creating a GemFire cache"); - checkExistingCache(); - cache = new CacheFactory(gemfireProperties).create(); - log.debug("GemFire cache creation completed"); - FunctionService.onMembers(this.cache.getDistributedSystem()).execute(new BootstrappingFunction()).getResult(); - FunctionService.registerFunction(new CreateRegionFunction(cache)); - return cache; - } - - /** - * When hibernate module is running within servlet container, we should - * check if http module is being used and make sure that we use - * same cache-xml and log-file properties. - */ - protected void checkExistingCache() { - Cache existingCache = GemFireCacheImpl.getInstance(); - if (existingCache == null) { - return; - } - Properties existingProps = existingCache.getDistributedSystem().getProperties(); - String cacheXML = existingProps.getProperty(CACHE_XML_FILE); - String logFile = existingProps.getProperty(LOG_FILE, ""); - this.gemfireProperties.setProperty(CACHE_XML_FILE, cacheXML); - this.gemfireProperties.setProperty(LOG_FILE, logFile); - log.info("Existing GemFire cache detected. Using same "+CACHE_XML_FILE+":"+cacheXML+ - " and "+LOG_FILE+":"+logFile+" as existing cache"); - } - - public Region<Object, EntityWrapper> createRegion(String regionName) { - Region<Object, EntityWrapper> r = cache.getRegion(regionName); - if (r != null) { - // for the peer-to-peer case, for now we assume that - // cache.xml will be the same for all peers - // TODO validate regions without this assumption - return r; - } - String regionType = getRegionType(regionName); - boolean isLocalRegion = regionType.contains("LOCAL") ? true : false; - RegionConfiguration regionConfig = new RegionConfiguration(); - regionConfig.setRegionName(regionName); - regionConfig.setRegionAttributesId(regionType); - regionConfig.setCacheWriterName(EntityRegionWriter.class.getCanonicalName()); - org.apache.geode.cache.RegionFactory<Object, EntityWrapper> rFactory = this.cache - .createRegionFactory(RegionShortcut.valueOf(regionType)); - rFactory.setCacheWriter(new EntityRegionWriter()); - if (isLocalRegion) { - rFactory.setDataPolicy(DataPolicy.REPLICATE); - } - r = rFactory.create(regionName); - // create same region on peers - if (!isLocalRegion) { - FunctionService.onMembers(this.cache.getDistributedSystem()) - .withArgs(regionConfig).execute(CreateRegionFunction.ID).getResult(); - } - return r; - } - - /** - * returns the type of region to create by consulting the properties specified - * in hibernate.cfg.xml - * - * @see #createRegion(String) - * @param regionName - * @return string representation of {@link RegionShortcut} - * @see GemFireCacheProvider - */ - protected String getRegionType(String regionName) { - String rType = getOverridenRegionType(regionName); - if (rType != null) { - return rType.toUpperCase(); - } - rType = regionProperties - .getProperty(DistributionConfig.GEMFIRE_PREFIX + "default-region-attributes-id"); - if (rType == null) { - rType = DEFAULT_REGION_TYPE; - } - return rType.toUpperCase(); - } - - private String getOverridenRegionType(String regionName) { - String rType = null; - Iterator<Object> it = regionProperties.keySet().iterator(); - while (it.hasNext()) { - String current = (String)it.next(); - if (current.contains(regionName)) { - rType = regionProperties.getProperty(current); - break; - } - } - return rType; - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/TransactionalAccess.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/TransactionalAccess.java b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/TransactionalAccess.java deleted file mode 100644 index c8ec670..0000000 --- a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/TransactionalAccess.java +++ /dev/null @@ -1,25 +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.geode.modules.hibernate.internal; - -public class TransactionalAccess extends Access { - - public TransactionalAccess(GemFireEntityRegion region) { - super(region); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Event.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Event.java b/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Event.java deleted file mode 100644 index 39eec22..0000000 --- a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Event.java +++ /dev/null @@ -1,67 +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.geode.modules; - -import java.util.Date; - -public class Event { - private Long id; - - private String title; - private Date date; - private int i; - - public Event() {} - - public Long getId() { - return id; - } - - private void setId(Long id) { - this.id = id; - } - - public Date getDate() { - return date; - } - - public Integer getVersion() { - return i; - } - - public void setVersion(int i) { - this.i = i; - } - - public void setDate(Date date) { - this.date = date; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - @Override - public String toString() { - StringBuilder b = new StringBuilder(); - b.append("Event:id:"+id+" title:"+title+" date:"+date); - return b.toString(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/HibernateJUnitTest.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/HibernateJUnitTest.java b/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/HibernateJUnitTest.java deleted file mode 100644 index a9d6c64..0000000 --- a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/HibernateJUnitTest.java +++ /dev/null @@ -1,416 +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.geode.modules; - -import org.apache.geode.cache.Region; -import org.apache.geode.cache.Region.Entry; -import org.apache.geode.distributed.internal.DistributionConfig; -import org.apache.geode.internal.cache.GemFireCacheImpl; -import org.apache.geode.modules.Owner.Status; -import org.apache.geode.test.junit.categories.IntegrationTest; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.cfg.AnnotationConfiguration; -import org.hibernate.cfg.Configuration; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import static org.apache.geode.distributed.ConfigurationProperties.*; -import static org.junit.Assert.assertEquals; - -@Category(IntegrationTest.class) -public class HibernateJUnitTest { - - private Logger log = LoggerFactory.getLogger(getClass()); - - //private static final String jdbcURL = "jdbc:hsqldb:hsql://localhost/test"; - private static final String jdbcURL = "jdbc:hsqldb:mem:test"; - - static File tmpDir; - - static String gemfireLog; - - @Before - public void setUp() throws Exception { - // Create a per-user scratch directory - tmpDir = new File(System.getProperty("java.io.tmpdir"), - "gemfire_modules-" + System.getProperty("user.name")); - tmpDir.mkdirs(); - tmpDir.deleteOnExit(); - - gemfireLog = tmpDir.getPath() + - System.getProperty("file.separator") + "gemfire_modules.log"; - } - - public static SessionFactory getSessionFactory(Properties overrideProps) { - System.setProperty(DistributionConfig.GEMFIRE_PREFIX + "home", "GEMFIREHOME"); - Configuration cfg = new Configuration(); - cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); - cfg.setProperty("hibernate.connection.driver_class", - "org.hsqldb.jdbcDriver"); - // cfg.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:test"); - cfg.setProperty("hibernate.connection.url", jdbcURL); - cfg.setProperty("hibernate.connection.username", "sa"); - cfg.setProperty("hibernate.connection.password", ""); - cfg.setProperty("hibernate.connection.pool_size", "1"); - cfg.setProperty("hibernate.connection.autocommit", "true"); - cfg.setProperty("hibernate.hbm2ddl.auto", "update"); - - cfg.setProperty("hibernate.cache.region.factory_class", - "org.apache.geode.modules.hibernate.GemFireRegionFactory"); - cfg.setProperty("hibernate.show_sql", "true"); - cfg.setProperty("hibernate.cache.use_query_cache", "true"); - //cfg.setProperty("gemfire.mcast-port", AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS)+""); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + MCAST_PORT, "0"); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + STATISTIC_SAMPLING_ENABLED, "true"); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + LOG_FILE, gemfireLog); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + "writable-working-dir", tmpDir.getPath()); - //cfg.setProperty("gemfire.statistic-archive-file", "plugin-stats-file.gfs"); - //cfg.setProperty("gemfire.default-client-region-attributes-id", "CACHING_PROXY"); - //cfg.setProperty("gemfire.cache-topology", "client-server"); - //cfg.setProperty("gemfire.locators", "localhost[5432]"); - //cfg.setProperty("gemfire.log-level", "fine"); - // cfg.setProperty("", ""); - cfg.addClass(Person.class); - cfg.addClass(Event.class); - if (overrideProps != null) { - Iterator it = overrideProps.keySet().iterator(); - while (it.hasNext()) { - String key = (String) it.next(); - cfg.setProperty(key, overrideProps.getProperty(key)); - } - } - return cfg.buildSessionFactory(); - } - - @Test - public void testpreload() { - log.info("SWAP:creating session factory In hibernateTestCase"); - - Session session = getSessionFactory(null).openSession(); - log.info("SWAP:session opened"); - session.beginTransaction(); - Event theEvent = new Event(); - theEvent.setTitle("title"); - theEvent.setDate(new Date()); - session.save(theEvent); - Long id = theEvent.getId(); - session.getTransaction().commit(); - session.beginTransaction(); - Event ev = (Event) session.get(Event.class, id); - log.info("SWAP:load complete: " + ev); - session.getTransaction().commit(); - } - - @Test - public void testSomething() throws Exception { - java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL); - log.info("SWAP:creating session factory In hibernateTestCase"); - - Session session = getSessionFactory(null).openSession(); - log.info("SWAP:session opened"); - // session.setFlushMode(FlushMode.COMMIT); - session.beginTransaction(); - Event theEvent = new Event(); - theEvent.setTitle("title"); - theEvent.setDate(new Date()); - //session.save(theEvent); - session.persist(theEvent); - Long id = theEvent.getId(); - session.getTransaction().commit(); - log.info("commit complete...doing load"); - session.beginTransaction(); - Event ev = (Event) session.load(Event.class, id); - log.info("load complete: " + ev); - log.trace("SWAP"); - ev.setTitle("newTitle"); - session.save(ev); - log.info("commit"); - session.getTransaction().commit(); - log.info("save complete " + ev); - - session.beginTransaction(); - ev = (Event) session.load(Event.class, id); - log.info("load complete: " + ev); - ev.setTitle("newTitle2"); - session.save(ev); - log.info("commit"); - session.getTransaction().commit(); - log.info("save complete " + ev); - - ev = (Event) session.load(Event.class, id); - log.info("second load " + ev); - session.flush(); - session.close(); - log.info("flush complete session:" + session); - - for (int i = 0; i < 5; i++) { - session = getSessionFactory(null).openSession(); - log.info("doing get " + id); - // ev = (Event) session.load(Event.class, id); - ev = (Event) session.get(Event.class, id); - log.info("third load " + ev); - } - printExistingDB(); - Iterator it = GemFireCacheImpl.getInstance().rootRegions().iterator(); - while (it.hasNext()) { - Region r = (Region) it.next(); - System.out.println("Region:" + r); - Iterator enIt = r.entrySet().iterator(); - while (enIt.hasNext()) { - Region.Entry re = (Entry) enIt.next(); - System.out.println("key:" + re.getKey() + " value:" + re.getValue()); - } - } - Thread.sleep(3000); - //System.in.read(); - // try direct data - - } - - @Ignore - @Test - public void testInvalidation() { - Session s = getSessionFactory(null).openSession(); - } - - static Long personId; - - @Test - public void testRelationship() throws Exception { - //java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL); - Properties props = new Properties(); - props.put(DistributionConfig.GEMFIRE_PREFIX + "topology", "client-server"); - Session session = getSessionFactory(null).openSession(); - session.beginTransaction(); - - Person thePerson = new Person(); - thePerson.setFirstname("foo"); - thePerson.setLastname("bar"); - thePerson.setAge(1); - thePerson.setId(99L); - session.save(thePerson); - personId = thePerson.getId(); - log.info("person saved"); - - Event theEvent = new Event(); - theEvent.setTitle("title"); - theEvent.setDate(new Date()); - session.save(theEvent); - Long eventId = theEvent.getId(); - log.info("event saved"); - - Event theEvent2 = new Event(); - theEvent2.setTitle("title2"); - theEvent2.setDate(new Date()); - session.save(theEvent2); - Long eventId2 = theEvent2.getId(); - log.info("event2 saved"); - session.getTransaction().commit(); - - session.beginTransaction(); - Person aPerson = (Person) session.load(Person.class, personId); - Event anEvent = (Event) session.load(Event.class, eventId); - Event anEvent2 = (Event) session.load(Event.class, eventId2); - log.info("adding event to person"); - aPerson.getE().add(anEvent); - aPerson.getE().add(anEvent2); - log.info("calling commit"); - - session.getTransaction().commit(); - log.info("commit complete"); - session.close(); - log.info("opening new session"); - session = getSessionFactory(null).openSession(); - log.info("SWAP:loading person"); - aPerson = (Person) session.load(Person.class, personId); - log.info("loading events"); - Iterator<Event> e = aPerson.getE().iterator(); - while (e.hasNext()) { - e.next(); - } - session.close(); - log.info("opening new session"); - session = getSessionFactory(null).openSession(); - log.info("SWAP:loading person"); - aPerson = (Person) session.load(Person.class, personId); - log.info("loading events"); - e = aPerson.getE().iterator(); - while (e.hasNext()) { - e.next(); - } - - log.info(aPerson.getE() + ""); - session.close(); - //System.in.read(); - // log.info("opening third session"); - // session = getSessionFactory().openSession(); - // log.info("loading person"); - // aPerson = (Person)session.load(Person.class, personId); - // log.info("loading events"); - // log.info(aPerson.getEvents()+""); - } - - @Ignore - @Test - public void testQueryCache() throws Exception { - Session session = getSessionFactory(null).openSession(); - Query q = session.createQuery("from Event"); - q.setCacheable(true); - List l = q.list(); - log.info("list:" + l); - // log.info("Sleeping for 10 seconds"); - // Thread.sleep(10000); - l = q.list(); - log.info("list2:" + l); - log.info("updating an event"); - session.beginTransaction(); - Event e = (Event) l.get(0); - e.setDate(new Date()); - session.saveOrUpdate(e); - session.getTransaction().commit(); - l = q.list(); - log.info("list3:" + l); - } - - @Test - public void testInsert() { - Session session = getSessionFactory(null).openSession(); - Region r = GemFireCacheImpl.getExisting().getRegion(Person.class.getCanonicalName()); - int initSize = r.size(); - session.beginTransaction(); - log.info("SWAP: Saving Person"); - Person p = new Person(); - p.setId(10L); - p.setFirstname("foo"); - p.setLastname("bar"); - session.saveOrUpdate("Person", p); - session.getTransaction().commit(); - assertEquals(1, session.getStatistics().getEntityCount()); - assertEquals(initSize + 1, r.size()); - - session.beginTransaction(); - p.setAge(1); - session.saveOrUpdate(p); - session.getTransaction().commit(); - assertEquals(1, session.getStatistics().getEntityCount()); - } - - @Test - public void testNormalRegion() { - Properties props = new Properties(); - props.setProperty(DistributionConfig.GEMFIRE_PREFIX + "default-region-attributes-id", "LOCAL"); - Session session = getSessionFactory(props).openSession(); - session.beginTransaction(); - Event theEvent = new Event(); - theEvent.setTitle("title"); - theEvent.setDate(new Date()); - session.save(theEvent); - Long id = theEvent.getId(); - session.getTransaction().commit(); - session.beginTransaction(); - Event ev = (Event) session.load(Event.class, id); - ev.setTitle("newTitle"); - session.save(ev); - session.getTransaction().commit(); - } - - private void printExistingDB() throws SQLException { - try { - Class.forName("org.hsqldb.jdbc.JDBCDriver"); - } catch (Exception e) { - System.err.println("ERROR: failed to load HSQLDB JDBC driver."); - e.printStackTrace(); - return; - } - - Connection c = DriverManager.getConnection(jdbcURL, "SA", ""); - log.info("issuing query..."); - ResultSet rs = c.createStatement().executeQuery("select * from events"); - int col = rs.getMetaData().getColumnCount(); - while (rs.next()) { - StringBuilder b = new StringBuilder(); - for (int i = 1; i <= col; i++) { - b.append(" col:" + i + ":" + rs.getString(i)); - } - log.info("Query result:" + b.toString()); - } - } - - @Test - public void testEnum() { - AnnotationConfiguration cfg = new AnnotationConfiguration(); - cfg.addAnnotatedClass(Owner.class); - cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); - cfg.setProperty("hibernate.connection.driver_class", - "org.hsqldb.jdbcDriver"); - cfg.setProperty("hibernate.connection.url", jdbcURL); - cfg.setProperty("hibernate.connection.username", "sa"); - cfg.setProperty("hibernate.connection.password", ""); - cfg.setProperty("hibernate.connection.pool_size", "1"); - cfg.setProperty("hibernate.connection.autocommit", "true"); - cfg.setProperty("hibernate.hbm2ddl.auto", "update"); - - cfg.setProperty("hibernate.cache.region.factory_class", - "org.apache.geode.modules.hibernate.GemFireRegionFactory"); - cfg.setProperty("hibernate.show_sql", "true"); - cfg.setProperty("hibernate.cache.use_query_cache", "true"); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + STATISTIC_SAMPLING_ENABLED, "true"); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + LOG_FILE, gemfireLog); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + "writable-working-dir", tmpDir.getPath()); - cfg.setProperty(DistributionConfig.GEMFIRE_PREFIX + MCAST_PORT, "0"); - //cfg.setProperty("gemfire.cache-topology", "client-server"); - - SessionFactory sf = cfg.buildSessionFactory(); - Session session = sf.openSession(); - session.beginTransaction(); - Owner o = new Owner(); - o.setAddress("addr"); - o.setCity("pdx"); - o.setStatus(Status.PREMIUM); - session.save(o); - long id = o.getId(); - log.info("testEnum:commiting tx"); - session.getTransaction().commit(); - session.close(); - - session = sf.openSession(); - Owner o1 = (Owner) session.load(Owner.class, id); - log.info("loaded:" + o); - assertEquals(o.getAddress(), o1.getAddress()); - assertEquals(o.getCity(), o1.getCity()); - assertEquals(o.getStatus(), o1.getStatus()); - o1.setAddress("address2"); - session.save(o1); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Owner.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Owner.java b/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Owner.java deleted file mode 100644 index 772f131..0000000 --- a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Owner.java +++ /dev/null @@ -1,185 +0,0 @@ -/* -* Copyright 2002-2013 the original author or authors. -* -* 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.apache.geode.modules; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.persistence.Column; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -import org.hibernate.annotations.Entity; - - -/** - * Simple JavaBean domain object representing an owner. - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - */ -@javax.persistence.Entity -@Entity -public class Owner { - private static final long serialVersionUID = 4315791692556052565L; - - @Column(name="address") - private String address; - - private String city; - - private String telephone; - -// private Set<Pet> pets; - @Id - @GeneratedValue - private Long id; - - private long versionNum = -1; - - public enum Status { - NORMAL, PREMIUM - }; - - @Enumerated - private Status status = Status.NORMAL; - - private void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public String getAddress() { - return this.address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getCity() { - return this.city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getTelephone() { - return this.telephone; - } - - public void setTelephone(String telephone) { - this.telephone = telephone; - } - - public long getVersionNum() { - return versionNum; - } - - public void setVersionNum(long versionNum) { - this.versionNum = versionNum; - } - - public Status getStatus() { - return this.status; - } - - public void setStatus(Status state) { - if (state != null) { - this.status = state; - } - } - -// protected void setPetsInternal(Set<Pet> pets) { -// this.pets = pets; -// } -// -// protected Set<Pet> getPetsInternal() { -// if (this.pets == null) { -// this.pets = new HashSet<Pet>(); -// } -// return this.pets; -// } -// -// public List<Pet> getPets() { -// List<Pet> sortedPets = new ArrayList<Pet>(getPetsInternal()); -// PropertyComparator.sort(sortedPets, new MutableSortDefinition("name", -// true, true)); -// return Collections.unmodifiableList(sortedPets); -// } -// -// public void addPet(Pet pet) { -// getPetsInternal().add(pet); -// pet.setOwner(this); -// } -// -// /** -// * Return the Pet with the given name, or null if none found for this Owner. -// * -// * @param name -// * to test -// * @return true if pet name is already in use -// */ -// public Pet getPet(String name) { -// return getPet(name, false); -// } -// -// /** -// * Return the Pet with the given name, or null if none found for this Owner. -// * -// * @param name -// * to test -// * @return true if pet name is already in use -// */ -// public Pet getPet(String name, boolean ignoreNew) { -// name = name.toLowerCase(); -// for (Pet pet : getPetsInternal()) { -// if (!ignoreNew || !pet.isNew()) { -// String compName = pet.getName(); -// compName = compName.toLowerCase(); -// if (compName.equals(name)) { -// return pet; -// } -// } -// } -// return null; -// } -// -// @Override -// public String toString() { -// return new ToStringCreator(this).append("id", this.getId()) -// .append("new", this.isNew()) -// .append("lastName", this.getLastName()) -// .append("firstName", this.getFirstName()) -// .append("address", this.address).append("city", this.city) -// .append("telephone", this.telephone) -// .append("version", this.versionNum) -// .append("status", this.status) -// -// .toString(); -// } -} - http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Person.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Person.java b/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Person.java deleted file mode 100644 index c98bb81..0000000 --- a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/Person.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.geode.modules; - -import java.util.HashSet; -import java.util.Set; - -public class Person { - private Long id; - private int age; - private String firstname; - private String lastname; - - private Set<Event> e = new HashSet<Event>(); - - public Person() {} - - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public void setAge(int age) { - this.age = age; - } - - public int getAge() { - return age; - } - - public void setFirstname(String firstname) { - this.firstname = firstname; - } - - public String getFirstname() { - return firstname; - } - - public void setLastname(String lastname) { - this.lastname = lastname; - } - - public String getLastname() { - return lastname; - } - - public void setE(Set<Event> events) { - this.e = events; - } - - public Set<Event> getE() { - return e; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/SecondVMTest.java ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/SecondVMTest.java b/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/SecondVMTest.java deleted file mode 100644 index cdc8e07..0000000 --- a/extensions/geode-modules-hibernate/src/test/java/org/apache/geode/modules/SecondVMTest.java +++ /dev/null @@ -1,95 +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.geode.modules; - -import static org.apache.geode.distributed.ConfigurationProperties.*; - -import java.io.IOException; -import java.util.Iterator; -import java.util.Properties; -import java.util.logging.Level; - -import org.hibernate.Session; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.apache.geode.cache.Cache; -import org.apache.geode.cache.CacheFactory; -import org.apache.geode.cache.GemFireCache; -import org.apache.geode.cache.Region; -import org.apache.geode.cache.Region.Entry; -import org.apache.geode.internal.cache.GemFireCacheImpl; -import org.apache.geode.test.junit.categories.IntegrationTest; - -@Category(IntegrationTest.class) -@Ignore("Can this test be deleted?") -public class SecondVMTest { - - private Logger log = LoggerFactory.getLogger(getClass()); - - @Ignore - @Test - public void testStartEmptyVM() throws IOException { - Properties gemfireProperties = new Properties(); - gemfireProperties.setProperty(MCAST_PORT, "5555"); - gemfireProperties.setProperty(LOG_LEVEL, "fine"); - Cache cache = new CacheFactory(gemfireProperties).create(); - System.in.read(); - Iterator it = cache.rootRegions().iterator(); - while (it.hasNext()) { - Region r = (Region)it.next(); - System.out.println("Region:"+r); - Iterator enIt = r.entrySet().iterator(); - while (enIt.hasNext()) { - Region.Entry re = (Entry)enIt.next(); - System.out.println("key:"+re.getKey()+" value:"+re.getValue()); - } - } - } - - @Ignore - @Test - public void testStartVM() throws Exception { - java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL); - Session session = HibernateJUnitTest.getSessionFactory(null).openSession(); - log.info("SWAP:new session open"); - long id = 1; - log.info("loading new person:"+(id)); - GemFireCache cache = GemFireCacheImpl.getInstance(); - Iterator<Region<?, ?>> rSet = cache.rootRegions().iterator(); - while (rSet.hasNext()) { - Region<?, ?> r = rSet.next(); - log.info("SWAP:Region "+r); - Iterator<?> keySet = r.keySet().iterator(); - while (keySet.hasNext()) { - log.info("key:"+keySet.next()); - } - } - log.info("loading new person:"+(id)); - session.beginTransaction(); - Person p = (Person)session.load(Person.class, id); - p.setFirstname("SecondVMfirstname"+id); - log.info("loading events"); - log.info(p.getE()+""); - session.getTransaction().commit(); - //System.in.read(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/resources/log4j.properties b/extensions/geode-modules-hibernate/src/test/resources/log4j.properties deleted file mode 100644 index c136990..0000000 --- a/extensions/geode-modules-hibernate/src/test/resources/log4j.properties +++ /dev/null @@ -1,16 +0,0 @@ -# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml! -# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J. -#log4j.rootLogger=DEBUG, stdout, logfile -log4j.rootLogger=DEBUG, stdout - -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n - -#log4j.appender.logfile=org.apache.log4j.RollingFileAppender -#log4j.appender.logfile.MaxFileSize=512KB -## Keep three backup files. -#log4j.appender.logfile.MaxBackupIndex=3 -## Pattern to output: date priority [category] - message -#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout -#log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Event.hbm.xml ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Event.hbm.xml b/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Event.hbm.xml deleted file mode 100644 index 2473641..0000000 --- a/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Event.hbm.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.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. ---> -<!DOCTYPE hibernate-mapping PUBLIC - "-//Hibernate/Hibernate Mapping DTD 3.0//EN" - "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> - -<hibernate-mapping package="org.apache.geode.modules"> - <class name="Event" table="EVENTS"> - <cache usage="read-write"/> - <id name="id" column="EVENT_ID"> - <generator class="native"/> - </id> - <version name="version"/> - <property name="date" type="timestamp" column="EVENT_DATE"/> - <property name="title"/> - </class> -</hibernate-mapping> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Person.hbm.xml ---------------------------------------------------------------------- diff --git a/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Person.hbm.xml b/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Person.hbm.xml deleted file mode 100644 index 2105b1d..0000000 --- a/extensions/geode-modules-hibernate/src/test/resources/org/apache/geode/modules/Person.hbm.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.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. ---> -<!DOCTYPE hibernate-mapping PUBLIC - "-//Hibernate/Hibernate Mapping DTD 3.0//EN" - "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> - -<hibernate-mapping package="org.apache.geode.modules"> - <class name="Person" table="PERSON"> - <cache usage="read-write"/> - <id name="id" column="PERSON_ID"> - </id> - <property name="age"/> - <property name="firstname"/> - <property name="lastname"/> - <set name="e" table="PERSON_EVENT"> - <cache usage="read-write"/> - <key column="PERSON_ID"/> - <many-to-many column="EVENT_ID" class="Event"/> - </set> - </class> -</hibernate-mapping> http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/gradle/sonar.gradle ---------------------------------------------------------------------- diff --git a/gradle/sonar.gradle b/gradle/sonar.gradle index 33140d3..45bb772 100644 --- a/gradle/sonar.gradle +++ b/gradle/sonar.gradle @@ -42,12 +42,6 @@ project("extensions/geode-modules-assembly") { } } -project("extensions/geode-modules-hibernate") { - sonarqube { - skipProject = true - } -} - project("extensions/geode-modules-session") { sonarqube { skipProject = true http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/38aa36f4/settings.gradle ---------------------------------------------------------------------- diff --git a/settings.gradle b/settings.gradle index 0b7002b..5aaa17a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -32,7 +32,6 @@ include 'geode-cq' include 'extensions/geode-modules' include 'extensions/geode-modules-tomcat7' include 'extensions/geode-modules-tomcat8' -include 'extensions/geode-modules-hibernate' include 'extensions/geode-modules-session-internal' include 'extensions/geode-modules-session' include 'extensions/geode-modules-assembly'