* limitations under the License.
* ========================LICENSE_END===================================
*/
+
package org.oransc.policyagent.controllers;
import com.google.gson.Gson;
import java.util.Collection;
import java.util.Vector;
-import org.oransc.policyagent.configuration.ApplicationConfig;
import org.oransc.policyagent.exceptions.ServiceException;
import org.oransc.policyagent.repository.Service;
import org.oransc.policyagent.repository.Services;
@RestController
public class ServiceController {
- private final ApplicationConfig appConfig;
private final Services services;
private static Gson gson = new GsonBuilder() //
.serializeNulls() //
.create(); //
@Autowired
- ServiceController(ApplicationConfig config, Services services) {
- this.appConfig = config;
+ ServiceController(Services services) {
this.services = services;
}
}
private Service toService(ServiceRegistrationInfo s) {
- return new Service(s.name(), Duration.ofSeconds(s.keepAliveInterval()));
+ return new Service(s.name(), Duration.ofSeconds(s.keepAliveInterval()), s.callbackUrl());
}
@GetMapping("/services")
public ResponseEntity<?> getServices() {
- Collection<Service> allServices = this.services.getAll();
- Collection<ServiceStatus> result = new Vector<>(allServices.size());
- for (Service s : allServices) {
- result.add(toServiceStatus(s));
+ Collection<ServiceStatus> result = new Vector<>();
+ synchronized (this.services) {
+ for (Service s : this.services.getAll()) {
+ result.add(toServiceStatus(s));
+ }
}
return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
}