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.

Reply via email to