Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions java/microsoft-jdk.watch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from urllib import request
import re

data = request.urlopen('https://learn.microsoft.com/en-us/java/openjdk/download').read().decode('utf-8')
matches = re.findall(r'microsoft-jdk-([0-9]+\.[0-9]+\.[0-9]+)-linux-x64\.tar\.gz', data)
versions = sorted(set(matches), key=lambda v: list(map(int, v.split('.'))))
releases = [{'version': v} for v in versions]
216 changes: 216 additions & 0 deletions java/microsoft-jdk.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
<?xml version="1.0" ?>
<interface xmlns="http://zero-install.sourceforge.net/2004/injector/interface" uri="https://apps.0install.net/java/microsoft-jdk.xml">
<name>Microsoft Build of OpenJDK</name>
<summary>Microsoft Build of OpenJDK Development Kit</summary>
<description>The Microsoft Build of OpenJDK is a no-cost distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere.</description>
<homepage>https://learn.microsoft.com/en-us/java/openjdk/</homepage>
<category>Development</category>

<feed-for interface="https://apps.0install.net/java/jdk.xml"/>

<group arch="Linux-x86_64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac"/>
<command name="java" path="bin/java"/>
<command name="javap" path="bin/javap"/>
<command name="jar" path="bin/jar"/>
<command name="jarsigner" path="bin/jarsigner"/>
<command name="javadoc" path="bin/javadoc"/>
<command name="keytool" path="bin/keytool"/>
<command name="rmiregistry" path="bin/rmiregistry"/>
<command name="jrunscript" path="bin/jrunscript"/>
<command name="jcmd" path="bin/jcmd"/>
<command name="jconsole" path="bin/jconsole"/>
<command name="jdb" path="bin/jdb"/>
<command name="jdeprscan" path="bin/jdeprscan"/>
<command name="jdeps" path="bin/jdeps"/>
<command name="jfr" path="bin/jfr"/>
<command name="jhsdb" path="bin/jhsdb"/>
<command name="jimage" path="bin/jimage"/>
<command name="jinfo" path="bin/jinfo"/>
<command name="jlink" path="bin/jlink"/>
<command name="jmap" path="bin/jmap"/>
<command name="jmod" path="bin/jmod"/>
<command name="jps" path="bin/jps"/>
<command name="jshell" path="bin/jshell"/>
<command name="jstack" path="bin/jstack"/>
<command name="jstat" path="bin/jstat"/>
<command name="jstatd" path="bin/jstatd"/>
<command name="serialver" path="bin/serialver"/>
<command name="jpackage" path="bin/jpackage"/>
<command name="jwebserver" path="bin/jwebserver"/>
</group>

<group arch="Linux-aarch64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac"/>
<command name="java" path="bin/java"/>
<command name="javap" path="bin/javap"/>
<command name="jar" path="bin/jar"/>
<command name="jarsigner" path="bin/jarsigner"/>
<command name="javadoc" path="bin/javadoc"/>
<command name="keytool" path="bin/keytool"/>
<command name="rmiregistry" path="bin/rmiregistry"/>
<command name="jrunscript" path="bin/jrunscript"/>
<command name="jcmd" path="bin/jcmd"/>
<command name="jconsole" path="bin/jconsole"/>
<command name="jdb" path="bin/jdb"/>
<command name="jdeprscan" path="bin/jdeprscan"/>
<command name="jdeps" path="bin/jdeps"/>
<command name="jfr" path="bin/jfr"/>
<command name="jhsdb" path="bin/jhsdb"/>
<command name="jimage" path="bin/jimage"/>
<command name="jinfo" path="bin/jinfo"/>
<command name="jlink" path="bin/jlink"/>
<command name="jmap" path="bin/jmap"/>
<command name="jmod" path="bin/jmod"/>
<command name="jps" path="bin/jps"/>
<command name="jshell" path="bin/jshell"/>
<command name="jstack" path="bin/jstack"/>
<command name="jstat" path="bin/jstat"/>
<command name="jstatd" path="bin/jstatd"/>
<command name="serialver" path="bin/serialver"/>
<command name="jpackage" path="bin/jpackage"/>
<command name="jwebserver" path="bin/jwebserver"/>
</group>

<group arch="MacOSX-x86_64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac"/>
<command name="java" path="bin/java"/>
<command name="javap" path="bin/javap"/>
<command name="jar" path="bin/jar"/>
<command name="jarsigner" path="bin/jarsigner"/>
<command name="javadoc" path="bin/javadoc"/>
<command name="keytool" path="bin/keytool"/>
<command name="rmiregistry" path="bin/rmiregistry"/>
<command name="jrunscript" path="bin/jrunscript"/>
<command name="jcmd" path="bin/jcmd"/>
<command name="jconsole" path="bin/jconsole"/>
<command name="jdb" path="bin/jdb"/>
<command name="jdeprscan" path="bin/jdeprscan"/>
<command name="jdeps" path="bin/jdeps"/>
<command name="jfr" path="bin/jfr"/>
<command name="jhsdb" path="bin/jhsdb"/>
<command name="jimage" path="bin/jimage"/>
<command name="jinfo" path="bin/jinfo"/>
<command name="jlink" path="bin/jlink"/>
<command name="jmap" path="bin/jmap"/>
<command name="jmod" path="bin/jmod"/>
<command name="jps" path="bin/jps"/>
<command name="jshell" path="bin/jshell"/>
<command name="jstack" path="bin/jstack"/>
<command name="jstat" path="bin/jstat"/>
<command name="jstatd" path="bin/jstatd"/>
<command name="serialver" path="bin/serialver"/>
<command name="jpackage" path="bin/jpackage"/>
<command name="jwebserver" path="bin/jwebserver"/>
</group>

<group arch="MacOSX-aarch64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac"/>
<command name="java" path="bin/java"/>
<command name="javap" path="bin/javap"/>
<command name="jar" path="bin/jar"/>
<command name="jarsigner" path="bin/jarsigner"/>
<command name="javadoc" path="bin/javadoc"/>
<command name="keytool" path="bin/keytool"/>
<command name="rmiregistry" path="bin/rmiregistry"/>
<command name="jrunscript" path="bin/jrunscript"/>
<command name="jcmd" path="bin/jcmd"/>
<command name="jconsole" path="bin/jconsole"/>
<command name="jdb" path="bin/jdb"/>
<command name="jdeprscan" path="bin/jdeprscan"/>
<command name="jdeps" path="bin/jdeps"/>
<command name="jfr" path="bin/jfr"/>
<command name="jhsdb" path="bin/jhsdb"/>
<command name="jimage" path="bin/jimage"/>
<command name="jinfo" path="bin/jinfo"/>
<command name="jlink" path="bin/jlink"/>
<command name="jmap" path="bin/jmap"/>
<command name="jmod" path="bin/jmod"/>
<command name="jps" path="bin/jps"/>
<command name="jshell" path="bin/jshell"/>
<command name="jstack" path="bin/jstack"/>
<command name="jstat" path="bin/jstat"/>
<command name="jstatd" path="bin/jstatd"/>
<command name="serialver" path="bin/serialver"/>
<command name="jpackage" path="bin/jpackage"/>
<command name="jwebserver" path="bin/jwebserver"/>
</group>

<group arch="Windows-x86_64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac.exe"/>
<command name="java" path="bin/java.exe"/>
<command name="java-gui" path="bin/javaw.exe"/>
<command name="javadoc" path="bin/javadoc.exe"/>
<command name="javap" path="bin/javap.exe"/>
<command name="jar" path="bin/jar.exe"/>
<command name="jarsigner" path="bin/jarsigner.exe"/>
<command name="keytool" path="bin/keytool.exe"/>
<command name="rmiregistry" path="bin/rmiregistry.exe"/>
<command name="jrunscript" path="bin/jrunscript.exe"/>
<command name="jcmd" path="bin/jcmd.exe"/>
<command name="jconsole" path="bin/jconsole.exe"/>
<command name="jdb" path="bin/jdb.exe"/>
<command name="jdeprscan" path="bin/jdeprscan.exe"/>
<command name="jdeps" path="bin/jdeps.exe"/>
<command name="jfr" path="bin/jfr.exe"/>
<command name="jhsdb" path="bin/jhsdb.exe"/>
<command name="jimage" path="bin/jimage.exe"/>
<command name="jinfo" path="bin/jinfo.exe"/>
<command name="jlink" path="bin/jlink.exe"/>
<command name="jmap" path="bin/jmap.exe"/>
<command name="jmod" path="bin/jmod.exe"/>
<command name="jps" path="bin/jps.exe"/>
<command name="jshell" path="bin/jshell.exe"/>
<command name="jstack" path="bin/jstack.exe"/>
<command name="jstat" path="bin/jstat.exe"/>
<command name="jstatd" path="bin/jstatd.exe"/>
<command name="serialver" path="bin/serialver.exe"/>
<command name="kinit" path="bin/kinit.exe"/>
<command name="klist" path="bin/klist.exe"/>
<command name="ktab" path="bin/ktab.exe"/>
<command name="jabswitch" path="bin/jabswitch.exe"/>
<command name="jaccessinspector" path="bin/jaccessinspector.exe"/>
<command name="jaccesswalker" path="bin/jaccesswalker.exe"/>
<command name="jpackage" path="bin/jpackage.exe"/>
<command name="jwebserver" path="bin/jwebserver.exe"/>
</group>

<group arch="Windows-aarch64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac.exe"/>
<command name="java" path="bin/java.exe"/>
<command name="java-gui" path="bin/javaw.exe"/>
<command name="javadoc" path="bin/javadoc.exe"/>
<command name="javap" path="bin/javap.exe"/>
<command name="jar" path="bin/jar.exe"/>
<command name="jarsigner" path="bin/jarsigner.exe"/>
<command name="keytool" path="bin/keytool.exe"/>
<command name="rmiregistry" path="bin/rmiregistry.exe"/>
<command name="jrunscript" path="bin/jrunscript.exe"/>
<command name="jcmd" path="bin/jcmd.exe"/>
<command name="jconsole" path="bin/jconsole.exe"/>
<command name="jdb" path="bin/jdb.exe"/>
<command name="jdeprscan" path="bin/jdeprscan.exe"/>
<command name="jdeps" path="bin/jdeps.exe"/>
<command name="jfr" path="bin/jfr.exe"/>
<command name="jhsdb" path="bin/jhsdb.exe"/>
<command name="jimage" path="bin/jimage.exe"/>
<command name="jinfo" path="bin/jinfo.exe"/>
<command name="jlink" path="bin/jlink.exe"/>
<command name="jmap" path="bin/jmap.exe"/>
<command name="jmod" path="bin/jmod.exe"/>
<command name="jps" path="bin/jps.exe"/>
<command name="jshell" path="bin/jshell.exe"/>
<command name="jstack" path="bin/jstack.exe"/>
<command name="jstat" path="bin/jstat.exe"/>
<command name="jstatd" path="bin/jstatd.exe"/>
<command name="serialver" path="bin/serialver.exe"/>
<command name="kinit" path="bin/kinit.exe"/>
<command name="klist" path="bin/klist.exe"/>
<command name="ktab" path="bin/ktab.exe"/>
<command name="jabswitch" path="bin/jabswitch.exe"/>
<command name="jaccessinspector" path="bin/jaccessinspector.exe"/>
<command name="jaccesswalker" path="bin/jaccesswalker.exe"/>
<command name="jpackage" path="bin/jpackage.exe"/>
<command name="jwebserver" path="bin/jwebserver.exe"/>
</group>
</interface>
147 changes: 147 additions & 0 deletions java/microsoft-jdk.xml.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<interface xmlns="http://zero-install.sourceforge.net/2004/injector/interface">
<name>Microsoft Build of OpenJDK</name>
<summary>Microsoft Build of OpenJDK Development Kit</summary>
<description>The Microsoft Build of OpenJDK is a no-cost distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere.</description>
<homepage>https://learn.microsoft.com/en-us/java/openjdk/</homepage>
<category>Development</category>

<feed-for interface="https://apps.0install.net/java/microsoft-jdk.xml"/>

<group license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac"/>
<command name="java" path="bin/java"/>
<command name="javap" path="bin/javap"/>
<command name="jar" path="bin/jar"/>
<command name="jarsigner" path="bin/jarsigner"/>
<command name="javadoc" path="bin/javadoc"/>
<command name="keytool" path="bin/keytool"/>
<command name="rmiregistry" path="bin/rmiregistry"/>
<command name="jrunscript" path="bin/jrunscript"/>
<command name="jcmd" path="bin/jcmd"/>
<command name="jconsole" path="bin/jconsole"/>
<command name="jdb" path="bin/jdb"/>
<command name="jdeprscan" path="bin/jdeprscan"/>
<command name="jdeps" path="bin/jdeps"/>
<command name="jfr" path="bin/jfr"/>
<command name="jhsdb" path="bin/jhsdb"/>
<command name="jimage" path="bin/jimage"/>
<command name="jinfo" path="bin/jinfo"/>
<command name="jlink" path="bin/jlink"/>
<command name="jmap" path="bin/jmap"/>
<command name="jmod" path="bin/jmod"/>
<command name="jps" path="bin/jps"/>
<command name="jshell" path="bin/jshell"/>
<command name="jstack" path="bin/jstack"/>
<command name="jstat" path="bin/jstat"/>
<command name="jstatd" path="bin/jstatd"/>
<command name="serialver" path="bin/serialver"/>
<command name="jpackage" path="bin/jpackage"/>
<command name="jwebserver" path="bin/jwebserver"/>

<implementation arch="Linux-x86_64" version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-linux-x64.tar.gz" type="application/x-compressed-tar" extract="jdk-{version}"/>
</implementation>
<implementation arch="Linux-aarch64" version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-linux-aarch64.tar.gz" type="application/x-compressed-tar" extract="jdk-{version}"/>
</implementation>
<implementation arch="MacOSX-x86_64" version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-macos-x64.tar.gz" type="application/x-compressed-tar" extract="jdk-{version}"/>
</implementation>
<implementation arch="MacOSX-aarch64" version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-macos-aarch64.tar.gz" type="application/x-compressed-tar" extract="jdk-{version}"/>
</implementation>
</group>

<group arch="Windows-x86_64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac.exe"/>
<command name="java" path="bin/java.exe"/>
<command name="java-gui" path="bin/javaw.exe"/>
<command name="javadoc" path="bin/javadoc.exe"/>
<command name="javap" path="bin/javap.exe"/>
<command name="jar" path="bin/jar.exe"/>
<command name="jarsigner" path="bin/jarsigner.exe"/>
<command name="keytool" path="bin/keytool.exe"/>
<command name="rmiregistry" path="bin/rmiregistry.exe"/>
<command name="jrunscript" path="bin/jrunscript.exe"/>
<command name="jcmd" path="bin/jcmd.exe"/>
<command name="jconsole" path="bin/jconsole.exe"/>
<command name="jdb" path="bin/jdb.exe"/>
<command name="jdeprscan" path="bin/jdeprscan.exe"/>
<command name="jdeps" path="bin/jdeps.exe"/>
<command name="jfr" path="bin/jfr.exe"/>
<command name="jhsdb" path="bin/jhsdb.exe"/>
<command name="jimage" path="bin/jimage.exe"/>
<command name="jinfo" path="bin/jinfo.exe"/>
<command name="jlink" path="bin/jlink.exe"/>
<command name="jmap" path="bin/jmap.exe"/>
<command name="jmod" path="bin/jmod.exe"/>
<command name="jps" path="bin/jps.exe"/>
<command name="jshell" path="bin/jshell.exe"/>
<command name="jstack" path="bin/jstack.exe"/>
<command name="jstat" path="bin/jstat.exe"/>
<command name="jstatd" path="bin/jstatd.exe"/>
<command name="serialver" path="bin/serialver.exe"/>
<command name="kinit" path="bin/kinit.exe"/>
<command name="klist" path="bin/klist.exe"/>
<command name="ktab" path="bin/ktab.exe"/>
<command name="jabswitch" path="bin/jabswitch.exe"/>
<command name="jaccessinspector" path="bin/jaccessinspector.exe"/>
<command name="jaccesswalker" path="bin/jaccesswalker.exe"/>
<command name="jpackage" path="bin/jpackage.exe"/>
<command name="jwebserver" path="bin/jwebserver.exe"/>

<implementation version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-windows-x64.zip" type="application/zip" extract="jdk-{version}"/>
</implementation>
</group>

<group arch="Windows-aarch64" license="GNU General Public License, version 2, with the Classpath Exception">
<command name="run" path="bin/javac.exe"/>
<command name="java" path="bin/java.exe"/>
<command name="java-gui" path="bin/javaw.exe"/>
<command name="javadoc" path="bin/javadoc.exe"/>
<command name="javap" path="bin/javap.exe"/>
<command name="jar" path="bin/jar.exe"/>
<command name="jarsigner" path="bin/jarsigner.exe"/>
<command name="keytool" path="bin/keytool.exe"/>
<command name="rmiregistry" path="bin/rmiregistry.exe"/>
<command name="jrunscript" path="bin/jrunscript.exe"/>
<command name="jcmd" path="bin/jcmd.exe"/>
<command name="jconsole" path="bin/jconsole.exe"/>
<command name="jdb" path="bin/jdb.exe"/>
<command name="jdeprscan" path="bin/jdeprscan.exe"/>
<command name="jdeps" path="bin/jdeps.exe"/>
<command name="jfr" path="bin/jfr.exe"/>
<command name="jhsdb" path="bin/jhsdb.exe"/>
<command name="jimage" path="bin/jimage.exe"/>
<command name="jinfo" path="bin/jinfo.exe"/>
<command name="jlink" path="bin/jlink.exe"/>
<command name="jmap" path="bin/jmap.exe"/>
<command name="jmod" path="bin/jmod.exe"/>
<command name="jps" path="bin/jps.exe"/>
<command name="jshell" path="bin/jshell.exe"/>
<command name="jstack" path="bin/jstack.exe"/>
<command name="jstat" path="bin/jstat.exe"/>
<command name="jstatd" path="bin/jstatd.exe"/>
<command name="serialver" path="bin/serialver.exe"/>
<command name="kinit" path="bin/kinit.exe"/>
<command name="klist" path="bin/klist.exe"/>
<command name="ktab" path="bin/ktab.exe"/>
<command name="jabswitch" path="bin/jabswitch.exe"/>
<command name="jaccessinspector" path="bin/jaccessinspector.exe"/>
<command name="jaccesswalker" path="bin/jaccesswalker.exe"/>
<command name="jpackage" path="bin/jpackage.exe"/>
<command name="jwebserver" path="bin/jwebserver.exe"/>

<implementation version="{version}" stability="stable">
<manifest-digest/>
<archive href="https://aka.ms/download-jdk/microsoft-jdk-{version}-windows-aarch64.zip" type="application/zip" extract="jdk-{version}"/>
</implementation>
</group>
</interface>
25 changes: 25 additions & 0 deletions java/temurin-jdk.watch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from urllib import request
import json

def adoptium_api(path):
req = request.Request('https://api.adoptium.net/v3/' + path)
req.add_header('User-Agent', '0watch')
return json.loads(request.urlopen(req).read())

available = adoptium_api('info/available_releases')

releases = []
for feature_version in available['available_releases']:
try:
assets = adoptium_api(
'assets/latest/%d/hotspot?architecture=x64&image_type=jdk&os=linux&vendor=eclipse' % feature_version
)
if assets:
version = assets[0]['version']
releases.append({
'version': '%d.%d.%d' % (version['major'], version['minor'], version['security']),
'build': str(version['build']),
'major': str(version['major']),
})
except Exception:
pass
Loading
Loading