Hi Woonsan Are you saying we need to use http://svn.apache.org/repos/asf/jackrabbit/site/live/jcr/embedded-repository.html this deployment model instead of current one I am using ?
Currently I am deploying jackrabbit-webapp. Thanks Jimmy On Tue, Jun 25, 2019 at 9:15 AM jimy page <[email protected]> wrote: > Hi Woonsan > > Thanks for your input. > > So I can write my custom webapplication with JackrabbitRepositoryServlet. > But I will still need to deploy jackrabbit-webapp for all the other > functionalities. > In that case will not my custom-app still suffer from repository lock as > jackrabbit-webapp will still have lock on the repo ? > > Regards > Jimmy > > On Mon, Jun 24, 2019 at 9:20 PM Woonsan Ko <[email protected]> wrote: > >> On Mon, Jun 24, 2019 at 11:02 AM jimy page <[email protected]> wrote: >> > >> > Thanks Woonsan for your quick response. >> > >> > I tried configuring StatisticsServlet. What I did was, in >> jackrabbit-webapp >> > I have added StatisticsServlet. >> > But RepositoryContext context = >> > (RepositoryContext)this.getServletContext().getAttribute(name);----> at >> > this line I am unable to retrievecontext. >> > This is always coming null. >> >> jackrabbit-webapp doesn't seem to expose a RepositoryContext. So, I >> don't think you can use StatisticsServlet with it. >> You can perhaps use JackrabbitRepositoryServlet [1] in a custom web >> application to initialize your repository instance instead of >> jackrabbit-webapp. Then RepositoryContext will become available. >> >> Regards, >> >> Woonsan >> >> [1] >> http://jackrabbit.apache.org/api/trunk/org/apache/jackrabbit/servlet/jackrabbit/JackrabbitRepositoryServlet.html >> >> > >> > So I did it in a hacky way, created a new MetricsServlet overriding >> > StatisticsServlet's methods. >> > >> > >> > So my question is, what is the best way to retrieve RepositoryConfig >> object >> > ? >> > >> > The following code is giving me stat for newly created repo: >> > >> > RepositoryConfig config = null; >> > try { >> > config = RepositoryConfig.create(new >> File("/Users/xxxxx/repo2"));// >> > //**some try >> > // **some try ends here >> > } catch (ConfigurationException e) { >> > e.printStackTrace(); >> > } >> > RepositoryContext context = null; >> > try { >> > context = RepositoryContext.create(config); >> > if (context != null) { >> > RepositoryStatistics statistics = >> context.getRepositoryStatistics(); >> > ==========================> >> > >> > *I need help in how to instantiate RepositoryConfig, which will point to >> > the same repo that my jackrabbit instance is using.* >> > >> > *There is no documentation found for this :(.* >> > >> > >> > >> > *Thanks * >> > *Jimy* >> > >> > >> > >> > On Mon, Jun 24, 2019 at 7:01 PM Woonsan Ko <[email protected]> wrote: >> > >> > > On Mon, Jun 24, 2019 at 7:19 AM jimy page <[email protected]> >> wrote: >> > > > >> > > > I have jackrabbit runnig with repo /users/xyz/repo1 >> > > > Inside this I have repository.xml >> > > > >> > > > >> > > > I want to call >> org.apache.jackrabbit.servlet.jackrabbit.StatisticsServlet >> > > > to show different metrices. >> > > > >> > > > >> > > > *But the problem I am facing here is: --> In order to create >> > > > RepositoryConfig, I need to pass in the repo folder path, but >> Jackrabbit >> > > > process is already kept it locked. What is the alternative here ?* >> > > > >> > > > *I can copy over "/Users/xyz/repository/", to some other folder and >> use >> > > > that, but my question is in that case will I get all the repository >> > > > information ?* >> > > >> > > I don't think so. >> > > If you copy the data such as directories and *recreate* a. new >> > > repository instance, it will show new statistics of the new running >> > > repository. >> > > I think you should just configure the StatisticsServlet on the same >> > > web application which initializes the repository. >> > > >> > > Regards, >> > > >> > > Woonsan >> > > >> > > > >> > > > ----> Here is my sample code >> > > > >> > > > HttpServletRequest request, HttpServletResponse response) >> > > > throws ServletException, IOException { >> > > > String klass = RepositoryContext.class.getName(); >> > > > String name = getServletConfig().getInitParameter(klass); >> > > > if (name == null) { >> > > > name = klass; >> > > > } >> > > > >> > > > // RepositoryContext context = (RepositoryContext) >> > > > // getServletContext().getAttribute(name); >> > > > RepositoryConfig config = null; >> > > > try { >> > > > config = RepositoryConfig.create(new >> > > File("/Users/xyz/repository/")); >> > > > //**some try >> > > > // **some try ends here >> > > > } catch (ConfigurationException e) { >> > > > e.printStackTrace(); >> > > > } >> > > > RepositoryContext context = null; >> > > > try { >> > > > context = RepositoryContext.create(config); >> > > >> >
