[ 
https://issues.apache.org/jira/browse/CONNECTORS-40?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12879215#action_12879215
 ] 

Karl Wright commented on CONNECTORS-40:
---------------------------------------

The implementation strategy is as follows:

(1) Add methods to the connector interfaces to support the UI.  These 
correspond directly to the chunks of UI contributed by each connector that used 
to be performed by jsps, which used to be located by a naming technique.  
(Every connector had a family of jsps, e.g. 
"output/<connector_name>/headerconfig.jsp", 
"output/<connector_name>/editconfig.jsp", etc.)  To do this in a way that will 
make it possible to easily replace the technology for the framework side of the 
UI later, I also introduced some interfaces so that there are no direct 
references to any JSP or servlet classes.

(2) Change the framework UI to call the connector methods rather than the old 
jsp components.

(3) Change all individual connectors to discard their JSPs and instead 
implement the connector methods.

Once this preliminary work is done, it should be possible to write a class 
loader to allow a user (or an installer) to specify a set of paths in which to 
search for jars.  This would make it possible for people to deliver connectors 
into the system without having to rebuild the war file, which currently is 
necessary.  That, in turn, makes it feasible to prebuild all LCF components and 
deliver it much like Solr is delivered.

The CONNECTORS-40 branch currently contains just the following:
- UI method additions to the output connection interface only;
- Changes to the framework UI code to call the new methods;
- Changes to the GTS output connector to implement the new methods (and remove 
the old JSPs).

The reason this has been checked in at this point is largely as a sanity check. 
 It's a lot easier to change direction when one connector has been done than it 
would be to change 15 of them.

Hope this helps.



> Classloader-based plug-in architecture would permit LCF to be prebuilt
> ----------------------------------------------------------------------
>
>                 Key: CONNECTORS-40
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-40
>             Project: Lucene Connector Framework
>          Issue Type: Improvement
>          Components: Framework core
>            Reporter: Karl Wright
>
> The LCF architecture at this point requires interaction with the build script 
> in order to add connectors.  This is because the connector JSPs and jars need 
> to be added to the appropriate war files.  However, there is another 
> architectural option that would eliminate this need, which is to use a custom 
> classloader to pull components from jars that are placed in a specific 
> directory or directories.
> In order for this to work, however, the UI components of every connector must 
> become part of a jar.  That implies that they will need to cease being JSPs, 
> and become instead methods of each connector class.  (There is no 
> proscription against using something like Velocity for assembling the 
> necessary output for a connector, however.)  Limiting the 
> backwards-compatibility impact of this change will be difficult, especially 
> after a first release is made, so it seems clear that any change along these 
> lines should be attempted before version 1.0 is released.

-- 
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