From d14064118e7dd07620e330f1ac71a659d31d23c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francesco=20Chicchiricc=C3=B2?= <--global> Date: Tue, 22 Jul 2014 12:15:09 +0200 Subject: [PATCH] Consolidating the Android client lib --- dist/android-lib/pom.xml | 10 +- .../src/main/assembly/lib-assembly.xml | 30 +- .../pom.xml | 10 +- .../http/AndroidHttpClientFactory.java | 0 .../src/main/resources/META-INF/LICENSE | 0 ext/client-proxy-android/pom.xml | 132 ---- .../src/main/resources/META-INF/LICENSE | 670 ------------------ .../TransactionalPersistenceManagerImpl.java | 26 +- ext/pom.xml | 3 +- .../header/ODataErrorResponseChecker.java | 48 +- .../request/AbstractODataRequest.java | 16 +- .../request/AbstractRequest.java | 24 +- .../cud/ODataEntityUpdateRequestImpl.java | 9 +- .../response/AbstractODataResponse.java | 3 +- pom.xml | 19 +- 15 files changed, 105 insertions(+), 895 deletions(-) rename ext/{client-core-android => client-android}/pom.xml (92%) rename ext/{client-core-android => client-android}/src/main/java/org/apache/olingo/client/core/android/http/AndroidHttpClientFactory.java (100%) rename ext/{client-core-android => client-android}/src/main/resources/META-INF/LICENSE (100%) delete mode 100644 ext/client-proxy-android/pom.xml delete mode 100644 ext/client-proxy-android/src/main/resources/META-INF/LICENSE diff --git a/dist/android-lib/pom.xml b/dist/android-lib/pom.xml index 183c7a81e..9b649332b 100644 --- a/dist/android-lib/pom.xml +++ b/dist/android-lib/pom.xml @@ -88,16 +88,10 @@ org.apache.olingo - olingo-client-core-android - ${project.version} - compile - - - org.apache.olingo - olingo-client-proxy-android + olingo-client-android ${project.version} compile - \ No newline at end of file + diff --git a/dist/android-lib/src/main/assembly/lib-assembly.xml b/dist/android-lib/src/main/assembly/lib-assembly.xml index 07519adff..f64702d6f 100644 --- a/dist/android-lib/src/main/assembly/lib-assembly.xml +++ b/dist/android-lib/src/main/assembly/lib-assembly.xml @@ -1,11 +1,24 @@ - + lib @@ -23,8 +36,7 @@ true compile - org.apache.olingo:olingo-client-core-android - org.apache.olingo:olingo-client-proxy-android + org.apache.olingo:olingo-client-android diff --git a/ext/client-core-android/pom.xml b/ext/client-android/pom.xml similarity index 92% rename from ext/client-core-android/pom.xml rename to ext/client-android/pom.xml index 706ecfae1..4e0d2720c 100644 --- a/ext/client-core-android/pom.xml +++ b/ext/client-android/pom.xml @@ -20,10 +20,10 @@ --> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - olingo-client-core-android + olingo-client-android jar ${project.artifactId} @@ -37,18 +37,16 @@ org.apache.olingo - olingo-client-core + olingo-client-proxy ${project.version} com.google.android android - ${android.platform.version} javax.xml.stream stax-api - ${stax.api.version} @@ -68,7 +66,7 @@ - org.apache.olingo:olingo-client-core-android + org.apache.olingo:olingo-client-proxy org.apache.olingo:olingo-client-core org.apache.olingo:olingo-client-api org.apache.olingo:olingo-commons-core diff --git a/ext/client-core-android/src/main/java/org/apache/olingo/client/core/android/http/AndroidHttpClientFactory.java b/ext/client-android/src/main/java/org/apache/olingo/client/core/android/http/AndroidHttpClientFactory.java similarity index 100% rename from ext/client-core-android/src/main/java/org/apache/olingo/client/core/android/http/AndroidHttpClientFactory.java rename to ext/client-android/src/main/java/org/apache/olingo/client/core/android/http/AndroidHttpClientFactory.java diff --git a/ext/client-core-android/src/main/resources/META-INF/LICENSE b/ext/client-android/src/main/resources/META-INF/LICENSE similarity index 100% rename from ext/client-core-android/src/main/resources/META-INF/LICENSE rename to ext/client-android/src/main/resources/META-INF/LICENSE diff --git a/ext/client-proxy-android/pom.xml b/ext/client-proxy-android/pom.xml deleted file mode 100644 index 90990c27e..000000000 --- a/ext/client-proxy-android/pom.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - 4.0.0 - - olingo-client-proxy-android - jar - ${project.artifactId} - - - org.apache.olingo - olingo-ext - 0.1.0-SNAPSHOT - .. - - - - - org.apache.olingo - olingo-client-proxy - ${project.version} - - - com.google.android - android - ${android.platform.version} - - - javax.xml.stream - stax-api - ${stax.api.version} - - - - - - - org.apache.maven.plugins - maven-shade-plugin - - - package - - shade - - - - - - - org.apache.olingo:olingo-client-proxy-android - org.apache.olingo:olingo-client-proxy - org.apache.olingo:olingo-client-core-android - org.apache.olingo:olingo-client-core - org.apache.olingo:olingo-client-api - org.apache.olingo:olingo-commons-core - org.apache.olingo:olingo-commons-api - org.apache.commons:commons-lang3 - org.slf4j:slf4j-api - commons-io:commons-io - com.fasterxml.jackson.core:jackson-core - com.fasterxml.jackson.core:jackson-databind - com.fasterxml.jackson.core:jackson-annotations - com.fasterxml.jackson.dataformat:jackson-dataformat-xml - com.fasterxml.jackson.module:jackson-module-jaxb-annotations - org.codehaus.woodstox:stax2-api - javax.xml.stream:stax-api - com.fasterxml:aalto-xml - - - - - javax.xml.stream - org.apache.olingo.javax.xml.stream - - - - - *:* - - META-INF/** - - - - - - META-INF/DEPENDENCIES - target/maven-shared-archive-resources/META-INF/DEPENDENCIES - - - META-INF/NOTICE - target/maven-shared-archive-resources/META-INF/NOTICE - - - META-INF/LICENSE - target/maven-shared-archive-resources/META-INF/LICENSE - - - - - - - - src/main/resources - true - - - target/maven-shared-archive-resources - - - - diff --git a/ext/client-proxy-android/src/main/resources/META-INF/LICENSE b/ext/client-proxy-android/src/main/resources/META-INF/LICENSE deleted file mode 100644 index a6f14dde1..000000000 --- a/ext/client-proxy-android/src/main/resources/META-INF/LICENSE +++ /dev/null @@ -1,670 +0,0 @@ - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - -From: 'an unknown organization' - Streaming API for XML -javax.xml.stream:stax-api:jar:1.0-2 License: GNU General Public Library -(http://www.gnu.org/licenses/gpl.txt) License: COMMON DEVELOPMENT AND -DISTRIBUTION LICENSE (CDDL) Version 1.0 (http://www.sun.com/cddl/cddl.html) - - -COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)Version 1.1 - -1. Definitions. - - 1.1. “Contributor” means each individual or entity that creates or - contributes to the creation of Modifications. - - 1.2. “Contributor Version” means the combination of the Original Software, - prior Modifications used by a Contributor (if any), and the Modifications - made by that particular Contributor. - - 1.3. “Covered Software” means (a) the Original Software, or (b) - Modifications, or (c) the combination of files containing Original Software - with files containing Modifications, in each case including portions - thereof. - - 1.4. “Executable” means the Covered Software in any form other than Source - Code. - - 1.5. “Initial Developer” means the individual or entity that first makes - Original Software available under this License. - - 1.6. “Larger Work” means a work which combines Covered Software or portions - thereof with code not governed by the terms of this License. - - 1.7. “License” means this document. - - 1.8. “Licensable” means having the right to grant, to the maximum extent - possible, whether at the time of the initial grant or subsequently - acquired, any and all of the rights conveyed herein. - - 1.9. “Modifications” means the Source Code and Executable form of any of - the following: - - A. Any file that results from an addition to, deletion from or modification - of the contents of a file containing Original Software or previous - Modifications; - - B. Any new file that contains any part of the Original Software or previous - Modification; or - - C. Any new file that is contributed or otherwise made available under the - terms of this License. - - 1.10. “Original Software” means the Source Code and Executable form of - computer software code that is originally released under this License. - - 1.11. “Patent Claims” means any patent claim(s), now owned or hereafter - acquired, including without limitation, method, process, and apparatus - claims, in any patent Licensable by grantor. - - 1.12. “Source Code” means (a) the common form of computer software code in - which modifications are made and (b) associated documentation included in - or with such code. - - 1.13. “You” (or “Your”) means an individual or a legal entity exercising - rights under, and complying with all of the terms of, this License. For - legal entities, “You” includes any entity which controls, is controlled by, - or is under common control with You. For purposes of this definition, - “control” means (a) the power, direct or indirect, to cause the direction - or management of such entity, whether by contract or otherwise, or (b) - ownership of more than fifty percent (50%) of the outstanding shares or - beneficial ownership of such entity. - -2. License Grants. - - 2.1. The Initial Developer Grant. - - Conditioned upon Your compliance with Section 3.1 below and subject to - third party intellectual property claims, the Initial Developer hereby - grants You a world-wide, royalty-free, non-exclusive license: - - (a) under intellectual property rights (other than patent or trademark) - Licensable by Initial Developer, to use, reproduce, modify, display, - perform, sublicense and distribute the Original Software (or portions - thereof), with or without Modifications, and/or as part of a Larger Work; - and - - (b) under Patent Claims infringed by the making, using or selling of - Original Software, to make, have made, use, practice, sell, and offer for - sale, and/or otherwise dispose of the Original Software (or portions - thereof). - - (c) The licenses granted in Sections 2.1(a) and (b) are effective on the - date Initial Developer first distributes or otherwise makes the Original - Software available to a third party under the terms of this License. - - (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) - for code that You delete from the Original Software, or (2) for - infringements caused by: (i) the modification of the Original Software, or - (ii) the combination of the Original Software with other software or - devices. - - 2.2. Contributor Grant. - - Conditioned upon Your compliance with Section 3.1 below and subject to - third party intellectual property claims, each Contributor hereby grants - You a world-wide, royalty-free, non-exclusive license: - - (a) under intellectual property rights (other than patent or trademark) - Licensable by Contributor to use, reproduce, modify, display, perform, - sublicense and distribute the Modifications created by such Contributor (or - portions thereof), either on an unmodified basis, with other Modifications, - as Covered Software and/or as part of a Larger Work; and - - (b) under Patent Claims infringed by the making, using, or selling of - Modifications made by that Contributor either alone and/or in combination - with its Contributor Version (or portions of such combination), to make, - use, sell, offer for sale, have made, and/or otherwise dispose of: (1) - Modifications made by that Contributor (or portions thereof); and (2) the - combination of Modifications made by that Contributor with its Contributor - Version (or portions of such combination). - - (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the - date Contributor first distributes or otherwise makes the Modifications - available to a third party. - - (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) - for any code that Contributor has deleted from the Contributor Version; (2) - for infringements caused by: (i) third party modifications of Contributor - Version, or (ii) the combination of Modifications made by that Contributor - with other software (except as part of the Contributor Version) or other - devices; or (3) under Patent Claims infringed by Covered Software in the - absence of Modifications made by that Contributor. - -3. Distribution Obligations. - - 3.1. Availability of Source Code. - - Any Covered Software that You distribute or otherwise make available in - Executable form must also be made available in Source Code form and that - Source Code form must be distributed only under the terms of this License. - You must include a copy of this License with every copy of the Source Code - form of the Covered Software You distribute or otherwise make available. - You must inform recipients of any such Covered Software in Executable form - as to how they can obtain such Covered Software in Source Code form in a - reasonable manner on or through a medium customarily used for software - exchange. - - 3.2. Modifications. - - The Modifications that You create or to which You contribute are governed - by the terms of this License. You represent that You believe Your - Modifications are Your original creation(s) and/or You have sufficient - rights to grant the rights conveyed by this License. - - 3.3. Required Notices. - - You must include a notice in each of Your Modifications that identifies You - as the Contributor of the Modification. You may not remove or alter any - copyright, patent or trademark notices contained within the Covered - Software, or any notices of licensing or any descriptive text giving - attribution to any Contributor or the Initial Developer. - - 3.4. Application of Additional Terms. - - You may not offer or impose any terms on any Covered Software in Source - Code form that alters or restricts the applicable version of this License - or the recipients' rights hereunder. You may choose to offer, and to charge - a fee for, warranty, support, indemnity or liability obligations to one or - more recipients of Covered Software. However, you may do so only on Your - own behalf, and not on behalf of the Initial Developer or any Contributor. - You must make it absolutely clear that any such warranty, support, - indemnity or liability obligation is offered by You alone, and You hereby - agree to indemnify the Initial Developer and every Contributor for any - liability incurred by the Initial Developer or such Contributor as a result - of warranty, support, indemnity or liability terms You offer. - - 3.5. Distribution of Executable Versions. - - You may distribute the Executable form of the Covered Software under the - terms of this License or under the terms of a license of Your choice, which - may contain terms different from this License, provided that You are in - compliance with the terms of this License and that the license for the - Executable form does not attempt to limit or alter the recipient's rights - in the Source Code form from the rights set forth in this License. If You - distribute the Covered Software in Executable form under a different - license, You must make it absolutely clear that any terms which differ from - this License are offered by You alone, not by the Initial Developer or - Contributor. You hereby agree to indemnify the Initial Developer and every - Contributor for any liability incurred by the Initial Developer or such - Contributor as a result of any such terms You offer. - - 3.6. Larger Works. - - You may create a Larger Work by combining Covered Software with other code - not governed by the terms of this License and distribute the Larger Work as - a single product. In such a case, You must make sure the requirements of - this License are fulfilled for the Covered Software. - -4. Versions of the License. - - 4.1. New Versions. - - Oracle is the initial license steward and may publish revised and/or new - versions of this License from time to time. Each version will be given a - distinguishing version number. Except as provided in Section 4.3, no one - other than the license steward has the right to modify this License. - - 4.2. Effect of New Versions. - - You may always continue to use, distribute or otherwise make the Covered - Software available under the terms of the version of the License under - which You originally received the Covered Software. If the Initial - Developer includes a notice in the Original Software prohibiting it from - being distributed or otherwise made available under any subsequent version - of the License, You must distribute and make the Covered Software available - under the terms of the version of the License under which You originally - received the Covered Software. Otherwise, You may also choose to use, - distribute or otherwise make the Covered Software available under the terms - of any subsequent version of the License published by the license steward. - - 4.3. Modified Versions. - - When You are an Initial Developer and You want to create a new license for - Your Original Software, You may create and use a modified version of this - License if You: (a) rename the license and remove any references to the - name of the license steward (except to note that the license differs from - this License); and (b) otherwise make it clear that the license contains - terms which differ from this License. - -5. DISCLAIMER OF WARRANTY. - - COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, - WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF - DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE - ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS - WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU - (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY - NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY - CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED - SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -6. TERMINATION. - - 6.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to cure such - breach within 30 days of becoming aware of the breach. Provisions which, by - their nature, must remain in effect beyond the termination of this License - shall survive. - - 6.2. If You assert a patent infringement claim (excluding declaratory - judgment actions) against Initial Developer or a Contributor (the Initial - Developer or Contributor against whom You assert such claim is referred to - as “Participant”) alleging that the Participant Software (meaning the - Contributor Version where the Participant is a Contributor or the Original - Software where the Participant is the Initial Developer) directly or - indirectly infringes any patent, then any and all rights granted directly - or indirectly to You by such Participant, the Initial Developer (if the - Initial Developer is not the Participant) and all Contributors under - Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from - Participant terminate prospectively and automatically at the expiration of - such 60 day notice period, unless if within such 60 day period You withdraw - Your claim with respect to the Participant Software against such - Participant either unilaterally or pursuant to a written agreement with - Participant. - - 6.3. If You assert a patent infringement claim against Participant alleging - that the Participant Software directly or indirectly infringes any patent - where such claim is resolved (such as by license or settlement) prior to - the initiation of patent infringement litigation, then the reasonable value - of the licenses granted by such Participant under Sections 2.1 or 2.2 shall - be taken into account in determining the amount or value of any payment or - license. - - 6.4. In the event of termination under Sections 6.1 or 6.2 above, all end - user licenses that have been validly granted by You or any distributor - hereunder prior to termination (excluding licenses granted to You by any - distributor) shall survive termination. - -7. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING - NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY - OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER - OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, - INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT - LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE - OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF - SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. - THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR - PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT - APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW - THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS - EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -8. U.S. GOVERNMENT END USERS. - - The Covered Software is a “commercial item,” as that term is defined in 48 - C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as - that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial - computer software documentation” as such terms are used in 48 C.F.R. 12.212 - (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 - through 227.7202-4 (June 1995), all U.S. Government End Users acquire - Covered Software with only those rights set forth herein. This U.S. - Government Rights clause is in lieu of, and supersedes, any other FAR, - DFAR, or other clause or provision that addresses Government rights in - computer software under this License. - -9. MISCELLANEOUS. - - This License represents the complete agreement concerning subject matter - hereof. If any provision of this License is held to be unenforceable, such - provision shall be reformed only to the extent necessary to make it - enforceable. This License shall be governed by the law of the jurisdiction - specified in a notice contained within the Original Software (except to the - extent applicable law, if any, provides otherwise), excluding such - jurisdiction's conflict-of-law provisions. Any litigation relating to this - License shall be subject to the jurisdiction of the courts located in the - jurisdiction and venue specified in a notice contained within the Original - Software, with the losing party responsible for costs, including, without - limitation, court costs and reasonable attorneys' fees and expenses. The - application of the United Nations Convention on Contracts for the - International Sale of Goods is expressly excluded. Any law or regulation - which provides that the language of a contract shall be construed against - the drafter shall not apply to this License. You agree that You alone are - responsible for compliance with the United States export administration - regulations (and the export control laws and regulation of any other - countries) when You use, distribute or otherwise make available any Covered - Software. - -10. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer and the Contributors, each party is - responsible for claims and damages arising, directly or indirectly, out of - its utilization of rights under this License and You agree to work with - Initial Developer and Contributors to distribute such responsibility on an - equitable basis. Nothing herein is intended or shall be deemed to - constitute any admission of liability. - -NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE -(CDDL) - -The code released under the CDDL shall be governed by the laws of the State of -California (excluding conflict-of-law provisions). Any litigation relating to -this License shall be subject to the jurisdiction of the Federal Courts of the -Northern District of California and the state courts of the State of -California, with venue lying in Santa Clara County, California. - - - -From: 'fasterxml.com' (http://fasterxml.com) - Stax2 API -(http://wiki.fasterxml.com/WoodstoxStax2) -org.codehaus.woodstox:stax2-api:bundle:3.1.4 License: The BSD License -(http://www.opensource.org/licenses/bsd-license.php) - - -Copyright (c) 2004-2010, Woodstox Project (http://woodstox.codehaus.org/) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -3. Neither the name of the Woodstox XML Processor nor the names - of its contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -From: 'QOS.ch' (http://www.qos.ch) - - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.7 - License: MIT License (http://www.opensource.org/licenses/mit-license.php) - -Copyright (c) 2004-2013 QOS.ch - -All rights reserved. Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated documentation files -(the "Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to permit persons to whom -the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -From: 'FasterXML' (http://fasterxml.com/) - aalto-xml -(http://github.com/FasterXML/aalto-xml/) com.fasterxml:aalto-xml:jar:0.9.9 -License: The Apache Software License, Version 2.0 -(http://www.apache.org/licenses/LICENSE-2.0.txt) - Jackson-annotations -(http://wiki.fasterxml.com/JacksonHome) -com.fasterxml.jackson.core:jackson-annotations:bundle:2.4.1 License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- Jackson-core (http://wiki.fasterxml.com/JacksonHome) -com.fasterxml.jackson.core:jackson-core:bundle:2.4.1 License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- jackson-databind (http://wiki.fasterxml.com/JacksonHome) -com.fasterxml.jackson.core:jackson-databind:bundle:2.4.1.1 License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- Jackson-dataformat-XML -(http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding) -com.fasterxml.jackson.dataformat:jackson-dataformat-xml:bundle:2.4.1 License: -The Apache Software License, Version 2.0 -(http://www.apache.org/licenses/LICENSE-2.0.txt) - -Jackson-module-JAXB-annotations -(http://wiki.fasterxml.com/JacksonJAXBAnnotations) -com.fasterxml.jackson.module:jackson-module-jaxb-annotations:bundle:2.4.1 -License: The Apache Software License, Version 2.0 -(http://www.apache.org/licenses/LICENSE-2.0.txt) - - -From: 'The Apache Software Foundation' (http://www.apache.org/) - Apache -Commons Codec (http://commons.apache.org/proper/commons-codec/) -commons-codec:commons-codec:jar:1.9 License: The Apache Software License, -Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) - Commons IO -(http://commons.apache.org/io/) commons-io:commons-io:jar:2.4 License: The -Apache Software License, Version 2.0 -(http://www.apache.org/licenses/LICENSE-2.0.txt) - Apache Commons Lang -(http://commons.apache.org/proper/commons-lang/) -org.apache.commons:commons-lang3:jar:3.3.2 License: The Apache Software -License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) - Apache -HttpClient (http://hc.apache.org/httpcomponents-client) -org.apache.httpcomponents:httpclient:jar:4.2.6 License: Apache License -(LICENSE.txt) - Apache HttpCore (http://hc.apache.org/httpcomponents-core-ga) -org.apache.httpcomponents:httpcore:jar:4.2.5 License: Apache License -(LICENSE.txt) - olingo-client-api -(http://olingo.apache.org/olingo-lib/olingo-client-api) -org.apache.olingo:olingo-client-api:jar:0.1.0-SNAPSHOT License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- olingo-client-core (http://olingo.apache.org/olingo-lib/olingo-client-core) -org.apache.olingo:olingo-client-core:jar:0.1.0-SNAPSHOT License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- olingo-client-proxy (http://olingo.apache.org/olingo-ext/olingo-client-proxy) -org.apache.olingo:olingo-client-proxy:jar:0.1.0-SNAPSHOT License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- olingo-commons-api (http://olingo.apache.org/olingo-lib/olingo-commons-api) -org.apache.olingo:olingo-commons-api:jar:0.1.0-SNAPSHOT License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- olingo-commons-core (http://olingo.apache.org/olingo-lib/olingo-commons-core) -org.apache.olingo:olingo-commons-core:jar:0.1.0-SNAPSHOT License: The Apache -Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) - - - - diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/TransactionalPersistenceManagerImpl.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/TransactionalPersistenceManagerImpl.java index e22abd6ca..96ce5aa5e 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/TransactionalPersistenceManagerImpl.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/TransactionalPersistenceManagerImpl.java @@ -103,21 +103,21 @@ public class TransactionalPersistenceManagerImpl extends AbstractPersistenceMana result.add(ODataErrorResponseChecker.checkResponse( service.getClient(), new StatusLine() { - @Override - public ProtocolVersion getProtocolVersion() { - return null; - } + @Override + public ProtocolVersion getProtocolVersion() { + return null; + } - @Override - public int getStatusCode() { - return res.getStatusCode(); - } + @Override + public int getStatusCode() { + return res.getStatusCode(); + } - @Override - public String getReasonPhrase() { - return res.getStatusMessage(); - } - }, + @Override + public String getReasonPhrase() { + return res.getStatusMessage(); + } + }, res.getRawResponse(), ((ODataRequest) request).getAccept())); } else { diff --git a/ext/pom.xml b/ext/pom.xml index 991a936a4..b03fb9561 100644 --- a/ext/pom.xml +++ b/ext/pom.xml @@ -36,9 +36,8 @@ - client-core-android pojogen-maven-plugin client-proxy - client-proxy-android + client-android diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java index a57d035cd..967a66649 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java @@ -47,32 +47,30 @@ public final class ODataErrorResponseChecker { ODataRuntimeException result = null; - if (statusLine.getStatusCode() >= 400) { - if (entity == null) { - result = new ODataClientErrorException(statusLine); + if (entity == null) { + result = new ODataClientErrorException(statusLine); + } else { + final ODataFormat format = accept.contains("xml") ? ODataFormat.XML : ODataFormat.JSON; + + ODataError error; + try { + error = odataClient.getReader().readError(entity, format); + } catch (final RuntimeException e) { + LOG.warn("Error deserializing error response", e); + error = getGenericError( + statusLine.getStatusCode(), + statusLine.getReasonPhrase()); + } catch (final ODataDeserializerException e) { + LOG.warn("Error deserializing error response", e); + error = getGenericError( + statusLine.getStatusCode(), + statusLine.getReasonPhrase()); + } + + if (statusLine.getStatusCode() >= 500) { + result = new ODataServerErrorException(statusLine); } else { - final ODataFormat format = accept.contains("xml") ? ODataFormat.XML : ODataFormat.JSON; - - ODataError error; - try { - error = odataClient.getReader().readError(entity, format); - } catch (final RuntimeException e) { - LOG.warn("Error deserializing error response", e); - error = getGenericError( - statusLine.getStatusCode(), - statusLine.getReasonPhrase()); - } catch (final ODataDeserializerException e) { - LOG.warn("Error deserializing error response", e); - error = getGenericError( - statusLine.getStatusCode(), - statusLine.getReasonPhrase()); - } - - if (statusLine.getStatusCode() >= 500) { - result = new ODataServerErrorException(statusLine); - } else { - result = new ODataClientErrorException(statusLine, error); - } + result = new ODataClientErrorException(statusLine, error); } } diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractODataRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractODataRequest.java index e2aa50d32..0a8e109c0 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractODataRequest.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractODataRequest.java @@ -42,6 +42,7 @@ import java.io.InputStream; import java.lang.reflect.Constructor; import java.net.URI; import java.util.Collection; +import org.apache.olingo.commons.api.ODataRuntimeException; /** * Abstract representation of an OData request. Get instance by using factories. @@ -300,26 +301,31 @@ public abstract class AbstractODataRequest extends AbstractRequest implements OD // Add all available headers for (String key : getHeaderNames()) { - this.request.addHeader(key, odataHeaders.getHeader(key)); + request.addHeader(key, odataHeaders.getHeader(key)); } if (LOG.isDebugEnabled()) { - for (Header header : this.request.getAllHeaders()) { + for (Header header : request.getAllHeaders()) { LOG.debug("HTTP header being sent: " + header); } } HttpResponse response; try { - response = this.httpClient.execute(this.request); + response = httpClient.execute(request); } catch (IOException e) { throw new HttpClientException(e); } catch (RuntimeException e) { - this.request.abort(); + request.abort(); throw new HttpClientException(e); } - checkResponse(odataClient, response, getAccept()); + try { + checkResponse(odataClient, response, getAccept()); + } catch (ODataRuntimeException e) { + odataClient.getConfiguration().getHttpClientFactory().close(httpClient); + throw e; + } return response; } diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java index ea510bf32..d920a98d5 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java @@ -48,18 +48,20 @@ public abstract class AbstractRequest { protected void checkResponse( final CommonODataClient odataClient, final HttpResponse response, final String accept) { - try { - final ODataRuntimeException exception = ODataErrorResponseChecker. - checkResponse(odataClient, - response.getStatusLine(), - response.getEntity() == null ? null : response.getEntity().getContent(), - accept); - if (exception != null) { - throw exception; + if (response.getStatusLine().getStatusCode() >= 400) { + try { + final ODataRuntimeException exception = ODataErrorResponseChecker.checkResponse( + odataClient, + response.getStatusLine(), + response.getEntity() == null ? null : response.getEntity().getContent(), + accept); + if (exception != null) { + throw exception; + } + } catch (IOException e) { + throw new ODataRuntimeException( + "Received '" + response.getStatusLine() + "' but could not extract error body", e); } - } catch (IOException e) { - throw new ODataRuntimeException( - "Received '" + response.getStatusLine() + "' but could not extract error body", e); } } } diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java index 261fc37a0..e84928f4d 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java @@ -38,6 +38,7 @@ import org.apache.olingo.commons.api.serialization.ODataSerializerException; import java.io.InputStream; import java.net.URI; +import org.apache.http.HttpStatus; /** * This class implements an OData update request. @@ -88,7 +89,13 @@ public class ODataEntityUpdateRequestImpl ((HttpEntityEnclosingRequestBase) request).setEntity(URIUtils.buildInputStreamEntity(odataClient, input)); try { - return new ODataEntityUpdateResponseImpl(odataClient, httpClient, doExecute()); + final HttpResponse httpResponse = doExecute(); + final ODataEntityUpdateResponseImpl response = + new ODataEntityUpdateResponseImpl(odataClient, httpClient, httpResponse); + if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_NO_CONTENT) { + response.close(); + } + return response; } finally { IOUtils.closeQuietly(input); } diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/response/AbstractODataResponse.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/response/AbstractODataResponse.java index 9558d5dda..a748980cc 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/response/AbstractODataResponse.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/response/AbstractODataResponse.java @@ -46,6 +46,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.TreeMap; +import org.apache.olingo.commons.api.ODataRuntimeException; /** * Abstract representation of an OData response. @@ -182,7 +183,7 @@ public abstract class AbstractODataResponse implements ODataResponse { this.payload = res.getEntity() == null ? null : res.getEntity().getContent(); } catch (Exception e) { LOG.error("Error retrieving payload", e); - throw new IllegalStateException(e); + throw new ODataRuntimeException(e); } for (Header header : res.getAllHeaders()) { diff --git a/pom.xml b/pom.xml index d9c083a0d..5f4dcf622 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ --> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.apache.olingo @@ -176,7 +176,12 @@ ${android.platform.version} provided - + + javax.xml.stream + stax-api + ${stax.api.version} + + org.slf4j slf4j-api @@ -280,11 +285,6 @@ maven-shade-plugin 2.3 - - org.codehaus.mojo - build-helper-maven-plugin - 1.9 - org.antlr antlr4-maven-plugin @@ -325,11 +325,6 @@ maven-resources-plugin 2.6 - - org.sonatype.plugins - jarjar-maven-plugin - 1.9 - org.apache.maven.plugins maven-war-plugin