I'm a bit lost about the build process at the moment.  I've created a jar
file which contains the class the I wrote (this class extends
"org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector") and
placed this jar inside the connector-lib directory (both the
/dist/connector-lib and the /framework/dist/connector-lib directories in the
top level ManifoldCF directory).  After the build completes successfully, I
don't see my connector class listed inside the connectors.xml file of either
directory.  When I attempt to run ManifoldCF I see the following exception
owing to my new output connector implementation

org.apache.manifoldcf.core.interfaces.ManifoldCFException: No appropriate
constructor for IOutputConnector implementation
'package.myimplementationclass'.  Need xxx(ConfigParams).
        at
org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorN
oCheck(OutputConnectorFactory.java:164)
        at
org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(Outpu
tConnectorFactory.java:50)
        at
org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerCo
nnector(OutputConnectorManager.java:180)
        at
org.apache.manifoldcf.crawler.system.ManifoldCF.registerConnectors(ManifoldC
F.java:448)
        at
org.apache.manifoldcf.crawler.system.ManifoldCF.reregisterAllConnectors(Mani
foldCF.java:192)
        ...
Caused by: java.lang.NoSuchMethodException:
package.myimplementationclass.<init>()
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.getConstructor(Unknown Source)
        at
org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorN
oCheck(OutputConnectorFactory.java:140)
        ... 6 more

Can anyone please point me to what the issue is here?  I am not sure if this
is a configuration issue or what constructor (other than my own
implementation class constructor which I've implemented) I have to
implement.   

Pranesh Vadhirajan

-----Original Message-----
From: Karl Wright [mailto:[email protected]] 
Sent: Tuesday, September 17, 2013 12:33 PM
To: dev
Subject: Re: File System crawler question

Hi Pranesh,

Your connector jar has to be available in the path in order for it to be
found.  If you place your connector jar in the connector-lib directory, it
should find it.

Karl


On Tue, Sep 17, 2013 at 12:27 PM, Pranesh Vadhirajan <
[email protected]> wrote:

> Does this also require a new build?  When I tried the procedure you 
> mentioned, I am able to create an output connection with my 
> implementation class, but I see that it is labeled "uninstalled".  
> When I looked at the ManifoldCF page regarding building and deploying, 
> I get the sense that I need to deploy a jar file to the "lib" 
> directory and build my connector, but I'm not clear.  Do I just create 
> a jar file with my class and its dependencies and copy this jar to the 
> lib folder in the top-level directory and do a build?
>
> I appreciate your quick responses to my questions so far.  Please bear 
> with me if I'm being a bit annoying with my questions.
> Thanks,
>
> Pranesh Vadhirajan
>
> -----Original Message-----
> From: Karl Wright [mailto:[email protected]]
> Sent: Tuesday, September 17, 2013 11:52 AM
> To: dev
> Subject: Re: File System crawler question
>
> You can either add your connector's class name to the connectors.xml 
> file, in which case it will be registered when ManifoldCF is started, 
> or you can use the command-line command for registering a connector.  
> See the Programmatic Operation page for that option.
>
> Karl
>
>
> On Tue, Sep 17, 2013 at 11:47 AM, Pranesh Vadhirajan < 
> [email protected]> wrote:
>
> > Hi Karl,
> >
> > Thanks for your response.  I've decided to not use my file 
> > monitoring approach for a more elegant solution, I think.  I have 
> > started to implement my own File system output connector by  
> > extending the
org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector class.
> >  I
> > have a question about this however:  Once I've created my own 
> > implementation of an output connector from the above class, how can 
> > I register my output connector with ManifoldCF so that jobs can run 
> > properly with my own output connector implementation?
> >
> > I.e., at the moment (before implementing my own connector) when I 
> > create an output connection in ManifoldCF, I use the JSON API with 
> > "org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector"
> > as my class name.  How can I register my own class name (let's say 
> > "sample_package.myfileoutputconnector", which extends
> > "org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector"
> > ) with ManifoldCF, so that jobs can be defined to use my own output
> connector?
> >
> > Thanks,
> > Pranesh Vadhirajan
> >
> > -----Original Message-----
> > From: Karl Wright [mailto:[email protected]]
> > Sent: Monday, September 16, 2013 5:59 PM
> > To: dev
> > Subject: Re: File System crawler question
> >
> > Hi Pranesh,
> >
> > The API basically allows you to do anything you can do in the UI.  
> > In the UI you would use the Document Status report to figure out 
> > what documents belongs to a given job that were in a particular 
> > state, and that's exactly what you will need to do here.  See the 
> > "Programmatic Operation" page.
> > Here are some sections of interest:
> >
> >
> > http://manifoldcf.apache.org/release/trunk/en_US/programmatic-operat
> > io
> > n.html
> > #Queue+query+parameters
> >
> > ... and the following REST operation:
> >
> > repositoryconnectionquery/*<encoded_connection_name>
> >
> > *
> > *Karl
> > *
> >
> >
> > On Mon, Sep 16, 2013 at 5:50 PM, Pranesh Vadhirajan < 
> > [email protected]> wrote:
> >
> > > Hi All,
> > >
> > >
> > >
> > > I am implementing my own java client to crawl file system 
> > > resources via the ManifoldCF JSON based API.  I have been able to 
> > > define and run a job to crawl a file system repository and output 
> > > to a file system
> > destination.
> > >
> > >
> > >
> > > The trouble I'm having currently is to be able to know which 
> > > documents have been crawled via the ManifoldCF API.  I have looked 
> > > through the API documentation on the ManifoldCF release pages, but 
> > > I'm unable to find this information.  Could someone point me in 
> > > the
> right direction?
> > >
> > >
> > >
> > > When I try to use java API for file system monitoring (to check on 
> > > the contents of the output folder), I'm having issues with the 
> > > files being locked during the execution of the job.  Therefore, I 
> > > need to query ManifoldCF engine to understand what documents have 
> > > been changed in the output area so that I can run my file system 
> > > monitoring code on a different schedule.
> > >
> > >
> > >
> > > Please let me know if I didn't explain myself well here.
> > >
> > >
> > >
> > > Thanks,
> > > Pranesh
> > >
> > >
> > >
> > > Pranesh Vadhirajan
> > >
> > >
> > >
> > >
> >
> >
> >
>
>
>


Reply via email to