| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- module Docs
- class Openjdk < FileScraper
- self.name = 'OpenJDK'
- self.type = 'openjdk'
- self.root_path = 'overview-summary.html'
- self.links = {
- home: 'https://openjdk.java.net/',
- code: 'https://github.com/openjdk/jdk'
- }
- html_filters.insert_after 'internal_urls', 'openjdk/clean_urls'
- options[:skip_patterns] = [
- /compact[123]-/,
- /package-frame\.html/,
- /package-tree\.html/,
- /package-use\.html/,
- /class-use\//,
- /doc-files\//,
- /\.svg/,
- /\.png/
- ]
- options[:only_patterns] = [
- /\Ajava\./,
- /\Ajdk\./
- ]
- options[:attribution] = <<-HTML
- © 1993, 2021, Oracle and/or its affiliates. All rights reserved.<br>
- Documentation extracted from Debian's OpenJDK Development Kit package.<br>
- Licensed under the GNU General Public License, version 2, with the Classpath Exception.<br>
- Various third party code in OpenJDK is licensed under different licenses (see Debian package).<br>
- Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
- HTML
- NEWFILTERS = ['openjdk/entries_new', 'openjdk/clean_html_new']
- version '17' do
- self.release = '17'
- self.root_path = 'index.html'
- self.base_url = 'https://docs.oracle.com/en/java/javase/17/docs/api/'
- html_filters.push NEWFILTERS
- options[:container] = 'main'
- end
- OLDFILTERS = ['openjdk/entries', 'openjdk/clean_html']
- version '11' do
- self.release = '11.0.11'
- self.root_path = 'index.html'
- self.base_url = 'https://docs.oracle.com/en/java/javase/11/docs/api/'
- html_filters.push OLDFILTERS
- end
- version '8' do
- self.release = '8'
- self.base_url = 'https://docs.oracle.com/javase/8/docs/api/'
- html_filters.push OLDFILTERS
- options[:only_patterns] = [
- /\Ajava\/beans\//,
- /\Ajava\/io\//,
- /\Ajava\/lang\//,
- /\Ajava\/math\//,
- /\Ajava\/net\//,
- /\Ajava\/nio\//,
- /\Ajava\/security\//,
- /\Ajava\/text\//,
- /\Ajava\/time\//,
- /\Ajava\/util\//,
- /\Ajavax\/annotation\//,
- /\Ajavax\/crypto\//,
- /\Ajavax\/imageio\//,
- /\Ajavax\/lang\//,
- /\Ajavax\/management\//,
- /\Ajavax\/naming\//,
- /\Ajavax\/net\//,
- /\Ajavax\/print\//,
- /\Ajavax\/script\//,
- /\Ajavax\/security\//,
- /\Ajavax\/sound\//,
- /\Ajavax\/tools\//
- ]
- end
- version '8 GUI' do
- self.release = '8'
- self.base_url = 'https://docs.oracle.com/javase/8/docs/api/'
- html_filters.push OLDFILTERS
- options[:only_patterns] = [
- /\Ajava\/awt\//,
- /\Ajavax\/swing\//
- ]
- end
- version '8 Web' do
- self.release = '8'
- self.base_url = 'https://docs.oracle.com/javase/8/docs/api/'
- html_filters.push OLDFILTERS
- options[:only_patterns] = [
- /\Ajava\/applet\//,
- /\Ajava\/rmi\//,
- /\Ajava\/sql\//,
- /\Ajavax\/accessibility\//,
- /\Ajavax\/activation\//,
- /\Ajavax\/activity\//,
- /\Ajavax\/jws\//,
- /\Ajavax\/rmi\//,
- /\Ajavax\/sql\//,
- /\Ajavax\/transaction\//,
- /\Ajavax\/xml\//,
- /\Aorg\/ietf\//,
- /\Aorg\/omg\//,
- /\Aorg\/w3c\//,
- /\Aorg\/xml\//]
- end
- # Monkey patch to properly read HTML files encoded in ISO-8859-1
- def read_file(path)
- File.read(path).force_encoding('iso-8859-1').encode('utf-8') rescue nil
- end
- def get_latest_version(opts)
- doc = fetch_doc("https://jdk.java.net/archive/", opts)
- puts doc
- version = doc.at_css('#downloads > table > tr > th').content
- version.gsub!(/\(.*\)/, '')
- version.gsub!(/[a-zA-z]/, '')
- end
- end
- end
|