From 59b10ba33f4c0b1d399b5d31b7a07380abb62677 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Tue, 21 May 2024 17:04:17 -0400 Subject: Work on getting a running example This current version does deploy correctly and run, but it doesn't display correctly --- wotonomy-test/pom.xml | 171 +++++++++++++++++++++ wotonomy-test/src/main/java/Application.java | 14 ++ wotonomy-test/src/main/java/DirectAction.java | 71 +++++++++ wotonomy-test/src/main/java/Main.java | 54 +++++++ wotonomy-test/src/main/java/Main.wo/Main.html | 22 +++ wotonomy-test/src/main/java/Main.wo/Main.wod | 22 +++ wotonomy-test/src/main/java/OtherAction.java | 21 +++ wotonomy-test/src/main/java/Session.java | 10 ++ wotonomy-test/src/main/webapp/Main.wo/Main.html | 22 +++ wotonomy-test/src/main/webapp/Main.wo/Main.wod | 22 +++ .../main/webapp/WEB-INF/classes/Application.java | 14 ++ .../main/webapp/WEB-INF/classes/DirectAction.java | 71 +++++++++ .../src/main/webapp/WEB-INF/classes/Main.java | 54 +++++++ .../main/webapp/WEB-INF/classes/Main.wo/Main.html | 22 +++ .../main/webapp/WEB-INF/classes/Main.wo/Main.wod | 22 +++ .../main/webapp/WEB-INF/classes/OtherAction.java | 21 +++ .../src/main/webapp/WEB-INF/classes/Session.java | 10 ++ wotonomy-test/src/main/webapp/WEB-INF/web.xml | 17 ++ 18 files changed, 660 insertions(+) create mode 100644 wotonomy-test/pom.xml create mode 100644 wotonomy-test/src/main/java/Application.java create mode 100644 wotonomy-test/src/main/java/DirectAction.java create mode 100644 wotonomy-test/src/main/java/Main.java create mode 100644 wotonomy-test/src/main/java/Main.wo/Main.html create mode 100644 wotonomy-test/src/main/java/Main.wo/Main.wod create mode 100644 wotonomy-test/src/main/java/OtherAction.java create mode 100644 wotonomy-test/src/main/java/Session.java create mode 100644 wotonomy-test/src/main/webapp/Main.wo/Main.html create mode 100644 wotonomy-test/src/main/webapp/Main.wo/Main.wod create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/Application.java create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/DirectAction.java create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/Main.java create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.html create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.wod create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/OtherAction.java create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/classes/Session.java create mode 100644 wotonomy-test/src/main/webapp/WEB-INF/web.xml diff --git a/wotonomy-test/pom.xml b/wotonomy-test/pom.xml new file mode 100644 index 0000000..c7074d6 --- /dev/null +++ b/wotonomy-test/pom.xml @@ -0,0 +1,171 @@ + + + 4.0.0 + + com.ashardalon + wotonomy-test + 0.1-SNAPSHOT + war + + Wotonomy test + This is a test of the Wotonomy framework + + + UTF-8 + UTF-8 + 11 + 10.0.0 + 3.11.0 + 3.4.0 + + + + + jakarta.platform + jakarta.jakartaee-api + ${jakartaee-api.version} + provided + + + net.wotonomy + wotonomy-datastore + 1.0-alpha5-SNAPSHOT + + + net.wotonomy + wotonomy-foundation + 1.0-alpha5-SNAPSHOT + + + net.wotonomy + wotonomy-persistence + 1.0-alpha5-SNAPSHOT + + + net.wotonomy + wotonomy-ui + 1.0-alpha5-SNAPSHOT + + + net.wotonomy + wotonomy-web + 1.0-alpha5-SNAPSHOT + + + + + wotonomy-test + + + org.apache.maven.plugins + maven-compiler-plugin + ${compiler-plugin.version} + + + maven-war-plugin + ${war-plugin.version} + + true + + + + maven-site-plugin + 3.7.1 + + + org.apache.maven.wagon + wagon-webdav-jackrabbit + 3.5.3 + + + + + + maven-project-info-reports-plugin + 3.0.0 + + + + com.ashardalon + slim-tomcat-maven-plugin + 1.1-SNAPSHOT + + https://blog.ashardalon.com/ + ashardalon-tomcat + /wotonomy + true + + + + deploy + + deploy + + + + + + + + + + + + maven-javadoc-plugin + 3.4.0 + + + + maven-surefire-plugin + 2.22.1 + + + maven-changes-plugin + 2.12.1 + + + + + + + ashardalon-dav + dav:https://ashardalon.com/projects/wotonomy-test + + + ashardalon + Ashardalon Snapshots + https://repo.ashardalon.com/snapshots + + + ashardalon + Ashardalon Releases + https://repo.ashardalon.com/releases + + + + + ashardalon-forge + Ashardalon Forge + https://repo.ashardalon.com + + true + + + true + + + + + + ashardalon-forge + Ashardalon Forge + https://repo.ashardalon.com + + true + + + true + + + + diff --git a/wotonomy-test/src/main/java/Application.java b/wotonomy-test/src/main/java/Application.java new file mode 100644 index 0000000..815e210 --- /dev/null +++ b/wotonomy-test/src/main/java/Application.java @@ -0,0 +1,14 @@ +// Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov. +// Jad home page: http://www.geocities.com/kpdus/jad.html +// Decompiler options: packimports(3) fieldsfirst nonlb space +// Source File Name: Application.java + +import java.io.PrintStream; +import net.wotonomy.web.WOApplication; + +public class Application extends WOApplication { + + public Application() { + System.out.println("Application()"); + } +} diff --git a/wotonomy-test/src/main/java/DirectAction.java b/wotonomy-test/src/main/java/DirectAction.java new file mode 100644 index 0000000..f5dc851 --- /dev/null +++ b/wotonomy-test/src/main/java/DirectAction.java @@ -0,0 +1,71 @@ + +import java.io.PrintStream; +import java.util.Date; +import net.wotonomy.foundation.NSArray; +import net.wotonomy.foundation.NSDictionary; +import net.wotonomy.web.*; + +public class DirectAction extends WODirectAction { + + private Date testing; + + public DirectAction(WORequest aRequest) { + super(aRequest); + testing = new Date(); + System.out.println("DirectAction()"); + } + + public WOActionResults defaultAction() { + return pageWithName("Main"); + } + + public Object getTesting() { + return testing; + } + + public void setTesting(Date anObject) { + testing = anObject; + } + + public WOActionResults testAction() { + System.out.println("DirectAction.testAction()"); + takeFormValuesForKeyArray(request().formValues().allKeys()); + WOResponse response = new WOResponse(); + response.appendContentString("This is really just a test."); + response.appendContentString("

"); + response.appendContentString(Application.application().name()); + response.appendContentString("

"); + response.appendContentHTMLString("

"); + response.appendContentString("

"); + response.appendContentString(getTesting().toString()); + response.appendContentString("

"); + response.appendContentString(request().formValues().toString()); + response.appendContentString("

"); + response.appendContentString("browserLanguages: "); + response.appendContentString(request().browserLanguages().toString()); + response.appendContentString("

"); + response.appendContentString("uri: "); + response.appendContentString(request().uri().toString()); + response.appendContentString("

"); + response.appendContentString("adaptorPrefix: "); + response.appendContentString(request().adaptorPrefix().toString()); + response.appendContentString("

"); + response.appendContentString("applicationName: "); + response.appendContentString(request().applicationName().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerKey: "); + response.appendContentString(request().requestHandlerKey().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerPath: "); + response.appendContentString(request().requestHandlerPath().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerPathArray: "); + response.appendContentString(request().requestHandlerPathArray().toString()); + response.appendContentString("

"); + response.appendContentString("method: "); + response.appendContentString(request().method().toString()); + response.appendContentString("

"); + response.appendContentString("content: "); + return response; + } +} diff --git a/wotonomy-test/src/main/java/Main.java b/wotonomy-test/src/main/java/Main.java new file mode 100644 index 0000000..a12ca44 --- /dev/null +++ b/wotonomy-test/src/main/java/Main.java @@ -0,0 +1,54 @@ +import net.wotonomy.foundation.NSDate; +import net.wotonomy.web.*; + +public class Main extends WOComponent { + + private boolean showing; + private String textFieldValue; + + public Main() { + super(); + showing = true; + } + + public NSDate getCurrentTime() { + return new NSDate(); + } + + public boolean getShowTime() { + return showing; + } + public void setShowTime(boolean value) { + showing = value; + } + + public WOActionResults submit() { + System.out.println("Form Submitted"); + System.out.println("textfield says '" + getTextValue() + "'"); + return null; + } + + public void takeValuesFromRequest(WORequest r, WOContext c) { + System.out.println("taking values from request"); + if (r.formValueForKey("show") != null) + setShowTime(r.formValueForKey("show").equals("true")); + } + + public String getTimeLinkString() { + return showing ? "Hide the time display" : "Show time display"; + } + + public void setTextValue(String value) { + textFieldValue = value; + } + public String getTextValue() { + return textFieldValue; + } + + public WOComponent switchTime() { + System.out.println("switching time display"); + setShowTime(!getShowTime()); + return this; + } + +} diff --git a/wotonomy-test/src/main/java/Main.wo/Main.html b/wotonomy-test/src/main/java/Main.wo/Main.html new file mode 100644 index 0000000..6729a94 --- /dev/null +++ b/wotonomy-test/src/main/java/Main.wo/Main.html @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action. + + + diff --git a/wotonomy-test/src/main/java/Main.wo/Main.wod b/wotonomy-test/src/main/java/Main.wo/Main.wod new file mode 100644 index 0000000..16bd25e --- /dev/null +++ b/wotonomy-test/src/main/java/Main.wo/Main.wod @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action (not implemented yet). + + + diff --git a/wotonomy-test/src/main/java/OtherAction.java b/wotonomy-test/src/main/java/OtherAction.java new file mode 100644 index 0000000..00a3155 --- /dev/null +++ b/wotonomy-test/src/main/java/OtherAction.java @@ -0,0 +1,21 @@ +//A direct action subclass, with only one method +//that gets called from Main.wo + +import net.wotonomy.foundation.*; +import net.wotonomy.web.*; + +public class OtherAction extends WODirectAction { + + public OtherAction(WORequest r) { + super(r); + } + + public WOActionResults linkTestAction() { + System.out.println("creating and configuring Main.wo"); + WOComponent page = pageWithName("Main"); + page.takeValueForKey(new Boolean(false), "showTime"); + page.takeValueForKey("direct action called", "textValue"); + return page; + } + +} diff --git a/wotonomy-test/src/main/java/Session.java b/wotonomy-test/src/main/java/Session.java new file mode 100644 index 0000000..e3e9de7 --- /dev/null +++ b/wotonomy-test/src/main/java/Session.java @@ -0,0 +1,10 @@ +//Empty session file + +import net.wotonomy.web.WOSession; + +public class Session extends WOSession { + + public Session() { + } + +} diff --git a/wotonomy-test/src/main/webapp/Main.wo/Main.html b/wotonomy-test/src/main/webapp/Main.wo/Main.html new file mode 100644 index 0000000..6729a94 --- /dev/null +++ b/wotonomy-test/src/main/webapp/Main.wo/Main.html @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action. + + + diff --git a/wotonomy-test/src/main/webapp/Main.wo/Main.wod b/wotonomy-test/src/main/webapp/Main.wo/Main.wod new file mode 100644 index 0000000..16bd25e --- /dev/null +++ b/wotonomy-test/src/main/webapp/Main.wo/Main.wod @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action (not implemented yet). + + + diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/Application.java b/wotonomy-test/src/main/webapp/WEB-INF/classes/Application.java new file mode 100644 index 0000000..815e210 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/Application.java @@ -0,0 +1,14 @@ +// Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov. +// Jad home page: http://www.geocities.com/kpdus/jad.html +// Decompiler options: packimports(3) fieldsfirst nonlb space +// Source File Name: Application.java + +import java.io.PrintStream; +import net.wotonomy.web.WOApplication; + +public class Application extends WOApplication { + + public Application() { + System.out.println("Application()"); + } +} diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/DirectAction.java b/wotonomy-test/src/main/webapp/WEB-INF/classes/DirectAction.java new file mode 100644 index 0000000..f5dc851 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/DirectAction.java @@ -0,0 +1,71 @@ + +import java.io.PrintStream; +import java.util.Date; +import net.wotonomy.foundation.NSArray; +import net.wotonomy.foundation.NSDictionary; +import net.wotonomy.web.*; + +public class DirectAction extends WODirectAction { + + private Date testing; + + public DirectAction(WORequest aRequest) { + super(aRequest); + testing = new Date(); + System.out.println("DirectAction()"); + } + + public WOActionResults defaultAction() { + return pageWithName("Main"); + } + + public Object getTesting() { + return testing; + } + + public void setTesting(Date anObject) { + testing = anObject; + } + + public WOActionResults testAction() { + System.out.println("DirectAction.testAction()"); + takeFormValuesForKeyArray(request().formValues().allKeys()); + WOResponse response = new WOResponse(); + response.appendContentString("This is really just a test."); + response.appendContentString("

"); + response.appendContentString(Application.application().name()); + response.appendContentString("

"); + response.appendContentHTMLString("

"); + response.appendContentString("

"); + response.appendContentString(getTesting().toString()); + response.appendContentString("

"); + response.appendContentString(request().formValues().toString()); + response.appendContentString("

"); + response.appendContentString("browserLanguages: "); + response.appendContentString(request().browserLanguages().toString()); + response.appendContentString("

"); + response.appendContentString("uri: "); + response.appendContentString(request().uri().toString()); + response.appendContentString("

"); + response.appendContentString("adaptorPrefix: "); + response.appendContentString(request().adaptorPrefix().toString()); + response.appendContentString("

"); + response.appendContentString("applicationName: "); + response.appendContentString(request().applicationName().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerKey: "); + response.appendContentString(request().requestHandlerKey().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerPath: "); + response.appendContentString(request().requestHandlerPath().toString()); + response.appendContentString("

"); + response.appendContentString("requestHandlerPathArray: "); + response.appendContentString(request().requestHandlerPathArray().toString()); + response.appendContentString("

"); + response.appendContentString("method: "); + response.appendContentString(request().method().toString()); + response.appendContentString("

"); + response.appendContentString("content: "); + return response; + } +} diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.java b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.java new file mode 100644 index 0000000..a12ca44 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.java @@ -0,0 +1,54 @@ +import net.wotonomy.foundation.NSDate; +import net.wotonomy.web.*; + +public class Main extends WOComponent { + + private boolean showing; + private String textFieldValue; + + public Main() { + super(); + showing = true; + } + + public NSDate getCurrentTime() { + return new NSDate(); + } + + public boolean getShowTime() { + return showing; + } + public void setShowTime(boolean value) { + showing = value; + } + + public WOActionResults submit() { + System.out.println("Form Submitted"); + System.out.println("textfield says '" + getTextValue() + "'"); + return null; + } + + public void takeValuesFromRequest(WORequest r, WOContext c) { + System.out.println("taking values from request"); + if (r.formValueForKey("show") != null) + setShowTime(r.formValueForKey("show").equals("true")); + } + + public String getTimeLinkString() { + return showing ? "Hide the time display" : "Show time display"; + } + + public void setTextValue(String value) { + textFieldValue = value; + } + public String getTextValue() { + return textFieldValue; + } + + public WOComponent switchTime() { + System.out.println("switching time display"); + setShowTime(!getShowTime()); + return this; + } + +} diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.html b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.html new file mode 100644 index 0000000..6729a94 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.html @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action. + + + diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.wod b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.wod new file mode 100644 index 0000000..16bd25e --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/Main.wo/Main.wod @@ -0,0 +1,22 @@ + +MyTest + + + +The time is . +

+
+ + + +Here's a textfield: + + + +

+Here's a link to an external site. +
+And here's a link to a direct action (not implemented yet). + + + diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/OtherAction.java b/wotonomy-test/src/main/webapp/WEB-INF/classes/OtherAction.java new file mode 100644 index 0000000..00a3155 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/OtherAction.java @@ -0,0 +1,21 @@ +//A direct action subclass, with only one method +//that gets called from Main.wo + +import net.wotonomy.foundation.*; +import net.wotonomy.web.*; + +public class OtherAction extends WODirectAction { + + public OtherAction(WORequest r) { + super(r); + } + + public WOActionResults linkTestAction() { + System.out.println("creating and configuring Main.wo"); + WOComponent page = pageWithName("Main"); + page.takeValueForKey(new Boolean(false), "showTime"); + page.takeValueForKey("direct action called", "textValue"); + return page; + } + +} diff --git a/wotonomy-test/src/main/webapp/WEB-INF/classes/Session.java b/wotonomy-test/src/main/webapp/WEB-INF/classes/Session.java new file mode 100644 index 0000000..e3e9de7 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/classes/Session.java @@ -0,0 +1,10 @@ +//Empty session file + +import net.wotonomy.web.WOSession; + +public class Session extends WOSession { + + public Session() { + } + +} diff --git a/wotonomy-test/src/main/webapp/WEB-INF/web.xml b/wotonomy-test/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..b505b52 --- /dev/null +++ b/wotonomy-test/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + + + + + ApplicatonServlet + Application + + + + ApplicatonServlet + / + + -- cgit v1.2.3