yasithdev opened a new pull request, #600:
URL: https://github.com/apache/airavata/pull/600

   ## Summary
   
   - **Hibernate migration**: Replaced OpenJPA with Hibernate across all 127 
entities in `airavata-api` (13 `@ForeignKey` → `@OnDelete` annotations, removed 
bytecode enhancement plugin, deleted `persistence.xml`)
   - **Module conversion**: Converted `research-service`, `agent-service`, and 
`file-server` from standalone Spring Boot apps to plain library jars — stripped 
`@SpringBootApplication`, auth filters, OpenAPI/CORS config, assembly 
descriptors
   - **New transport servers**: Created `airavata-rest-server` (unified REST 
surface with centralized auth, OpenAPI, CORS, absorbed Kafka proxy from 
`restproxy`) and `airavata-grpc-server` (unified gRPC with auth interceptor)
   - **Thrift server Spring Boot wrap**: Converted `airavata-thrift-server` 
from custom `main()` bootstrap to Spring-managed `SmartLifecycle` with handlers 
as `@Component` beans
   - **Unified launcher**: Created `airavata-server` module with 
`@SpringBootApplication`, conditional server activation via 
`@ConditionalOnServer`, single `application.yml`, distribution tarball
   - **Shared infrastructure**: `@ConditionalOnServer` annotation, unified 
`UserContext`, `AiravataServerProperties`
   - **API normalization**: File-server endpoints moved under `/api/v1/files/*`
   
   ### Architecture after this PR
   
   ```
   airavata-server (launcher — @SpringBootApplication)
   ├── airavata-rest-server   (@ConditionalOnServer("rest"))
   ├── airavata-grpc-server   (@ConditionalOnServer("grpc"))
   ├── airavata-thrift-server (@ConditionalOnServer("thrift"))
   └── modules/ (plain library jars)
       ├── research-service
       ├── agent-service
       └── file-server
   ```
   
   All servers share one `ApplicationContext` and can be selectively activated:
   ```bash
   ./bin/airavata.sh --airavata.servers=rest --airavata.servers=grpc
   ```
   
   ## Test Plan
   
   - [x] Full `mvn clean install -DskipTests -T4` passes (all 10 modules)
   - [x] `mvn test` passes on airavata-api and airavata-thrift-server
   - [ ] `tilt up` starts unified server with all three transports
   - [ ] REST endpoints accessible on port 18889 (Swagger UI at 
`/swagger-ui.html`)
   - [ ] gRPC services accessible on port 19900
   - [ ] Thrift services accessible on port 8930
   - [ ] Auth filter correctly extracts Bearer token and X-Claims headers
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to