chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Piergiorgio Lucidi <piergiorgioluc...@gmail.com>
Subject Re: CMIS and Lucene
Date Wed, 03 Aug 2011 14:26:56 GMT
I'm building OpenCMIS to investigate me too :-P

2011/8/3 Jens Hübel <jhuebel@opentext.com>

> Thanks for posting! I will try to rebuild and take a look why it does not
> work. To get further information I need the server logs, but with your code
> I can debug it.
>
> Jens
>
> -----Original Message-----
> From: Piergiorgio Lucidi [mailto:piergiorgiolucidi@gmail.com]
> Sent: Mittwoch, 3. August 2011 14:48
> To: dev@chemistry.apache.org
> Subject: Re: CMIS and Lucene
>
> Hi Jens,
>
> here the code of my integration test that is used to create some content in
> the InMemory Repository, the OpenCMIS server is running because it is
> bootstrapped by Jetty / Maven. The CMIS Repository Connector works fine
> with
> Alfresco 3.4d Community, but I would like to have the OpenCMIS server in
> the
> test suite.
>
> In the following snippet I started to initialize the test environment with
> a
> new folder with a new content, here I don't have any problem, it works with
> the InMemory Repository:
>
>  private Session getCmisClientSession(){
> >     // default factory implementation
> >     SessionFactory factory = SessionFactoryImpl.newInstance();
> >     Map<String, String> parameters = new HashMap<String, String>();
> >     // user credentials
> >     parameters.put(SessionParameter.USER, "dummyuser");
> >     parameters.put(SessionParameter.PASSWORD, "dummysecret");
> >     // connection settings
> >     parameters.put(SessionParameter.ATOMPUB_URL,
> CMIS_ENDPOINT_TEST_SERVER
> > );
> >     parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB
> > .value());
> >     // create session
> >     return factory.getRepositories(parameters).get(0).createSession();
> >   }
> >  @Before
> >   public void createTestArea()
> >     throws Exception
> >   {
> >     try
> >     {
> >       Session session = getCmisClientSession();
> >       //creating a new folder
> >       Folder root = session.getRootFolder();
> >       Map<String, Object> folderProperties = new HashMap<String,
> > Object>();
> >       folderProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
> >       folderProperties.put(PropertyIds.NAME, "testdata");
> >
> >       Folder newFolder = root.createFolder(folderProperties);
> >       //create a new content in the folder
> >       String name = "testdata1.txt";
> >       // properties
> >       // (minimal set: name and object type id)
> >       Map<String, Object> contentProperties = new HashMap<String,
> > Object>();
> >       contentProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
> >       contentProperties.put(PropertyIds.NAME, name);
> >
> >       // content
> >       byte[] content = "CMIS Testdata One".getBytes();
> >       InputStream stream = new ByteArrayInputStream(content);
> >       ContentStream contentStream = new ContentStreamImpl(name,
> newBigInteger(content),
> > "text/plain", stream);
> >
> >        // create a major version
> >       Document newContent1 = newFolder.createDocument(contentProperties,
> > contentStream, null);
>
>
> But if I try to search the new content in the InMemory Repository, in the
> same way I implemented in the CMIS Repository Connector:
>
>  ItemIterable<QueryResult> results = session.query("SELECT * FROM
> > cmis:folder WHERE cmis:name='testdata'", false);
> >       for (QueryResult result : results) {
> >         String id = result.getPropertyValueById(PropertyIds.OBJECT_ID);
> >       }
>
>
>
> It returns the following exception:
>
>  org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException:
> null
> > at
> >
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(
> > AbstractAtomPubService.java:450)
> > at
> >
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(
> > AbstractAtomPubService.java:568)
> > at
> >
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl.query(
> > DiscoveryServiceImpl.java:141)
> > at org.apache.chemistry.opencmis.client.runtime.SessionImpl$3.fetchPage(
> > SessionImpl.java:557)
> > at
> >
> org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getCurrentPage(
> > AbstractIterator.java:132)
> > at
> >
> org.apache.chemistry.opencmis.client.runtime.util.CollectionIterator.hasNext(
> > CollectionIterator.java:48)
> > at org.apache.manifoldcf.cmis_tests.APISanityTest.createTestArea(
> > APISanityTest.java:139)
> > 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:597)
> > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
> > FrameworkMethod.java:44)
> > at org.junit.internal.runners.model.ReflectiveCallable.run(
> > ReflectiveCallable.java:15)
> > at org.junit.runners.model.FrameworkMethod.invokeExplosively(
> > FrameworkMethod.java:41)
> > at org.junit.internal.runners.statements.RunBefores.evaluate(
> > RunBefores.java:27)
> > at org.junit.internal.runners.statements.RunAfters.evaluate(
> > RunAfters.java:31)
> > at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(
> > BlockJUnit4ClassRunner.java:79)
> > at org.junit.runners.BlockJUnit4ClassRunner.runChild(
> > BlockJUnit4ClassRunner.java:71)
> > at org.junit.runners.BlockJUnit4ClassRunner.runChild(
> > BlockJUnit4ClassRunner.java:49)
> > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> > at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> > at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
> > JUnit4TestReference.java:49)
> > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(
> > TestExecution.java:38)
> > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> > RemoteTestRunner.java:467)
> > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> > RemoteTestRunner.java:683)
> > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
> > RemoteTestRunner.java:390)
> > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
> > RemoteTestRunner.java:197)
>
>
> Let me know if you have any hints!
>
> Thank you again for your support.
>
> Regards,
>
> Piergiorgio
>
> 2011/8/3 Jens Hübel <jhuebel@opentext.com>
>
> > Hi Pergiorio,
> >
> > do you have a code piece that I can take a look at? What is your client
> > API? Do you connect to Chemistry client API
> (chemistry-opencmis-client-api)?
> > Or perhaps you can grab the query sent from the log file?
> >
> > Thanks Jens
> >
> >
> > -----Original Message-----
> > From: Piergiorgio Lucidi [mailto:piergiorgiolucidi@gmail.com]
> > Sent: Mittwoch, 3. August 2011 13:22
> > To: dev@chemistry.apache.org
> > Subject: Re: CMIS and Lucene
> >
> > Hi Jens,
> >
> > I contributed to the Apache ManifoldCF (ex Lucene Connector Framework)
> > project implementing the CMIS Connector using OpenCMIS 0.4.0.
> >
> > Now I'm working on integration test trying to use the OpenCMIS InMemory
> > Repository that is available from Apache Chemistry ;)
> >
> > I have some problems because now I'm finishing my test implementation but
> > it
> > seems that I can't execute queries on the InMemory Repository, it returns
> a
> > null string in the convertStatusCode method.
> >
> > The CMIS Repository Connector that I implemented for ManifoldCF has a job
> > parameter that is the CMIS Query, this parameter is used by agents to
> > select
> > all the contents that needs to be indexed on the Output Connector (for
> > example Apache Solr).
> > Without a query feature exposed by the InMemory Repository I can't test
> the
> > connector in the right way.
> >
> > I tried to use the latest version of the InMemory Repository
> > (0.5.0-SNAPSHOT) but with the same result.
> >
> > Have you got any ideas to solve this problem?
> > Thank you for your support.
> >
> > Regards,
> > Piergiorgio
> >
> >
> > 2011/8/3 Jens Hübel <jhuebel@opentext.com>
> >
> > > Hi Chemistries,
> > >
> > >
> > >
> > > is anyone of us already involved in the Lucene project?
> > >
> > >
> > >
> > > Reading this here
> > > http://search-lucene.com/m/wI38e1K3BWJ&subj=Re+CMIS+Connector+Tests
> > >
> > >
> > >
> > > I think it would make sense to give them an introduction to what we
> have.
> > >
> > >
> > >
> > > if I understand this correctly one of the options they discuss is to
> > create
> > > an InMemory mock server. It does not make much sense to duplicate what
> we
> > > already have (and if we need getContentChanges() for that I am happy to
> > > implement this).
> > >
> > >
> > >
> > > Jens
> > >
> > >
> > >
> > >
> >
> >
> > --
> > Piergiorgio Lucidi
> > Web: http://about.me/piergiorgiolucidi
> >
>
>
>
> --
> Piergiorgio Lucidi
> Web: http://about.me/piergiorgiolucidi
>



-- 
Piergiorgio Lucidi
Web: http://about.me/piergiorgiolucidi

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message