- Java 21 - Core programming languages (different versions per service)
- Spring Boot 3.x - Modern application framework
- Spring WebFlux - Reactive web framework for high performance
- Spring Data R2DBC - Reactive database access (Intershop)
- Project Reactor - Reactive programming foundation
- Lombok - Code reduction and boilerplate elimination
- Maven - Centralized dependency and build management
- Redis - High-performance caching and session storage
- H2 Database - Lightweight, embedded database for development
- Docker - Containerized deployment and development
- Docker Compose - Multi-service orchestration
- RESTful APIs - HTTP-based service communication
- OpenAPI 3.0 - API specification and documentation (Payment Service)
- Thymeleaf - Server-side templating (Intershop)
- Java 21 - Core programming language for both services
- Maven 3.6+ for build management
- Docker & Docker Compose for containerized deployment
- Git for version control
- Clone the repository:
git clone https://github.com/danjos91/multiproject.git
cd multiproject- Start keycloak and redis:
docker-compose up -d- Java 21 JDK
- Maven 3.6+
- Docker & Docker Compose (for Keycloak and Redis)
- Git
# Start Keycloak and Redis services
docker-compose up -d
# Verify Keycloak is running
curl http://localhost:8082/realms/master-
Access Keycloak Admin Console:
- Open http://localhost:8082/admin
- Login with
admin/admin123
-
Follow Keycloak Setup:
- Refer to
KEYCLOAK_SETUP.mdfor detailed configuration - Create the
intershoprealm - Configure OAuth2 clients and users
- Set up required scopes
- Refer to
# Build everything from the root directory
mvn clean install -DskipTestsOption A: Run Individual Services
Intershop Service (Port 8080):
cd intershop
mvn spring-boot:runPayment Service (Port 8081):
cd payment-service
mvn spring-boot:runOption B: Run from Multi-Project Root
# Run both services simultaneously (in separate terminals)
mvn -pl intershop spring-boot:run
mvn -pl payment-service spring-boot:run- Intershop: http://localhost:8080 (redirects to Keycloak for authentication)
- Payment Service API: http://localhost:8081
- Keycloak Admin: http://localhost:8082/admin
If you want to run without OAuth2 authentication:
Redis on Docker:
docker run --name redis-server -it --rm -p 6379:6379 redis:7.4.2-bookworm sh -c "redis-server & sleep 7 && redis-cli"Run Services:
# Intershop Service
cd intershop && mvn spring-boot:run
# Payment Service
cd payment-service && mvn spring-boot:run# Test all services
mvn test# Build Intershop
cd intershop && docker build -t intershop .
# Build Payment Service
cd payment-service && docker build -t payment-service .