How vinodivy/mygcd works
MyGCD accepts number pairs through REST, records them, and enqueues them; SOAP processing consumes queued pairs, computes their GCDs, and stores results for list and sum queries. REST also lists submitted inputs, while session control limits concurrent users. The sampled source supports the REST service/DAO and SOAP service/DAO interactions; the SOAP endpoint-to-service link follows the documented API structure, and the queue is documented as ActiveMQ-backed.
Main entry points: NumberServiceImpl.java Number Service · Gcdservice.java GCD Service · GCDDao.java GCD DAO · NumberController.java Number Controller
Components 15
REST API
- Number Controller
gcdrest/src/main/java/com/gcd/controller/NumberController.java - Number Service
gcdrest/src/main/java/com/gcd/service/NumberServiceImpl.java - Input DAO
gcdrest/src/main/java/com/gcd/dao/NumberDao.java - Input Number
commons/src/main/java/com/gcd/common/bean/InputNumber.java
Session Control
- Session Controller
commons/src/main/java/com/gcd/common/util/SessionController.java
Queue Processing
- Message Sender
commons/src/main/java/com/gcd/common/messaging/MessageSender.java - Message Consumer
commons/src/main/java/com/gcd/common/messaging/MessageConsumer.java - GCD Queue
SOAP API and Results
- SOAP Endpoint
gcdsoap/src/main/java/com/gcd/soap/endpoint/GCDEndpoint.java - GCD Service
gcdsoap/src/main/java/com/gcd/soap/service/Gcdservice.java - GCD DAO
gcdsoap/src/main/java/com/gcd/soap/dao/GCDDao.java - GCD Result
commons/src/main/java/com/gcd/common/bean/GCD.java
Other components
- REST Client
- SOAP Client
- MySQL
Connections 14
- REST Client → Number Controller: calls REST
- Number Controller → Number Service: invokes
- Number Service → Session Controller: checks session
- Number Service → Input DAO: reads and writes
- Input DAO → MySQL: persists inputs
- Number Service → Message Sender: sends pair
- Message Sender → GCD Queue: enqueues
- SOAP Client → SOAP Endpoint: calls SOAP
- SOAP Endpoint → GCD Service: dispatches
- GCD Service → Message Consumer: requests pair
- Message Consumer → GCD Queue: consumes
- GCD Service → GCD DAO: stores result
- GCD DAO → MySQL: persists results
- GCD Service → GCD DAO: fetches results