1818import com ._4point .aem .docservices .rest_services .client .forms .RestServicesFormsServiceAdapter ;
1919import com ._4point .aem .docservices .rest_services .client .generatePDF .RestServicesGeneratePDFServiceAdapter ;
2020import com ._4point .aem .docservices .rest_services .client .helpers .Builder ;
21+ import com ._4point .aem .docservices .rest_services .client .helpers .Builder .RestClientFactory ;
2122import com ._4point .aem .docservices .rest_services .client .helpers .FormsFeederUrlFilterBuilder ;
2223import com ._4point .aem .docservices .rest_services .client .helpers .StandardFormsFeederUrlFilters ;
2324import com ._4point .aem .docservices .rest_services .client .html5 .Html5FormsService ;
25+ import com ._4point .aem .docservices .rest_services .client .jersey .JerseyRestClient ;
2426import com ._4point .aem .docservices .rest_services .client .output .RestServicesOutputServiceAdapter ;
2527import com ._4point .aem .docservices .rest_services .client .pdfUtility .RestServicesPdfUtilityServiceAdapter ;
2628import com ._4point .aem .fluentforms .api .DocumentFactory ;
4143import com ._4point .aem .fluentforms .impl .output .OutputServiceImpl ;
4244import com ._4point .aem .fluentforms .impl .pdfUtility .PdfUtilityServiceImpl ;
4345
46+ import jakarta .ws .rs .client .Client ;
47+
4448/**
4549 * AutoConfiguration for the FluentForms Rest Services Client library.
4650 *
5256@ AutoConfiguration
5357@ EnableConfigurationProperties (AemConfiguration .class )
5458public class FluentFormsAutoConfiguration {
55-
59+ // // TODO: Either call JerseuRestClient.factory(JerseyClientFactory.createClient(sslBundles, aemConfig.sslBundle())) or create SpringRestClient
60+ // private static final BiFunction<SslBundles, String, RestClientFactory> restClientFactory = (b, s)->JerseyRestClient.factory(JerseyClientFactory.createClient(b, s));
61+
5662 @ SuppressWarnings ("unchecked" )
57- private <T extends Builder > T setAemFields (T builder , AemConfiguration aemConfig , SslBundles sslBundles ) {
63+ private <T extends Builder > T setAemFields (T builder , AemConfiguration aemConfig ) {
5864 return (T )(builder .machineName (aemConfig .servername ())
5965 .port (aemConfig .port ())
6066 .basicAuthentication (aemConfig .user (), aemConfig .password ())
6167 .useSsl (aemConfig .useSsl ())
62- .clientFactory (()->JerseyClientFactory .createClient (sslBundles , aemConfig .sslBundle ()))
68+ // .clientFactory(()->JerseyClientFactory.createClient(sslBundles, aemConfig.sslBundle()))
6369 );
6470 }
6571
6672 @ ConditionalOnMissingBean
6773 @ Bean
68- public AdaptiveFormsService adaptiveFormsService (AemConfiguration aemConfig , Function <InputStream , InputStream > afInputStreamFilter , @ Autowired (required = false ) SslBundles sslBundles ) {
69- return setAemFields (AdaptiveFormsService .builder (), aemConfig , sslBundles )
74+ public RestClientFactory restClientFactory (AemConfiguration aemConfig , @ Autowired (required = false ) SslBundles sslBundles ) {
75+ Client jerseyClient = JerseyClientFactory .createClient (sslBundles , aemConfig .sslBundle ()); // Create custom Jersey Client with SSL bundle
76+ return JerseyRestClient .factory (jerseyClient ); // Create a RestClientFactory using JerseyClient implementation
77+ }
78+
79+ @ ConditionalOnMissingBean
80+ @ Bean
81+ public AdaptiveFormsService adaptiveFormsService (AemConfiguration aemConfig , Function <InputStream , InputStream > afInputStreamFilter , RestClientFactory restClientFactory ) {
82+ return setAemFields (AdaptiveFormsService .builder (restClientFactory ), aemConfig )
7083 .addRenderResultFilter (afInputStreamFilter )
7184 .build ();
7285 }
@@ -86,58 +99,58 @@ private Function<InputStream, InputStream> buildInputFilter(String aemPrefix, St
8699
87100 @ ConditionalOnMissingBean
88101 @ Bean
89- public AssemblerService assemblerService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
90- RestServicesDocAssemblerServiceAdapter adapter = setAemFields (RestServicesDocAssemblerServiceAdapter .builder (), aemConfig , sslBundles ).build ();
102+ public AssemblerService assemblerService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
103+ RestServicesDocAssemblerServiceAdapter adapter = setAemFields (RestServicesDocAssemblerServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
91104 return new AssemblerServiceImpl (adapter , UsageContext .CLIENT_SIDE );
92105 }
93106
94107 @ ConditionalOnMissingBean
95108 @ Bean
96- public DocAssuranceService docAssuranceService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
97- RestServicesDocAssuranceServiceAdapter adapter = setAemFields (RestServicesDocAssuranceServiceAdapter .builder (), aemConfig , sslBundles ).build ();
109+ public DocAssuranceService docAssuranceService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
110+ RestServicesDocAssuranceServiceAdapter adapter = setAemFields (RestServicesDocAssuranceServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
98111 return new DocAssuranceServiceImpl (adapter );
99112 }
100113
101114 @ ConditionalOnMissingBean
102115 @ Bean
103- public FormsService formsService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
104- RestServicesFormsServiceAdapter adapter = setAemFields (RestServicesFormsServiceAdapter .builder (), aemConfig , sslBundles ).build ();
116+ public FormsService formsService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
117+ RestServicesFormsServiceAdapter adapter = setAemFields (RestServicesFormsServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
105118 return new FormsServiceImpl (adapter , UsageContext .CLIENT_SIDE );
106119 }
107120
108121 @ ConditionalOnMissingBean
109122 @ Bean
110- public GeneratePDFService generatePDFService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
111- RestServicesGeneratePDFServiceAdapter adapter = setAemFields (RestServicesGeneratePDFServiceAdapter .builder (), aemConfig , sslBundles ).build ();
123+ public GeneratePDFService generatePDFService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
124+ RestServicesGeneratePDFServiceAdapter adapter = setAemFields (RestServicesGeneratePDFServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
112125 return new GeneratePDFServiceImpl (adapter );
113126 }
114127
115128 @ ConditionalOnMissingBean
116129 @ Bean
117- public Html5FormsService html5FormsService (AemConfiguration aemConfig , AemProxyConfiguration aemProxyConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
118- return setAemFields (Html5FormsService .builder (), aemConfig , sslBundles )
130+ public Html5FormsService html5FormsService (AemConfiguration aemConfig , AemProxyConfiguration aemProxyConfig , RestClientFactory restClientFactory ) {
131+ return setAemFields (Html5FormsService .builder (restClientFactory ), aemConfig )
119132 .addRenderResultFilter (afInputStreamFilter (aemProxyConfig ))
120133 .build ();
121134 }
122135
123136 @ ConditionalOnMissingBean
124137 @ Bean
125- public OutputService outputService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
126- RestServicesOutputServiceAdapter adapter = setAemFields (RestServicesOutputServiceAdapter .builder (), aemConfig , sslBundles ).build ();
138+ public OutputService outputService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
139+ RestServicesOutputServiceAdapter adapter = setAemFields (RestServicesOutputServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
127140 return new OutputServiceImpl (adapter , UsageContext .CLIENT_SIDE );
128141 }
129142
130143 @ ConditionalOnMissingBean
131144 @ Bean
132- public PdfUtilityService pdfUtilityService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
133- RestServicesPdfUtilityServiceAdapter adapter = setAemFields (RestServicesPdfUtilityServiceAdapter .builder (), aemConfig , sslBundles ).build ();
145+ public PdfUtilityService pdfUtilityService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
146+ RestServicesPdfUtilityServiceAdapter adapter = setAemFields (RestServicesPdfUtilityServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
134147 return new PdfUtilityServiceImpl (adapter );
135148 }
136149
137150 @ ConditionalOnMissingBean
138151 @ Bean
139- public ConvertPdfService convertPdfService (AemConfiguration aemConfig , @ Autowired ( required = false ) SslBundles sslBundles ) {
140- RestServicesConvertPdfServiceAdapter adapter = setAemFields (RestServicesConvertPdfServiceAdapter .builder (), aemConfig , sslBundles ).build ();
152+ public ConvertPdfService convertPdfService (AemConfiguration aemConfig , RestClientFactory restClientFactory ) {
153+ RestServicesConvertPdfServiceAdapter adapter = setAemFields (RestServicesConvertPdfServiceAdapter .builder (restClientFactory ), aemConfig ).build ();
141154 return new ConvertPdfServiceImpl (adapter );
142155 }
143156
0 commit comments