Introduce Architectural Decision Records (ADR)#7
Introduce Architectural Decision Records (ADR)#7annikaholmqvist94 wants to merge 11 commits intomainfrom
Conversation
* chore: Update POM to Java 25 and rename artifactId/groupId * update folder name from example to juv25d --------- Co-authored-by: WHITEROSE <firasmoussa60@gmail.com>
* http parser * Bunny fixes. (only using input stream to recieve requests) * Bunny review improvements * Improved http parser ReadLine helper method to eliminate dependency on mark() and reset(). Implemented handleClient() using socket as a try-with-resources to avoid memory leakage in case of exception thrown by httpparser-methods. * NumberFormatException fix on line 53 -> 60 * chore: Update POM to Java 25 and rename artifactId/groupId (#11) * chore: Update POM to Java 25 and rename artifactId/groupId * update folder name from example to juv25d --------- Co-authored-by: WHITEROSE <firasmoussa60@gmail.com> * resolve conflicts --------- Co-authored-by: Kristina <kristina0x7@gmail.com> Co-authored-by: WHITEROSE <firasmoussa60@gmail.com>
* Add ServerLogging.java as separate class for logging. Implement said class in SocketServer.java to return logging information upon opening socket and user connecting to server. * Update ServerLogging.java to include a static initializer block and an empty utility class to prevent instantiation. * Update ServerLogging.java to reference same class in getLogger argument. * Update ServerLogging.java to check if handler has already been instantiated and allow for log level to be set by args in JVM (default level 'INFO' if no args provided). * normalize logging statements to be consistent * remove unused imports * Update SockerServer.java to properly log server socket errors. --------- Co-authored-by: Mats Rönnqvist <mats.f.ronnqvist@gmail.com> Co-authored-by: WHITEROSE <firasmoussa60@gmail.com>
* update POM with pitest * add junit plugin dependency
Rebased 4 commits in this PR.
…#27) * Fix PiTest by defining argLine and removing invalid Mockito javaagent * self close argline
… ADR process for the team
- Add TEMPLATE for writing future ADRs
- Add ADR-001 documenting static file serving architecture
Closes #16
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis PR establishes a complete Java HTTP server project by introducing build infrastructure (Maven wrapper, Dockerfile, CI/CD pipelines), architectural documentation framework (ADR README, template, and initial static file serving design), and core server components (socket handling, HTTP request parsing, response modeling, and logging utilities). Changes
Sequence DiagramsequenceDiagram
participant Client
participant SocketServer
participant HttpParser
participant HttpResponseWriter
participant App
App->>SocketServer: createSocket()
SocketServer->>SocketServer: listen on port 3000
Client->>SocketServer: connect
SocketServer->>HttpParser: parse(InputStream)
HttpParser->>HttpParser: readLine() × n
HttpParser->>HttpParser: extract method, path, version
HttpParser->>HttpParser: parse headers & body
HttpParser-->>SocketServer: HttpRequest
SocketServer->>HttpResponseWriter: write(OutputStream, HttpResponse)
HttpResponseWriter->>HttpResponseWriter: format status line
HttpResponseWriter->>HttpResponseWriter: write headers
HttpResponseWriter->>HttpResponseWriter: write body
HttpResponseWriter-->>Client: HTTP/1.1 response
Estimated Code Review Effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly Related Issues
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
Tip Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Changes
Closes #16
What's Added
ADR directory structure in
/docs/adr/README explaining ADR process for the team
TEMPLATE for writing future ADRs
ADR-001 documenting static file serving architecture
Why This Matters
ADRs help document architectural decisions so:
Review Focus
Size
Small PR: 3 markdown files
Next Steps
After this merges, PR #2 will add the actual implementation
of the static file handler.
Summary by CodeRabbit
Release Notes
New Features
Documentation
Chores