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 <[email protected]> > 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 <[email protected]> > > > >> I'm building OpenCMIS to investigate me too :-P > >> > >> > >> 2011/8/3 Jens Hübel <[email protected]> > >> > >>> 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:[email protected]] > >>> Sent: Mittwoch, 3. August 2011 14:48 > >>> To: [email protected] > >>> 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 <[email protected]> > >>> > >>>> 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:[email protected]] > >>>> Sent: Mittwoch, 3. August 2011 13:22 > >>>> To: [email protected] > >>>> 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 <[email protected]> > >>>> > >>>>> 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
