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
