HTTP Server with Class Loader Isolation (Java)

Backend
HTTP Server with Class Loader Isolation (Java)

Tech Stack

Java
Linux
Git

Description

HTTP server that handles static and dynamic pages with isolation using class loaders — built in pure Java without servlet containers or Spring.

Each deployed application gets its own URLClassLoader over a JAR file, so Ricmlet implementations are loaded in isolation while sharing the same server process.

  • Static resources served from a configurable folder (HTML, images, etc.).
  • Dynamic Ricmlets (HttpRicmlet interface) instantiated per application via reflection + URLClassLoader.
  • HTTP session management with UUID session IDs and configurable timeout (5 min).
  • Worker threads handle concurrent connections; request routing distinguishes static vs Ricmlet URLs.
  • Example Ricmlets: counters, cookies, session-scoped state — demonstrates servlet-like patterns at low level.

Page Info

Static & dynamic requests

TCP socket server parses HTTP, serves files from a document root, and dispatches dynamic Ricmlets loaded from isolated application JARs.

/logo.png

    Soufian Elouazzani - DevOps / Software Engineer