[ 
https://issues.apache.org/jira/browse/SOLR-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546526
 ] 

Koji Sekiguchi commented on SOLR-414:
-------------------------------------

Ryan,

On SOLR-319, I'd like SynonymFilterFactory to implement SolrCoreAware so that 
it can use "fieldType" instead of "tokenFactory"  to analyze synonyms.txt as 
Hoss suggested on that ticket. But due to above constraint, I got the following 
exception:

FATAL: org.apache.solr.common.SolrException: Invalid 'Aware' object: [EMAIL 
PROTECTED] -- org.apache.solr.util.plugin.SolrCoreAware must be an instance of: 
[org.apache.solr.request.SolrRequestHandler] 
[org.apache.solr.request.QueryResponseWriter] 
[org.apache.solr.handler.component.SearchComponent] 
        at 
org.apache.solr.core.SolrResourceLoader.assertAwareCompatibility(SolrResourceLoader.java:341)
        at 
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:227)
        at 
org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83)
        at 
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140)
        at org.apache.solr.schema.IndexSchema.readAnalyzer(IndexSchema.java:652)
        at org.apache.solr.schema.IndexSchema.access$000(IndexSchema.java:57)
        at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:338)
        at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:356)
        at 
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140)
        at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:365)
        at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:73)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:286)
        at org.apache.solr.core.SolrCore.getSolrCore(SolrCore.java:254)
        at 
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:68)
        at 
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
        at 
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
        at 
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
        at 
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Can the constraint be revised?

> Coherent plugin initialization strategy
> ---------------------------------------
>
>                 Key: SOLR-414
>                 URL: https://issues.apache.org/jira/browse/SOLR-414
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: 1.3
>            Reporter: Ryan McKinley
>            Assignee: Ryan McKinley
>             Fix For: 1.3
>
>         Attachments: SOLR-414-Initialization.patch, 
> SOLR-414-Initialization.patch, SOLR-414-Initialization.patch, 
> SOLR-414-Initialization.patch, SOLR-414-Initialization.patch
>
>
> We currently load many plugins with a Map or NamedList -- since SOLR-215, the 
> current core is not available through SolrCore.getSolrCore() and may need to 
> be used for initialization.
> Ideally, we could change the init() methods from:
> {panel}void init( final Map<String,String> args );{panel}
> to
> {panel}void init( final SolrCore core, final Map<String,String> args );{panel}
> Without breaking existing APIs, this change is difficult (some ugly options 
> exist).  This patch offers a solution to keep existing 1.2 APIs, and allow 
> access to the SolrConfig and SolrCore though ThreadLocal.  This should be 
> removed in a future release.
> {panel}
>   DeprecatedPluginUtils.getCurrentCore();
>   DeprecatedPluginUtils.getCurrentConfig();
> {panel}
> This patch removes the SolrConfig.Initalizable that was introduced in 
> SOLR-215.
> For background, see:
> http://www.nabble.com/Initializing---break-init%28%29-API-compatibility--tf4808463.html
> See also: SOLR-260, SOLR-215,  SOLR-399

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to