Maven modules for Fuseki2
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/470ee4d7 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/470ee4d7 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/470ee4d7 Branch: refs/heads/hadoop-rdf Commit: 470ee4d73a846567b85c246468cbaec9e3b74e8b Parents: 89400fb Author: Andy Seaborne <[email protected]> Authored: Mon Jan 5 17:31:05 2015 +0000 Committer: Andy Seaborne <[email protected]> Committed: Mon Jan 5 17:31:05 2015 +0000 ---------------------------------------------------------------------- jena-fuseki2/D.trig | 20 - jena-fuseki2/D.ttl | 19 - jena-fuseki2/Data/books.ttl | 62 - jena-fuseki2/Data/test_abox.ttl | 21 - jena-fuseki2/Data/test_data_rdfs.ttl | 28 - jena-fuseki2/Data/test_tbox.ttl | 25 - jena-fuseki2/assembly-dist.xml | 88 - jena-fuseki2/backup | 22 - jena-fuseki2/bin/s-delete | 707 -- jena-fuseki2/bin/s-get | 707 -- jena-fuseki2/bin/s-head | 707 -- jena-fuseki2/bin/s-post | 707 -- jena-fuseki2/bin/s-put | 707 -- jena-fuseki2/bin/s-query | 707 -- jena-fuseki2/bin/s-update | 707 -- jena-fuseki2/bin/s-update-form | 707 -- jena-fuseki2/bin/soh | 707 -- jena-fuseki2/dist/ABOUT | 1 - jena-fuseki2/dist/LICENSE | 617 -- jena-fuseki2/dist/NOTICE | 216 - jena-fuseki2/dwim | 19 - jena-fuseki2/dwim-upload | 48 - jena-fuseki2/fuseki | 477 - jena-fuseki2/fuseki-server | 64 - jena-fuseki2/fuseki-server.bat | 19 - jena-fuseki2/jena-fuseki-core/pom.xml | 301 + .../main/java/org/apache/jena/fuseki/DEF.java | 79 + .../java/org/apache/jena/fuseki/Fuseki.java | 227 + .../java/org/apache/jena/fuseki/FusekiCmd.java | 49 + .../jena/fuseki/FusekiConfigException.java | 28 + .../org/apache/jena/fuseki/FusekiException.java | 29 + .../java/org/apache/jena/fuseki/FusekiLib.java | 258 + .../org/apache/jena/fuseki/FusekiLogging.java | 171 + .../jena/fuseki/FusekiNotFoundException.java | 26 + .../jena/fuseki/FusekiRequestException.java | 57 + .../org/apache/jena/fuseki/async/AsyncPool.java | 97 + .../org/apache/jena/fuseki/async/AsyncTask.java | 114 + .../fuseki/authz/AuthorizationFilter403.java | 59 + .../apache/jena/fuseki/authz/DenyFilter.java | 33 + .../jena/fuseki/authz/LocalhostFilter.java | 62 + .../org/apache/jena/fuseki/build/Builder.java | 149 + .../jena/fuseki/build/DataServiceDesc.java | 107 + .../apache/jena/fuseki/build/FusekiConfig.java | 261 + .../org/apache/jena/fuseki/build/Template.java | 52 + .../jena/fuseki/build/TemplateFunctions.java | 68 + .../org/apache/jena/fuseki/cmd/FusekiCmd.java | 339 + .../org/apache/jena/fuseki/conneg/ConNeg.java | 206 + .../org/apache/jena/fuseki/conneg/WebLib.java | 60 + .../jena/fuseki/jetty/FusekiErrorHandler.java | 95 + .../apache/jena/fuseki/jetty/JettyFuseki.java | 305 + .../jena/fuseki/jetty/JettyServerConfig.java | 51 + .../apache/jena/fuseki/mgt/ActionAsyncTask.java | 70 + .../apache/jena/fuseki/mgt/ActionBackup.java | 84 + .../jena/fuseki/mgt/ActionContainerItem.java | 94 + .../org/apache/jena/fuseki/mgt/ActionCtl.java | 97 + .../apache/jena/fuseki/mgt/ActionDatasets.java | 404 + .../org/apache/jena/fuseki/mgt/ActionItem.java | 45 + .../org/apache/jena/fuseki/mgt/ActionLogs.java | 59 + .../org/apache/jena/fuseki/mgt/ActionPing.java | 78 + .../jena/fuseki/mgt/ActionServerStatus.java | 114 + .../org/apache/jena/fuseki/mgt/ActionSleep.java | 98 + .../org/apache/jena/fuseki/mgt/ActionStats.java | 214 + .../org/apache/jena/fuseki/mgt/ActionTasks.java | 125 + .../java/org/apache/jena/fuseki/mgt/Async.java | 68 + .../java/org/apache/jena/fuseki/mgt/Backup.java | 102 + .../org/apache/jena/fuseki/mgt/DumpServlet.java | 312 + .../org/apache/jena/fuseki/mgt/JsonConst.java | 52 + .../apache/jena/fuseki/mgt/JsonDescription.java | 73 + .../org/apache/jena/fuseki/mgt/MgtConst.java | 30 + .../java/org/apache/jena/fuseki/mgt/MgtJMX.java | 61 + .../fuseki/migrate/DatasetGraphSwitchable.java | 88 + .../jena/fuseki/migrate/GraphLoadUtils.java | 76 + .../apache/jena/fuseki/migrate/Registry.java | 39 + .../jena/fuseki/migrate/StreamRDFLimited.java | 63 + .../org/apache/jena/fuseki/server/Counter.java | 34 + .../jena/fuseki/server/CounterMXBean.java | 25 + .../apache/jena/fuseki/server/CounterName.java | 84 + .../apache/jena/fuseki/server/CounterSet.java | 70 + .../org/apache/jena/fuseki/server/Counters.java | 25 + .../jena/fuseki/server/DataAccessPoint.java | 75 + .../fuseki/server/DataAccessPointRegistry.java | 37 + .../apache/jena/fuseki/server/DataService.java | 199 + .../jena/fuseki/server/DatasetMXBean.java | 35 + .../jena/fuseki/server/DatasetStatus.java | 40 + .../org/apache/jena/fuseki/server/Endpoint.java | 68 + .../apache/jena/fuseki/server/FusekiEnv.java | 114 + .../apache/jena/fuseki/server/FusekiServer.java | 395 + .../server/FusekiServerEnvironmentInit.java | 41 + .../fuseki/server/FusekiServerListener.java | 81 + .../apache/jena/fuseki/server/FusekiVocab.java | 77 + .../jena/fuseki/server/OperationName.java | 37 + .../apache/jena/fuseki/server/RequestLog.java | 148 + .../jena/fuseki/server/ServerInitialConfig.java | 40 + .../jena/fuseki/server/ServiceMXBean.java | 32 + .../fuseki/server/ShiroEnvironmentLoader.java | 164 + .../apache/jena/fuseki/server/SystemState.java | 108 + .../apache/jena/fuseki/servlets/ActionBase.java | 265 + .../fuseki/servlets/ActionErrorException.java | 32 + .../apache/jena/fuseki/servlets/ActionLib.java | 180 + .../apache/jena/fuseki/servlets/ActionREST.java | 161 + .../jena/fuseki/servlets/ActionSPARQL.java | 207 + .../fuseki/servlets/ConcurrencyPolicyMRSW.java | 113 + .../jena/fuseki/servlets/FusekiFilter.java | 87 + .../apache/jena/fuseki/servlets/HttpAction.java | 387 + .../servlets/HttpServletResponseTracker.java | 140 + .../jena/fuseki/servlets/NullOutputStream.java | 53 + .../apache/jena/fuseki/servlets/REST_Quads.java | 68 + .../jena/fuseki/servlets/REST_Quads_R.java | 99 + .../jena/fuseki/servlets/REST_Quads_RW.java | 136 + .../jena/fuseki/servlets/ResponseCallback.java | 24 + .../jena/fuseki/servlets/ResponseModel.java | 136 + .../jena/fuseki/servlets/ResponseOps.java | 94 + .../jena/fuseki/servlets/ResponseResultSet.java | 322 + .../apache/jena/fuseki/servlets/SPARQL_GSP.java | 214 + .../jena/fuseki/servlets/SPARQL_GSP_R.java | 123 + .../jena/fuseki/servlets/SPARQL_GSP_RW.java | 208 + .../jena/fuseki/servlets/SPARQL_Protocol.java | 101 + .../jena/fuseki/servlets/SPARQL_Query.java | 393 + .../fuseki/servlets/SPARQL_QueryDataset.java | 60 + .../fuseki/servlets/SPARQL_QueryGeneral.java | 142 + .../fuseki/servlets/SPARQL_UberServlet.java | 359 + .../jena/fuseki/servlets/SPARQL_Update.java | 286 + .../jena/fuseki/servlets/SPARQL_Upload.java | 291 + .../jena/fuseki/servlets/ServletBase.java | 98 + .../apache/jena/fuseki/servlets/ServletOps.java | 209 + .../org/apache/jena/fuseki/servlets/Upload.java | 164 + .../jena/fuseki/servlets/UploadDetails.java | 86 + .../jena/fuseki/validation/DataValidator.java | 131 + .../jena/fuseki/validation/IRIValidator.java | 168 + .../jena/fuseki/validation/QueryValidator.java | 154 + .../jena/fuseki/validation/UpdateValidator.java | 91 + .../fuseki/validation/ValidationAction.java | 95 + .../jena/fuseki/validation/ValidationError.java | 24 + .../fuseki/validation/ValidatorBaseJson.java | 201 + .../src/main/resources/META-INF/DEPENDENCIES | 24 + .../src/main/resources/META-INF/LICENSE | 253 + .../src/main/resources/META-INF/NOTICE | 16 + .../apache/jena/fuseki/fuseki-properties.xml | 8 + .../org/apache/jena/fuseki/log4j.properties | 42 + .../org/apache/jena/fuseki/server/config.ttl | 30 + .../org/apache/jena/fuseki/server/shiro.ini | 39 + .../jena/fuseki/server/templates/config-mem | 27 + .../jena/fuseki/server/templates/config-service | 23 + .../jena/fuseki/server/templates/config-tdb | 36 + .../jena/fuseki/server/templates/config-tdb-dir | 35 + .../jena/fuseki/server/templates/config-tdb-mem | 36 + .../src/main/webapp/WEB-INF/web.xml | 269 + .../src/main/webapp/admin-logs.html | 72 + .../main/webapp/css/bootstrap-select.min.css | 7 + .../src/main/webapp/css/bootstrap-theme.css.map | 1 + .../src/main/webapp/css/bootstrap-theme.min.css | 7 + .../src/main/webapp/css/bootstrap.css.map | 1 + .../src/main/webapp/css/bootstrap.min.css | 7 + .../src/main/webapp/css/codemirror.min.css | 1 + .../src/main/webapp/css/font-awesome.min.css | 4 + .../src/main/webapp/css/fui.css | 191 + .../webapp/css/jquery.fileupload-noscript.css | 22 + .../css/jquery.fileupload-ui-noscript.css | 17 + .../main/webapp/css/jquery.fileupload-ui.css | 57 + .../src/main/webapp/css/jquery.fileupload.css | 36 + .../src/main/webapp/css/pivot.min.css | 1 + .../src/main/webapp/css/qonsole.css | 172 + .../src/main/webapp/css/yasqe.min.css | 1 + .../src/main/webapp/css/yasr.min.css | 1 + .../src/main/webapp/dataset.html | 245 + .../src/main/webapp/documentation.html | 80 + .../src/main/webapp/fonts/FontAwesome.otf | Bin 0 -> 75188 bytes .../main/webapp/fonts/fontawesome-webfont.eot | Bin 0 -> 72449 bytes .../main/webapp/fonts/fontawesome-webfont.svg | 504 + .../main/webapp/fonts/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes .../main/webapp/fonts/fontawesome-webfont.woff | Bin 0 -> 83760 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes .../src/main/webapp/images/back_disabled.png | Bin 0 -> 1361 bytes .../src/main/webapp/images/back_enabled.png | Bin 0 -> 1379 bytes .../main/webapp/images/back_enabled_hover.png | Bin 0 -> 1375 bytes .../src/main/webapp/images/favicon.ico | Bin 0 -> 1085 bytes .../src/main/webapp/images/forward_disabled.png | Bin 0 -> 1363 bytes .../src/main/webapp/images/forward_enabled.png | Bin 0 -> 1380 bytes .../webapp/images/forward_enabled_hover.png | Bin 0 -> 1379 bytes .../webapp/images/jena-logo-notext-small.png | Bin 0 -> 2469 bytes .../src/main/webapp/images/sort_asc.png | Bin 0 -> 1118 bytes .../main/webapp/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes .../src/main/webapp/images/sort_both.png | Bin 0 -> 1136 bytes .../src/main/webapp/images/sort_desc.png | Bin 0 -> 1127 bytes .../main/webapp/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes .../src/main/webapp/images/wait30.gif | Bin 0 -> 6337 bytes .../jena-fuseki-core/src/main/webapp/index.html | 103 + .../src/main/webapp/js/app/controllers/.svnkeep | 0 .../js/app/controllers/dataset-controller.js | 69 + .../js/app/controllers/index-controller.js | 50 + .../js/app/controllers/manage-controller.js | 39 + .../js/app/controllers/query-controller.js | 72 + .../js/app/controllers/upload-controller.js | 42 + .../js/app/controllers/validation-controller.js | 38 + .../src/main/webapp/js/app/fui.js | 33 + .../src/main/webapp/js/app/layouts/.svnkeep | 0 .../src/main/webapp/js/app/main.dataset.js | 31 + .../src/main/webapp/js/app/main.index.js | 24 + .../src/main/webapp/js/app/main.manage.js | 27 + .../src/main/webapp/js/app/main.validation.js | 24 + .../main/webapp/js/app/models/dataset-stats.js | 102 + .../src/main/webapp/js/app/models/dataset.js | 251 + .../main/webapp/js/app/models/fuseki-server.js | 155 + .../src/main/webapp/js/app/models/task.js | 105 + .../webapp/js/app/models/validation-options.js | 85 + .../src/main/webapp/js/app/qonsole-config.js | 26 + .../src/main/webapp/js/app/routers/.svnkeep | 0 .../main/webapp/js/app/services/ping-service.js | 54 + .../js/app/services/validation-service.js | 98 + .../webapp/js/app/templates/dataset-edit.tpl | 58 + .../webapp/js/app/templates/dataset-info.tpl | 40 + .../js/app/templates/dataset-management.tpl | 53 + .../js/app/templates/dataset-selection-list.tpl | 22 + .../js/app/templates/dataset-selector.tpl | 15 + .../js/app/templates/dataset-simple-create.tpl | 79 + .../webapp/js/app/templates/dataset-stats.tpl | 14 + .../webapp/js/app/templates/file-upload.tpl | 46 + .../webapp/js/app/templates/uploadable-file.tpl | 23 + .../src/main/webapp/js/app/util/page-utils.js | 33 + .../src/main/webapp/js/app/views/.svnkeep | 0 .../main/webapp/js/app/views/dataset-edit.js | 205 + .../main/webapp/js/app/views/dataset-info.js | 76 + .../webapp/js/app/views/dataset-management.js | 163 + .../js/app/views/dataset-selection-list.js | 58 + .../webapp/js/app/views/dataset-selector.js | 84 + .../js/app/views/dataset-simple-create.js | 100 + .../main/webapp/js/app/views/dataset-stats.js | 41 + .../js/app/views/datasets-dropdown-list.js | 43 + .../src/main/webapp/js/app/views/file-upload.js | 225 + .../webapp/js/app/views/tabbed-view-manager.js | 63 + .../main/webapp/js/app/views/uploadable-file.js | 39 + .../webapp/js/app/views/validation-options.js | 54 + .../src/main/webapp/js/common-config.js | 93 + .../main/webapp/js/lib/addon/fold/brace-fold.js | 105 + .../webapp/js/lib/addon/fold/comment-fold.js | 57 + .../main/webapp/js/lib/addon/fold/foldcode.js | 145 + .../main/webapp/js/lib/addon/fold/foldgutter.js | 134 + .../main/webapp/js/lib/addon/fold/xml-fold.js | 181 + .../src/main/webapp/js/lib/backbone-min.js | 2 + .../src/main/webapp/js/lib/backbone.js | 1581 +++ .../main/webapp/js/lib/backbone.marionette.js | 2385 +++++ .../main/webapp/js/lib/bootstrap-select.min.js | 8 + .../src/main/webapp/js/lib/bootstrap.min.js | 6 + .../src/main/webapp/js/lib/html5shiv.js | 8 + .../src/main/webapp/js/lib/jquery-1.10.2.js | 9789 ++++++++++++++++++ .../src/main/webapp/js/lib/jquery-1.10.2.min.js | 6 + .../src/main/webapp/js/lib/jquery-ui.min.js | 7 + .../main/webapp/js/lib/jquery.dataTables.min.js | 157 + .../src/main/webapp/js/lib/jquery.fileupload.js | 1426 +++ .../webapp/js/lib/jquery.fileupload.local.js | 1428 +++ .../src/main/webapp/js/lib/jquery.form.js | 1278 +++ .../webapp/js/lib/jquery.iframe-transport.js | 214 + .../src/main/webapp/js/lib/jquery.ui.widget.js | 530 + .../main/webapp/js/lib/jquery.xdomainrequest.js | 90 + .../src/main/webapp/js/lib/lib/codemirror.js | 7638 ++++++++++++++ .../webapp/js/lib/mode/javascript/javascript.js | 683 ++ .../main/webapp/js/lib/mode/sparql/sparql.js | 160 + .../main/webapp/js/lib/mode/turtle/turtle.js | 160 + .../src/main/webapp/js/lib/mode/xml/xml.js | 384 + .../src/main/webapp/js/lib/pivot.js | 1363 +++ .../src/main/webapp/js/lib/pivot.min.js | 2 + .../src/main/webapp/js/lib/pivot.min.js.map | 1 + .../src/main/webapp/js/lib/plugins/text.js | 386 + .../src/main/webapp/js/lib/qonsole.js | 570 + .../src/main/webapp/js/lib/refresh.sh | 21 + .../src/main/webapp/js/lib/require.js | 2076 ++++ .../src/main/webapp/js/lib/require.min.js | 36 + .../src/main/webapp/js/lib/respond.min.js | 6 + .../src/main/webapp/js/lib/sprintf-0.7-beta1.js | 183 + .../src/main/webapp/js/lib/underscore.js | 1276 +++ .../src/main/webapp/js/lib/yasqe.min.js | 5 + .../src/main/webapp/js/lib/yasqe.min.js.map | 1 + .../src/main/webapp/js/lib/yasr.min.js | 5 + .../src/main/webapp/js/lib/yasr.min.js.map | 1 + .../src/main/webapp/manage.html | 107 + .../src/main/webapp/services.html | 75 + .../src/main/webapp/test/test-fuseki-config.ttl | 27 + .../src/main/webapp/validate.html | 146 + .../apache/jena/fuseki/AbstractFusekiTest.java | 47 + .../java/org/apache/jena/fuseki/FileSender.java | 87 + .../java/org/apache/jena/fuseki/ServerTest.java | 157 + .../java/org/apache/jena/fuseki/TS_Fuseki.java | 75 + .../java/org/apache/jena/fuseki/TestAdmin.java | 538 + .../java/org/apache/jena/fuseki/TestAuth.java | 405 + .../org/apache/jena/fuseki/TestDatasetOps.java | 154 + .../org/apache/jena/fuseki/TestFileUpload.java | 128 + .../java/org/apache/jena/fuseki/TestQuery.java | 115 + .../apache/jena/fuseki/TestSPARQLProtocol.java | 95 + .../fuseki/http/TestDatasetAccessorHTTP.java | 261 + .../http/TestDatasetGraphAccessorHTTP.java | 43 + .../org/apache/jena/fuseki/http/TestHttpOp.java | 233 + .../jena-fuseki-core/testing/config-ds-1.ttl | 15 + jena-fuseki2/jena-fuseki-dist/assembly-dist.xml | 100 + jena-fuseki2/jena-fuseki-dist/backup | 22 + jena-fuseki2/jena-fuseki-dist/bin/s-delete | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-get | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-head | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-post | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-put | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-query | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-update | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/s-update-form | 707 ++ jena-fuseki2/jena-fuseki-dist/bin/soh | 707 ++ jena-fuseki2/jena-fuseki-dist/dist/ABOUT | 1 + jena-fuseki2/jena-fuseki-dist/dist/LICENSE | 617 ++ jena-fuseki2/jena-fuseki-dist/dist/NOTICE | 216 + jena-fuseki2/jena-fuseki-dist/fuseki | 477 + jena-fuseki2/jena-fuseki-dist/fuseki-server | 64 + jena-fuseki2/jena-fuseki-dist/fuseki-server.bat | 19 + jena-fuseki2/jena-fuseki-dist/pom.xml | 94 + .../dependency-reduced-pom.xml | 93 + jena-fuseki2/jena-fuseki-server/pom.xml | 127 + jena-fuseki2/jena-fuseki-war/pom.xml | 109 + jena-fuseki2/make-html | 29 - jena-fuseki2/pom.xml | 377 +- .../main/java/org/apache/jena/fuseki/DEF.java | 79 - .../java/org/apache/jena/fuseki/Fuseki.java | 227 - .../java/org/apache/jena/fuseki/FusekiCmd.java | 28 - .../jena/fuseki/FusekiConfigException.java | 28 - .../org/apache/jena/fuseki/FusekiException.java | 29 - .../java/org/apache/jena/fuseki/FusekiLib.java | 258 - .../org/apache/jena/fuseki/FusekiLogging.java | 171 - .../jena/fuseki/FusekiNotFoundException.java | 26 - .../jena/fuseki/FusekiRequestException.java | 57 - .../org/apache/jena/fuseki/async/AsyncPool.java | 97 - .../org/apache/jena/fuseki/async/AsyncTask.java | 114 - .../fuseki/authz/AuthorizationFilter403.java | 59 - .../apache/jena/fuseki/authz/DenyFilter.java | 33 - .../jena/fuseki/authz/LocalhostFilter.java | 62 - .../org/apache/jena/fuseki/build/Builder.java | 149 - .../jena/fuseki/build/DataServiceDesc.java | 107 - .../apache/jena/fuseki/build/FusekiConfig.java | 261 - .../org/apache/jena/fuseki/build/Template.java | 52 - .../jena/fuseki/build/TemplateFunctions.java | 68 - .../org/apache/jena/fuseki/cmd/FusekiCmd.java | 339 - .../org/apache/jena/fuseki/conneg/ConNeg.java | 206 - .../org/apache/jena/fuseki/conneg/WebLib.java | 60 - .../jena/fuseki/jetty/FusekiErrorHandler.java | 95 - .../apache/jena/fuseki/jetty/JettyFuseki.java | 305 - .../jena/fuseki/jetty/JettyServerConfig.java | 51 - .../apache/jena/fuseki/mgt/ActionAsyncTask.java | 70 - .../apache/jena/fuseki/mgt/ActionBackup.java | 84 - .../jena/fuseki/mgt/ActionContainerItem.java | 94 - .../org/apache/jena/fuseki/mgt/ActionCtl.java | 97 - .../apache/jena/fuseki/mgt/ActionDatasets.java | 404 - .../org/apache/jena/fuseki/mgt/ActionItem.java | 45 - .../org/apache/jena/fuseki/mgt/ActionLogs.java | 59 - .../org/apache/jena/fuseki/mgt/ActionPing.java | 78 - .../jena/fuseki/mgt/ActionServerStatus.java | 114 - .../org/apache/jena/fuseki/mgt/ActionSleep.java | 98 - .../org/apache/jena/fuseki/mgt/ActionStats.java | 214 - .../org/apache/jena/fuseki/mgt/ActionTasks.java | 125 - .../java/org/apache/jena/fuseki/mgt/Async.java | 68 - .../java/org/apache/jena/fuseki/mgt/Backup.java | 102 - .../org/apache/jena/fuseki/mgt/DumpServlet.java | 312 - .../org/apache/jena/fuseki/mgt/JsonConst.java | 52 - .../apache/jena/fuseki/mgt/JsonDescription.java | 73 - .../org/apache/jena/fuseki/mgt/MgtConst.java | 30 - .../java/org/apache/jena/fuseki/mgt/MgtJMX.java | 61 - .../fuseki/migrate/DatasetGraphSwitchable.java | 88 - .../jena/fuseki/migrate/GraphLoadUtils.java | 76 - .../apache/jena/fuseki/migrate/Registry.java | 39 - .../jena/fuseki/migrate/StreamRDFLimited.java | 63 - .../org/apache/jena/fuseki/server/Counter.java | 34 - .../jena/fuseki/server/CounterMXBean.java | 25 - .../apache/jena/fuseki/server/CounterName.java | 84 - .../apache/jena/fuseki/server/CounterSet.java | 70 - .../org/apache/jena/fuseki/server/Counters.java | 25 - .../jena/fuseki/server/DataAccessPoint.java | 75 - .../fuseki/server/DataAccessPointRegistry.java | 37 - .../apache/jena/fuseki/server/DataService.java | 199 - .../jena/fuseki/server/DatasetMXBean.java | 35 - .../jena/fuseki/server/DatasetStatus.java | 40 - .../org/apache/jena/fuseki/server/Endpoint.java | 68 - .../apache/jena/fuseki/server/FusekiEnv.java | 114 - .../apache/jena/fuseki/server/FusekiServer.java | 395 - .../server/FusekiServerEnvironmentInit.java | 41 - .../fuseki/server/FusekiServerListener.java | 81 - .../apache/jena/fuseki/server/FusekiVocab.java | 77 - .../jena/fuseki/server/OperationName.java | 37 - .../apache/jena/fuseki/server/RequestLog.java | 148 - .../jena/fuseki/server/ServerInitialConfig.java | 40 - .../jena/fuseki/server/ServiceMXBean.java | 32 - .../fuseki/server/ShiroEnvironmentLoader.java | 164 - .../apache/jena/fuseki/server/SystemState.java | 108 - .../apache/jena/fuseki/servlets/ActionBase.java | 265 - .../fuseki/servlets/ActionErrorException.java | 32 - .../apache/jena/fuseki/servlets/ActionLib.java | 180 - .../apache/jena/fuseki/servlets/ActionREST.java | 161 - .../jena/fuseki/servlets/ActionSPARQL.java | 207 - .../fuseki/servlets/ConcurrencyPolicyMRSW.java | 113 - .../jena/fuseki/servlets/FusekiFilter.java | 87 - .../apache/jena/fuseki/servlets/HttpAction.java | 387 - .../servlets/HttpServletResponseTracker.java | 140 - .../jena/fuseki/servlets/NullOutputStream.java | 53 - .../apache/jena/fuseki/servlets/REST_Quads.java | 68 - .../jena/fuseki/servlets/REST_Quads_R.java | 99 - .../jena/fuseki/servlets/REST_Quads_RW.java | 136 - .../jena/fuseki/servlets/ResponseCallback.java | 24 - .../jena/fuseki/servlets/ResponseModel.java | 136 - .../jena/fuseki/servlets/ResponseOps.java | 94 - .../jena/fuseki/servlets/ResponseResultSet.java | 322 - .../apache/jena/fuseki/servlets/SPARQL_GSP.java | 214 - .../jena/fuseki/servlets/SPARQL_GSP_R.java | 123 - .../jena/fuseki/servlets/SPARQL_GSP_RW.java | 208 - .../jena/fuseki/servlets/SPARQL_Protocol.java | 101 - .../jena/fuseki/servlets/SPARQL_Query.java | 393 - .../fuseki/servlets/SPARQL_QueryDataset.java | 60 - .../fuseki/servlets/SPARQL_QueryGeneral.java | 142 - .../fuseki/servlets/SPARQL_UberServlet.java | 359 - .../jena/fuseki/servlets/SPARQL_Update.java | 286 - .../jena/fuseki/servlets/SPARQL_Upload.java | 291 - .../jena/fuseki/servlets/ServletBase.java | 98 - .../apache/jena/fuseki/servlets/ServletOps.java | 209 - .../org/apache/jena/fuseki/servlets/Upload.java | 164 - .../jena/fuseki/servlets/UploadDetails.java | 86 - .../jena/fuseki/validation/DataValidator.java | 131 - .../jena/fuseki/validation/IRIValidator.java | 168 - .../jena/fuseki/validation/QueryValidator.java | 154 - .../jena/fuseki/validation/UpdateValidator.java | 91 - .../fuseki/validation/ValidationAction.java | 95 - .../jena/fuseki/validation/ValidationError.java | 24 - .../fuseki/validation/ValidatorBaseJson.java | 201 - .../src/main/resources/META-INF/DEPENDENCIES | 24 - .../src/main/resources/META-INF/LICENSE | 253 - jena-fuseki2/src/main/resources/META-INF/NOTICE | 16 - .../apache/jena/fuseki/fuseki-properties.xml | 8 - .../org/apache/jena/fuseki/log4j.properties | 42 - .../org/apache/jena/fuseki/server/config.ttl | 30 - .../org/apache/jena/fuseki/server/shiro.ini | 39 - .../jena/fuseki/server/templates/config-mem | 27 - .../jena/fuseki/server/templates/config-service | 23 - .../jena/fuseki/server/templates/config-tdb | 36 - .../jena/fuseki/server/templates/config-tdb-dir | 35 - .../jena/fuseki/server/templates/config-tdb-mem | 36 - jena-fuseki2/src/main/webapp/WEB-INF/web.xml | 269 - jena-fuseki2/src/main/webapp/admin-logs.html | 72 - .../main/webapp/css/bootstrap-select.min.css | 7 - .../src/main/webapp/css/bootstrap-theme.css.map | 1 - .../src/main/webapp/css/bootstrap-theme.min.css | 7 - .../src/main/webapp/css/bootstrap.css.map | 1 - .../src/main/webapp/css/bootstrap.min.css | 7 - .../src/main/webapp/css/codemirror.min.css | 1 - .../src/main/webapp/css/font-awesome.min.css | 4 - jena-fuseki2/src/main/webapp/css/fui.css | 191 - .../webapp/css/jquery.fileupload-noscript.css | 22 - .../css/jquery.fileupload-ui-noscript.css | 17 - .../main/webapp/css/jquery.fileupload-ui.css | 57 - .../src/main/webapp/css/jquery.fileupload.css | 36 - jena-fuseki2/src/main/webapp/css/pivot.min.css | 1 - jena-fuseki2/src/main/webapp/css/qonsole.css | 172 - jena-fuseki2/src/main/webapp/css/yasqe.min.css | 1 - jena-fuseki2/src/main/webapp/css/yasr.min.css | 1 - jena-fuseki2/src/main/webapp/dataset.html | 245 - jena-fuseki2/src/main/webapp/documentation.html | 80 - .../src/main/webapp/fonts/FontAwesome.otf | Bin 75188 -> 0 bytes .../main/webapp/fonts/fontawesome-webfont.eot | Bin 72449 -> 0 bytes .../main/webapp/fonts/fontawesome-webfont.svg | 504 - .../main/webapp/fonts/fontawesome-webfont.ttf | Bin 141564 -> 0 bytes .../main/webapp/fonts/fontawesome-webfont.woff | Bin 83760 -> 0 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 229 - .../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 0 bytes .../src/main/webapp/images/back_disabled.png | Bin 1361 -> 0 bytes .../src/main/webapp/images/back_enabled.png | Bin 1379 -> 0 bytes .../main/webapp/images/back_enabled_hover.png | Bin 1375 -> 0 bytes jena-fuseki2/src/main/webapp/images/favicon.ico | Bin 1085 -> 0 bytes .../src/main/webapp/images/forward_disabled.png | Bin 1363 -> 0 bytes .../src/main/webapp/images/forward_enabled.png | Bin 1380 -> 0 bytes .../webapp/images/forward_enabled_hover.png | Bin 1379 -> 0 bytes .../webapp/images/jena-logo-notext-small.png | Bin 2469 -> 0 bytes .../src/main/webapp/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/images/sort_asc_disabled.png | Bin 1050 -> 0 bytes .../src/main/webapp/images/sort_both.png | Bin 1136 -> 0 bytes .../src/main/webapp/images/sort_desc.png | Bin 1127 -> 0 bytes .../main/webapp/images/sort_desc_disabled.png | Bin 1045 -> 0 bytes jena-fuseki2/src/main/webapp/images/wait30.gif | Bin 6337 -> 0 bytes jena-fuseki2/src/main/webapp/index.html | 103 - .../src/main/webapp/js/app/controllers/.svnkeep | 0 .../js/app/controllers/dataset-controller.js | 69 - .../js/app/controllers/index-controller.js | 50 - .../js/app/controllers/manage-controller.js | 39 - .../js/app/controllers/query-controller.js | 72 - .../js/app/controllers/upload-controller.js | 42 - .../js/app/controllers/validation-controller.js | 38 - jena-fuseki2/src/main/webapp/js/app/fui.js | 33 - .../src/main/webapp/js/app/layouts/.svnkeep | 0 .../src/main/webapp/js/app/main.dataset.js | 31 - .../src/main/webapp/js/app/main.index.js | 24 - .../src/main/webapp/js/app/main.manage.js | 27 - .../src/main/webapp/js/app/main.validation.js | 24 - .../main/webapp/js/app/models/dataset-stats.js | 102 - .../src/main/webapp/js/app/models/dataset.js | 251 - .../main/webapp/js/app/models/fuseki-server.js | 155 - .../src/main/webapp/js/app/models/task.js | 105 - .../webapp/js/app/models/validation-options.js | 85 - .../src/main/webapp/js/app/qonsole-config.js | 26 - .../src/main/webapp/js/app/routers/.svnkeep | 0 .../main/webapp/js/app/services/ping-service.js | 54 - .../js/app/services/validation-service.js | 98 - .../webapp/js/app/templates/dataset-edit.tpl | 58 - .../webapp/js/app/templates/dataset-info.tpl | 40 - .../js/app/templates/dataset-management.tpl | 53 - .../js/app/templates/dataset-selection-list.tpl | 22 - .../js/app/templates/dataset-selector.tpl | 15 - .../js/app/templates/dataset-simple-create.tpl | 79 - .../webapp/js/app/templates/dataset-stats.tpl | 14 - .../webapp/js/app/templates/file-upload.tpl | 46 - .../webapp/js/app/templates/uploadable-file.tpl | 23 - .../src/main/webapp/js/app/util/page-utils.js | 33 - .../src/main/webapp/js/app/views/.svnkeep | 0 .../main/webapp/js/app/views/dataset-edit.js | 205 - .../main/webapp/js/app/views/dataset-info.js | 76 - .../webapp/js/app/views/dataset-management.js | 163 - .../js/app/views/dataset-selection-list.js | 58 - .../webapp/js/app/views/dataset-selector.js | 84 - .../js/app/views/dataset-simple-create.js | 100 - .../main/webapp/js/app/views/dataset-stats.js | 41 - .../js/app/views/datasets-dropdown-list.js | 43 - .../src/main/webapp/js/app/views/file-upload.js | 225 - .../webapp/js/app/views/tabbed-view-manager.js | 63 - .../main/webapp/js/app/views/uploadable-file.js | 39 - .../webapp/js/app/views/validation-options.js | 54 - .../src/main/webapp/js/common-config.js | 93 - .../main/webapp/js/lib/addon/fold/brace-fold.js | 105 - .../webapp/js/lib/addon/fold/comment-fold.js | 57 - .../main/webapp/js/lib/addon/fold/foldcode.js | 145 - .../main/webapp/js/lib/addon/fold/foldgutter.js | 134 - .../main/webapp/js/lib/addon/fold/xml-fold.js | 181 - .../src/main/webapp/js/lib/backbone-min.js | 2 - jena-fuseki2/src/main/webapp/js/lib/backbone.js | 1581 --- .../main/webapp/js/lib/backbone.marionette.js | 2385 ----- .../main/webapp/js/lib/bootstrap-select.min.js | 8 - .../src/main/webapp/js/lib/bootstrap.min.js | 6 - .../src/main/webapp/js/lib/html5shiv.js | 8 - .../src/main/webapp/js/lib/jquery-1.10.2.js | 9789 ------------------ .../src/main/webapp/js/lib/jquery-1.10.2.min.js | 6 - .../src/main/webapp/js/lib/jquery-ui.min.js | 7 - .../main/webapp/js/lib/jquery.dataTables.min.js | 157 - .../src/main/webapp/js/lib/jquery.fileupload.js | 1426 --- .../webapp/js/lib/jquery.fileupload.local.js | 1428 --- .../src/main/webapp/js/lib/jquery.form.js | 1278 --- .../webapp/js/lib/jquery.iframe-transport.js | 214 - .../src/main/webapp/js/lib/jquery.ui.widget.js | 530 - .../main/webapp/js/lib/jquery.xdomainrequest.js | 90 - .../src/main/webapp/js/lib/lib/codemirror.js | 7638 -------------- .../webapp/js/lib/mode/javascript/javascript.js | 683 -- .../main/webapp/js/lib/mode/sparql/sparql.js | 160 - .../main/webapp/js/lib/mode/turtle/turtle.js | 160 - .../src/main/webapp/js/lib/mode/xml/xml.js | 384 - jena-fuseki2/src/main/webapp/js/lib/pivot.js | 1363 --- .../src/main/webapp/js/lib/pivot.min.js | 2 - .../src/main/webapp/js/lib/pivot.min.js.map | 1 - .../src/main/webapp/js/lib/plugins/text.js | 386 - jena-fuseki2/src/main/webapp/js/lib/qonsole.js | 570 - jena-fuseki2/src/main/webapp/js/lib/refresh.sh | 21 - jena-fuseki2/src/main/webapp/js/lib/require.js | 2076 ---- .../src/main/webapp/js/lib/require.min.js | 36 - .../src/main/webapp/js/lib/respond.min.js | 6 - .../src/main/webapp/js/lib/sprintf-0.7-beta1.js | 183 - .../src/main/webapp/js/lib/underscore.js | 1276 --- .../src/main/webapp/js/lib/yasqe.min.js | 5 - .../src/main/webapp/js/lib/yasqe.min.js.map | 1 - jena-fuseki2/src/main/webapp/js/lib/yasr.min.js | 5 - .../src/main/webapp/js/lib/yasr.min.js.map | 1 - jena-fuseki2/src/main/webapp/manage.html | 107 - jena-fuseki2/src/main/webapp/services.html | 75 - .../src/main/webapp/test/test-fuseki-config.ttl | 27 - jena-fuseki2/src/main/webapp/validate.html | 146 - .../apache/jena/fuseki/AbstractFusekiTest.java | 47 - .../java/org/apache/jena/fuseki/FileSender.java | 87 - .../java/org/apache/jena/fuseki/ServerTest.java | 157 - .../java/org/apache/jena/fuseki/TS_Fuseki.java | 75 - .../java/org/apache/jena/fuseki/TestAdmin.java | 538 - .../java/org/apache/jena/fuseki/TestAuth.java | 405 - .../org/apache/jena/fuseki/TestDatasetOps.java | 154 - .../org/apache/jena/fuseki/TestFileUpload.java | 128 - .../java/org/apache/jena/fuseki/TestQuery.java | 115 - .../apache/jena/fuseki/TestSPARQLProtocol.java | 95 - .../fuseki/http/TestDatasetAccessorHTTP.java | 261 - .../http/TestDatasetGraphAccessorHTTP.java | 43 - .../org/apache/jena/fuseki/http/TestHttpOp.java | 233 - jena-fuseki2/testing/config-ds-1.ttl | 15 - 587 files changed, 64825 insertions(+), 64692 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/D.trig ---------------------------------------------------------------------- diff --git a/jena-fuseki2/D.trig b/jena-fuseki2/D.trig deleted file mode 100644 index a3e8fcc..0000000 --- a/jena-fuseki2/D.trig +++ /dev/null @@ -1,20 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix : <http://example/> . - -{ :s :p "quads" } -:g { :s :p 2 } http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/D.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki2/D.ttl b/jena-fuseki2/D.ttl deleted file mode 100644 index 739ff9a..0000000 --- a/jena-fuseki2/D.ttl +++ /dev/null @@ -1,19 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix : <http://example/> . - -[] :p "TTL" . http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/Data/books.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki2/Data/books.ttl b/jena-fuseki2/Data/books.ttl deleted file mode 100644 index 7957323..0000000 --- a/jena-fuseki2/Data/books.ttl +++ /dev/null @@ -1,62 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix dc: <http://purl.org/dc/elements/1.1/> . -@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> . -@prefix ns: <http://example.org/ns#> . - -@prefix : <http://example.org/book/> . - -# A small dataset for usage examples of Joseki -# This data is intentionaly irregular (e.g. different ways to -# record the book creator) as if the information is either an -# aggregation or was created at different times. - -:book1 - dc:title "Harry Potter and the Philosopher's Stone" ; - dc:creator "J.K. Rowling" ; - . - -:book2 - dc:title "Harry Potter and the Chamber of Secrets" ; - dc:creator _:a . - -:book3 - dc:title "Harry Potter and the Prisoner Of Azkaban" ; - dc:creator _:a . - -:book4 - dc:title "Harry Potter and the Goblet of Fire" . - -:book5 - dc:title "Harry Potter and the Order of the Phoenix"; - dc:creator "J.K. Rowling" ; - . - -:book6 - dc:title "Harry Potter and the Half-Blood Prince"; - dc:creator "J.K. Rowling" . - -:book7 - dc:title "Harry Potter and the Deathly Hallows" ; - dc:creator "J.K. Rowling" . -_:a - vcard:FN "J.K. Rowling" ; - vcard:N - [ vcard:Family "Rowling" ; - vcard:Given "Joanna" - ] - . http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/Data/test_abox.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki2/Data/test_abox.ttl b/jena-fuseki2/Data/test_abox.ttl deleted file mode 100644 index bb3939a..0000000 --- a/jena-fuseki2/Data/test_abox.ttl +++ /dev/null @@ -1,21 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix : <http://example/ns#> . - -:x rdf:type :A . - http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/Data/test_data_rdfs.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki2/Data/test_data_rdfs.ttl b/jena-fuseki2/Data/test_data_rdfs.ttl deleted file mode 100644 index 9e6daf1..0000000 --- a/jena-fuseki2/Data/test_data_rdfs.ttl +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . - -@prefix : <http://example/ns#> . - -:A a rdfs:Class . -:B a rdfs:Class . - -:A rdfs:subClassOf :B . - -:x rdf:type :A . - http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/Data/test_tbox.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki2/Data/test_tbox.ttl b/jena-fuseki2/Data/test_tbox.ttl deleted file mode 100644 index fae2124..0000000 --- a/jena-fuseki2/Data/test_tbox.ttl +++ /dev/null @@ -1,25 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . - -@prefix : <http://example/ns#> . - -:A a rdfs:Class . -:B a rdfs:Class . - -:A rdfs:subClassOf :B . http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/assembly-dist.xml ---------------------------------------------------------------------- diff --git a/jena-fuseki2/assembly-dist.xml b/jena-fuseki2/assembly-dist.xml deleted file mode 100644 index 682ac39..0000000 --- a/jena-fuseki2/assembly-dist.xml +++ /dev/null @@ -1,88 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - 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. ---> - -<!-- -The distribution. -Assumes jar made and onejar has been assembled. ---> - -<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> - - <id>distribution</id> - - <formats> - <format>zip</format> - <format>tar.gz</format> - </formats> - - <baseDirectory>${project.artifactId}-${project.version}</baseDirectory> - - <files> - <file> - <source>${project.build.directory}/${server.jar.name}.jar</source> - <outputDirectory></outputDirectory> - <destName>fuseki-server.jar</destName> - </file> - <file> - <source>${project.build.directory}/${project.build.finalName}.war</source> - <outputDirectory></outputDirectory> - <destName>fuseki-server.war</destName> - </file> - - <file> - <source>dist/LICENSE</source> - <destName>LICENSE</destName> - </file> - <file> - <source>dist/NOTICE</source> - <destName>NOTICE</destName> - </file> - </files> - - <fileSets> - <fileSet> - <outputDirectory></outputDirectory> - <includes> - <include>templates/*</include> - <include>README*</include> - <include>DEPENDENCIES*</include> - <include>ReleaseNotes.txt</include> - </includes> - </fileSet> - - <fileSet> - <outputDirectory></outputDirectory> - <includes> - <include>log4j.properties</include> - <!--<include>examples/**</include>--> - <include>fuseki</include> - <include>fuseki-server</include> - <include>fuseki-server.bat</include> - <!--<include>s-*</include>--> - </includes> - </fileSet> - - <fileSet> - <directory>src/main/webapp</directory> - <outputDirectory>webapp</outputDirectory> - </fileSet> - - </fileSets> -</assembly> http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/backup ---------------------------------------------------------------------- diff --git a/jena-fuseki2/backup b/jena-fuseki2/backup deleted file mode 100755 index a3cb0b1..0000000 --- a/jena-fuseki2/backup +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# 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. - -DB="ds" - -curl -v -XPOST 'http://localhost:3030/$/sleep?interval=10000' - -curl -v 'http://localhost:3030/$/tasks' \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/bin/s-delete ---------------------------------------------------------------------- diff --git a/jena-fuseki2/bin/s-delete b/jena-fuseki2/bin/s-delete deleted file mode 100755 index 0e3a807..0000000 --- a/jena-fuseki2/bin/s-delete +++ /dev/null @@ -1,707 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -# 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. - -# SPARQL HTTP Update, client. - -require 'optparse' -require 'net/http' -require 'uri' -require 'cgi' -require 'pp' -require 'ostruct' - -# ToDo -# Allow a choice of media type for GET -# --accept "content-type" (and abbreviations) -# --header "Add:this" -# --user, --password -# Basic authentication: request.basic_auth("username", "password") -# Follow redirects => 301: puts response["location"] # All headers are lowercase? - -SOH_NAME="SOH" -SOH_VERSION="0.0.0" - -$proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new - -# What about direct naming? - -# Names -$mtTurtle = 'text/turtle;charset=utf-8' -$mtRDF = 'application/rdf+xml' -$mtText = 'text/plain' -$mtNQuads = 'text/n-quads' -$mtTriG = 'application/trig' -$mtSparqlResultsX = 'application/sparql-results+xml' -$mtSparqlResultsJ = 'application/sparql-results+json' -$mtAppJSON = 'application/json' -$mtAppXML = 'application/xml' -$mtSparqlResultsTSV = 'application/sparql-results+tsv' -$mtSparqlResultsCSV = 'application/sparql-results+csv' -$mtSparqlUpdate = 'application/sparql-update' -$mtWWWForm = 'application/x-www-form-urlencoded' -$mtSparqlQuery = "application/sparql-query" ; - -# Global media type table. -$fileMediaTypes = {} -$fileMediaTypes['ttl'] = $mtTurtle -$fileMediaTypes['n3'] = 'text/n3; charset=utf-8' -$fileMediaTypes['nt'] = $mtText -$fileMediaTypes['rdf'] = $mtRDF -$fileMediaTypes['owl'] = $mtRDF -$fileMediaTypes['nq'] = $mtNQuads -$fileMediaTypes['trig'] = $mtTriG - -# Global charset : no entry means "don't set" -$charsetUTF8 = 'utf-8' -$charset = {} -$charset[$mtTurtle] = 'utf-8' -$charset[$mtText] = 'ascii' -$charset[$mtTriG] = 'utf-8' -$charset[$mtNQuads] = 'ascii' - -# Headers - -$hContentType = 'Content-Type' -# $hContentEncoding = 'Content-Encoding' -$hContentLength = 'Content-Length' -# $hContentLocation = 'Content-Location' -# $hContentRange = 'Content-Range' - -$hAccept = 'Accept' -$hAcceptCharset = 'Accept-Charset' -$hAcceptEncoding = 'Accept-Encoding' -$hAcceptRanges = 'Accept-Ranges' - -$headers = { "User-Agent" => "#{SOH_NAME}/Fuseki #{SOH_VERSION}"} -$print_http = false - -# Default for GET -# At least allow anythign (and hope!) -$accept_rdf="#{$mtRDF};q=0.9 , #{$mtTurtle}" -# For SPARQL query -$accept_results="#{$mtSparqlResultsJ} , #{$mtSparqlResultsX};q=0.9 , #{$accept_rdf}" - -# Accept any in case of trouble. -$accept_rdf="#{$accept_rdf} , */*;q=0.1" -$accept_results="#{$accept_results} , */*;q=0.1" - -# The media type usually forces the charset. -$accept_charset=nil - -## Who we are. -## Two styles: -## s-query ..... -## soh query ..... - -$cmd = File.basename($0) -if $cmd == 'soh' -then - $cmd = (ARGV.size == 0) ? 'soh' : ARGV.shift -end - -if ! $cmd.start_with?('s-') && $cmd != 'soh' - $cmd = 's-'+$cmd -end - -## -------- - -def GET(dataset, graph) - print "GET #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - headers = {} - headers.merge!($headers) - headers[$hAccept] = $accept_rdf - headers[$hAcceptCharset] = $accept_charset unless $accept_charset.nil? - get_worker(requestURI, headers) -end - -def get_worker(requestURI, headers) - uri = URI.parse(requestURI) - request = Net::HTTP::Get.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_print_body(uri, request) -end - -def HEAD(dataset, graph) - print "HEAD #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - headers = {} - headers.merge!($headers) - headers[$hAccept] = $accept_rdf - headers[$hAcceptCharset] = $accept_charset unless $accept_charset.nil? - uri = URI.parse(requestURI) - request = Net::HTTP::Head.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_no_body(uri, request) -end - -def PUT(dataset, graph, file) - print "PUT #{dataset} #{graph} #{file}\n" if $verbose - send_body(dataset, graph, file, Net::HTTP::Put) -end - -def POST(dataset, graph, file) - print "POST #{dataset} #{graph} #{file}\n" if $verbose - send_body(dataset, graph, file, Net::HTTP::Post) -end - -def DELETE(dataset, graph) - print "DELETE #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - uri = URI.parse(requestURI) - request = Net::HTTP::Delete.new(uri.request_uri) - headers = {} - headers.merge!($headers) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_no_body(uri, request) -end - -def uri_escape(string) - CGI.escape(string) -end - -def target(dataset, graph) - return dataset+"?default" if graph == "default" - return dataset+"?graph="+uri_escape(graph) -end - -def send_body(dataset, graph, file, method) - mt = content_type(file) - headers = {} - headers.merge!($headers) - headers[$hContentType] = mt - headers[$hContentLength] = File.size(file).to_s - ## p headers - - requestURI = target(dataset, graph) - uri = URI.parse(requestURI) - - request = method.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - request.body_stream = File.open(file) - response_no_body(uri, request) -end - -def response_no_body(uri, request) - http = Net::HTTP::Proxy($proxy.host,$proxy.port).new(uri.host, uri.port) - http.read_timeout = nil - # check we can connect. - begin http.start - rescue Exception => e - # puts e.message - #puts e.backtrace.inspect - warn_exit "Failed to connect: #{uri.host}:#{uri.port}: #{e.message}", 3 - end - response = http.request(request) - print_http_response(response) - case response - when Net::HTTPSuccess, Net::HTTPRedirection - # OK - when Net::HTTPNotFound - warn_exit "404 Not found: #{uri}", 9 - #print response.body - else - warn_exit "#{response.code} #{response.message} #{uri}", 9 - # Unreachable - response.error! - end - # NO BODY IN RESPONSE -end - -def response_print_body(uri, request) - http = Net::HTTP::Proxy($proxy.host,$proxy.port).new(uri.host, uri.port) - http.read_timeout = nil - # check we can connect. - begin http.start - rescue => e - #puts e.backtrace.inspect - #print e.class - warn_exit "Failed to connect: #{uri.host}:#{uri.port}: #{e.message}", 3 - end - - # Add a blank line if headers were output. - print "\n" if $http_print ; - - begin - response = http.request(request) { |res| - print_http_response(res) - #puts res.code - res.read_body do |segment| - print segment - end - } - case response - when Net::HTTPSuccess, Net::HTTPRedirection - # OK - when Net::HTTPNotFound - warn_exit "404 Not found: #{uri}", 9 - #print response.body - else - warn_exit "#{response.code}: #{uri}", 9 - # Unreachable - response.error! - end - rescue EOFError => e - warn_exit "IO Error: "+e.message, 3 - end -end - -def print_http_request(uri, request) - return unless $print_http - #print "Request\n" - print request.method," ",uri, "\n" - print_headers(" ",request) -end - -def print_http_response(response) - return unless $print_http - #print "Response\n" - print response.code, " ", response.message, "\n" - print_headers(" ",response) -end - -def print_headers(marker, headers) - headers.each do |k,v| - k = k.split('-').map{|w| w.capitalize}.join('-')+':' - printf "%s%-20s %s\n",marker,k,v - end -end - -def content_type(file) - file =~ /\.([^.]*)$/ - ext = $1 - mt = $fileMediaTypes[ext] - cs = $charset[mt] - mt = mt+';charset='+cs if ! cs.nil? - return mt -end - -def charset(content_type) - return $charset[content_type] -end - -def warn_exit(msg, rc) - warn msg - exit rc ; -end - -def parseURI(uri_string) - begin - return URI.parse(uri_string).to_s - rescue URI::InvalidURIError => err - warn_exit "Bad URI: <#{uri_string}>", 2 - end -end - -## ---- Command - -def cmd_soh(command=nil) - ## Command line - options = {} - optparse = OptionParser.new do |opts| - # Set a banner, displayed at the top - # of the help screen. - case $cmd - when "s-http", "sparql-http", "soh" - banner="$cmd [get|post|put|delete] datasetURI graph [file]" - when "s-get", "s-head", "s-delete" - banner="$cmd datasetURI graph" - end - - opts.banner = $banner - # Define the options, and what they do - - options[:verbose] = false - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - - options[:version] = false - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - - # This displays the help screen, all programs are - # assumed to have this option. - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument => e - warn e - exit - end - - $verbose = options[:verbose] - $print_http = $verbose - - if command.nil? - if ARGV.size == 0 - warn "No command given: expected one of 'get', 'put', 'post', 'delete', 'query' or 'update'" - exit 1 - end - cmdPrint=ARGV.shift - command=cmdPrint.upcase - else - cmdPrint=command - end - - case command - when "HEAD", "GET", "DELETE" - requiredFile=false - when "PUT", "POST" - requiredFile=true - when "QUERY" - cmd_sparql_query - when "UPDATE" - cmd_sparql_update - else - warn_exit "Unknown command: #{command}", 2 - end - - if requiredFile - then - if ARGV.size != 3 - warn_exit "Required: dataset URI, graph URI (or 'default') and file", 1 - end - else - if ARGV.size != 2 - warn_exit "Required: dataset URI and graph URI (or 'default')", 1 - end - end - - dataset=parseURI(ARGV.shift) - # Relative URI? - graph=parseURI(ARGV.shift) - file="" - if requiredFile - then - file = ARGV.shift if requiredFile - if ! File.exist?(file) - warn_exit "No such file: "+file, 3 - end - if File.directory?(file) - warn_exit "File is a directory: "+file, 3 - end - end - - case command - when "GET" - GET(dataset, graph) - when "HEAD" - HEAD(dataset, graph) - when "PUT" - PUT(dataset, graph, file) - when "DELETE" - DELETE(dataset, graph) - when "POST" - POST(dataset, graph, file) - else - warn_exit "Internal error: Unknown command: #{cmd}", 2 - end - exit 0 -end - -## -------- -def string_or_file(arg) - return arg if ! arg.match(/^@/) - a=(arg[1..-1]) - open(a, 'rb'){|f| f.read} -end - -## -------- SPARQL Query - -## Choose method -def SPARQL_query(service, query, query_file, forcePOST=false, args2={}) - if ! query_file.nil? - query = open(query_file, 'rb'){|f| f.read} - end - if forcePOST || query.length >= 2*1024 - SPARQL_query_POST(service, query, args2) - else - SPARQL_query_GET(service, query, args2) - end -end - -## By GET - -def SPARQL_query_GET(service, query, args2) - args = { "query" => query } - args.merge!(args2) - qs=args.collect { |k,v| "#{k}=#{uri_escape(v)}" }.join('&') - action="#{service}?#{qs}" - headers={} - headers.merge!($headers) - headers[$hAccept]=$accept_results - get_worker(action, headers) -end - -## By POST - -def SPARQL_query_POST(service, query, args2) - # DRY - body/no body for each of request and response. - post_params={ "query" => query } - post_params.merge!(args2) - uri = URI.parse(service) - headers={} - headers.merge!($headers) - headers[$hAccept]=$accept_results - execute_post_form_body(uri, headers, post_params) -end - -def execute_post_form_body(uri, headers, post_params) - request = Net::HTTP::Post.new(uri.request_uri) - qs=post_params.collect { |k,v| "#{k}=#{uri_escape(v)}" }.join('&') - headers[$hContentType] = $mtWWWForm - headers[$hContentLength] = qs.length.to_s - request.initialize_http_header(headers) - request.body = qs - print_http_request(uri, request) - response_print_body(uri, request) -end - -# Usage: -v --help --file= --query= -def cmd_sparql_query - options={} - optparse = OptionParser.new do |opts| - opts.banner = "Usage: #{$cmd} [--query QUERY] [--service URI] [--post] 'query' | @file" - opts.on('--service=URI', '--server=URI', 'SPARQL endpoint') do |uri| - options[:service]=uri - end - opts.on('--query=FILE','--file=FILE', 'Take query from a file') do |file| - options[:file]=file - end - opts.on('--output=TYPE', [:json,:xml,:text,:csv,:tsv], - 'Set the output argument') do |type| - options[:output]=type - end - opts.on('--accept=TYPE', [:json,:xml,:text,:csv,:tsv], - 'Set the accept header type') do |type| - options[:accept]=type - end - options[:verbose] = false - opts.on( '--post', 'Force use of POST' ) do - options[:post] = true - end - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument, OptionParser::InvalidOption => e - warn e - exit 1 - end - - $verbose = options[:verbose] - $print_http = $verbose - usePOST = options[:post] - - service = options[:service] - warn_exit 'No service specified. Required --service=URI',1 if service.nil? - - # Query - query=nil - query_file=options[:file] - if query_file.nil? && ARGV.size == 0 - then - warn_exit 'No query specified.',1 - end - if query_file.nil? - query = ARGV.shift - if query.match(/^@/) - query_file = query[1..-1] - query = nil - end - end - - # --output ==> output= (non-standard) - args={} - case options[:output] - when nil - when "json","xml","text","csv","tsv" - args['output'] = options[:output] - when :json,:xml,:text,:csv,:tsv - args['output'] = options[:output].to_s - else - warn_exit "Unrecognized output type: "+options[:output],2 - end - - # --accept - # options[:accept] - - print "SPARQL #{service}\n" if $verbose - #args={"output"=>"text"} - SPARQL_query(service, query, query_file, usePOST, args) - exit(0) -end - -## -------- SPARQL Update - -# Update sent as a WWW form. -def SPARQL_update_by_form(service, update, args2={}) - args = {} - args.merge!(args2) - headers={} - headers.merge!($headers) - # args? encode? - body="update="+uri_escape(update) - headers[$hContentType] = $mtWWWForm - headers[$hContentLength] = body.length.to_s - uri = URI.parse(service) - execute_post_form(uri, headers, body) -end - -# DRY - query form. -def execute_post_form(uri, headers, body) - request = Net::HTTP::Post.new(uri.request_uri) - request.initialize_http_header(headers) - request.body = body - print_http_request(uri, request) - response_no_body(uri, request) -end - -def SPARQL_update(service, update, args2={}) - args = {} - args.merge!(args2) - headers={} - headers.merge!($headers) - headers[$hContentType] = $mtSparqlUpdate - uri = URI.parse(service) - request = Net::HTTP::Post.new(uri.request_uri) - request.initialize_http_header(headers) - request.body = update - print_http_request(uri, request) - response_no_body(uri, request) -end - -def cmd_sparql_update(by_raw_post=true) - # Share with cmd_sparql_query - options={} - optparse = OptionParser.new do |opts| - opts.banner = "Usage: #{$cmd} [--file REQUEST] [--service URI] 'request' | @file" - opts.on('--service=URI', '--server=URI', 'SPARQL endpoint') do |uri| - options[:service]=uri - end - opts.on('--update=FILE', '--file=FILE', 'Take update from a file') do |file| - options[:file]=file - end - options[:verbose] = false - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument => e - warn e - exit - end - - $verbose = options[:verbose] - $print_http = $verbose - - service = options[:service] - warn_exit 'No service specified. Required --service=URI',1 if service.nil? - - update=nil - update_file=options[:file] - - if update_file.nil? && ARGV.size == 0 - then - warn_exit 'No update specified.',1 - end - if update_file.nil? - update = ARGV.shift - if update.match(/^@/) - update_file = update[1..-1] - update = nil - end - end - - print "SPARQL-Update #{service}\n" if $verbose - args={} - - # Reads in the file :-( - if update.nil? - then - update = open(update_file, 'rb'){|f| f.read} - else - update = string_or_file(update) - end - - if by_raw_post - SPARQL_update(service, update, args) - else - SPARQL_update_by_form(service, update, args) - end - exit(0) -end - -## ------- - -case $cmd -when "s-http", "sparql-http", "soh" - $banner="#{$cmd} [get|post|put|delete] datasetURI graph [file]" - cmd_soh -when "s-get", "s-head", "s-put", "s-delete", "s-post" - - case $cmd - when "s-get", "s-head", "s-delete" - $banner="#{$cmd} datasetURI graph" - when "s-put", "s-post" - $banner="#{$cmd} datasetURI graph file" - end - cmd2 = $cmd.sub(/^s-/, '').upcase - cmd_soh cmd2 - -when "s-query", "sparql-query" - cmd_sparql_query -when "s-update", "sparql-update" - cmd_sparql_update true -when "s-update-form", "sparql-update-form" - cmd_sparql_update false -else - warn_exit "Unknown: "+$cmd, 1 -end http://git-wip-us.apache.org/repos/asf/jena/blob/470ee4d7/jena-fuseki2/bin/s-get ---------------------------------------------------------------------- diff --git a/jena-fuseki2/bin/s-get b/jena-fuseki2/bin/s-get deleted file mode 100755 index 0e3a807..0000000 --- a/jena-fuseki2/bin/s-get +++ /dev/null @@ -1,707 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -# 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. - -# SPARQL HTTP Update, client. - -require 'optparse' -require 'net/http' -require 'uri' -require 'cgi' -require 'pp' -require 'ostruct' - -# ToDo -# Allow a choice of media type for GET -# --accept "content-type" (and abbreviations) -# --header "Add:this" -# --user, --password -# Basic authentication: request.basic_auth("username", "password") -# Follow redirects => 301: puts response["location"] # All headers are lowercase? - -SOH_NAME="SOH" -SOH_VERSION="0.0.0" - -$proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new - -# What about direct naming? - -# Names -$mtTurtle = 'text/turtle;charset=utf-8' -$mtRDF = 'application/rdf+xml' -$mtText = 'text/plain' -$mtNQuads = 'text/n-quads' -$mtTriG = 'application/trig' -$mtSparqlResultsX = 'application/sparql-results+xml' -$mtSparqlResultsJ = 'application/sparql-results+json' -$mtAppJSON = 'application/json' -$mtAppXML = 'application/xml' -$mtSparqlResultsTSV = 'application/sparql-results+tsv' -$mtSparqlResultsCSV = 'application/sparql-results+csv' -$mtSparqlUpdate = 'application/sparql-update' -$mtWWWForm = 'application/x-www-form-urlencoded' -$mtSparqlQuery = "application/sparql-query" ; - -# Global media type table. -$fileMediaTypes = {} -$fileMediaTypes['ttl'] = $mtTurtle -$fileMediaTypes['n3'] = 'text/n3; charset=utf-8' -$fileMediaTypes['nt'] = $mtText -$fileMediaTypes['rdf'] = $mtRDF -$fileMediaTypes['owl'] = $mtRDF -$fileMediaTypes['nq'] = $mtNQuads -$fileMediaTypes['trig'] = $mtTriG - -# Global charset : no entry means "don't set" -$charsetUTF8 = 'utf-8' -$charset = {} -$charset[$mtTurtle] = 'utf-8' -$charset[$mtText] = 'ascii' -$charset[$mtTriG] = 'utf-8' -$charset[$mtNQuads] = 'ascii' - -# Headers - -$hContentType = 'Content-Type' -# $hContentEncoding = 'Content-Encoding' -$hContentLength = 'Content-Length' -# $hContentLocation = 'Content-Location' -# $hContentRange = 'Content-Range' - -$hAccept = 'Accept' -$hAcceptCharset = 'Accept-Charset' -$hAcceptEncoding = 'Accept-Encoding' -$hAcceptRanges = 'Accept-Ranges' - -$headers = { "User-Agent" => "#{SOH_NAME}/Fuseki #{SOH_VERSION}"} -$print_http = false - -# Default for GET -# At least allow anythign (and hope!) -$accept_rdf="#{$mtRDF};q=0.9 , #{$mtTurtle}" -# For SPARQL query -$accept_results="#{$mtSparqlResultsJ} , #{$mtSparqlResultsX};q=0.9 , #{$accept_rdf}" - -# Accept any in case of trouble. -$accept_rdf="#{$accept_rdf} , */*;q=0.1" -$accept_results="#{$accept_results} , */*;q=0.1" - -# The media type usually forces the charset. -$accept_charset=nil - -## Who we are. -## Two styles: -## s-query ..... -## soh query ..... - -$cmd = File.basename($0) -if $cmd == 'soh' -then - $cmd = (ARGV.size == 0) ? 'soh' : ARGV.shift -end - -if ! $cmd.start_with?('s-') && $cmd != 'soh' - $cmd = 's-'+$cmd -end - -## -------- - -def GET(dataset, graph) - print "GET #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - headers = {} - headers.merge!($headers) - headers[$hAccept] = $accept_rdf - headers[$hAcceptCharset] = $accept_charset unless $accept_charset.nil? - get_worker(requestURI, headers) -end - -def get_worker(requestURI, headers) - uri = URI.parse(requestURI) - request = Net::HTTP::Get.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_print_body(uri, request) -end - -def HEAD(dataset, graph) - print "HEAD #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - headers = {} - headers.merge!($headers) - headers[$hAccept] = $accept_rdf - headers[$hAcceptCharset] = $accept_charset unless $accept_charset.nil? - uri = URI.parse(requestURI) - request = Net::HTTP::Head.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_no_body(uri, request) -end - -def PUT(dataset, graph, file) - print "PUT #{dataset} #{graph} #{file}\n" if $verbose - send_body(dataset, graph, file, Net::HTTP::Put) -end - -def POST(dataset, graph, file) - print "POST #{dataset} #{graph} #{file}\n" if $verbose - send_body(dataset, graph, file, Net::HTTP::Post) -end - -def DELETE(dataset, graph) - print "DELETE #{dataset} #{graph}\n" if $verbose - requestURI = target(dataset, graph) - uri = URI.parse(requestURI) - request = Net::HTTP::Delete.new(uri.request_uri) - headers = {} - headers.merge!($headers) - request.initialize_http_header(headers) - print_http_request(uri, request) - response_no_body(uri, request) -end - -def uri_escape(string) - CGI.escape(string) -end - -def target(dataset, graph) - return dataset+"?default" if graph == "default" - return dataset+"?graph="+uri_escape(graph) -end - -def send_body(dataset, graph, file, method) - mt = content_type(file) - headers = {} - headers.merge!($headers) - headers[$hContentType] = mt - headers[$hContentLength] = File.size(file).to_s - ## p headers - - requestURI = target(dataset, graph) - uri = URI.parse(requestURI) - - request = method.new(uri.request_uri) - request.initialize_http_header(headers) - print_http_request(uri, request) - request.body_stream = File.open(file) - response_no_body(uri, request) -end - -def response_no_body(uri, request) - http = Net::HTTP::Proxy($proxy.host,$proxy.port).new(uri.host, uri.port) - http.read_timeout = nil - # check we can connect. - begin http.start - rescue Exception => e - # puts e.message - #puts e.backtrace.inspect - warn_exit "Failed to connect: #{uri.host}:#{uri.port}: #{e.message}", 3 - end - response = http.request(request) - print_http_response(response) - case response - when Net::HTTPSuccess, Net::HTTPRedirection - # OK - when Net::HTTPNotFound - warn_exit "404 Not found: #{uri}", 9 - #print response.body - else - warn_exit "#{response.code} #{response.message} #{uri}", 9 - # Unreachable - response.error! - end - # NO BODY IN RESPONSE -end - -def response_print_body(uri, request) - http = Net::HTTP::Proxy($proxy.host,$proxy.port).new(uri.host, uri.port) - http.read_timeout = nil - # check we can connect. - begin http.start - rescue => e - #puts e.backtrace.inspect - #print e.class - warn_exit "Failed to connect: #{uri.host}:#{uri.port}: #{e.message}", 3 - end - - # Add a blank line if headers were output. - print "\n" if $http_print ; - - begin - response = http.request(request) { |res| - print_http_response(res) - #puts res.code - res.read_body do |segment| - print segment - end - } - case response - when Net::HTTPSuccess, Net::HTTPRedirection - # OK - when Net::HTTPNotFound - warn_exit "404 Not found: #{uri}", 9 - #print response.body - else - warn_exit "#{response.code}: #{uri}", 9 - # Unreachable - response.error! - end - rescue EOFError => e - warn_exit "IO Error: "+e.message, 3 - end -end - -def print_http_request(uri, request) - return unless $print_http - #print "Request\n" - print request.method," ",uri, "\n" - print_headers(" ",request) -end - -def print_http_response(response) - return unless $print_http - #print "Response\n" - print response.code, " ", response.message, "\n" - print_headers(" ",response) -end - -def print_headers(marker, headers) - headers.each do |k,v| - k = k.split('-').map{|w| w.capitalize}.join('-')+':' - printf "%s%-20s %s\n",marker,k,v - end -end - -def content_type(file) - file =~ /\.([^.]*)$/ - ext = $1 - mt = $fileMediaTypes[ext] - cs = $charset[mt] - mt = mt+';charset='+cs if ! cs.nil? - return mt -end - -def charset(content_type) - return $charset[content_type] -end - -def warn_exit(msg, rc) - warn msg - exit rc ; -end - -def parseURI(uri_string) - begin - return URI.parse(uri_string).to_s - rescue URI::InvalidURIError => err - warn_exit "Bad URI: <#{uri_string}>", 2 - end -end - -## ---- Command - -def cmd_soh(command=nil) - ## Command line - options = {} - optparse = OptionParser.new do |opts| - # Set a banner, displayed at the top - # of the help screen. - case $cmd - when "s-http", "sparql-http", "soh" - banner="$cmd [get|post|put|delete] datasetURI graph [file]" - when "s-get", "s-head", "s-delete" - banner="$cmd datasetURI graph" - end - - opts.banner = $banner - # Define the options, and what they do - - options[:verbose] = false - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - - options[:version] = false - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - - # This displays the help screen, all programs are - # assumed to have this option. - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument => e - warn e - exit - end - - $verbose = options[:verbose] - $print_http = $verbose - - if command.nil? - if ARGV.size == 0 - warn "No command given: expected one of 'get', 'put', 'post', 'delete', 'query' or 'update'" - exit 1 - end - cmdPrint=ARGV.shift - command=cmdPrint.upcase - else - cmdPrint=command - end - - case command - when "HEAD", "GET", "DELETE" - requiredFile=false - when "PUT", "POST" - requiredFile=true - when "QUERY" - cmd_sparql_query - when "UPDATE" - cmd_sparql_update - else - warn_exit "Unknown command: #{command}", 2 - end - - if requiredFile - then - if ARGV.size != 3 - warn_exit "Required: dataset URI, graph URI (or 'default') and file", 1 - end - else - if ARGV.size != 2 - warn_exit "Required: dataset URI and graph URI (or 'default')", 1 - end - end - - dataset=parseURI(ARGV.shift) - # Relative URI? - graph=parseURI(ARGV.shift) - file="" - if requiredFile - then - file = ARGV.shift if requiredFile - if ! File.exist?(file) - warn_exit "No such file: "+file, 3 - end - if File.directory?(file) - warn_exit "File is a directory: "+file, 3 - end - end - - case command - when "GET" - GET(dataset, graph) - when "HEAD" - HEAD(dataset, graph) - when "PUT" - PUT(dataset, graph, file) - when "DELETE" - DELETE(dataset, graph) - when "POST" - POST(dataset, graph, file) - else - warn_exit "Internal error: Unknown command: #{cmd}", 2 - end - exit 0 -end - -## -------- -def string_or_file(arg) - return arg if ! arg.match(/^@/) - a=(arg[1..-1]) - open(a, 'rb'){|f| f.read} -end - -## -------- SPARQL Query - -## Choose method -def SPARQL_query(service, query, query_file, forcePOST=false, args2={}) - if ! query_file.nil? - query = open(query_file, 'rb'){|f| f.read} - end - if forcePOST || query.length >= 2*1024 - SPARQL_query_POST(service, query, args2) - else - SPARQL_query_GET(service, query, args2) - end -end - -## By GET - -def SPARQL_query_GET(service, query, args2) - args = { "query" => query } - args.merge!(args2) - qs=args.collect { |k,v| "#{k}=#{uri_escape(v)}" }.join('&') - action="#{service}?#{qs}" - headers={} - headers.merge!($headers) - headers[$hAccept]=$accept_results - get_worker(action, headers) -end - -## By POST - -def SPARQL_query_POST(service, query, args2) - # DRY - body/no body for each of request and response. - post_params={ "query" => query } - post_params.merge!(args2) - uri = URI.parse(service) - headers={} - headers.merge!($headers) - headers[$hAccept]=$accept_results - execute_post_form_body(uri, headers, post_params) -end - -def execute_post_form_body(uri, headers, post_params) - request = Net::HTTP::Post.new(uri.request_uri) - qs=post_params.collect { |k,v| "#{k}=#{uri_escape(v)}" }.join('&') - headers[$hContentType] = $mtWWWForm - headers[$hContentLength] = qs.length.to_s - request.initialize_http_header(headers) - request.body = qs - print_http_request(uri, request) - response_print_body(uri, request) -end - -# Usage: -v --help --file= --query= -def cmd_sparql_query - options={} - optparse = OptionParser.new do |opts| - opts.banner = "Usage: #{$cmd} [--query QUERY] [--service URI] [--post] 'query' | @file" - opts.on('--service=URI', '--server=URI', 'SPARQL endpoint') do |uri| - options[:service]=uri - end - opts.on('--query=FILE','--file=FILE', 'Take query from a file') do |file| - options[:file]=file - end - opts.on('--output=TYPE', [:json,:xml,:text,:csv,:tsv], - 'Set the output argument') do |type| - options[:output]=type - end - opts.on('--accept=TYPE', [:json,:xml,:text,:csv,:tsv], - 'Set the accept header type') do |type| - options[:accept]=type - end - options[:verbose] = false - opts.on( '--post', 'Force use of POST' ) do - options[:post] = true - end - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument, OptionParser::InvalidOption => e - warn e - exit 1 - end - - $verbose = options[:verbose] - $print_http = $verbose - usePOST = options[:post] - - service = options[:service] - warn_exit 'No service specified. Required --service=URI',1 if service.nil? - - # Query - query=nil - query_file=options[:file] - if query_file.nil? && ARGV.size == 0 - then - warn_exit 'No query specified.',1 - end - if query_file.nil? - query = ARGV.shift - if query.match(/^@/) - query_file = query[1..-1] - query = nil - end - end - - # --output ==> output= (non-standard) - args={} - case options[:output] - when nil - when "json","xml","text","csv","tsv" - args['output'] = options[:output] - when :json,:xml,:text,:csv,:tsv - args['output'] = options[:output].to_s - else - warn_exit "Unrecognized output type: "+options[:output],2 - end - - # --accept - # options[:accept] - - print "SPARQL #{service}\n" if $verbose - #args={"output"=>"text"} - SPARQL_query(service, query, query_file, usePOST, args) - exit(0) -end - -## -------- SPARQL Update - -# Update sent as a WWW form. -def SPARQL_update_by_form(service, update, args2={}) - args = {} - args.merge!(args2) - headers={} - headers.merge!($headers) - # args? encode? - body="update="+uri_escape(update) - headers[$hContentType] = $mtWWWForm - headers[$hContentLength] = body.length.to_s - uri = URI.parse(service) - execute_post_form(uri, headers, body) -end - -# DRY - query form. -def execute_post_form(uri, headers, body) - request = Net::HTTP::Post.new(uri.request_uri) - request.initialize_http_header(headers) - request.body = body - print_http_request(uri, request) - response_no_body(uri, request) -end - -def SPARQL_update(service, update, args2={}) - args = {} - args.merge!(args2) - headers={} - headers.merge!($headers) - headers[$hContentType] = $mtSparqlUpdate - uri = URI.parse(service) - request = Net::HTTP::Post.new(uri.request_uri) - request.initialize_http_header(headers) - request.body = update - print_http_request(uri, request) - response_no_body(uri, request) -end - -def cmd_sparql_update(by_raw_post=true) - # Share with cmd_sparql_query - options={} - optparse = OptionParser.new do |opts| - opts.banner = "Usage: #{$cmd} [--file REQUEST] [--service URI] 'request' | @file" - opts.on('--service=URI', '--server=URI', 'SPARQL endpoint') do |uri| - options[:service]=uri - end - opts.on('--update=FILE', '--file=FILE', 'Take update from a file') do |file| - options[:file]=file - end - options[:verbose] = false - opts.on( '-v', '--verbose', 'Verbose' ) do - options[:verbose] = true - end - opts.on( '--version', 'Print version and exit' ) do - print "#{SOH_NAME} #{SOH_VERSION}\n" - exit - end - opts.on( '-h', '--help', 'Display this screen and exit' ) do - puts opts - exit - end - end - - begin optparse.parse! - rescue OptionParser::InvalidArgument => e - warn e - exit - end - - $verbose = options[:verbose] - $print_http = $verbose - - service = options[:service] - warn_exit 'No service specified. Required --service=URI',1 if service.nil? - - update=nil - update_file=options[:file] - - if update_file.nil? && ARGV.size == 0 - then - warn_exit 'No update specified.',1 - end - if update_file.nil? - update = ARGV.shift - if update.match(/^@/) - update_file = update[1..-1] - update = nil - end - end - - print "SPARQL-Update #{service}\n" if $verbose - args={} - - # Reads in the file :-( - if update.nil? - then - update = open(update_file, 'rb'){|f| f.read} - else - update = string_or_file(update) - end - - if by_raw_post - SPARQL_update(service, update, args) - else - SPARQL_update_by_form(service, update, args) - end - exit(0) -end - -## ------- - -case $cmd -when "s-http", "sparql-http", "soh" - $banner="#{$cmd} [get|post|put|delete] datasetURI graph [file]" - cmd_soh -when "s-get", "s-head", "s-put", "s-delete", "s-post" - - case $cmd - when "s-get", "s-head", "s-delete" - $banner="#{$cmd} datasetURI graph" - when "s-put", "s-post" - $banner="#{$cmd} datasetURI graph file" - end - cmd2 = $cmd.sub(/^s-/, '').upcase - cmd_soh cmd2 - -when "s-query", "sparql-query" - cmd_sparql_query -when "s-update", "sparql-update" - cmd_sparql_update true -when "s-update-form", "sparql-update-form" - cmd_sparql_update false -else - warn_exit "Unknown: "+$cmd, 1 -end
