Closed farblos closed 6 months ago
@ojehle: This PR consists of three relatively simple changes (which I consider ready) plus one complex one (which I still need to brush up).
While working with the downloader I came across this link on https://github.com/lucaslellis/oracle_quarter_patch_downloader. From there I understood that XML-based search results are much more flexible and easier to parse at the same time.
As an example, you can check the link below, which gives you complete download information on OPatch for platforms 226 and 23 plus immediately for the correct version 12.2.0.1.0:
https://updates.oracle.com/Orion/Services/search?bug=6880880&platform=226,23&release=600000000063735
Please check the commit and ensure that your use-cases work as previously and let me know whether this change is fine with you. (BTW, on https://github.com/ojehle/H35_OraclePatchDownloader/actions/runs/8766244060 you can download the jar as an artifact.)
If you think that the general approach is OK I will brush up the last commit, add documentation, and merge the PR when everything is ready.
i will test it the next days because i have a new oracle home to build with a list of patches :-) i was very busy the last months so my feedback level was very low.. my use case is simple. i have a list of specific patches to download
Change to XML-based search results
Using XML-based search results has a number of benefits:
OraclePatchDownloader.java:
Add inner class DownloadFile and use it to collect download information in a structured way.
Add infrastructure to parse XML and process it with XPath.
Add handling of TextPages, which result from Oracle serving XML with content type "text/plain".
Replace inner download loop by appropriately build query URLs.
Replace search result HTML page scraping by search result XML parsing.
Add code to dump MOS-provided checksums after the download.
Add command line options "-q | --query" as synonyms to "-t | --platforms" and process them.
Other Changes
Fix indentation in pom.xml
Fix and simplify examples in readme
Add support for default 2FA method