[ https://issues.apache.org/jira/browse/TIKA-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15225474#comment-15225474 ]
Bob Paulin commented on TIKA-1910: ---------------------------------- Thinking of a way to pass the ServiceLoader... Allow Detectors, Parsers, and EncodingDetectors to leverage ServiceLoader in Constructor: Move object instantiation into the ServiceLoader class (replaces all instances of klass.newInstance() in ServiceLoader and TikaConfig {code} public <T> T createServiceInstance(Class<?> klass) throws InstantiationException, IllegalAccessException, InvocationTargetException { T serviceInstance = null; try{ serviceInstance = (T)klass.getConstructor(ServiceLoader.class).newInstance(this); }catch(NoSuchMethodException e) {} if(serviceInstance == null) { serviceInstance = (T) klass.newInstance(); } return serviceInstance; } {code} Then newInstance becomes {code} loaded = loader.createServiceInstance(loadedClass); {code} And service classes can have ServiceLoader Constructors: {code} public ChmParser(ServiceLoader serviceLoader) { this.htmlProxy = serviceLoader.getProxyService("org.apache.tika.parser.html.HtmlParser", Parser.class, ChmParser.class.getClassLoader()); } {code} Thoughts on this approach? Or is the no arg constructor sacred? > Tika 2.0 - Decouple Tika Parser Office Module from Other Dependencies > --------------------------------------------------------------------- > > Key: TIKA-1910 > URL: https://issues.apache.org/jira/browse/TIKA-1910 > Project: Tika > Issue Type: Improvement > Affects Versions: 2.0 > Reporter: Bob Paulin > Assignee: Bob Paulin > > Currently the Tika Parser Office Module depends on > Tika Parser Web Module > Tika Parser Package Module > Tika Parser Text Module > Using the proxies we can make those dependencies optional so if they are not > included on the classpath the code functions but performs no operation on > content that would be parsed on the optional dependencies. -- This message was sent by Atlassian JIRA (v6.3.4#6332)