@@ -192,13 +192,13 @@ private static ServerDetails initServer(TikaServerConfig tikaServerConfig) throw
192192 LOG .info ("Pipes-based parsing enabled for /tika and /rmeta endpoints" );
193193 }
194194
195- TikaResource . init (tikaLoader , serverStatus , pipesParsingHelper ,
195+ TikaResource tikaResource = new TikaResource (tikaLoader , serverStatus , pipesParsingHelper ,
196196 tikaServerConfig .isAllowPerRequestConfig ());
197197 JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean ();
198198
199199 List <ResourceProvider > resourceProviders = new ArrayList <>();
200200 List <Object > providers = new ArrayList <>();
201- loadAllProviders (tikaServerConfig , serverStatus , resourceProviders , providers );
201+ loadAllProviders (tikaServerConfig , serverStatus , tikaResource , resourceProviders , providers );
202202
203203 sf .setResourceProviders (resourceProviders );
204204
@@ -296,9 +296,10 @@ private static TLSServerParameters getTlsParams(TlsConfig tlsConfig)
296296 return parameters ;
297297 }
298298
299- private static void loadAllProviders (TikaServerConfig tikaServerConfig , ServerStatus serverStatus , List <ResourceProvider > resourceProviders , List <Object > writers )
299+ private static void loadAllProviders (TikaServerConfig tikaServerConfig , ServerStatus serverStatus ,
300+ TikaResource tikaResource , List <ResourceProvider > resourceProviders , List <Object > writers )
300301 throws TikaException , SAXException , IOException {
301- List <ResourceProvider > tmpCoreProviders = loadCoreProviders (tikaServerConfig , serverStatus );
302+ List <ResourceProvider > tmpCoreProviders = loadCoreProviders (tikaServerConfig , serverStatus , tikaResource );
302303
303304 resourceProviders .addAll (tmpCoreProviders );
304305 resourceProviders .add (new SingletonResourceProvider (new TikaWelcome (tmpCoreProviders )));
@@ -345,23 +346,24 @@ private static void loadAllProviders(TikaServerConfig tikaServerConfig, ServerSt
345346 }
346347
347348 // package-private so the pipes/async start-guard can be exercised directly in tests
348- static List <ResourceProvider > loadCoreProviders (TikaServerConfig tikaServerConfig , ServerStatus serverStatus ) throws TikaException , IOException , SAXException {
349+ static List <ResourceProvider > loadCoreProviders (TikaServerConfig tikaServerConfig , ServerStatus serverStatus ,
350+ TikaResource tikaResource ) throws TikaException , IOException , SAXException {
349351 List <ResourceProvider > resourceProviders = new ArrayList <>();
350352 boolean addAsyncResource = false ;
351353 boolean addPipesResource = false ;
352354 if (tikaServerConfig
353355 .getEndpoints ()
354356 .size () == 0 ) {
355- resourceProviders .add (new SingletonResourceProvider (new MetadataResource ()));
356- resourceProviders .add (new SingletonResourceProvider (new RecursiveMetadataResource ()));
357- resourceProviders .add (new SingletonResourceProvider (new DetectorResource (serverStatus )));
357+ resourceProviders .add (new SingletonResourceProvider (new MetadataResource (tikaResource )));
358+ resourceProviders .add (new SingletonResourceProvider (new RecursiveMetadataResource (tikaResource )));
359+ resourceProviders .add (new SingletonResourceProvider (new DetectorResource (serverStatus , tikaResource )));
358360 resourceProviders .add (new SingletonResourceProvider (new LanguageResource ()));
359361 resourceProviders .add (new SingletonResourceProvider (new TranslateResource (serverStatus )));
360- resourceProviders .add (new SingletonResourceProvider (new TikaResource () ));
361- resourceProviders .add (new SingletonResourceProvider (new UnpackerResource ()));
362- resourceProviders .add (new SingletonResourceProvider (new TikaMimeTypes ()));
363- resourceProviders .add (new SingletonResourceProvider (new TikaDetectors ()));
364- resourceProviders .add (new SingletonResourceProvider (new TikaParsers ()));
362+ resourceProviders .add (new SingletonResourceProvider (tikaResource ));
363+ resourceProviders .add (new SingletonResourceProvider (new UnpackerResource (tikaResource )));
364+ resourceProviders .add (new SingletonResourceProvider (new TikaMimeTypes (tikaResource )));
365+ resourceProviders .add (new SingletonResourceProvider (new TikaDetectors (tikaResource )));
366+ resourceProviders .add (new SingletonResourceProvider (new TikaParsers (tikaResource )));
365367 resourceProviders .add (new SingletonResourceProvider (new TikaVersion ()));
366368 if (tikaServerConfig .isAllowPipes ()) {
367369 addAsyncResource = true ;
@@ -373,25 +375,25 @@ static List<ResourceProvider> loadCoreProviders(TikaServerConfig tikaServerConfi
373375 } else {
374376 for (String endPoint : tikaServerConfig .getEndpoints ()) {
375377 if ("meta" .equals (endPoint )) {
376- resourceProviders .add (new SingletonResourceProvider (new MetadataResource ()));
378+ resourceProviders .add (new SingletonResourceProvider (new MetadataResource (tikaResource )));
377379 } else if ("rmeta" .equals (endPoint )) {
378- resourceProviders .add (new SingletonResourceProvider (new RecursiveMetadataResource ()));
380+ resourceProviders .add (new SingletonResourceProvider (new RecursiveMetadataResource (tikaResource )));
379381 } else if ("detect" .equals (endPoint )) {
380- resourceProviders .add (new SingletonResourceProvider (new DetectorResource (serverStatus )));
382+ resourceProviders .add (new SingletonResourceProvider (new DetectorResource (serverStatus , tikaResource )));
381383 } else if ("language" .equals (endPoint )) {
382384 resourceProviders .add (new SingletonResourceProvider (new LanguageResource ()));
383385 } else if ("translate" .equals (endPoint )) {
384386 resourceProviders .add (new SingletonResourceProvider (new TranslateResource (serverStatus )));
385387 } else if ("tika" .equals (endPoint )) {
386- resourceProviders .add (new SingletonResourceProvider (new TikaResource () ));
388+ resourceProviders .add (new SingletonResourceProvider (tikaResource ));
387389 } else if ("unpack" .equals (endPoint )) {
388- resourceProviders .add (new SingletonResourceProvider (new UnpackerResource ()));
390+ resourceProviders .add (new SingletonResourceProvider (new UnpackerResource (tikaResource )));
389391 } else if ("mime" .equals (endPoint )) {
390- resourceProviders .add (new SingletonResourceProvider (new TikaMimeTypes ()));
392+ resourceProviders .add (new SingletonResourceProvider (new TikaMimeTypes (tikaResource )));
391393 } else if ("detectors" .equals (endPoint )) {
392- resourceProviders .add (new SingletonResourceProvider (new TikaDetectors ()));
394+ resourceProviders .add (new SingletonResourceProvider (new TikaDetectors (tikaResource )));
393395 } else if ("parsers" .equals (endPoint )) {
394- resourceProviders .add (new SingletonResourceProvider (new TikaParsers ()));
396+ resourceProviders .add (new SingletonResourceProvider (new TikaParsers (tikaResource )));
395397 } else if ("version" .equals (endPoint )) {
396398 resourceProviders .add (new SingletonResourceProvider (new TikaVersion ()));
397399 } else if ("pipes" .equals (endPoint )) {
0 commit comments