Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/usergrid into datastax--cass-driver
# Conflicts: # stack/core/pom.xml Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/3c6fcdc7 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/3c6fcdc7 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/3c6fcdc7 Branch: refs/heads/datastax-cass-driver Commit: 3c6fcdc7452a1eead0c5e28e32bc12bedd142028 Parents: 75cc3a4 e0931be Author: Michael Russo <[email protected]> Authored: Sun Mar 27 10:47:24 2016 -0700 Committer: Michael Russo <[email protected]> Committed: Sun Mar 27 10:47:24 2016 -0700 ---------------------------------------------------------------------- README.md | 8 +- content/docs/README.html | 20 +- content/docs/_sources/index.txt | 20 +- .../_sources/installation/deployment-guide.txt | 144 +- content/docs/_sources/introduction/overview.txt | 32 +- .../_sources/introduction/usergrid-features.txt | 4 +- .../docs/_sources/reference/contribute-code.txt | 41 +- .../creating-a-new-application.txt | 16 + .../using-usergrid/creating-account.txt | 21 + .../using-usergrid/using-a-sandbox-app.txt | 39 + .../_sources/using-usergrid/using-the-api.txt | 150 + .../file-storage-configuration.html | 20 +- content/docs/assets-and-files/folders.html | 20 +- .../assets-and-files/legacy-asset-support.html | 20 +- .../assets-and-files/retrieving-assets.html | 20 +- .../docs/assets-and-files/uploading-assets.html | 20 +- .../creating-and-incrementing-counters.html | 20 +- .../events-and-counters.html | 20 +- .../retrieving-counters.html | 20 +- .../docs/data-queries/advanced-query-usage.html | 20 +- .../docs/data-queries/operators-and-types.html | 20 +- content/docs/data-queries/query-parameters.html | 20 +- .../docs/data-queries/querying-your-data.html | 20 +- content/docs/data-storage/collections.html | 20 +- content/docs/data-storage/data-store-dbms.html | 24 +- content/docs/data-storage/entities.html | 20 +- .../docs/data-storage/optimizing-access.html | 20 +- .../entity-connections/connecting-entities.html | 20 +- .../disconnecting-entities.html | 20 +- .../entity-connections/retrieving-entities.html | 20 +- content/docs/genindex.html | 20 +- content/docs/geolocation/geolocation.html | 20 +- content/docs/index.html | 112 +- content/docs/installation/deployment-guide.html | 202 +- .../docs/installation/ug1-deploy-to-tomcat.html | 48 +- .../installation/ug1-launcher-quick-start.html | 47 +- .../docs/installation/ug2-deploy-to-tomcat.html | 20 +- content/docs/introduction/async-vs-sync.html | 24 +- content/docs/introduction/data-model.html | 20 +- content/docs/introduction/overview.html | 84 +- .../docs/introduction/usergrid-features.html | 34 +- content/docs/jersey2skeleton/README.html | 20 +- content/docs/objects.inv | Bin 692 -> 686 bytes content/docs/orgs-and-apps/admin-user.html | 20 +- content/docs/orgs-and-apps/application.html | 20 +- content/docs/orgs-and-apps/managing.html | 20 +- content/docs/orgs-and-apps/organization.html | 20 +- .../push-notifications/adding-push-support.html | 20 +- .../creating-and-managing-notifications.html | 20 +- .../push-notifications/creating-notifiers.html | 20 +- .../push-notifications/getting-started.html | 20 +- .../managing-users-and-devices.html | 20 +- content/docs/push-notifications/overview.html | 20 +- .../docs/push-notifications/registering.html | 20 +- content/docs/push-notifications/tbd.html | 20 +- .../push-notifications/troubleshooting.html | 20 +- content/docs/push-notifications/tutorial.html | 20 +- .../docs/push-notifications/users-devices.html | 20 +- content/docs/reference/contribute-code.html | 88 +- content/docs/reference/presos-and-videos.html | 24 +- content/docs/rest-endpoints/api-docs.html | 20 +- content/docs/sdks/ios-new.html | 20 +- content/docs/sdks/sdk-outline.html | 20 +- content/docs/sdks/tbd.html | 24 +- content/docs/search.html | 20 +- content/docs/searchindex.js | 2 +- .../docs/security-and-auth/app-security.html | 20 +- .../authenticating-api-requests.html | 20 +- ...nticating-users-and-application-clients.html | 20 +- .../changing-token-time-live-ttl.html | 20 +- .../docs/security-and-auth/facebook-sign.html | 20 +- .../revoking-tokens-logout.html | 20 +- .../security-and-auth/securing-your-app.html | 20 +- .../user-authentication-types.html | 20 +- .../security-and-auth/using-permissions.html | 20 +- content/docs/security-and-auth/using-roles.html | 20 +- content/docs/user-management/activity.html | 20 +- content/docs/user-management/group.html | 20 +- content/docs/user-management/groups.html | 20 +- .../docs/user-management/messagee-example.html | 20 +- .../docs/user-management/user-connections.html | 20 +- .../docs/user-management/user-management.html | 20 +- .../docs/user-management/working-user-data.html | 20 +- .../creating-a-new-application.html | 336 ++ .../docs/using-usergrid/creating-account.html | 347 ++ .../using-usergrid/using-a-sandbox-app.html | 372 ++ content/docs/using-usergrid/using-the-api.html | 506 +++ content/releases/index.html | 11 +- deployment/pcf/README.md | 2 + .../creating-a-new-application.md | 16 - docs/getting-started/creating-account.md | 21 - docs/getting-started/using-a-sandbox-app.md | 39 - docs/getting-started/using-the-api.md | 150 - docs/index.rst | 20 +- docs/installation/deployment-guide.md | 134 +- docs/introduction/overview.md | 32 +- docs/introduction/usergrid-features.md | 4 +- docs/reference/contribute-code.md | 41 +- .../creating-a-new-application.md | 16 + docs/using-usergrid/creating-account.md | 21 + docs/using-usergrid/using-a-sandbox-app.md | 39 + docs/using-usergrid/using-the-api.md | 150 + release/binary-release.sh | 10 +- release/pom.xml | 2 +- release/release-candidate.sh | 62 +- release/release.sh | 84 +- release/src/main/assembly/binary.xml | 27 +- sdks/swift/.gitignore | 25 + sdks/swift/LICENSE.txt | 19 + sdks/swift/Package.swift | 30 + sdks/swift/README.md | 802 ++++ .../ActivityFeed.xcodeproj/project.pbxproj | 827 ++++ .../contents.xcworkspacedata | 7 + .../contents.xcworkspacedata | 7 + .../xcshareddata/ActivityFeed.xcscmblueprint | 30 + sdks/swift/Samples/ActivityFeed/Podfile | 8 + sdks/swift/Samples/ActivityFeed/Readme.md | 29 + .../ActivityFeed/Source/ActivityEntity.swift | 60 + .../ActivityFeed/Source/AppDelegate.swift | 65 + .../AppIcon.appiconset/Contents.json | 38 + .../Source/Assets.xcassets/Contents.json | 6 + .../UsergridGuy.imageset/Contents.json | 21 + .../UsergridGuy.imageset/UsergridGuy.png | Bin 0 -> 6230 bytes .../Source/Base.lproj/LaunchScreen.storyboard | 27 + .../Source/Base.lproj/Main.storyboard | 371 ++ .../Source/FollowViewController.swift | 50 + .../ActivityFeed/Source/FormTextField.swift | 71 + .../Samples/ActivityFeed/Source/Info.plist | 43 + .../Source/LoginViewController.swift | 77 + .../Source/MessageTableViewCell.swift | 101 + .../ActivityFeed/Source/MessageTextView.swift | 39 + .../Source/MessageViewController.swift | 224 ++ .../Source/RegisterViewController.swift | 62 + .../ActivityFeed/Source/UsergridManager.swift | 78 + .../Source/ViewControllerExtensions.swift | 36 + .../Assets.xcassets/README__ignoredByTemplate__ | 1 + .../ExtensionDelegate.swift | 45 + .../WatchSample Extension/Info.plist | 45 + .../InterfaceController.swift | 81 + .../AppIcon.appiconset/Contents.json | 55 + .../WatchSample/Base.lproj/Interface.storyboard | 46 + .../Samples/ActivityFeed/WatchSample/Info.plist | 35 + .../Samples/Push/Push.xcodeproj/project.pbxproj | 473 +++ .../contents.xcworkspacedata | 7 + .../Push.xcworkspace/contents.xcworkspacedata | 7 + sdks/swift/Samples/Push/Readme.md | 21 + .../swift/Samples/Push/Source/AppDelegate.swift | 53 + .../AppIcon.appiconset/Contents.json | 38 + .../Push/Source/Assets.xcassets/Contents.json | 6 + .../UsergridGuy.imageset/Contents.json | 21 + .../UsergridGuy.imageset/UsergridGuy.png | Bin 0 -> 6230 bytes .../Source/Base.lproj/LaunchScreen.storyboard | 27 + .../Push/Source/Base.lproj/Main.storyboard | 75 + sdks/swift/Samples/Push/Source/Info.plist | 38 + .../Samples/Push/Source/UsergridManager.swift | 72 + .../Samples/Push/Source/ViewController.swift | 39 + sdks/swift/Samples/Readme.md | 27 + sdks/swift/Source/Info.plist | 26 + sdks/swift/Source/Usergrid.swift | 625 +++ sdks/swift/Source/UsergridAsset.swift | 198 + .../Source/UsergridAssetRequestWrapper.swift | 48 + sdks/swift/Source/UsergridAuth.swift | 276 ++ sdks/swift/Source/UsergridClient.swift | 904 +++++ sdks/swift/Source/UsergridClientConfig.swift | 149 + sdks/swift/Source/UsergridDevice.swift | 178 + sdks/swift/Source/UsergridEntity.swift | 611 +++ sdks/swift/Source/UsergridEnums.swift | 415 ++ sdks/swift/Source/UsergridExtensions.swift | 42 + sdks/swift/Source/UsergridFileMetaData.swift | 114 + sdks/swift/Source/UsergridKeychainHelpers.swift | 196 + sdks/swift/Source/UsergridQuery.swift | 590 +++ sdks/swift/Source/UsergridRequest.swift | 245 ++ sdks/swift/Source/UsergridRequestManager.swift | 156 + sdks/swift/Source/UsergridResponse.swift | 203 + sdks/swift/Source/UsergridResponseError.swift | 90 + sdks/swift/Source/UsergridSDK.h | 37 + sdks/swift/Source/UsergridSessionDelegate.swift | 90 + sdks/swift/Source/UsergridUser.swift | 497 +++ sdks/swift/Tests/ASSET_Tests.swift | 82 + sdks/swift/Tests/AUTH_Tests.swift | 66 + sdks/swift/Tests/CONNECTION_Tests.swift | 87 + sdks/swift/Tests/ClientCreationTests.swift | 92 + sdks/swift/Tests/Entity_Tests.swift | 173 + sdks/swift/Tests/GET_Tests.swift | 101 + sdks/swift/Tests/Info.plist | 24 + sdks/swift/Tests/PUT_Tests.swift | 146 + sdks/swift/Tests/TestAssets/logo_apigee.png | Bin 0 -> 10696 bytes sdks/swift/Tests/TestAssets/test.png | Bin 0 -> 1417937 bytes sdks/swift/Tests/User_Tests.swift | 121 + sdks/swift/UsergridSDK.podspec | 18 + .../swift/UsergridSDK.xcodeproj/project.pbxproj | 1179 ++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcschemes/UsergridSDK OSX.xcscheme | 100 + .../xcschemes/UsergridSDK iOS.xcscheme | 100 + .../xcschemes/UsergridSDK tvOS.xcscheme | 114 + .../xcschemes/UsergridSDK watchOS.xcscheme | 80 + .../xcschemes/UsergridSDK_OSX_Tests.xcscheme | 56 + .../xcschemes/UsergridSDK_TVOS_Tests.xcscheme | 56 + .../xcschemes/UsergridSDK_iOS_Tests.xcscheme | 57 + sdks/swift/docs/Classes.html | 694 ++++ sdks/swift/docs/Classes/Usergrid.html | 3704 +++++++++++++++++ sdks/swift/docs/Classes/UsergridAppAuth.html | 402 ++ sdks/swift/docs/Classes/UsergridAsset.html | 694 ++++ .../Classes/UsergridAssetUploadRequest.html | 348 ++ sdks/swift/docs/Classes/UsergridAuth.html | 550 +++ sdks/swift/docs/Classes/UsergridClient.html | 3800 ++++++++++++++++++ .../docs/Classes/UsergridClientConfig.html | 736 ++++ sdks/swift/docs/Classes/UsergridDevice.html | 644 +++ sdks/swift/docs/Classes/UsergridEntity.html | 2612 ++++++++++++ .../docs/Classes/UsergridFileMetaData.html | 524 +++ sdks/swift/docs/Classes/UsergridQuery.html | 2270 +++++++++++ .../UsergridQuery/UsergridQueryOperator.html | 272 ++ .../UsergridQuery/UsergridQuerySortOrder.html | 203 + sdks/swift/docs/Classes/UsergridRequest.html | 611 +++ sdks/swift/docs/Classes/UsergridResponse.html | 961 +++++ .../docs/Classes/UsergridResponseError.html | 465 +++ sdks/swift/docs/Classes/UsergridUser.html | 2319 +++++++++++ .../UsergridUser/UsergridUserProperties.html | 346 ++ sdks/swift/docs/Classes/UsergridUserAuth.html | 402 ++ sdks/swift/docs/Enums.html | 427 ++ sdks/swift/docs/Enums/UsergridAuthFallback.html | 248 ++ .../docs/Enums/UsergridDeviceProperties.html | 361 ++ sdks/swift/docs/Enums/UsergridDirection.html | 278 ++ .../docs/Enums/UsergridEntityProperties.html | 506 +++ sdks/swift/docs/Enums/UsergridHttpMethod.html | 333 ++ .../docs/Enums/UsergridImageContentType.html | 278 ++ .../swift/docs/Enums/UsergridQueryOperator.html | 423 ++ .../docs/Enums/UsergridQuerySortOrder.html | 330 ++ .../docs/Enums/UsergridUserProperties.html | 516 +++ sdks/swift/docs/Extensions.html | 175 + sdks/swift/docs/Extensions/UsergridAsset.html | 184 + sdks/swift/docs/Extensions/UsergridAuth.html | 260 ++ sdks/swift/docs/Extensions/UsergridClient.html | 1962 +++++++++ sdks/swift/docs/Global Variables.html | 202 + sdks/swift/docs/Protocols.html | 146 + sdks/swift/docs/Protocols/UsergridAuth.html | 260 ++ sdks/swift/docs/Typealiases.html | 403 ++ sdks/swift/docs/css/highlight.css | 200 + sdks/swift/docs/css/jazzy.css | 331 ++ .../docs/docsets/.docset/Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 573 +++ .../Resources/Documents/Classes/Usergrid.html | 3270 +++++++++++++++ .../Documents/Classes/UsergridAppAuth.html | 319 ++ .../Documents/Classes/UsergridAsset.html | 557 +++ .../Documents/Classes/UsergridAuth.html | 380 ++ .../Documents/Classes/UsergridClient.html | 3199 +++++++++++++++ .../Documents/Classes/UsergridClientConfig.html | 559 +++ .../Documents/Classes/UsergridDevice.html | 382 ++ .../Documents/Classes/UsergridEntity.html | 2388 +++++++++++ .../Documents/Classes/UsergridFileMetaData.html | 387 ++ .../Documents/Classes/UsergridQuery.html | 2010 +++++++++ .../UsergridQuery/UsergridQueryOperator.html | 272 ++ .../UsergridQuery/UsergridQuerySortOrder.html | 203 + .../Documents/Classes/UsergridResponse.html | 880 ++++ .../Documents/Classes/UsergridUser.html | 994 +++++ .../UsergridUser/UsergridUserProperties.html | 346 ++ .../Documents/Classes/UsergridUserAuth.html | 319 ++ .../Contents/Resources/Documents/Enums.html | 372 ++ .../Documents/Enums/UsergridAuthFallback.html | 221 + .../Enums/UsergridDeviceProperties.html | 334 ++ .../Documents/Enums/UsergridDirection.html | 251 ++ .../Enums/UsergridEntityProperties.html | 479 +++ .../Enums/UsergridImageContentType.html | 251 ++ .../Documents/Enums/UsergridQueryOperator.html | 396 ++ .../Documents/Enums/UsergridQuerySortOrder.html | 303 ++ .../Documents/Enums/UsergridUserProperties.html | 489 +++ .../Resources/Documents/Extensions.html | 175 + .../Documents/Extensions/UsergridAsset.html | 184 + .../Documents/Extensions/UsergridAuth.html | 260 ++ .../Documents/Extensions/UsergridClient.html | 1962 +++++++++ .../Contents/Resources/Documents/Protocols.html | 146 + .../Documents/Protocols/UsergridAuth.html | 260 ++ .../Resources/Documents/Typealiases.html | 318 ++ .../Resources/Documents/css/highlight.css | 202 + .../Contents/Resources/Documents/css/jazzy.css | 302 ++ .../Contents/Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Contents/Resources/Documents/img/gh.png | Bin 0 -> 1571 bytes .../Contents/Resources/Documents/index.html | 234 ++ .../Contents/Resources/Documents/js/jazzy.js | 31 + .../Resources/Documents/js/jquery.min.js | 4 + .../Resources/Documents/undocumented.txt | 11 + .../.docset/Contents/Resources/docSet.dsidx | Bin 0 -> 114688 bytes sdks/swift/docs/docsets/.tgz | Bin 0 -> 111866 bytes .../UsergridSDK.docset/Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 694 ++++ .../Resources/Documents/Classes/Usergrid.html | 3704 +++++++++++++++++ .../Documents/Classes/UsergridAppAuth.html | 402 ++ .../Documents/Classes/UsergridAsset.html | 694 ++++ .../Classes/UsergridAssetUploadRequest.html | 348 ++ .../Documents/Classes/UsergridAuth.html | 550 +++ .../Documents/Classes/UsergridClient.html | 3800 ++++++++++++++++++ .../Documents/Classes/UsergridClientConfig.html | 736 ++++ .../Documents/Classes/UsergridDevice.html | 644 +++ .../Documents/Classes/UsergridEntity.html | 2612 ++++++++++++ .../Documents/Classes/UsergridFileMetaData.html | 524 +++ .../Documents/Classes/UsergridQuery.html | 2270 +++++++++++ .../UsergridQuery/UsergridQueryOperator.html | 272 ++ .../UsergridQuery/UsergridQuerySortOrder.html | 203 + .../Documents/Classes/UsergridRequest.html | 611 +++ .../Documents/Classes/UsergridResponse.html | 961 +++++ .../Classes/UsergridResponseError.html | 465 +++ .../Documents/Classes/UsergridUser.html | 2319 +++++++++++ .../UsergridUser/UsergridUserProperties.html | 346 ++ .../Documents/Classes/UsergridUserAuth.html | 402 ++ .../Contents/Resources/Documents/Enums.html | 427 ++ .../Documents/Enums/UsergridAuthFallback.html | 248 ++ .../Enums/UsergridDeviceProperties.html | 361 ++ .../Documents/Enums/UsergridDirection.html | 278 ++ .../Enums/UsergridEntityProperties.html | 506 +++ .../Documents/Enums/UsergridHttpMethod.html | 333 ++ .../Enums/UsergridImageContentType.html | 278 ++ .../Documents/Enums/UsergridQueryOperator.html | 423 ++ .../Documents/Enums/UsergridQuerySortOrder.html | 330 ++ .../Documents/Enums/UsergridUserProperties.html | 516 +++ .../Resources/Documents/Extensions.html | 175 + .../Documents/Extensions/UsergridAsset.html | 184 + .../Documents/Extensions/UsergridAuth.html | 260 ++ .../Documents/Extensions/UsergridClient.html | 1962 +++++++++ .../Resources/Documents/Global Variables.html | 202 + .../Contents/Resources/Documents/Protocols.html | 146 + .../Documents/Protocols/UsergridAuth.html | 260 ++ .../Resources/Documents/Typealiases.html | 403 ++ .../Resources/Documents/css/highlight.css | 200 + .../Contents/Resources/Documents/css/jazzy.css | 331 ++ .../Contents/Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Contents/Resources/Documents/img/gh.png | Bin 0 -> 1571 bytes .../Contents/Resources/Documents/index.html | 919 +++++ .../Contents/Resources/Documents/js/jazzy.js | 40 + .../Resources/Documents/js/jquery.min.js | 4 + .../Resources/Documents/undocumented.txt | 0 .../Contents/Resources/docSet.dsidx | Bin 0 -> 151552 bytes sdks/swift/docs/docsets/UsergridSDK.tgz | Bin 0 -> 145485 bytes sdks/swift/docs/img/carat.png | Bin 0 -> 274 bytes sdks/swift/docs/img/dash.png | Bin 0 -> 1338 bytes sdks/swift/docs/img/gh.png | Bin 0 -> 1571 bytes sdks/swift/docs/index.html | 919 +++++ sdks/swift/docs/js/jazzy.js | 40 + sdks/swift/docs/js/jquery.min.js | 4 + sdks/swift/docs/undocumented.txt | 0 stack/README.md | 35 +- stack/build-tools/pom.xml | 2 +- stack/config/pom.xml | 2 +- .../main/resources/usergrid-default.properties | 3 - .../usergrid/corepersistence/CoreModule.java | 2 - .../corepersistence/CpEntityManager.java | 47 +- .../usergrid/corepersistence/GuiceFactory.java | 1 + .../asyncevents/AmazonAsyncEventService.java | 844 ---- .../asyncevents/AsyncEventService.java | 12 +- .../asyncevents/AsyncEventServiceImpl.java | 835 ++++ .../asyncevents/AsyncIndexProvider.java | 4 +- .../asyncevents/EventBuilder.java | 12 +- .../asyncevents/EventBuilderImpl.java | 15 +- .../asyncevents/IndexDocNotFoundException.java | 37 + .../asyncevents/model/AsyncEvent.java | 2 - .../asyncevents/model/EdgeIndexEvent.java | 70 - .../asyncevents/model/EntityIndexEvent.java | 54 - .../index/IndexProcessorFig.java | 8 - .../corepersistence/index/IndexServiceImpl.java | 4 +- .../migration/MigrationModuleVersionPlugin.java | 137 - .../read/search/CandidateEntityFilter.java | 10 +- .../usergrid/persistence/EntityManager.java | 2 + .../main/resources/usergrid-core-context.xml | 5 +- .../index/AmazonAsyncEventServiceTest.java | 103 - .../index/AsyncEventServiceImplTest.java | 103 + .../index/AsyncIndexServiceTest.java | 3 +- .../MigrationModuleVersionPluginTest.java | 259 -- stack/corepersistence/cache/pom.xml | 2 +- stack/corepersistence/collection/pom.xml | 2 +- .../impl/EntityCollectionManagerImpl.java | 8 +- stack/corepersistence/common/pom.xml | 2 +- .../usergrid/persistence/core/CassandraFig.java | 8 + .../core/astyanax/CassandraClusterImpl.java | 34 +- stack/corepersistence/graph/pom.xml | 2 +- stack/corepersistence/map/pom.xml | 2 +- stack/corepersistence/model/pom.xml | 2 +- .../model/entity/MapToEntityConverter.java | 18 +- stack/corepersistence/pom.xml | 2 +- stack/corepersistence/queryindex/pom.xml | 2 +- .../usergrid/persistence/index/IndexFig.java | 3 + .../index/impl/EsIndexProducerImpl.java | 5 +- .../persistence/index/impl/EsProvider.java | 20 +- stack/corepersistence/queue/pom.xml | 2 +- .../persistence/queue/LocalQueueManager.java | 6 +- .../usergrid/persistence/queue/QueueFig.java | 17 + .../persistence/queue/QueueManager.java | 6 +- .../persistence/queue/QueueMessage.java | 10 + .../queue/impl/SNSQueueManagerImpl.java | 48 +- .../persistence/queue/QueueManagerTest.java | 10 +- stack/pom.xml | 2 +- stack/rest/pom.xml | 2 +- .../org/apache/usergrid/rest/RootResource.java | 31 +- .../rest/management/ManagementResource.java | 308 -- .../applications/ApplicationResource.java | 34 +- .../rest/management/users/UserResource.java | 2 +- .../security/SecuredResourceFilterFactory.java | 2 +- .../resources/usergrid-rest-deploy-context.xml | 7 + .../rest/applications/ApplicationDeleteIT.java | 17 +- .../collection/CollectionsResourceIT.java | 56 + .../usergrid/rest/management/AdminUsersIT.java | 102 +- .../rest/management/ManagementResourceIT.java | 58 +- stack/services/pom.xml | 19 +- .../usergrid/management/ManagementService.java | 7 +- .../cassandra/ManagementServiceImpl.java | 22 +- .../credentials/ApplicationAccessToken.java | 3 + .../credentials/OrganizationAccessToken.java | 3 + .../tokens/cassandra/TokenServiceImpl.java | 332 +- .../services/AbstractCollectionService.java | 36 +- .../usergrid/services/ServiceManager.java | 5 +- .../services/notifications/QueueListener.java | 2 +- .../services/notifications/TaskManager.java | 8 +- .../impl/ApplicationQueueManagerImpl.java | 2 +- .../services/queues/ImportQueueManager.java | 4 +- .../usergrid/services/queues/QueueListener.java | 2 +- .../usergrid/services/CollectionServiceIT.java | 16 + stack/test-utils/pom.xml | 2 +- stack/tools/pom.xml | 4 +- tests/integration/test/main.js | 18 +- .../test/notifications/notifications.js | 78 +- .../test/queries/integerComparison.js | 31 +- tests/integration/test/setup.js | 4 +- website/content/releases/index.html | 11 +- 424 files changed, 104881 insertions(+), 3672 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/config/src/main/resources/usergrid-default.properties ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/corepersistence/common/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/CassandraFig.java ---------------------------------------------------------------------- diff --cc stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/CassandraFig.java index 7a2a9d1,0000000..184eeee mode 100644,000000..100644 --- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/CassandraFig.java +++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/CassandraFig.java @@@ -1,218 -1,0 +1,226 @@@ +/* + * 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.usergrid.persistence.core; + + +import org.safehaus.guicyfig.Default; +import org.safehaus.guicyfig.FigSingleton; +import org.safehaus.guicyfig.GuicyFig; +import org.safehaus.guicyfig.Key; + + +/** + * Cassandra configuration interface. + */ +@FigSingleton +public interface CassandraFig extends GuicyFig { + + // cassndra properties used by datastax driver + String READ_CL = "cassandra.readcl"; + String WRITE_CL = "cassandra.writecl"; + String STRATEGY = "cassandra.strategy"; + String STRATEGY_OPTIONS = "cassandra.strategy.options"; + + // main application cassandra properties + String ASTYANAX_READ_CONSISTENT_CL = "usergrid.consistent.read.cl"; + String ASTYANAX_READ_CL = "usergrid.read.cl"; + String ASTYANAX_WRITE_CL = "usergrid.write.cl"; + String SHARD_VALUES = "cassandra.shardvalues"; + String THRIFT_TRANSPORT_SIZE = "cassandra.thrift.transport.frame"; ++ String USERNAME = "cassandra.username"; ++ String PASSWORD = "cassandra.password"; + + // locks cassandra properties + String LOCKS_KEYSPACE_NAME = "cassandra.lock.keyspace"; + String LOCKS_KEYSPACE_REPLICATION = "cassandra.lock.keyspace.replication"; + String LOCKS_KEYSPACE_STRATEGY = "cassandra.lock.keyspace.strategy"; + String LOCKS_CL = "cassandra.lock.cl"; + String LOCKS_SHARED_POOL_FLAG = "cassandra.lock.use_shared_pool"; + String LOCKS_CONNECTIONS = "cassandra.lock.connections"; + String LOCKS_EXPIRATION = "cassandra.lock.expiration.milliseconds"; + + + + + // re-usable default values + String DEFAULT_CONNECTION_POOLSIZE = "15"; + String DEFAULT_LOCKS_EXPIRATION = "3600000"; // 1 hour + String DEFAULT_LOCAL_DC = ""; + String DEFAULT_USERNAME = ""; + String DEFAULT_PASSWORD = ""; + + + @Key( "cassandra.hosts" ) + String getHosts(); + + /** + * Valid options are 1.2, 2.0, 2.1 + * + * @return + */ + @Key( "cassandra.version" ) + @Default( "2.1" ) + String getVersion(); + + @Key( "cassandra.cluster_name" ) + @Default( "Usergrid" ) + String getClusterName(); + + @Key( "cassandra.keyspace.application" ) + @Default( "Usergrid_Applications" ) + String getApplicationKeyspace(); + + @Key( "cassandra.port" ) + @Default( "9160" ) + int getThriftPort(); + + @Key( "cassandra.username" ) + @Default( DEFAULT_USERNAME ) + String getUsername(); + + @Key( "cassandra.password" ) + @Default( DEFAULT_PASSWORD ) + String getPassword(); + + @Key( "cassandra.datacenter.local" ) + @Default( DEFAULT_LOCAL_DC ) + String getLocalDataCenter(); + ++ @Key( USERNAME ) ++ String getUsername(); ++ ++ @Key( PASSWORD ) ++ String getPassword(); ++ + @Key( "cassandra.connections" ) + @Default( DEFAULT_CONNECTION_POOLSIZE ) + int getConnections(); + + @Key( "cassandra.timeout" ) + @Default( "10000" ) + int getTimeout(); + + @Key( "cassandra.timeout.pool" ) + @Default( "5000" ) + int getPoolTimeout(); + + @Key("cassandra.discovery") + @Default( "RING_DESCRIBE" ) + String getDiscoveryType(); + + + @Default("CL_LOCAL_QUORUM") + @Key(ASTYANAX_READ_CL) + String getAstyanaxReadCL(); + + @Default("CL_QUORUM") + @Key(ASTYANAX_READ_CONSISTENT_CL) + String getAstyanaxConsistentReadCL(); + + @Default("CL_LOCAL_QUORUM") + @Key(ASTYANAX_WRITE_CL) + String getAstyanaxWriteCL(); + + + @Default("LOCAL_QUORUM") + @Key(READ_CL) + String getReadCl(); + + @Default("LOCAL_QUORUM") + @Key(WRITE_CL) + String getWriteCl(); + + @Default("SimpleStrategy") + @Key( STRATEGY ) + String getStrategy(); + + @Default("replication_factor:1") + @Key( STRATEGY_OPTIONS ) + String getStrategyOptions(); + + /** + * Return the history of all shard values which are immutable. For instance, if shard values + * are initially set to 20 (the default) then increased to 40, the property should contain the string of + * "20, 40" so that we can read historic data. + * + * @return + */ + @Default("20") + @Key(SHARD_VALUES) + String getShardValues(); + + /** + * Get the thrift transport size. Should be set to what is on the cassandra servers. As we move to CQL, this will become obsolete + * @return + */ + @Key( THRIFT_TRANSPORT_SIZE) + @Default( "15728640" ) + int getThriftBufferSize(); + + + /** + * Returns the name of the keyspace that should be used for Locking + */ + @Key( LOCKS_KEYSPACE_NAME ) + @Default("Locks") + String getLocksKeyspace(); + + /** + * Returns the Astyanax consistency level for writing a Lock + */ + @Key(LOCKS_CL) + @Default("CL_LOCAL_QUORUM") + String getLocksCl(); + + /** + * Returns a flag on whether or not to share the connection pool with other keyspaces + */ + @Key( LOCKS_SHARED_POOL_FLAG ) + @Default("true") + boolean useSharedPoolForLocks(); + + /** + * Returns a flag on whether or not to share the connection pool with other keyspaces + */ + @Key( LOCKS_CONNECTIONS ) + @Default( DEFAULT_CONNECTION_POOLSIZE ) + int getConnectionsLocks(); + + /** + * Returns a flag on whether or not to share the connection pool with other keyspaces + */ + @Key( LOCKS_KEYSPACE_REPLICATION ) + @Default("replication_factor:1") + String getLocksKeyspaceReplication(); + + /** + * Returns a flag on whether or not to share the connection pool with other keyspaces + */ + @Key( LOCKS_KEYSPACE_STRATEGY ) + @Default( "org.apache.cassandra.locator.SimpleStrategy" ) + String getLocksKeyspaceStrategy(); + + /** + * Return the expiration that should be used for expiring a lock if it's not released + */ + @Key( LOCKS_EXPIRATION ) + @Default(DEFAULT_LOCKS_EXPIRATION) + int getLocksExpiration(); + +} http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraClusterImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/corepersistence/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/3c6fcdc7/stack/test-utils/pom.xml ----------------------------------------------------------------------
