Uri parser fixes (#2)

* auth improvements WIP
* fixing strange URL errors (a bit hackishly)
* changing Actions to use URIs rather than Entity Names and Service Roots. Also cleaned up README.
* cleaning up imports and reformatting code

Improved transfer workflow and command line options (#6)

* Improved transfer workflow and command line options
* fixed command line issues and URI parsing
* Updated README

Update README.md
Removed metadata
This commit is contained in:
Joshua Darnell 2019-04-04 08:08:43 -07:00 committed by Joshua Darnell
parent d1a804fa91
commit 486cf4e65d
45 changed files with 8255 additions and 87256 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
target/ target/
.idea/ .idea/
classes/ classes/
*.swagger.json

178
README.md
View File

@ -9,8 +9,7 @@ the Apache Olingo library to provide the following functionality:
* Validate Metadata * Validate Metadata
* Get Entity data from a Web API URL * Get Entity data from a Web API URL
* Save raw responses from a WEB API URL * Save raw responses from a WEB API URL
* Read all Entities up to a given limit * Convert EDMX to Swagger / OpenAPI format
* Convert EDMX to Swagger / OAI
The Web API Commander currently supports Bearer Tokens for authentication. The Web API Commander currently supports Bearer Tokens for authentication.
Additional methods of authentication will be added through subsequent updates. Additional methods of authentication will be added through subsequent updates.
@ -27,10 +26,12 @@ usage: java -jar web-api-commander
in <inputFile>.swagger.json in <inputFile>.swagger.json
--entityName <n> The name of the entity to fetch, e.g. --entityName <n> The name of the entity to fetch, e.g.
Property. Property.
--filter <f> If <filter> is passed, then readEntities will --getEntities executes GET on <uri> using the given
use it. <bearerToken> and optional <serviceRoot> when
--getEntitySet executes GET on <uri> using the given --useEdmEnabledClient is specified. Optionally
<bearerToken> and <outputFile>. takes a <limit>, which will fetch that number
of results. Pass --limit -1 to fetch all
results.
--getMetadata fetches metadata from <serviceRoot> using --getMetadata fetches metadata from <serviceRoot> using
<bearerToken> and saves results in <bearerToken> and saves results in
<outputFile>. <outputFile>.
@ -39,24 +40,22 @@ usage: java -jar web-api-commander
--limit <l> The number of records to fetch, or -1 to fetch --limit <l> The number of records to fetch, or -1 to fetch
all. all.
--outputFile <o> Path to output file. --outputFile <o> Path to output file.
--readEntities reads <entityName> from <serviceRoot> using --saveRawGetRequest performs GET from <requestURI> using the given
<bearerToken> and saves results in <bearerToken> and saves output to
<outputFile>. <outputFile>.
--saveRawGetRequest performs GET from <requestURI> using the
given <bearerToken> and saves the output to <outputFile>.
--serviceRoot <s> Service root URL on the host. --serviceRoot <s> Service root URL on the host.
--uri <u> URI for raw request. --uri <u> URI for raw request. Use 'single quotes' to enclose.
--useEdmEnabledClient present if an EdmEnabledClient should be used. --useEdmEnabledClient present if an EdmEnabledClient should be used.
--validateMetadata validates previously-fetched metadata in the --validateMetadata validates previously-fetched metadata in the
<inputFile> path. <inputFile> path.
``` ```
## Usage ## Usage
## 1. Getting Metadata ## 1. Getting Metadata
To get metadata, use the `--getMetadata` argument with the following options: To get metadata, use the `--getMetadata` argument with the following
options:
``` ```
java -jar web-api-commander.jar --getMetadata --serviceRoot <s> --bearerToken <b> --outputFile <o> java -jar web-api-commander.jar --getMetadata --serviceRoot <s> --bearerToken <b> --outputFile <o>
@ -64,99 +63,101 @@ java -jar web-api-commander.jar --getMetadata --serviceRoot <s> --bearerToken <b
where `serviceRoot` is the path to the root of the OData WebAPI server. where `serviceRoot` is the path to the root of the OData WebAPI server.
Assuming everything goes well, metadata will be retrieved from the host and written to the provided `--outputFile`. Assuming everything goes well, metadata will be retrieved from the host
and written to the provided `--outputFile`.
**Note**: additional validation is done after metadata have been received.
Errors in metadata won't cause the program to terminate, but validation
information will be displayed. Also, it's worth mentioning that some
of the validation error messages "out-of-the-box" from the Olingo
Library we're using to validate with can be pretty cryptic. Please
open an issue if you find things that need better explanations.
**Note**: additional validation is done after metadata have been received. Errors in metadata
won't cause the program to terminate, but validation information will be displayed.
## 2. Validating Metadata stored in an EDMX file ## 2. Validating Metadata stored in an EDMX file
Sometimes it's useful to validate an already-downloaded EDMX file. Sometimes it's useful to validate an already-downloaded EDMX file.
Since parsing EDMX is an incremental process, validation terminates _each time_ invalid Since parsing EDMX is an incremental process, validation terminates
items are encountered. Therefore, the workflow for correcting an EDMX document that contains errors _each time_ invalid items are encountered. Therefore, the workflow for
would be to run the Commander repeatedly, fixing errors that are encountered along the way. correcting an EDMX document that contains errors would be to run the
Commander repeatedly, fixing errors that are encountered along the way.
To validate metadata, call the Web API Commander with the following options: To validate metadata that's already been downloaded, call the Web API
Commander with the following options:
``` ```
java -jar web-api-commander.jar --validateMetadata --inputFile <i> java -jar web-api-commander.jar --validateMetadata --inputFile <i>
``` ```
where `inputFile` is the path to your EDMX file. Errors will be logged according to the `log4j.properties` file where `inputFile` is the path to your EDMX file. Errors will be logged
used at runtime. according to the `log4j.properties` file used at runtime.
## 3. Getting results from a given `uri` using OData ## 3. Getting results from a given `uri`
OData offers additional options for requesting data from a WebAPI server beyond just receiving the OData offers additional options for requesting data from a WebAPI server
raw server response (shown in the next example). beyond just receiving the raw server response (shown in the next example).
In this case, the appropriate action is: `--getEntitySet`, which can be called as follows: In this case, the appropriate action is: `--getEntities`, which can be
called as follows:
``` ```
java -jar web-api-commander.jar --getEntitySet --uri <u> --bearerToken <b> --outputFile <o> java -jar web-api-commander.jar --getEntities --uri <u> --bearerToken <b> --outputFile <o>
``` ```
When using the `--useEdmEnabledClient` option, results will be verified against Server metadata Make sure that any `uri` containing spaces or special characters is
after being downloaded. If this option is chosen, then `--serviceRoot` is required so that the Web API wrapped in 'single quotes'.
Commander can pull the Server's metadata in addition to the results from the given `--uri`
The `getEntitySet` action also supports the `--contentType` option, which will change how results are When using the `--useEdmEnabledClient` option, results will be verified
written. Currently supported options are: `JSON`, `JSON_NO_METADATA`, `JSON_FULL_METADATA`, and `XML`. against Server metadata after being downloaded. If this option is chosen,
then `--serviceRoot` is required so that the Web API Commander can pull
the Server's metadata in addition to the results from the given `--uri`
## 4. Getting raw results from a given `uri` using `saveGetRawRequest` The `getEntitySet` action also supports the `--contentType` option,
which will change how results are written. Currently supported options
are: `JSON`, `JSON_NO_METADATA`, `JSON_FULL_METADATA`, and `XML`.
If additional processing using the OData Olingo library is not needed, raw requests may be issued Finally, there's an "experimental" auto-paging option which allows
against the server instead. all records to be pulled from the Server. In order to use this option,
pass `--limit -1` when using `--getEntities`. In the near future,
an auto-resume feature will be added so that if something happens
during transfer, the process will resume from the last record consumed.
The `--saveGetRawRequest` action writes the raw response from a GET request to the given `--uri` ## 4. Getting raw results from a given `uri` using `saveRawGetRequest`
from the Web API server directly to the given `--outputFile`.
If additional processing using the OData Olingo library is not needed,
raw requests may be issued against the server instead.
The `--saveRawGetRequest` action writes the raw response from a GET
request to the given `--uri` from the Web API server directly to the
given `--outputFile`.
Usage: Usage:
``` ```
java -jar web-api-commander.jar --uri <u> --bearerToken <b> --outputFile <o> java -jar web-api-commander.jar --saveRawGetRequest --uri <u> --bearerToken <b> --outputFile <o>
``` ```
Results are not checked against Server Metadata and are not written in any specific OData format. Results are not checked against Server Metadata and are not written in
any specific OData format.
Make sure that any `uri` containing spaces or special characters is
wrapped in 'single quotes'.
Note: this option is currently being rolled into `--getEntities` with
`--contentType RAW`. Documentation will be updated once the change has
been made.
## 5. Reading all Entities up to `limit` using `readEntities`
The `readEntities` action takes an `entityName` and reads all items up until `limit` on a given ## 5. Converting metadata from EDMX format to Open API / Swagger 2.0 format
`serverRoot`. Paging is done behind the scenes by computing skips for each page of results.
Usage: The WebAPI Commander also supports converting files in EDMX format to
OpenAPI / Swagger 2.0 format. This gives servers an alternative
representation besides the OData-specific representation used by EDMX.
``` It's worth mentioning that translation from EDMX to OpenAPI/Swagger is
java -jar web-api-commander.jar --readEntities --inputFile <i> --outputFile <o> --limit 101 --serviceRoot --serviceRoot <s> --bearerToken <b> --entityName Property --filter "ListPrice gt 1000000" --useEdmEnabledClient _lossy_, meaning that some EDMX elements will not be translated. This
``` is due to the fact that EDMX is more specific than OpenAPI, for instance with type
Once results are fetched, they're written to the given `outputFile`. Additional options are supported
as well, such as `useEdmEnabledClient`, which also requires that `serviceRoot` be passed. The EDM-enabled
client will check results against server metadata once they're downloaded.
This action also supports serialization in different formats using the `contentType` option. The
Content Types currently supported are: `JSON`, `JSON_NO_METADATA`, `JSON_FULL_METADATA`, and `XML`.
`readEntities` also supports `filter` expressions, as it may sometimes be useful to filter the entities
being fetched. While most command line arguments don't need to be quoted, `filter` expressions are the exception.
See above example.
**Note**: passing `--limit -1` as an option will fetch _all_ Entities from the given `serviceRoot`.
Additional query options will eventually be added, such as `$select` and `$order`. Planned
functionality includes a `parallel` option which will fetch multiple pages simultaneously up to `numThreads` workers.
## 6. Converting metadata from EDMX format to Open API / Swagger 2.0 format
The WebAPI Commander also supports converting files in EDMX format to Open API / Swagger 2.0 format. This
gives servers an alternative representation besides the OData-specific representation used by EDMX.
It's worth mentioning that translation from EDMX to OAI/Swagger is _lossy_, meaning that some EDMX elements
will not be translated. This is due to the fact that EDMX is more specific than OAI, for instance with type
representations like Integers. representations like Integers.
The EDMX converter may be called as follows: The EDMX converter may be called as follows:
@ -170,8 +171,37 @@ the given EDMX `inputFile` name.
--- ---
## Logging
In the current release of the Commander, the default logging level has been set to `INFO` rather than `ALL` or `DEBUG`.
For instance, to log output to a file rather than piping the output of what's on the console to a file, the path to your custom settings file can be specified by passing a command line arg. There's more information about log4j.properties file [here](https://logging.apache.org/log4j/2.x/manual/configuration.html).
In this case, you'd want a log4j.properties file (name is arbitrary) similar to the following:
```
log4j.rootLogger=ALL, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.conversionPattern=%m%n
```
which you can then pass to the Commander as follows:
```
java -Dlog4j.configuration=file:/path/to/your/log4j.properties -jar web-api-commander.jar <... remaining arguments>
```
It's important to note that `-Dlog4j.configuration=file:/path/to/your/log4j.properties` _must_ contain a path to the file. In the case above, the file was in the same directory as the Java executable, but you'll need to change that if you're using a different directory.
---
Please contact [josh@reso.org](mailto:josh@reso.org) with any questions, bug reports, or feature requests. Please contact [josh@reso.org](mailto:josh@reso.org) with any questions, bug reports, or feature requests.
**Coming Soon**: support for authentication options in addition to Bearer tokens. **Coming Soon**:
* Support for authentication options in addition to Bearer tokens
* Parallel fetch
* Job Scheduling
* Excel export

File diff suppressed because it is too large Load Diff

22
doc/allclasses-frame.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>All Classes</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="org/reso/Commander.html" title="class in org.reso" target="classFrame">Commander</a></li>
<li><a href="org/reso/Commander.Builder.html" title="class in org.reso" target="classFrame">Commander.Builder</a></li>
<li><a href="org/reso/Main.html" title="class in org.reso" target="classFrame">Main</a></li>
<li><a href="org/reso/TokenHttpClientFactory.html" title="class in org.reso" target="classFrame">TokenHttpClientFactory</a></li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>All Classes</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="org/reso/Commander.html" title="class in org.reso">Commander</a></li>
<li><a href="org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></li>
<li><a href="org/reso/Main.html" title="class in org.reso">Main</a></li>
<li><a href="org/reso/TokenHttpClientFactory.html" title="class in org.reso">TokenHttpClientFactory</a></li>
</ul>
</div>
</body>
</html>

120
doc/constant-values.html Normal file
View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Constant Field Values</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Constant Field Values";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
<h2 title="Contents">Contents</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

120
doc/deprecated-list.html Normal file
View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Deprecated List</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Deprecated List";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

217
doc/help-doc.html Normal file
View File

@ -0,0 +1,217 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>API Help</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API Help";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">How This API Document Is Organized</h1>
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<h2>Package</h2>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
<ul>
<li>Interfaces (italic)</li>
<li>Classes</li>
<li>Enums</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Types</li>
</ul>
</li>
<li class="blockList">
<h2>Class/Interface</h2>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
<ul>
<li>Class inheritance diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class/interface declaration</li>
<li>Class/interface description</li>
</ul>
<ul>
<li>Nested Class Summary</li>
<li>Field Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
</ul>
<ul>
<li>Field Detail</li>
<li>Constructor Detail</li>
<li>Method Detail</li>
</ul>
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</li>
<li class="blockList">
<h2>Annotation Type</h2>
<p>Each annotation type has its own separate page with the following sections:</p>
<ul>
<li>Annotation Type declaration</li>
<li>Annotation Type description</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
<li>Element Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Enum</h2>
<p>Each enum has its own separate page with the following sections:</p>
<ul>
<li>Enum declaration</li>
<li>Enum description</li>
<li>Enum Constant Summary</li>
<li>Enum Constant Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Tree (Class Hierarchy)</h2>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul>
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
</ul>
</li>
<li class="blockList">
<h2>Deprecated API</h2>
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
</li>
<li class="blockList">
<h2>Index</h2>
<p>The <a href="index-files/index-1.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
</li>
<li class="blockList">
<h2>Prev/Next</h2>
<p>These links take you to the next or previous class, interface, package, or related page.</p>
</li>
<li class="blockList">
<h2>Frames/No Frames</h2>
<p>These links show and hide the HTML frames. All pages are available with or without frames.</p>
</li>
<li class="blockList">
<h2>All Classes</h2>
<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
</li>
<li class="blockList">
<h2>Serialized Form</h2>
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
</li>
<li class="blockList">
<h2>Constant Field Values</h2>
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
</li>
</ul>
<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>B-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="B-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Letter</li>
<li><a href="index-2.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-1.html" target="_top">Frames</a></li>
<li><a href="index-1.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:B">
<!-- -->
</a>
<h2 class="title">B</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#bearerToken-java.lang.String-">bearerToken(String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#build--">build()</a></span> - Method in class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#Builder--">Builder()</a></span> - Constructor for class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Letter</li>
<li><a href="index-2.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-1.html" target="_top">Frames</a></li>
<li><a href="index-1.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,145 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>C-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="C-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">Prev Letter</a></li>
<li><a href="index-3.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-2.html" target="_top">Frames</a></li>
<li><a href="index-2.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:C">
<!-- -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/TokenHttpClientFactory.html#close-org.apache.http.client.HttpClient-">close(HttpClient)</a></span> - Method in class org.reso.<a href="../org/reso/TokenHttpClientFactory.html" title="class in org.reso">TokenHttpClientFactory</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../org/reso/Commander.html" title="class in org.reso"><span class="typeNameLink">Commander</span></a> - Class in <a href="../org/reso/package-summary.html">org.reso</a></dt>
<dd>
<div class="block">URI
Most of the work done by the WebAPI commander is done by this class.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#Commander-java.lang.String-java.lang.String-boolean-">Commander(String, String, boolean)</a></span> - Constructor for class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Creates a Commander instance that uses the given Bearer token for authentication and allows the Client
to specify whether to use an EdmEnabledClient or normal OData client.</div>
</dd>
<dt><a href="../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Commander.Builder</span></a> - Class in <a href="../org/reso/package-summary.html">org.reso</a></dt>
<dd>
<div class="block">Builder pattern implemented for creating Commander instances</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#convertMetadata-java.lang.String-">convertMetadata(String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Converts metadata in EDMX format to metadata in Swagger 2.0 format.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/TokenHttpClientFactory.html#create-org.apache.olingo.commons.api.http.HttpMethod-java.net.URI-">create(HttpMethod, URI)</a></span> - Method in class org.reso.<a href="../org/reso/TokenHttpClientFactory.html" title="class in org.reso">TokenHttpClientFactory</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">Prev Letter</a></li>
<li><a href="index-3.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-2.html" target="_top">Frames</a></li>
<li><a href="index-2.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,136 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>G-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="G-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">Prev Letter</a></li>
<li><a href="index-4.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-3.html" target="_top">Frames</a></li>
<li><a href="index-3.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:G">
<!-- -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#getContentType-java.lang.String-">getContentType(String)</a></span> - Static method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Translates supported string formats into those of ContentType.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#getEntitySet-java.lang.String-java.lang.Integer-">getEntitySet(String, Integer)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Reads entities from a given
TODO: add a function that can write a page at a time.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#getMetadata-java.lang.String-">getMetadata(String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Gets server metadata in EDMX format.</div>
</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">Prev Letter</a></li>
<li><a href="index-4.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-3.html" target="_top">Frames</a></li>
<li><a href="index-3.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>M-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="M-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">Prev Letter</a></li>
<li><a href="index-5.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-4.html" target="_top">Frames</a></li>
<li><a href="index-4.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:M">
<!-- -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><a href="../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Main</span></a> - Class in <a href="../org/reso/package-summary.html">org.reso</a></dt>
<dd>
<div class="block">Entry point of the RESO Web API Commander, which is a command line OData client that uses the Java Olingo
Client Library to handle OData and the Apache CXF library to handle Auth.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Main.html#Main--">Main()</a></span> - Constructor for class org.reso.<a href="../org/reso/Main.html" title="class in org.reso">Main</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Main.html#main-java.lang.String:A-">main(String[])</a></span> - Static method in class org.reso.<a href="../org/reso/Main.html" title="class in org.reso">Main</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">Prev Letter</a></li>
<li><a href="index-5.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-4.html" target="_top">Frames</a></li>
<li><a href="index-4.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,125 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>O-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="O-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">Prev Letter</a></li>
<li><a href="index-6.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-5.html" target="_top">Frames</a></li>
<li><a href="index-5.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:O">
<!-- -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><a href="../org/reso/package-summary.html">org.reso</a> - package org.reso</dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">Prev Letter</a></li>
<li><a href="index-6.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-5.html" target="_top">Frames</a></li>
<li><a href="index-5.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,137 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>S-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="S-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-5.html">Prev Letter</a></li>
<li><a href="index-7.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-6.html" target="_top">Frames</a></li>
<li><a href="index-6.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:S">
<!-- -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#saveRawGetRequest-java.lang.String-java.lang.String-">saveRawGetRequest(String, String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Executes a get request on URI and saves raw response to outputFilePath.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-org.apache.olingo.commons.api.format.ContentType-">serializeEntitySet(ClientEntitySet, String, ContentType)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Writes an Entity Set to the given outputFilePath.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-">serializeEntitySet(ClientEntitySet, String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Writes the given entitySet to the given outputFilePath.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#serviceRoot-java.lang.String-">serviceRoot(String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-5.html">Prev Letter</a></li>
<li><a href="index-7.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-6.html" target="_top">Frames</a></li>
<li><a href="index-6.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>T-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="T-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-6.html">Prev Letter</a></li>
<li><a href="index-8.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-7.html" target="_top">Frames</a></li>
<li><a href="index-7.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:T">
<!-- -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><a href="../org/reso/TokenHttpClientFactory.html" title="class in org.reso"><span class="typeNameLink">TokenHttpClientFactory</span></a> - Class in <a href="../org/reso/package-summary.html">org.reso</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/reso/TokenHttpClientFactory.html#TokenHttpClientFactory-java.lang.String-">TokenHttpClientFactory(String)</a></span> - Constructor for class org.reso.<a href="../org/reso/TokenHttpClientFactory.html" title="class in org.reso">TokenHttpClientFactory</a></dt>
<dd>
<div class="block">Constructor for use with tokens.</div>
</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-6.html">Prev Letter</a></li>
<li><a href="index-8.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-7.html" target="_top">Frames</a></li>
<li><a href="index-7.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,127 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>U-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="U-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-7.html">Prev Letter</a></li>
<li><a href="index-9.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-8.html" target="_top">Frames</a></li>
<li><a href="index-8.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:U">
<!-- -->
</a>
<h2 class="title">U</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#useEdmEnabledClient--">useEdmEnabledClient()</a></span> - Method in class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.Builder.html#useEdmEnabledClient-boolean-">useEdmEnabledClient(boolean)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-7.html">Prev Letter</a></li>
<li><a href="index-9.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-8.html" target="_top">Frames</a></li>
<li><a href="index-8.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,131 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>V-Index</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="V-Index";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-8.html">Prev Letter</a></li>
<li>Next Letter</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-9.html" target="_top">Frames</a></li>
<li><a href="index-9.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;<a name="I:V">
<!-- -->
</a>
<h2 class="title">V</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#validateMetadata-org.apache.olingo.client.api.edm.xml.XMLMetadata-">validateMetadata(XMLMetadata)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Validates given XMLMetadata</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/reso/Commander.html#validateMetadata-java.lang.String-">validateMetadata(String)</a></span> - Method in class org.reso.<a href="../org/reso/Commander.html" title="class in org.reso">Commander</a></dt>
<dd>
<div class="block">Validates the given metadata contained in the given file path.</div>
</dd>
</dl>
<a href="index-1.html">B</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">M</a>&nbsp;<a href="index-5.html">O</a>&nbsp;<a href="index-6.html">S</a>&nbsp;<a href="index-7.html">T</a>&nbsp;<a href="index-8.html">U</a>&nbsp;<a href="index-9.html">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-8.html">Prev Letter</a></li>
<li>Next Letter</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-9.html" target="_top">Frames</a></li>
<li><a href="index-9.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

72
doc/index.html Normal file
View File

@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Generated Documentation (Untitled)</title>
<script type="text/javascript">
tmpTargetPage = "" + window.location.search;
if (tmpTargetPage != "" && tmpTargetPage != "undefined")
tmpTargetPage = tmpTargetPage.substring(1);
if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
tmpTargetPage = "undefined";
targetPage = tmpTargetPage;
function validURL(url) {
try {
url = decodeURIComponent(url);
}
catch (error) {
return false;
}
var pos = url.indexOf(".html");
if (pos == -1 || pos != url.length - 5)
return false;
var allowNumber = false;
var allowSep = false;
var seenDot = false;
for (var i = 0; i < url.length - 5; i++) {
var ch = url.charAt(i);
if ('a' <= ch && ch <= 'z' ||
'A' <= ch && ch <= 'Z' ||
ch == '$' ||
ch == '_' ||
ch.charCodeAt(0) > 127) {
allowNumber = true;
allowSep = true;
} else if ('0' <= ch && ch <= '9'
|| ch == '-') {
if (!allowNumber)
return false;
} else if (ch == '/' || ch == '.') {
if (!allowSep)
return false;
allowNumber = false;
allowSep = false;
if (ch == '.')
seenDot = true;
if (ch == '/' && seenDot)
return false;
} else {
return false;
}
}
return true;
}
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</script>
</head>
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
<frame src="org/reso/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
<noframes>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<h2>Frame Alert</h2>
<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="org/reso/package-summary.html">Non-frame version</a>.</p>
</noframes>
</frameset>
</html>

View File

@ -0,0 +1,324 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Commander.Builder</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Commander.Builder";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Commander.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Commander.Builder.html" target="_top">Frames</a></li>
<li><a href="Commander.Builder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.reso</div>
<h2 title="Class Commander.Builder" class="title">Class Commander.Builder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.reso.Commander.Builder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../org/reso/Commander.html" title="class in org.reso">Commander</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">Commander.Builder</span>
extends java.lang.Object</pre>
<div class="block">Builder pattern implemented for creating Commander instances</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#Builder--">Builder</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#bearerToken-java.lang.String-">bearerToken</a></span>(java.lang.String&nbsp;bearerToken)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../org/reso/Commander.html" title="class in org.reso">Commander</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#build--">build</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#serviceRoot-java.lang.String-">serviceRoot</a></span>(java.lang.String&nbsp;serviceRoot)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#useEdmEnabledClient--">useEdmEnabledClient</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html#useEdmEnabledClient-boolean-">useEdmEnabledClient</a></span>(boolean&nbsp;useEdmEnabledClient)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Builder--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="serviceRoot-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serviceRoot</h4>
<pre>public&nbsp;<a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a>&nbsp;serviceRoot(java.lang.String&nbsp;serviceRoot)</pre>
</li>
</ul>
<a name="bearerToken-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bearerToken</h4>
<pre>public&nbsp;<a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a>&nbsp;bearerToken(java.lang.String&nbsp;bearerToken)</pre>
</li>
</ul>
<a name="useEdmEnabledClient--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useEdmEnabledClient</h4>
<pre>public&nbsp;<a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a>&nbsp;useEdmEnabledClient()</pre>
</li>
</ul>
<a name="useEdmEnabledClient-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useEdmEnabledClient</h4>
<pre>public&nbsp;<a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a>&nbsp;useEdmEnabledClient(boolean&nbsp;useEdmEnabledClient)</pre>
</li>
</ul>
<a name="build--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre>public&nbsp;<a href="../../org/reso/Commander.html" title="class in org.reso">Commander</a>&nbsp;build()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Commander.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Commander.Builder.html" target="_top">Frames</a></li>
<li><a href="Commander.Builder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

511
doc/org/reso/Commander.html Normal file
View File

@ -0,0 +1,511 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Commander</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Commander";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Commander.html" target="_top">Frames</a></li>
<li><a href="Commander.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.reso</div>
<h2 title="Class Commander" class="title">Class Commander</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.reso.Commander</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Commander</span>
extends java.lang.Object</pre>
<div class="block">URI
Most of the work done by the WebAPI commander is done by this class. Its public methods are, therefore,
the ones the Client programmer is expected to use.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></span></code>
<div class="block">Builder pattern implemented for creating Commander instances</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#Commander-java.lang.String-java.lang.String-boolean-">Commander</a></span>(java.lang.String&nbsp;serviceRoot,
java.lang.String&nbsp;bearerToken,
boolean&nbsp;useEdmEnabledClient)</code>
<div class="block">Creates a Commander instance that uses the given Bearer token for authentication and allows the Client
to specify whether to use an EdmEnabledClient or normal OData client.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#convertMetadata-java.lang.String-">convertMetadata</a></span>(java.lang.String&nbsp;pathToEDMX)</code>
<div class="block">Converts metadata in EDMX format to metadata in Swagger 2.0 format.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static org.apache.olingo.commons.api.format.ContentType</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#getContentType-java.lang.String-">getContentType</a></span>(java.lang.String&nbsp;contentType)</code>
<div class="block">Translates supported string formats into those of ContentType.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.olingo.client.api.domain.ClientEntitySet</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#getEntitySet-java.lang.String-java.lang.Integer-">getEntitySet</a></span>(java.lang.String&nbsp;requestUri,
java.lang.Integer&nbsp;limit)</code>
<div class="block">Reads entities from a given
TODO: add a function that can write a page at a time.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.olingo.commons.api.edm.Edm</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#getMetadata-java.lang.String-">getMetadata</a></span>(java.lang.String&nbsp;outputFileName)</code>
<div class="block">Gets server metadata in EDMX format.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#saveRawGetRequest-java.lang.String-java.lang.String-">saveRawGetRequest</a></span>(java.lang.String&nbsp;requestUri,
java.lang.String&nbsp;outputFilePath)</code>
<div class="block">Executes a get request on URI and saves raw response to outputFilePath.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-">serializeEntitySet</a></span>(org.apache.olingo.client.api.domain.ClientEntitySet&nbsp;entitySet,
java.lang.String&nbsp;outputFilePath)</code>
<div class="block">Writes the given entitySet to the given outputFilePath.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-org.apache.olingo.commons.api.format.ContentType-">serializeEntitySet</a></span>(org.apache.olingo.client.api.domain.ClientEntitySet&nbsp;entitySet,
java.lang.String&nbsp;outputFilePath,
org.apache.olingo.commons.api.format.ContentType&nbsp;contentType)</code>
<div class="block">Writes an Entity Set to the given outputFilePath.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#validateMetadata-java.lang.String-">validateMetadata</a></span>(java.lang.String&nbsp;pathToEdmx)</code>
<div class="block">Validates the given metadata contained in the given file path.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Commander.html#validateMetadata-org.apache.olingo.client.api.edm.xml.XMLMetadata-">validateMetadata</a></span>(org.apache.olingo.client.api.edm.xml.XMLMetadata&nbsp;metadata)</code>
<div class="block">Validates given XMLMetadata</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Commander-java.lang.String-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Commander</h4>
<pre>public&nbsp;Commander(java.lang.String&nbsp;serviceRoot,
java.lang.String&nbsp;bearerToken,
boolean&nbsp;useEdmEnabledClient)</pre>
<div class="block">Creates a Commander instance that uses the given Bearer token for authentication and allows the Client
to specify whether to use an EdmEnabledClient or normal OData client.
<p>
NOTE: serviceRoot can sometimes be null, but is required if useEdmEnabledClient is true.
A check has been added for this condition.
*</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceRoot</code> - the service root of the WebAPI server.</dd>
<dd><code>bearerToken</code> - the bearer token to use to authenticate with the given serviceRoot.</dd>
<dd><code>useEdmEnabledClient</code> - if true, the payload is checked against the Server's metadata for actions
that support it.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getMetadata-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetadata</h4>
<pre>public&nbsp;org.apache.olingo.commons.api.edm.Edm&nbsp;getMetadata(java.lang.String&nbsp;outputFileName)</pre>
<div class="block">Gets server metadata in EDMX format.
<p>
TODO: add optional validation upon fetch</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Edm representation of the server metadata.</dd>
</dl>
</li>
</ul>
<a name="validateMetadata-org.apache.olingo.client.api.edm.xml.XMLMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateMetadata</h4>
<pre>public&nbsp;boolean&nbsp;validateMetadata(org.apache.olingo.client.api.edm.xml.XMLMetadata&nbsp;metadata)</pre>
<div class="block">Validates given XMLMetadata</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - the XMLMetadata to be validated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the metadata is valid, meaning that it's also a valid OData 4 Service Document</dd>
</dl>
</li>
</ul>
<a name="validateMetadata-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateMetadata</h4>
<pre>public&nbsp;boolean&nbsp;validateMetadata(java.lang.String&nbsp;pathToEdmx)</pre>
<div class="block">Validates the given metadata contained in the given file path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pathToEdmx</code> - the path to look for metadata in. Assumes metadata is stored as XML.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the metadata is valid and false otherwise.</dd>
</dl>
</li>
</ul>
<a name="saveRawGetRequest-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveRawGetRequest</h4>
<pre>public&nbsp;void&nbsp;saveRawGetRequest(java.lang.String&nbsp;requestUri,
java.lang.String&nbsp;outputFilePath)</pre>
<div class="block">Executes a get request on URI and saves raw response to outputFilePath.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>requestUri</code> - the URI to make the request against</dd>
<dd><code>outputFilePath</code> - the outputFilePath to write the response to</dd>
</dl>
</li>
</ul>
<a name="getEntitySet-java.lang.String-java.lang.Integer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntitySet</h4>
<pre>public&nbsp;org.apache.olingo.client.api.domain.ClientEntitySet&nbsp;getEntitySet(java.lang.String&nbsp;requestUri,
java.lang.Integer&nbsp;limit)</pre>
<div class="block">Reads entities from a given
TODO: add a function that can write a page at a time.
TODO: add a parallel function which can create n queries at a time and download their results</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>requestUri</code> - the request URI to read from.</dd>
<dd><code>limit</code> - the limit for the number of records to read from the Server. Use -1 to fetch all.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a ClientEntitySet containing any entities found.</dd>
</dl>
</li>
</ul>
<a name="convertMetadata-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertMetadata</h4>
<pre>public&nbsp;void&nbsp;convertMetadata(java.lang.String&nbsp;pathToEDMX)</pre>
<div class="block">Converts metadata in EDMX format to metadata in Swagger 2.0 format.
Converted file will have the same name as the input file, with .swagger.json appended to the name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pathToEDMX</code> - the metadata file to convert.</dd>
</dl>
</li>
</ul>
<a name="serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-org.apache.olingo.commons.api.format.ContentType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serializeEntitySet</h4>
<pre>public&nbsp;void&nbsp;serializeEntitySet(org.apache.olingo.client.api.domain.ClientEntitySet&nbsp;entitySet,
java.lang.String&nbsp;outputFilePath,
org.apache.olingo.commons.api.format.ContentType&nbsp;contentType)</pre>
<div class="block">Writes an Entity Set to the given outputFilePath.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>entitySet</code> - - the ClientEntitySet to serialize.</dd>
<dd><code>outputFilePath</code> - - the path to write the file to.</dd>
<dd><code>contentType</code> - - the OData content type to write with. Currently supported options are
JSON, JSON_NO_METADATA, JSON_FULL_METADATA, and XML.</dd>
</dl>
</li>
</ul>
<a name="serializeEntitySet-org.apache.olingo.client.api.domain.ClientEntitySet-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serializeEntitySet</h4>
<pre>public&nbsp;void&nbsp;serializeEntitySet(org.apache.olingo.client.api.domain.ClientEntitySet&nbsp;entitySet,
java.lang.String&nbsp;outputFilePath)</pre>
<div class="block">Writes the given entitySet to the given outputFilePath.
Writes in JSON format.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>entitySet</code> - the ClientEntitySet to serialize.</dd>
<dd><code>outputFilePath</code> - the outputFilePath used to write to.</dd>
</dl>
</li>
</ul>
<a name="getContentType-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getContentType</h4>
<pre>public static&nbsp;org.apache.olingo.commons.api.format.ContentType&nbsp;getContentType(java.lang.String&nbsp;contentType)</pre>
<div class="block">Translates supported string formats into those of ContentType.
<p>
See: https://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/format/ContentType.html#TEXT_HTML</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contentType</code> - the string representation of the requested content type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>one of ContentType if a match is found, or ContentType.JSON if no other format is available.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Commander.html" target="_top">Frames</a></li>
<li><a href="Commander.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

280
doc/org/reso/Main.html Normal file
View File

@ -0,0 +1,280 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Main</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Main";
}
}
catch(err) {
}
//-->
var methods = {"i0":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../org/reso/TokenHttpClientFactory.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Main.html" target="_top">Frames</a></li>
<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.reso</div>
<h2 title="Class Main" class="title">Class Main</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.reso.Main</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Main</span>
extends java.lang.Object</pre>
<div class="block">Entry point of the RESO Web API Commander, which is a command line OData client that uses the Java Olingo
Client Library to handle OData and the Apache CXF library to handle Auth. Currently, the following forms
of Auth are supported:
<p>
- Bearer Tokens
<p>
Exposes several different actions for working with OData-based WebAPI servers.
This application is structured so that the Main class is an OData WebAPI consumer
using the Commander class, which contains the actual methods for working with OData.
<p>
For usage, see README.
<p>
TODO: add better handling for required parameters, currently just checks if they're there and prints help if not</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../org/reso/Main.html#Main--">Main</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/Main.html#main-java.lang.String:A-">main</a></span>(java.lang.String[]&nbsp;params)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Main--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Main</h4>
<pre>public&nbsp;Main()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;params)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../org/reso/TokenHttpClientFactory.html" title="class in org.reso"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/Main.html" target="_top">Frames</a></li>
<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,330 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>TokenHttpClientFactory</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TokenHttpClientFactory";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/TokenHttpClientFactory.html" target="_top">Frames</a></li>
<li><a href="TokenHttpClientFactory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.olingo.client.core.http.AbstractHttpClientFactory">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.reso</div>
<h2 title="Class TokenHttpClientFactory" class="title">Class TokenHttpClientFactory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.olingo.client.core.http.AbstractHttpClientFactory</li>
<li>
<ul class="inheritance">
<li>org.apache.olingo.client.core.http.DefaultHttpClientFactory</li>
<li>
<ul class="inheritance">
<li>org.reso.TokenHttpClientFactory</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.olingo.client.api.http.HttpClientFactory</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">TokenHttpClientFactory</span>
extends org.apache.olingo.client.core.http.DefaultHttpClientFactory</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.olingo.client.core.http.AbstractHttpClientFactory">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.olingo.client.core.http.AbstractHttpClientFactory</h3>
<code>USER_AGENT</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../org/reso/TokenHttpClientFactory.html#TokenHttpClientFactory-java.lang.String-">TokenHttpClientFactory</a></span>(java.lang.String&nbsp;token)</code>
<div class="block">Constructor for use with tokens.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/TokenHttpClientFactory.html#close-org.apache.http.client.HttpClient-">close</a></span>(org.apache.http.client.HttpClient&nbsp;httpClient)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.http.impl.client.DefaultHttpClient</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../org/reso/TokenHttpClientFactory.html#create-org.apache.olingo.commons.api.http.HttpMethod-java.net.URI-">create</a></span>(org.apache.olingo.commons.api.http.HttpMethod&nbsp;method,
java.net.URI&nbsp;uri)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TokenHttpClientFactory-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TokenHttpClientFactory</h4>
<pre>public&nbsp;TokenHttpClientFactory(java.lang.String&nbsp;token)</pre>
<div class="block">Constructor for use with tokens.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - the token to be used for server requests.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="create-org.apache.olingo.commons.api.http.HttpMethod-java.net.URI-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public&nbsp;org.apache.http.impl.client.DefaultHttpClient&nbsp;create(org.apache.olingo.commons.api.http.HttpMethod&nbsp;method,
java.net.URI&nbsp;uri)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>create</code>&nbsp;in interface&nbsp;<code>org.apache.olingo.client.api.http.HttpClientFactory</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>create</code>&nbsp;in class&nbsp;<code>org.apache.olingo.client.core.http.DefaultHttpClientFactory</code></dd>
</dl>
</li>
</ul>
<a name="close-org.apache.http.client.HttpClient-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close(org.apache.http.client.HttpClient&nbsp;httpClient)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>org.apache.olingo.client.api.http.HttpClientFactory</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>close</code>&nbsp;in class&nbsp;<code>org.apache.olingo.client.core.http.DefaultHttpClientFactory</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/TokenHttpClientFactory.html" target="_top">Frames</a></li>
<li><a href="TokenHttpClientFactory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.olingo.client.core.http.AbstractHttpClientFactory">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>org.reso</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<h1 class="bar"><a href="../../org/reso/package-summary.html" target="classFrame">org.reso</a></h1>
<div class="indexContainer">
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="Commander.html" title="class in org.reso" target="classFrame">Commander</a></li>
<li><a href="Commander.Builder.html" title="class in org.reso" target="classFrame">Commander.Builder</a></li>
<li><a href="Main.html" title="class in org.reso" target="classFrame">Main</a></li>
<li><a href="TokenHttpClientFactory.html" title="class in org.reso" target="classFrame">TokenHttpClientFactory</a></li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,158 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>org.reso</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.reso";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Package</li>
<li>Next&nbsp;Package</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.reso</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../org/reso/Commander.html" title="class in org.reso">Commander</a></td>
<td class="colLast">
<div class="block">URI
Most of the work done by the WebAPI commander is done by this class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../org/reso/Commander.Builder.html" title="class in org.reso">Commander.Builder</a></td>
<td class="colLast">
<div class="block">Builder pattern implemented for creating Commander instances</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../org/reso/Main.html" title="class in org.reso">Main</a></td>
<td class="colLast">
<div class="block">Entry point of the RESO Web API Commander, which is a command line OData client that uses the Java Olingo
Client Library to handle OData and the Apache CXF library to handle Auth.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../org/reso/TokenHttpClientFactory.html" title="class in org.reso">TokenHttpClientFactory</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Package</li>
<li>Next&nbsp;Package</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,140 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>org.reso Class Hierarchy</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.reso Class Hierarchy";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For Package org.reso</h1>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">org.apache.olingo.client.core.http.AbstractHttpClientFactory (implements org.apache.olingo.client.api.http.HttpClientFactory)
<ul>
<li type="circle">org.apache.olingo.client.core.http.DefaultHttpClientFactory
<ul>
<li type="circle">org.reso.<a href="../../org/reso/TokenHttpClientFactory.html" title="class in org.reso"><span class="typeNameLink">TokenHttpClientFactory</span></a></li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.reso.<a href="../../org/reso/Commander.html" title="class in org.reso"><span class="typeNameLink">Commander</span></a></li>
<li type="circle">org.reso.<a href="../../org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Commander.Builder</span></a></li>
<li type="circle">org.reso.<a href="../../org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Main</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?org/reso/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

144
doc/overview-tree.html Normal file
View File

@ -0,0 +1,144 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Apr 19 12:56:06 PDT 2019 -->
<title>Class Hierarchy</title>
<meta name="date" content="2019-04-19">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Class Hierarchy";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For All Packages</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="org/reso/package-tree.html">org.reso</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">org.apache.olingo.client.core.http.AbstractHttpClientFactory (implements org.apache.olingo.client.api.http.HttpClientFactory)
<ul>
<li type="circle">org.apache.olingo.client.core.http.DefaultHttpClientFactory
<ul>
<li type="circle">org.reso.<a href="org/reso/TokenHttpClientFactory.html" title="class in org.reso"><span class="typeNameLink">TokenHttpClientFactory</span></a></li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.reso.<a href="org/reso/Commander.html" title="class in org.reso"><span class="typeNameLink">Commander</span></a></li>
<li type="circle">org.reso.<a href="org/reso/Commander.Builder.html" title="class in org.reso"><span class="typeNameLink">Commander.Builder</span></a></li>
<li type="circle">org.reso.<a href="org/reso/Main.html" title="class in org.reso"><span class="typeNameLink">Main</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/reso/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

1
doc/package-list Normal file
View File

@ -0,0 +1 @@
org.reso

30
doc/script.js Normal file
View File

@ -0,0 +1,30 @@
function show(type)
{
count = 0;
for (var key in methods) {
var row = document.getElementById(key);
if ((methods[key] & type) != 0) {
row.style.display = '';
row.className = (count++ % 2) ? rowColor : altColor;
}
else
row.style.display = 'none';
}
updateTabs(type);
}
function updateTabs(type)
{
for (var value in tabs) {
var sNode = document.getElementById(tabs[value][0]);
var spanNode = sNode.firstChild;
if (value == type) {
sNode.className = activeTableTab;
spanNode.innerHTML = tabs[value][1];
}
else {
sNode.className = tableTab;
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
}
}
}

574
doc/stylesheet.css Normal file
View File

@ -0,0 +1,574 @@
/* Javadoc style sheet */
/*
Overall document style
*/
@import url('resources/fonts/dejavu.css');
body {
background-color:#ffffff;
color:#353833;
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
font-size:14px;
margin:0;
}
a:link, a:visited {
text-decoration:none;
color:#4A6782;
}
a:hover, a:focus {
text-decoration:none;
color:#bb7a2a;
}
a:active {
text-decoration:none;
color:#4A6782;
}
a[name] {
color:#353833;
}
a[name]:hover {
text-decoration:none;
color:#353833;
}
pre {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
}
h1 {
font-size:20px;
}
h2 {
font-size:18px;
}
h3 {
font-size:16px;
font-style:italic;
}
h4 {
font-size:13px;
}
h5 {
font-size:12px;
}
h6 {
font-size:11px;
}
ul {
list-style-type:disc;
}
code, tt {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
margin-top:8px;
line-height:1.4em;
}
dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
}
table tr td dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
vertical-align:top;
padding-top:4px;
}
sup {
font-size:8px;
}
/*
Document title and Copyright styles
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:11px;
z-index:200;
margin-top:-9px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
Navigation bar styles
*/
.bar {
background-color:#4D7A97;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:11px;
margin:0;
}
.topNav {
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.bottomNav {
margin-top:10px;
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.subNav {
background-color:#dee3e9;
float:left;
width:100%;
overflow:hidden;
font-size:12px;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
text-transform:uppercase;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding: 5px 6px;
text-transform:uppercase;
}
ul.subNavList li{
list-style:none;
float:left;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
text-transform:uppercase;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
text-transform:uppercase;
}
.navBarCell1Rev {
background-color:#F8981D;
color:#253441;
margin: auto 5px;
}
.skipNav {
position:absolute;
top:auto;
left:-9999px;
overflow:hidden;
}
/*
Page header and footer styles
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexHeader {
margin:10px;
position:relative;
}
.indexHeader span{
margin-right:15px;
}
.indexHeader h1 {
font-size:13px;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 15px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:13px;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:12px;
}
.indexContainer h2 {
font-size:13px;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
padding-top:2px;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:12px;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:5px 0 10px 0px;
font-size:14px;
font-family:'DejaVu Sans Mono',monospace;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
List styles
*/
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:15px;
line-height:1.4;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #ededed;
background-color:#f8f8f8;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
Table styles
*/
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
width:100%;
border-left:1px solid #EEE;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
}
.overviewSummary, .memberSummary {
padding:0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#253441;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
padding-top:10px;
padding-left:1px;
margin:0px;
white-space:pre;
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
padding-bottom:7px;
display:inline-block;
float:left;
background-color:#F8981D;
border: none;
height:16px;
}
.memberSummary caption span.activeTableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#F8981D;
height:16px;
}
.memberSummary caption span.tableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#4D7A97;
height:16px;
}
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
padding-top:0px;
padding-left:0px;
padding-right:0px;
background-image:none;
float:none;
display:inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
display:none;
width:5px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .activeTableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .tableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
background-color:#4D7A97;
float:left;
}
.overviewSummary td, .memberSummary td, .typeSummary td,
.useSummary td, .constantsSummary td, .deprecatedSummary td {
text-align:left;
padding:0px 0px 12px 10px;
}
th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
vertical-align:top;
padding-right:0px;
padding-top:8px;
padding-bottom:3px;
}
th.colFirst, th.colLast, th.colOne, .constantsSummary th {
background:#dee3e9;
text-align:left;
padding:8px 3px 3px 7px;
}
td.colFirst, th.colFirst {
white-space:nowrap;
font-size:13px;
}
td.colLast, th.colLast {
font-size:13px;
}
td.colOne, th.colOne {
font-size:13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
.useSummary td.colFirst, .useSummary th.colFirst,
.overviewSummary td.colOne, .overviewSummary th.colOne,
.memberSummary td.colFirst, .memberSummary th.colFirst,
.memberSummary td.colOne, .memberSummary th.colOne,
.typeSummary td.colFirst{
width:25%;
vertical-align:top;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
.tableSubHeadingColor {
background-color:#EEEEFF;
}
.altColor {
background-color:#FFFFFF;
}
.rowColor {
background-color:#EEEEEF;
}
/*
Content styles
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
font-style:normal;
}
div.block {
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
td.colLast div {
padding-top:0px;
}
td.colLast a {
padding-bottom:3px;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:10px;
}
.block {
display:block;
margin:3px 10px 2px 0px;
color:#474747;
}
.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
font-weight:bold;
}
.deprecationComment, .emphasizedPhrase, .interfaceName {
font-style:italic;
}
div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
div.block div.block span.interfaceName {
font-style:normal;
}
div.contentContainer ul.blockList li.blockList h2{
padding-bottom:0px;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

29
pom.xml
View File

@ -20,10 +20,10 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version> <version>3.8.0</version>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
@ -42,7 +42,7 @@
</plugins> </plugins>
</build> </build>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.olingo</groupId> <groupId>org.apache.olingo</groupId>
<artifactId>odata-commons-core</artifactId> <artifactId>odata-commons-core</artifactId>
@ -117,18 +117,31 @@
<dependency> <dependency>
<groupId>org.apache.cxf</groupId> <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-security-oauth2</artifactId> <artifactId>cxf-rt-rs-security-sso-oidc</artifactId>
<version>3.1.7</version> <version>3.1.7</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-rs-security-oauth2 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-security-oauth2</artifactId>
<version>3.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.olingo/odata-commons-api --> <!-- https://mvnrepository.com/artifact/org.apache.olingo/odata-commons-api -->
<dependency> <dependency>
<groupId>org.apache.olingo</groupId> <groupId>org.apache.olingo</groupId>
<artifactId>odata-commons-api</artifactId> <artifactId>odata-commons-api</artifactId>
<version>4.5.0</version> <version>4.5.0</version>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>me.tongfei</groupId>-->
<!-- <artifactId>progressbar</artifactId>-->
<!-- <version>0.5.5</version>-->
<!-- </dependency>-->
</dependencies>
</dependencies>
</project> </project>

View File

@ -2,6 +2,8 @@ package org.reso;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.http.HttpStatus;
import org.apache.http.client.utils.URIBuilder;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.olingo.client.api.ODataClient; import org.apache.olingo.client.api.ODataClient;
import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest; import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest;
@ -9,12 +11,10 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
import org.apache.olingo.client.api.domain.ClientEntity; import org.apache.olingo.client.api.domain.ClientEntity;
import org.apache.olingo.client.api.domain.ClientEntitySet; import org.apache.olingo.client.api.domain.ClientEntitySet;
import org.apache.olingo.client.api.edm.xml.XMLMetadata; import org.apache.olingo.client.api.edm.xml.XMLMetadata;
import org.apache.olingo.client.api.uri.URIBuilder;
import org.apache.olingo.client.core.ODataClientFactory; import org.apache.olingo.client.core.ODataClientFactory;
import org.apache.olingo.client.core.domain.ClientEntitySetImpl; import org.apache.olingo.client.core.domain.ClientEntitySetImpl;
import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.format.ContentType; import org.apache.olingo.commons.api.format.ContentType;
import org.apache.olingo.commons.api.http.HttpStatusCode;
import javax.xml.transform.Source; import javax.xml.transform.Source;
import javax.xml.transform.Transformer; import javax.xml.transform.Transformer;
@ -26,46 +26,49 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileWriter; import java.io.FileWriter;
import java.net.URI; import java.net.URI;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.function.Function;
/** /**
* URI
* Most of the work done by the WebAPI commander is done by this class. Its public methods are, therefore, * Most of the work done by the WebAPI commander is done by this class. Its public methods are, therefore,
* the ones the Client programmer is expected to use. * the ones the Client programmer is expected to use.
*/ */
public class Commander { public class Commander {
private ODataClient client; private ODataClient client;
private String serviceRoot; private String serviceRoot;
private String bearerToken; boolean useEdmEnabledClient;
private boolean useEdmEnabledClient;
private static final Logger log = Logger.getLogger(Commander.class); private static final Logger log = Logger.getLogger(Commander.class);
public static int NOT_OK = 1; final static int NOT_OK = 1;
/** /**
* Creates a Commander instance that uses the given Bearer token for authentication and allows the Client * Creates a Commander instance that uses the given Bearer token for authentication and allows the Client
* to specify whether to use an EdmEnabledClient or normal OData client. * to specify whether to use an EdmEnabledClient or normal OData client.
* * <p>
* NOTE: serviceRoot can sometimes be null, but is required if useEdmEnabledClient is true. * NOTE: serviceRoot can sometimes be null, but is required if useEdmEnabledClient is true.
* A check has been added for this condition. * A check has been added for this condition.
** * *
* @param serviceRoot the service root of the WebAPI server. *
* @param bearerToken the bearer token to use to authenticate with the given serviceRoot. * @param serviceRoot the service root of the WebAPI server.
* @param useEdmEnabledClient * @param bearerToken the bearer token to use to authenticate with the given serviceRoot.
* @param useEdmEnabledClient if true, the payload is checked against the Server's metadata for actions
* that support it.
*/ */
public Commander(String serviceRoot, String bearerToken, boolean useEdmEnabledClient) { public Commander(String serviceRoot, String bearerToken, boolean useEdmEnabledClient) {
this(serviceRoot, useEdmEnabledClient); this(serviceRoot, useEdmEnabledClient);
this.bearerToken = bearerToken;
client.getConfiguration().setHttpClientFactory(new TokenHttpClientFactory(bearerToken)); client.getConfiguration().setHttpClientFactory(new TokenHttpClientFactory(bearerToken));
} }
/** /**
* Private constructor for internal use. * Private constructor for internal use.
* * <p>
* Creates a Commander instance that allows the caller to use an EdmEnabledClient, * Creates a Commander instance that allows the caller to use an EdmEnabledClient,
* meaning that all payloads will be verified against the metadata published at serviceRoot. * meaning that all payloads will be verified against the metadata published at serviceRoot.
*
* @param serviceRoot the service root of the WebAPI server. * @param serviceRoot the service root of the WebAPI server.
*/ */
private Commander(String serviceRoot, boolean useEdmEnabledClient) { private Commander(String serviceRoot, boolean useEdmEnabledClient) {
@ -82,7 +85,7 @@ public class Commander {
/** /**
* Gets server metadata in EDMX format. * Gets server metadata in EDMX format.
* * <p>
* TODO: add optional validation upon fetch * TODO: add optional validation upon fetch
* *
* @return Edm representation of the server metadata. * @return Edm representation of the server metadata.
@ -102,7 +105,7 @@ public class Commander {
// read metadata from binary to ensure it deserializes properly and return // read metadata from binary to ensure it deserializes properly and return
return client.getReader().readMetadata(new ByteArrayInputStream(buffer)); return client.getReader().readMetadata(new ByteArrayInputStream(buffer));
} catch (Exception ex) { } catch (Exception ex) {
System.err.println(ex.toString()); log.error(ex.toString());
System.exit(NOT_OK); System.exit(NOT_OK);
} }
return null; return null;
@ -110,6 +113,7 @@ public class Commander {
/** /**
* Validates given XMLMetadata * Validates given XMLMetadata
*
* @param metadata the XMLMetadata to be validated * @param metadata the XMLMetadata to be validated
* @return true if the metadata is valid, meaning that it's also a valid OData 4 Service Document * @return true if the metadata is valid, meaning that it's also a valid OData 4 Service Document
*/ */
@ -123,11 +127,11 @@ public class Commander {
return client.metadataValidation().isServiceDocument(metadata) return client.metadataValidation().isServiceDocument(metadata)
&& client.metadataValidation().isV4Metadata(metadata); && client.metadataValidation().isV4Metadata(metadata);
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
log.error("ERROR: null pointer exception while trying to validate metadata. Validation failed!"); log.error("ERROR: Validation Failed! Null pointer exception while trying to validate metadata.");
} catch (Exception ex) { } catch (Exception ex) {
log.error("ERROR: " + ex.getMessage()); log.error("ERROR: Validation Failed! General error occurred when validating metadata.\n" + ex.getMessage());
if (ex.getCause() != null) { if (ex.getCause() != null) {
log.error("ERROR: " + ex.getCause().getMessage()); log.error("Caused by: " + ex.getCause().getMessage());
} }
} }
return false; return false;
@ -135,6 +139,7 @@ public class Commander {
/** /**
* Validates the given metadata contained in the given file path. * Validates the given metadata contained in the given file path.
*
* @param pathToEdmx the path to look for metadata in. Assumes metadata is stored as XML. * @param pathToEdmx the path to look for metadata in. Assumes metadata is stored as XML.
* @return true if the metadata is valid and false otherwise. * @return true if the metadata is valid and false otherwise.
*/ */
@ -147,53 +152,45 @@ public class Commander {
return validateMetadata(metadata); return validateMetadata(metadata);
} catch (Exception ex) { } catch (Exception ex) {
log.error("ERROR: " + ex.getMessage() + "\n"); log.error("Error occurred while validating metadata.\nPath was:" + pathToEdmx);
log.error(ex.getMessage());
} }
return false; return false;
} }
/** /**
* Retrieves a client entity set using the given requestURI, but doesn't perform automatic paging * Prepares a URI for an OData request
* in the way that readEntitySet does. If the Commander has been instantiated with an EdmEnabledClient,
* results will be validated against server metadata while being fetched.
*
* @param requestURI the full OData WebAPI URI used to fetch records. requestURI is expected to be URL Encoded.
* @return a ClientEntitySet containing the requested records, or null if nothing was found.
*/ */
public ClientEntitySet getEntitySet(URI requestURI) { Function<String, URI> prepareURI = uriString -> {
try { try {
ODataRetrieveResponse<ClientEntitySet> response URL url = new URL(uriString);
= client.getRetrieveRequestFactory().getEntitySetRequest(requestURI).execute(); URIBuilder uriBuilder = new URIBuilder();
uriBuilder.setScheme(url.getProtocol());
if (response.getStatusCode() == HttpStatusCode.OK.getStatusCode()) { uriBuilder.setHost(url.getHost());
return response.getBody(); if (url.getPath() != null) uriBuilder.setPath(url.getPath());
} else { if (url.getQuery() != null) uriBuilder.setQuery(url.getQuery());
log.error("ERROR:getEntitySet received a response status other than OK (200)!"); return uriBuilder.build();
System.exit(NOT_OK);
}
} catch (IllegalArgumentException iaex) {
if (useEdmEnabledClient) {
log.error("\nError encountered while using the EdmEnabledClient. This usually means metadata were invalid!");
}
log.error(iaex.getMessage());
System.exit(NOT_OK);
} catch (Exception ex) { } catch (Exception ex) {
log.error(ex.toString()); log.error("ERROR in prepareURI: " + ex.toString());
System.exit(NOT_OK);
} }
return null; return null;
} };
/** /**
* Executes a get request on URI and saves raw response to outputFilePath. * Executes a get request on URI and saves raw response to outputFilePath.
* @param requestURI the URI to make the request against * Intended to be used mostly for testing.
*
* @param requestUri the URI to make the request against
* @param outputFilePath the outputFilePath to write the response to * @param outputFilePath the outputFilePath to write the response to
*/ */
public void saveRawGetRequest(URI requestURI, String outputFilePath) { public void saveRawGetRequest(String requestUri, String outputFilePath) {
try { try {
log.debug("RequestURI: " + requestUri);
FileUtils.copyInputStreamToFile( FileUtils.copyInputStreamToFile(
client.getRetrieveRequestFactory().getRawRequest(requestURI).rawExecute(), new File(outputFilePath)); client.getRetrieveRequestFactory().getRawRequest(prepareURI.apply(requestUri)).rawExecute(), new File(outputFilePath));
log.info("Request complete... Response written to file: " + outputFilePath); log.info("Request complete... Response written to file: " + outputFilePath);
@ -203,81 +200,115 @@ public class Commander {
} }
} }
public ClientEntitySet getEntitySet(String requestUri, Integer limit) {
Function<Integer, Void> integerVoidFunction = num -> null;
return getEntitySet(requestUri, limit, integerVoidFunction);
}
/** /**
* Reads entities from a given * Fairly primitive, for now, version of a fetch function.
* TODO: add a function that can write a page at a time. * TODO: add a function that can write a page at a time.
* TODO: add a parallel function which can create n queries at a time and download their results * TODO: add a parallel function which can create n queries at a time and download their results
* *
* @param resourceName the name of the resource. * @param requestUri the request URI to read from.
* @param limit the limit for the number of records to read from the Server. Use -1 to fetch all. * @param limit the limit for the number of records to read from the Server. Use -1 to fetch all.
* @return a ClientEntitySet containing any entities found. * @return a ClientEntitySet containing any entities found.
*/ */
public ClientEntitySet readEntities(String resourceName, String filter, int limit) { public ClientEntitySet getEntitySet(String requestUri, Integer limit, Function<Integer, Void> updateStatusFunction) {
List<ClientEntity> result = new ArrayList<>(); List<ClientEntity> entities = new ArrayList<>();
ODataRetrieveResponse<ClientEntitySet> entitySetResponse = null; ODataRetrieveResponse<ClientEntitySet> entitySetResponse = null;
ClientEntitySet results = new ClientEntitySetImpl(); ClientEntitySet results = new ClientEntitySetImpl();
try { // function to create URIs from skips and local params
URIBuilder uriBuilder = client.newURIBuilder(serviceRoot).appendEntitySetSegment(resourceName); Function<Integer, URI> buildSkipUri = skip -> {
try {
URIBuilder uriBuilder = new URIBuilder(prepareURI.apply(requestUri));
if (skip != null && skip > 0) uriBuilder.addParameter("$skip", skip.toString());
//add filter if present URI uri = uriBuilder.build();
if (filter != null) { log.debug("URI created: " + uri.toString());
uriBuilder.filter(filter);
return uri;
} catch (Exception ex) {
log.error("ERROR: " + ex.toString());
} }
return null;
};
try {
URI uri = buildSkipUri.apply(null);
log.info("Fetching results from: " + requestUri);
do { do {
entitySetResponse = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).execute(); entitySetResponse = client.getRetrieveRequestFactory().getEntitySetRequest(uri).execute();
entities.addAll(entitySetResponse.getBody().getEntities());
result.addAll(entitySetResponse.getBody().getEntities()); log.debug(limit > 0 ? Math.min(entities.size(), limit) : entities.size());
//some of the next links don't currently work, so we can't use getNext() reliably. //some of the next links don't currently work, so we can't use getNext() reliably.
//we can, however, use the results of what we've downloaded previously to inform the skip. //we can, however, use the results of what we've downloaded previously to inform the skip.
uriBuilder.skip(result.size()).build(); uri = buildSkipUri.apply(entities.size());
} while (entitySetResponse.getBody().getNext() != null && (limit == -1 || result.size() < limit)); updateStatusFunction.apply(entities.size());
results.getEntities().addAll(result.subList(0, limit == -1 ? result.size() : Math.min(limit, result.size()))); } while (entitySetResponse.getStatusCode() == HttpStatus.SC_OK && entitySetResponse.getBody().getNext() != null
&& (limit == -1 || entities.size() < limit));
} catch (Exception ex) { } catch (Exception ex) {
log.error("ERROR: readEntities could not continue. " + ex.toString()); //NOTE: sometimes a bad skip link in the payload can cause exceptions...the Olingo library validates the responses.
log.error("ERROR: getEntitySet could not continue. " + ex.getCause());
System.exit(NOT_OK); System.exit(NOT_OK);
} } finally {
//trim results size to requested limit
results.getEntities().addAll(entities.subList(0, limit > 0 ? Math.min(limit, entities.size()) : entities.size()));
results.setCount(entitySetResponse.getBody().getCount());
return results; log.info("\nTransfer Complete!");
return results;
}
} }
/** /**
* Converts metadata in EDMX format to metadata in Swagger 2.0 format. * Converts metadata in EDMX format to metadata in Swagger 2.0 format.
* Converted file will have the same name as the input file, with .swagger.json appended to the name. * Converted file will have the same name as the input file, with .swagger.json appended to the name.
*
* @param pathToEDMX the metadata file to convert. * @param pathToEDMX the metadata file to convert.
*/ */
public void convertMetadata(String pathToEDMX) { public void convertMetadata(String pathToEDMX) {
try { final String FILENAME_EXTENSION = ".swagger.json";
TransformerFactory factory = TransformerFactory.newInstance(); final String XSLT_FILENAME = "./V4-CSDL-to-OpenAPI.xslt";
Source xslt = new StreamSource(new File("./V4-CSDL-to-OpenAPI.xslt"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File(pathToEDMX)); if (validateMetadata(pathToEDMX)) {
transformer.transform(text, new StreamResult(new File(pathToEDMX + ".swagger.json"))); try {
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(new File(XSLT_FILENAME)));
} catch (Exception ex) { Source text = new StreamSource(new File(pathToEDMX));
log.error("ERROR: convertMetadata failed. " + ex.toString()); transformer.transform(text, new StreamResult(new File(pathToEDMX + FILENAME_EXTENSION)));
System.exit(NOT_OK);
} catch (Exception ex) {
log.error("ERROR: convertMetadata failed. " + ex.toString());
System.exit(NOT_OK);
}
} else {
log.error("ERROR: invalid metadata! Please ensure metadata is valid using validateMetadata() before proceeding.");
} }
} }
/** /**
* Writes an Entity Set to the given outputFilePath. * Writes an Entity Set to the given outputFilePath.
* @param entitySet - the ClientEntitySet to serialize. *
* @param entitySet - the ClientEntitySet to serialize.
* @param outputFilePath - the path to write the file to. * @param outputFilePath - the path to write the file to.
* @param contentType - the OData content type to write with. Currently supported options are * @param contentType - the OData content type to write with. Currently supported options are
* JSON, JSON_NO_METADATA, JSON_FULL_METADATA, and XML. * JSON, JSON_NO_METADATA, JSON_FULL_METADATA, and XML.
*/ */
public void serializeEntitySet(ClientEntitySet entitySet, String outputFilePath, ContentType contentType) { public void serializeEntitySet(ClientEntitySet entitySet, String outputFilePath, ContentType contentType) {
try { try {
log.info("Serializing " + entitySet.getEntities().size() + " item(s) to " + outputFilePath); log.info("Saving " + entitySet.getEntities().size() + " item(s) to " + outputFilePath);
client.getSerializer(contentType).write(new FileWriter(outputFilePath), client.getBinder().getEntitySet(entitySet)); client.getSerializer(contentType).write(new FileWriter(outputFilePath), client.getBinder().getEntitySet(entitySet));
} catch (Exception ex) { } catch (Exception ex) {
System.out.println(ex.getMessage()); System.out.println(ex.getMessage());
@ -289,7 +320,7 @@ public class Commander {
* Writes the given entitySet to the given outputFilePath. * Writes the given entitySet to the given outputFilePath.
* Writes in JSON format. * Writes in JSON format.
* *
* @param entitySet the ClientEntitySet to serialize. * @param entitySet the ClientEntitySet to serialize.
* @param outputFilePath the outputFilePath used to write to. * @param outputFilePath the outputFilePath used to write to.
*/ */
public void serializeEntitySet(ClientEntitySet entitySet, String outputFilePath) { public void serializeEntitySet(ClientEntitySet entitySet, String outputFilePath) {
@ -305,7 +336,9 @@ public class Commander {
String bearerToken; String bearerToken;
boolean useEdmEnabledClient; boolean useEdmEnabledClient;
public Builder() {} public Builder() {
useEdmEnabledClient = false;
}
public Builder serviceRoot(String serviceRoot) { public Builder serviceRoot(String serviceRoot) {
this.serviceRoot = serviceRoot; this.serviceRoot = serviceRoot;
@ -317,11 +350,6 @@ public class Commander {
return this; return this;
} }
public Builder useEdmEnabledClient() {
this.useEdmEnabledClient = true;
return this;
}
public Builder useEdmEnabledClient(boolean useEdmEnabledClient) { public Builder useEdmEnabledClient(boolean useEdmEnabledClient) {
this.useEdmEnabledClient = useEdmEnabledClient; this.useEdmEnabledClient = useEdmEnabledClient;
return this; return this;
@ -334,14 +362,19 @@ public class Commander {
/** /**
* Translates supported string formats into those of ContentType. * Translates supported string formats into those of ContentType.
* * <p>
* See: https://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/format/ContentType.html#TEXT_HTML * See: https://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/format/ContentType.html#TEXT_HTML
* *
* @param contentType the string representation of the requested content type. * @param contentType the string representation of the requested content type.
* @return one of ContentType if a match is found, or ContentType.JSON if no other format is available. * @return one of ContentType if a match is found, or ContentType.JSON if no other format is available.
*/ */
public static ContentType getContentType(String contentType) { public static ContentType getContentType(String contentType) {
String JSON = "JSON", JSON_NO_METADATA = "JSON_NO_METADATA", JSON_FULL_METADATA = "JSON_FULL_METADATA", XML = "XML"; final String
JSON = "JSON",
JSON_NO_METADATA = "JSON_NO_METADATA",
JSON_FULL_METADATA = "JSON_FULL_METADATA",
XML = "XML";
ContentType defaultType = ContentType.JSON; ContentType defaultType = ContentType.JSON;
ContentType type; ContentType type;

View File

@ -6,23 +6,23 @@ import org.apache.olingo.client.api.domain.ClientEntitySet;
import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.format.ContentType; import org.apache.olingo.commons.api.format.ContentType;
import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.function.Function;
/** /**
* Entry point of the RESO Web API Commander, which is a command line OData client that uses the Java Olingo * Entry point of the RESO Web API Commander, which is a command line OData client that uses the Java Olingo
* Client Library to handle OData and the Apache CXF library to handle Auth. Currently, the following forms * Client Library to handle OData and the Apache CXF library to handle Auth. Currently, the following forms
* of Auth are supported: * of Auth are supported:
* * <p>
* - Bearer Tokens * - Bearer Tokens
* * <p>
* Exposes several different actions for working with OData-based WebAPI servers. * Exposes several different actions for working with OData-based WebAPI servers.
* This application is structured so that the Main class is an OData WebAPI consumer * This application is structured so that the Main class is an OData WebAPI consumer
* using the Commander class, which contains the actual methods for working with OData. * using the Commander class, which contains the actual methods for working with OData.
* * <p>
* For usage, see README. * For usage, see README.
* * For documentation, see /doc*
* TODO: add better handling for required parameters, currently just checks if they're there and prints help if not * <p>
*/ */
public class Main { public class Main {
@ -38,13 +38,12 @@ public class Main {
String serviceRoot, bearerToken; String serviceRoot, bearerToken;
try { try {
// parse the command line arguments // parser for command line arguments
CommandLine cmd = parser.parse(APP_OPTIONS.getOptions(), params); CommandLine cmd = parser.parse(APP_OPTIONS.getOptions(), params);
serviceRoot = cmd.getOptionValue(APP_OPTIONS.SERVICE_ROOT, null); serviceRoot = cmd.getOptionValue(APP_OPTIONS.SERVICE_ROOT, null);
// only bearer token support for now // only bearer token support for now TODO: apache CXF for other forms of auth
// TODO: apache CXF for other forms of auth
bearerToken = cmd.getOptionValue(APP_OPTIONS.BEARER_TOKEN, null); bearerToken = cmd.getOptionValue(APP_OPTIONS.BEARER_TOKEN, null);
boolean useEdmEnabledClient = cmd.hasOption(APP_OPTIONS.USE_EDM_ENABLED_CLIENT); boolean useEdmEnabledClient = cmd.hasOption(APP_OPTIONS.USE_EDM_ENABLED_CLIENT);
@ -59,9 +58,7 @@ public class Main {
// pre-load options for later use // pre-load options for later use
String inputFile = cmd.getOptionValue(APP_OPTIONS.INPUT_FILE, null); String inputFile = cmd.getOptionValue(APP_OPTIONS.INPUT_FILE, null);
String outputFile = cmd.getOptionValue(APP_OPTIONS.OUTPUT_FILE, null); String outputFile = cmd.getOptionValue(APP_OPTIONS.OUTPUT_FILE, null);
String entityName = cmd.getOptionValue(APP_OPTIONS.ENTITY_NAME, null);
String uri = cmd.getOptionValue(APP_OPTIONS.URI, null); String uri = cmd.getOptionValue(APP_OPTIONS.URI, null);
String filter = cmd.getOptionValue(APP_OPTIONS.FILTER, null);
ContentType contentType = Commander.getContentType(cmd.getOptionValue(APP_OPTIONS.CONTENT_TYPE, null)); ContentType contentType = Commander.getContentType(cmd.getOptionValue(APP_OPTIONS.CONTENT_TYPE, null));
//pass -1 to get all pages, default is 10 //pass -1 to get all pages, default is 10
@ -77,7 +74,6 @@ public class Main {
if (cmd.hasOption(APP_OPTIONS.ACTIONS.GET_METADATA)) { if (cmd.hasOption(APP_OPTIONS.ACTIONS.GET_METADATA)) {
APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.GET_METADATA); APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.GET_METADATA);
log.info("\nGetting metadata from " + serviceRoot + "...");
metadata = commander.getMetadata(outputFile); metadata = commander.getMetadata(outputFile);
log.info("\nThe metadata contains the following items:"); log.info("\nThe metadata contains the following items:");
@ -85,9 +81,9 @@ public class Main {
log.info("\nChecking Metadata for validity..."); log.info("\nChecking Metadata for validity...");
if (commander.validateMetadata(outputFile)) { if (commander.validateMetadata(outputFile)) {
log.info("--> Valid Metadata!"); log.info("==> Valid Metadata!");
} else { } else {
log.error("--> Invalid Metadata!"); log.error("==> Invalid Metadata!");
System.exit(Commander.NOT_OK); System.exit(Commander.NOT_OK);
} }
@ -106,51 +102,37 @@ public class Main {
log.error("ERROR: Invalid Metadata!\n"); log.error("ERROR: Invalid Metadata!\n");
System.exit(Commander.NOT_OK); System.exit(Commander.NOT_OK);
} }
} else if (cmd.hasOption(APP_OPTIONS.ACTIONS.GET_ENTITY_SET)) { } else if (cmd.hasOption(APP_OPTIONS.ACTIONS.GET_ENTITIES)) {
APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.GET_ENTITY_SET); APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.GET_ENTITIES);
//function delegate to handle updating the status
final Function<Integer, Void> updateStatus = count -> {
System.out.print("|" + count.toString());
return null;
};
/** /**
* Gets a ClientEntitySet from the given uri. If the useEdmEnabledClient option was passed, * Gets a ClientEntitySet from the given uri. If the useEdmEnabledClient option was passed,
* then serviceRoot is required, and results fetched from uri are validated against the server's * then serviceRoot is required, and results fetched from uri are validated against the server's
* published metadata. * published metadata.
* *status
* Results are written to outputFile. * Results are written to outputFile.
*/ */
try { try {
ClientEntitySet results = commander.getEntitySet(URI.create(uri)); ClientEntitySet results = commander.getEntitySet(uri, limit, updateStatus);
if (results != null) { if (results != null) {
commander.serializeEntitySet(results, outputFile, contentType); commander.serializeEntitySet(results, outputFile, contentType);
}
} catch (Exception ex) {
System.exit(Commander.NOT_OK);
log.error(ex.toString());
} }
} catch (Exception ex) {
} else if (cmd.hasOption(APP_OPTIONS.ACTIONS.READ_ENTITIES)) { System.exit(Commander.NOT_OK);
APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.READ_ENTITIES); log.error(ex.toString());
}
/**
* Read entities up to limit number of records and writes the results to outputFile.
* Optionally takes a filter to be used with the query.
*
* @see Commander.readEntities()
*/
//NOTE: pass -1 to get all entities
log.info("Reading entities for the given resource: " + entityName);
ClientEntitySet entities = commander.readEntities(entityName, filter, limit);
log.info(entities.getCount() + " entities fetched: ");
entities.getEntities().stream().forEach(entity -> log.info(entity.toString()));
log.info("Saving to file: " + outputFile);
commander.serializeEntitySet(entities, outputFile, contentType);
} else if (cmd.hasOption(APP_OPTIONS.ACTIONS.SAVE_RAW_GET_REQUEST)) { } else if (cmd.hasOption(APP_OPTIONS.ACTIONS.SAVE_RAW_GET_REQUEST)) {
APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.SAVE_RAW_GET_REQUEST); APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.SAVE_RAW_GET_REQUEST);
commander.saveRawGetRequest(URI.create(uri), outputFile); commander.saveRawGetRequest(uri, outputFile);
} else if (cmd.hasOption(APP_OPTIONS.ACTIONS.CONVERT_EDMX_TO_OAI)) { } else if (cmd.hasOption(APP_OPTIONS.ACTIONS.CONVERT_EDMX_TO_OAI)) {
APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.CONVERT_EDMX_TO_OAI); APP_OPTIONS.validateAction(cmd, APP_OPTIONS.ACTIONS.CONVERT_EDMX_TO_OAI);
@ -169,6 +151,7 @@ public class Main {
/** /**
* Prints an error message and the help for the application, then exits with 1. * Prints an error message and the help for the application, then exits with 1.
*
* @param msg the message to print * @param msg the message to print
*/ */
private static void printErrorMsgAndExit(String msg) { private static void printErrorMsgAndExit(String msg) {
@ -179,6 +162,7 @@ public class Main {
/** /**
* Prints help * Prints help
*
* @param options the options to print help for. * @param options the options to print help for.
*/ */
private static void printHelp(Options options) { private static void printHelp(Options options) {
@ -231,7 +215,6 @@ public class Main {
public static String LIMIT = "limit"; public static String LIMIT = "limit";
public static String ENTITY_NAME = "entityName"; public static String ENTITY_NAME = "entityName";
public static String USE_EDM_ENABLED_CLIENT = "useEdmEnabledClient"; public static String USE_EDM_ENABLED_CLIENT = "useEdmEnabledClient";
public static String FILTER = "filter";
public static String CONTENT_TYPE = "contentType"; public static String CONTENT_TYPE = "contentType";
public static String HELP = "help"; public static String HELP = "help";
@ -239,21 +222,20 @@ public class Main {
//actions //actions
public static String GET_METADATA = "getMetadata"; public static String GET_METADATA = "getMetadata";
public static String VALIDATE_METADATA = "validateMetadata"; public static String VALIDATE_METADATA = "validateMetadata";
public static String GET_ENTITY_SET = "getEntitySet"; public static String GET_ENTITIES = "getEntities";
public static String READ_ENTITIES = "readEntities";
public static String SAVE_RAW_GET_REQUEST = "saveRawGetRequest"; public static String SAVE_RAW_GET_REQUEST = "saveRawGetRequest";
public static String CONVERT_EDMX_TO_OAI = "convertEDMXtoOAI"; public static String CONVERT_EDMX_TO_OAI = "convertEDMXtoOAI";
} }
/** /**
* Validates options for the various actions exposed in Main. * Validates options for the various actions exposed in Main.
* * <p>
* TODO: determine if there's a way this can be handled using Commons Command. * TODO: determine if there's a way this can be handled using Commons Command.
* *
* @param cmd a reference to the current Command instance * @param cmd a reference to the current Command instance
* @param action one of APP_OPTIONS.ACTIONS, representing the action to be performed * @param action one of APP_OPTIONS.ACTIONS, representing the action to be performed
* * <p>
* If the given action doesn't validate, then an error message will be printed and the application will exit. * If the given action doesn't validate, then an error message will be printed and the application will exit.
*/ */
public static void validateAction(CommandLine cmd, String action) { public static void validateAction(CommandLine cmd, String action) {
String validationResponse = null; String validationResponse = null;
@ -262,25 +244,24 @@ public class Main {
validationResponse = validateOptions(cmd, SERVICE_ROOT, BEARER_TOKEN, OUTPUT_FILE); validationResponse = validateOptions(cmd, SERVICE_ROOT, BEARER_TOKEN, OUTPUT_FILE);
} else if (action.matches(ACTIONS.VALIDATE_METADATA)) { } else if (action.matches(ACTIONS.VALIDATE_METADATA)) {
validationResponse = validateOptions(cmd, INPUT_FILE); validationResponse = validateOptions(cmd, INPUT_FILE);
} else if (action.matches(ACTIONS.GET_ENTITY_SET)) { } else if (action.matches(ACTIONS.GET_ENTITIES)) {
validationResponse = validateOptions(cmd, BEARER_TOKEN, URI, OUTPUT_FILE); validationResponse = validateOptions(cmd, BEARER_TOKEN, URI, OUTPUT_FILE);
} else if (action.matches(ACTIONS.READ_ENTITIES)) {
validationResponse = validateOptions(cmd, SERVICE_ROOT, BEARER_TOKEN, ENTITY_NAME, LIMIT, OUTPUT_FILE);
} else if (action.matches(ACTIONS.SAVE_RAW_GET_REQUEST)) { } else if (action.matches(ACTIONS.SAVE_RAW_GET_REQUEST)) {
validationResponse = validateOptions(cmd, SERVICE_ROOT, BEARER_TOKEN, URI, OUTPUT_FILE); validationResponse = validateOptions(cmd, BEARER_TOKEN, URI, OUTPUT_FILE);
} else if (action.matches(ACTIONS.CONVERT_EDMX_TO_OAI)) { } else if (action.matches(ACTIONS.CONVERT_EDMX_TO_OAI)) {
validationResponse = validateOptions(cmd, INPUT_FILE); validationResponse = validateOptions(cmd, INPUT_FILE);
} }
if (validationResponse != null) { if (validationResponse != null) {
printErrorMsgAndExit("ERROR: the following options are required when using " + APP_OPTIONS.ACTIONS.GET_METADATA printErrorMsgAndExit("ERROR: the following options are required when using " + action
+ "\n" + validationResponse + "\n\n"); + "\n" + validationResponse + "\n\n");
} }
} }
/** /**
* Validates options passed to the command line * Validates options passed to the command line
* @param cmd a reference to the command line instance *
* @param cmd a reference to the command line instance
* @param options a list of options to validate * @param options a list of options to validate
* @return an error string containing a formatted message when validation fails, otherwise null (valid) * @return an error string containing a formatted message when validation fails, otherwise null (valid)
*/ */
@ -288,7 +269,7 @@ public class Main {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Arrays.stream(options).forEach(option -> { Arrays.stream(options).forEach(option -> {
if (!cmd.hasOption(option)) { if (!cmd.hasOption(option)) {
sb.append("\t --"); sb.append("\n\t --");
sb.append(option); sb.append(option);
sb.append(" is required!"); sb.append(" is required!");
} }
@ -298,6 +279,7 @@ public class Main {
/** /**
* Gets the set of supported application options. * Gets the set of supported application options.
*
* @return the options to be used within the application. * @return the options to be used within the application.
*/ */
public static Options getOptions() { public static Options getOptions() {
@ -324,12 +306,7 @@ public class Main {
Option uriOption = Option.builder() Option uriOption = Option.builder()
.argName("u").longOpt(URI).hasArg() .argName("u").longOpt(URI).hasArg()
.desc("URI for raw request.") .desc("URI for raw request. Use 'single quotes' to enclose.")
.build();
Option filterOption = Option.builder()
.argName("f").longOpt(FILTER).hasArg()
.desc("If <filter> is passed, then readEntities will use it.")
.build(); .build();
Option limit = Option.builder() Option limit = Option.builder()
@ -360,10 +337,10 @@ public class Main {
OptionGroup actions = new OptionGroup() OptionGroup actions = new OptionGroup()
.addOption(Option.builder().argName("m").longOpt(ACTIONS.GET_METADATA) .addOption(Option.builder().argName("m").longOpt(ACTIONS.GET_METADATA)
.desc("fetches metadata from <serviceRoot> using <bearerToken> and saves results in <outputFile>.").build()) .desc("fetches metadata from <serviceRoot> using <bearerToken> and saves results in <outputFile>.").build())
.addOption(Option.builder().argName("r").longOpt(ACTIONS.READ_ENTITIES) .addOption(Option.builder().argName("g").longOpt(ACTIONS.GET_ENTITIES)
.desc("reads <entityName> from <serviceRoot> using <bearerToken> and saves results in <outputFile>.").build()) .desc("executes GET on <uri> using the given <bearerToken> and optional <serviceRoot> when " +
.addOption(Option.builder().argName("g").longOpt(ACTIONS.GET_ENTITY_SET) "--useEdmEnabledClient is specified. Optionally takes a <limit>, which will fetch that number " +
.desc("executes GET on <uri> using the given <serviceRoot> and <bearerToken>.").build()) "of results. Pass --limit -1 to fetch all results.").build())
.addOption(Option.builder().argName("v").longOpt(ACTIONS.VALIDATE_METADATA) .addOption(Option.builder().argName("v").longOpt(ACTIONS.VALIDATE_METADATA)
.desc("validates previously-fetched metadata in the <inputFile> path.").build()) .desc("validates previously-fetched metadata in the <inputFile> path.").build())
.addOption(Option.builder().argName("w").longOpt(ACTIONS.SAVE_RAW_GET_REQUEST) .addOption(Option.builder().argName("w").longOpt(ACTIONS.SAVE_RAW_GET_REQUEST)
@ -381,7 +358,6 @@ public class Main {
.addOption(entityName) .addOption(entityName)
.addOption(useEdmEnabledClient) .addOption(useEdmEnabledClient)
.addOption(uriOption) .addOption(uriOption)
.addOption(filterOption)
.addOption(contentType) .addOption(contentType)
.addOptionGroup(actions); .addOptionGroup(actions);
} }

View File

@ -9,6 +9,9 @@ import org.apache.olingo.commons.api.http.HttpMethod;
import java.net.URI; import java.net.URI;
/**
* Extends DefaultHttpClientFactory with one that can accept tokens passed in to make requests.
*/
public class TokenHttpClientFactory extends DefaultHttpClientFactory { public class TokenHttpClientFactory extends DefaultHttpClientFactory {
String token; String token;
@ -16,6 +19,7 @@ public class TokenHttpClientFactory extends DefaultHttpClientFactory {
/** /**
* Constructor for use with tokens. * Constructor for use with tokens.
*
* @param token the token to be used for server requests. * @param token the token to be used for server requests.
*/ */
public TokenHttpClientFactory(String token) { public TokenHttpClientFactory(String token) {
@ -25,11 +29,12 @@ public class TokenHttpClientFactory extends DefaultHttpClientFactory {
@Override @Override
public DefaultHttpClient create(final HttpMethod method, final URI uri) { public DefaultHttpClient create(final HttpMethod method, final URI uri) {
final DefaultHttpClient client = new DefaultHttpClient(); final DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, USER_AGENT); client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, USER_AGENT);
// add auth token using the vendor's bearer token // add auth token using the vendor's bearer token passed from the command line.
client.addRequestInterceptor((request, context) -> // TODO: handle refresh tokens
request.addHeader("Authorization", "Bearer " + token)); client.addRequestInterceptor((request, context) -> request.addHeader("Authorization", "Bearer " + token));
return client; return client;
} }

View File

@ -1,4 +1,4 @@
log4j.rootLogger = ALL, Console log4j.rootLogger=INFO, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.conversionPattern=%m%n log4j.appender.Console.layout.conversionPattern=%m%n

File diff suppressed because it is too large Load Diff