[Jrisk-cvs] SF.net SVN: jrisk-code:[1072] Grasshopper
Brought to you by:
yuranet
|
From: <yu...@us...> - 2025-10-08 14:34:51
|
Revision: 1072
http://sourceforge.net/p/jrisk/code/1072
Author: yuranet
Date: 2025-10-08 14:34:47 +0000 (Wed, 08 Oct 2025)
Log Message:
-----------
load grasshopper.properties from project, not lib
Modified Paths:
--------------
Grasshopper/ChangeLog.txt
Grasshopper/build.xml
Grasshopper/src/net/yura/grasshopper/BugManager.java
Grasshopper/src/net/yura/grasshopper/SimpleBug.java
Grasshopper/src/net/yura/grasshopper/submitter/BugSubmitter.java
Grasshopper/src_swing/net/yura/grasshopper/ConsoleHandler.java
Grasshopper/src_swing/net/yura/grasshopper/PopupBug.java
Grasshopper/test/net/yura/grasshopper/LogTest.java
Grasshopper/test/net/yura/grasshopper/PopupBugTest.java
Grasshopper/todo.txt
Added Paths:
-----------
Grasshopper/test/grasshopper.properties
Removed Paths:
-------------
Grasshopper/src/grasshopper.properties
Modified: Grasshopper/ChangeLog.txt
===================================================================
--- Grasshopper/ChangeLog.txt 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/ChangeLog.txt 2025-10-08 14:34:47 UTC (rev 1072)
@@ -1,4 +1,8 @@
+2.19
+
+ projects now require to provide there own 'grasshopper.properties' file
+
2.18
shorter subjects
Modified: Grasshopper/build.xml
===================================================================
--- Grasshopper/build.xml 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/build.xml 2025-10-08 14:34:47 UTC (rev 1072)
@@ -88,7 +88,7 @@
<copy todir="../me4se/lib">
<fileset refid="distJars"/>
</copy>
- <copy todir="../AgentClient/lib">
+ <copy todir="../22AACRM/lib">
<fileset refid="distJars"/>
</copy>
Deleted: Grasshopper/src/grasshopper.properties
===================================================================
--- Grasshopper/src/grasshopper.properties 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src/grasshopper.properties 2025-10-08 14:34:47 UTC (rev 1072)
@@ -1,3 +0,0 @@
-url.tfMail=https://msg.yura.net/cgi-bin/TFmail.cgi
-url.formMail=https://msg.yura.net/cgi-sys/FormMail.cgi
-rec...@yu...
Modified: Grasshopper/src/net/yura/grasshopper/BugManager.java
===================================================================
--- Grasshopper/src/net/yura/grasshopper/BugManager.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src/net/yura/grasshopper/BugManager.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -17,7 +17,7 @@
public abstract class BugManager {
public final static String GRASSHOPPER = "GRSHPR";
- public final static String VER = "2.18";
+ public final static String VER = "2.19";
private Thread thread;
private int errorCount;
Modified: Grasshopper/src/net/yura/grasshopper/SimpleBug.java
===================================================================
--- Grasshopper/src/net/yura/grasshopper/SimpleBug.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src/net/yura/grasshopper/SimpleBug.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -13,7 +13,7 @@
*/
public class SimpleBug extends StringWriter {
- static SimpleBug instance;
+ static StringWriter instance;
public SimpleBug() {
@@ -35,15 +35,23 @@
BugSubmitter.submitBug(toString(), errorSignature);
}
+ static void init(String appname,String version,String locale) {
+ BugSystemInfo.appName = appname;
+ BugSystemInfo.version = version;
+ BugSystemInfo.locale = locale;
+
+ if (BugSubmitter.TF_MAIL_URL == null && BugSubmitter.FORM_MAIL_URL == null) {
+ System.out.println("[grasshopper] Loading Error! unable to load grasshopper.properties\n"
+ + "make sure you have a the file on your classpath and have 'url.tfMail' 'url.formMail' and 'recipient' set.");
+ }
+ }
+
/**
* keeps the full log in memory
*/
public static void initSimple(String appname,String version,String locale) {
-
- BugSystemInfo.appName = appname;
- BugSystemInfo.version = version;
- BugSystemInfo.locale = locale;
-
+ init(appname, version, locale);
+
if (instance==null) {
new SimpleBug();
}
@@ -53,11 +61,8 @@
* keeps the full log for this session in a log file grasshopper.log
*/
public static void initLogFile(String appname,String version,String locale) {
+ init(appname, version, locale);
- BugSystemInfo.appName = appname;
- BugSystemInfo.version = version;
- BugSystemInfo.locale = locale;
-
try {
File file = new File("grasshopper.log");
if ( !canWrite(file) ) {
Modified: Grasshopper/src/net/yura/grasshopper/submitter/BugSubmitter.java
===================================================================
--- Grasshopper/src/net/yura/grasshopper/submitter/BugSubmitter.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src/net/yura/grasshopper/submitter/BugSubmitter.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -51,24 +51,40 @@
static {
Properties settings = new Properties();
String fileName = "/grasshopper.properties";
- InputStream settingsData = BugSubmitter.class.getResourceAsStream(fileName);
- try {
- settings.load(settingsData);
- TF_MAIL_URL = getSetting(settings,"url.tfMail");
- FORM_MAIL_URL = getSetting(settings,"url.formMail");
- RECIPIENT = getSetting(settings,"recipient");
+
+ InputStream settingsData = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
+ if (settingsData == null) {
+ settingsData = BugSubmitter.class.getResourceAsStream(fileName);
}
- catch (Exception ex) {
- ExceptionInInitializerError err = new ExceptionInInitializerError("can not load grasshopper settings from: "+fileName);
- err.initCause(ex);
- throw err;
+ if (settingsData == null) {
+ settingsData = ClassLoader.getSystemResourceAsStream(fileName);
}
- finally {
+
+ if (settingsData == null) {
+ TF_MAIL_URL = null;
+ FORM_MAIL_URL = null;
+ RECIPIENT = null;
+ }
+ else {
+
try {
- if (settingsData != null) settingsData.close();
+ settings.load(settingsData);
+ TF_MAIL_URL = getSetting(settings,"url.tfMail");
+ FORM_MAIL_URL = getSetting(settings,"url.formMail");
+ RECIPIENT = getSetting(settings,"recipient");
}
- catch (Exception ignored) {
+ catch (Exception ex) {
+ ExceptionInInitializerError err = new ExceptionInInitializerError("can not load grasshopper settings from: "+fileName);
+ err.initCause(ex);
+ throw err;
}
+ finally {
+ try {
+ if (settingsData != null) settingsData.close();
+ }
+ catch (Exception ignored) {
+ }
+ }
}
}
private static String getSetting(Properties prop, String name) throws Exception {
@@ -140,7 +156,7 @@
map.putAll( BugSystemInfo.addSystemInfo() );
- if (!map.containsKey("recipient")) {
+ if (!map.containsKey("recipient") && RECIPIENT != null) {
map.put("recipient", RECIPIENT);
}
map.put("subject", subject);
Modified: Grasshopper/src_swing/net/yura/grasshopper/ConsoleHandler.java
===================================================================
--- Grasshopper/src_swing/net/yura/grasshopper/ConsoleHandler.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src_swing/net/yura/grasshopper/ConsoleHandler.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -22,8 +22,9 @@
public class ConsoleHandler extends Handler {
// we use a PrintStream as it does not throw IOExcption with using javaw (a Writer does)
- PrintStream out = new PrintStream(new FileOutputStream(FileDescriptor.out));
- PrintStream err = new PrintStream(new FileOutputStream(FileDescriptor.err));
+ // when running inside an IDE (e.g. Netbeans) we need to use the current System.out/err or we will not see anything in the log window
+ PrintStream out = System.out; // new PrintStream(new FileOutputStream(FileDescriptor.out));
+ PrintStream err = System.err; // new PrintStream(new FileOutputStream(FileDescriptor.err));
public ConsoleHandler() {
Formatter formatter = new ReallySimpleFormatter();
Modified: Grasshopper/src_swing/net/yura/grasshopper/PopupBug.java
===================================================================
--- Grasshopper/src_swing/net/yura/grasshopper/PopupBug.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/src_swing/net/yura/grasshopper/PopupBug.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -1,6 +1,5 @@
package net.yura.grasshopper;
-import net.yura.grasshopper.info.BugSystemInfo;
import net.yura.grasshopper.submitter.BugSubmitter;
import java.awt.BorderLayout;
import java.awt.Color;
@@ -73,9 +72,7 @@
instance = new PopupBug();
}
- BugSystemInfo.appName = appname;
- BugSystemInfo.version = version;
- BugSystemInfo.locale = locale;
+ SimpleBug.init(appname, version, locale);
}
private void openPopup() {
Copied: Grasshopper/test/grasshopper.properties (from rev 1071, Grasshopper/src/grasshopper.properties)
===================================================================
--- Grasshopper/test/grasshopper.properties (rev 0)
+++ Grasshopper/test/grasshopper.properties 2025-10-08 14:34:47 UTC (rev 1072)
@@ -0,0 +1,3 @@
+url.tfMail=https://msg.yura.net/cgi-bin/TFmail.cgi
+url.formMail=https://msg.yura.net/cgi-sys/FormMail.cgi
+rec...@yu...
Modified: Grasshopper/test/net/yura/grasshopper/LogTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/LogTest.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/test/net/yura/grasshopper/LogTest.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -82,6 +82,12 @@
public static void testLogger() throws Exception {
+ logNormal();
+ logErrors();
+ }
+
+ public static void logNormal() throws Exception {
+
System.out.println("test logger");
Thread.sleep(100);
@@ -98,6 +104,11 @@
Thread.sleep(100);
+ }
+ public static void logErrors() throws Exception {
+
+ Logger logger = Logger.getLogger(LogTest.class.getName());
+
logger.warning("the warning message");
logger.severe("the severe message");
Modified: Grasshopper/test/net/yura/grasshopper/PopupBugTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/PopupBugTest.java 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/test/net/yura/grasshopper/PopupBugTest.java 2025-10-08 14:34:47 UTC (rev 1072)
@@ -42,8 +42,10 @@
new Thread() {
public void run() {
JFrame frame = new JFrame("Frame");
+ frame.setSize(200, 200);
frame.setVisible(true);
javax.swing.JDialog dialog = new javax.swing.JDialog(frame,"Dialog", true);
+ dialog.setSize(100, 100);
dialog.setVisible(true);
}
}.start();
Modified: Grasshopper/todo.txt
===================================================================
--- Grasshopper/todo.txt 2025-04-08 23:38:14 UTC (rev 1071)
+++ Grasshopper/todo.txt 2025-10-08 14:34:47 UTC (rev 1072)
@@ -1,5 +1,6 @@
+TODO:
-extract email and url into a settings file
+Inconsistencies - we trim from start for multiplart submit and from end for backup submit
|