IF the test case is extending from the old GeoServerAbstractTestSupport
base class then it would be using a pre 2.x data directory. If it extends
from GeoServerSystemTestSupport then it would be using a post 2.x version.
On Tue, May 20, 2014 at 6:56 AM, Jody Garnett <[email protected]>wrote:
> So it is likely that our test cases use a "pre 2.x" data directory then -
> is it worth fixing that?
>
> Can we unregister the persister after it is done reading ... or were you
> expecting that to already be done...
>
> Jody Garnett
>
>
> On Mon, May 19, 2014 at 11:37 PM, Justin Deoliveira <
> [email protected]> wrote:
>
>> The way it works is that when GeoServer starts up and recognizes a pre
>> 2.x data directory it adds the persister before reading it. That way while
>> it reads it and populates the catalog all the objects are serialized out in
>> the current format.
>>
>> This differs from a normal start up in which the persister is not added
>> until after the entire catalog/config contents is read.
>>
>>
>> On Fri, May 16, 2014 at 10:31 AM, Jody Garnett <[email protected]>wrote:
>>
>>> can you describe how it is used to migrate an older configuration? Is it
>>> a case of migration modifying the data structure and depending on the
>>> persister to write out the change in a "modern" form? Looking over at
>>> Kevin's debugger we are certainly seeing two GeoServerPersisters in the
>>> list of listeners.
>>>
>>> Jody Garnett
>>>
>>>
>>> On Fri, May 16, 2014 at 5:16 AM, Justin Deoliveira <
>>> [email protected]> wrote:
>>>
>>>> There is a bit of tricky logic when it comes to registering the
>>>> persister during startup, it is used for a couple of purposes, one being to
>>>> migrate from older configuration, you'll see code that adds it, does
>>>> something, and then removes it after. Possible something has creeped in but
>>>> yes, there should only be one persister registered at any given time.
>>>>
>>>>
>>>> On Thu, May 15, 2014 at 6:47 PM, Kevin Smith
>>>> <[email protected]>wrote:
>>>>
>>>>> I'm noticing multiple GeoServerPersister instances getting registered
>>>>> as CatalogListeners both in the GeoServerPersisterTest testcase and on
>>>>> application start up. It doesn't seem to be breaking anything other than
>>>>> producing some warnings when combined with what I'm working on but my
>>>>> understanding is there should only be one instance.
>>>>>
>>>>> Anyone have any idea what's up? Is it supposed to be doing this?
>>>>>
>>>>> Thread [main] (Suspended (breakpoint at line 1388 in CatalogImpl))
>>>>> CatalogImpl.addListener(CatalogListener) line: 1388
>>>>> SystemTestData.createCatalog() line: 286
>>>>> SystemTestData.setUp() line: 123
>>>>> GeoServerPersisterTest(GeoServerBaseTestSupport<T>).doSetup()
>>>>> line: 148
>>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line:
>>>>> not available [native method]
>>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
>>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>>>>> Method.invoke(Object, Object...) line: 606
>>>>> FrameworkMethod$1.runReflectiveCall() line: 47
>>>>> FrameworkMethod$1(ReflectiveCallable).run() line: 12
>>>>> FrameworkMethod.invokeExplosively(Object, Object...) line: 44
>>>>> RunBefores.evaluate() line: 24
>>>>> RunAfters.evaluate() line: 27
>>>>> RunRules.evaluate() line: 20
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement,
>>>>> Description, RunNotifier) line: 271
>>>>> BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier)
>>>>> line: 70
>>>>> BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 50
>>>>> ParentRunner$3.run() line: 238
>>>>> ParentRunner$1.schedule(Runnable) line: 63
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier)
>>>>> line: 236
>>>>> ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 53
>>>>> ParentRunner$2.evaluate() line: 229
>>>>> RunBefores.evaluate() line: 26
>>>>> RunAfters.evaluate() line: 27
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line:
>>>>> 309
>>>>> JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution)
>>>>> line: 50
>>>>> TestExecution.run(ITestReference[]) line: 38
>>>>> RemoteTestRunner.runTests(String[], String, TestExecution) line:
>>>>> 467
>>>>> RemoteTestRunner.runTests(TestExecution) line: 683
>>>>> RemoteTestRunner.run() line: 390
>>>>> RemoteTestRunner.main(String[]) line: 197
>>>>>
>>>>> Thread [main] (Suspended (breakpoint at line 1388 in CatalogImpl))
>>>>> owns: ConcurrentHashMap<K,V> (id=90)
>>>>> owns: Object (id=91)
>>>>> CatalogImpl.addListener(CatalogListener) line: 1388
>>>>> DefaultGeoServerLoader.loadCatalog(Catalog, XStreamPersister)
>>>>> line: 50
>>>>>
>>>>> DefaultGeoServerLoader(GeoServerLoader).postProcessBeforeInitialization(Object,
>>>>> String) line: 112
>>>>> GeoServerLoaderProxy.postProcessBeforeInitialization(Object,
>>>>> String) line: 58
>>>>>
>>>>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyBeanPostProcessorsBeforeInitialization(Object,
>>>>> String) line: 394
>>>>>
>>>>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).initializeBean(String,
>>>>> Object, RootBeanDefinition) line: 1448
>>>>>
>>>>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String,
>>>>> RootBeanDefinition, Object[]) line: 519
>>>>>
>>>>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String,
>>>>> RootBeanDefinition, Object[]) line: 456
>>>>> AbstractBeanFactory$1.getObject() line: 294
>>>>>
>>>>> DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String,
>>>>> ObjectFactory) line: 225
>>>>> DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String,
>>>>> Class<T>, Object[], boolean) line: 291
>>>>> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String)
>>>>> line: 193
>>>>> DefaultListableBeanFactory.preInstantiateSingletons() line: 607
>>>>>
>>>>> GeoServerTestApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory)
>>>>> line: 925
>>>>>
>>>>> GeoServerTestApplicationContext(AbstractApplicationContext).refresh()
>>>>> line:
>>>>> 472
>>>>>
>>>>> GeoServerPersisterTest(GeoServerSystemTestSupport).setUp(SystemTestData)
>>>>> line: 213
>>>>> GeoServerPersisterTest(GeoServerSystemTestSupport).setUp(TestData)
>>>>> line: 158
>>>>> GeoServerPersisterTest(GeoServerBaseTestSupport<T>).doSetup()
>>>>> line: 150
>>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line:
>>>>> not available [native method]
>>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
>>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>>>>> Method.invoke(Object, Object...) line: 606
>>>>> FrameworkMethod$1.runReflectiveCall() line: 47
>>>>> FrameworkMethod$1(ReflectiveCallable).run() line: 12
>>>>> FrameworkMethod.invokeExplosively(Object, Object...) line: 44
>>>>> RunBefores.evaluate() line: 24
>>>>> RunAfters.evaluate() line: 27
>>>>> RunRules.evaluate() line: 20
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement,
>>>>> Description, RunNotifier) line: 271
>>>>> BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier)
>>>>> line: 70
>>>>> BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 50
>>>>> ParentRunner$3.run() line: 238
>>>>> ParentRunner$1.schedule(Runnable) line: 63
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier)
>>>>> line: 236
>>>>> ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 53
>>>>> ParentRunner$2.evaluate() line: 229
>>>>> RunBefores.evaluate() line: 26
>>>>> RunAfters.evaluate() line: 27
>>>>> BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line:
>>>>> 309
>>>>> JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution)
>>>>> line: 50
>>>>> TestExecution.run(ITestReference[]) line: 38
>>>>> RemoteTestRunner.runTests(String[], String, TestExecution) line:
>>>>> 467
>>>>> RemoteTestRunner.runTests(TestExecution) line: 683
>>>>> RemoteTestRunner.run() line: 390
>>>>> RemoteTestRunner.main(String[]) line: 197
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Kevin Smith
>>>>>
>>>>> Junior Software Engineer | Boundless
>>>>>
>>>>> [email protected]
>>>>>
>>>>> +1-778-785-7459
>>>>>
>>>>> @boundlessgeo <https://twitter.com/boundlessgeo>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>>>>> Instantly run your Selenium tests across 300+ browser/OS combos.
>>>>> Get unparalleled scalability from the best Selenium testing platform
>>>>> available
>>>>> Simple to use. Nothing to install. Get started now for free."
>>>>> http://p.sf.net/sfu/SauceLabs
>>>>> _______________________________________________
>>>>> Geoserver-devel mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Justin Deoliveira*
>>>> Vice President, Engineering | Boundless
>>>> [email protected]
>>>> @j_deolive <https://twitter.com/j_deolive>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>>>> Instantly run your Selenium tests across 300+ browser/OS combos.
>>>> Get unparalleled scalability from the best Selenium testing platform
>>>> available
>>>> Simple to use. Nothing to install. Get started now for free."
>>>> http://p.sf.net/sfu/SauceLabs
>>>> _______________________________________________
>>>> Geoserver-devel mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>
>>>>
>>>
>>
>>
>> --
>> *Justin Deoliveira*
>> Vice President, Engineering | Boundless
>> [email protected]
>> @j_deolive <https://twitter.com/j_deolive>
>>
>
>
--
*Justin Deoliveira*
Vice President, Engineering | Boundless
[email protected]
@j_deolive <https://twitter.com/j_deolive>
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel