Skip to content

Commit

Permalink
Servlet POC
Browse files Browse the repository at this point in the history
  • Loading branch information
bdw429s committed May 3, 2024
1 parent a921746 commit f4ab8db
Show file tree
Hide file tree
Showing 73 changed files with 585 additions and 442 deletions.
14 changes: 11 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,21 +102,29 @@ dependencies {
// https://mvnrepository.com/artifact/com.fasterxml.jackson.jr/jackson-jr-annotation-support
implementation 'com.fasterxml.jackson.jr:jackson-jr-annotation-support:2.16.1'
// https://mvnrepository.com/artifact/org.slf4j/slf4j-api
implementation 'org.slf4j:slf4j-api:2.0.12'
implementation 'org.slf4j:slf4j-api:2.0.12'
// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
implementation 'ch.qos.logback:logback-classic:1.5.2'
// https://mvnrepository.com/artifact/com.zaxxer/HikariCP
implementation 'com.zaxxer:HikariCP:5.1.0'

// MOVE TO BOXLANG WEB PROJECT
// https://mvnrepository.com/artifact/io.undertow/undertow-core/2.3.12.Final
implementation 'io.undertow:undertow-core:2.3.12.Final'
// https://mvnrepository.com/artifact/io.undertow/undertow-core/2.2.32.Final
implementation 'io.undertow:undertow-core:2.2.32.Final'

// once we remove undertow-servlet, I THINK this is the jar we'll need just to have the servlet API to compile against
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'

// I don't actually need these class files in the jar, they're here so I can compile against the servlet API and undertow so this will work in CommandBox.
compileOnly "io.undertow:undertow-servlet:2.2.32.Final"

// MOVE TO DERBY JDBC MODULE
// https://mvnrepository.com/artifact/org.apache.derby/derby
testImplementation 'org.apache.derby:derby:10.16.1.1'

}


/**
* Project Wide Helper function
* This is not a task, but a reusable UDF
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ortus/boxlang/compiler/Boxpiler.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public abstract class Boxpiler implements IBoxpiler {
/**
* The transaction service used to track subtransactions
*/
protected FRTransService frTransService = FRTransService.getInstance();
protected FRTransService frTransService = FRTransService.getInstance( true );
/**
* The disk class util
*/
Expand All @@ -58,7 +58,7 @@ public Boxpiler() {
// If we are in debug mode, let's clean out the class generation directory
if ( BoxRuntime.getInstance().inDebugMode() && Files.exists( this.classGenerationDirectory ) ) {
try {
logger.atDebug().log( "Running in debugmode, first startup cleaning out class generation directory: " + classGenerationDirectory );
logger.debug( "Running in debugmode, first startup cleaning out class generation directory: " + classGenerationDirectory );
// if ( false )
FileUtils.cleanDirectory( classGenerationDirectory.toFile() );
} catch ( IOException e ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
Transformer transformer = registry.get( node.getClass() );
if ( transformer != null ) {
Node javaNode = transformer.transform( node, context );
// logger.atTrace().log( "Transforming {} node with source {} - node is {}", transformer.getClass().getSimpleName(), node.getSourceText(), javaNode
// logger.trace( "Transforming {} node with source {} - node is {}", transformer.getClass().getSimpleName(), node.getSourceText(), javaNode
// );
return javaNode;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -681,7 +681,7 @@ private List<Expression> transformProperties( List<BoxProperty> properties ) {
new Property( ${name}, "${type}", ${init}, ${annotations} ,${documentation} )
""";
Expression javaExpr = ( Expression ) parseExpression( template, values );
// logger.atTrace().log( "{} -> {}", prop.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", prop.getSourceText(), javaExpr );

members.add( jNameKey );
members.add( javaExpr );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
)
""";
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;

Expand All @@ -106,7 +106,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
template = "${contextName}.unwrapQueryColumn( " + template + " )";
}
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
String template = "${expr}";

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );

return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal

if ( arrayLiteral.getValues().isEmpty() ) {
Node javaExpr = parseExpression( "new Array()", values );
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand All @@ -85,7 +85,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
Expression value = ( Expression ) transpiler.transform( expr, context );
javaExpr.getArguments().add( value );
}
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public Node transformEquals( BoxExpression left, Expression jRight, BoxAssignmen
""";

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( sourceText + " -> " + javaExpr.toString() );
// logger.trace( sourceText + " -> " + javaExpr.toString() );
return javaExpr;
}

Expand Down Expand Up @@ -173,7 +173,7 @@ public Node transformEquals( BoxExpression left, Expression jRight, BoxAssignmen
}

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( sourceText + " -> " + javaExpr.toString() );
// logger.trace( sourceText + " -> " + javaExpr.toString() );
return javaExpr;
}

Expand Down Expand Up @@ -224,7 +224,7 @@ private Node transformCompoundEquals( BoxAssignment assigment, TransformerContex

template = getMethodCallTemplate( assigment );
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( assigment.getSourceText() + " -> " + javaExpr.toString() );
// logger.trace( assigment.getSourceText() + " -> " + javaExpr.toString() );
return javaExpr;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal

default -> throw new ExpressionException( "not implemented", operation );
};
// logger.atTrace().log( node.getSourceText() + " (" + context.name() + ") -> " + javaExpr );
// logger.trace( node.getSourceText() + " (" + context.name() + ") -> " + javaExpr );
// addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public BoxBooleanLiteralTransformer( JavaTranspiler transpiler ) {
public Node transform( BoxNode node, TransformerContext context ) throws IllegalStateException {
BoxBooleanLiteral literal = ( BoxBooleanLiteral ) node;
BooleanLiteralExpr javaExpr = new BooleanLiteralExpr( literal.getValue() );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
throw new ExpressionException( "not implemented", operation );
}
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( node.getSourceText() + " (" + context.name() + ") -> " + javaExpr );
// logger.trace( node.getSourceText() + " (" + context.name() + ") -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public BoxDecimalLiteralTransformer( JavaTranspiler transpiler ) {
public Node transform( BoxNode node, TransformerContext context ) throws IllegalStateException {
BoxDecimalLiteral literal = ( BoxDecimalLiteral ) node;
DoubleLiteralExpr javaExpr = new DoubleLiteralExpr( literal.getValue() );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
};

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
TransformerContext safe = isSafeMethodCall ? TransformerContext.SAFE : context;
String side = safe == TransformerContext.NONE ? "" : "(" + safe.toString() + ") ";

// logger.atTrace().log( side + node.getSourceText() );
// logger.trace( side + node.getSourceText() );

Map<String, String> values = new HashMap<>() {

Expand All @@ -57,7 +57,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
}
String template = getTemplate( function );
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal

Node javaExpr;
javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );
return javaExpr;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public BoxIntegerLiteralTransformer( JavaTranspiler transpiler ) {
public Node transform( BoxNode node, TransformerContext context ) throws IllegalStateException {
BoxIntegerLiteral literal = ( BoxIntegerLiteral ) node;
IntegerLiteralExpr javaExpr = new IntegerLiteralExpr( literal.getValue() );
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
values.put( "methodKey", accessKey.toString() );
template = getTemplate( invocation );
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
String template = "classLocator.load(context,\"${prefix}\".concat( StringCaster.cast(${expr})),imports).invokeConstructor( ${contextName}, "
+ generateArguments( boxNew.getArguments() ) + " ).unWrapBoxLangClass()";
Node javaStmt = parseExpression( template, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaStmt );
// logger.trace( node.getSourceText() + " -> " + javaStmt );
addIndex( javaStmt, node );
return javaStmt;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public BoxNullTransformer( JavaTranspiler transpiler ) {
@Override
public Node transform( BoxNode node, TransformerContext context ) throws IllegalStateException {
Node javaExpr = new NullLiteralExpr();
// logger.atTrace().log( node.getSourceText() + " -> " + javaExpr );
// logger.trace( node.getSourceText() + " -> " + javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
};
String template = "(${expr})";
Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );
return javaExpr;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
}

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( side + node.getSourceText() + " -> " + javaExpr );
// logger.trace( side + node.getSourceText() + " -> " + javaExpr );
return javaExpr;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
operands.forEach( methodCallExpr::addArgument );
javaExpr = methodCallExpr;
}
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
BoxStringLiteral literal = ( BoxStringLiteral ) node;
StringLiteralExpr expr = new StringLiteralExpr( escape( literal.getValue() ) );
String side = context == TransformerContext.NONE ? "" : "(" + context.toString() + ") ";
// logger.atTrace().log( side + node.getSourceText() + " -> " + expr );
// logger.trace( side + node.getSourceText() + " -> " + expr );
return expr;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
if ( structLiteral.getType() == BoxStructType.Unordered ) {
if ( empty ) {
Node javaExpr = parseExpression( "new Struct()", values );
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand All @@ -90,13 +90,13 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
javaExpr.getArguments().add( value );
i++;
}
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
} else {
if ( empty ) {
Node javaExpr = parseExpression( "new Struct( Struct.TYPES.LINKED )", values );
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand All @@ -118,7 +118,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
javaExpr.getArguments().add( value );
i++;
}
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
}

Node javaExpr = parseExpression( template, values );
// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
addIndex( javaExpr, node );
return javaExpr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
arguments
);

// logger.atTrace().log( "{} -> {}", node.getSourceText(), javaExpr );
// logger.trace( "{} -> {}", node.getSourceText(), javaExpr );
return javaExpr;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
};
String template = "Assert.invoke(context,${expr});";
Node javaStmt = parseStatement( template, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaStmt );
// logger.trace( node.getSourceText() + " -> " + javaStmt );
addIndex( javaStmt, node );
return javaStmt;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
template = "if(true) return;";
}
Node javaStmt = parseStatement( template, new HashMap<>() );
// logger.atTrace().log( node.getSourceText() + " -> " + javaStmt );
// logger.trace( node.getSourceText() + " -> " + javaStmt );
addIndex( javaStmt, node );
return javaStmt;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
MethodCallExpr methodCallExpr = new MethodCallExpr( nameExpr, "writeToBuffer" );
methodCallExpr.addArgument( ( Expression ) transpiler.transform( bufferOuput.getExpression(), TransformerContext.NONE ) );
Statement jStatement = new ExpressionStmt( methodCallExpr );
// logger.atTrace().log( "{} -> {}", node.getSourceText(), jStatement );
// logger.trace( "{} -> {}", node.getSourceText(), jStatement );
addIndex( jStatement, node );
return jStatement;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
}

Node javaStmt = parseStatement( template, new HashMap<>() );
// logger.atTrace().log( node.getSourceText() + " -> " + javaStmt );
// logger.trace( node.getSourceText() + " -> " + javaStmt );
addIndex( javaStmt, node );
return javaStmt;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
stmt.addStatement( whileStmt );
}
stmt.addStatement( ( Statement ) parseStatement( template3, values ) );
// logger.atTrace().log( node.getSourceText() + " -> " + stmt );
// logger.trace( node.getSourceText() + " -> " + stmt );
addIndex( stmt, node );
return stmt;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
stmt.addStatement( whileStmt );
}

// logger.atTrace().log( node.getSourceText() + " -> " + stmt );
// logger.trace( node.getSourceText() + " -> " + stmt );
addIndex( stmt, node );
return stmt;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ public Node transform( BoxNode node, TransformerContext context ) throws Illegal
Map.entry( "enclosingClassName", enclosingClassName )
);
Statement javaStmt = parseStatement( registrationTemplate, values );
// logger.atTrace().log( node.getSourceText() + " -> " + javaStmt );
// logger.trace( node.getSourceText() + " -> " + javaStmt );
// commenting this out to prevent BoxFunctionDeclarationTransformer nodes in the SourceMaps
// This caused the debugger's stepping behavior to hit locations it shouldn't be stopping on
// addIndex( javaStmt, node );
Expand Down
Loading

0 comments on commit f4ab8db

Please sign in to comment.