Ok. I did look and multiprocess and there is one issue - every part of manifold is then run in separate java VM. This is what I would like to avoid and run all parts (crawler-ui, authorization and api) as applications in single application server. We have got sindle machine for java applications and all of them must be run in single Tomcat instance to avoid splitting memory between different java VMs.
Like I said - I was able to achieve this simply by adding two separate ServletListeners: one for authorization and api applications that initializes ManifoldCF and connectors, and one for crawler-ui which also runs connecotors processing in separate thread. I can use this configuration on my own, but I was thinking that there can be someone else in similiar situation. 2012/9/4 Karl Wright <[email protected]> > If you do decide you really want a combined web application that does > everything, this is how I'd do it: > > (1) Create a new directory in framework, which contains the build > materials needed for your combined web application, called > "combined-service". > (2) Include a class that contains the equivalent of your patch code. > Or, you could also create a "framework/combined-classes" directory to > build a jar, similar to the framework/xxx-servlet packages. > (3) Include a web.xml in your combined-service area that invokes the > correct ServletContextListener for your > web application. > > If you really want to go ahead with this project, please create a > ticket that covers it, titled something like "provide a combined web > application encapsulating all ManifoldCF processes and services". > > Karl > > On Tue, Sep 4, 2012 at 6:15 AM, Karl Wright <[email protected]> wrote: > > Here was my response from yesterday: > > > > How does this proposal deal with the API service and the authority > > service? There are three independent web applications in ManifoldCF > > at this time, and a process that does the actual crawling. > > > >>>>>>> > > Those are only in jetty-launcher Main method > > <<<<<< > > > > Please examine the scripts under multiprocess-example. This differs > > from the single-process example in that all the web applications are > > broken out and are expected to run in a JVM different from the > > crawler. The single-process example is simply a way of running all of > > these under one process. > > > >>>>>>> > > Without those running application without embedded jetty (and > > jetty-launcher) is impossible. > > <<<<<< > > > > That's not true. Please read up on how ManifoldCF is run in a > > multiprocess environment. You are looking at the single-process > > example, and that is useful, but is not how many people use the > > system. > > > > We do not expect, at this time, for people to want to run the entire > > ManifoldCF application as one single web application under Tomcat. If > > that is your goal, we can try to provide such a deployment model, but > > since it is a fair bit of work it would be important to understand why > > you believe this is a requirement. > > > > Karl > > > > On Tue, Sep 4, 2012 at 5:38 AM, Maciej Liżewski > > <[email protected]> wrote: > >> There is ServletListener in every application but all it does > initializing > >> is call: > >> > >> ManifoldCF.initializeEnvironment(); > >> > >> but there are other tasks which should be done (at least by one > >> application): > >> > >> - init database, register and init connectors, register agent, etc: > >> > >>> ILockManager lockManager = LockManagerFactory.make(tc); > >>> lockManager.clearGlobalFlag(agentShutdownSignal); > >>> ManifoldCF.createSystemDatabase(tc); > >>> ManifoldCF.installTables(tc); > >>> ManifoldCF.registerThisAgent(tc); > >>> ManifoldCF.reregisterAllConnectors(tc); > >> > >> > >> - run agents as separate thread periodically calling: > >> > >>> ManifoldCF.startAgents(tc); > >> > >> > >> Those are only in jetty-launcher Main method and are needed to run > >> Manifold. Without those running application without embedded jetty (and > >> jetty-launcher) is impossible. > >> > >> My proposition is to provide separate (non-default, to maintain backward > >> compatibility) ServletListener for this task. If someone wishes to > launch > >> manifold in application server has just to change single line in > web.xml. >
