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 15:10:40 GMT
The only difference between the two versions of the war of the InMemory
Repository is that in the 0.4.0 (that works fine on Jetty) there are two
more dependencies:

- jsr181-api-1.0-MR1.jar
- jsr250-api-1.0.jar

Could be the deployment problem caused by this lack?
If yes, it could be fixed reincluding this file in the building process of
the webapp.

2011/8/3 Piergiorgio Lucidi <piergiorgiolucidi@gmail.com>

> Hi Florian,
>
> thank you for your suggestion but trying to deploy the InMemory Repository
> webapp on Tomcat works fine.
> It seems that there is a problem only on Jetty, maybe later I will try to
> add other dependencies and I'll let you know.
>
> Now I'm trying with the 0.5.0-SNAPSHOT but without any result.
>
> 2011/8/3 Florian Müller <florian.mueller@alfresco.com>
>
>> Hi,
>>
>> Make sure that you have all OpenCMIS dependencies in your classpath.
>>
>>
>> Florian
>>
>> On 03/08/2011 15:44, Piergiorgio Lucidi wrote:
>> > Building the latest version of the code in the trunk, the InMemory
>> > Repository can't deploy anymore, it returns this exception trying
>> deploying
>> > on Jetty:
>> >
>> >  GRAVE: WSSERVLET11: failed to parse runtime descriptor:
>> >> com.sun.xml.ws.util.ServiceConfigurationError:
>> >> com.sun.xml.ws.api.pipe.TubelineAssemblerFactory: Provider
>> >>
>> org.apache.chemistry.opencmis.client.bindings.spi.webservices.wss.WssTubelineAssemblerFactory
>> >> is specified in
>> >>
>> file:/Users/piergiorgiolucidi/Documents/workspaces/manifold/opencmis/chemistry-opencmis-client/chemistry-opencmis-client-bindings/target/classes/META-INF/services/com.sun.xml.ws.api.pipe.TubelineAssemblerFactorybut
>> >> could not be instantiated: java.lang.ClassCastException
>> >> com.sun.xml.ws.util.ServiceConfigurationError:
>> >> com.sun.xml.ws.api.pipe.TubelineAssemblerFactory: Provider
>> >>
>> org.apache.chemistry.opencmis.client.bindings.spi.webservices.wss.WssTubelineAssemblerFactory
>> >> is specified in
>> >>
>> file:/Users/piergiorgiolucidi/Documents/workspaces/manifold/opencmis/chemistry-opencmis-client/chemistry-opencmis-client-bindings/target/classes/META-INF/services/com.sun.xml.ws.api.pipe.TubelineAssemblerFactorybut
>> >> could not be instantiated: java.lang.ClassCastException
>> >> at com.sun.xml.ws.util.ServiceFinder.fail(ServiceFinder.java:233)
>> >> at com.sun.xml.ws.util.ServiceFinder.access$300(ServiceFinder.java:141)
>> >> at com.sun.xml.ws.util.ServiceFinder$LazyIterator.next(
>> >> ServiceFinder.java:379)
>> >> at com.sun.xml.ws.api.pipe.TubelineAssemblerFactory.create(
>> >> TubelineAssemblerFactory.java:104)
>> >> at com.sun.xml.ws.server.WSEndpointImpl.<init>(WSEndpointImpl.java:147)
>> >> at com.sun.xml.ws.server.EndpointFactory.createEndpoint(
>> >> EndpointFactory.java:218)
>> >> at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467)
>> >> at
>> com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(
>> >> DeploymentDescriptorParser.java:253)
>> >> at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(
>> >> DeploymentDescriptorParser.java:147)
>> >> at
>> >>
>> com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(
>> >> WSServletContextListener.java:108)
>> >> at org.mortbay.jetty.handler.ContextHandler.startContext(
>> >> ContextHandler.java:549)
>> >> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>> >> at org.mortbay.jetty.webapp.WebAppContext.startContext(
>> >> WebAppContext.java:1282)
>> >> at org.mortbay.jetty.handler.ContextHandler.doStart(
>> >> ContextHandler.java:518)
>> >> at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
>> >> at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50
>> >> )
>> >> at org.mortbay.jetty.handler.HandlerCollection.doStart(
>> >> HandlerCollection.java:152)
>> >> at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50
>> >> )
>> >> at org.mortbay.jetty.handler.HandlerWrapper.doStart(
>> >> HandlerWrapper.java:130)
>> >> at org.mortbay.jetty.Server.doStart(Server.java:224)
>> >> at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50
>> >> )
>> >> at org.apache.manifoldcf.cmis_tests.Base.setUp(Base.java:333)
>> >> 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)
>> >> Caused by: java.lang.ClassCastException
>> >> at java.lang.Class.cast(Class.java:2990)
>> >> at com.sun.xml.ws.util.ServiceFinder$LazyIterator.next(
>> >> ServiceFinder.java:374)
>> >> ... 43 more
>> >
>> >
>> >
>> > 2011/8/3 Piergiorgio Lucidi <piergiorgiolucidi@gmail.com>
>> >
>> >> 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
>> >>
>> >>
>> >
>> >
>>
>>
>
>
> --
> 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