You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/03/15 01:24:27 UTC
[44/44] incubator-geode git commit: Merge remote-tracking branch
'origin/develop' into feature/GEODE-949-2
Merge remote-tracking branch 'origin/develop' into feature/GEODE-949-2
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/8e0693a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/8e0693a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/8e0693a8
Branch: refs/heads/feature/GEODE-949-2
Commit: 8e0693a8b156d8ebffee634096e0a8e67d023211
Parents: 6e0c09f c5d8ea7
Author: Kirk Lund <kl...@apache.org>
Authored: Mon Mar 14 17:23:22 2016 -0700
Committer: Kirk Lund <kl...@apache.org>
Committed: Mon Mar 14 17:23:22 2016 -0700
----------------------------------------------------------------------
README.md | 16 +-
extensions/geode-modules-assembly/build.gradle | 10 +-
geode-assembly/build.gradle | 27 +-
.../LauncherLifecycleCommandsDUnitTest.java | 10 +-
geode-core/build.gradle | 3 +-
.../com/gemstone/gemfire/DataSerializable.java | 2 +-
.../internal/doc-files/config-hierarchy.fig | 156 -
.../admin/internal/doc-files/health-classes.fig | 233 --
.../admin/internal/doc-files/health-classes.gif | Bin 8973 -> 0 bytes
.../gemfire/admin/internal/package.html | 4 +-
.../client/doc-files/example-client-cache.xml | 46 -
.../gemfire/cache/client/internal/Endpoint.java | 2 +-
.../internal/PdxRegistryRecoveryListener.java | 6 +-
.../gemfire/cache/client/internal/PoolImpl.java | 5 +-
.../gemfire/cache/client/internal/PutAllOp.java | 8 +-
.../gemfire/cache/client/internal/PutOp.java | 15 +-
.../doc-files/ConnectionManagerImpl.dia | Bin 2034 -> 0 bytes
.../doc-files/ConnectionManagerImpl.png | Bin 11825 -> 0 bytes
.../client/internal/doc-files/PoolImpl.dia | Bin 3083 -> 0 bytes
.../internal/doc-files/QueueManagerImpl.dia | Bin 2180 -> 0 bytes
.../internal/doc-files/QueueManagerImpl.png | Bin 15075 -> 0 bytes
.../doc-files/client_static_diagram.png | Bin 29430 -> 0 bytes
.../gemfire/cache/client/internal/package.html | 6 +-
.../gemstone/gemfire/cache/client/package.html | 2 +-
.../gemfire/cache/doc-files/architecture.fig | 170 -
.../gemfire/cache/doc-files/architecture.gif | Bin 9983 -> 0 bytes
.../cache/doc-files/entry-life-cycle.fig | 64 -
.../cache/doc-files/entry-life-cycle.gif | Bin 3357 -> 0 bytes
.../gemfire/cache/doc-files/example-cache.xml | 98 -
.../gemfire/cache/doc-files/example2-cache.xml | 63 -
.../gemfire/cache/doc-files/example3-cache.xml | 60 -
.../cache/doc-files/partitioned-regions.fig | 267 --
.../cache/doc-files/partitioned-regions.gif | Bin 9494 -> 0 bytes
.../internal/GetOperationContextImpl.java | 24 +-
.../com/gemstone/gemfire/cache/package.html | 8 +-
.../query/internal/index/AbstractIndex.java | 8 +-
.../query/internal/index/DummyQRegion.java | 14 +-
.../cache/query/internal/index/HashIndex.java | 6 +-
.../gemfire/distributed/ServerLauncher.java | 56 +-
.../ServerLauncherCacheProvider.java | 34 +
.../DefaultServerLauncherCacheProvider.java | 57 +
.../internal/DistributionConfigImpl.java | 33 +-
.../internal/InternalDistributedSystem.java | 20 +-
.../internal/LonerDistributionManager.java | 4 +-
.../internal/direct/DirectChannel.java | 31 +-
.../internal/doc-files/config-classes.fig | 138 -
.../internal/doc-files/config-classes.gif | Bin 4205 -> 0 bytes
.../doc-files/distribution-managers.fig | 76 -
.../doc-files/distribution-managers.gif | Bin 3267 -> 0 bytes
.../internal/locks/doc-files/elder.fig | 84 -
.../internal/locks/doc-files/elder.jpg | Bin 55182 -> 0 bytes
.../internal/locks/doc-files/turks.fig | 128 -
.../internal/locks/doc-files/turks.jpg | Bin 79859 -> 0 bytes
.../distributed/internal/locks/package.html | 4 +-
.../membership/gms/fd/GMSHealthMonitor.java | 2 +-
.../membership/gms/membership/GMSJoinLeave.java | 29 +-
.../gms/messages/JoinResponseMessage.java | 15 -
.../gms/messenger/JGroupsMessenger.java | 5 +
.../gemfire/distributed/internal/package.html | 2 +-
.../internal/tcpserver/TcpClient.java | 16 +-
.../internal/tcpserver/TcpServer.java | 0
.../doc-files/data-serialization-exceptions.fig | 135 -
.../doc-files/data-serialization-exceptions.gif | Bin 3666 -> 0 bytes
.../gemfire/internal/AbstractConfig.java | 2 +
.../admin/doc-files/class-hierarchy.fig | 224 -
.../admin/doc-files/class-hierarchy.gif | Bin 11971 -> 0 bytes
.../internal/cache/AbstractRegionEntry.java | 85 +-
.../internal/cache/AbstractRegionMap.java | 81 +-
.../gemfire/internal/cache/BucketRegion.java | 5 +-
.../cache/BytesAndBitsForCompactor.java | 18 +-
.../internal/cache/CachedDeserializable.java | 8 +
.../gemfire/internal/cache/DiskEntry.java | 113 +-
.../gemfire/internal/cache/DiskStoreImpl.java | 4 -
.../internal/cache/DistributedRegion.java | 10 -
.../gemfire/internal/cache/EntryEventImpl.java | 161 +-
.../gemfire/internal/cache/LocalRegion.java | 18 +-
.../gemstone/gemfire/internal/cache/Oplog.java | 12 +-
.../internal/cache/PartitionedRegion.java | 1 -
.../cache/PartitionedRegionQueryEvaluator.java | 391 +-
.../cache/PreferBytesCachedDeserializable.java | 11 +-
.../gemfire/internal/cache/RegionEntry.java | 8 +-
.../internal/cache/RemoteDestroyMessage.java | 4 +-
.../cache/SearchLoadAndWriteProcessor.java | 8 +-
.../cache/StoreAllCachedDeserializable.java | 11 +-
.../internal/cache/VMCachedDeserializable.java | 9 +-
.../SnappyCompressedCachedDeserializable.java | 10 +
.../cache/doc-files/BucketAdvisor-state.png | Bin 39148 -> 0 bytes
.../internal/cache/doc-files/eventmatrix.xls | Bin 24576 -> 0 bytes
.../cache/doc-files/extensible-hashing.fig | 159 -
.../cache/doc-files/extensible-hashing.gif | Bin 6605 -> 0 bytes
.../cache/doc-files/jcache-get-flow.fig | 349 --
.../cache/doc-files/jcache-get-flow.pdf | Bin 7519 -> 0 bytes
.../cache/doc-files/jcache-put-flow.fig | 359 --
.../cache/doc-files/jcache-put-flow.pdf | Bin 7667 -> 0 bytes
.../doc-files/jcache-update-message-flow.fig | 334 --
.../doc-files/jcache-update-message-flow.pdf | Bin 5937 -> 0 bytes
.../cache/doc-files/partitioned-regions.fig | 255 --
.../cache/doc-files/partitioned-regions.gif | Bin 9273 -> 0 bytes
.../internal/cache/doc-files/properties.html | 3937 ------------------
.../cache/doc-files/region-implementation.fig | 262 --
.../gemfire/internal/cache/package.html | 8 +-
.../cache/partitioned/FetchEntriesMessage.java | 8 +-
.../internal/cache/partitioned/PutMessage.java | 8 +-
.../gemfire/internal/cache/properties.html | 3937 ++++++++++++++++++
.../cache/tier/sockets/CacheClientProxy.java | 8 +-
.../internal/cache/tier/sockets/HandShake.java | 3 +-
.../internal/cache/tier/sockets/Part.java | 51 +-
.../cache/tier/sockets/command/Get70.java | 19 +-
.../cache/tier/sockets/command/Request.java | 8 +-
.../doc-files/communication-architecture.fig | 158 -
.../doc-files/communication-architecture.gif | Bin 5485 -> 0 bytes
.../cache/wan/GatewaySenderEventImpl.java | 12 +-
.../gemfire/internal/doc-files/cs-maps.fig | 150 -
.../gemfire/internal/doc-files/cs-maps.gif | Bin 5951 -> 0 bytes
.../gemfire/internal/doc-files/ds-map.fig | 105 -
.../gemfire/internal/doc-files/ds-map.gif | Bin 4867 -> 0 bytes
.../internal/doc-files/merge-log-files.fig | 153 -
.../internal/doc-files/merge-log-files.gif | Bin 2646 -> 0 bytes
.../gemfire/internal/logging/MergeLogFiles.java | 2 +-
.../internal/offheap/AbstractStoredObject.java | 24 +
.../offheap/AddressableMemoryChunk.java | 29 -
.../offheap/AddressableMemoryChunkFactory.java | 27 -
.../offheap/AddressableMemoryManager.java | 261 ++
.../internal/offheap/ByteArrayMemoryChunk.java | 77 -
.../internal/offheap/ByteBufferMemoryChunk.java | 90 -
.../gemfire/internal/offheap/DataAsAddress.java | 131 -
.../gemfire/internal/offheap/Fragment.java | 10 +-
.../internal/offheap/FreeListManager.java | 180 +-
.../internal/offheap/MemoryAllocator.java | 18 +-
.../gemfire/internal/offheap/MemoryBlock.java | 2 +-
.../internal/offheap/MemoryBlockNode.java | 22 +-
.../gemfire/internal/offheap/MemoryChunk.java | 47 -
.../offheap/MemoryChunkWithRefCount.java | 34 -
.../gemfire/internal/offheap/ObjectChunk.java | 737 ----
.../internal/offheap/ObjectChunkSlice.java | 44 -
.../offheap/ObjectChunkWithHeapForm.java | 40 -
.../offheap/OffHeapCachedDeserializable.java | 142 -
.../gemfire/internal/offheap/OffHeapHelper.java | 24 +-
.../offheap/OffHeapRegionEntryHelper.java | 28 +-
.../internal/offheap/OffHeapStoredObject.java | 718 ++++
.../OffHeapStoredObjectAddressStack.java | 141 +
.../offheap/OffHeapStoredObjectSlice.java | 44 +
.../OffHeapStoredObjectWithHeapForm.java | 41 +
.../offheap/SimpleMemoryAllocatorImpl.java | 77 +-
.../gemstone/gemfire/internal/offheap/Slab.java | 39 +
.../gemfire/internal/offheap/SlabFactory.java | 27 +
.../gemfire/internal/offheap/SlabImpl.java | 61 +
.../gemfire/internal/offheap/StoredObject.java | 117 +-
.../internal/offheap/SyncChunkStack.java | 141 -
.../internal/offheap/TinyStoredObject.java | 229 +
.../internal/offheap/UnsafeMemoryChunk.java | 217 -
.../internal/tcp/ByteBufferInputStream.java | 74 +-
.../tcp/ImmutableByteBufferInputStream.java | 4 +-
.../gemfire/internal/util/BlobHelper.java | 4 +-
.../internal/util/doc-files/call-stack.fig | 34 -
.../internal/util/doc-files/class-loaders.fig | 49 -
.../gemfire/pdx/internal/PdxInputStream.java | 4 +-
.../gemstone/gemfire/pdx/internal/PdxType.java | 2 +-
.../javadoc-images/BucketAdvisor-state.png | Bin 0 -> 39148 bytes
.../javadoc-images/ConnectionManagerImpl.dia | Bin 0 -> 2034 bytes
.../javadoc-images/ConnectionManagerImpl.png | Bin 0 -> 11825 bytes
.../javadoc-images/QueueManagerImpl.dia | Bin 0 -> 2180 bytes
.../javadoc-images/QueueManagerImpl.png | Bin 0 -> 15075 bytes
.../javadoc-images/class-hierarchy.fig | 224 +
.../javadoc-images/class-hierarchy.gif | Bin 0 -> 11971 bytes
.../javadoc-images/client_static_diagram.png | Bin 0 -> 29430 bytes
.../data-serialization-exceptions.fig | 135 +
.../data-serialization-exceptions.gif | Bin 0 -> 3666 bytes
.../javadoc-images/distribution-managers.fig | 76 +
.../javadoc-images/distribution-managers.gif | Bin 0 -> 3267 bytes
.../src/main/resources/javadoc-images/elder.fig | 84 +
.../src/main/resources/javadoc-images/elder.jpg | Bin 0 -> 55182 bytes
.../javadoc-images/entry-life-cycle.fig | 64 +
.../javadoc-images/entry-life-cycle.gif | Bin 0 -> 3357 bytes
.../resources/javadoc-images/eventmatrix.xls | Bin 0 -> 24576 bytes
.../resources/javadoc-images/example-cache.xml | 98 +
.../javadoc-images/example-client-cache.xml | 46 +
.../resources/javadoc-images/example2-cache.xml | 63 +
.../resources/javadoc-images/example3-cache.xml | 60 +
.../javadoc-images/extensible-hashing.fig | 159 +
.../javadoc-images/extensible-hashing.gif | Bin 0 -> 6605 bytes
.../resources/javadoc-images/health-classes.gif | Bin 0 -> 8973 bytes
.../javadoc-images/jcache-get-flow.fig | 349 ++
.../javadoc-images/jcache-get-flow.pdf | Bin 0 -> 7519 bytes
.../javadoc-images/jcache-put-flow.fig | 359 ++
.../javadoc-images/jcache-put-flow.pdf | Bin 0 -> 7667 bytes
.../jcache-update-message-flow.fig | 334 ++
.../jcache-update-message-flow.pdf | Bin 0 -> 5937 bytes
.../javadoc-images/merge-log-files.fig | 153 +
.../javadoc-images/merge-log-files.gif | Bin 0 -> 2646 bytes
.../javadoc-images/partitioned-regions.fig | 255 ++
.../javadoc-images/partitioned-regions.gif | Bin 0 -> 9273 bytes
.../src/main/resources/javadoc-images/turks.fig | 128 +
.../src/main/resources/javadoc-images/turks.jpg | Bin 0 -> 79859 bytes
.../cache30/ClientMembershipDUnitTest.java | 199 +-
.../gemfire/cache30/ClientServerTestCase.java | 12 +-
.../DistributedMulticastRegionDUnitTest.java | 7 +-
.../gemfire/cache30/MultiVMRegionTestCase.java | 14 +-
.../gemfire/distributed/LauncherTestSuite.java | 2 +-
.../MockServerLauncherCacheProvider.java | 42 +
.../ServerLauncherWithProviderJUnitTest.java | 92 +
.../ServerLauncherWithSpringJUnitTest.java | 99 -
.../internal/DistributionAdvisorDUnitTest.java | 3 +-
.../gms/fd/GMSHealthMonitorJUnitTest.java | 20 +-
.../gms/membership/GMSJoinLeaveJUnitTest.java | 14 +-
.../TcpServerBackwardCompatDUnitTest.java | 97 +-
.../internal/SSLConfigIntegrationJUnitTest.java | 2 +-
.../gemfire/internal/SSLConfigJUnitTest.java | 73 +-
.../cache/ChunkValueWrapperJUnitTest.java | 188 -
.../gemfire/internal/cache/OffHeapTestUtil.java | 2 +-
.../cache/OffHeapValueWrapperJUnitTest.java | 188 +
.../cache/OldValueImporterTestBase.java | 22 +-
.../FetchEntriesMessageJUnitTest.java | 93 +
.../cache/tier/sockets/MessageJUnitTest.java | 1 -
.../offheap/ByteArrayMemoryChunkJUnitTest.java | 30 -
.../offheap/DataAsAddressJUnitTest.java | 368 --
.../DirectByteBufferMemoryChunkJUnitTest.java | 33 -
.../internal/offheap/FragmentJUnitTest.java | 22 +-
.../internal/offheap/FreeListManagerTest.java | 322 +-
.../offheap/FreeListOffHeapRegionJUnitTest.java | 2 +-
.../HeapByteBufferMemoryChunkJUnitTest.java | 33 -
.../offheap/LifecycleListenerJUnitTest.java | 24 +-
.../offheap/MemoryBlockNodeJUnitTest.java | 48 +-
.../offheap/MemoryChunkJUnitTestBase.java | 290 --
.../internal/offheap/MemoryChunkTestSuite.java | 32 -
.../internal/offheap/ObjectChunkJUnitTest.java | 902 ----
.../offheap/ObjectChunkSliceJUnitTest.java | 72 -
.../ObjectChunkWithHeapFormJUnitTest.java | 64 -
.../offheap/OffHeapHelperJUnitTest.java | 14 +-
.../internal/offheap/OffHeapRegionBase.java | 16 +-
.../OffHeapRegionEntryHelperJUnitTest.java | 88 +-
...ffHeapStoredObjectAddressStackJUnitTest.java | 289 ++
.../offheap/OffHeapStoredObjectJUnitTest.java | 869 ++++
.../OffHeapStoredObjectSliceJUnitTest.java | 72 +
...ffHeapStoredObjectWithHeapFormJUnitTest.java | 64 +
.../offheap/OffHeapValidationJUnitTest.java | 8 +-
.../OffHeapWriteObjectAsByteArrayJUnitTest.java | 12 +-
.../OldFreeListOffHeapRegionJUnitTest.java | 2 +-
...moryAllocatorFillPatternIntegrationTest.java | 16 +-
...mpleMemoryAllocatorFillPatternJUnitTest.java | 24 +-
.../offheap/SimpleMemoryAllocatorJUnitTest.java | 114 +-
.../internal/offheap/StoredObjectTestSuite.java | 8 +-
.../offheap/SyncChunkStackJUnitTest.java | 289 --
.../offheap/TinyMemoryBlockJUnitTest.java | 64 +-
.../offheap/TinyStoredObjectJUnitTest.java | 353 ++
.../offheap/UnsafeMemoryChunkJUnitTest.java | 87 -
.../management/OffHeapManagementDUnitTest.java | 8 +-
...ersalMembershipListenerAdapterDUnitTest.java | 85 +-
.../OffHeapByteBufferByteSourceJUnitTest.java | 6 +-
.../gemfire/pdx/OffHeapByteSourceJUnitTest.java | 10 +-
.../gemfire/pdx/PdxClientServerDUnitTest.java | 46 +-
.../gemfire/test/dunit/DistributedTestCase.java | 5 +-
.../test/dunit/DistributedTestUtils.java | 1 +
.../templates/security/DummyAuthorization.java | 8 +-
.../templates/security/PKCSPrincipalTest.java | 8 +-
.../security/PKCSPrincipalTest.java~HEAD | 48 +
.../security/UserPasswordAuthInit.java | 4 +-
.../security/UsernamePrincipalTest.java | 8 +-
.../security/UsernamePrincipalTest.java~HEAD | 48 +
...fire.distributed.ServerLauncherCacheProvider | 1 +
.../sanctionedDataSerializables.txt | 6 +-
.../resources/spring/spring-gemfire-context.xml | 42 -
.../internal/cache/PutAllCSDUnitTest.java | 225 +-
.../tier/sockets/DurableClientTestCase.java | 9 +-
geode-pulse/build.gradle | 6 +
geode-rebalancer/build.gradle | 2 +-
geode-web-api/build.gradle | 7 +
geode-web/build.gradle | 7 +
gradle/rat.gradle | 1 +
gradle/test.gradle | 4 +
270 files changed, 12057 insertions(+), 14597 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8e0693a8/geode-core/src/test/java/templates/security/DummyAuthorization.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/templates/security/DummyAuthorization.java
index 896ccc5,4c2bfec..860d1ad
--- a/geode-core/src/test/java/templates/security/DummyAuthorization.java
+++ b/geode-core/src/test/java/templates/security/DummyAuthorization.java
@@@ -28,11 -24,16 +24,15 @@@ import com.gemstone.gemfire.distributed
import com.gemstone.gemfire.security.AccessControl;
import com.gemstone.gemfire.security.NotAuthorizedException;
+ import java.security.Principal;
+ import java.util.HashSet;
+ import java.util.Set;
+
/**
- * A dummy implementation of the <code>AccessControl</code> interface that
- * allows authorization depending on the format of the <code>Principal</code>
+ * A dummy implementation of the {@code AccessControl} interface that
+ * allows authorization depending on the format of the {@code Principal}
* string.
*
- * @author Sumedh Wale
* @since 5.5
*/
public class DummyAuthorization implements AccessControl {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8e0693a8/geode-core/src/test/java/templates/security/PKCSPrincipalTest.java~HEAD
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/templates/security/PKCSPrincipalTest.java~HEAD
index 0000000,0000000..6ce216f
new file mode 100644
--- /dev/null
+++ b/geode-core/src/test/java/templates/security/PKCSPrincipalTest.java~HEAD
@@@ -1,0 -1,0 +1,48 @@@
++/*
++ * 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 templates.security;
++
++import static org.assertj.core.api.Assertions.*;
++
++import java.io.Serializable;
++
++import com.gemstone.gemfire.test.junit.categories.UnitTest;
++import org.apache.commons.lang.SerializationUtils;
++import org.junit.Test;
++import org.junit.experimental.categories.Category;
++
++/**
++ * Unit tests for {@link PKCSPrincipal}
++ */
++@Category(UnitTest.class)
++public class PKCSPrincipalTest {
++
++ @Test
++ public void isSerializable() throws Exception {
++ assertThat(PKCSPrincipal.class).isInstanceOf(Serializable.class);
++ }
++
++ @Test
++ public void canBeSerialized() throws Exception {
++ String name = "jsmith";
++ PKCSPrincipal instance = new PKCSPrincipal(name);
++
++ PKCSPrincipal cloned = (PKCSPrincipal) SerializationUtils.clone(instance);
++
++ assertThat(cloned.getName()).isEqualTo(name);
++ }
++}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8e0693a8/geode-core/src/test/java/templates/security/UserPasswordAuthInit.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8e0693a8/geode-core/src/test/java/templates/security/UsernamePrincipalTest.java~HEAD
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/templates/security/UsernamePrincipalTest.java~HEAD
index 0000000,0000000..e88fd18
new file mode 100644
--- /dev/null
+++ b/geode-core/src/test/java/templates/security/UsernamePrincipalTest.java~HEAD
@@@ -1,0 -1,0 +1,48 @@@
++/*
++ * 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 templates.security;
++
++import static org.assertj.core.api.Assertions.*;
++
++import java.io.Serializable;
++
++import com.gemstone.gemfire.test.junit.categories.UnitTest;
++import org.apache.commons.lang.SerializationUtils;
++import org.junit.Test;
++import org.junit.experimental.categories.Category;
++
++/**
++ * Unit tests for {@link UsernamePrincipal}
++ */
++@Category(UnitTest.class)
++public class UsernamePrincipalTest {
++
++ @Test
++ public void isSerializable() throws Exception {
++ assertThat(UsernamePrincipal.class).isInstanceOf(Serializable.class);
++ }
++
++ @Test
++ public void canBeSerialized() throws Exception {
++ String name = "jsmith";
++ UsernamePrincipal instance = new UsernamePrincipal(name);
++
++ UsernamePrincipal cloned = (UsernamePrincipal) SerializationUtils.clone(instance);
++
++ assertThat(cloned.getName()).isEqualTo(name);
++ }
++}