diff options
author | skydrome | 2020-01-31 03:26:55 -0500 |
---|---|---|
committer | skydrome | 2020-01-31 03:26:55 -0500 |
commit | c7502ccdeb991d8072dd00baa1ff4b672b2e6627 (patch) | |
tree | a851cda7699969b26bf558ad0e1fe500d2429acc | |
parent | 0d47a1ff8985103cf2f5e78bdfe0983bbf2e21ad (diff) | |
download | aur-c7502ccdeb991d8072dd00baa1ff4b672b2e6627.tar.gz |
update
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | PKGBUILD | 63 | ||||
-rw-r--r-- | add_mlbnetwork.patch | 56 | ||||
-rw-r--r-- | config.properties | 2 | ||||
-rw-r--r-- | remove_privileged_actions.patch | 179 | ||||
-rw-r--r-- | update-to-java-13.patch | 1707 |
7 files changed, 1753 insertions, 276 deletions
@@ -1,35 +1,34 @@ pkgbase = lazyman-git pkgdesc = A simple program that lets you stream every NHL and MLB game - pkgver = 2.3.1.20180418 - pkgrel = 1 + pkgver = 2.4.0.20191028 + pkgrel = 2 url = https://github.com/StevensNJD4/LazyMan - install = lazyman.install arch = any license = GPL2 makedepends = java-environment>=8 makedepends = apache-ant + makedepends = go makedepends = git depends = java-runtime>=8 depends = streamlink depends = mpv - depends = ldns provides = lazyman conflicts = lazyman backup = usr/share/java/lazyman/config.properties source = git+https://github.com/StevensNJD4/LazyMan.git - source = remove_privileged_actions.patch - source = add_mlbnetwork.patch + source = git+https://github.com/jwallet/go-mlbam-proxy.git + source = update-to-java-13.patch source = config.properties source = lazyman.sh - source = lazyman.desktop source = lazyman.png + source = lazyman.desktop + md5sums = SKIP md5sums = SKIP - md5sums = e48d71e6d053df2516cdb98fa59571b0 - md5sums = dfdda6e67f8400fb478e2def13486950 - md5sums = 184afd99d5106bbb81c72be5e88ec4d2 + md5sums = 96d5ba5fd23360767fb365b46c0bfc3e + md5sums = 16522ba6bdc10dfa827e0d8afbfd3c2e md5sums = b76d76bc5941418f8f3048b941fa8228 - md5sums = 1b259947cc8e14cd1b0bcad4d05094d9 md5sums = 41aebb968e8b6856d1b73cabd6a8c5d2 + md5sums = 1b259947cc8e14cd1b0bcad4d05094d9 pkgname = lazyman-git diff --git a/.gitignore b/.gitignore index e5d51d75b3fb..ab0b7fb83919 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ src/ pkg/ LazyMan/ +go-mlbam-proxy/ *.pkg.tar @@ -3,62 +3,67 @@ # Contributor: StevensNJD4 <github dot com slash StevensNJD4> pkgname=lazyman-git -pkgver=2.3.1.20180418 -pkgrel=1 +pkgver=2.4.0.20191028 +pkgrel=2 pkgdesc="A simple program that lets you stream every NHL and MLB game" url="https://github.com/StevensNJD4/LazyMan" license=('GPL2') arch=('any') -depends=('java-runtime>=8' 'streamlink' 'mpv' 'ldns') -makedepends=('java-environment>=8' 'apache-ant' 'git') +depends=('java-runtime>=8' 'streamlink' 'mpv') +makedepends=('java-environment>=8' 'apache-ant' 'go' 'git') provides=('lazyman') conflicts=('lazyman') -install='lazyman.install' backup=('usr/share/java/lazyman/config.properties') source=('git+https://github.com/StevensNJD4/LazyMan.git' - 'remove_privileged_actions.patch' - 'add_mlbnetwork.patch' + 'git+https://github.com/jwallet/go-mlbam-proxy.git' + 'update-to-java-13.patch' 'config.properties' - 'lazyman.sh' - 'lazyman.desktop' - 'lazyman.png') + lazyman.{sh,png,desktop}) + md5sums=('SKIP' - 'e48d71e6d053df2516cdb98fa59571b0' - 'dfdda6e67f8400fb478e2def13486950' - '184afd99d5106bbb81c72be5e88ec4d2' + 'SKIP' + '96d5ba5fd23360767fb365b46c0bfc3e' + '16522ba6bdc10dfa827e0d8afbfd3c2e' 'b76d76bc5941418f8f3048b941fa8228' - '1b259947cc8e14cd1b0bcad4d05094d9' - '41aebb968e8b6856d1b73cabd6a8c5d2') + '41aebb968e8b6856d1b73cabd6a8c5d2' + '1b259947cc8e14cd1b0bcad4d05094d9') pkgver() { - cd "$srcdir/LazyMan" + cd LazyMan cat VERSION } prepare() { - cd "$srcdir/LazyMan" - #patch -Np0 -i "../remove_privileged_actions.patch" - #patch -Np0 -i "../add_mlbnetwork.patch" + cd LazyMan + patch -Np1 -i ../update-to-java-13.patch + + sed -i src/Objects/Proxy.java \ + -e 's|mitm = "linux".*|mitm = "mlbamproxy";|' } build() { - cd "$srcdir/LazyMan" + cd LazyMan rm -rf build dist store - ant -Dplatforms.JDK_1.8.home=/usr/lib/jvm/default jar + ant jar + + cd ../go-mlbam-proxy + go build -o ../LazyMan/mlbamproxy } package() { - cd "$srcdir" + cd LazyMan install -dm755 "$pkgdir"/usr/bin install -dm755 "$pkgdir"/usr/share/applications install -dm755 "$pkgdir"/usr/share/icons - install -dm777 "$pkgdir"/usr/share/java/lazyman install -dm755 "$pkgdir"/usr/share/java/lazyman/lib - install -Dm755 lazyman.sh "$pkgdir"/usr/bin/lazyman - install -Dm644 lazyman.desktop "$pkgdir"/usr/share/applications/lazyman.desktop - install -Dm644 lazyman.png "$pkgdir"/usr/share/icons/lazyman.png - install -Dm777 config.properties "$pkgdir"/usr/share/java/lazyman/config.properties - install -Dm644 LazyMan/dist/LazyMan.jar "$pkgdir"/usr/share/java/lazyman/LazyMan.jar - install -Dm644 LazyMan/src/lazyman/*.jar "$pkgdir"/usr/share/java/lazyman/lib/ + + install -Dm644 dist/LazyMan.jar "$pkgdir"/usr/share/java/lazyman/LazyMan.jar + install -Dm644 src/lazyman/*.jar "$pkgdir"/usr/share/java/lazyman/lib/ + install -Dm755 mlbamproxy "$pkgdir"/usr/share/java/lazyman/mlbamproxy/mlbamproxy + + install -Dm755 ../lazyman.sh "$pkgdir"/usr/bin/lazyman + install -Dm644 ../lazyman.desktop "$pkgdir"/usr/share/applications/lazyman.desktop + install -Dm644 ../lazyman.png "$pkgdir"/usr/share/icons/lazyman.png + install -Dm777 ../config.properties "$pkgdir"/usr/share/java/lazyman/config.properties } diff --git a/add_mlbnetwork.patch b/add_mlbnetwork.patch deleted file mode 100644 index c23b7e5f41af..000000000000 --- a/add_mlbnetwork.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -Naur src/lazyman/MainGUI.java src.b/lazyman/MainGUI.java ---- src/lazyman/MainGUI.java 2018-03-27 15:01:06.810076336 -0400 -+++ src.b/lazyman/MainGUI.java 2018-03-27 15:03:48.667710087 -0400 -@@ -156,9 +156,11 @@ - jMenu2 = new javax.swing.JMenu(); - preferencesMI = new javax.swing.JMenuItem(); - jMenu3 = new javax.swing.JMenu(); -+ jMenu4 = new javax.swing.JMenu(); - guidesMI = new javax.swing.JMenuItem(); - AboutMI = new javax.swing.JMenuItem(); - updateMI = new javax.swing.JMenuItem(); -+ otherstreams = new javax.swing.JMenuItem(); - - consolePM.setLabel("popupMenu1"); - -@@ -560,6 +562,24 @@ - - jMenuBar1.add(jMenu3); - -+ jMenu4.setMnemonic(KeyEvent.VK_H); -+ jMenu4.setText("Other Streams"); -+ -+ otherstreams.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK)); -+ otherstreams.setText("Open MLB Network"); -+ otherstreams.addActionListener(new java.awt.event.ActionListener() { -+ public void actionPerformed(java.awt.event.ActionEvent evt) { -+ Process m; -+ try { -+ m = new ProcessBuilder("/bin/bash", "-c", "mpv http://mlblive-akc.mlb.com/ls01/mlbam/mlb_network/NETWORK_LINEAR_1/master_wired.m3u8").start(); -+ } catch (IOException ex) { -+ ex.printStackTrace(); -+ } -+ } -+ }); -+ jMenu4.add(otherstreams); -+ jMenuBar1.add(jMenu4); -+ - setJMenuBar(jMenuBar1); - - pack(); -@@ -856,6 +876,7 @@ - private javax.swing.JMenu jMenu1; - private javax.swing.JMenu jMenu2; - private javax.swing.JMenu jMenu3; -+ private javax.swing.JMenu jMenu4; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JTabbedPane leaguesTabbedPane; - private javax.swing.JPanel mainPanel; -@@ -877,6 +898,7 @@ - private javax.swing.JCheckBox restartCB; - private javax.swing.JCheckBox saveStreamCB; - private javax.swing.JMenuItem updateMI; -+ private javax.swing.JMenuItem otherstreams; - // End of variables declaration//GEN-END:variables - - class newDay extends Thread { diff --git a/config.properties b/config.properties index 59cd24b5dd67..bbb22fa9fd11 100644 --- a/config.properties +++ b/config.properties @@ -4,6 +4,6 @@ NHLTeam=None Bitrate=best StreamlinkArgs= MLBTeam=None -RefreshRate=0 +RefreshRate=60 SaveStreamLoc=/usr/share/java/lazyman French=0 diff --git a/remove_privileged_actions.patch b/remove_privileged_actions.patch deleted file mode 100644 index fd532756d537..000000000000 --- a/remove_privileged_actions.patch +++ /dev/null @@ -1,179 +0,0 @@ -diff -Naur src/lazyman/MainGUI.java src.b/lazyman/MainGUI.java ---- src/lazyman/MainGUI.java 2018-03-27 14:56:29.846459000 -0400 -+++ src.b/lazyman/MainGUI.java 2018-03-27 14:59:20.640513714 -0400 -@@ -66,9 +66,6 @@ - leagues[i].getDateTF().setDate(Time.getPSTDate1("MMM dd, yyyy")); - leagues[i].setFavoriteTeam(Props.getFavTeam(leagues[i].getName())); - } -- if (System.getProperty("os.name").toLowerCase().contains("win")) { -- changePasswordMI.setVisible(false); -- } - /*else if (System.getProperty("os.name").toLowerCase().contains("mac")) { - com.apple.eawt.Application application = com.apple.eawt.Application.getApplication(); - application.addPreferencesMenuItem(); -@@ -155,12 +152,9 @@ - maximizeConsoleButton = new javax.swing.JButton(); - jMenuBar1 = new javax.swing.JMenuBar(); - jMenu1 = new javax.swing.JMenu(); -- changePasswordMI = new javax.swing.JMenuItem(); - exitMI = new javax.swing.JMenuItem(); - jMenu2 = new javax.swing.JMenu(); - preferencesMI = new javax.swing.JMenuItem(); -- jMenuItem1 = new javax.swing.JMenuItem(); -- jMenuItem2 = new javax.swing.JMenuItem(); - jMenu3 = new javax.swing.JMenu(); - guidesMI = new javax.swing.JMenuItem(); - AboutMI = new javax.swing.JMenuItem(); -@@ -509,15 +503,6 @@ - jMenu1.setMnemonic(KeyEvent.VK_F); - jMenu1.setText("File"); - -- changePasswordMI.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); -- changePasswordMI.setText("Change Password"); -- changePasswordMI.addActionListener(new java.awt.event.ActionListener() { -- public void actionPerformed(java.awt.event.ActionEvent evt) { -- changePasswordMIActionPerformed(evt); -- } -- }); -- jMenu1.add(changePasswordMI); -- - exitMI.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, java.awt.event.InputEvent.ALT_MASK)); - exitMI.setText("Exit"); - exitMI.addActionListener(new java.awt.event.ActionListener() { -@@ -541,23 +526,6 @@ - }); - jMenu2.add(preferencesMI); - -- jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK)); -- jMenuItem1.setText("Change IP"); -- jMenuItem1.addActionListener(new java.awt.event.ActionListener() { -- public void actionPerformed(java.awt.event.ActionEvent evt) { -- jMenuItem1ActionPerformed(evt); -- } -- }); -- jMenu2.add(jMenuItem1); -- -- jMenuItem2.setText("Clear Hosts File"); -- jMenuItem2.addActionListener(new java.awt.event.ActionListener() { -- public void actionPerformed(java.awt.event.ActionEvent evt) { -- jMenuItem2ActionPerformed(evt); -- } -- }); -- jMenu2.add(jMenuItem2); -- - jMenuBar1.add(jMenu2); - - jMenu3.setMnemonic(KeyEvent.VK_H); -@@ -703,12 +671,6 @@ - } - }//GEN-LAST:event_preferencesMIActionPerformed - -- private void changePasswordMIActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changePasswordMIActionPerformed -- GetPasswordGUI gp = new GetPasswordGUI(this, true); -- gp.setLocationRelativeTo(this); -- gp.setVisible(true); -- }//GEN-LAST:event_changePasswordMIActionPerformed -- - private void AboutMIActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AboutMIActionPerformed - AboutGUI a = new AboutGUI(this, true); - a.setLocationRelativeTo(this); -@@ -754,22 +716,6 @@ - leagues[leaguesTabbedPane.getSelectedIndex()].setSelectedGame(0); - }//GEN-LAST:event_NHLNextDayBtnActionPerformed - -- private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed -- CustomIP c = new CustomIP(this, true); -- c.setLocationRelativeTo(this); -- c.setVisible(true); -- }//GEN-LAST:event_jMenuItem1ActionPerformed -- -- private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed -- EditHosts eh = new EditHosts(); -- -- if (eh.clearHosts(leagues)) { -- MessageBox.show("Hosts file cleared from LazyMan edits.", "Hosts File Cleared", 0); -- } else { -- MessageBox.show("Hosts file not cleared from LazyMan edits. Please check the console area.", "Hosts Not File Cleared", 2); -- } -- }//GEN-LAST:event_jMenuItem2ActionPerformed -- - private void MLBPrevDayBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MLBPrevDayBtnActionPerformed - leagues[leaguesTabbedPane.getSelectedIndex()].setFavGameSelected(false); - leagues[leaguesTabbedPane.getSelectedIndex()].setDate(Time.getPrevDay(leagues[leaguesTabbedPane.getSelectedIndex()].getDate())); -@@ -897,7 +843,6 @@ - private javax.swing.JTable NHLGameTable; - private javax.swing.JButton NHLNextDayBtn; - private javax.swing.JButton NHLPrevDayBtn; -- private javax.swing.JMenuItem changePasswordMI; - private javax.swing.JPopupMenu consolePM; - private javax.swing.JPanel consolePanel; - private javax.swing.JScrollPane consoleScrollPane; -@@ -912,8 +857,6 @@ - private javax.swing.JMenu jMenu2; - private javax.swing.JMenu jMenu3; - private javax.swing.JMenuBar jMenuBar1; -- private javax.swing.JMenuItem jMenuItem1; -- private javax.swing.JMenuItem jMenuItem2; - private javax.swing.JTabbedPane leaguesTabbedPane; - private javax.swing.JPanel mainPanel; - private javax.swing.JButton maximizeConsoleButton; -@@ -1456,57 +1399,13 @@ - } - } else { - if (curMajor > major || (curMajor == major && curMinor > minor) || (curMajor == major && curMinor >= minor && curPatch > patch) || (curMajor == major && curMinor >= minor && curPatch >= patch && curBuild > build)) { -- if (MessageBox.ask("New stable update available!\nWould you like to update", "New Update!") == MessageBox.yesOption()) { -- SwingWorker<Void, Void> u = updating(); -- u.execute(); -- if (AutoUpdate.download(version)) { -- if (AutoUpdate.unZipIt()) { -- String loc; -- -- if (!System.getProperty("os.name").toLowerCase().contains("linux")) { -- loc = Paths.get(".").toAbsolutePath().normalize().toString() + System.getProperty("file.separator"); -- if (System.getProperty("os.name").toLowerCase().contains("win")) { -- loc += "LazyMan.exe"; -- } else { -- loc += "LazyMan.jar"; -- } -- } else { -- loc = new java.io.File(Props.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent() + System.getProperty("file.separator") + "LazyMan.jar"; -- } -- Runtime.getRuntime().exec("java -jar " + loc); -- System.exit(0); -- } -- } -- MessageBox.show("Could not automatically update. Please manually update.", "Could not automatically update", 2); -- } -+ MessageBox.show("New update available. Please manually update", version, build); - } else { - version = Web.getContent("https://raw.githubusercontent.com/StevensNJD4/LazyMan/master/VERSIONBETA").replace(" BETA", "").trim(); - String[] curVerB = version.split("\\."); - int curMajorB = Integer.parseInt(curVerB[0]), curMinorB = Integer.parseInt(curVerB[1]), curPatchB = Integer.parseInt(curVerB[2]), curBuildB = Integer.parseInt(curVerB[3]); - if (curMajorB > major || (curMajorB == major && curMinorB > minor) || (curMajorB == major && curMinorB >= minor && curPatchB > patch) || (curMajorB == major && curMinorB >= minor && curPatchB >= patch && curBuildB > build)) { -- if (MessageBox.ask("New beta update available!\nWould you like to update?", "New Update!") == MessageBox.yesOption()) { -- SwingWorker<Void, Void> u = updating(); -- u.execute(); -- if (AutoUpdate.download(version)) { -- if (AutoUpdate.unZipIt()) { -- String loc; -- -- if (!System.getProperty("os.name").toLowerCase().contains("linux")) { -- loc = Paths.get(".").toAbsolutePath().normalize().toString() + System.getProperty("file.separator"); -- if (System.getProperty("os.name").toLowerCase().contains("win")) { -- loc += "LazyMan.exe"; -- } else { -- loc += "LazyMan.jar"; -- } -- } else { -- loc = new java.io.File(Props.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent() + System.getProperty("file.separator") + "LazyMan.jar"; -- } -- Runtime.getRuntime().exec("java -jar " + loc); -- System.exit(0); -- } -- } -- MessageBox.show("Could not automatically update. Please manually update.", "Could not automatically update", 2); -- } -+ MessageBox.show("New beta update available", version, build); - } else { - updateMI.setVisible(false); - } diff --git a/update-to-java-13.patch b/update-to-java-13.patch new file mode 100644 index 000000000000..203682d3d03a --- /dev/null +++ b/update-to-java-13.patch @@ -0,0 +1,1707 @@ +From 138a8a083e80b3432312df7cf6e1a499e782810c Mon Sep 17 00:00:00 2001 +From: StevensNJD4 <ntyler1092@gmail.com> +Date: Mon, 28 Oct 2019 13:59:22 -0400 +Subject: [PATCH 1/3] Update to Java 13 + +--- + nbproject/build-impl.xml | 767 +++++++++++++++++++-------- + nbproject/genfiles.properties | 6 +- + nbproject/private/private.properties | 4 +- + nbproject/private/private.xml | 13 +- + nbproject/project.properties | 36 +- + nbproject/project.xml | 1 - + 7 files changed, 591 insertions(+), 238 deletions(-) + +diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml +index b493ca0..4eec7d6 100644 +--- a/nbproject/build-impl.xml ++++ b/nbproject/build-impl.xml +@@ -19,7 +19,7 @@ is divided into following sections: + - cleanup + + --> +-<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="LazyMan-impl"> ++<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="LazyMan-impl"> + <fail message="Please build using Ant 1.8.0 or higher."> + <condition> + <not> +@@ -46,51 +46,80 @@ is divided into following sections: + <property file="${user.properties.file}"/> + <!-- The two properties below are usually overridden --> + <!-- by the active platform. Just a fallback. --> +- <property name="default.javac.source" value="1.4"/> +- <property name="default.javac.target" value="1.4"/> ++ <property name="default.javac.source" value="1.8"/> ++ <property name="default.javac.target" value="1.8"/> + </target> + <target depends="-pre-init,-init-private,-init-user" name="-init-project"> + <property file="nbproject/configs/${config}.properties"/> + <property file="nbproject/project.properties"/> + </target> +- <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> +- <j2seproject1:property name="platform.home" value="platforms.${platform.active}.home"/> +- <j2seproject1:property name="platform.bootcp" value="platforms.${platform.active}.bootclasspath"/> +- <j2seproject1:property name="platform.compiler" value="platforms.${platform.active}.compile"/> +- <j2seproject1:property name="platform.javac.tmp" value="platforms.${platform.active}.javac"/> +- <condition property="platform.javac" value="${platform.home}/bin/javac"> +- <equals arg1="${platform.javac.tmp}" arg2="$${platforms.${platform.active}.javac}"/> ++ <target name="-init-modules-supported"> ++ <condition property="modules.supported.internal" value="true"> ++ <not> ++ <matches pattern="1\.[0-8](\..*)?" string="${javac.source}"/> ++ </not> + </condition> +- <property name="platform.javac" value="${platform.javac.tmp}"/> +- <j2seproject1:property name="platform.java.tmp" value="platforms.${platform.active}.java"/> +- <condition property="platform.java" value="${platform.home}/bin/java"> +- <equals arg1="${platform.java.tmp}" arg2="$${platforms.${platform.active}.java}"/> ++ </target> ++ <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-modulename"> ++ <macrodef name="modulename" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <attribute name="property"/> ++ <attribute name="sourcepath"/> ++ <sequential> ++ <loadresource property="@{property}" quiet="true"> ++ <javaresource classpath="@{sourcepath}" name="module-info.java" parentFirst="false"/> ++ <filterchain> ++ <stripjavacomments/> ++ <linecontainsregexp> ++ <regexp pattern="module .* \{"/> ++ </linecontainsregexp> ++ <tokenfilter> ++ <linetokenizer/> ++ <replaceregex flags="s" pattern="(\s*module\s+)(\S*)(\s*\{.*)" replace="\2"/> ++ </tokenfilter> ++ <striplinebreaks/> ++ </filterchain> ++ </loadresource> ++ </sequential> ++ </macrodef> ++ </target> ++ <target depends="-init-modules-supported,-init-macrodef-modulename" if="modules.supported.internal" name="-init-source-module-properties"> ++ <fail message="Java 9 support requires Ant 1.10.0 or higher."> ++ <condition> ++ <not> ++ <antversion atleast="1.10.0"/> ++ </not> ++ </condition> ++ </fail> ++ <j2seproject3:modulename property="module.name" sourcepath="${src.dir}:${src.resources.dir}"/> ++ <condition property="named.module.internal"> ++ <and> ++ <isset property="module.name"/> ++ <length length="0" string="${module.name}" when="greater"/> ++ </and> + </condition> +- <property name="platform.java" value="${platform.java.tmp}"/> +- <j2seproject1:property name="platform.javadoc.tmp" value="platforms.${platform.active}.javadoc"/> +- <condition property="platform.javadoc" value="${platform.home}/bin/javadoc"> +- <equals arg1="${platform.javadoc.tmp}" arg2="$${platforms.${platform.active}.javadoc}"/> ++ <condition property="unnamed.module.internal"> ++ <not> ++ <isset property="named.module.internal"/> ++ </not> + </condition> +- <property name="platform.javadoc" value="${platform.javadoc.tmp}"/> +- <condition property="platform.invalid" value="true"> +- <or> +- <contains string="${platform.javac}" substring="$${platforms."/> +- <contains string="${platform.java}" substring="$${platforms."/> +- <contains string="${platform.javadoc}" substring="$${platforms."/> +- </or> ++ <property name="javac.modulepath" value=""/> ++ <property name="run.modulepath" value="${javac.modulepath}"/> ++ <property name="module.build.classes.dir" value="${build.classes.dir}"/> ++ <property name="debug.modulepath" value="${run.modulepath}"/> ++ <property name="javac.upgrademodulepath" value=""/> ++ <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/> ++ <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="--system '${javac.systemmodulepath}'"> ++ <and> ++ <isset property="javac.systemmodulepath"/> ++ <length length="0" string="${javac.systemmodulepath}" when="greater"/> ++ </and> + </condition> +- <fail unless="platform.home">Must set platform.home</fail> +- <fail unless="platform.bootcp">Must set platform.bootcp</fail> +- <fail unless="platform.java">Must set platform.java</fail> +- <fail unless="platform.javac">Must set platform.javac</fail> +- <fail if="platform.invalid"> +- The J2SE Platform is not correctly set up. +- Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. +- Either open the project in the IDE and setup the Platform with the same name or add it manually. +- For example like this: +- ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) +- or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) +- </fail> ++ <property name="dist.jlink.dir" value="${dist.dir}/jlink"/> ++ <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/> ++ <property name="module.name" value=""/> ++ </target> ++ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property,-init-modules-supported" name="-do-init"> ++ <property name="platform.java" value="${java.home}/bin/java"/> + <available file="${manifest.file}" property="manifest.available"/> + <condition property="splashscreen.available"> + <and> +@@ -112,7 +141,9 @@ is divided into following sections: + <and> + <isset property="javac.profile"/> + <length length="0" string="${javac.profile}" when="greater"/> +- <matches pattern="1\.[89](\..*)?" string="${javac.source}"/> ++ <not> ++ <matches pattern="1\.[0-7](\..*)?" string="${javac.source}"/> ++ </not> + </and> + </condition> + <condition property="do.archive"> +@@ -123,15 +154,6 @@ is divided into following sections: + <istrue value="${not.archive.disabled}"/> + </or> + </condition> +- <condition property="do.mkdist"> +- <and> +- <isset property="do.archive"/> +- <isset property="libs.CopyLibs.classpath"/> +- <not> +- <istrue value="${mkdist.disabled}"/> +- </not> +- </and> +- </condition> + <condition property="do.archive+manifest.available"> + <and> + <isset property="manifest.available"/> +@@ -193,6 +215,7 @@ is divided into following sections: + <property name="application.args" value=""/> + <property name="source.encoding" value="${file.encoding}"/> + <property name="runtime.encoding" value="${source.encoding}"/> ++ <property name="manifest.encoding" value="${source.encoding}"/> + <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> + <and> + <isset property="javadoc.encoding"/> +@@ -220,6 +243,20 @@ is divided into following sections: + <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> + <isset property="profile.available"/> + </condition> ++ <condition else="false" property="jdkBug6558476"> ++ <and> ++ <matches pattern="1\.[56]" string="${java.specification.version}"/> ++ <not> ++ <os family="unix"/> ++ </not> ++ </and> ++ </condition> ++ <condition else="false" property="javac.fork"> ++ <or> ++ <istrue value="${jdkBug6558476}"/> ++ <istrue value="${javac.external.vm}"/> ++ </or> ++ </condition> + <property name="jar.index" value="false"/> + <property name="jar.index.metainf" value="${jar.index}"/> + <property name="copylibs.rebase" value="true"/> +@@ -273,11 +310,80 @@ is divided into following sections: + </sequential> + </macrodef> + </target> +- <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors"> ++ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module"> ++ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <attribute default="${src.dir}:${src.resources.dir}" name="srcdir"/> ++ <attribute default="${build.classes.dir}" name="destdir"/> ++ <attribute default="${javac.classpath}" name="classpath"/> ++ <attribute default="${javac.modulepath}" name="modulepath"/> ++ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> ++ <attribute default="${javac.processorpath}" name="processorpath"/> ++ <attribute default="${javac.processormodulepath}" name="processormodulepath"/> ++ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> ++ <attribute default="${includes}" name="includes"/> ++ <attribute default="${excludes}" name="excludes"/> ++ <attribute default="${javac.debug}" name="debug"/> ++ <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/> ++ <attribute default="${src.dir}:${src.resources.dir}" if:set="named.module.internal" name="sourcepath"/> ++ <attribute default="${empty.dir}" name="gensrcdir"/> ++ <element name="customize" optional="true"/> ++ <sequential> ++ <condition property="warn.excludes.internal"> ++ <and> ++ <isset property="named.module.internal"/> ++ <length length="0" string="@{excludes}" trim="true" when="greater"/> ++ </and> ++ </condition> ++ <echo if:set="warn.excludes.internal" level="warning" message="The javac excludes are not supported in the JDK 9 Named Module."/> ++ <property location="${build.dir}/empty" name="empty.dir"/> ++ <mkdir dir="${empty.dir}"/> ++ <mkdir dir="@{apgeneratedsrcdir}"/> ++ <condition property="processormodulepath.set"> ++ <resourcecount count="0" when="greater"> ++ <path> ++ <pathelement path="@{processormodulepath}"/> ++ </path> ++ </resourcecount> ++ </condition> ++ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> ++ <src> ++ <dirset dir="@{gensrcdir}" erroronmissingdir="false"> ++ <include name="*"/> ++ </dirset> ++ </src> ++ <classpath> ++ <path path="@{classpath}"/> ++ </classpath> ++ <modulepath> ++ <path path="@{modulepath}"/> ++ </modulepath> ++ <upgrademodulepath> ++ <path path="@{upgrademodulepath}"/> ++ </upgrademodulepath> ++ <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/> ++ <compilerarg line="${javac.profile.cmd.line.arg}"/> ++ <compilerarg line="${javac.compilerargs}"/> ++ <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/> ++ <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/> ++ <compilerarg unless:set="processormodulepath.set" value="-processorpath"/> ++ <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/> ++ <compilerarg line="${ap.processors.internal}"/> ++ <compilerarg line="${annotation.processing.processor.options}"/> ++ <compilerarg value="-s"/> ++ <compilerarg path="@{apgeneratedsrcdir}"/> ++ <compilerarg line="${ap.proc.none.internal}"/> ++ <customize/> ++ </javac> ++ </sequential> ++ </macrodef> ++ </target> ++ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}:${src.resources.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> ++ <attribute default="${javac.modulepath}" name="modulepath"/> ++ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> +@@ -290,7 +396,7 @@ is divided into following sections: + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> +- <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> ++ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> +@@ -314,11 +420,13 @@ is divided into following sections: + </sequential> + </macrodef> + </target> +- <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> ++ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}:${src.resources.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> ++ <attribute default="${javac.modulepath}" name="modulepath"/> ++ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> +@@ -330,7 +438,7 @@ is divided into following sections: + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> +- <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> ++ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> +@@ -347,7 +455,7 @@ is divided into following sections: + </sequential> + </macrodef> + </target> +- <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> ++ <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> + <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}:${src.resources.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> +@@ -402,59 +510,99 @@ is divided into following sections: + <property name="test.binarytestincludes" value=""/> + <property name="test.binaryexcludes" value=""/> + </target> +- <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> +- <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-junit-prototype-with-module"> ++ <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> +- <attribute default="**" name="testincludes"/> +- <attribute default="" name="testmethods"/> +- <element name="customize" optional="true"/> ++ <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> +- <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> +- <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> ++ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> ++ <classpath> ++ <path path="${run.test.classpath}"/> ++ </classpath> ++ <modulepath> ++ <path path="${run.test.modulepath}"/> ++ </modulepath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> ++ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> +- <customize/> ++ <jvmarg line="${run.test.jvmargs}"/> ++ <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> +- <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> +- <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <target depends="-init-modules-supported" name="-init-macrodef-junit-prototype-without-module" unless="modules.supported.internal"> ++ <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> +- <attribute default="**" name="testincludes"/> +- <attribute default="" name="testmethods"/> +- <element name="customize" optional="true"/> ++ <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> +- <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> +- <batchtest todir="${build.test.results.dir}"> +- <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> +- <filename name="@{testincludes}"/> +- </fileset> +- <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> +- <filename name="${test.binarytestincludes}"/> +- </fileset> +- </batchtest> ++ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> ++ <classpath> ++ <path path="${run.test.classpath}"/> ++ </classpath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> ++ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> +- <customize/> ++ <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> ++ <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> ++ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <attribute default="${includes}" name="includes"/> ++ <attribute default="${excludes}" name="excludes"/> ++ <attribute default="**" name="testincludes"/> ++ <attribute default="" name="testmethods"/> ++ <element name="customize" optional="true"/> ++ <sequential> ++ <j2seproject3:junit-prototype> ++ <customizePrototype> ++ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> ++ <customize/> ++ </customizePrototype> ++ </j2seproject3:junit-prototype> ++ </sequential> ++ </macrodef> ++ </target> ++ <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> ++ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <attribute default="${includes}" name="includes"/> ++ <attribute default="${excludes}" name="excludes"/> ++ <attribute default="**" name="testincludes"/> ++ <attribute default="" name="testmethods"/> ++ <element name="customize" optional="true"/> ++ <sequential> ++ <j2seproject3:junit-prototype> ++ <customizePrototype> ++ <batchtest todir="${build.test.results.dir}"> ++ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> ++ <filename name="@{testincludes}"/> ++ </fileset> ++ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> ++ <filename name="${test.binarytestincludes}"/> ++ </fileset> ++ </batchtest> ++ <customize/> ++ </customizePrototype> ++ </j2seproject3:junit-prototype> ++ </sequential> ++ </macrodef> ++ </target> + <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> + <target if="${testng.available}" name="-init-macrodef-testng"> + <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> +@@ -473,12 +621,16 @@ is divided into following sections: + </fileset> + </union> + <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> +- <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="LazyMan" testname="TestNG tests" workingDir="${work.dir}"> ++ <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="LazyMan" testname="TestNG tests" workingDir="${work.dir}"> + <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> + <propertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </propertyset> ++ <classpath> ++ <path path="${run.test.classpath}"/> ++ </classpath> ++ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <customize/> + </testng> + </sequential> +@@ -533,10 +685,6 @@ is divided into following sections: + <sequential> + <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> +- <classpath> +- <path path="${run.test.classpath}"/> +- </classpath> +- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + </customize> +@@ -544,74 +692,20 @@ is divided into following sections: + </sequential> + </macrodef> + </target> +- <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}"> +- <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> +- <attribute default="${includes}" name="includes"/> +- <attribute default="${excludes}" name="excludes"/> +- <attribute default="**" name="testincludes"/> +- <attribute default="" name="testmethods"/> +- <element name="customize" optional="true"/> +- <sequential> +- <property name="junit.forkmode" value="perTest"/> +- <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> +- <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> +- <syspropertyset> +- <propertyref prefix="test-sys-prop."/> +- <mapper from="test-sys-prop.*" to="*" type="glob"/> +- </syspropertyset> +- <formatter type="brief" usefile="false"/> +- <formatter type="xml"/> +- <jvmarg value="-ea"/> +- <jvmarg line="${debug-args-line}"/> +- <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> +- <customize/> +- </junit> +- </sequential> +- </macrodef> +- </target> +- <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch"> +- <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> +- <attribute default="${includes}" name="includes"/> +- <attribute default="${excludes}" name="excludes"/> +- <attribute default="**" name="testincludes"/> +- <attribute default="" name="testmethods"/> +- <element name="customize" optional="true"/> +- <sequential> +- <property name="junit.forkmode" value="perTest"/> +- <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> +- <batchtest todir="${build.test.results.dir}"> +- <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> +- <filename name="@{testincludes}"/> +- </fileset> +- <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> +- <filename name="${test.binarytestincludes}"/> +- </fileset> +- </batchtest> +- <syspropertyset> +- <propertyref prefix="test-sys-prop."/> +- <mapper from="test-sys-prop.*" to="*" type="glob"/> +- </syspropertyset> +- <formatter type="brief" usefile="false"/> +- <formatter type="xml"/> +- <jvmarg value="-ea"/> +- <jvmarg line="${debug-args-line}"/> +- <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> +- <customize/> +- </junit> +- </sequential> +- </macrodef> +- </target> +- <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> ++ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> + <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> +- <element implicit="true" name="customize" optional="true"/> ++ <element name="customizeDebuggee" optional="true"/> + <sequential> +- <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> +- <customize/> +- </j2seproject3:junit-debug> ++ <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> ++ <customize> ++ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> ++ <customizeDebuggee/> ++ </customize> ++ </j2seproject3:junit> + </sequential> + </macrodef> + </target> +@@ -630,14 +724,14 @@ is divided into following sections: + <delete dir="${build.test.results.dir}" quiet="true"/> + <mkdir dir="${build.test.results.dir}"/> + <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> +- <customize> ++ <customizeDebuggee> + <customize2/> + <jvmarg value="-ea"/> + <arg line="${testng.debug.mode}"/> + <arg line="-d ${build.test.results.dir}"/> + <arg line="-listener org.testng.reporters.VerboseReporter"/> + <arg line="${testng.cmd.args}"/> +- </customize> ++ </customizeDebuggee> + </j2seproject3:debug> + </sequential> + </macrodef> +@@ -664,14 +758,10 @@ is divided into following sections: + <attribute default="" name="testMethod"/> + <sequential> + <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> +- <customize> +- <classpath> +- <path path="${run.test.classpath}"/> +- </classpath> +- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> ++ <customizeDebuggee> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> +- </customize> ++ </customizeDebuggee> + </j2seproject3:test-debug-impl> + </sequential> + </macrodef> +@@ -751,16 +841,17 @@ is divided into following sections: + <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> + <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${main.class}" name="name"/> ++ <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> + <attribute default="" name="stopclassname"/> + <sequential> + <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> ++ <modulepath> ++ <path path="@{modulepath}"/> ++ </modulepath> + <classpath> + <path path="@{classpath}"/> + </classpath> +- <bootclasspath> +- <path path="${platform.bootcp}"/> +- </bootclasspath> + </nbjpdastart> + </sequential> + </macrodef> +@@ -776,20 +867,6 @@ is divided into following sections: + </macrodef> + </target> + <target name="-init-debug-args"> +- <exec executable="${platform.java}" outputproperty="version-output"> +- <arg value="-version"/> +- </exec> +- <condition property="have-jdk-older-than-1.4"> +- <or> +- <contains string="${version-output}" substring="java version "1.0"/> +- <contains string="${version-output}" substring="java version "1.1"/> +- <contains string="${version-output}" substring="java version "1.2"/> +- <contains string="${version-output}" substring="java version "1.3"/> +- </or> +- </condition> +- <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none"> +- <istrue value="${have-jdk-older-than-1.4}"/> +- </condition> + <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> + <os family="windows"/> + </condition> +@@ -799,21 +876,79 @@ is divided into following sections: + </target> + <target depends="-init-debug-args" name="-init-macrodef-debug"> + <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> ++ <attribute default="${module.name}" name="modulename"/> + <attribute default="${main.class}" name="classname"/> ++ <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> ++ <element name="customizeDebuggee" optional="true"/> ++ <sequential> ++ <j2seproject1:java classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}"> ++ <customize> ++ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> ++ <customizeDebuggee/> ++ </customize> ++ </j2seproject1:java> ++ </sequential> ++ </macrodef> ++ </target> ++ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-macrodef-java-with-module"> ++ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> ++ <attribute default="${module.name}" name="modulename"/> ++ <attribute default="${main.class}" name="classname"/> ++ <attribute default="${run.modulepath}" name="modulepath"/> ++ <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> ++ <attribute default="${run.classpath}" name="classpath"/> ++ <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> +- <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" jvm="${platform.java}"> +- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> +- <jvmarg line="${debug-args-line}"/> +- <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> ++ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" module="@{modulename}"> ++ <classpath> ++ <path path="@{classpath}"/> ++ </classpath> ++ <modulepath> ++ <pathelement path="@{modulepath}"/> ++ <pathelement location="${module.build.classes.dir}"/> ++ </modulepath> ++ <upgrademodulepath> ++ <path path="@{upgrademodulepath}"/> ++ </upgrademodulepath> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> ++ <syspropertyset> ++ <propertyref prefix="run-sys-prop."/> ++ <mapper from="run-sys-prop.*" to="*" type="glob"/> ++ </syspropertyset> ++ <customize/> ++ </java> ++ </sequential> ++ </macrodef> ++ </target> ++ <target depends="-init-source-module-properties" if="unnamed.module.internal" name="-init-macrodef-java-with-unnamed-module"> ++ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> ++ <attribute default="" name="modulename"/> ++ <attribute default="${main.class}" name="classname"/> ++ <attribute default="${run.modulepath}" name="modulepath"/> ++ <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> ++ <attribute default="${run.classpath}" name="classpath"/> ++ <attribute default="jvm" name="jvm"/> ++ <element name="customize" optional="true"/> ++ <sequential> ++ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> + <classpath> + <path path="@{classpath}"/> + </classpath> ++ <modulepath> ++ <path path="@{modulepath}"/> ++ </modulepath> ++ <upgrademodulepath> ++ <path path="@{upgrademodulepath}"/> ++ </upgrademodulepath> ++ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> ++ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> ++ <jvmarg line="${run.jvmargs}"/> ++ <jvmarg line="${run.jvmargs.ide}"/> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> +@@ -823,14 +958,16 @@ is divided into following sections: + </sequential> + </macrodef> + </target> +- <target name="-init-macrodef-java"> ++ <target depends="-init-source-module-properties" name="-init-macrodef-java-without-module" unless="modules.supported.internal"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> ++ <attribute default="" name="modulename"/> + <attribute default="${main.class}" name="classname"/> ++ <attribute default="" name="modulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> +- <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" jvm="${platform.java}"> ++ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> +@@ -848,6 +985,7 @@ is divided into following sections: + </sequential> + </macrodef> + </target> ++ <target depends="-init-macrodef-java-with-module, -init-macrodef-java-with-unnamed-module, -init-macrodef-java-without-module" name="-init-macrodef-java"/> + <target name="-init-macrodef-copylibs"> + <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${manifest.file}" name="manifest"/> +@@ -869,7 +1007,7 @@ is divided into following sections: + </chainedmapper> + </pathconvert> + <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> +- <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> ++ <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" manifestencoding="UTF-8" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> + <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + <manifest> + <attribute name="Class-Path" value="${jar.classpath}"/> +@@ -881,7 +1019,7 @@ is divided into following sections: + </target> + <target name="-init-presetdef-jar"> + <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> +- <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}"> ++ <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8"> + <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + </jar> + </presetdef> +@@ -937,7 +1075,9 @@ is divided into following sections: + <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> + </target> + <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> +- <antcall target="clean"/> ++ <antcall target="clean"> ++ <param name="no.dependencies" value="true"/> ++ </antcall> + </target> + <target depends="init,deps-jar" name="-pre-pre-compile"> + <mkdir dir="${build.classes.dir}"/> +@@ -979,7 +1119,7 @@ is divided into following sections: + <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile/> +- <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}:${src.resources.dir}"/> ++ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.dir}:${src.resources.dir}"/> + </target> + <target name="-post-compile-single"> + <!-- Empty placeholder for easier customization. --> +@@ -999,21 +1139,40 @@ is divided into following sections: + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> ++ <target depends="init,compile" name="-check-module-main-class"> ++ <pathconvert property="main.class.file"> ++ <string value="${main.class}"/> ++ <unpackagemapper from="*" to="*.class"/> ++ </pathconvert> ++ <condition property="do.module.main.class"> ++ <and> ++ <isset property="main.class.available"/> ++ <available file="${build.classes.dir}/module-info.class"/> ++ <available file="${build.classes.dir}/${main.class.file}"/> ++ <isset property="libs.CopyLibs.classpath"/> ++ <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/> ++ </and> ++ </condition> ++ </target> ++ <target depends="-check-module-main-class" if="do.module.main.class" name="-set-module-main-class"> ++ <taskdef classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}" name="modulemainclass"/> ++ <modulemainclass failonerror="false" mainclass="${main.class}" moduleinfo="${build.classes.dir}/module-info.class"/> ++ </target> + <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> + <touch file="${tmp.manifest.file}" verbose="false"/> + </target> + <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> +- <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/> ++ <copy encoding="${manifest.encoding}" file="${manifest.file}" outputencoding="UTF-8" tofile="${tmp.manifest.file}"/> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> +- <manifest file="${tmp.manifest.file}" mode="update"> ++ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Main-Class" value="${main.class}"/> + </manifest> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> +- <manifest file="${tmp.manifest.file}" mode="update"> ++ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Profile" value="${javac.profile}"/> + </manifest> + </target> +@@ -1021,25 +1180,65 @@ is divided into following sections: + <basename file="${application.splash}" property="splashscreen.basename"/> + <mkdir dir="${build.classes.dir}/META-INF"/> + <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> +- <manifest file="${tmp.manifest.file}" mode="update"> ++ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> + </manifest> + </target> +- <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs"> ++ <target depends="init,compile" name="-check-do-mkdist"> ++ <condition property="do.mkdist"> ++ <and> ++ <isset property="do.archive"/> ++ <isset property="libs.CopyLibs.classpath"/> ++ <not> ++ <istrue value="${mkdist.disabled}"/> ++ </not> ++ <not> ++ <available file="${build.classes.dir}/module-info.class"/> ++ </not> ++ </and> ++ </condition> ++ </target> ++ <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.mkdist" name="-do-jar-copylibs"> + <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> + <echo level="info">To run this application from the command line without Ant, try:</echo> + <property location="${dist.jar}" name="dist.jar.resolved"/> +- <echo level="info">${platform.java} -jar "${dist.jar.resolved}"</echo> ++ <echo level="info">java -jar "${dist.jar.resolved}"</echo> + </target> +- <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> ++ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> + <j2seproject1:jar manifest="${tmp.manifest.file}"/> + <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> + <property location="${dist.jar}" name="dist.jar.resolved"/> ++ <condition else="${dist.jar.resolved}" property="jar.usage.message.class.path.replacement" value=""> ++ <isset property="named.module.internal"/> ++ </condition> + <pathconvert property="run.classpath.with.dist.jar"> + <path path="${run.classpath}"/> ++ <map from="${build.classes.dir.resolved}" to="${jar.usage.message.class.path.replacement}"/> ++ </pathconvert> ++ <pathconvert property="run.modulepath.with.dist.jar"> ++ <path location="${dist.jar.resolved}"/> ++ <path path="${run.modulepath}"/> + <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> + </pathconvert> +- <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}"> ++ <condition else="${run.modulepath}" property="jar.usage.message.run.modulepath.with.dist.jar" value="${run.modulepath.with.dist.jar}"> ++ <isset property="named.module.internal"/> ++ </condition> ++ <condition else="" property="jar.usage.message.module.path" value=" -p ${jar.usage.message.run.modulepath.with.dist.jar}"> ++ <and> ++ <isset property="modules.supported.internal"/> ++ <length length="0" string="${jar.usage.message.run.modulepath.with.dist.jar}" when="greater"/> ++ </and> ++ </condition> ++ <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}"> ++ <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/> ++ </condition> ++ <condition else="/${main.class}" property="jar.usage.message.main.class.class.selector" value=""> ++ <isset property="do.module.main.class"/> ++ </condition> ++ <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}${jar.usage.message.main.class.class.selector}"> ++ <isset property="named.module.internal"/> ++ </condition> ++ <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}"> + <isset property="main.class.available"/> + </condition> + <condition else="debug" property="jar.usage.level" value="info"> +@@ -1058,8 +1257,73 @@ is divided into following sections: + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> +- <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> +- <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/> ++ <target depends="init,compile,-pre-jar,-set-module-main-class,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> ++ <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/> ++ <!-- ++ ================= ++ DEPLOY SECTION ++ ================= ++ --> ++ <target name="-pre-deploy"> ++ <!-- Empty placeholder for easier customization. --> ++ <!-- You can override this target in the ../build.xml file. --> ++ </target> ++ <target depends="init" name="-check-jlink"> ++ <condition property="do.jlink.internal"> ++ <and> ++ <istrue value="${do.jlink}"/> ++ <isset property="do.archive"/> ++ <isset property="named.module.internal"/> ++ </and> ++ </condition> ++ </target> ++ <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink" if="do.jlink.internal" name="-do-deploy"> ++ <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/> ++ <property name="jlink.launcher.name" value="${application.title}"/> ++ <condition else="${module.name}" property="jlink.add.modules" value="${module.name},${jlink.additionalmodules}"> ++ <and> ++ <isset property="jlink.additionalmodules"/> ++ <length length="0" string="${jlink.additionalmodules}" when="greater"/> ++ </and> ++ </condition> ++ <condition property="jlink.do.strip.internal"> ++ <and> ++ <isset property="jlink.strip"/> ++ <istrue value="${jlink.strip}"/> ++ </and> ++ </condition> ++ <condition property="jlink.do.additionalparam.internal"> ++ <and> ++ <isset property="jlink.additionalparam"/> ++ <length length="0" string="${jlink.additionalparam}" when="greater"/> ++ </and> ++ </condition> ++ <condition property="jlink.do.launcher.internal"> ++ <and> ++ <istrue value="${jlink.launcher}"/> ++ <isset property="main.class.available"/> ++ </and> ++ </condition> ++ <property name="platform.jlink" value="${jdk.home}/bin/jlink"/> ++ <property name="jlink.systemmodules.internal" value="${jdk.home}/jmods"/> ++ <exec executable="${platform.jlink}"> ++ <arg value="--module-path"/> ++ <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.jar}"/> ++ <arg value="--add-modules"/> ++ <arg value="${jlink.add.modules}"/> ++ <arg if:set="jlink.do.strip.internal" value="--strip-debug"/> ++ <arg if:set="jlink.do.launcher.internal" value="--launcher"/> ++ <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/> ++ <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/> ++ <arg value="--output"/> ++ <arg value="${dist.jlink.output}"/> ++ </exec> ++ </target> ++ <target name="-post-deploy"> ++ <!-- Empty placeholder for easier customization. --> ++ <!-- You can override this target in the ../build.xml file. --> ++ </target> ++ <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/> + <!-- + ================= + EXECUTION SECTION +@@ -1096,9 +1360,9 @@ is divided into following sections: + </target> + <target depends="init,compile" name="-debug-start-debuggee"> + <j2seproject3:debug> +- <customize> ++ <customizeDebuggee> + <arg line="${application.args}"/> +- </customize> ++ </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> +@@ -1164,28 +1428,24 @@ is divided into following sections: + </customize> + </profile> + </target> +- <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> ++ <target depends="-init-macrodef-junit,profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + </nbprofiledirect> +- <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> +- <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> +- <jvmarg value="${profiler.info.jvmargs.agent}"/> +- <jvmarg line="${profiler.info.jvmargs}"/> +- <test name="${profile.class}"/> +- <classpath> +- <path path="${run.test.classpath}"/> +- </classpath> +- <syspropertyset> +- <propertyref prefix="test-sys-prop."/> +- <mapper from="test-sys-prop.*" to="*" type="glob"/> +- </syspropertyset> +- <formatter type="brief" usefile="false"/> +- <formatter type="xml"/> +- </junit> ++ <j2seproject3:junit excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods=""> ++ <customize> ++ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> ++ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> ++ <jvmarg value="${profiler.info.jvmargs.agent}"/> ++ <jvmarg line="${profiler.info.jvmargs}"/> ++ <classpath> ++ <path path="${run.test.classpath}"/> ++ </classpath> ++ </customize> ++ </j2seproject3:junit> + </target> + <!-- + end of pre NB72 profiling section +@@ -1216,7 +1476,7 @@ is divided into following sections: + <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <startprofiler/> +- <antcal target="run-test-with-main"/> ++ <antcall target="run-test-with-main"/> + </target> + <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> +@@ -1238,13 +1498,16 @@ is divided into following sections: + </not> + </and> + </condition> +- <exec executable="${platform.java}" failonerror="false" outputproperty="platform.version.output"> +- <arg value="-version"/> +- </exec> + <condition else="" property="bug5101868workaround" value="*.java"> +- <matches multiline="true" pattern="1\.[56](\..*)?" string="${platform.version.output}"/> ++ <matches pattern="1\.[56](\..*)?" string="${java.version}"/> ++ </condition> ++ <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5"> ++ <and> ++ <isset property="javadoc.html5"/> ++ <available file="${jdk.home}${file.separator}lib${file.separator}jrt-fs.jar"/> ++ </and> + </condition> +- <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" executable="${platform.javadoc}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> ++ <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> + <classpath> + <path path="${javac.classpath}"/> + </classpath> +@@ -1259,6 +1522,7 @@ is divided into following sections: + <exclude name="*.java"/> + </fileset> + <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> ++ <arg line="${javadoc.html5.cmd.line.arg}"/> + </javadoc> + <copy todir="${dist.javadoc.dir}"> + <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> +@@ -1288,11 +1552,63 @@ is divided into following sections: + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> ++ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> ++ <j2seproject3:modulename property="test.module.name" sourcepath="${test.src.dir}"/> ++ <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.src.dir}"> ++ <and> ++ <isset property="test.module.name"/> ++ <length length="0" string="${test.module.name}" when="greater"/> ++ </and> ++ </condition> ++ <condition else="--patch-module ${module.name}=${test.src.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> ++ <and> ++ <isset property="test.module.name"/> ++ <length length="0" string="${test.module.name}" when="greater"/> ++ </and> ++ </condition> ++ </target> ++ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-run-module-properties"> ++ <condition else="${module.name}" property="run.test.addexport.source.module.internal" value="${test.module.name}"> ++ <and> ++ <isset property="test.module.name"/> ++ <length length="0" string="${test.module.name}" when="greater"/> ++ </and> ++ </condition> ++ <fileset dir="${build.test.classes.dir}" id="run.test.packages.internal" includes="**/*.class"/> ++ <property location="${build.test.classes.dir}" name="build.test.classes.dir.abs.internal"/> ++ <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal"> ++ <chainedmapper> ++ <regexpmapper from="^(.*)\Q${file.separator}\E.*\.class$$" to="\1"/> ++ <filtermapper> ++ <uniqfilter/> ++ <replacestring from="${build.test.classes.dir.abs.internal}" to=""/> ++ </filtermapper> ++ <cutdirsmapper dirs="1"/> ++ <packagemapper from="*" to="--add-exports ${run.test.addexport.source.module.internal}/*=ALL-UNNAMED"/> ++ </chainedmapper> ++ </pathconvert> ++ <condition else="--patch-module ${module.name}=${build.test.classes.dir} --add-modules ${module.name} --add-reads ${module.name}=ALL-UNNAMED ${run.test.addexports.internal}" property="run.test.jvmargs" value="--add-modules ${test.module.name} --add-reads ${test.module.name}=ALL-UNNAMED ${run.test.addexports.internal}"> ++ <and> ++ <isset property="test.module.name"/> ++ <length length="0" string="${test.module.name}" when="greater"/> ++ </and> ++ </condition> ++ </target> ++ <target depends="-init-source-module-properties" name="-init-test-module-properties-without-module" unless="named.module.internal"> ++ <property name="javac.test.sourcepath" value="${empty.dir}"/> ++ <property name="javac.test.compilerargs" value=""/> ++ <property name="run.test.jvmargs" value=""/> ++ </target> ++ <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> + <target if="do.depend.true" name="-compile-test-depend"> + <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> + </target> +- <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> +- <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> ++ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> ++ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.src.dir}"> ++ <customize> ++ <compilerarg line="${javac.test.compilerargs}"/> ++ </customize> ++ </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> +@@ -1306,10 +1622,14 @@ is divided into following sections: + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> +- <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> ++ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> +- <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/> ++ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"> ++ <customize> ++ <compilerarg line="${javac.test.compilerargs}"/> ++ </customize> ++ </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> +@@ -1327,7 +1647,7 @@ is divided into following sections: + <target depends="init" if="have.tests" name="-pre-test-run"> + <mkdir dir="${build.test.results.dir}"/> + </target> +- <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run"> ++ <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run"> + <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> + </target> + <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> +@@ -1339,14 +1659,14 @@ is divided into following sections: + <target depends="init" if="have.tests" name="-pre-test-run-single"> + <mkdir dir="${build.test.results.dir}"/> + </target> +- <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> ++ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> +- <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> ++ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> + <fail unless="test.class">Must select some files in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> +@@ -1355,7 +1675,7 @@ is divided into following sections: + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> +- <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> ++ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> + <!-- + ======================= + TEST DEBUGGING SECTION +@@ -1373,8 +1693,8 @@ is divided into following sections: + <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> + <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> + </target> +- <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> +- <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> ++ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> ++ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> + <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> + <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> + </target> +@@ -1400,9 +1720,9 @@ is divided into following sections: + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <j2seproject3:debug classname="sun.applet.AppletViewer"> +- <customize> ++ <customizeDebuggee> + <arg value="${applet.url}"/> +- </customize> ++ </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> +@@ -1429,6 +1749,7 @@ is divided into following sections: + </target> + <target depends="init" name="-do-clean"> + <delete dir="${build.dir}"/> ++ <delete dir="${dist.jlink.output}"/> + <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> + </target> + <target name="-post-clean"> +diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties +index 9754f4e..3d66b41 100644 +--- a/nbproject/genfiles.properties ++++ b/nbproject/genfiles.properties +@@ -3,6 +3,6 @@ build.xml.script.CRC32=52bfd133 + build.xml.stylesheet.CRC32=8064a381@1.79.1.48 + # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. + # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +-nbproject/build-impl.xml.data.CRC32=ae0b0416 +-nbproject/build-impl.xml.script.CRC32=b384fd05 +-nbproject/build-impl.xml.stylesheet.CRC32=05530350@1.79.1.48 ++nbproject/build-impl.xml.data.CRC32=3544ff30 ++nbproject/build-impl.xml.script.CRC32=a1f21cc5 ++nbproject/build-impl.xml.stylesheet.CRC32=f89f7d21@1.93.0.48 +diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties +index ea9d93a..757ef36 100644 +--- a/nbproject/private/private.properties ++++ b/nbproject/private/private.properties +@@ -1,6 +1,8 @@ + compile.on.save=true + do.depend=false + do.jar=true ++do.jlink=false + javac.debug=true + javadoc.preview=true +-user.properties.file=C:\\Users\\ntyle\\AppData\\Roaming\\NetBeans\\8.1\\build.properties ++jlink.strip=false ++user.properties.file=/home/trox/.netbeans/11.2/build.properties +diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml +index 2c13095..7ccf2f7 100644 +--- a/nbproject/private/private.xml ++++ b/nbproject/private/private.xml +@@ -3,14 +3,11 @@ + <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> + <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> + <group> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/GameObj/GameWatchInfo.java</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/resources/VERSION.txt</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/Util/Props.java</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/Util/TextAreaOutputStream.java</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/Util/ProcessReader.java</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/lazyman/MainGUI.java</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/nbproject/build-impl.xml</file> +- <file>file:/D:/Documents/NetBeansProjects/LazyMan/src/Objects/Livestreamer.java</file> ++ <file>file:/home/trox/LazyMan/src/lazyman/LazyMan.java</file> ++ <file>file:/home/trox/LazyMan/build.xml</file> ++ <file>file:/home/trox/LazyMan/nbproject/project.properties</file> ++ <file>file:/home/trox/LazyMan/src/lazyman/MainGUI.java</file> ++ <file>file:/home/trox/LazyMan/src/lazyman/MainGUI.form.xml</file> + </group> + </open-files> + </project-private> +diff --git a/nbproject/project.properties b/nbproject/project.properties +index 239d313..44b2903 100644 +--- a/nbproject/project.properties ++++ b/nbproject/project.properties +@@ -19,8 +19,12 @@ build.test.results.dir=${build.dir}/test/results + #debug.transport=dt_socket + debug.classpath=\ + ${run.classpath} ++debug.modulepath=\ ++ ${run.modulepath} + debug.test.classpath=\ + ${run.test.classpath} ++debug.test.modulepath=\ ++ ${run.test.modulepath} + # Files in build.classes.dir which should be excluded from distribution jar + dist.archive.excludes= + # This directory is removed when the project is cleaned: +@@ -33,7 +37,9 @@ file.reference.AppleJavaExtensions-1.4.jar=src/lazyman/AppleJavaExtensions-1.4.j + file.reference.gson-2.7.jar=src\\lazyman\\gson-2.7.jar + file.reference.jcalendar-1.4.jar=src/lazyman/jcalendar-1.4.jar + includes=** ++jar.archive.disabled=${jnlp.enabled} + jar.compress=false ++jar.index=${jnlp.enabled} + javac.classpath=\ + ${file.reference.gson-2.7.jar}:\ + ${file.reference.jcalendar-1.4.jar}:\ +@@ -42,6 +48,8 @@ javac.classpath=\ + javac.compilerargs= + javac.deprecation=false + javac.external.vm=true ++javac.modulepath= ++javac.processormodulepath= + javac.processorpath=\ + ${javac.classpath} + javac.source=1.8 +@@ -49,11 +57,14 @@ javac.target=1.8 + javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} ++javac.test.modulepath=\ ++ ${javac.modulepath} + javac.test.processorpath=\ + ${javac.test.classpath} + javadoc.additionalparam= + javadoc.author=false + javadoc.encoding=${source.encoding} ++javadoc.html5=false + javadoc.noindex=false + javadoc.nonavbar=false + javadoc.notree=false +@@ -62,11 +73,30 @@ javadoc.splitindex=true + javadoc.use=true + javadoc.version=false + javadoc.windowtitle= ++jlink.launcher=false ++jlink.launcher.name=LazyMan ++jnlp.codebase.type=no.codebase ++jnlp.descriptor=application ++jnlp.enabled=false ++jnlp.mixed.code=default ++jnlp.offline-allowed=false ++jnlp.signed=false ++jnlp.signing= ++jnlp.signing.alias= ++jnlp.signing.keystore= + main.class=lazyman.LazyMan ++# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found. ++manifest.custom.application.library.allowable.codebase= ++# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts. ++manifest.custom.caller.allowable.codebase= ++# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed ++manifest.custom.codebase= ++# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions) ++manifest.custom.permissions= + manifest.file=manifest.mf + meta.inf.dir=${src.dir}/META-INF + mkdist.disabled=false +-platform.active=JDK_1.8 ++platform.active=default_platform + run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +@@ -74,9 +104,13 @@ run.classpath=\ + # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. + # To set system properties for unit tests define test-sys-prop.name=value: + run.jvmargs= ++run.modulepath=\ ++ ${javac.modulepath} + run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} ++run.test.modulepath=\ ++ ${javac.test.modulepath} + source.encoding=UTF-8 + src.dir=src + src.resources.dir=resources +diff --git a/nbproject/project.xml b/nbproject/project.xml +index 9c21770..7b3c5ad 100644 +--- a/nbproject/project.xml ++++ b/nbproject/project.xml +@@ -4,7 +4,6 @@ + <configuration> + <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> + <name>LazyMan</name> +- <explicit-platform explicit-source-supported="true"/> + <source-roots> + <root id="src.dir"/> + <root id="src.resources.dir"/> + +From 1312265f649b72536f08eba913ee48d4ea829575 Mon Sep 17 00:00:00 2001 +From: Troy C <troxor@users.noreply.github.com> +Date: Sat, 28 Dec 2019 16:56:37 -0600 +Subject: [PATCH 2/3] specify proxy scheme + +--- + src/Objects/Streamlink.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Objects/Streamlink.java b/src/Objects/Streamlink.java +index 9b5c6d1..855c52f 100644 +--- a/src/Objects/Streamlink.java ++++ b/src/Objects/Streamlink.java +@@ -42,7 +42,7 @@ public Process run(Game g, GameWatchInfo gwi, int port) { + String ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"; + ProcessBuilder pb; + +- List<String> args = new ArrayList<>(Arrays.asList(new String[]{location, getURLFormat(gwi.getUrl(), gwi.getQuality().equals("best")), gwi.getQuality(), "--http-header", "User-Agent=" + ua, "--hls-segment-threads=4", "--https-proxy", "127.0.0.1:" + port})); ++ List<String> args = new ArrayList<>(Arrays.asList(new String[]{location, getURLFormat(gwi.getUrl(), gwi.getQuality().equals("best")), gwi.getQuality(), "--http-header", "User-Agent=" + ua, "--hls-segment-threads=4", "--https-proxy", "https://127.0.0.1:" + port})); + + if (record) { + String saveLoc = Props.getSaveStreamLoc() + File.separator + gwi.getDate(); + +From a9df8ff90364c5d154ac92351479d3cd0952dd2a Mon Sep 17 00:00:00 2001 +From: Troy C <troxor@users.noreply.github.com> +Date: Sat, 28 Dec 2019 16:57:30 -0600 +Subject: [PATCH 3/3] Make dialogs bigger, disable update + +--- + src/lazyman/MainGUI.form | 78 +++++++++++++++++++++------------------- + src/lazyman/MainGUI.java | 46 ++++++++++++------------ + src/lazyman/Options.form | 5 ++- + src/lazyman/Options.java | 1 + + 4 files changed, 69 insertions(+), 61 deletions(-) + +diff --git a/src/lazyman/MainGUI.form b/src/lazyman/MainGUI.form +index ebc0289..dc10280 100644 +--- a/src/lazyman/MainGUI.form ++++ b/src/lazyman/MainGUI.form +@@ -15,6 +15,14 @@ + </Layout> + </Container> + <Menu class="javax.swing.JMenuBar" name="jMenuBar1"> ++ <Properties> ++ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> ++ <Dimension value="[300, 32769]"/> ++ </Property> ++ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> ++ <Dimension value="[300, 100]"/> ++ </Property> ++ </Properties> + <SubComponents> + <Menu class="javax.swing.JMenu" name="jMenu1"> + <Properties> +@@ -156,10 +164,10 @@ + </Property> + <Property name="locationByPlatform" type="boolean" value="true"/> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> +- <Dimension value="[648, 512]"/> ++ <Dimension value="[900, 600]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> +- <Dimension value="[648, 512]"/> ++ <Dimension value="[900, 600]"/> + </Property> + </Properties> + <SyntheticProperties> +@@ -180,7 +188,7 @@ + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> +- <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-52,0,0,2,112"/> ++ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,115,0,0,3,-12"/> + </AuxValues> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> +@@ -504,9 +512,6 @@ + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="0" green="0" red="0" type="rgb"/> + </Property> +- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> +- <Color blue="ff" green="ff" red="ff" type="rgb"/> +- </Property> + <Property name="doubleBuffered" type="boolean" value="true"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[8, 21]"/> +@@ -530,13 +535,32 @@ + </Container> + <Container class="javax.swing.JPanel" name="playOptionsPanel"> + <Properties> ++ <Property name="alignmentY" type="float" value="0.0"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[32767, 74]"/> + </Property> ++ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> ++ <Dimension value="[750, 80]"/> ++ </Property> + </Properties> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> + <SubComponents> ++ <Component class="javax.swing.JButton" name="playBtn"> ++ <Properties> ++ <Property name="mnemonic" type="int" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> ++ <Connection code="KeyEvent.VK_P" type="code"/> ++ </Property> ++ <Property name="text" type="java.lang.String" value="Play"/> ++ <Property name="enabled" type="boolean" value="false"/> ++ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> ++ <Dimension value="[80, 40]"/> ++ </Property> ++ </Properties> ++ <Events> ++ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playBtnActionPerformed"/> ++ </Events> ++ </Component> + <Component class="javax.swing.JProgressBar" name="jProgressBar1"> + <Properties> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> +@@ -609,21 +633,6 @@ + </Component> + </SubComponents> + </Container> +- <Component class="javax.swing.JButton" name="playBtn"> +- <Properties> +- <Property name="mnemonic" type="int" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> +- <Connection code="KeyEvent.VK_P" type="code"/> +- </Property> +- <Property name="text" type="java.lang.String" value="Play"/> +- <Property name="enabled" type="boolean" value="false"/> +- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> +- <Dimension value="[80, 40]"/> +- </Property> +- </Properties> +- <Events> +- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playBtnActionPerformed"/> +- </Events> +- </Component> + <Container class="javax.swing.JPanel" name="playActionPanel"> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> +@@ -645,24 +654,19 @@ + </Constraint> + </Constraints> + </Component> +- <Component class="javax.swing.JCheckBox" name="restartCB"> +- <Properties> +- <Property name="mnemonic" type="int" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> +- <Connection code="KeyEvent.VK_R" type="code"/> +- </Property> +- <Property name="text" type="java.lang.String" value="Restart"/> +- </Properties> +- <Events> +- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="restartCBActionPerformed"/> +- </Events> +- <Constraints> +- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> +- <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="23" weightX="0.0" weightY="0.0"/> +- </Constraint> +- </Constraints> +- </Component> + </SubComponents> + </Container> ++ <Component class="javax.swing.JCheckBox" name="restartCB"> ++ <Properties> ++ <Property name="mnemonic" type="int" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> ++ <Connection code="KeyEvent.VK_R" type="code"/> ++ </Property> ++ <Property name="text" type="java.lang.String" value="Restart"/> ++ </Properties> ++ <Events> ++ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="restartCBActionPerformed"/> ++ </Events> ++ </Component> + </SubComponents> + </Container> + </SubComponents> +diff --git a/src/lazyman/MainGUI.java b/src/lazyman/MainGUI.java +index db5cd2a..e2dae8a 100644 +--- a/src/lazyman/MainGUI.java ++++ b/src/lazyman/MainGUI.java +@@ -42,7 +42,7 @@ + + public MainGUI() { + initComponents(); +- checkUpdate(); ++ //checkUpdate(); + p = new Proxy(Props.getProxyPort()); + p.run(); + streamCnt = 0; +@@ -144,12 +144,12 @@ private void initComponents() { + consoleTA = new javax.swing.JTextPane(); + consolePanel = new javax.swing.JPanel(); + playOptionsPanel = new javax.swing.JPanel(); ++ playBtn = new javax.swing.JButton(); + jProgressBar1 = new javax.swing.JProgressBar(); + playOptionSelectionsPanel = new javax.swing.JPanel(); + feedCB = new javax.swing.JComboBox<>(); + qualityCB = new javax.swing.JComboBox<>(); + CDNCB = new javax.swing.JComboBox<>(); +- playBtn = new javax.swing.JButton(); + playActionPanel = new javax.swing.JPanel(); + saveStreamCB = new javax.swing.JCheckBox(); + restartCB = new javax.swing.JCheckBox(); +@@ -173,8 +173,8 @@ private void initComponents() { + setTitle("LazyMan"); + setIconImage(Toolkit.getDefaultToolkit().getImage(MainGUI.class.getResource("/Logos/LM.png"))); + setLocationByPlatform(true); +- setMinimumSize(new java.awt.Dimension(648, 512)); +- setPreferredSize(new java.awt.Dimension(648, 512)); ++ setMinimumSize(new java.awt.Dimension(900, 600)); ++ setPreferredSize(new java.awt.Dimension(900, 600)); + addWindowListener(new java.awt.event.WindowAdapter() { + public void windowClosing(java.awt.event.WindowEvent evt) { + formWindowClosing(evt); +@@ -412,7 +412,6 @@ public void keyReleased(java.awt.event.KeyEvent evt) { + + consoleTA.setEditable(false); + consoleTA.setBackground(new java.awt.Color(0, 0, 0)); +- consoleTA.setForeground(new java.awt.Color(255, 255, 255)); + consoleTA.setDoubleBuffered(true); + consoleTA.setMaximumSize(new java.awt.Dimension(8, 21)); + consoleScrollPane.setViewportView(consoleTA); +@@ -427,7 +426,20 @@ public void keyReleased(java.awt.event.KeyEvent evt) { + consolePanel.setLayout(new javax.swing.BoxLayout(consolePanel, javax.swing.BoxLayout.Y_AXIS)); + mainPanel.add(consolePanel); + ++ playOptionsPanel.setAlignmentY(0.0F); + playOptionsPanel.setMaximumSize(new java.awt.Dimension(32767, 74)); ++ playOptionsPanel.setMinimumSize(new java.awt.Dimension(750, 80)); ++ ++ playBtn.setMnemonic(KeyEvent.VK_P); ++ playBtn.setText("Play"); ++ playBtn.setEnabled(false); ++ playBtn.setPreferredSize(new java.awt.Dimension(80, 40)); ++ playBtn.addActionListener(new java.awt.event.ActionListener() { ++ public void actionPerformed(java.awt.event.ActionEvent evt) { ++ playBtnActionPerformed(evt); ++ } ++ }); ++ playOptionsPanel.add(playBtn); + + jProgressBar1.setPreferredSize(new java.awt.Dimension(64, 12)); + playOptionsPanel.add(jProgressBar1); +@@ -462,17 +474,6 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { + + playOptionsPanel.add(playOptionSelectionsPanel); + +- playBtn.setMnemonic(KeyEvent.VK_P); +- playBtn.setText("Play"); +- playBtn.setEnabled(false); +- playBtn.setPreferredSize(new java.awt.Dimension(80, 40)); +- playBtn.addActionListener(new java.awt.event.ActionListener() { +- public void actionPerformed(java.awt.event.ActionEvent evt) { +- playBtnActionPerformed(evt); +- } +- }); +- playOptionsPanel.add(playBtn); +- + playActionPanel.setLayout(new java.awt.GridBagLayout()); + + saveStreamCB.setMnemonic(KeyEvent.VK_V); +@@ -489,6 +490,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + playActionPanel.add(saveStreamCB, gridBagConstraints); + ++ playOptionsPanel.add(playActionPanel); ++ + restartCB.setMnemonic(KeyEvent.VK_R); + restartCB.setText("Restart"); + restartCB.addActionListener(new java.awt.event.ActionListener() { +@@ -496,18 +499,15 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { + restartCBActionPerformed(evt); + } + }); +- gridBagConstraints = new java.awt.GridBagConstraints(); +- gridBagConstraints.gridx = 1; +- gridBagConstraints.gridy = 1; +- gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START; +- playActionPanel.add(restartCB, gridBagConstraints); +- +- playOptionsPanel.add(playActionPanel); ++ playOptionsPanel.add(restartCB); + + mainPanel.add(playOptionsPanel); + + getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); + ++ jMenuBar1.setMaximumSize(new java.awt.Dimension(300, 32769)); ++ jMenuBar1.setMinimumSize(new java.awt.Dimension(300, 100)); ++ + jMenu1.setMnemonic(KeyEvent.VK_F); + jMenu1.setText("File"); + +diff --git a/src/lazyman/Options.form b/src/lazyman/Options.form +index 6427f79..d679e02 100644 +--- a/src/lazyman/Options.form ++++ b/src/lazyman/Options.form +@@ -3,6 +3,9 @@ + <Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> + <Properties> + <Property name="defaultCloseOperation" type="int" value="2"/> ++ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> ++ <Dimension value="[800, 700]"/> ++ </Property> + <Property name="resizable" type="boolean" value="false"/> + </Properties> + <SyntheticProperties> +@@ -19,7 +22,7 @@ + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> +- <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,84,0,0,2,98"/> ++ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,-106,0,0,3,33"/> + </AuxValues> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> +diff --git a/src/lazyman/Options.java b/src/lazyman/Options.java +index 8f2f33a..17b0bb4 100644 +--- a/src/lazyman/Options.java ++++ b/src/lazyman/Options.java +@@ -122,6 +122,7 @@ private void initComponents() { + portSpinner = new javax.swing.JSpinner(); + + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); ++ setPreferredSize(new java.awt.Dimension(800, 700)); + setResizable(false); + + jPanel1.setLayout(new java.awt.GridBagLayout()); |