Hello Ariel,
On Thu, Jun 13, 2013 at 1:22 PM, Ariel Constenla-Haile <[email protected]>wrote: > On Thu, Jun 13, 2013 at 11:01:50AM +0530, Rajath Shashidhara wrote: > > Hello Ariel, > > > > I changed: > > registration.classname=org.apache.aoo.ucp.cmisucp.ucp.CMISContentProvider > > > central.registration.class=org.apache.aoo.ucp.cmisucp.ucp.CentralRegistrationClass > > > > > > I created the .oxt. Reinstalled. Still have the same problem.! > > Are you getting the error when installing, or you can install it but it > does not work? > > If the later, you also need to change the implementation name in the > configuration file to reflect the changes in the package name, as long > as > > private static final String m_implementationName = > CMISContentProvider.class.getName(); > > the implementation name of your component is bound to the package name > of the class implementing it. > > > I clean built the project. Now the problem is solved. The problem was that the project-uno.properties was not being compiled after changes. After a clean, the changes were compiled. > > Also, I did not understand what you mean by component factory > > implementation. I have not implemented any component factory! Please > > clarify. > > In CMISContentProvider you have > > > public static XSingleComponentFactory __getComponentFactory( String > sImplementationName ) { > XSingleComponentFactory xFactory = null; > > if ( sImplementationName.equals( m_implementationName ) ) > xFactory = > Factory.createComponentFactory(CMISContentProvider.class, m_serviceNames); > return xFactory; > } > > com.sun.star.lib.uno.helper.Factory is > main/javaunohelper/com/sun/star/lib/uno/helper/Factory.java > > It is a factory helper to create instances of your component (set > a break point there and in > CentralRegistrationClass.__getComponentFactory() to see how things work > when your component is instantiated). > > The problem is that this factory helper creates a new instance of your > component every time; it should create only one instance and return it > on later calls, mainly because you need to cache UCB contents. Try with > the following Basic code: > > > Sub Main > Dim o1, o2, o3, o4 > o1 = > CreateUnoService("org.apache.aoo.ucp.cmisucp.ucp.CMISContentProvider") > o2 = > CreateUnoService("org.apache.aoo.ucp.cmisucp.ucp.CMISContentProvider") > MsgBox EqualUnoObjects( o1, o2 ) > > o3 = CreateUnoService("com.sun.star.comp.FTPContentProvider") > o4 = CreateUnoService("com.sun.star.comp.FTPContentProvider") > MsgBox EqualUnoObjects( o3, o4 ) > End Sub > > CreateUnoService will create an instance of the given component, given > its implementation/service name. > > With your current implementation, you get a new instance every time. > Compare with the FTP content provider implementation: both objects > are the same instance. > > I ran the basic code that you have given. I understand what you were trying to explain. But is it very important now? How do I approach to solve this problem? Is this a nice to have problem or a high riorty problem? > Note that you could implement UCB contents caching by other means, but > a "createOneInstanceComponentFactory()" or the like is a nice to have. > > > Another nice-to-have: you are using > CMISContentProvider.__writeRegistryServiceInfo( XRegistryKey > xRegistryKey), this is obsolete, you can use the "Passive Component > Registration" > http://wiki.openoffice.org/wiki/Passive_Component_Registration > > > Leave nice-to-have things for the final touches, right now you have > other priorities, like implementing the CMIS UCB content. > > > Now I have completed the basic service ResultSet implementation. I tried to test it and I have a problem. I have pushed the error test code(client application) - to this repo: https://github.com/rajaths589/CMISContentProviderTest.git I have see the implementation of result set of other ucps. they use helper classes which I'm not using. I need help. I need to know where I'm going wrong. Thanks.! > Regards > -- > Ariel Constenla-Haile > La Plata, Argentina > -- Rajath S, M.Sc(Hons.) Physics, Birla Institute of Technology and Science - Pilani, Pilani
