@@ -22,37 +22,49 @@ public static String getSystemPropOrEnvVar(String propertyName) {
2222 if (value != null && !value .isEmpty ()) {
2323 return value ;
2424 }
25- // Try env var (lucee.debugger .port -> LUCEE_DEBUGGER_PORT )
25+ // Try env var (lucee.dap .port -> LUCEE_DAP_PORT )
2626 String envName = propertyName .toUpperCase ().replace ('.' , '_' );
2727 return System .getenv (envName );
2828 }
2929
3030 /**
31- * Get debugger secret from environment/system property.
32- * Checks "lucee.debugger .secret" / "LUCEE_DEBUGGER_SECRET ".
31+ * Get DAP secret from environment/system property.
32+ * Checks "lucee.dap .secret" / "LUCEE_DAP_SECRET ".
3333 *
3434 * @return the secret, or null if not set (debugger disabled)
3535 */
3636 public static String getDebuggerSecret () {
37- String secret = getSystemPropOrEnvVar ("lucee.debugger .secret" );
37+ String secret = getSystemPropOrEnvVar ("lucee.dap .secret" );
3838 if (secret != null && !secret .trim ().isEmpty ()) {
3939 return secret .trim ();
4040 }
4141 return null ;
4242 }
4343
4444 /**
45- * Check if debugger is enabled (secret is set).
45+ * Check if DAP breakpoint support is enabled.
46+ * Reads ConfigImpl.DEBUGGER static field via reflection to match Lucee's state.
4647 *
47- * @return true if debugger secret is configured
48+ * @return true if DAP breakpoint support is enabled
4849 */
4950 public static boolean isDebuggerEnabled () {
50- return getDebuggerSecret () != null ;
51+ try {
52+ Class <?> configImpl = Class .forName ("lucee.runtime.config.ConfigImpl" );
53+ java .lang .reflect .Field field = configImpl .getField ("DEBUGGER" );
54+ return (boolean ) field .get (null );
55+ } catch (Exception e ) {
56+ // Fallback to env var check if reflection fails (e.g. older Lucee)
57+ if (getDebuggerSecret () == null ) {
58+ return false ;
59+ }
60+ String bp = getSystemPropOrEnvVar ("lucee.dap.breakpoint" );
61+ return bp == null || "true" .equalsIgnoreCase (bp .trim ());
62+ }
5163 }
5264
5365 /**
54- * Get debugger port from environment/system property.
55- * Checks "lucee.debugger .port" / "LUCEE_DEBUGGER_PORT ".
66+ * Get DAP port from environment/system property.
67+ * Checks "lucee.dap .port" / "LUCEE_DAP_PORT ".
5668 * Defaults to 9999 if secret is set but port is not.
5769 *
5870 * @return the port number, or -1 if debugger disabled (no secret)
@@ -62,7 +74,7 @@ public static int getDebuggerPort() {
6274 if (getDebuggerSecret () == null ) {
6375 return -1 ;
6476 }
65- String port = getSystemPropOrEnvVar ("lucee.debugger .port" );
77+ String port = getSystemPropOrEnvVar ("lucee.dap .port" );
6678 if (port == null || port .isEmpty ()) {
6779 return 9999 ; // default port
6880 }
0 commit comments