Skip to content

Commit fa728dd

Browse files
Fix case where we pass ServiceDefinition to the builder already (#402)
1 parent c86ae92 commit fa728dd

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

sdk-core/src/main/java/dev/restate/sdk/core/RestateEndpoint.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,24 @@ private ServiceDefinitionFactoryDiscovery() {
238238
@SuppressWarnings("unchecked")
239239
public static ServiceDefinitionFactory<Object, Object> discoverServiceDefinitionFactory(
240240
Object service) {
241+
if (service instanceof ServiceDefinitionFactory<?, ?>) {
242+
// We got this already
243+
return (ServiceDefinitionFactory<Object, Object>) service;
244+
}
245+
if (service instanceof ServiceDefinition<?>) {
246+
// We got this already
247+
return new ServiceDefinitionFactory<>() {
248+
@Override
249+
public ServiceDefinition<Object> create(Object serviceObject) {
250+
return (ServiceDefinition<Object>) serviceObject;
251+
}
252+
253+
@Override
254+
public boolean supports(Object serviceObject) {
255+
return serviceObject == service;
256+
}
257+
};
258+
}
241259
return Objects.requireNonNull(
242260
ServiceDefinitionFactorySingleton.INSTANCE.discoverFactory(service),
243261
() ->

0 commit comments

Comments
 (0)