import org.osgi.dto.DTO;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.util.promise.DeferredPromise;
import org.osgi.util.promise.Promise;
public interface DataService {
Promise<Data> processData(String inputData);
}
class Data extends DTO {
String result;
}
@Component(service = DataService.class)
public class DataServiceImpl implements DataService {
@Activate
void activate() {
System.out.println("Data service activated");
}
@Override
public Promise<Data> processData(String inputData) {
DeferredPromise<Data> promise = new DeferredPromise<>();
Data data = new Data();
data.result = "Processed: " + inputData;
promise.resolve(data);
return promise.getPromise();
}
}
@Component
public class DataProcessingComponent {
@Reference
private DataService dataService;
@Activate
void activate() {
System.out.println("Data processing component activated");
dataService.processData("input data")
.thenAccept(data -> System.out.println("Processed data: " + data.result));
}
}