Modernization of the Greek Atomic Energy Commission (EEAE) radioactive material shipment tracking application โ migrating an exploded Tomcat WAR with JSPX pages, servlets, and per-tenant shell scripts to a Next.js full-stack app while keeping Actian Ingres, stored procedures, and audit-grade HISTORY archiving intact.
Diakinisi is an internal EEAE system used to register, validate, import, and export
radioactive material shipments. The legacy stack ran on Tomcat with JSPX + JSTL SQL tags,
three Java servlets, and eleven near-duplicate bash import scripts per tenant. DiakinisiNew
reimplements the same domain on Next.js App Router with server-side API routes and a JDBC
bridge to the existing eeaedb database.
Today's and yesterday's shipment grids with the same joins across
shipp_ext, shipp_ext_multi, and se@shipp as the legacy main views.
/new form with live validation, lookup modals for destinations, orders, and representatives,
and INSERT parity against legacy insert.jspx (dates, FOB decimals, optional fields).
Replaced Tomcat FORM login and 12 container roles with app sessions, middleware-protected routes,
and tenant resolution via se@shipp.
Multipart uploads, stored procedure p_www_shipp_ext_buffer, and HISTORY archiving โ
consolidated from per-tenant shell scripts into parameterized Node services.
Keyboard shortcuts from legacy JS preserved (Enter submit, Esc back, + for lookups,
numeric navigation keys).
Parameterized queries throughout new APIs; legacy JSP string concatenation eliminated on the modern path.
| Legacy (Tomcat) | DiakinisiNew (Next.js) |
|---|---|
login.jspx | /login + POST /api/auth/login |
main.jspx | / โ today's shipments |
yesterday.jspx | /yesterday |
new.jspx + insert.jspx | /new + POST /api/shipments |
dest.jspx, order.jspx, repr.jspx | Lookup modals + /api/lookups/* |
| ValidationServlet (XML) | GET /api/validate/* (JSON) |
| Export / Import servlets + SCRIPTS/*.sh | POST /api/import, /api/export, Node batch runner |
iijdbc.jar connection pooleeaedb, ISO8859-7)Application code lives in the diakinisi-web package inside the DiakinisiNew monorepo layout.
View on GitHub โ