GitHub user ahgittin opened a pull request:
https://github.com/apache/brooklyn-server/pull/646
Cleanup search paths
minor cleanups to #338 -- see the last commit
this seems to fix the test failures by deduping the path, and some other
very minor things. opened PR mainly to confirm it's okay on jenkins also. /cc
@geomacy
merging this should also close #338.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/ahgittin/brooklyn-server cleanup-search-paths
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/brooklyn-server/pull/646.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #646
----
commit 5d0fe63cec36a8f478b4e666e0cb769462232fe5
Author: Geoff Macartney <[email protected]>
Date: 2016-09-14T13:44:14Z
Osgi loader change
commit 7e88322634490f7d29a9cd9f9977a2b9a111e6a3
Author: Geoff Macartney <[email protected]>
Date: 2016-09-19T13:22:43Z
Add nested catalog item ids to AbstractBrooklynObjectSpec.
commit 8c4427299f77de91258d8d653d8d6d1e75644328
Author: Geoff Macartney <[email protected]>
Date: 2016-09-20T10:16:36Z
Add catalog item super id support.
commit a9e961855f4e5874939602bc969ca87f537a0031
Author: Geoff Macartney <[email protected]>
Date: 2016-09-20T14:51:47Z
Fixes to get CatalogYamlEntityTest.testCatalogItemIdInReferencedItems
working.
Haven't re-run all unit tests yet.
commit 39dc1ccdf539a4453889f91ad1d3d6cde11abaf7
Author: Geoff Macartney <[email protected]>
Date: 2016-09-21T10:46:35Z
Test with a 'catalog sandwich'.
The purpose of this test is to illustrate that the full stack of nested
catalog items is not searched for classloaders.
commit 47c5580e9ea9b5cfb6a42c84428c641dbe88f244
Author: Geoff Macartney <[email protected]>
Date: 2016-09-21T15:36:49Z
Do resource lookup from nested catalog ids.
Fixes testDeepCatalogItemCanLoadResources.
commit a5c697822aeb6d7975aab7138d2ac6628f60c5f9
Author: Geoff Macartney <[email protected]>
Date: 2016-09-23T10:53:09Z
Use entity classloader as well as specified libraries.
See https://github.com/apache/brooklyn-server/pull/338#discussion_r80220390.
commit 42b4c3e0cc4ab268115f5c7231c6adbbe68e4aca
Author: Geoff Macartney <[email protected]>
Date: 2016-09-26T15:03:17Z
Implement getCatalogItemSuperIds in CatalogItemDtoAbstract.
As noted at
https://github.com/apache/brooklyn-server/pull/338#discussion_r79871837
commit 3e05d39a3b5567a81d7f835362e2eb2326c830b5
Author: Geoff Macartney <[email protected]>
Date: 2016-09-26T15:49:50Z
Add (disabled) rebind test for deep catalog item nesting.
This fails with the following exception:
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Failure
rebinding: problem creating ENTITY zmm0lmrzll of type
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl:
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129)
at
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:513)
at
org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils.rebindAll(RebindTestUtils.java:446)
at
org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils.rebind(RebindTestUtils.java:328)
at
org.apache.brooklyn.core.mgmt.rebind.RebindTestFixture.rebind(RebindTestFixture.java:281)
at
org.apache.brooklyn.camp.brooklyn.AbstractYamlRebindTest.rebind(AbstractYamlRebindTest.java:86)
at
org.apache.brooklyn.core.mgmt.rebind.RebindTestFixture.rebind(RebindTestFixture.java:217)
at
org.apache.brooklyn.camp.brooklyn.RebindOsgiTest.testReboundDeepCatalogItemCanLoadResources(RebindOsgiTest.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:124)
Caused by: java.util.concurrent.ExecutionException:
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Failure
rebinding: problem creating ENTITY zmm0lmrzll of type
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl:
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at
com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:361)
at
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:511)
... 29 more
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
Failure rebinding: problem creating ENTITY zmm0lmrzll of type
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl:
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:430)
at
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDoneImpl(RebindExceptionHandlerImpl.java:497)
at
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDone(RebindExceptionHandlerImpl.java:413)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:268)
at
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)
at
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)
at
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)
at
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: problem creating ENTITY
zmm0lmrzll of type org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onCreateFailed(RebindExceptionHandlerImpl.java:265)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.instantiateLocationsAndEntities(RebindIteration.java:459)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:240)
at
org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:266)
... 8 more
Caused by: java.lang.IllegalStateException: Unable to load
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl:
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)
at
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
at
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:327)
at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:321)
at
org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.loadClass(AbstractBrooklynClassLoadingContext.java:55)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.load(RebindIteration.java:954)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.newEntity(RebindIteration.java:874)
at
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.instantiateLocationsAndEntities(RebindIteration.java:454)
... 11 more
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
Unable to load org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []:
Invalid class: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl:
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:430)
at
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:88)
at
org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.tryLoadClass(AbstractBrooklynClassLoadingContext.java:61)
... 15 more
Caused by: java.lang.IllegalStateException: Invalid class:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)
at
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
at
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:327)
at
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:85)
... 16 more
Caused by: java.lang.ClassNotFoundException:
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
org.apache.brooklyn.util.javalang.AggregateClassLoader.findClass(AggregateClassLoader.java:135)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass0(JavaBrooklynClassLoadingContext.java:101)
at
org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass(JavaBrooklynClassLoadingContext.java:84)
at
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:81)
... 16 more
commit 4c7ca74f6a0a2092d5c7c6cdc6e711ab5fb5f75c
Author: Geoff Macartney <[email protected]>
Date: 2016-09-27T10:21:46Z
Add support for catalogItemSuperIds to rebind.
Fixes testReboundDeepCatalogItemCanLoadResources.
commit d26e705c2611049d8f60b7128fd2540fe13b97f7
Author: Geoff Macartney <[email protected]>
Date: 2016-09-29T14:21:17Z
Fix ActivePartialRebindVersionTest breakage from previous change.
commit 0bb7eb4a6b1a9603c25fe97aab91110bf556d1c6
Author: Geoff Macartney <[email protected]>
Date: 2016-09-29T17:06:15Z
Fix testRebindWithCatalogAndApp with mode == DELETE_CATALOG.
commit b5ca71b9dbbb6897abf6ab74bbd570b39f22649b
Author: Geoff Macartney <[email protected]>
Date: 2016-09-29T17:15:16Z
Fix testRebindWithCatalogAndApp with mode ==
REPLACE_CATALOG_WITH_NEWER_VERSION.
commit 63f4a9415901fece4b63fc0cd676b7812959ea9d
Author: Geoff Macartney <[email protected]>
Date: 2016-10-03T09:13:30Z
Add (some) tests of rebind of previously persisted state.
commit 759abe589bef812f726ffe6d81d7a0665f9ad388
Author: Geoff Macartney <[email protected]>
Date: 2016-10-03T11:03:20Z
Some code tidy-up.
commit daaf03989346ad67cdae3ed7256c8dad53add57a
Author: Geoff Macartney <[email protected]>
Date: 2016-10-05T10:02:20Z
Warning on primaries not needed.
It's perfectly possible for the catalog item loader to have just the
launcher management context in the secondaries.
commit 3f986ec9c5340bd1f4dbef9cbdf5e26a27e1f3d7
Author: Geoff Macartney <[email protected]>
Date: 2016-10-05T12:40:33Z
catalogItemIdIfNotNull is no longer used
commit 10afaad79fc0dec595a298cc67e7c18db232ff94
Author: Geoff Macartney <[email protected]>
Date: 2016-10-05T21:25:37Z
Add start of a test framework test for the catalog behaviour.
commit 5c37de215b569246ce054d4a0d044548056d507f
Author: Geoff Macartney <[email protected]>
Date: 2016-12-13T22:48:26Z
Fix mistake in merge with master
commit c60949739d4eaa00ef2647d6aba920b449a5c95b
Author: Geoff Macartney <[email protected]>
Date: 2017-02-20T13:45:06Z
Fix tests after rebase with master
commit 78cfeda484002f7a483c81ccd7cd029210688afd
Author: Geoff Macartney <[email protected]>
Date: 2017-02-20T16:58:08Z
Updates for the following review comments.
Working on review comments for catalog-update PR
https://github.com/apache/brooklyn-server/pull/338#discussion_r94612120
Unused import in AbstractBrooklynObjectSpec.java - done in merge
https://github.com/apache/brooklyn-server/pull/338#discussion_r94752687
Keep for persistence backwards compatibility
- surely I take this into account already? See
testRebindWithCatalogAndAppRebindCatalogItemIds,
and BrooklynMementoPersisterToObjectStore.getCatalogItemIds().
https://github.com/apache/brooklyn-server/pull/338#discussion_r94762969
Not called on xstream deserialize, could be null - take into account in
following code.
- Introduced getCatalogItemIdStack(). What about the other pre-existing
fields that also have initializers?
https://github.com/apache/brooklyn-server/pull/338#discussion_r94612579
public SpecT catalogItemId(String val) {
Should we deprecate this one? When is this one used vs nestCatalogItemId?
I'd think (before looking at the code in details) that this shouldn't be
called at all, we should only be "nesting" catalog items.
- deprecated
https://github.com/apache/brooklyn-server/pull/338/files#r94615424
Don't see this used, do you think we should keep it?
- replaced it with protected SpecT catalogItemIdStack(Collection<String>
catalogItemIdStack),
used in AbstractBrooklynObjectSpec#copyFrom().
https://github.com/apache/brooklyn-server/pull/338/files#r94609346
missing word
- fixed
https://github.com/apache/brooklyn-server/pull/338/files#r94613348
It's not a mere reference but R3 extending R2, etc.
- fixed
https://github.com/apache/brooklyn-server/pull/338#discussion_r94618943
public SpecT catalogItemIdIfNotNull(String val) {
I'd deprecate it, even if marked as @Beta.
- done
https://github.com/apache/brooklyn-server/pull/338/files#r94616318
I don't associate "nest" with anything in this context, perhaps
stackCatalogItemId would be more appropriate?
- changed to "stackCatalogItemId".
https://github.com/apache/brooklyn-server/pull/338#discussion_r94616812
public final String getCatalogItemId() {
Suggest deprecating this one and creating getOuterCatalogItemId,
getInnerCatalogItemId.
- created getOuterCatalogItemId; getInner not needed as there is
getCatalogItemHierarchy
https://github.com/apache/brooklyn-server/pull/338#discussion_r94753362
As a fallback return catalogItemId.
- Seems preferable not to retain catalogItemId if we can get away without
it, see
comment on
https://github.com/apache/brooklyn-server/pull/338#discussion_r94752687
above.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94617757
Can you add as a clarification
- Added.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94618204
"Super" (here and same name in other classes) could be misinterpreted
- changed name to getCatalogItemHierarchy
commit 1e5ca519224b5cac32abc2d7dcf76d33289c752f
Author: Geoff Macartney <[email protected]>
Date: 2017-02-21T09:37:01Z
Updates for the following review comments.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94619869
This is just for persistence backwards compatibility, right? If so mark it
as deprecated.
- done
https://github.com/apache/brooklyn-server/pull/338#discussion_r94620517
Unused.
- done
https://github.com/apache/brooklyn-server/pull/338#discussion_r94620662
Unused, plus Strings, XmlUtil.
- done
https://github.com/apache/brooklyn-server/pull/338#discussion_r94753587
At the very least could log at higher level - code at
AbstractManagementContext used to log at error.
- changed to warn.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94756363
Use and return getCatalogItemSuperIds instead.
- updated
commit 68b94ced5af0a18be08277e9bdb5aff4696a4e80
Author: Geoff Macartney <[email protected]>
Date: 2017-02-21T10:17:42Z
Fall through only if loader fails with the available catalog items.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94751531
commit d3a64d985b0ba792bf6bcd079a4f40f8a787ec85
Author: Geoff Macartney <[email protected]>
Date: 2017-02-21T10:55:00Z
Address the following review comments.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94756103
Remove/deprecate this method and use getCatalogItemSuperIds instead in
callers.
- done; also renames "SuperIds" to "Hierarchy" everywhere.
commit 9369a42fb9cf016cd5c118014c23e09e6085271b
Author: Geoff Macartney <[email protected]>
Date: 2017-02-21T12:08:13Z
Review comment. Remove confusing default value.
https://github.com/apache/brooklyn-server/pull/338#discussion_r94762563
commit 584efcc4e5845c372d8519f3d073c938b9516ebe
Author: Geoff Macartney <[email protected]>
Date: 2017-02-22T16:43:30Z
Delete original change from 0ab9b37b55fce9eaf3eef319ea2fc77e41e7ba8e
https://github.com/apache/brooklyn-server/pull/338#discussion_r94621436
The change was done during the early investigation of the issue.
The nested-item tests work without it.
commit 3257c846dd21d1b1dada9c480ef7f6e68f3bd03c
Author: Geoff Macartney <[email protected]>
Date: 2017-03-08T12:17:57Z
Use newClassLoadingContextForCatalogItems where possible.
https://github.com/apache/brooklyn-server/pull/338/files#r94623208
Use in
org.apache.brooklyn.util.core.ClassLoaderUtils#load
org.apache.brooklyn.core.mgmt.persist.BrooklynMementoPersisterToObjectStore#getCustomClassLoaderForBrooklynObject
org.apache.brooklyn.core.catalog.internal.JavaCatalogToSpecTransformer#createCatalogSpec
Not doing XmlMementoSerializer as it is calling
newClassLoadingContext(ManagementContext mgmt, RegisteredType item)
rather than
newClassLoadingContext(ManagementContext mgmt, CatalogItem<?, ?> item),
and the hierarchy is not available on RegisteredType.
commit b61f972e9f4197c64ebe37a69f1631db9febb220
Author: Geoff Macartney <[email protected]>
Date: 2017-03-08T15:41:56Z
Return a generic context from newClassLoadingContextForCatalogItems
https://github.com/apache/brooklyn-server/pull/338#discussion_r94751965
commit 81815f9424ba1987dbba5c3ee206deec4400babf
Author: Geoff Macartney <[email protected]>
Date: 2017-03-10T17:10:33Z
Changes to move to catalogItemId + search path.
Restore catalogItemId; change getCatalogItemIdHierarchy to
getCatalogItemIdSearchPath.
Update "stackCatalogItemId" to work with catalogItemId + search path.
Use catalogItemIdAndSearchPath when merging wrapper parent to child.
Rebind changes for catalogItemId + search path.
Update AbstractBrooklynObject[Spec] for catalogItemId + searchPath
Do catalogItemIdAndSearchPath only if non-null
Update "catalogItemIdHierarchy" -> "searchPath" in persistence
commit 51b0b754e0640a6403b11359ecb4467d052c505a
Author: Geoff Macartney <[email protected]>
Date: 2017-03-18T20:04:43Z
Correct testRebindWithCatalogAndAppRebindCatalogItemIds
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---