3636import io .quarkus .deployment .annotations .ExecutionTime ;
3737import io .quarkus .deployment .annotations .Record ;
3838import io .quarkus .deployment .builditem .FeatureBuildItem ;
39+ import io .quarkus .deployment .builditem .IndexDependencyBuildItem ;
40+ import io .quarkus .deployment .builditem .nativeimage .ReflectiveClassBuildItem ;
41+ import io .quarkus .deployment .builditem .nativeimage .ReflectiveHierarchyBuildItem ;
3942import io .quarkus .deployment .builditem .nativeimage .ServiceProviderBuildItem ;
4043import io .quarkus .resteasy .reactive .spi .MessageBodyReaderOverrideBuildItem ;
4144import io .quarkus .resteasy .reactive .spi .MessageBodyWriterOverrideBuildItem ;
@@ -55,9 +58,25 @@ FeatureBuildItem feature() {
5558 }
5659
5760 @ BuildStep
58- void nativeSupport (BuildProducer <ServiceProviderBuildItem > serviceProviderProducer ) {
61+ IndexDependencyBuildItem indexUpstreamOllamaModule () {
62+ return new IndexDependencyBuildItem ("dev.langchain4j" , "langchain4j-ollama" );
63+ }
64+
65+ @ BuildStep
66+ void nativeSupport (BuildProducer <ServiceProviderBuildItem > serviceProviderProducer ,
67+ BuildProducer <ReflectiveClassBuildItem > reflectiveClassProducer ,
68+ BuildProducer <ReflectiveHierarchyBuildItem > reflectiveHierarchyProducer ) {
5969 serviceProviderProducer
6070 .produce (ServiceProviderBuildItem .allProvidersFromClassPath (ConfigSourceInterceptor .class .getName ()));
71+ reflectiveHierarchyProducer
72+ .produce (ReflectiveHierarchyBuildItem .builder ("dev.langchain4j.model.ollama.OllamaChatRequest" )
73+ .source (getClass ().getSimpleName ()).build ());
74+ reflectiveHierarchyProducer
75+ .produce (ReflectiveHierarchyBuildItem .builder ("dev.langchain4j.model.ollama.OllamaChatResponse" )
76+ .source (getClass ().getSimpleName ()).ignoreNested (false ).build ());
77+ reflectiveClassProducer .produce (ReflectiveClassBuildItem
78+ .builder ("dev.langchain4j.model.ollama.FormatSerializer" , "dev.langchain4j.model.ollama.OllamaDateDeserializer" )
79+ .constructors ().methods (false ).fields (false ).build ());
6180 }
6281
6382 @ BuildStep
0 commit comments