I've attached a patch which, given the caveats already mentioned,
should allow a single-process model to execute the tests.  Please let
me know if it seems to work for you.

Karl

On Mon, Jul 18, 2011 at 8:49 AM, Karl Wright <daddy...@gmail.com> wrote:
> Looking at this a little more, the proper cleanup of a ManifoldCF
> process requires that the shutdown thread be run.  This thread is
> added as a shutdown hook to the JVM.  The "alreadyClosed" flag is used
> to prevent it from being run more than once if more than one shutdown
> signal is received, since it's also executed during object
> finalization (so that we catch termination within Tomcat and other
> application servers).
>
> So, basically, ManifoldCF.isInitialized and ManifoldCF.alreadyClosed
> perform this coordinated dance on a per-JVM basis.  ManifoldCF system
> initialization is meant to occur once per JVM.  Without starting and
> stopping a JVM, it's therefore not a realistic test.  Is there any way
> for Maven to run each test class in its own JVM, or does it insist on
> running them all within one?
>
> If there is no such possibility, we can look to adding a manual
> shutdown thread invocation in a reset method.  There are lots of
> potential problems with this approach in that dangling temporary
> threads that are waiting forever on sockets etc might be left around
> from previous tests, and other JVM static state such as the cache
> might also not get cleared, but the tests would probably execute
> nonetheless.
>
> Karl
>
>
> On Mon, Jul 18, 2011 at 8:26 AM, Karl Wright <daddy...@gmail.com> wrote:
>> I think the likely difference is that ant is running each test in its
>> own JVM, and Maven is not.
>>
>> Now, it is straightforward enough to add functionality that resets the
>> ManifoldCF core classes, and tie that into the tests.  However, that
>> is not how ManifoldCF will be used in practice.  The concern I have is
>> that there are other static variables (for instance, the cache
>> manager) which are never "reset", but would be if we need to "start
>> from scratch" again inside the same JVM every time a test is run.
>> Identifying all such cases may take some time.
>>
>> Karl
>>
>>
>> On Mon, Jul 18, 2011 at 8:04 AM, Karl Wright <daddy...@gmail.com> wrote:
>>> These tests run fine under ant, but the ant build invokes test files
>>> explicitly.  I'm not quite sure what Ant's behavior is here, and how
>>> exactly it differs from Maven's.
>>>
>>> Karl
>>>
>>> On Mon, Jul 18, 2011 at 7:41 AM, Tobias Rübner <d...@tobr.eu> wrote:
>>>> The unit tests are currently not working.
>>>> The first test in a module creates the properties and logging files and
>>>> initializes the framework.
>>>> All following tests are also creating those files, but because the 
>>>> framework
>>>> is already initialized, they are useless.
>>>>
>>>> This depends on the static behaviour of ManifoldCF.isInitialized.
>>>> After a test is done the ManifoldCF Object should also be reseted.
>>>>
>>>
>>
>

Reply via email to