Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9d47ed0
[TerminalEmulator]
gabywald Jun 30, 2026
51984a4
[TerminalEmulator]review (Part 1)
gabywald Jul 1, 2026
8c03fe8
[TerminalEmulator]review (Part 2)
gabywald Jul 1, 2026
e4900df
[TerminalEmulator]review (Part 3)
gabywald Jul 2, 2026
41895a2
[TerminalEmulator]Yet Another Termnal Emulator Implementation !
gabywald Jul 2, 2026
7f22f15
[TeminalEmulator]Adding Picocli basic configuration !
gabywald Jul 3, 2026
fa5a3e6
[TerminalEmulator]Debug some on terminal2 (f*cking AI code generation !)
gabywald Jul 3, 2026
ce30255
[TerminalEmulator]Preparing V3 !
gabywald Jul 6, 2026
5834405
[TerminalEmulator] terminal3 adding gui and commands and commands loader
gabywald Jul 7, 2026
d69904b
[TerminalEmulator] terminal3 reworking and notes
gabywald Jul 8, 2026
6e55469
[TerminalEmulator] terminal3 adding commands (and review)
gabywald Jul 8, 2026
6b05c34
[TerminalEmulator] terminal3 more Commands : Pipe / Redirection and T…
gabywald Jul 8, 2026
707c418
[TerminalEmulator]Text Editors (TODO scripting more)
gabywald Jul 9, 2026
de903e6
[TerminalEmulator]Review Unit / Integration Tests
gabywald Jul 11, 2026
b458dff
[DiversTestsJava]One More Time WebSocket / WS !
gabywald Jul 20, 2026
bf2648f
[WIP][TerminalEmulator]REST and WebSocket (and picocli arguments)
gabywald Jul 13, 2026
47de5a2
[WIP][TerminalEmulator]Terminal3, specific tests implementation WebSo…
gabywald Jul 15, 2026
7b4e1ce
[WIP][TerminalEmulator]Terminal3, specific tests implementation WebSo…
gabywald Jul 20, 2026
f310fae
[WIP][TerminalEmulator]Terminal3, specific tests implementation WebSo…
gabywald Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,6 @@
<module>testideas-websockets</module>
<module>testideas-sgbd</module>
<module>testideas-jersey</module>
<module>testideas-terminalEmulator</module>
</modules>
</project>
7 changes: 0 additions & 7 deletions testideas-rest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,6 @@
<version>${org.glassfish.jersey.version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-grizzly2-http -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>${org.glassfish.jersey.version}</version>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ public static void main(String[] args) {
rc.property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, Level.WARNING.getName());

try {
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(BASE_URI, rc);
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(HelloLauncher.BASE_URI, rc);
server.start();

System.out.println(String.format(
"Jersey app started with WADL available at " + "%sapplication.wadl\nHit enter to stop it...",
BASE_URI, BASE_URI));
HelloLauncher.BASE_URI, HelloLauncher.BASE_URI));

System.in.read();
server.shutdownNow();
Expand Down
41 changes: 41 additions & 0 deletions testideas-terminalEmulator/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
1 change: 1 addition & 0 deletions testideas-terminalEmulator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target/
23 changes: 23 additions & 0 deletions testideas-terminalEmulator/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>testideas-terminalEmulator</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
90 changes: 90 additions & 0 deletions testideas-terminalEmulator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
Test Ideas : Terminal Emulator

A complete Unix/Linux terminal emulator implemented in Java 8 with Swing GUI. (2 versions !)

## Version 1

Features:
- Virtual file system with directories and text files
- 14+ Unix-like commands (ls, cd, pwd, cat, echo, touch, mkdir, rm, rmdir, cp, mv, clear, help, exit)
- Minimalist scripting language with variables, conditions, and loops
- Swing-based graphical user interface
- Command history with up/down arrow navigation
- Basic tab completion
- Comprehensive unit and integration tests (JUnit 5)

Usage:
1. Compile: javac -d bin src/com/terminal/emulator/**/*.java
2. Run: java -cp bin com.terminal.emulator.Main
3. Type 'help' for available commands
4. Type 'exit' to quit

Project Structure:
com.terminal/
- Main.java (entry point)
- TerminalState.java (global state)
- gui/ (Swing GUI classes)
- filesystem/ (Directory, TerminalFile, FileNode)
- commands/ (Command interface and implementations)
- script/ (ScriptEngine, ScriptParser, ScriptContext)

tests/
- filesystem/ (FileSystemTest, DirectoryTest)
- commands/ (CommandParserTest, LsCommandTest, CdCommandTest, CommandFactoryTest)
- TerminalStateTest.java
- ScriptEngineTest.java
- IntegrationTest.java

```
Commands Available:
ls [OPTIONS] [FILE...] - List directory contents
cd [DIR] - Change directory
pwd - Print working directory
cat [FILE...] - Concatenate and print files
echo [STRING...] - Display a line of text
touch [FILE...] - Create empty files
mkdir [DIRECTORY...] - Create directories
rm [FILE...] - Remove files
rmdir [DIRECTORY...] - Remove empty directories
cp SOURCE DEST - Copy files
mv SOURCE DEST - Move or rename files
clear - Clear the terminal screen
help [COMMAND] - Display help information
exit - Exit the terminal

Scripting Language:
# Variables
set var=value
echo $var

# Conditions
if [ "$var" = "value" ]
echo Equal
fi

# File tests
if [ -f "file.txt" ]
echo File exists
fi

# While loops
set count=0
while [ "$count" != "5" ]
echo $count
# Note: Manual incrementation needed in this version
set count=1
done

# For loops
for item in a b c
echo $item
done

Note: The scripting engine is minimal and does not support all Unix shell features.
```

## Version 2

Adding rediretiuons, pipes, better scripting... !

...
Loading