{"id":23651891,"url":"https://github.com/microfocus/almoctanejavarestsdk","last_synced_at":"2025-08-18T12:15:01.101Z","repository":{"id":41754461,"uuid":"76228719","full_name":"MicroFocus/ALMOctaneJavaRESTSDK","owner":"MicroFocus","description":"Support for the Octane REST API in Java.  develop branch is used for lastest code","archived":false,"fork":false,"pushed_at":"2025-07-12T01:11:10.000Z","size":3498,"stargazers_count":19,"open_issues_count":8,"forks_count":20,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-08-15T01:38:12.430Z","etag":null,"topics":["octane"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MicroFocus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-12-12T06:32:37.000Z","updated_at":"2025-08-13T11:16:14.000Z","dependencies_parsed_at":"2024-03-26T10:47:21.840Z","dependency_job_id":"0e21f9c3-0833-4045-8c23-b9b268fe2b51","html_url":"https://github.com/MicroFocus/ALMOctaneJavaRESTSDK","commit_stats":null,"previous_names":["hpsoftware/almoctanejavarestsdk"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/MicroFocus/ALMOctaneJavaRESTSDK","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicroFocus%2FALMOctaneJavaRESTSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicroFocus%2FALMOctaneJavaRESTSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicroFocus%2FALMOctaneJavaRESTSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicroFocus%2FALMOctaneJavaRESTSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MicroFocus","download_url":"https://codeload.github.com/MicroFocus/ALMOctaneJavaRESTSDK/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicroFocus%2FALMOctaneJavaRESTSDK/sbom","scorecard":{"id":60829,"data":{"date":"2025-08-11","repo":{"name":"github.com/MicroFocus/ALMOctaneJavaRESTSDK","commit":"10d1e0c6ae350207b9b7883865beda60886f2304"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v","Warn: Project is vulnerable to: GHSA-qh8g-58pp-2wxh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T01:39:50.786Z","repository_id":41754461,"created_at":"2025-08-15T01:39:50.786Z","updated_at":"2025-08-15T01:39:50.786Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270989495,"owners_count":24680757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["octane"],"created_at":"2024-12-28T16:48:51.865Z","updated_at":"2025-08-18T12:15:01.092Z","avatar_url":"https://github.com/MicroFocus.png","language":"Java","readme":"# OpenText Core Software Delivery Platform and Software Delivery Management REST API Java SDK\n\n#### Maven\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.microfocus.adm.almoctane.sdk\u003c/groupId\u003e\n    \u003cartifactId\u003esdk-src\u003c/artifactId\u003e\n    \u003cversion\u003e25.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n#### Gradle\n```groovy\ncompile group: 'com.microfocus.adm.almoctane.sdk', name: 'sdk-src', version: '25.2'\n```\n\n## Introduction\n\nA Java SDK that can be used to connect to OpenText Core Software Delivery Platform and Software Delivery Management REST API.\nThis SDK is designed to work seamlessly with either OpenText Core Software Delivery Platform (SDP) and Software Delivery Management. For simplicity, these products will be referred to as SDP in the sections below.\nSee the Javadoc for more information of how to use the SDK. See also the [REST API documentation](https://admhelp.microfocus.com/octane/en/25.1/Online/Content/API/articles_API2.htm) for more details about the SDP API.\n\nThis has multiple sub-projects:\n\n1. sdk-src which is the main source of the Java SDK\n2. sdk-integration-tests which can be run to test the SDK against your SDP server\n3. sdk-usage-examples which contain some simple examples as to how to use the SDK\n4. sdk-generate-entity-models-maven-plugin which contains a maven plugin that generates POJO's for your servers SDP entities [see \"Entity Generation\"](#entity-generation)\n5. sdk-extension which provides some tools to access more of the sdk-src's underlying implementation \n\nThe easiest way to compile the project is to use [maven](https://maven.apache.org/) and run the command:\n\n```\nmvn clean install\n```\n\nfrom the root directory.\n\n## Creating JavaDoc\n\nIn order to create javadoc run the following maven command from the `sdk-src` directory:\n\n```\nmvn javadoc:javadoc\n```\n\nThis will create a javadoc site in the `sdk-src/target/site/apidocs` directory\n\n## Entity Generation\n\nYou can generate entities based on your server's metadata using the `sdk-generate-entity-models-maven-plugin` plugin.\nThis plugin connects to your SDP server using the given authentication credentials, shared space and work space\nand generates strongly typed entities that can be used instead of the generic out of the box entity that comes\nwith the SDK.\n\nTo enable this, add the following to your project's POM file (assuming 16.1.100 being the SDK version):\n\n```xml\n \u003cbuild\u003e\n        \u003cplugins\u003e\n            \u003cplugin\u003e\n                \u003cgroupId\u003ecom.microfocus.adm.almoctane.sdk\u003c/groupId\u003e\n                \u003cartifactId\u003esdk-generate-entity-models-maven-plugin\u003c/artifactId\u003e\n                \u003cversion\u003e25.2\u003c/version\u003e\n                \u003cexecutions\u003e\n                    \u003cexecution\u003e\n                        \u003cphase\u003egenerate-sources\u003c/phase\u003e\n                        \u003cgoals\u003e\n                            \u003cgoal\u003egenerate\u003c/goal\u003e\n                        \u003c/goals\u003e\n                    \u003c/execution\u003e\n                \u003c/executions\u003e\n                \u003cconfiguration\u003e\n                    \u003cclientId\u003eclient_id\u003c/clientId\u003e\n                    \u003cclientSecret\u003eclient_secret\u003c/clientSecret\u003e\n                    \u003cserver\u003ehttp[s]://server[:port]\u003c/server\u003e\n                    \u003csharedSpace\u003eSSID\u003c/sharedSpace\u003e\n                    \u003cworkSpace\u003eWSID\u003c/workSpace\u003e\n                    \u003ctechPreview\u003eboolean (default false)\u003c/techPreview\u003e\n                    \u003c!--\n                        By default the plugin will generate the sources to the generated-source directory under\n                        the target.  If you wish to place this in a different place then use this parameter\n                    --\u003e\n                    \u003c!-- \u003cgeneratedSourcesDirectory\u003e\u003c/generatedSourcesDirectory\u003e --\u003e\n                \u003c/configuration\u003e\n            \u003c/plugin\u003e\n            \u003cplugin\u003e\n                \u003cgroupId\u003eorg.codehaus.mojo\u003c/groupId\u003e\n                \u003cartifactId\u003ebuild-helper-maven-plugin\u003c/artifactId\u003e\n                \u003cversion\u003e1.9.1\u003c/version\u003e\n                \u003cexecutions\u003e\n                    \u003cexecution\u003e\n                        \u003cid\u003eaddGeneratedEntitiesSources\u003c/id\u003e\n                        \u003cphase\u003egenerate-sources\u003c/phase\u003e\n                        \u003cgoals\u003e\n                            \u003cgoal\u003eadd-source\u003c/goal\u003e\n                        \u003c/goals\u003e\n                        \u003cconfiguration\u003e\n                            \u003csources\u003e\n                                \u003c!--\n                                  This assumes that you leave the configuration of the plugin above\n                                  to use the maven generated-sources directory as the place where the generated\n                                  sources will be\n                                --\u003e\n                                \u003csource\u003e${project.build.directory}/generated-sources\u003c/source\u003e\n                            \u003c/sources\u003e\n                        \u003c/configuration\u003e\n                    \u003c/execution\u003e\n                \u003c/executions\u003e\n            \u003c/plugin\u003e\n            \u003c!--\n                The sources need to be compiled using Java 8 at least.  Use this if this needs to \n                be explicit\n            --\u003e\n            \u003cplugin\u003e\n                \u003cartifactId\u003emaven-compiler-plugin\u003c/artifactId\u003e\n                \u003cversion\u003e3.5.1\u003c/version\u003e\n                \u003cconfiguration\u003e\n                    \u003csource\u003e1.8\u003c/source\u003e\n                    \u003ctarget\u003e1.8\u003c/target\u003e\n                \u003c/configuration\u003e\n            \u003c/plugin\u003e\n        \u003c/plugins\u003e\n    \u003c/build\u003e\n```\n\nAlternatively you can use the maven command line command to generate.  See the maven documentation for more details as to\n how to do this.\n \n### Generated Directories\n\nThe generator will create three directories under the `com.hpe.adm.nga.sdk` package:\n\n* entities\n* enums\n* model\n\nWith the generated code.  Do not edit the generated code since it will be overwritten each time you run a maven build.\n\n### Using the generated code\n\nSee the following example for how to use the generated code:\n\n```java\n        final Octane octane = new Octane.Builder(...).build();\n        final WorkItemRootEntityModel workItemRootEntityModel = octane.entityList(WorkItemRootEntityList.class).at(1001).get().execute();\n\n        final EpicEntityModel rootEpic = octane.entityList(EpicEntityList.class).create().entities(Collections.singleton(\n                new EpicEntityModel(\"rootepic\", workItemRootEntityModel, Phases.EpicPhase.NEW)\n        )).execute().iterator().next();\n        final FeatureEntityModel featureEntityModel = octane.entityList(FeatureEntityList.class).create().entities(Collections.singleton(\n                new FeatureEntityModel(\"feature1\", Phases.FeaturePhase.NEW).setParent(rootEpic)\n        )).execute().iterator().next();\n        final DefectEntityList defectEntityList = octane.entityList(DefectEntityList.class);\n        final DefectEntityModel defect = defectEntityList.create().entities(Collections.singleton(\n                new DefectEntityModel(\"defect\", featureEntityModel, Phases.DefectPhase.DEFERRED)\n        )).execute().iterator().next();\n        defect.setSeverity(Lists.Severity.HIGH).setDescription(\"this has been updated\");\n        defectEntityList.update().entities(Collections.singleton(defect)).execute();\n```\n\nPlease note that due to the way that the SDP REST API works only a limited number of fields will be automatically retrieved from the server.  Due to this the `addFields` method\nshould be used to explicitly state which fields should be retrieved.  You can see more information [here](https://admhelp.microfocus.com/octane/en/latest/Online/Content/API/fields_clause.htm)\n\n## Logging\n\nThe SDK uses [SLF4J](https://www.slf4j.org/) internally for all logging. This means that the users of the library can control the logging framework used for the implementation. \nThe easiest way is to add a maven dependency to such an implementation (slf4j-simple, log4j, logback etc.)\n\n### Example\n```xml\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.microfocus.adm.almoctane.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003esdk-src\u003c/artifactId\u003e\n            \u003cversion\u003e25.2\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e\n            \u003cartifactId\u003eslf4j-log4j12\u003c/artifactId\u003e\n            \u003cversion\u003e1.7.25\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n```\nThis will make the sdk use log4j as an slf4j implementation, configuring a log4j.xml in your project will also take effect on the sdk.\n\n## Space and Workspace admin\nBy various combinations of not setting the space id, or setting the space id and not the workspace id, the admin of those\nspaces can be accessed.  See the `TestSharedSpaceAdmin` and `TestWorkSpaceAdmin` tests for examples of how these can be used.\n\nCurrently the admin sections are not available using generated entities - but the CRUD functions are available\n\n## What's New\n* CE 25.2\n  * Handling special characters with API client\\secret authentication\n  * Copyright update\n  * Unauthorized requests throw OctaneException instead of RuntimeException\n* CE 24.3\n  * Generate entities plugin now supports fields that point to generic lists (e.g. EntityIconEntityModel.conditionFieldValue)\n* CE 24.1.5\n  * Fixed vulnerabilities from jetty\n* CE 24.1.4\n  * Added support for SessionId authentication\n* CE 24.1.3\n  * Fixed vulnerabilities from org.json and google-http-client\n* CE 24.1.2\n  * Fixed extracting facts from business rules\n  * Improved parsing of date fields\n  * Replaced hardcoded unsupported characters check with java.lang.Character API (Vanilla SDK) \n* CE 24.1.1\n  * ArrayFieldModel can now be used for fields containing generic JSONArray\n* CE 24.1\n  * Object field model is now sent as JSON instead of String\n* CE 23.4\n  * Added support for operating with business rules (see [README](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/blob/master/sdk-extension/README.md))\n* 23.3.1\n  * Fixed bug related to JSON Array response parsing\n  * Fixed DateFieldModel bug related to the clear method\n  * Updated licenses\n* 23.3.0\n  * Query is now sent as an encoded string so that special characters are now supported for api data filtering\n  * Fixed bug related to code generation based on ALM Octane entities containing special characters\n  * Updated org.json to version 20230227\n* 16.1.100.3\n  * Added new clearField method on generated models which sets the field value to null instead of removing it\n* 16.1.100.2\n  * Added Query.NULL and Query.NULL_REFERENCE values for filtering not populated fields\n* 16.1.100.1\n  * Added a new OctaneHttpClient using Jetty, for HTTP/2 support \n* 16.1.100\n  * Fixed vulnerability by removing transitive dependency for apache-commons-text\n* 16.0.400.1\n  * Fixed bug related to session cookie collision on parallel requests\n* 16.0.400\n  * Fixed list entity bug related to pagination\n  * Updated google client version to 1.42.0\n  * Support multiple attachments in single requests\n* 16.0.300\n  * Fixed ClassCastException on EmptyFieldModel [Issue 133](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/133)\n  * Replaced `/` with `_` in list name generation [Issue 124](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/124)\n  * Added OctanePartialException message [Issue 132](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/132)\n* 15.1.60\n  * Added support for [Basic Authentication](https://admhelp.microfocus.com/octane/en/15.1.60/Online/Content/API/Authenticate.htm#mt-item-2).\n    If the Octane space parameter `SUPPORTS_BASIC_AUTHENTICATION` is set to true,  \n    when creating the Octane object, the class `SimpleBasicAuthentication` can be used in order to connect to Octane via\n    basic authentication. \n* 15.1.40\n  * EntityModel now has a toString() for easier logging. [Enhancement 102](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/102)\n  * Added possibility to add a header to a single request and extend the current url. [Enhancement 104](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/104)\n  * Added a way of setting:\n    * the connection and read timeouts [Enhancement 101](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/101),\n    * the HttpTransport [Enhancement 103](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/103)\n    * a boolean for accepting self-signed ssl certificates [64](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/64)\n* 15.1.20\n  * Enable entity generation using the tech preview api mode.  Adds more entities and fields\n  * Manipulate test scripts using the SDK.  See `TestExample` in the `sdk-usage-examples` module for more information\n  * Able to get the context for space and workspace admins\n  * FIX for [Bug 97](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/97).  Logging uses the slf4j paradigm for formatting strings\n  * Internal fix to enable OctaneClassFactory too be set by the Builder\n* 15.0.40.1\n  * FIX for [Bug 79](https://github.com/MicroFocus/ALMOctaneJavaRESTSDK/issues/79).  User defined lists are now created with a `_` in front of the\n  package name when using the generator to ensure Java convention is followed\n* 15.0.40\n  * Get the server version using the `SiteAdmin` API.  This matches the `serverurl/admin/server/version` REST call\n  * The way that the API mode can be set has changed.  It is now easier to set the technical preview by using the *APIMode* interface and \n  default classes.  Other modes can be set as well.  See Javadoc for more details\n* 15.0.20\n  * Lists are now created in their own classes.  The package name is based on the list's logical name.  This was necessary due to non-unique list names.   In order\n  to try to preserve backward compatibility the actual class name should be the same but are now in separate packages.  That means that in the best case only\n  imports need to be changed.\n    * In addition to this list names need to conform to Java standards. If a list name starts with an illegal character such as a number then the name will start with \n    a '$'.   \n  * Due to a bug on Octane - the *run_history* entity's ID is marked as an integer as opposed to a string.  This causes an issue in the entity generation.\n  Therefore the *run_history* entity will not be generated until this bug is fixed in Octane\n* 12.60.41\n  * Float fields now supported via FloatFieldModel if they are enabled on the Octane server.\n  * Change to maven group id: com.microfocus.adm.almoctane.sdk\n* 12.60.21\n  * Fixed bug where etag header was not being set properly\n  * Fixed null pointer if the sdk encountered un-parsable entity JSON\n  * Octane.OctaneBuilder now has constructor that allows passing a specific instance of OctaneHttpClient for the Octane object\n* 12.55.32\n  * Octane server errors will not be properly parsed into an ErrorModel object\n  * ErrorModels from OctaneExceptions will now also contain the HTTP status code\n  * Added ObjectFieldModel for fields that contain JSON content but do not represent a relation to another entity model\n  * Added helper methods for comparing entity models\n* 12.55.8\n  * Fixed various bugs related to entity generation\n  * Fixed bug related to http session handling\n  * HTTP proxy settings are now logged\n* 12.55.5\n  * Added Entity Generation\n  * Added Etag support.  If the server resource has an etag then it is cached by the SDK for as long as the process is alive.\n  The cache is destroyed once the process ends\n  * All entity ids are now Strings.  IDs are strings according to the metadata but there was some code that assumed IDs were\n   integers\n  * Entity collection now returns an `OctaneCollection` which is an extension of `Collection`.  This includes important \n  metadata about the returned collection:\n    * The total count of entities (not including the current limit)\n    * Whether the number of requested entities exceeds the total count of entities.\n  * Added support for IN and BTW for queries\n  * [SDK extension](https://github.com/Microfocus/sdk-extension) moved, now part of the sdk repository, \n  * SDK now uses SLF4J internally for all logging\n  \n  See the ALM Octane documentation for more information\n  \n## Disclaimer\nCertain versions of software accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. This software was acquired by Micro Focus on September 1, 2017, and is now offered by OpenText. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrofocus%2Falmoctanejavarestsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrofocus%2Falmoctanejavarestsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrofocus%2Falmoctanejavarestsdk/lists"}