rhoconnect 3.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +208 -0
- data/CREDITS +38 -0
- data/Gemfile +18 -0
- data/Gemfile.lock +97 -0
- data/LICENSE +75 -0
- data/README.md +10 -0
- data/Rakefile +82 -0
- data/bench/bench +7 -0
- data/bench/bench_runner.rb +112 -0
- data/bench/benchapp/Gemfile +21 -0
- data/bench/benchapp/Gemfile.lock +76 -0
- data/bench/benchapp/Rakefile +22 -0
- data/bench/benchapp/application.rb +39 -0
- data/bench/benchapp/config.ru +36 -0
- data/bench/benchapp/settings/license.key +1 -0
- data/bench/benchapp/settings/settings.yml +20 -0
- data/bench/benchapp/sources/mock_adapter.rb +55 -0
- data/bench/benchapp/sources/queue_mock_adapter.rb +2 -0
- data/bench/benchapp/spec/sources/mock_adapter_spec.rb +25 -0
- data/bench/benchapp/spec/sources/queue_mock_adapter_spec.rb +25 -0
- data/bench/benchapp/spec/spec_helper.rb +42 -0
- data/bench/blobapp/Gemfile +31 -0
- data/bench/blobapp/Gemfile.lock +103 -0
- data/bench/blobapp/Rakefile +25 -0
- data/bench/blobapp/application.rb +44 -0
- data/bench/blobapp/config.ru +36 -0
- data/bench/blobapp/settings/license.key +1 -0
- data/bench/blobapp/settings/settings.yml +16 -0
- data/bench/blobapp/sources/blob_adapter.rb +71 -0
- data/bench/blobapp/spec/sources/blob_adapter_spec.rb +25 -0
- data/bench/blobapp/spec/spec_helper.rb +42 -0
- data/bench/lib/bench/cli.rb +16 -0
- data/bench/lib/bench/logging.rb +13 -0
- data/bench/lib/bench/mock_client.rb +41 -0
- data/bench/lib/bench/result.rb +50 -0
- data/bench/lib/bench/runner.rb +107 -0
- data/bench/lib/bench/session.rb +67 -0
- data/bench/lib/bench/statistics.rb +56 -0
- data/bench/lib/bench/test_data.rb +98 -0
- data/bench/lib/bench/timer.rb +10 -0
- data/bench/lib/bench/utils.rb +49 -0
- data/bench/lib/bench.rb +129 -0
- data/bench/lib/testdata/100-data.txt +148 -0
- data/bench/lib/testdata/5-data.txt +9 -0
- data/bench/lib/testdata/images/icon.ico +0 -0
- data/bench/lib/testdata/images/icon.png +0 -0
- data/bench/lib/testdata/images/loading-Landscape.png +0 -0
- data/bench/lib/testdata/images/loading-LandscapeLeft.png +0 -0
- data/bench/lib/testdata/images/loading-LandscapeRight.png +0 -0
- data/bench/lib/testdata/images/loading-Portrait.png +0 -0
- data/bench/lib/testdata/images/loading-PortraitUpsideDown.png +0 -0
- data/bench/lib/testdata/images/loading.png +0 -0
- data/bench/lib/testdata/images/loading@2x.png +0 -0
- data/bench/run_bench.sh +42 -0
- data/bench/run_blob_script.sh +3 -0
- data/bench/run_cud_script.sh +3 -0
- data/bench/run_query_md_script.sh +3 -0
- data/bench/run_query_only_script.sh +3 -0
- data/bench/run_query_script.sh +3 -0
- data/bench/scripts/blob_cud_script.rb +98 -0
- data/bench/scripts/cud_script.rb +92 -0
- data/bench/scripts/helpers.rb +101 -0
- data/bench/scripts/query_md_script.rb +45 -0
- data/bench/scripts/query_only_script.rb +51 -0
- data/bench/scripts/query_script.rb +45 -0
- data/bench/spec/bench_spec_helper.rb +33 -0
- data/bench/spec/logging_spec.rb +15 -0
- data/bench/spec/mock_adapter_spec.rb +61 -0
- data/bench/spec/mock_client_spec.rb +65 -0
- data/bench/spec/result_spec.rb +61 -0
- data/bench/spec/utils_spec.rb +36 -0
- data/bin/rhoconnect +34 -0
- data/bin/rhoconnect-setup +84 -0
- data/doc/async-jobs.txt +69 -0
- data/doc/authentication.txt +76 -0
- data/doc/benchmarks.txt +168 -0
- data/doc/blob-sync.txt +130 -0
- data/doc/bulk-sync.txt +102 -0
- data/doc/client.txt +432 -0
- data/doc/command-line.txt +210 -0
- data/doc/contributing.txt +60 -0
- data/doc/deploying.txt +82 -0
- data/doc/install.txt +28 -0
- data/doc/introduction.txt +20 -0
- data/doc/licensing.txt +18 -0
- data/doc/metadata.txt +458 -0
- data/doc/migration.txt +182 -0
- data/doc/public/css/print.css +29 -0
- data/doc/public/css/screen.css +257 -0
- data/doc/public/css/style.css +20 -0
- data/doc/push.txt +135 -0
- data/doc/release.txt +41 -0
- data/doc/rest-api.txt +367 -0
- data/doc/source-adapters.txt +325 -0
- data/doc/stats-middleware.txt +69 -0
- data/doc/testing.txt +222 -0
- data/doc/tutorial.txt +315 -0
- data/doc/web-console.txt +35 -0
- data/examples/simple/Rakefile +14 -0
- data/examples/simple/application.rb +27 -0
- data/examples/simple/config.ru +49 -0
- data/examples/simple/settings/license.key +1 -0
- data/examples/simple/settings/settings.yml +23 -0
- data/examples/simple/sources/sample_adapter.rb +5 -0
- data/examples/simple/sources/simple_adapter.rb +5 -0
- data/generators/rhoconnect.rb +119 -0
- data/generators/templates/application/Gemfile +21 -0
- data/generators/templates/application/Rakefile +22 -0
- data/generators/templates/application/application.rb +39 -0
- data/generators/templates/application/config.ru +36 -0
- data/generators/templates/application/settings/license.key +1 -0
- data/generators/templates/application/settings/settings.yml +14 -0
- data/generators/templates/application/spec/spec_helper.rb +42 -0
- data/generators/templates/source/source_adapter.rb +47 -0
- data/generators/templates/source/source_spec.rb +25 -0
- data/install.sh +408 -0
- data/installer/unix-like/rho_connect_install_checkers.rb +140 -0
- data/installer/unix-like/rho_connect_install_constants.rb +51 -0
- data/installer/unix-like/rho_connect_install_debian.rb +63 -0
- data/installer/unix-like/rho_connect_install_dnd.rb +58 -0
- data/installer/unix-like/rho_connect_install_get_params.rb +30 -0
- data/installer/unix-like/rho_connect_install_installers.rb +142 -0
- data/installer/unix-like/rho_connect_install_utilities.rb +85 -0
- data/installer/unix-like/rho_connect_install_yum.rb +63 -0
- data/installer/unix-like/rhoinstaller.rb +89 -0
- data/installer/utils/create_texts.rb +366 -0
- data/installer/utils/install_test.rb +140 -0
- data/installer/windows/EnvVarUpdate.nsh +328 -0
- data/installer/windows/ServiceLib.nsh +369 -0
- data/installer/windows/configUi.ini +44 -0
- data/installer/windows/icon.ico +0 -0
- data/installer/windows/rhosync.nsi +418 -0
- data/installer/windows/uninstall.bat +7 -0
- data/lib/rhoconnect/api/admin/get_api_token.rb +14 -0
- data/lib/rhoconnect/api/admin/get_license_info.rb +8 -0
- data/lib/rhoconnect/api/admin/login.rb +6 -0
- data/lib/rhoconnect/api/admin/reset.rb +10 -0
- data/lib/rhoconnect/api/admin/stats.rb +21 -0
- data/lib/rhoconnect/api/application/bulk_data.rb +7 -0
- data/lib/rhoconnect/api/application/clientcreate.rb +8 -0
- data/lib/rhoconnect/api/application/clientlogin.rb +6 -0
- data/lib/rhoconnect/api/application/clientregister.rb +6 -0
- data/lib/rhoconnect/api/application/clientreset.rb +6 -0
- data/lib/rhoconnect/api/application/query.rb +7 -0
- data/lib/rhoconnect/api/application/queue_updates.rb +6 -0
- data/lib/rhoconnect/api/application/search.rb +6 -0
- data/lib/rhoconnect/api/client/create_client.rb +3 -0
- data/lib/rhoconnect/api/client/delete_client.rb +5 -0
- data/lib/rhoconnect/api/client/get_client_params.rb +3 -0
- data/lib/rhoconnect/api/client/list_client_docs.rb +12 -0
- data/lib/rhoconnect/api/client/list_clients.rb +3 -0
- data/lib/rhoconnect/api/client/ping.rb +7 -0
- data/lib/rhoconnect/api/source/get_adapter.rb +3 -0
- data/lib/rhoconnect/api/source/get_db_doc.rb +7 -0
- data/lib/rhoconnect/api/source/get_source_params.rb +3 -0
- data/lib/rhoconnect/api/source/list_source_docs.rb +10 -0
- data/lib/rhoconnect/api/source/list_sources.rb +15 -0
- data/lib/rhoconnect/api/source/push_deletes.rb +8 -0
- data/lib/rhoconnect/api/source/push_objects.rb +8 -0
- data/lib/rhoconnect/api/source/save_adapter.rb +3 -0
- data/lib/rhoconnect/api/source/set_db_doc.rb +8 -0
- data/lib/rhoconnect/api/source/set_refresh_time.rb +8 -0
- data/lib/rhoconnect/api/source/upload_file.rb +4 -0
- data/lib/rhoconnect/api/user/create_user.rb +7 -0
- data/lib/rhoconnect/api/user/delete_user.rb +9 -0
- data/lib/rhoconnect/api/user/list_users.rb +3 -0
- data/lib/rhoconnect/api/user/update_user.rb +4 -0
- data/lib/rhoconnect/api_token.rb +19 -0
- data/lib/rhoconnect/app.rb +76 -0
- data/lib/rhoconnect/bulk_data/bulk_data.rb +88 -0
- data/lib/rhoconnect/bulk_data/syncdb.index.schema +4 -0
- data/lib/rhoconnect/bulk_data/syncdb.schema +41 -0
- data/lib/rhoconnect/bulk_data.rb +2 -0
- data/lib/rhoconnect/client.rb +96 -0
- data/lib/rhoconnect/client_sync.rb +412 -0
- data/lib/rhoconnect/console/app/helpers/auth_helper.rb +22 -0
- data/lib/rhoconnect/console/app/helpers/extensions.rb +19 -0
- data/lib/rhoconnect/console/app/helpers/helpers.rb +57 -0
- data/lib/rhoconnect/console/app/public/ThickBox.css +649 -0
- data/lib/rhoconnect/console/app/public/home.css +438 -0
- data/lib/rhoconnect/console/app/public/images/foot_logo_rhoconnect.png +0 -0
- data/lib/rhoconnect/console/app/public/images/header_halo.jpg +0 -0
- data/lib/rhoconnect/console/app/public/images/land_separator.gif +0 -0
- data/lib/rhoconnect/console/app/public/images/landing_header.jpg +0 -0
- data/lib/rhoconnect/console/app/public/images/logo_rhoconnect.png +0 -0
- data/lib/rhoconnect/console/app/public/images/rhomobile_rhohub_logo.png +0 -0
- data/lib/rhoconnect/console/app/public/images/tabs_separator.png +0 -0
- data/lib/rhoconnect/console/app/public/jqplot/excanvas.min.js +35 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.barRenderer.min.js +34 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisLabelRenderer.js +187 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisTickRenderer.js +226 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasTextRenderer.js +408 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.categoryAxisRenderer.min.js +34 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.cursor.js +952 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.js +313 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.min.js +34 -0
- data/lib/rhoconnect/console/app/public/jqplot/jqplot.pointLabels.min.js +34 -0
- data/lib/rhoconnect/console/app/public/jqplot/jquery-1.4.2.min.js +154 -0
- data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.css +1 -0
- data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.js +34 -0
- data/lib/rhoconnect/console/app/public/main.css +7 -0
- data/lib/rhoconnect/console/app/public/reset.css +76 -0
- data/lib/rhoconnect/console/app/public/style.css +2201 -0
- data/lib/rhoconnect/console/app/public/text.txt +0 -0
- data/lib/rhoconnect/console/app/routes/adapter.rb +28 -0
- data/lib/rhoconnect/console/app/routes/auth.rb +29 -0
- data/lib/rhoconnect/console/app/routes/client.rb +31 -0
- data/lib/rhoconnect/console/app/routes/docs.rb +145 -0
- data/lib/rhoconnect/console/app/routes/heroku.rb +19 -0
- data/lib/rhoconnect/console/app/routes/home.rb +63 -0
- data/lib/rhoconnect/console/app/routes/timing.rb +242 -0
- data/lib/rhoconnect/console/app/routes/user.rb +117 -0
- data/lib/rhoconnect/console/app/views/adapter.erb +16 -0
- data/lib/rhoconnect/console/app/views/client.erb +30 -0
- data/lib/rhoconnect/console/app/views/content.erb +14 -0
- data/lib/rhoconnect/console/app/views/doc.erb +8 -0
- data/lib/rhoconnect/console/app/views/docdata.erb +28 -0
- data/lib/rhoconnect/console/app/views/docs.erb +30 -0
- data/lib/rhoconnect/console/app/views/edituser.erb +13 -0
- data/lib/rhoconnect/console/app/views/headermenu.erb +40 -0
- data/lib/rhoconnect/console/app/views/home.erb +24 -0
- data/lib/rhoconnect/console/app/views/index.erb +58 -0
- data/lib/rhoconnect/console/app/views/jqplot.erb +52 -0
- data/lib/rhoconnect/console/app/views/layout.erb +165 -0
- data/lib/rhoconnect/console/app/views/login.erb +26 -0
- data/lib/rhoconnect/console/app/views/newuser.erb +17 -0
- data/lib/rhoconnect/console/app/views/ping.erb +28 -0
- data/lib/rhoconnect/console/app/views/result.erb +11 -0
- data/lib/rhoconnect/console/app/views/rightboxlinks.erb +15 -0
- data/lib/rhoconnect/console/app/views/select_doc.erb +17 -0
- data/lib/rhoconnect/console/app/views/upload_doc.erb +23 -0
- data/lib/rhoconnect/console/app/views/user.erb +29 -0
- data/lib/rhoconnect/console/app/views/users.erb +12 -0
- data/lib/rhoconnect/console/rhoconnect_api.rb +245 -0
- data/lib/rhoconnect/console/server.rb +32 -0
- data/lib/rhoconnect/console.rb +3 -0
- data/lib/rhoconnect/cors.rb +229 -0
- data/lib/rhoconnect/credential.rb +9 -0
- data/lib/rhoconnect/db_adapter.rb +46 -0
- data/lib/rhoconnect/document.rb +49 -0
- data/lib/rhoconnect/dynamic_adapter.rb +91 -0
- data/lib/rhoconnect/generator.rb +1 -0
- data/lib/rhoconnect/jobs/bulk_data_job.rb +203 -0
- data/lib/rhoconnect/jobs/ping_job.rb +46 -0
- data/lib/rhoconnect/jobs/source_job.rb +16 -0
- data/lib/rhoconnect/license.rb +86 -0
- data/lib/rhoconnect/lock_ops.rb +11 -0
- data/lib/rhoconnect/model.rb +414 -0
- data/lib/rhoconnect/ping/android.rb +56 -0
- data/lib/rhoconnect/ping/apple.rb +52 -0
- data/lib/rhoconnect/ping/blackberry.rb +56 -0
- data/lib/rhoconnect/ping.rb +3 -0
- data/lib/rhoconnect/read_state.rb +31 -0
- data/lib/rhoconnect/rho_indifferent_access.rb +88 -0
- data/lib/rhoconnect/server/views/index.erb +13 -0
- data/lib/rhoconnect/server.rb +286 -0
- data/lib/rhoconnect/source.rb +289 -0
- data/lib/rhoconnect/source_adapter.rb +123 -0
- data/lib/rhoconnect/source_sync.rb +302 -0
- data/lib/rhoconnect/stats/middleware.rb +20 -0
- data/lib/rhoconnect/stats/record.rb +108 -0
- data/lib/rhoconnect/store.rb +232 -0
- data/lib/rhoconnect/tasks.rb +350 -0
- data/lib/rhoconnect/test_methods.rb +220 -0
- data/lib/rhoconnect/user.rb +95 -0
- data/lib/rhoconnect/version.rb +3 -0
- data/lib/rhoconnect/x_domain_session_wrapper.rb +53 -0
- data/lib/rhoconnect.rb +285 -0
- data/rhoconnect.gemspec +67 -0
- data/spec/api/admin/api_token_spec.rb +14 -0
- data/spec/api/admin/get_api_token_spec.rb +36 -0
- data/spec/api/admin/get_license_info_spec.rb +38 -0
- data/spec/api/admin/reset_spec.rb +22 -0
- data/spec/api/admin/stats_spec.rb +66 -0
- data/spec/api/api_helper.rb +21 -0
- data/spec/api/application/rhoconnect_api_spec.rb +548 -0
- data/spec/api/client/create_client_spec.rb +13 -0
- data/spec/api/client/delete_client_spec.rb +13 -0
- data/spec/api/client/get_client_params_spec.rb +18 -0
- data/spec/api/client/list_client_docs_spec.rb +32 -0
- data/spec/api/client/list_clients_spec.rb +22 -0
- data/spec/api/client/ping_spec.rb +23 -0
- data/spec/api/rhosync_api_spec.rb.orig +606 -0
- data/spec/api/source/adapter_spec.rb +29 -0
- data/spec/api/source/get_db_doc_spec.rb +21 -0
- data/spec/api/source/get_source_params_spec.rb +32 -0
- data/spec/api/source/list_source_docs_spec.rb +25 -0
- data/spec/api/source/list_sources_spec.rb +26 -0
- data/spec/api/source/push_deletes_spec.rb +18 -0
- data/spec/api/source/push_objects_spec.rb +27 -0
- data/spec/api/source/set_db_doc_spec.rb +19 -0
- data/spec/api/source/set_refresh_time_spec.rb +43 -0
- data/spec/api/source/upload_file_spec.rb +26 -0
- data/spec/api/user/create_user_spec.rb +16 -0
- data/spec/api/user/delete_user_spec.rb +36 -0
- data/spec/api/user/list_users_spec.rb +30 -0
- data/spec/api/user/update_user_spec.rb +31 -0
- data/spec/api_token_spec.rb +14 -0
- data/spec/app_spec.rb +18 -0
- data/spec/apps/emptyapp/application.rb +27 -0
- data/spec/apps/emptyapp/settings/license.key +1 -0
- data/spec/apps/emptyapp/settings/settings.yml +14 -0
- data/spec/apps/rhotestapp/Rakefile +1 -0
- data/spec/apps/rhotestapp/application.rb +19 -0
- data/spec/apps/rhotestapp/config.ru +1 -0
- data/spec/apps/rhotestapp/settings/apple_fake_cert.pem +1 -0
- data/spec/apps/rhotestapp/settings/license.key +1 -0
- data/spec/apps/rhotestapp/settings/settings.yml +36 -0
- data/spec/apps/rhotestapp/sources/base_adapter.rb +9 -0
- data/spec/apps/rhotestapp/sources/fixed_schema_adapter.rb +28 -0
- data/spec/apps/rhotestapp/sources/sample_adapter.rb +71 -0
- data/spec/apps/rhotestapp/sources/simple_adapter.rb +41 -0
- data/spec/apps/rhotestapp/sources/sub_adapter.rb +7 -0
- data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem/mygem.rb +8 -0
- data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem.rb +1 -0
- data/spec/bulk_data/bulk_data_spec.rb +97 -0
- data/spec/client_spec.rb +124 -0
- data/spec/client_sync_spec.rb +774 -0
- data/spec/doc/base.html +72 -0
- data/spec/doc/doc_spec.rb +376 -0
- data/spec/doc/footer.html +4 -0
- data/spec/doc/header.html +30 -0
- data/spec/document_spec.rb +31 -0
- data/spec/dynamic_adapter_spec.rb +43 -0
- data/spec/factories/factories.rb +17 -0
- data/spec/generator/generator_spec.rb +58 -0
- data/spec/generator/generator_spec_helper.rb +9 -0
- data/spec/jobs/bulk_data_job_spec.rb +125 -0
- data/spec/jobs/ping_job_spec.rb +102 -0
- data/spec/jobs/source_job_spec.rb +29 -0
- data/spec/license_spec.rb +66 -0
- data/spec/model_spec.rb +273 -0
- data/spec/perf/bulk_data_perf_spec.rb +32 -0
- data/spec/perf/perf_spec_helper.rb +50 -0
- data/spec/perf/store_perf_spec.rb +27 -0
- data/spec/ping/android_spec.rb +91 -0
- data/spec/ping/apple_spec.rb +70 -0
- data/spec/ping/blackberry_spec.rb +62 -0
- data/spec/read_state_spec.rb +35 -0
- data/spec/rhosync_spec.rb +75 -0
- data/spec/server/cors_spec.rb +287 -0
- data/spec/server/server_spec.rb +470 -0
- data/spec/server/x_domain_session_wrapper_spec.rb +150 -0
- data/spec/source_adapter_spec.rb +125 -0
- data/spec/source_spec.rb +114 -0
- data/spec/source_sync_spec.rb +328 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +231 -0
- data/spec/stats/middleware_spec.rb +53 -0
- data/spec/stats/record_spec.rb +92 -0
- data/spec/store_spec.rb +251 -0
- data/spec/support/shared_examples.rb +168 -0
- data/spec/sync_states_spec.rb +72 -0
- data/spec/test_methods_spec.rb +134 -0
- data/spec/testdata/1000-data.txt +1414 -0
- data/spec/testdata/compressed/compress-data.txt +1 -0
- data/spec/testdata/upload1.txt +1 -0
- data/spec/testdata/upload2.txt +1 -0
- data/spec/user_spec.rb +139 -0
- data/tasks/redis.rake +206 -0
- metadata +706 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
## 3.0.0 (not released)
|
2
|
+
* #1018 user delete now iterates through user sources and deletes data in redis
|
3
|
+
* #11102931 ping api accepts vibrate string and int
|
4
|
+
* #7197617 test spec helpers support pass through
|
5
|
+
* #11944605 implemented pass through feature
|
6
|
+
* #4397476 wrapped login/logoff around cud spec helpers
|
7
|
+
* backtrace logging in source adapter method exceptions
|
8
|
+
* returning string in authenticate instead of true sets the current user login name (Useful for OAuth2)
|
9
|
+
* #11904353 - fixed broken 'rake console' task, added new 'rhosync' namespace: 'rake rhosync:console'
|
10
|
+
* #12105115 - removed unnecessary log4r dependency
|
11
|
+
* added bundler to manage gem's dependencies, migrated from rspec1 to rspec2
|
12
|
+
* #5687948 - fixed issue "iPhone push specs failed"
|
13
|
+
* use redis 2.2.12 by default
|
14
|
+
* added SystemTimer gem dependency (used only on posix systems)
|
15
|
+
* #13616807 - Rake task spec:all fails for enterprise ruby (ree)
|
16
|
+
* #13776713 - Rake -v 0.9.0 breaks rhosync rake tasks
|
17
|
+
* #14514773 - REST API push_object, push_deletes :md_size count fix
|
18
|
+
* #5687948 - fixed issue "iPhone push specs failed"
|
19
|
+
* #12854737 - string vs. symbol problem in ruby 1.9 model.rb (contribute to ruby 1.9 support)
|
20
|
+
* #11692191 - ruby 1.9 support
|
21
|
+
* #2020980 - Test on JRuby. Code reworked to fully support JRuby platform.
|
22
|
+
* #14087743 - Merging the /login and /get_api_token methods.
|
23
|
+
* #14713569 - Moving all Server REST API calls into namespaces.
|
24
|
+
* #14284841 - Merge ruby_19 branch into master
|
25
|
+
* #14784949 - Suppress rake -v 0.9.2 warning messages while running tasks.
|
26
|
+
* #3174947 - RESTful routes for client management
|
27
|
+
* #14968209 - Generated Specs are failing on 2nd generated source
|
28
|
+
* #15270505 - sqlite3 is not listed as a dependency of rhosync gem (3.0.0)
|
29
|
+
* #15143911 - Schema Changed message from Zendesk ticket #1035 (merge from branch 2-1-stable 2.1.9)
|
30
|
+
* #14950665 - Benchmark application and libraries: rework REST calls to match new API restful routes.
|
31
|
+
* #14860303 - In bench tests x_domain_session_wrapper middleware not working under ruby 1.9.2.
|
32
|
+
* #15615327 - Rhoconnect migration
|
33
|
+
* #15730829 - added migration guidelines doc
|
34
|
+
* #14286067 - jruby rhosync:start : console doesn't work
|
35
|
+
* #14286249 - jruby WAR file deployed , some of the links are broken in console window, should use the relative paths
|
36
|
+
* #14285867 - jruby rhosync:start should have run with dtach
|
37
|
+
* #17526603 - implement clientreset support for specified sources
|
38
|
+
|
39
|
+
## 2.1.10 (2011-08-17)
|
40
|
+
* #16001227 - raise exceptions on c2dm errors
|
41
|
+
* #1018 - delete read state for user as well
|
42
|
+
|
43
|
+
## 2.1.9 (2011-07-01)
|
44
|
+
* #15143911 - Fix for incident schema changed message
|
45
|
+
|
46
|
+
## 2.1.8 (2011-06-29)
|
47
|
+
* #1018 - added functionality to delete user source data on user delete
|
48
|
+
* updated to rake 0.9.2
|
49
|
+
* #14911833 - Add support for rolling back updates on sync errors
|
50
|
+
|
51
|
+
## 2.1.7 (2011-05-31)
|
52
|
+
* #14021681 - check for client on client_sync class methods
|
53
|
+
* #14082861 - expose Store.lock timeout to high-level functions
|
54
|
+
* #14082589 - fixed source loading so a unique instance is loaded
|
55
|
+
* #14124195 - concurrency issue under load for same user via push_objects api
|
56
|
+
* #14511763 - added global options `raise_on_expired_lock` (true/false) and `lock_duration` (sec) settings
|
57
|
+
|
58
|
+
## 2.1.6 (2011-05-25)
|
59
|
+
* #13830841 - fixed issue where current_user.login doesn't match @source.user_id
|
60
|
+
|
61
|
+
## 2.1.5 (2011-05-24)
|
62
|
+
* #13578473 - fixed "undefined method `user_id' for nil:NilClass" error in server.rb
|
63
|
+
|
64
|
+
## 2.1.4 (2011-05-20)
|
65
|
+
* #13354369 - bug fix "rhosync bootstrap process shouldn't store sources in redis"
|
66
|
+
|
67
|
+
## 2.1.3 (2011-05-05)
|
68
|
+
* #4398193 - ping should only send push messages to unique device pin list
|
69
|
+
* #13022667 - settings.yml doesn't work for setting external Redis instances
|
70
|
+
|
71
|
+
## 2.1.2 (2011-03-18)
|
72
|
+
* Use server-dir/redis.conf if not found at RedisRunner.prefix (via artemk)
|
73
|
+
* #8471337 - switch client user if it is not equal to current_user
|
74
|
+
* Upgrade rest-client dependency which includes cookie escape fix
|
75
|
+
* #10097347 - generate cryptographically secure secret key by default
|
76
|
+
* Fixed 'application/json; charset=UTF-8' content handling in the server before filter
|
77
|
+
* #11017509 - fixed sinatra 1.2 incompatibility with url() helper
|
78
|
+
* #4569337 - use redis 2.2.2 by default
|
79
|
+
* #4398193 - ping should only send push messages to unique device pin list
|
80
|
+
|
81
|
+
## 2.1.1 (2011-01-04)
|
82
|
+
* #7679395 - added support for gzipped bulk data files
|
83
|
+
* #8167507 - fixed typo in console login page
|
84
|
+
* #7025387 - customizable redis.conf for windows
|
85
|
+
|
86
|
+
## 2.1.0
|
87
|
+
* #4302316 - don't allow set blank admin password
|
88
|
+
* #5672322 - stats for user count
|
89
|
+
* #5672316 - stats for device count
|
90
|
+
* #5717916 - stats api call
|
91
|
+
* #5821277 - http stats by source not showing
|
92
|
+
* #5899454 - move lock prefix to beginning so we don't return stats keys with it
|
93
|
+
* #5822966 - bulk sync data file cannot handle space in the username
|
94
|
+
* #6450519 - blob sync resend_page doesn't send metadata
|
95
|
+
* #4646791 - cryptic error message if client exists, but source name is bogus
|
96
|
+
* #6827511 - fill in schema column in bulk sync file sources table
|
97
|
+
* #4490679 - support schema method in source adapter (runtime schema for bulk data)
|
98
|
+
* #6573429 - if schema changed in any adapter, invalidate bulk data file
|
99
|
+
* #7034095 - don't ping device if device_pin is empty or nil
|
100
|
+
* #7089047 - fixed application.rb template store_blob method
|
101
|
+
* #7055889 - fixed schema tables should have 'object' primary key
|
102
|
+
* #6011821 - try to make bin_dir on redis:install and dtach:install
|
103
|
+
|
104
|
+
## 2.0.9 (2010-10-14)
|
105
|
+
* #5154725 - stats framework
|
106
|
+
* #5013521 - new web interface style
|
107
|
+
* #5615901 - fixing hsqldata bulk data file format
|
108
|
+
* #5672140 - http request timings middleware
|
109
|
+
* #5672148 - source adapter execution timings
|
110
|
+
* #5620719 - session secret override didn't work
|
111
|
+
* #3713049 - added support for Android Cloud to Device Messaging
|
112
|
+
|
113
|
+
## 2.0.8 (2010-10-08)
|
114
|
+
* #5185540 - don't try to load licensefile if env var exists
|
115
|
+
* #5246936 - changed settings.yml-belongs_to format to use array instead of hash
|
116
|
+
* #5578580 - allow Store.db to accept an existing redis object (useful for overriding redis settings)
|
117
|
+
|
118
|
+
## 2.0.7 (2010-09-13)
|
119
|
+
* #4893692 - fixed infinite search loop
|
120
|
+
* search properly handles multiple page results
|
121
|
+
|
122
|
+
## 2.0.6 (2010-08-25)
|
123
|
+
* #4701421 - dbfile url has junk characters
|
124
|
+
* #4731763 - support 'apple' device type, deprecate 'iphone' device type
|
125
|
+
* #4763532 - sound was missing from BB pap message
|
126
|
+
|
127
|
+
## 2.0.5 (2010-08-10)
|
128
|
+
* #4650808 - use ENV['RHOSYNC_LICENSE'] if it exists
|
129
|
+
* #4650820 - added UI checkbox for direct api calls
|
130
|
+
|
131
|
+
## 2.0.4 (2010-08-04)
|
132
|
+
* #3624650 - support redis-rb ~>2.0.0
|
133
|
+
* #4480303 - support connection to redis uri, if ENV[REDIS_URL] exists
|
134
|
+
* #4565808 - support direct ruby api calls
|
135
|
+
|
136
|
+
## 2.0.3 (2010-07-21)
|
137
|
+
* #4379293 - don't fail ping job if device type is nil or empty, just skip the device
|
138
|
+
|
139
|
+
## 2.0.2 (2010-07-16)
|
140
|
+
* #4236653 - add confirmation to console and task reset
|
141
|
+
* #3582679 - added rhosync:set_admin_password task
|
142
|
+
|
143
|
+
## 2.0.1 (2010-07-01)
|
144
|
+
* #4124559 - rake redis:install fails due to redis build changes, require 1.3.12 for now
|
145
|
+
* #4094373 - default task is now rhosync:spec
|
146
|
+
|
147
|
+
## 2.0.0.rc2, 2.0.0 (2010-06-28)
|
148
|
+
* #4040573 - sqlite3-ruby v1.3.0 breaks bulk data tests, require ~>1.2.5 for now
|
149
|
+
|
150
|
+
## 2.0.0.rc1
|
151
|
+
* dupe tag of 2.0.0.beta13
|
152
|
+
|
153
|
+
## 2.0.0.beta13
|
154
|
+
* #3417862 - namespacing issue with HashWithIndifferentAccess
|
155
|
+
|
156
|
+
## 2.0.0.beta12
|
157
|
+
* #3851464 - log every error in client post parsing
|
158
|
+
* #3795105 - store associations in sources table for bulk data
|
159
|
+
|
160
|
+
## 2.0.0.beta11
|
161
|
+
* #3850478 - fix hardcoded hsqldata.jar path
|
162
|
+
|
163
|
+
## 2.0.0.beta10
|
164
|
+
* #3662891 - adding rhosync:flushdb rake task
|
165
|
+
* #3742919 - fixing sources json structure according to http://wiki.rhomobile.com/index.php/Rhom#Source_Configuration_Protocol
|
166
|
+
* #3740205 - changed default admin user to 'rhoadmin'
|
167
|
+
|
168
|
+
## 2.0.0.beta9
|
169
|
+
* #3565139 - return better error message if client/source is unknown
|
170
|
+
* #3616601 - added blob_attribs to bulk data job file
|
171
|
+
* #3576126 - added expire_bulk_data source adapter method
|
172
|
+
* #3576151 - trigger new bulk data job if any relevant dbfiles are missing
|
173
|
+
* #3707791 - fixing ROOT_PATH problem on windows
|
174
|
+
|
175
|
+
## 2.0.0.beta8
|
176
|
+
* #3685476 - CGI escape api cookies
|
177
|
+
|
178
|
+
## 2.0.0.beta7
|
179
|
+
* #3651932 - support redis:* tasks on windows and linux/mac
|
180
|
+
* #3663335 - don't need ENV['PWD'] in tasks.rb
|
181
|
+
|
182
|
+
## 2.0.0.beta6
|
183
|
+
* no new changes, rubygems.org upload failed for 2.0.0.beta5
|
184
|
+
|
185
|
+
## 2.0.0.beta5
|
186
|
+
* #3628036 - support loading generator from gem
|
187
|
+
|
188
|
+
## 2.0.0.beta4
|
189
|
+
* #3316030 - added rspec test framework
|
190
|
+
* #3557341 - create new bulk data instance if the file is missing
|
191
|
+
* #3415335 - support fixed schema models
|
192
|
+
* #3582235 - report error if client-posted json doesn't parse (instead of crashing server)
|
193
|
+
|
194
|
+
## 2.0.0.beta3
|
195
|
+
* #3316030 - added source adapter spec helper + infrastructure
|
196
|
+
* #3475519 - return exception string on 401 / 500 login errors
|
197
|
+
* #3513037 - re-animated bulk sync feature
|
198
|
+
* #3511533 - added stash_result source adapter utility - useful for huge datasets
|
199
|
+
* #3539092 - added rake rhosync:web task
|
200
|
+
|
201
|
+
## 2.0.0.beta2
|
202
|
+
* #3416343 - unify rake tasks to work on windows & Mac OS / *nix
|
203
|
+
|
204
|
+
## 2.0.0.beta1
|
205
|
+
* New implementation of RhoSync using redis storage engine
|
206
|
+
* Support for modular routes (console & resque frontend optional)
|
207
|
+
* Bulk Data synchronization
|
208
|
+
* REST api for server management
|
data/CREDITS
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
RhoConnect uses following other projects:
|
2
|
+
|
3
|
+
Ruby language 1.8.7 (http://www.ruby-lang.org/en/downloads/)
|
4
|
+
License: GPL or Ruby own license (http://www.ruby-lang.org/en/about/license.txt)
|
5
|
+
|
6
|
+
Redis 2.2.x (http://redis.io)
|
7
|
+
License: BSD (https://github.com/antirez/redis/blob/master/COPYING)
|
8
|
+
|
9
|
+
Resque 1.13.0 (https://github.com/defunkt/resque)
|
10
|
+
License: MIT-like (https://github.com/defunkt/resque/blob/master/LICENSE)
|
11
|
+
|
12
|
+
Sinatra 1.1.3 (http://www.sinatrarb.com/)
|
13
|
+
License: MIT-like (https://github.com/sinatra/sinatra/blob/master/LICENSE)
|
14
|
+
|
15
|
+
sqlite3-ruby 1.2.5 (http://github.com/luislavena/sqlite3-ruby)
|
16
|
+
License: MIT-like (https://github.com/luislavena/sqlite3-ruby/blob/master/LICENSE)
|
17
|
+
|
18
|
+
uuidtools 2.1.1 (https://github.com/sporkmonger/uuidtools/)
|
19
|
+
License: MIT-like (https://github.com/sporkmonger/uuidtools/blob/master/LICENSE)
|
20
|
+
|
21
|
+
rest-client 1.6.1 (https://github.com/archiloque/rest-client)
|
22
|
+
License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
23
|
+
|
24
|
+
json 1.4.6 (http://flori.github.com/json/)
|
25
|
+
License: GPL2 or Ruby (http://www.ruby-lang.org/en/LICENSE.txt)
|
26
|
+
|
27
|
+
templater 1.0.0 (https://github.com/jnicklas/templater)
|
28
|
+
License: MIT (https://github.com/jnicklas/templater)
|
29
|
+
|
30
|
+
Apache 2.2 (http://httpd.apache.org)
|
31
|
+
License: Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
32
|
+
|
33
|
+
thin 1.2.8 (https://github.com/macournoyer/thin)
|
34
|
+
License: MIT (https://github.com/macournoyer/thin/blob/master/COPYING)
|
35
|
+
|
36
|
+
bundler 1.0.10 (http://gembundler.com/)
|
37
|
+
License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
38
|
+
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in rhoconnect.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
platforms :jruby do
|
7
|
+
gem 'trinidad'
|
8
|
+
gem 'warbler'
|
9
|
+
end
|
10
|
+
|
11
|
+
group :development do
|
12
|
+
gem 'rspec', '~> 2.6.0'
|
13
|
+
gem 'rcov', '>= 0.9.8'
|
14
|
+
gem 'ffaker', '~> 1.8.0'
|
15
|
+
gem 'rack-test', '>= 0.5.3', :require => 'rack/test'
|
16
|
+
gem 'thor', '>= 0.13.6'
|
17
|
+
gem 'webmock', '~> 1.6.4'
|
18
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
rhoconnect (3.0.0.beta1)
|
5
|
+
SystemTimer (~> 1.2.3)
|
6
|
+
bundler (~> 1.0)
|
7
|
+
json (~> 1.5.0)
|
8
|
+
rake (= 0.9.2)
|
9
|
+
redis (>= 2.2.0)
|
10
|
+
resque (~> 1.17.0)
|
11
|
+
rest-client (~> 1.6.1)
|
12
|
+
rubyzip (~> 0.9.4)
|
13
|
+
sinatra (~> 1.2)
|
14
|
+
sqlite3 (>= 1.3.3)
|
15
|
+
templater (~> 1.0.0)
|
16
|
+
uuidtools (>= 2.1.1)
|
17
|
+
|
18
|
+
GEM
|
19
|
+
remote: http://rubygems.org/
|
20
|
+
specs:
|
21
|
+
SystemTimer (1.2.3)
|
22
|
+
addressable (2.2.6)
|
23
|
+
crack (0.1.8)
|
24
|
+
diff-lcs (1.1.3)
|
25
|
+
extlib (0.9.15)
|
26
|
+
ffaker (1.8.0)
|
27
|
+
highline (1.6.2)
|
28
|
+
jruby-jars (1.6.4)
|
29
|
+
jruby-rack (1.0.10)
|
30
|
+
json (1.5.4)
|
31
|
+
json (1.5.4-java)
|
32
|
+
mime-types (1.16)
|
33
|
+
rack (1.3.2)
|
34
|
+
rack-test (0.6.1)
|
35
|
+
rack (>= 1.0)
|
36
|
+
rake (0.9.2)
|
37
|
+
rcov (0.9.10)
|
38
|
+
rcov (0.9.10-java)
|
39
|
+
redis (2.2.2)
|
40
|
+
redis-namespace (1.0.3)
|
41
|
+
redis (< 3.0.0)
|
42
|
+
resque (1.17.1)
|
43
|
+
json (>= 1.4.6, < 1.6)
|
44
|
+
redis-namespace (~> 1.0.2)
|
45
|
+
sinatra (>= 0.9.2)
|
46
|
+
vegas (~> 0.1.2)
|
47
|
+
rest-client (1.6.7)
|
48
|
+
mime-types (>= 1.16)
|
49
|
+
rspec (2.6.0)
|
50
|
+
rspec-core (~> 2.6.0)
|
51
|
+
rspec-expectations (~> 2.6.0)
|
52
|
+
rspec-mocks (~> 2.6.0)
|
53
|
+
rspec-core (2.6.4)
|
54
|
+
rspec-expectations (2.6.0)
|
55
|
+
diff-lcs (~> 1.1.2)
|
56
|
+
rspec-mocks (2.6.0)
|
57
|
+
rubyzip (0.9.4)
|
58
|
+
sinatra (1.2.6)
|
59
|
+
rack (~> 1.1)
|
60
|
+
tilt (< 2.0, >= 1.2.2)
|
61
|
+
sqlite3 (1.3.4)
|
62
|
+
templater (1.0.0)
|
63
|
+
diff-lcs (>= 1.1.2)
|
64
|
+
extlib (>= 0.9.5)
|
65
|
+
highline (>= 1.4.0)
|
66
|
+
thor (0.14.6)
|
67
|
+
tilt (1.3.3)
|
68
|
+
trinidad (1.2.3)
|
69
|
+
jruby-rack (>= 1.0.9)
|
70
|
+
trinidad_jars (>= 1.0.1)
|
71
|
+
trinidad_jars (1.0.1)
|
72
|
+
uuidtools (2.1.2)
|
73
|
+
vegas (0.1.8)
|
74
|
+
rack (>= 1.0.0)
|
75
|
+
warbler (1.3.2)
|
76
|
+
jruby-jars (>= 1.4.0)
|
77
|
+
jruby-rack (>= 1.0.0)
|
78
|
+
rake (>= 0.8.7)
|
79
|
+
rubyzip (>= 0.9.4)
|
80
|
+
webmock (1.6.4)
|
81
|
+
addressable (> 2.2.5, ~> 2.2)
|
82
|
+
crack (>= 0.1.7)
|
83
|
+
|
84
|
+
PLATFORMS
|
85
|
+
java
|
86
|
+
ruby
|
87
|
+
|
88
|
+
DEPENDENCIES
|
89
|
+
ffaker (~> 1.8.0)
|
90
|
+
rack-test (>= 0.5.3)
|
91
|
+
rcov (>= 0.9.8)
|
92
|
+
rhoconnect!
|
93
|
+
rspec (~> 2.6.0)
|
94
|
+
thor (>= 0.13.6)
|
95
|
+
trinidad
|
96
|
+
warbler
|
97
|
+
webmock (~> 1.6.4)
|
data/LICENSE
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
An online copy of the following license is available here: http://rhomobile.com/products/rhosync/license/
|
2
|
+
|
3
|
+
This RhoSync Commercial License Agreement is a legal agreement between Rhomobile Inc. ("Rhomobile"), and Licensee (either an individual or a legal entity, hereafter referred to as "Licensee") for the Licensed Software (as defined below). The Licensed Software is not open source software and this is not an open source license.
|
4
|
+
|
5
|
+
1. DEFINITIONS
|
6
|
+
Affiliate of a Party shall mean an entity (i) which is directly or indirectly controlling such Party; (ii) which is under the same direct or indirect ownership or control as such Party; or (iii) which is directly or indirectly owned or controlled by such Party.
|
7
|
+
|
8
|
+
Licensee Application shall mean an application (a) developed using a license under Rhomobile's Rhodes framework and (b) which runs on a Mobile Device and synchronizes through the Licensed Software running on a server.
|
9
|
+
|
10
|
+
Licensed Software shall mean the RhoSync computer software, online or electronic documentation, associated media and printed materials, including the source code, example programs and the documentation delivered by Rhomobile to Licensee in conjunction with this Agreement.
|
11
|
+
|
12
|
+
Support shall mean standard developer support that is provided by Rhomobile to assist eligible Designated Users in using the Licensed Software in accordance with its established standard support procedures.
|
13
|
+
|
14
|
+
Updates shall mean a release or version of the Licensed Software containing enhancements, new features, bug fixes, error corrections and other changes that are generally made available to users of the Licensed Software that have contracted for maintenance and support.
|
15
|
+
|
16
|
+
Device shall mean a specific physical mobile device that interacts with the Licensed Software
|
17
|
+
|
18
|
+
2. OWNERSHIP
|
19
|
+
The Licensed Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The Licensed Software is licensed, not sold.
|
20
|
+
|
21
|
+
Rhomobile shall own all right, title and interest including the intellectual property rights in and to the information on bug fixes or error corrections relating to the Licensed Software that are submitted by Licensee to Rhomobile as well as any intellectual property rights to the correction of any errors, if any. To the extent any rights do not automatically vest in Rhomobile, Licensee assigns, and shall ensure that all of its Affiliates, agents, subcontractors and employees assign, all such rights to Rhomobile.
|
22
|
+
|
23
|
+
3. VALIDITY OF THE AGREEMENT
|
24
|
+
By installing, copying, or otherwise using the Licensed Software, Licensee agrees to be bound by the terms of this Agreement. If Licensee does not agree to the terms of this Agreement, Licensee may not install, copy, or otherwise use the Licensed Software. In addition, by installing, copying, or otherwise using any Updates or other components of the Licensed Software that Licensee receives separately as part of the Licensed Software, Licensee agrees to be bound by any additional license terms that accompany such Updates, if any. If Licensee does not agree to the additional license terms that accompany such Updates, Licensee may not install, copy, or otherwise use such Updates. Upon Licensee's acceptance of the terms and conditions of this Agreement and payment of the licensee fee, Rhomobile grants Licensee the right to use the Licensed Software in the manner provided below.
|
25
|
+
|
26
|
+
4. LICENSE GRANT
|
27
|
+
|
28
|
+
4.1 Grant
|
29
|
+
Subject to the terms and conditions of this Agreement, Rhomobile grants to Licensee a non-exclusive, non-transferable, non-sublicensable license to install and use the Licensed Software as contemplated in the applicable documentation and the applicable invoice for the Licensed Software. Licensee is not granted any rights or licenses in the Licensed Software other than those rights expressly granted in this Agreement. Unless otherwise provided in an invoice from Rhomobile or Rhomobile authorized third party sublicensor, Licensee may only install and use the Licensed Software on a single computer ("Server"). If Licensee is explicitly granted a multiple Server license by Rhomobile, or Rhomobile authorized third party sublicensor in an invoice, Licensee may install and use the Licensed Software on not more than the number of Servers listed in the applicable invoice. All uses of the Licensed Software must be in accordance with the documentation provided for the Licensed Software. The Licensed Software is licensed only to Licensee and may not be transferred to any other person or entity without Rhomobile's prior written authorization. Any authorized transferee of the Licensed Software shall be bound in writing by the terms and conditions of this Agreement. In no event may Licensee transfer, assign, rent, lease, sell, or otherwise dispose of the Licensed Software on a temporary or permanent basis except as expressly provided herein. The license granted herein will automatically terminate in the event of any violation of this Agreement by Licensee.
|
30
|
+
|
31
|
+
4.2 Capacity Restrictions
|
32
|
+
The Licensed Software shall only be used to support the number of Devices and the number of Licensee Applications set forth in the applicable invoice and paid for. To replace a Device with a new Device for purposes of determining how many Devices are being supported at any one time, the replaced Device must be removed from the RhoSync directory. Increases in the number of Devices and/or the number of Licensee Applications being supported by the Licenses Software must be purchased in advance.
|
33
|
+
|
34
|
+
5 LIMITED WARRANTY AND WARRANTY DISCLAIMER
|
35
|
+
Rhomobile warrants to Licensee for a period of ninety (90) days from the date of Licensee's receipt of the Licensed Software (the "Warranty Period") that the Licensed Software as delivered will conform substantially to Rhomobile's then-current published functional specifications set forth in the documentation for the Licensed Software when installed and operated as contemplated in such documentation. In the event of any nonconformity, Rhomobile (or its designee) may, in its sole discretion, either (i) remedy the nonconformity within a reasonable period after notice and verification thereof or (ii) refund the amount Licensee paid for the Software and terminate this Agreement and the license granted herein; provided, however, that Licensee must return the original and all copies of the Licensed Software to Rhomobile or its authorized representative before Licensee will be entitled to receive any such refund. THIS SECTION 5 STATES LICENSEE'S SOLE REMEDY FOR A BREACH OF THE LIMITED WARRANTY OF THE LICENSED SOFTWARE.
|
36
|
+
|
37
|
+
EXCEPT AS SET FORTH IN SECTION 6, THE LICENSED SOFTWARE IS PROVIDED BY RHOMOBILE AND ITS LICENSORS "AS IS" WITHOUT ANY WARRANTY OF ANY KIND INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. NEITHER RHOMOBILE NOR ITS LICENSORS WARRANT THAT THE LICENSED SOFTWARE IS ERROR-FREE OR THAT IT WILL OPERATE WITHOUT INTERRUPTION. NEITHER RHOMOBILE NOR ITS LICENSORS WARRANT, GUARANTEE OR MAKE ANY REPRESENTATION REGARDING THE USE, OR THE RESULTS OF THE USE OF THE LICENSED SOFTWARE INCLUDING, WITHOUT LIMITATION, THE CORRECTNESS, ACCURACY OR RELIABILITY OF SUCH USE OR RESULTS. LICENSEE ACKNOWLEDGES AND AGREES THAT RHOMOBILE IS NOT RESPONSIBLE FOR AND WILL HAVE NO LIABILITY FOR HARDWARE, SOFTWARE, CONTENT OR OTHER ITEMS OR ANY SERVICES PROVIDED BY ANY PERSONS OTHER THAN RHOMOBILE.
|
38
|
+
|
39
|
+
6. LIMITATION OF LIABILITY
|
40
|
+
TO THE MAXIMUM EXTENT PERMITTED BY LAW, RHOMOBILE AND ITS LICENSORS WILL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS AGREEMENT UNDER ANY CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHER LEGAL OR EQUITABLE THEORY FOR: (I) ANY AMOUNTS IN EXCESS IN THE AGGREGATE OF THE AMOUNTS YOU PAID FOR THE LICENSED SOFTWARE; (II) ANY LOST DATA OR OTHER EXEMPLARY, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, LOSS OF DATA, OR ANY AND ALL LOST PROFITS, EVEN IF RHOMOBILE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (III) THE COST OF PROCURING SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY. THE LIMITATION OF LIABILITY SET FORTH IN THIS SECTION 6 SHALL NOT APPLY TO THE EXTENT PROHIBITED BY APPLICABLE LAW.
|
41
|
+
|
42
|
+
7. SUPPORT AND UPDATES
|
43
|
+
Licensee shall be eligible to receive Support and Updates for one year from the date of the delivery of the Licensed Software to Licensee, in accordance with Rhomobile's then current policies and procedures, if any. After that time period the customer shall be entitled to execute a maintenance agreement which will entitle them to ongoing support and updates. Licensee may purchase additional Support and Updates following the Initial Term at 18% of the original price of the Licensed Software.
|
44
|
+
|
45
|
+
8. EXPORT
|
46
|
+
|
47
|
+
Licensee acknowledges that the Licensed Software may be subject to the export and import control laws of the United States and any country where the Licensed Software is manufactured or received. Licensee agrees not to violate any such laws. Licensee further agrees not to export the Licensed Software to any prohibited country, entity or person for which an export license or other governmental approval is required. Obtaining any necessary governmental approval or licenses is solely the obligation of Licensee.
|
48
|
+
|
49
|
+
9. GENERAL PROVISIONS
|
50
|
+
|
51
|
+
9.1 Marketing
|
52
|
+
Rhomobile may include Licensee's company name and logo in a publicly available list of Rhomobile Licensees and in its public communications.
|
53
|
+
|
54
|
+
9.2 No Assignment
|
55
|
+
Licensee shall not be entitled to assign or transfer all or any of its rights, benefits and obligations under this Agreement without the prior written consent of Rhomobile, which shall not be unreasonably withheld.
|
56
|
+
|
57
|
+
9.3 Termination
|
58
|
+
This Agreement will remain in force until terminated. Licensee may terminate this Agreement at any time upon providing written notice thirty days in advance of the termination. Rhomobile may terminate this Agreement if Licensee breaches any of the terms or conditions hereunder. Licensee agrees to destroy or return to Rhomobile the original and all copies of the Licensed Software immediately upon any termination of this Agreement, and certify the same in writing if requested.
|
59
|
+
|
60
|
+
9.4 Surviving Sections
|
61
|
+
Any terms and conditions that by their nature or otherwise reasonably should survive a cancellation or termination of this Agreement shall also be deemed to survive. Such terms and conditions include, but are not limited to the following Sections: 2, 4, 5, 6, 7, 8, 9, 11, and 12of this Agreement. Notwithstanding the foregoing, Section 4.1 shall not survive if the Agreement is terminated for material breach.
|
62
|
+
|
63
|
+
9.5 Entire Agreement
|
64
|
+
This Agreement constitutes the complete agreement between the parties and supersedes all prior or contemporaneous discussions, representations, and proposals, written or oral, with respect to the subject matters discussed herein No modification of this Agreement shall be effective unless contained in a writing executed by an authorized representative of each party. No term or condition contained in Licensee's purchase order shall apply unless expressly accepted by Rhomobile in writing. If any provision of the Agreement is found void or unenforceable, the remainder shall remain valid and enforceable according to its terms. If any remedy provided is determined to have failed for its essential purpose, all limitations of liability and exclusions of damages set forth in this Agreement shall remain in effect.
|
65
|
+
|
66
|
+
9.6 Notices
|
67
|
+
Any notice given by one party to the other shall be deemed properly given and deemed received if specifically acknowledged by the receiving party in writing or when successfully delivered to the recipient by hand, fax, or special courier during normal business hours on a business day to the addresses specified below. Each communication and document made or delivered by one party to the other party pursuant to this Agreement shall be in the English language or accompanied by a translation thereof.
|
68
|
+
Notices to Rhomobile shall be given to:
|
69
|
+
|
70
|
+
Rhomobile, Inc.
|
71
|
+
3031 Tisch Way Suite 1002
|
72
|
+
San Jose, CA 95128
|
73
|
+
|
74
|
+
9.7 Governing Law and Legal Venue
|
75
|
+
This Agreement shall be governed by and construed in accordance with the federal laws of the United States of America and the internal laws of the State of California without giving effect to any choice of law rule that would result in the application of the laws of any other jurisdiction. The United Nations Convention on Contracts for the International Sale of Goods (CISG) shall not apply. Each Party (a) hereby irrevocably submits itself to and consents to the jurisdiction of the United States District Court for the Northern District of California (or if such court lacks jurisdiction, the state courts of the State of California) for the purposes of any action, claim, suit or proceeding between the Parties in connection with any controversy, claim, or dispute arising out of or relating to this Agreement; and (b) hereby waives, and agrees not to assert by way of motion, as a defense or otherwise, in any such action, claim, suit or proceeding, any claim that is not personally subject to the jurisdiction of such court(s), that the action, claim, suit or proceeding is brought in an inconvenient forum or that the venue of the action, claim, suit or proceeding is improper.
|
data/README.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
RhoConnect App Integration Server
|
2
|
+
-------------------------------------------------------------
|
3
|
+
RhoConnect is an app integration server which keeps enterprise data current and available on users’ devices.
|
4
|
+
|
5
|
+
More Info
|
6
|
+
-------------------------------------------------------------
|
7
|
+
* Intro to Rhodes & RhoConnect: <http://docs.rhomobile.com>
|
8
|
+
* RhoConnect: <http://docs.rhomobile.com/rhoconnect/introduction>
|
9
|
+
* Tutorial: <http://docs.rhomobile.com/rhoconnect/tutorial>
|
10
|
+
* RDoc (still rough): <http://rdoc.info/projects/rhomobile/rhoconnect>
|
data/Rakefile
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
load 'tasks/redis.rake'
|
3
|
+
|
4
|
+
require 'bundler'
|
5
|
+
Bundler.setup(:default, :development, :test)
|
6
|
+
|
7
|
+
require 'yaml'
|
8
|
+
$:.unshift File.join(File.dirname(__FILE__),'lib')
|
9
|
+
require 'rhoconnect'
|
10
|
+
|
11
|
+
include Rake::DSL
|
12
|
+
task :default => 'spec:all'
|
13
|
+
task :spec => 'spec:spec'
|
14
|
+
|
15
|
+
begin
|
16
|
+
require 'rspec/core/rake_task'
|
17
|
+
require 'rcov/rcovtask'
|
18
|
+
|
19
|
+
TYPES = {
|
20
|
+
:spec => 'spec/*_spec.rb',
|
21
|
+
:perf => 'spec/perf/*_spec.rb',
|
22
|
+
:server => 'spec/server/*_spec.rb',
|
23
|
+
:api => 'spec/api/**/*_spec.rb',
|
24
|
+
:bulk => 'spec/bulk_data/*_spec.rb',
|
25
|
+
:jobs => 'spec/jobs/*_spec.rb',
|
26
|
+
:stats => 'spec/stats/*_spec.rb',
|
27
|
+
:ping => 'spec/ping/*_spec.rb',
|
28
|
+
:generator => 'spec/generator/*_spec.rb',
|
29
|
+
:bench => 'bench/spec/*_spec.rb'
|
30
|
+
}
|
31
|
+
|
32
|
+
TYPES.each do |type,files|
|
33
|
+
desc "Run specs in #{files}"
|
34
|
+
RSpec::Core::RakeTask.new("spec:#{type}") do |t|
|
35
|
+
t.rspec_opts = ["-b", "-c", "-fd"]
|
36
|
+
t.pattern = FileList[TYPES[type]]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
desc "Run specs in spec/**/*_spec.rb "
|
41
|
+
RSpec::Core::RakeTask.new('spec:all') do |t|
|
42
|
+
t.rspec_opts = ["-b", "-c", "-fd"]
|
43
|
+
t.pattern = FileList[TYPES.values]
|
44
|
+
unless RUBY_VERSION =~ /1.9/ # FIXME: code coverage not working for Ruby 1.9 !!! Use CoverMe instead.
|
45
|
+
t.rcov = true
|
46
|
+
t.rcov_opts = ['--exclude', 'spec/*,gems/*,apps/*,bench/spec/*,json/*']
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
desc "Run doc generator - dumps out doc/protocol.html"
|
51
|
+
RSpec::Core::RakeTask.new('doc') do |t|
|
52
|
+
t.pattern = FileList['spec/doc/*_spec.rb']
|
53
|
+
t.rcov = false
|
54
|
+
end
|
55
|
+
|
56
|
+
rescue LoadError => e
|
57
|
+
puts "rspec / rcov not available. Install with: "
|
58
|
+
puts "gem install rspec rcov\n\n"
|
59
|
+
end
|
60
|
+
|
61
|
+
# desc "Build rhoconnect gem"
|
62
|
+
# task :gem => [ 'spec:all', 'clobber_spec:all', :gemspec, :build ]
|
63
|
+
|
64
|
+
desc "Run benchmark scripts"
|
65
|
+
task :bench do
|
66
|
+
login = ask "login: "
|
67
|
+
password = ask "password: "
|
68
|
+
prefix = 'bench/scripts/'
|
69
|
+
suffix = '_script.rb'
|
70
|
+
list = ask "scripts(default is '*'): "
|
71
|
+
file_list = list.empty? ? FileList[prefix+'*'+suffix] : FileList[prefix+list+suffix]
|
72
|
+
file_list.each do |script|
|
73
|
+
sh "bench/bench start #{script} #{login} #{password}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def ask(msg)
|
78
|
+
print msg
|
79
|
+
STDIN.gets.chomp
|
80
|
+
end
|
81
|
+
|
82
|
+
Bundler::GemHelper.install_tasks
|
data/bench/bench
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#LOG_FILE = '/var/log/bench_runner.log'
|
4
|
+
# orig_stdout = $stdout # redirect stdout to LOG_FILE
|
5
|
+
# $stdout = File.new(LOG_FILE, 'a')
|
6
|
+
|
7
|
+
RHOCONNECT_PATH = ARGV[0]
|
8
|
+
puts "Script #{$0} is started at #{Time.now.to_s}"
|
9
|
+
|
10
|
+
begin
|
11
|
+
ruby_version = `rvm current`
|
12
|
+
puts "Ruby version: #{ruby_version}"
|
13
|
+
puts
|
14
|
+
|
15
|
+
Dir.chdir(RHOCONNECT_PATH)
|
16
|
+
puts "Checking rhoconnect dependencies ..."
|
17
|
+
puts `bundle update`
|
18
|
+
puts
|
19
|
+
|
20
|
+
puts "Installing rhoconnect ..."
|
21
|
+
puts `rake install`
|
22
|
+
puts
|
23
|
+
|
24
|
+
Dir.chdir "bench/benchapp" #puts Dir.pwd
|
25
|
+
puts "Checking bench application dependencies ..."
|
26
|
+
puts `bundle update`
|
27
|
+
puts
|
28
|
+
|
29
|
+
# TODO: Check for another instance of bench application
|
30
|
+
# log = `ps aux | grep /tmp/benchapp.pid | grep -v grep`
|
31
|
+
# puts log
|
32
|
+
|
33
|
+
puts "Starting bench application ..."
|
34
|
+
t = Thread.new do
|
35
|
+
log = `rackup -D -P /tmp/benchapp.pid -s thin config.ru`
|
36
|
+
puts log
|
37
|
+
end
|
38
|
+
t.join
|
39
|
+
|
40
|
+
=begin
|
41
|
+
if ruby_version =~ /jruby/
|
42
|
+
# puts "Ruby version: #{ruby_version}"
|
43
|
+
t = Thread.new do
|
44
|
+
puts `jruby -S trinidad -p 9292 -r config.ru --load daemon --daemonize /tmp/benchapp.pid`
|
45
|
+
end
|
46
|
+
# t.join
|
47
|
+
else
|
48
|
+
pid = Process.fork do
|
49
|
+
log = `rackup -D -P /tmp/benchapp.pid -s thin config.ru`
|
50
|
+
puts log
|
51
|
+
puts
|
52
|
+
Process.exit(0)
|
53
|
+
end
|
54
|
+
Process.waitpid(pid)
|
55
|
+
end
|
56
|
+
=end
|
57
|
+
|
58
|
+
sleep 5
|
59
|
+
raise "Error: Bench application failed to start. File /tmp/benchapp.pid does not exist." unless File.exist? '/tmp/benchapp.pid'
|
60
|
+
|
61
|
+
pid = `cat /tmp/benchapp.pid`
|
62
|
+
puts "Bench application is up and running with pid #{pid}"
|
63
|
+
puts
|
64
|
+
|
65
|
+
Dir.chdir "../"
|
66
|
+
bench_errors = {}
|
67
|
+
puts "Running bench scripts ..."
|
68
|
+
%w[ cud_script query_only_script query_script query_md_script ].each do |script|
|
69
|
+
puts "Script #{script} ..."
|
70
|
+
log = `"./run_#{script}.sh"`
|
71
|
+
|
72
|
+
count = 0
|
73
|
+
stats_found = nil
|
74
|
+
log.each_line do |line|
|
75
|
+
puts line if count <= 1
|
76
|
+
count += 1
|
77
|
+
stats_found ||= (/Statistics:/ =~ line)
|
78
|
+
if stats_found
|
79
|
+
puts line
|
80
|
+
if line.match /err: (\d+), verification err: (\d+)$/
|
81
|
+
if $1.to_i != 0 || $2.to_i != 0
|
82
|
+
bench_errors[script] ||= []
|
83
|
+
bench_errors[script] << line
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
puts
|
89
|
+
end
|
90
|
+
|
91
|
+
if not bench_errors.empty?
|
92
|
+
#puts "TODO: send email"
|
93
|
+
puts "The following scripts completed with errors:"
|
94
|
+
bench_errors.each do |script, errors|
|
95
|
+
puts "#{script}:"
|
96
|
+
errors.each { |err| puts " #{err}" }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
rescue Exception => e
|
101
|
+
puts e.message
|
102
|
+
ensure
|
103
|
+
if File.exist? '/tmp/benchapp.pid'
|
104
|
+
pid = `cat /tmp/benchapp.pid`
|
105
|
+
res = `kill -9 #{pid}` if pid.to_i > 0 # `kill -s SIGINT #{pid}`
|
106
|
+
File.delete '/tmp/benchapp.pid'
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
puts "Script #{$0} is finished at #{Time.now.to_s}"
|
111
|
+
puts ""
|
112
|
+
# $stdout = orig_stdout #restore stdout
|