brooklyncentral / brooklyn Goto Github PK
View Code? Open in Web Editor NEWThis project has moved and is now part of the ASF
Home Page: https://github.com/apache/incubator-brooklyn
This project has moved and is now part of the ASF
Home Page: https://github.com/apache/incubator-brooklyn
There is no synchronization or any other form of thread safety. So class can't be used in a multi threaded environment safely.
Currently there also is quite a lot of deprecated functionality, so perhaps better to get that out of the way first before fixing something that is going to be changed/removed.
There is no synchronization happening at all. Everybody can peek and poke in this collections,which can lead to race problems, but also to strange situations (e.g. an entity without a location).
I think it is best to return a copy of the list instead of returning the actual list.
The method should return a copy of the collections, not a readonly wrapper. If the readonly wrapper is returned, a user of this wrapper could observe unexpected change happening inside this list, leading to race problems.
The CustomAggregatingEnricher can be used with groups, to automatically aggregate the members of the group. However, it does not take into account existing members - only members that are added and removed after the enricher is associated with the group.
When the CustomAggregatingEnricher is registered, it should lookup the members of the group and subscribe to the given sensor for them.
It would also be nice if this contract was more explicit. The code for notifying of "producers" being added/removed is buried away in AbstractGroup. When looking at the CustomAggregatingEnricher, the code at first looks like black-magic. I suggest moving the notifications into the CustomAggregatingEnricher (or its super-class) explicitly by subscribing to member added/removed.
We should set up an account using the free open-source access tier of CloudBees, to provide community visibility into CI for building/testing Brooklyn.
The default clean patterns (brooklyn_.log_ and stacktrace.log) are overridden. As a result, files are no longer cleaned.
When running brooklyn I get this annoying warning:
2012-05-30 17:00:59,242 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
Here is the full output:
pegasus:bin cosmin$ ./web-server.sh
Launching brooklyn app: brooklyn.demo.SingleWebServerExample in [localhost]
2012-05-30 17:00:41,136 INFO Adding application under brooklyn management
2012-05-30 17:00:41,241 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:00:47,388 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-30 17:00:49,408 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:00:49,414 INFO Starting brooklyn application: brooklyn.demo.SingleWebServerExample
2012-05-30 17:00:49,438 INFO Starting entity SingleWebServerExample[id=WjvMw0t4,displayName=SingleWebServerExample:WjvM] at [LocalhostMachineProvisioningLocation[id=f97e2de4-8dec-4e67-94f9-8878b2d96cda,name=localhost]]
2012-05-30 17:00:49,530 INFO Starting software process entity JBoss7Server[id=GdMsZCxg,displayName=JBoss7Server:GdMs] at [LocalhostMachineProvisioningLocation[id=f97e2de4-8dec-4e67-94f9-8878b2d96cda,name=localhost]]
2012-05-30 17:00:59,075 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-30 17:00:59,242 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:00:59,258 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:01:05,877 INFO Web console allowing default user (admin)
2012-05-30 17:01:05,877 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
^[[B^[[B^[[B^[[A^[[A^C2012-05-30 17:05:14,304 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
2012-05-30 17:05:14,304 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-30 17:05:14,307 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
Application context shutting down...
2012-05-30 17:05:14,312 INFO Stopping application SingleWebServerExample[id=WjvMw0t4,displayName=SingleWebServerExample:WjvM]
2012-05-30 17:05:14,320 INFO Stopping software process entity JBoss7Server[id=GdMsZCxg,displayName=JBoss7Server:GdMs]
Application context shutdown.
2012-05-30 17:05:14,737 INFO Stopped application SingleWebServerExample[id=WjvMw0t4,displayName=SingleWebServerExample:WjvM]
2012-05-30 17:05:14,749 INFO Stopped Brooklyn web console at http://localhost:8081
Management is currently only possible at the instance where Brooklyn is launched.
We'd like to be able to start Brooklyn nodes remotely (1, or 2 for resilience) in each datacenter location where Brooklyn is running, and have them share information. Each entity should be mastered at one management node, as close to the entity as possible, with failover. It could be possible to manage entities at the same node as the process.
This would allow for resilience and scalability, as well as more efficient policy execution.
we list activities (tasks) but the tree structure kept in the code (where a task on a parent launches tasks on children) is not apparent; being able to navigate task hierarchies would be very handy
if user asks to deploy a Whirr cluster to localhost we should configure a jclouds-byon-localhost target automatically. easily done adding a startInLocation(LocalhostMachineProvisioningLocation) method to WhirrCluster and following code at https://github.com/jclouds/jclouds/blob/master/apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceLiveTest.java.
If a brooklyn entity loses connection to the physical-thing-being-management, it should automatically re-connect if the network/thing comes back up again. For example, if we the internet connection goes down for a few seconds between Brooklyn and a Tomcat server, we should re-establish connection to the Tomcat server and continue polling it (over jmx).
Entities poll their sensor values by a variety of mechanisms: jmx, http, etc. Let's consider jmx (but this should equally apply to other mechanisms as well). We poll jmx attributes/operations periodically. If the network goes down temporarily, we lose connection and we neer automatically re-establish the connection. Therefore, the entity's sensors never again refresh.
Some useful places in the code to look include:
JmxHelper
JmxNotificationAdapter
JmxAttributeAdapter
Add a RabbitMQ messaging entity. This should include support for broker clusters and failover, and perhaps deployable erlang plugins. The existing MySQL entity should be useful as a template for installation of native pre-built siftware, and the rest of the sensors and effectors should follow the existing messaging entity patterns.
Running the broker works fine on localhost but I get the following exception when running on AWS:
pegasus:bin cosmin$ ./broker.sh aws-ec2:eu-west-1
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/cosmin/Documents/Cloudsoft/brooklyn/examples/simple-messaging-pubsub/brooklyn-example-simple-messaging-pubsub/lib/slf4j-log4j12-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/cosmin/Documents/Cloudsoft/brooklyn/usage/dist/target/brooklyn-0.4.0-SNAPSHOT-dist/brooklyn/lib/slf4j-log4j12-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Launching brooklyn app: brooklyn.demo.StandaloneBrokerExample in [aws-ec2:eu-west-1]
2012-06-05 11:47:31,249 WARN multiple definitions for sensor amqp.version on QpidBroker[id=U9s44q54]; preferring Sensor: amqp.version (java.lang.String) to Sensor: amqp.version (java.lang.String)
2012-06-05 11:47:31,644 INFO Adding application under brooklyn management
2012-06-05 11:47:31,669 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-06-05 11:47:35,881 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-06-05 11:47:37,447 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-06-05 11:47:37,453 INFO Starting brooklyn application: brooklyn.demo.StandaloneBrokerExample
2012-06-05 11:47:37,461 INFO Starting entity StandaloneBrokerExample[id=IpLa2n7x,displayName=StandaloneBrokerExample:IpLa] at [JcloudsLocation[AKIAI2SPATD5BUGMKDLQ:AWS eu-west]]
2012-06-05 11:47:37,519 INFO Starting software process entity QpidBroker[id=U9s44q54,displayName=QpidBroker:U9s4] at [JcloudsLocation[AKIAI2SPATD5BUGMKDLQ:AWS eu-west]]
2012-06-05 11:47:37,555 INFO SoftwareProcessEntity QpidBroker[id=U9s44q54,displayName=QpidBroker:U9s4] obtaining a new location instance in JcloudsLocation[AKIAI2SPATD5BUGMKDLQ:AWS eu-west] with ports [null, 22, 5672, 1099, 9001]
2012-06-05 11:47:39,034 INFO Creating VM in eu-west-1
2012-06-05 11:47:47,284 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-06-05 11:47:47,623 ERROR Failed to start VM: port must be a positive integer < 65535
2012-06-05 11:47:47,628 INFO java.lang.IllegalArgumentException: port must be a positive integer < 65535
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
at org.jclouds.compute.options.TemplateOptions.inboundPorts(TemplateOptions.java:455)
at org.jclouds.ec2.compute.options.EC2TemplateOptions.inboundPorts(EC2TemplateOptions.java:355)
at org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions.inboundPorts(AWSEC2TemplateOptions.java:534)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation$__clinit__closure27.doCall(JcloudsLocation.groovy:404)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.location.basic.jclouds.JcloudsLocation$_buildTemplate_closure4.doCall(JcloudsLocation.groovy:435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3578)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1405)
at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation.buildTemplate(JcloudsLocation.groovy:433)
at brooklyn.location.basic.jclouds.JcloudsLocation.this$3$buildTemplate(JcloudsLocation.groovy)
at brooklyn.location.basic.jclouds.JcloudsLocation$this$3$buildTemplate.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy:204)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy)
at brooklyn.location.MachineProvisioningLocation$obtain.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:200)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.start(SoftwareProcessEntity.groovy:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.groovy:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.groovy:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:808)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.entity.basic.MethodEffector.call(AbstractEffector.groovy:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
2012-06-05 11:47:47,642 INFO Execution of effector start on entity U9s44q54 failed with java.util.concurrent.ExecutionException: Error invoking start[locations] on entity QpidBroker[id=U9s44q54,displayName=QpidBroker:U9s4]
2012-06-05 11:47:47,646 WARN Error while running task Taskstart [EFFECTOR, QpidBroker[id=U9s44q54,displayName=QpidBroker:U9s4]]; BuHqFRuIqf: port must be a positive integer < 65535
java.lang.IllegalArgumentException: port must be a positive integer < 65535
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
at org.jclouds.compute.options.TemplateOptions.inboundPorts(TemplateOptions.java:455)
at org.jclouds.ec2.compute.options.EC2TemplateOptions.inboundPorts(EC2TemplateOptions.java:355)
at org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions.inboundPorts(AWSEC2TemplateOptions.java:534)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation$__clinit__closure27.doCall(JcloudsLocation.groovy:404)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.location.basic.jclouds.JcloudsLocation$_buildTemplate_closure4.doCall(JcloudsLocation.groovy:435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3578)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1405)
at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation.buildTemplate(JcloudsLocation.groovy:433)
at brooklyn.location.basic.jclouds.JcloudsLocation.this$3$buildTemplate(JcloudsLocation.groovy)
at brooklyn.location.basic.jclouds.JcloudsLocation$this$3$buildTemplate.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy:204)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy)
at brooklyn.location.MachineProvisioningLocation$obtain.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:200)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.start(SoftwareProcessEntity.groovy:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.groovy:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.groovy:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:808)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.entity.basic.MethodEffector.call(AbstractEffector.groovy:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
2012-06-05 11:47:47,650 WARN Error while running task Task[StandaloneBrokerExample[id=IpLa2n7x,displayName=StandaloneBrokerExample:IpLa]]; eQmbkOcXIx: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
org.codehaus.groovy.runtime.InvokerInvocationException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:97)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at brooklyn.util.task.BasicTask.get(BasicTask.java:217)
at java_util_concurrent_Future$get.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.entity.basic.Entities$_invokeEffectorList_closure1_closure5.doCall(Entities.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
... 12 more
Caused by: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
at org.jclouds.compute.options.TemplateOptions.inboundPorts(TemplateOptions.java:455)
at org.jclouds.ec2.compute.options.EC2TemplateOptions.inboundPorts(EC2TemplateOptions.java:355)
at org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions.inboundPorts(AWSEC2TemplateOptions.java:534)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation$__clinit__closure27.doCall(JcloudsLocation.groovy:404)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.location.basic.jclouds.JcloudsLocation$_buildTemplate_closure4.doCall(JcloudsLocation.groovy:435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3578)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1405)
at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation.buildTemplate(JcloudsLocation.groovy:433)
at brooklyn.location.basic.jclouds.JcloudsLocation.this$3$buildTemplate(JcloudsLocation.groovy)
at brooklyn.location.basic.jclouds.JcloudsLocation$this$3$buildTemplate.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy:204)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy)
at brooklyn.location.MachineProvisioningLocation$obtain.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:200)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.start(SoftwareProcessEntity.groovy:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.groovy:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.groovy:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:808)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.entity.basic.MethodEffector.call(AbstractEffector.groovy:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy)
... 17 more
2012-06-05 11:47:47,655 WARN Error while running task Taskcompound [compound, StandaloneBrokerExample[id=IpLa2n7x,displayName=StandaloneBrokerExample:IpLa]]; 6nyqECjWyf: org.codehaus.groovy.runtime.InvokerInvocationException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
java.util.concurrent.ExecutionException: org.codehaus.groovy.runtime.InvokerInvocationException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at brooklyn.util.task.BasicTask.get(BasicTask.java:217)
at brooklyn.util.task.ParallelTask.runJobs(ParallelTask.java:28)
at brooklyn.util.task.CompoundTask$1.call(CompoundTask.java:53)
at brooklyn.util.task.CompoundTask$1.call(CompoundTask.java:1)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:97)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
... 6 more
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at brooklyn.util.task.BasicTask.get(BasicTask.java:217)
at java_util_concurrent_Future$get.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.entity.basic.Entities$_invokeEffectorList_closure1_closure5.doCall(Entities.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
... 12 more
Caused by: java.lang.IllegalArgumentException: port must be a positive integer < 65535
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
at org.jclouds.compute.options.TemplateOptions.inboundPorts(TemplateOptions.java:455)
at org.jclouds.ec2.compute.options.EC2TemplateOptions.inboundPorts(EC2TemplateOptions.java:355)
at org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions.inboundPorts(AWSEC2TemplateOptions.java:534)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation$__clinit__closure27.doCall(JcloudsLocation.groovy:404)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.location.basic.jclouds.JcloudsLocation$_buildTemplate_closure4.doCall(JcloudsLocation.groovy:435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3578)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1405)
at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.location.basic.jclouds.JcloudsLocation.buildTemplate(JcloudsLocation.groovy:433)
at brooklyn.location.basic.jclouds.JcloudsLocation.this$3$buildTemplate(JcloudsLocation.groovy)
at brooklyn.location.basic.jclouds.JcloudsLocation$this$3$buildTemplate.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy:204)
at brooklyn.location.basic.jclouds.JcloudsLocation.obtain(JcloudsLocation.groovy)
at brooklyn.location.MachineProvisioningLocation$obtain.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:200)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.startInLocation(SoftwareProcessEntity.groovy:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.entity.basic.SoftwareProcessEntity.start(SoftwareProcessEntity.groovy:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.groovy:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.groovy:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:808)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.entity.basic.MethodEffector.call(AbstractEffector.groovy:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org
The getPolicies returns a readonly wrapper that is backed up by the real policy set.
So if a user would use this collection, the collection maybe change while he is working on it. This can lead to all kinds of exceptions.
So instead of returning a readonly wrapper, return a copy.
When running a brooklyn example like ./demo-web-cluster.sh
from examples/simple-web-cluster you get ssh problems:
2012-05-07 14:26:51,450 INFO << (cosmin@localhost:22) error acquiring {hostAndPort=localhost:22, user=cosmin, ssh=1506268053, password=null, privateKeyFile=null, privateKey=xxxxxx, connectTimeout=0, sessionTimeout=0} (attempt 1 of 4): Exhausted available authentication methods
There is already a comment that talks about this and a fix here so this will probably get resolved soon.
As a workaround in the meanwhile, you can update the CLASSPATH environment variable before running the example:
export CLASSPATH=~/.m2/repository/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar:~/.m2/repository/io/brooklyn/brooklyn-all/0.4.0-SNAPSHOT/brooklyn-all-0.4.0-SNAPSHOT.jar
Brooklyn fails to compile in Eclipse with the GroovyEclipseBug shown below.
This is with org.codehause.groovy.eclipse version 2.6.0, in Eclipse Indigo Service Release 2.
The method:
private static T getMandatoryVal(Map<String,?> map, String key, Class clazz)
is delcared in SshjTool.
The class reporting the compile error is EffectorSayHiTest.groovy, at line 0.
General error during class generation: Cannot find type variable on method declaring element private static T getMandatoryVal(Map<java.lang.String,?>, java.lang.String, Class)
org.codehaus.jdt.groovy.internal.compiler.ast.GroovyEclipseBug: Cannot find type variable on method declaring element private static T getMandatoryVal(Map<java.lang.String,?>, java.lang.String, Class)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.createClassNode(JDTResolver.java:531)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.createJDTClassNode(JDTResolver.java:448)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.convertToClassNode(JDTResolver.java:436)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.methodBindingToMethodNode(JDTClassNode.java:336)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initializeMembers(JDTClassNode.java:298)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initialize(JDTClassNode.java:231)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.lazyClassInit(JDTClassNode.java:155)
ย ย at org.codehaus.groovy.ast.ClassNode.getInterfaces(ClassNode.java:444)
ย ย at org.codehaus.groovy.ast.ClassNode.declaresInterface(ClassNode.java:1051)
ย ย at org.codehaus.groovy.ast.ClassNode.implementsInterface(ClassNode.java:1031)
ย ย at org.codehaus.groovy.ast.ClassNode.isDerivedFromGroovyObject(ClassNode.java:1021)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.loadWrapper(AsmClassGenerator.java:1509)
ย ย at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303)
ย ย at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:187)
ย ย at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:89)
ย ย at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:73)
ย ย at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:292)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:657)
ย ย at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:75)
ย ย at org.codehaus.groovy.classgen.asm.StatementWriter.writeReturn(StatementWriter.java:579)
ย ย at org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.writeReturn(OptimizingStatementWriter.java:316)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitReturnStatement(AsmClassGenerator.java:499)
ย ย at org.codehaus.groovy.ast.stmt.ReturnStatement.visit(ReturnStatement.java:47)
ย ย at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:102)
ย ย at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:113)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitStdMethod(AsmClassGenerator.java:313)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:270)
ย ย at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:124)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:390)
ย ย at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1170)
ย ย at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:51)
ย ย at org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:174)
ย ย at org.codehaus.groovy.control.CompilationUnit$6.call(CompilationUnit.java:829)
ย ย at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1122)
ย ย at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:594)
ย ย at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:572)
ย ย at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:549)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.processToPhase(GroovyCompilationUnitDeclaration.java:171)
ย ย at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.generateCode(GroovyCompilationUnitDeclaration.java:1526)
ย ย at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:831)
ย ย at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:137)
ย ย at java.lang.Thread.run(Thread.java:680)
We'd like on the download page to offer a tar.gz containing the jars and a start script that uses Java6 -cp lib/*.jar
syntax.
A maven assembly task can build the artifact and should be part of CI.
The examples should be updated so that they can use this (if a BROOKLYN_HOME var is set?) as well as the all jar from a local maven repo.
The docs for download and examples should be updated to reflect this.
With CloudFoundry (#15) and OpenShift (and more on the way), we need a clean way in Brooklyn to support deploying entities to locations which may not be known (and which shouldn't be in classpath) when the entities themselves were made.
There are at least two parts to this:
(1) the CommandLineLocations (in core) should have an extension mechanism -- whereby e.g. it can construct a CloudFoundryLocation at runtime given a string "cloudfoundry", if the cloudfoundry project is present (without have cloudfoundry deps/refs in core itself)
(2) specific Entity or EntityFactory implementations interfaces (eg WebClusterFactory) should have a way that they can, if desired, allow downstream projects to supply additional implementations or drivers (eg cloudfoundry project can supply a WebClusterFabric)
JSch has been replaced by sshj, so it can be removed
There are a number of problems with how people download and use the examples, in order for them to be familiar and usable.
Cosmin has suggested that we get rid of the distribution directory which is generated for each examples, and remove the scripts, and instead use a short text file in the root containing instructions for running from plain vanilla jars (and minimal additional dependencies).
Let's do that, and update the following which I've observed:
brooklyn
!A generic command-line tool which could take a groovy deployment script (or JSON representation as per #3) would be very helpful, meaning people don't need to recompile anything to make a change.
This could also standardise the --port N
option, and location arguments, used in the examples.
The examples and the documentation should be updated to use this. This could also build on #1.
grails 1.7 is long-in-the-tooth, and we've done some hacks to make it work with groovy 1.8.
switching to grails 2.0 would solve this.
or could move away from grails if people prefer? it makes some things easier but some things harder.
This is possibly related to issue #143. When I try to run the WebClusterExample from simple-web-cluster I get an IOException that looks to be related to the JBoss7Server entity.
UPDATE: Looks like the GlobalWebFabricExample is also affected by this
Apart from the exception everything seems to be working fine.
The only things that looks worrying in the web console is the fact that NGINX has been started and then restarted:
DynamicWebAppCluster:gICn start 2012-05-31 10:37:48 2012-05-31 10:37:51 Ended normally
JBoss7Server:B9lL start 2012-05-31 10:37:48 2012-05-31 10:37:51 Ended normally
NginxController:W86T restart 2012-05-31 10:38:18 2012-05-31 10:38:18 Ended normally
NginxController:W86T start 2012-05-31 10:37:48 2012-05-31 10:38:18 Ended normally
WebApp cluster start 2012-05-31 10:37:48 2012-05-31 10:38:18 Ended normally
Here is the full output I get when running the example:
pegasus:bin cosmin$ ./web-cluster.sh
Launching brooklyn app: brooklyn.demo.WebClusterExample in [localhost]
2012-05-31 11:37:42,072 INFO Adding application under brooklyn management
2012-05-31 11:37:42,098 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 11:37:46,506 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-31 11:37:48,089 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 11:37:48,095 INFO Starting brooklyn application: brooklyn.demo.WebClusterExample
2012-05-31 11:37:48,107 INFO Starting entity WebClusterExample[id=WAdCBqvV,displayName=WebClusterExample:WAdC] at [LocalhostMachineProvisioningLocation[id=8f3faa62-c7e1-42ad-b66d-3b7c98028ef4,name=localhost]]
2012-05-31 11:37:48,239 INFO Activating local management for DynamicWebAppCluster[id=gICnhR5c,displayName=DynamicWebAppCluster:gICn] on start
2012-05-31 11:37:48,240 INFO Activating local management for NginxController[id=W86ToF05,displayName=NginxController:W86T] on start
2012-05-31 11:37:48,244 INFO adding policy to NginxController[id=W86ToF05,displayName=NginxController:W86T]
2012-05-31 11:37:48,247 INFO Resize DynamicWebAppCluster[id=gICnhR5c,displayName=DynamicWebAppCluster:gICn] from 0 to 1; delta = 1
2012-05-31 11:37:48,281 INFO Starting software process entity NginxController[id=W86ToF05,displayName=NginxController:W86T] at [LocalhostMachineProvisioningLocation[id=8f3faa62-c7e1-42ad-b66d-3b7c98028ef4,name=localhost]]
2012-05-31 11:37:48,345 INFO Activating local management for JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL] on start
2012-05-31 11:37:48,348 INFO Starting software process entity JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL] at [LocalhostMachineProvisioningLocation[id=8f3faa62-c7e1-42ad-b66d-3b7c98028ef4,name=localhost]]
2012-05-31 11:37:49,512 INFO JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL] deploying classpath://hello-world-webapp.war to localhost:/tmp/brooklyn/apps/WAdCBqvV/entities/JBoss7Server_7.1.1.Final_B9lLt7JA/standalone/deployments/ROOT.war
2012-05-31 11:37:49,685 WARN including legacy SSH config property backup for localhost/127.0.0.1; either prefix with sshconfig or add to NON_SSH_PROPS
2012-05-31 11:37:51,644 WARN error reading brooklyn.event.adapter.HttpPollHelper@14f36a2e[JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL]] from JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL]: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139)
at java.net.URLConnection.getContent(URLConnection.java:688)
at java_net_URLConnection$getContent.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.event.adapter.HttpResponseContext.<init>(HttpResponseContext.groovy:33)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:41)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at java_net_HttpURLConnection$getResponseCode.call(Unknown Source)
... 66 more
2012-05-31 11:37:51,895 INFO Adding to NginxController:W86T, new member JBoss7Server:B9lL in locations [localhost/127.0.0.1]
2012-05-31 11:37:59,380 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-31 11:37:59,560 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 11:37:59,578 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 11:38:05,516 INFO Web console allowing default user (admin)
2012-05-31 11:38:05,516 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
2012-05-31 11:38:16,410 INFO Reconfiguring NginxController:W86T, members are [localhost:8080]
2012-05-31 11:38:17,996 INFO updating NginxController[id=W86ToF05,displayName=NginxController:W86T]
2012-05-31 11:38:17,996 INFO Reconfiguring NginxController:W86T, members are [localhost:8080]
2012-05-31 11:38:18,183 INFO Started application WebClusterExample[id=WAdCBqvV,displayName=WebClusterExample:WAdC]
WebClusterExample[id=WAdCBqvV,displayName=WebClusterExample:WAdC]
service.isUp: true
ControlledDynamicWebAppCluster[id=eD9ViDNQ,displayName=WebApp cluster]
cluster.initial.size = 1
http.port = 8080,18000-65535
host.name: localhost
service.isUp: true
webapp.url: http://localhost:8000/
NginxController[id=W86ToF05,displayName=NginxController:W86T]
install.version = 1.2.0
proxy.http.port = 8000
proxy.protocol = http
proxy.domainName = anonymous
webapp.url: http://localhost:8000/
proxy.http.port: 8000
proxy.protocol: http
proxy.domainName: anonymous
proxy.url: http://localhost:8000/
proxy.targets: [localhost:8080]
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
DynamicWebAppCluster[id=gICnhR5c,displayName=DynamicWebAppCluster:gICn]
http.port = 8080,18000-65535
cluster.initial.size = 1
cluster.reqs.count.total: 1
cluster.reqs.count.average: 1.0
cluster.reqs.errors.total: 0
cluster.reqs.errors.average: 0.0
cluster.reqs.persec.total: 0.10046296296296296
cluster.reqs.persec.average: 0.10046296296296296
cluster.reqs.processing-time.total: 67
cluster.reqs.processing-time.average: 67.0
service.isUp: true
group.members.count: 1
JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL]
install.version = 7.1.1.Final
webapp.jboss.managementPort = 9990-65535
webapp.jboss.managementNativePort = 10999-65535
webapp.jboss.portIncrement = 0
wars.root = classpath://hello-world-webapp.war
http.port = 8080-65535
webapp.jboss.managementPort: 9990
webapp.jboss.managementNativePort: 10999
webapp.jboss.portIncrement: 0
webapp.jboss.managementStatus: 200
http.port: 8080
webapp.reqs.errors: 0
webpp.reqs.processing.max: 67
webapp.reqs.total: 1
webapp.reqs.processing.time: 67
webapp.reqs.bytes.received: 0
webapp.reqs.bytes.sent: 520
webapp.reqs.persec.last: 4.62962962962963
webapp.reqs.persec.avg.10000: 0.10046296296296296
webapp.url: http://localhost:8080/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
2012-05-31 11:38:18,226 INFO Launched application; now blocking to wait for cntrl-c or kill
^C2012-05-31 11:43:21,576 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
2012-05-31 11:43:21,576 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-31 11:43:21,578 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
Application context shutting down...
2012-05-31 11:43:21,583 INFO Stopping application WebClusterExample[id=WAdCBqvV,displayName=WebClusterExample:WAdC]
2012-05-31 11:43:21,590 INFO Stopping software process entity NginxController[id=W86ToF05,displayName=NginxController:W86T]
Application context shutdown.
2012-05-31 11:43:21,835 INFO Resize DynamicWebAppCluster[id=gICnhR5c,displayName=DynamicWebAppCluster:gICn] from 1 to 0; delta = -1
2012-05-31 11:43:21,844 INFO Stopping software process entity JBoss7Server[id=B9lLt7JA,displayName=JBoss7Server:B9lL]
2012-05-31 11:43:21,905 INFO Stopped Brooklyn web console at http://localhost:8081
2012-05-31 11:43:22,017 INFO Stopped application WebClusterExample[id=WAdCBqvV,displayName=WebClusterExample:WAdC]
Here is the output for the global-web-fabric example:
pegasus:bin cosmin$ ./demo.sh
Launching brooklyn app: brooklyn.demo.GlobalWebFabricExample in [localhost]
2012-05-31 12:20:50,225 INFO Adding application under brooklyn management
2012-05-31 12:20:50,238 INFO GeoScaling service will configure redirection for 'brooklyn-OPM2uWQ9.cloudsoft.geopaas.org' domain
2012-05-31 12:20:50,274 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 12:20:54,604 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-31 12:20:56,006 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 12:20:56,012 INFO Starting brooklyn application: brooklyn.demo.GlobalWebFabricExample
2012-05-31 12:20:56,024 INFO Starting entity GlobalWebFabricExample[id=vHnhK5ra,displayName=GlobalWebFabricExample:vHnh] at [LocalhostMachineProvisioningLocation[id=a0a2b4a8-fc45-421d-ab1b-d01e3f7484a7,name=localhost]]
2012-05-31 12:20:56,074 INFO Adding a cluster to DynamicFabric[id=LgUQ0bTK,displayName=Web Fabric] in LocalhostMachineProvisioningLocation[id=a0a2b4a8-fc45-421d-ab1b-d01e3f7484a7,name=localhost] with properties {}
2012-05-31 12:20:56,133 INFO Activating local management for ControlledDynamicWebAppCluster[id=VHEiC3Cl,displayName=ControlledDynamicWebAppCluster:VHEi (localhost)] on start
2012-05-31 12:20:56,261 INFO Activating local management for DynamicWebAppCluster[id=TxeqHX3I,displayName=DynamicWebAppCluster:Txeq] on start
2012-05-31 12:20:56,261 INFO Activating local management for NginxController[id=wmkvXHkT,displayName=NginxController:wmkv] on start
2012-05-31 12:20:56,264 INFO adding policy to NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]
2012-05-31 12:20:56,267 INFO Resize DynamicWebAppCluster[id=TxeqHX3I,displayName=DynamicWebAppCluster:Txeq] from 0 to 1; delta = 1
2012-05-31 12:20:56,289 INFO Starting software process entity NginxController[id=wmkvXHkT,displayName=NginxController:wmkv] at [LocalhostMachineProvisioningLocation[id=a0a2b4a8-fc45-421d-ab1b-d01e3f7484a7,name=localhost]]
2012-05-31 12:20:56,349 INFO Activating local management for JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt] on start
2012-05-31 12:20:56,351 INFO Starting software process entity JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt] at [LocalhostMachineProvisioningLocation[id=a0a2b4a8-fc45-421d-ab1b-d01e3f7484a7,name=localhost]]
2012-05-31 12:20:57,525 INFO JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt] deploying classpath://hello-world-webapp.war to localhost:/tmp/brooklyn/apps/vHnhK5ra/entities/JBoss7Server_7.1.1.Final_Zuwt1i1J/standalone/deployments/ROOT.war
2012-05-31 12:20:57,701 WARN including legacy SSH config property backup for localhost/127.0.0.1; either prefix with sshconfig or add to NON_SSH_PROPS
2012-05-31 12:20:59,281 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-31 12:20:59,293 INFO redirecting Session Content:
from dashboard to login page
2012-05-31 12:20:59,293 INFO redirecting Session Content:
from entity to login page
2012-05-31 12:20:59,293 INFO redirecting Session Content:
from entity to login page
2012-05-31 12:20:59,597 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 12:20:59,641 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 12:20:59,764 WARN error reading brooklyn.event.adapter.HttpPollHelper@63e5a3e[JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt]] from JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt]: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139)
at java.net.URLConnection.getContent(URLConnection.java:688)
at java_net_URLConnection$getContent.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.event.adapter.HttpResponseContext.<init>(HttpResponseContext.groovy:33)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:41)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:9990/management/subsystem/web/connector/http/read-resource?include-runtime=true
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at java_net_HttpURLConnection$getResponseCode.call(Unknown Source)
... 66 more
2012-05-31 12:21:00,046 INFO Adding to NginxController:wmkv, new member JBoss7Server:Zuwt in locations [localhost/127.0.0.1]
2012-05-31 12:21:00,473 INFO Reconfiguring NginxController:wmkv, members are [localhost:8080]
2012-05-31 12:21:04,861 INFO Web console allowing default user (admin)
2012-05-31 12:21:04,861 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
2012-05-31 12:22:16,261 WARN Software process entity NginxController[id=wmkvXHkT,displayName=NginxController:wmkv] did not appear to start; setting state to indicate problem; consult logs for more details
2012-05-31 12:22:16,277 INFO updating NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]
2012-05-31 12:22:16,277 INFO Reconfiguring NginxController:wmkv, members are [localhost:8080]
2012-05-31 12:22:16,278 WARN error reading brooklyn.event.adapter.HttpPollHelper@23c2e2eb[NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]] from NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection$connect.call(Unknown Source)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:40)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
2012-05-31 12:22:16,450 INFO Started application GlobalWebFabricExample[id=vHnhK5ra,displayName=GlobalWebFabricExample:vHnh]
GlobalWebFabricExample[id=vHnhK5ra,displayName=GlobalWebFabricExample:vHnh]
service.isUp: true
DynamicFabric[id=LgUQ0bTK,displayName=Web Fabric]
fabric.size: 1
service.isUp: true
ControlledDynamicWebAppCluster[id=VHEiC3Cl,displayName=ControlledDynamicWebAppCluster:VHEi (localhost)]
cluster.initial.size = 1
wars.root = classpath://hello-world-webapp.war
http.port = 8080,18000-65535
host.name: localhost
service.isUp: true
webapp.url: http://localhost:80/
NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]
install.version = 1.2.0
proxy.http.port = 80
proxy.protocol = http
proxy.domainName = anonymous
webapp.url: http://localhost:80/
proxy.http.port: 80
proxy.protocol: http
proxy.domainName: anonymous
proxy.url: http://localhost:80/
proxy.targets: [localhost:8080]
host.name: localhost
host.address: 127.0.0.1
service.state: on-fire
service.isUp: false
DynamicWebAppCluster[id=TxeqHX3I,displayName=DynamicWebAppCluster:Txeq]
http.port = 8080,18000-65535
cluster.initial.size = 1
cluster.reqs.count.total: 0
cluster.reqs.count.average: 0.0
cluster.reqs.errors.total: 0
cluster.reqs.errors.average: 0.0
cluster.reqs.persec.total: 0.0
cluster.reqs.persec.average: 0.0
cluster.reqs.processing-time.total: 0
cluster.reqs.processing-time.average: 0.0
service.isUp: true
group.members.count: 1
JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt]
install.version = 7.1.1.Final
webapp.jboss.managementPort = 9990-65535
webapp.jboss.managementNativePort = 10999-65535
webapp.jboss.portIncrement = 0
wars.root = classpath://hello-world-webapp.war
http.port = 8080,18000-65535
webapp.jboss.managementPort: 9990
webapp.jboss.managementNativePort: 10999
webapp.jboss.portIncrement: 0
webapp.jboss.managementStatus: 200
http.port: 8080
webapp.reqs.errors: 0
webpp.reqs.processing.max: 0
webapp.reqs.total: 0
webapp.reqs.processing.time: 0
webapp.reqs.bytes.received: 0
webapp.reqs.bytes.sent: 0
webapp.reqs.persec.last: 0.0
webapp.reqs.persec.avg.10000: 0.0
webapp.url: http://localhost:8080/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
GeoscalingDnsService[id=Bmmu2iK1,displayName=GeoScaling DNS]
randomize.subdomain.name = true
geoscaling.username = brooklyn
geoscaling.password = xxxxxxxx
geoscaling.primary.domain.name = cloudsoft.geopaas.org
geoscaling.smart.subdomain.name = brooklyn
geoscaling.account: brooklyn
geoscaling.managed.domain: brooklyn-OPM2uWQ9.cloudsoft.geopaas.org
host.name: brooklyn-OPM2uWQ9.cloudsoft.geopaas.org
2012-05-31 12:22:16,480 INFO Launched application; now blocking to wait for cntrl-c or kill
^C2012-05-31 12:23:43,642 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-31 12:23:43,642 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
2012-05-31 12:23:43,643 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
Application context shutting down...
2012-05-31 12:23:43,651 INFO Stopping application GlobalWebFabricExample[id=vHnhK5ra,displayName=GlobalWebFabricExample:vHnh]
2012-05-31 12:23:43,664 INFO Stopping software process entity NginxController[id=wmkvXHkT,displayName=NginxController:wmkv]
Application context shutdown.
2012-05-31 12:23:43,900 INFO Resize DynamicWebAppCluster[id=TxeqHX3I,displayName=DynamicWebAppCluster:Txeq] from 1 to 0; delta = -1
2012-05-31 12:23:43,909 INFO Stopping software process entity JBoss7Server[id=Zuwt1i1J,displayName=JBoss7Server:Zuwt]
2012-05-31 12:23:43,958 INFO Stopped Brooklyn web console at http://localhost:8081
2012-05-31 12:23:44,083 INFO Stopped application GlobalWebFabricExample[id=vHnhK5ra,displayName=GlobalWebFabricExample:vHnh]
See discussion in https://groups.google.com/forum/?fromgroups#!searchin/brooklyn-dev/EntityClass/brooklyn-dev/-OhfMzGhIPU/FqHX9UO_g5oJ
When I stop brooklyn after running the hadoop.sh
example script (that in turn starts brooklyn.extras.whirr.WhirrHadoopExample) I get this warning message:
2012-05-31 13:13:13,901 INFO Finished running stop phase scripts on all cluster instances
2012-05-31 13:13:13,907 WARN call to unmanage entity brooklyn.extras.whirr.core.WhirrCluster$1[id=k9jCtUMd,displayName=Instance:localhost] but it is not known at brooklyn.management.internal.LocalManagementContext@1578fd9; skipping, and all descendants
2012-05-31 13:13:13,908 WARN call to unmanage entity brooklyn.extras.whirr.core.WhirrCluster$1[id=fi0TDMXg,displayName=Instance:localhost3] but it is not known at brooklyn.management.internal.LocalManagementContext@1578fd9; skipping, and all descendants
2012-05-31 13:13:13,910 INFO Stopped application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
UPDATE: It looks like the hadoop processes don't shut down properly when stopping brooklyn (if deploying to localhost). If deploying to AWS on the other hand, I still get the warnings but the VMs get shutdown normally.
Here is the full output:
cosmin@ubuntu-vm:~/Desktop/brooklyn/examples/hadoop-and-whirr/brooklyn-example-hadoop-and-whirr/bin$ ./hadoop.sh
Launching brooklyn app: brooklyn.extras.whirr.WhirrHadoopExample in [localhost]
2012-05-31 13:06:59,616 INFO Adding application under brooklyn management
2012-05-31 13:06:59,643 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 13:07:03,690 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-31 13:07:05,171 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 13:07:05,176 INFO Starting brooklyn application: brooklyn.extras.whirr.WhirrHadoopExample
2012-05-31 13:07:05,192 INFO Starting entity WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc] at [LocalhostMachineProvisioningLocation[id=757b20b3-1aba-48b7-b22d-46318969f939,name=localhost]]
2012-05-31 13:07:05,840 INFO Starting cluster with roles [1 hadoop-namenode+hadoop-jobtracker, 1 hadoop-datanode+hadoop-tasktracker] in location LocalhostMachineProvisioningLocation[id=757b20b3-1aba-48b7-b22d-46318969f939,name=localhost]
2012-05-31 13:07:05,841 INFO Starting cluster WhirrHadoopCluster[id=WuXoigCZ,displayName=brooklyn-hadoop-example] with roles [1 hadoop-namenode+hadoop-jobtracker, 1 hadoop-datanode+hadoop-tasktracker] in location LocalhostMachineProvisioningLocation[id=757b20b3-1aba-48b7-b22d-46318969f939,name=localhost]
2012-05-31 13:07:08,224 INFO << (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) error acquiring SFTPClient() (attempt 1 of 5): (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) ssh not connected!
2012-05-31 13:07:09,528 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-31 13:07:09,563 INFO redirecting Session Content:
from entity to login page
2012-05-31 13:07:09,571 INFO redirecting Session Content:
from entity to login page
2012-05-31 13:07:09,736 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:09,789 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:10,372 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:10,373 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:10,505 INFO << (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) error acquiring SFTPClient() (attempt 1 of 5): (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) ssh not connected!
2012-05-31 13:07:10,534 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:10,535 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 13:07:15,540 INFO Web console allowing default user (admin)
2012-05-31 13:07:15,540 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
2012-05-31 13:10:02,975 INFO Wrote instances file /home/cosmin/.whirr/brooklyn-hadoop-example/instances
2012-05-31 13:10:03,455 INFO Authorizing firewall ingress to [localhost3] on ports [50070] for [129.215.2.125/32]
2012-05-31 13:10:03,456 INFO Authorizing firewall ingress to [localhost3] on ports [8020, 8021] for [127.0.0.1/32]
2012-05-31 13:10:03,646 INFO Authorizing firewall ingress to [localhost3] on ports [50030] for [129.215.2.125/32]
2012-05-31 13:10:03,646 INFO Authorizing firewall ingress to [localhost3] on ports [8021] for [127.0.0.1/32]
2012-05-31 13:10:03,783 INFO Authorizing firewall ingress to [localhost3] on ports [50030] for [129.215.2.125/32]
2012-05-31 13:10:03,783 INFO Authorizing firewall ingress to [localhost3] on ports [8021] for [127.0.0.1/32]
2012-05-31 13:10:03,881 INFO << (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) error acquiring SFTPClient() (attempt 1 of 5): (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) ssh not connected!
2012-05-31 13:10:06,222 INFO << (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) error acquiring SFTPClient() (attempt 1 of 5): (cosmin:rsa[fingerprint(27:ab:87:66:18:d5:0e:fa:22:f0:3b:1c:df:eb:88:12),sha1(54:95:9f:5e:1a:f3:6b:60:de:ff:fe:7e:53:c3:5a:b7:ef:58:60:a1)]@127.0.0.1:22) ssh not connected!
2012-05-31 13:11:24,434 INFO Completed configuration of brooklyn-hadoop-example role hadoop-namenode
2012-05-31 13:11:24,435 INFO Namenode web UI available at http://localhost:50070
2012-05-31 13:11:24,435 INFO Wrote file /home/cosmin/.whirr/brooklyn-hadoop-example/hadoop-site.xml
2012-05-31 13:11:24,435 INFO Wrote Hadoop proxy script /home/cosmin/.whirr/brooklyn-hadoop-example/hadoop-proxy.sh
2012-05-31 13:11:24,436 INFO Completed configuration of brooklyn-hadoop-example role hadoop-jobtracker
2012-05-31 13:11:24,436 INFO Jobtracker web UI available at http://localhost:50030
2012-05-31 13:11:24,436 INFO Completed configuration of brooklyn-hadoop-example role hadoop-datanode
2012-05-31 13:11:24,436 INFO Completed configuration of brooklyn-hadoop-example role hadoop-tasktracker
2012-05-31 13:11:24,436 INFO Wrote instances file /home/cosmin/.whirr/brooklyn-hadoop-example/instances
2012-05-31 13:11:24,442 INFO Finished running start phase scripts on all cluster instances
2012-05-31 13:11:24,446 INFO Creating group for instance localhost
2012-05-31 13:11:24,489 INFO Creating entity for 'hadoop-datanode' on instance localhost
2012-05-31 13:11:24,508 INFO Creating entity for 'hadoop-tasktracker' on instance localhost
2012-05-31 13:11:24,520 INFO Creating group for instance localhost3
2012-05-31 13:11:24,523 INFO Creating entity for 'hadoop-namenode' on instance localhost3
2012-05-31 13:11:24,534 INFO Creating entity for 'hadoop-jobtracker' on instance localhost3
2012-05-31 13:11:24,550 INFO Starting local SOCKS proxy on port 6666 ...
2012-05-31 13:11:24,591 INFO Started application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
service.isUp: true
WhirrHadoopCluster[id=WuXoigCZ,displayName=brooklyn-hadoop-example]
whirr.hadoop.name = brooklyn-hadoop-example
whirr.hadoop.size = 2
whirr.hadoop.memory = 2048
whirr.recipe = whirr.cluster-name=brooklyn-hadoop-example
whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker, 1 hadoop-datanode+hadoop-tasktracker
whirr.hardware-min-ram=2048
whirr.hadoop.namenodeUrl: hdfs://localhost:8020/
whirr.hadoop.jobtrackerHostPort: localhost:8021
whirr.hadoop.socks.server: localhost:6666
whirr.cluster.name: brooklyn-hadoop-example
service.isUp: true
brooklyn.extras.whirr.core.WhirrCluster$1[id=k9jCtUMd,displayName=Instance:localhost]
group.members.count: 0
WhirrRole[id=VyfGuoN6,displayName=Role:hadoop-datanode]
whirr.instance.role = hadoop-datanode
WhirrRole[id=bGJeMoDQ,displayName=Role:hadoop-tasktracker]
whirr.instance.role = hadoop-tasktracker
brooklyn.extras.whirr.core.WhirrCluster$1[id=fi0TDMXg,displayName=Instance:localhost3]
group.members.count: 0
WhirrRole[id=lr0IvGYr,displayName=Role:hadoop-namenode]
whirr.instance.role = hadoop-namenode
WhirrRole[id=VzILISlo,displayName=Role:hadoop-jobtracker]
whirr.instance.role = hadoop-jobtracker
2012-05-31 13:11:24,662 INFO Application started. Press return to stop.
2012-05-31 13:13:13,802 INFO Stopping application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
2012-05-31 13:13:13,901 INFO Finished running stop phase scripts on all cluster instances
2012-05-31 13:13:13,907 WARN call to unmanage entity brooklyn.extras.whirr.core.WhirrCluster$1[id=k9jCtUMd,displayName=Instance:localhost] but it is not known at brooklyn.management.internal.LocalManagementContext@1578fd9; skipping, and all descendants
2012-05-31 13:13:13,908 WARN call to unmanage entity brooklyn.extras.whirr.core.WhirrCluster$1[id=fi0TDMXg,displayName=Instance:localhost3] but it is not known at brooklyn.management.internal.LocalManagementContext@1578fd9; skipping, and all descendants
2012-05-31 13:13:13,910 INFO Stopped application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
^C2012-05-31 13:13:40,346 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-31 13:13:40,346 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
2012-05-31 13:13:40,348 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
Application context shutting down...
2012-05-31 13:13:40,358 INFO Stopping application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
2012-05-31 13:13:40,365 WARN call to unmanage entity WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc] but it is not known at brooklyn.management.internal.LocalManagementContext@1578fd9; skipping, and all descendants
2012-05-31 13:13:40,369 INFO Stopped application WhirrHadoopExample[id=DFHcxiav,displayName=WhirrHadoopExample:DFHc]
Application context shutdown.
2012-05-31 13:13:40,669 INFO Stopped Brooklyn web console at http://localhost:8081
We need more longevity and stress tests in Brooklyn.
Example test
As a first test to write, how about:
We'd programmatically monitor:
ps aux | grep jboss
returns different pids over time)If watching manually, we'd also run jconsole.
We'd first run this on localhost. Then we'd run it with a fixed set of IPs if we have access to a few spare servers.
Test structure
As a first step, we can write a script that launches both brooklyn and a "monitoring process" to do the above checks. Groovy is probably a good bet for the monitoring process code, because it is scripting.
As a future step, we would beg a server (or few) for running this regularly. We'd have jenkins run a testng test for it (that called the scripts?). Jenkins would run it every day, and the test would run for 23 hours.
Improving test coverage
There are various other things I'd love to be covered in the longevity tests. These include:
We've just made a 0.4.0-M1, as something of an experiment. Here is the general process:
There are some repo issues to resolve (which will be the next issue I create), and then we should document exactly what the process is, and put it in the documentation. But wanted to capture (a) knowledge so far, and (b) need to do this.
A maven archetype for creating a new brooklyn project, with the right dependencies (and optionally groovy compilation support), would be very useful and fairly straightforward.
When running a brooklyn web cluster app at the command line, I did cntrl-c. It took a few minutes (during which it was still starting/installing JBoss), and then I got the exception below.
(Note that the code like 1 * TimeUnit.SECONDS
is possible due to fancy meta-programming in TimeExtras; it generates groovy Duration instances as long as TimeExtras has been class-loaded first).
I'm confident that the JBoss7Server code is fine, because it works at other times.
I wonder whether this could be due to compilation happening in the background... I had Eclipse open so it's conceivable that it might have re-compiled some of the .class files while the brooklyn app was running. However, that's just speculation. I saw this same error once before when doing cntrl-c, but that time I'd done a mvn clean install
while the brooklyn app was still running so I'd put it down to that...
If it is just caused by re-compilation then it's annoying for developers, but also very low-priority...
Caused by: groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.multiply() is applicable for argument types: (java.util.concurrent.TimeUnit$3) values: [MILLISECONDS]
Possible solutions: multiply(java.lang.Number), multiply(java.lang.Character)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at brooklyn.entity.webapp.jboss.JBoss7Server.connectSensors(JBoss7Server.groovy:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.entity.basic.SoftwareProcessEntity.postStart(SoftwareProcessEntity.groovy:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.entity.basic.SoftwareProcessEntity.start(SoftwareProcessEntity.groovy:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.groovy:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at brooklyn.management.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.groovy:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:267)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:69)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:808)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:821)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.entity.basic.MethodEffector.call(AbstractEffector.groovy:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.management.internal.AbstractManagementContext$_invokeEffector_closure1.doCall(AbstractManagementContext.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at java_util_concurrent_Callable$call.call(Unknown Source)
at brooklyn.util.GroovyJavaMethods$_closureFromRunnable_closure1.doCall(GroovyJavaMethods.groovy:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
... 12 more
subscribe.sh
script, the process exits after a short time. It would be more convenient for it to block so that I have enough time to start the publish.sh
script.subscribe.sh
or publish.sh
I get some annoying log4j warnings:log4j:WARN No appenders could be found for logger (org.apache.qpid.client.AMQConnection).
log4j:WARN Please initialize the log4j system properly.
On restarting brooklyn, it would be very useful to re-bind to existing entities. A big part of that is to rebind to the existing machine-locations that they are running in.
For jclouds location, that requires a "rebind" method to (re)generate an appropriate SshMachineLocation. This would also allow subsequent calls to jcloudsLocation.release(machine).
The rebind would take:
The other properties (e.g. ssh private-key) would be assumed to match those defined in the JcloudsLocation configuration.
As a future enhancement, that could also be configurable (e.g. so that a VM started completely externally could then be bound into Brooklyn, even if it wasn't started by Brooklyn/jclouds).
When providing the "--locations loc1 loc2 loc3" argument like this, it looks like only the first location is used.
This is related to how git-like-cli works. It's not happy for some reason with accepting more than one argument for an option. Not sure if we can get it to do that, but it's not obvios form what I've seen in the examples provided.
We currently expose a web console but not a web API. A web RESTful API would allow easy programmatic management and access to sensor data in a language neutral way.
A JSON/XML representation of applications, and an API capability to deploy these, would be a powerful extension making Brooklyn easier for people to consume and also helping with language neutrality.
An "at-rest" representation of the same would be useful for persisting to disk and likely helpful for issue #2.
I saw the weird exception below when running a web-cluster (nginx + jboss7), with an averaging enricher and custom pseudo-load attribute-sensor generator.
The exception happened only 4 times during an overnight run, where the sensor was updating every 500ms. So I believe it successfully passed through this call-path thousands of other times!
2012-05-02 01:53:03,898 WARN brooklyn.util.task.BasicExecutionManager: Error while running task Tasksubscription-delivery-object[brooklyn.enricher.CustomAggregatingEnricher@2c642c2e] [subscription-del
ivery-object[brooklyn.enricher.CustomAggregatingEnricher@2c642c2e]]; TmoQVP6epY: groovy.lang.MissingMethodException: No signature of method: static brooklyn.management.internal.LocalSubscr
iptionManager.makeEntitySensorToken() is applicable for argument types: (brooklyn.entity.webapp.DynamicWebAppCluster, brooklyn.event.basic.BasicAttributeSensor) values: [DynamicWebAppCluster[id=MCtHEUfx,displayName=DynamicWebAppCluster:MCtH], ...]Possible solutions: makeEntitySensorToken(brooklyn.event.SensorEvent), makeEntitySensorToken(brooklyn.entity.Entity, brooklyn.event.Sensor)
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: static brooklyn.management.internal.LocalSubscriptionManager.makeEntitySensorToken() i
s applicable for argument types: (brooklyn.entity.webapp.DynamicWebAppCluster, brooklyn.event.basic.BasicAttributeSensor) values: [DynamicWebAppCluster[id=MCtHEUfx,displayName=DynamicWebAppCluster:MCtH]
, ...]
Possible solutions: makeEntitySensorToken(brooklyn.event.SensorEvent), makeEntitySensorToken(brooklyn.entity.Entity, brooklyn.event.Sensor)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:97)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.Closure.call(Closure.java:410)
at groovy.lang.Closure.call(Closure.java:404)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:239)
at java_util_concurrent_Callable$call$0.call(Unknown Source)
at brooklyn.util.task.SingleThreadedScheduler$_executeNow_closure1.doCall(SingleThreadedScheduler.groovy:74)
at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.util.task.SingleThreadedScheduler$_executeNow_closure1.doCall(SingleThreadedScheduler.groovy)
at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.Closure.call(Closure.java:410)
at groovy.lang.Closure.call(Closure.java:404)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: groovy.lang.MissingMethodException: No signature of method: static brooklyn.management.internal.LocalSubscriptionManager.makeEntitySensorToken() is applicable for argument types: (brooklyn.en
tity.webapp.DynamicWebAppCluster, brooklyn.event.basic.BasicAttributeSensor) values: [DynamicWebAppCluster[id=MCtHEUfx,displayName=DynamicWebAppCluster:MCtH], ...]
Possible solutions: makeEntitySensorToken(brooklyn.event.SensorEvent), makeEntitySensorToken(brooklyn.entity.Entity, brooklyn.event.Sensor)
at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1350)
at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1336)
at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.callStatic(StaticMetaClassSite.java:62)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:169)
at brooklyn.management.internal.LocalSubscriptionManager.getSubscriptionsForEntitySensor(LocalSubscriptionManager.groovy:171)
at brooklyn.management.SubscriptionManager$getSubscriptionsForEntitySensor.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at brooklyn.management.SubscriptionManager$getSubscriptionsForEntitySensor.callCurrent(Unknown Source)
at brooklyn.management.internal.LocalSubscriptionManager.publish(LocalSubscriptionManager.groovy:194)
at brooklyn.management.SubscriptionManager$publish.call(Unknown Source)
at brooklyn.management.internal.BasicSubscriptionContext.publish(BasicSubscriptionContext.groovy:70)
at brooklyn.management.SubscriptionContext$publish.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:82)
at brooklyn.entity.basic.AbstractEntity.emitInternal(AbstractEntity.groovy:759)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:825)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.event.basic.AttributeMap.update(AttributeMap.groovy:72)
at brooklyn.event.basic.AttributeMap$update.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.setAttribute(AbstractEntity.groovy:500)
at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
at brooklyn.entity.basic.AbstractEntity.invokeMethod(AbstractEntity.groovy:825)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at brooklyn.enricher.CustomAggregatingEnricher.onEvent(CustomAggregatingEnricher.groovy:39)
at brooklyn.event.SensorEventListener$onEvent$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at brooklyn.event.SensorEventListener$onEvent$0.call(Unknown Source)
at brooklyn.management.internal.LocalSubscriptionManager$_publish_closure1.doCall(LocalSubscriptionManager.groovy:201)
at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.management.internal.LocalSubscriptionManager$_publish_closure1.doCall(LocalSubscriptionManager.groovy)
at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.Closure.call(Closure.java:410)
at groovy.lang.Closure.call(Closure.java:404)
at java_util_concurrent_Callable$call.call(Unknown Source)
at brooklyn.util.GroovyJavaMethods$_closureFromRunnable_closure1.doCall(GroovyJavaMethods.groovy:13)
at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
... 31 more
Proposal in brief
Brooklyn currently uses jsch [1,2]. I propose changing this to use sshj [3] instead. This will be a straight swap of the brooklyn jsch code for a new sshj-based implementation.
This switch should be completely transparent to users and entity-authors (except for getting more reliability and speed).
Justification
Problems with jsch include it returning exit codes of -1, and it losing some of the characters from long commands that you ask it to execute. In the currently brooklyn code base to work around this, we have a horrible sleep between command executions and some synchronization to avoid concurrent executions - very unpleasant, but without it some example apps frequently failed.
jclouds went through the same refactoring in July 2011 [4].
Details
I see a few options.
I think option 1 is definitely worth doing as it requires the fewest changes in the rest of the brooklyn code base. Hopefully it won't be hard, particularly with the existing jclouds code for reference.
For option 2, that is a good thing to aim for longer-term in various places. Calls currently pass through SshMachineLocation.run. For machine instances created through jclouds, we should be able to use ComputeService.runScriptOnNode instead.
[1] http://www.jcraft.com/jsch/
[2] core:brooklyn.util.internal.SshJschTool
[3] https://github.com/shikhar/sshj
[4] http://code.google.com/p/jclouds/issues/detail?id=637
being able to configure logging levels and make the logs available in the web console would make debugging much easier. especially if we can see SSH i/o attached to a task (say, for when mysql fails because a library isn't available)
It looks like the Tomcat Server and JBoss AS6 Are still using OldJmxSensorAdapter and brooklyn.entity.basic.legacy.JavaApp.
They should use the newer classes as is done in JBoss7Server.
Things to do:
CustomAggregatingEnricherTest fails from time to time making build problematic.
Brooklyn would make an ideal host for CloudFoundry services - could you consider adding support for this?
CloudFoundry consists of a number of core services - cloud controller, health manager, router and DEA. A typical system would need at least one of every one of these. DEAs are the hosts for the applications, so as more applications are deployed, with more instances, then it becomes advantageous to add more DEAs to spread the load. Similar for routers. For small installations, services can be colocated (so one of every node type can run on a single machine).
CloudFoundry also has support for "services" - databases, message queues, etc. that applications can call on. So CloudFoundry has a "mysql" module which connects to a MySQL instance. These could also be scaled out, so that there are multiple MySQL instances.
currently the id_rsa / id_dsa keys specified for brooklyn must not have any passphrase set.
it would be nice to support passphrases, allowing them to be specified:
~/.brooklyn/brooklyn.properties
BrooklynProperties makes this straightforward. syntax would be comparable to how private-keys are defined (perhaps brooklyn.jclouds.localhost.private-key-passphrase
), see CredentialsFromEnv.
Currently the retrieval of memory related information looks like this:
jmxAdapter.objectName(ManagementFactory.MEMORY_MXBEAN_NAME).with {
attribute("HeapMemoryUsage").subscribe(UsesJavaMXBeans.USED_HEAP_MEMORY, { CompositeData m -> MemoryUsage.from(m)?.getUsed() });
attribute("HeapMemoryUsage").subscribe(UsesJavaMXBeans.INIT_HEAP_MEMORY, { CompositeData m -> MemoryUsage.from(m)?.getInit() });
attribute("HeapMemoryUsage").subscribe(UsesJavaMXBeans.COMMITTED_HEAP_MEMORY, { CompositeData m -> MemoryUsage.from(m)?.getCommitted() });
attribute("HeapMemoryUsage").subscribe(UsesJavaMXBeans.MAX_HEAP_MEMORY, { CompositeData m -> MemoryUsage.from(m)?.getMax() });
attribute("NonHeapMemoryUsage").subscribe(UsesJavaMXBeans.NON_HEAP_MEMORY_USAGE, { CompositeData m -> MemoryUsage.from(m)?.getUsed() });
}
This means that 5 times the same information is retrieved from the jmx server, only a different field is used. So it is very inefficient. All the sensors could share the same information and instead of 5 round trips, only 1 is needed.
Alex came up with the following suggestion:
attribute("HeadMemoryUsage").then( { MemoryUsage.from(it) }).with {
subscribe(MAX_HEAP_MEMORY, { it.getMax() });
subscribe(COMMITED_HEAD_MEM, { it.getCommitted() });
...
}
Every entity will get its own sensor registry, every sensor registry will gets a number of threads equal to the number of cpu's in the machine. So with 1000 entities and an 8 core machine we have 8000 threads, which vm's don't always like. If you are going to increase the number of entities.. well.. you get the problem; the approach isn't scalable.
The ManagementContext exposes an ExecutionContext submit scheduled task method, make use of this instead and remove the sensorregistry.scheduledexecutor.
After this refactoring is complete, there is no direct relation between the number of entities and the number of threads, which makes the system much better scalable (inside a single jvm).
A problem could be however with removing scheduled tasks for certain entities....
I've seen mysql not start, very very occasionally. I could do with some help/advice!
I suspect it is due to the way we are nohupping and running SSH:
nohup mysqld & echo $! > pid.txt
What we observe it that the pid.txt file is created but pid not running. There is no nohup.out and no indication of any problem in the log.
I wonder if it is related to the fact that we wait for ssh "termination" (in SshjTool eg ShellAction.create) by doing:
shell.join(TIMEOUT);
session.getExitStatus()
In particular we don't do session.join(TIMEOUT), which is advertised on the sshj API but not documented, so not sure.
But I suspect this is the cause of a difference in behaviour with command-line ssh, where:
ssh localhost 'nohup mysqld & echo $! > pid.txt ; exit 0'
Does not return (until you've manually killed mysqld in a separate process). Even though the shell has exitted and
returned the exit code, I suspect the session is kept open until std{in,out,err} are closed. In particular if we add redirects:
ssh localhost 'nohup mysqld > out 2> err < /dev/null & echo $! > pid.txt ; exit 0'
The process does return. (See http://stackoverflow.com/questions/29142 .)
Most tellingly, in the logs, when the mysqld problem happens, we do not get the usual messages about output going to nohup.out.
So what I think is happening is that the script is proceeding to exit and the ssh session closed, while nohup is still starting,
causing nohup itself to be killed before it has launched mysqld (ie before it has applied any nohupping).
Does this seem plausible?
If so I can see a few possible solutions:
We just add a 'sleep 2' after any nohupped process
We run: nohup bash -c 'mysqld & echo $! > pid.txt'
(causing the script not to proceed until bash has launched nohup.
pid.txt may not be available immediately but that's okay as the subsequent scripts are forgiving.
but means users have to code carefully for background processes.)
We add the session.join(TIMEOUT), with a small timeout, say 10s,
and warn if the session isn't ended in that time (to preserve compatibility),
and encourage developers to write the following in their scripts:
nohup mysqld > out 2> err < /dev/null &
I repeat it's rare (only 1 documented case) but potentially problematic so I think we should address it.
I think prefer the last option -- can't see anything that would break, and moves us to a better model.
Could do however with a sanity check, or better ideas!
the web console collects sensor data, it would be nice to have an option to show a graph for a specific sensor and expose that as a widget, so you could e.g. embed it in your favourite dashboard
e.g. brooklyn.properties
perhaps remove the SpringSecurity since it appears to take a long time to start up
We've just made a 0.4.0-M1, as something of an experiment. Here is the general process:
When running the SingleWebServerExample or WebClusterDatabaseExample from simple-web-cluster I get a ConnectException. Apart from that, everything seems fine: console starts up, reports that JBoss7 ended normally, and the hello-world-webapp shows up at localhost:8080.
UPDATE: looks like the portable-cloudfoundry example is also affected by this same issue.
UPDATE: GlobalWebFabricExample is also affected.
UPDATE: brooklyn.extras.whirr.WebClusterWithHadoopExample is also affected.
This is the output I for SingleWebServerExample:
pegasus:bin cosmin$ ./web-server.sh
Launching brooklyn app: brooklyn.demo.SingleWebServerExample in [localhost]
2012-05-30 17:31:36,740 INFO Adding application under brooklyn management
2012-05-30 17:31:36,767 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:31:41,493 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-30 17:31:42,982 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:31:42,989 INFO Starting brooklyn application: brooklyn.demo.SingleWebServerExample
2012-05-30 17:31:43,001 INFO Starting entity SingleWebServerExample[id=VUn80tvt,displayName=SingleWebServerExample:VUn8] at [LocalhostMachineProvisioningLocation[id=1134a81d-2640-4882-a272-5bfb2952c95b,name=localhost]]
2012-05-30 17:31:43,065 INFO Starting software process entity JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP] at [LocalhostMachineProvisioningLocation[id=1134a81d-2640-4882-a272-5bfb2952c95b,name=localhost]]
2012-05-30 17:34:41,708 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-30 17:34:41,909 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:34:41,925 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:34:55,280 INFO Web console allowing default user (admin)
2012-05-30 17:34:55,280 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
2012-05-30 17:41:48,774 INFO JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP] deploying classpath://hello-world-webapp.war to localhost:/tmp/brooklyn/apps/VUn80tvt/entities/JBoss7Server_7.1.1.Final_WtbPhkC6/standalone/deployments/ROOT.war
2012-05-30 17:41:49,012 WARN including legacy SSH config property backup for localhost/127.0.0.1; either prefix with sshconfig or add to NON_SSH_PROPS
2012-05-30 17:41:50,888 INFO Started application SingleWebServerExample[id=VUn80tvt,displayName=SingleWebServerExample:VUn8]
SingleWebServerExample[id=VUn80tvt,displayName=SingleWebServerExample:VUn8]
service.isUp: true
JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP]
install.version = 7.1.1.Final
webapp.jboss.managementPort = 9990-65535
webapp.jboss.managementNativePort = 10999-65535
webapp.jboss.portIncrement = 0
wars.root = classpath://hello-world-webapp.war
http.port = 8080
webapp.jboss.managementPort: 9990
webapp.jboss.managementNativePort: 10999
webapp.jboss.portIncrement: 0
http.port: 8080
webapp.url: http://localhost:8080/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: false
2012-05-30 17:41:50,970 INFO Launched application; now blocking to wait for cntrl-c or kill
2012-05-30 17:41:51,020 WARN error reading brooklyn.event.adapter.HttpPollHelper@49f751c9[JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP]] from JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP]: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection$connect.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:40)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
^C2012-05-30 17:45:03,026 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
2012-05-30 17:45:03,026 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-30 17:45:03,027 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
Application context shutting down...
2012-05-30 17:45:03,106 INFO Stopping application SingleWebServerExample[id=VUn80tvt,displayName=SingleWebServerExample:VUn8]
2012-05-30 17:45:03,113 INFO Stopping software process entity JBoss7Server[id=WtbPhkC6,displayName=JBoss7Server:WtbP]
Application context shutdown.
2012-05-30 17:45:03,960 INFO Stopped application SingleWebServerExample[id=VUn80tvt,displayName=SingleWebServerExample:VUn8]
2012-05-30 17:45:04,029 INFO Stopped Brooklyn web console at http://localhost:8081
And here is what I get for WebClusterDatabaseExample:
pegasus:bin cosmin$ ./web-and-db.sh
Launching brooklyn app: brooklyn.demo.WebClusterDatabaseExample in [localhost]
2012-05-30 17:55:46,957 INFO Adding application under brooklyn management
2012-05-30 17:55:46,981 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:55:51,770 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-30 17:55:53,493 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-30 17:55:53,499 INFO Starting brooklyn application: brooklyn.demo.WebClusterDatabaseExample
2012-05-30 17:55:53,511 INFO Starting entity WebClusterDatabaseExample[id=eWutdWsH,displayName=WebClusterDatabaseExample:eWut] at [LocalhostMachineProvisioningLocation[id=42edeca9-36b3-485c-9cda-52b683f9d192,name=localhost]]
2012-05-30 17:55:53,562 INFO Starting software process entity MySqlNode[id=U671huBo,displayName=MySqlNode:U671] at [LocalhostMachineProvisioningLocation[id=42edeca9-36b3-485c-9cda-52b683f9d192,name=localhost]]
2012-05-30 17:55:53,636 INFO Activating local management for NginxController[id=opSzUsDM,displayName=NginxController:opSz] on start
2012-05-30 17:55:53,641 INFO adding policy to NginxController[id=opSzUsDM,displayName=NginxController:opSz]
2012-05-30 17:55:53,647 INFO Resize DynamicWebAppCluster[id=jNn6dwa4,displayName=DynamicWebAppCluster:jNn6] from 0 to 1; delta = 1
2012-05-30 17:55:53,679 INFO Starting software process entity NginxController[id=opSzUsDM,displayName=NginxController:opSz] at [LocalhostMachineProvisioningLocation[id=42edeca9-36b3-485c-9cda-52b683f9d192,name=localhost]]
2012-05-30 17:55:53,739 INFO Activating local management for JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1] on start
2012-05-30 17:55:53,742 INFO Starting software process entity JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1] at [LocalhostMachineProvisioningLocation[id=42edeca9-36b3-485c-9cda-52b683f9d192,name=localhost]]
2012-05-30 17:58:13,446 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-30 17:58:13,605 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:58:13,621 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-30 17:58:17,640 INFO Web console allowing default user (admin)
2012-05-30 17:58:17,640 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
2012-05-30 18:00:59,977 INFO JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1] deploying classpath://hello-world-sql-webapp.war to localhost:/tmp/brooklyn/apps/eWutdWsH/entities/JBoss7Server_7.1.1.Final_F0o1Cnf6/standalone/deployments/ROOT.war
2012-05-30 18:01:00,193 WARN including legacy SSH config property backup for localhost/127.0.0.1; either prefix with sshconfig or add to NON_SSH_PROPS
2012-05-30 18:01:01,831 WARN error reading brooklyn.event.adapter.HttpPollHelper@50b18b90[JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1]] from JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1]: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection$connect.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:40)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
2012-05-30 18:01:04,408 INFO Adding to NginxController:opSz, new member JBoss7Server:F0o1 in locations [localhost/127.0.0.1]
2012-05-30 18:01:05,169 INFO Reconfiguring NginxController:opSz, members are [localhost:8080]
2012-05-30 18:01:06,678 INFO updating NginxController[id=opSzUsDM,displayName=NginxController:opSz]
2012-05-30 18:01:06,678 INFO Reconfiguring NginxController:opSz, members are [localhost:8080]
2012-05-30 18:01:06,870 INFO Started application WebClusterDatabaseExample[id=eWutdWsH,displayName=WebClusterDatabaseExample:eWut]
WebClusterDatabaseExample[id=eWutdWsH,displayName=WebClusterDatabaseExample:eWut]
service.isUp: true
ControlledDynamicWebAppCluster[id=f0ZRswuP,displayName=ControlledDynamicWebAppCluster:f0ZR]
cluster.initial.size = 1
wars.root = classpath://hello-world-sql-webapp.war
http.port = 8080,18000-65535
host.name: localhost
service.isUp: true
webapp.url: http://localhost:8000/
DynamicWebAppCluster[id=jNn6dwa4,displayName=DynamicWebAppCluster:jNn6]
http.port = 8080,18000-65535
cluster.initial.size = 1
cluster.reqs.count.total: 0
cluster.reqs.count.average: 0.0
cluster.reqs.errors.total: 0
cluster.reqs.errors.average: 0.0
cluster.reqs.persec.total: 0.0
cluster.reqs.persec.average: 0.0
cluster.reqs.processing-time.total: 0
cluster.reqs.processing-time.average: 0.0
service.isUp: true
group.members.count: 1
JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1]
install.version = 7.1.1.Final
webapp.jboss.managementPort = 9990-65535
webapp.jboss.managementNativePort = 10999-65535
webapp.jboss.portIncrement = 0
wars.root = classpath://hello-world-sql-webapp.war
http.port = 8080-65535
java.options = [brooklyn.example.db.url:Task[retrieving MySqlNode[id=U671huBo,displayName=MySqlNode:U671] Sensor: mysql.url (java.lang.String) [attributePostProcessedWhenReady, JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1]]; 0sJBUFkn6o]]
webapp.jboss.managementPort: 9990
webapp.jboss.managementNativePort: 10999
webapp.jboss.portIncrement: 0
webapp.jboss.managementStatus: 200
http.port: 8080
webapp.reqs.errors: 0
webpp.reqs.processing.max: 0
webapp.reqs.total: 0
webapp.reqs.processing.time: 0
webapp.reqs.bytes.received: 0
webapp.reqs.bytes.sent: 0
webapp.reqs.persec.last: 0.0
webapp.reqs.persec.avg.10000: 0.0
webapp.url: http://localhost:8080/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
NginxController[id=opSzUsDM,displayName=NginxController:opSz]
install.version = 1.2.0
proxy.http.port = 8000,8001-65535
proxy.protocol = http
proxy.domainName = anonymous
webapp.url: http://localhost:8000/
proxy.http.port: 8000
proxy.protocol: http
proxy.domainName: anonymous
proxy.url: http://localhost:8000/
proxy.targets: [localhost:8080]
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
MySqlNode[id=U671huBo,displayName=MySqlNode:U671]
install.version = 5.5.24
mysql.port = 3306,13306-65535
mysql.creation.script.url = classpath://visitors-creation-script.sql
mysql.install.mirror.url = http://gd.tuwien.ac.at/db/mysql/
mysql.port: 3306
mysql.url: mysql://127.0.0.1:3306/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
2012-05-30 18:01:06,901 INFO Launched application; now blocking to wait for cntrl-c or kill
^C2012-05-30 18:02:35,656 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
Application context shutting down...
Application context shutdown.
2012-05-30 18:02:35,656 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-30 18:02:35,735 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
2012-05-30 18:02:35,740 INFO Stopping application WebClusterDatabaseExample[id=eWutdWsH,displayName=WebClusterDatabaseExample:eWut]
2012-05-30 18:02:35,746 INFO Stopping software process entity MySqlNode[id=U671huBo,displayName=MySqlNode:U671]
2012-05-30 18:02:35,746 INFO Stopping software process entity NginxController[id=opSzUsDM,displayName=NginxController:opSz]
2012-05-30 18:02:36,760 INFO Resize DynamicWebAppCluster[id=jNn6dwa4,displayName=DynamicWebAppCluster:jNn6] from 1 to 0; delta = -1
2012-05-30 18:02:36,783 INFO Stopping software process entity JBoss7Server[id=F0o1Cnf6,displayName=JBoss7Server:F0o1]
2012-05-30 18:02:36,836 INFO Stopped Brooklyn web console at http://localhost:8081
2012-05-30 18:02:36,987 INFO Stopped application WebClusterDatabaseExample[id=eWutdWsH,displayName=WebClusterDatabaseExample:eWut]
Output for running the portable-cloudfoundry example:
pegasus:bin cosmin$ ./demo.sh
Launching brooklyn app: brooklyn.example.cloudfoundry.MovableCloudFoundryClusterExample in [localhost]
2012-05-31 12:06:46,126 INFO Adding application under brooklyn management
2012-05-31 12:06:46,153 INFO Starting Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 12:06:50,412 INFO [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT
2012-05-31 12:06:52,014 INFO Started Brooklyn console at http://localhost:8081, running brooklyn.war
2012-05-31 12:06:52,020 INFO Starting brooklyn application: brooklyn.example.cloudfoundry.MovableCloudFoundryClusterExample
2012-05-31 12:06:52,032 INFO Starting entity MovableCloudFoundryClusterExample[id=NaepvoQ5,displayName=MovableCloudFoundryClusterExample:Naep] at [LocalhostMachineProvisioningLocation[id=e52e857f-5b5e-457f-a89d-9cd01be7d379,name=localhost]]
2012-05-31 12:06:52,189 INFO Activating local management for ControlledDynamicWebAppCluster[id=O57ctFYu,displayName=ControlledDynamicWebAppCluster:O57c] on start
2012-05-31 12:06:52,361 INFO Activating local management for DynamicWebAppCluster[id=LYXZGkZJ,displayName=DynamicWebAppCluster:LYXZ] on start
2012-05-31 12:06:52,361 INFO Activating local management for NginxController[id=eL05SXC7,displayName=NginxController:eL05] on start
2012-05-31 12:06:52,366 INFO adding policy to NginxController[id=eL05SXC7,displayName=NginxController:eL05]
2012-05-31 12:06:52,369 INFO Resize DynamicWebAppCluster[id=LYXZGkZJ,displayName=DynamicWebAppCluster:LYXZ] from 0 to 1; delta = 1
2012-05-31 12:06:52,389 INFO Starting software process entity NginxController[id=eL05SXC7,displayName=NginxController:eL05] at [LocalhostMachineProvisioningLocation[id=e52e857f-5b5e-457f-a89d-9cd01be7d379,name=localhost]]
2012-05-31 12:06:52,466 INFO Activating local management for JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N] on start
2012-05-31 12:06:52,468 INFO Starting software process entity JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N] at [LocalhostMachineProvisioningLocation[id=e52e857f-5b5e-457f-a89d-9cd01be7d379,name=localhost]]
2012-05-31 12:06:53,775 INFO JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N] deploying classpath://hello-world-webapp.war to localhost:/tmp/brooklyn/apps/NaepvoQ5/entities/JBoss7Server_7.1.1.Final_Ej5NBSuQ/standalone/deployments/ROOT.war
2012-05-31 12:06:53,946 WARN including legacy SSH config property backup for localhost/127.0.0.1; either prefix with sshconfig or add to NON_SSH_PROPS
2012-05-31 12:06:55,687 WARN error reading brooklyn.event.adapter.HttpPollHelper@34667da1[JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N]] from JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N]: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection$connect.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at brooklyn.event.adapter.HttpPollHelper.executePollOnSuccess(HttpPollHelper.groovy:40)
at brooklyn.event.adapter.AbstractPollHelper.executePoll(AbstractPollHelper.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:992)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:697)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1112)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at brooklyn.event.adapter.AbstractPollHelper$_activatePoll_closure3_closure5.doCall(AbstractPollHelper.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at brooklyn.util.task.BasicExecutionManager$2$1.call(BasicExecutionManager.java:225)
at brooklyn.util.task.BasicExecutionManager$3.call(BasicExecutionManager.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
2012-05-31 12:06:56,200 INFO Adding to NginxController:eL05, new member JBoss7Server:Ej5N in locations [localhost/127.0.0.1]
2012-05-31 12:06:56,647 INFO Reconfiguring NginxController:eL05, members are [localhost:8080]
2012-05-31 12:06:58,167 INFO updating NginxController[id=eL05SXC7,displayName=NginxController:eL05]
2012-05-31 12:06:58,167 INFO Reconfiguring NginxController:eL05, members are [localhost:8080]
2012-05-31 12:06:58,357 INFO Started application MovableCloudFoundryClusterExample[id=NaepvoQ5,displayName=MovableCloudFoundryClusterExample:Naep]
MovableCloudFoundryClusterExample[id=NaepvoQ5,displayName=MovableCloudFoundryClusterExample:Naep]
service.isUp: true
MovableElasticWebAppCluster[id=aqlMKYuH,displayName=MovableElasticWebAppCluster:aqlM]
wars.root = classpath://hello-world-webapp.war
movable.primary.id: O57ctFYu
ControlledDynamicWebAppCluster[id=O57ctFYu,displayName=ControlledDynamicWebAppCluster:O57c]
cluster.initial.size = 1
wars.root = classpath://hello-world-webapp.war
http.port = 8080,18000-65535
host.name: localhost
service.isUp: true
webapp.url: http://localhost:8000/
NginxController[id=eL05SXC7,displayName=NginxController:eL05]
install.version = 1.2.0
proxy.http.port = 8000,8001-65535
proxy.protocol = http
proxy.domainName = anonymous
webapp.url: http://localhost:8000/
proxy.http.port: 8000
proxy.protocol: http
proxy.domainName: anonymous
proxy.url: http://localhost:8000/
proxy.targets: [localhost:8080]
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
DynamicWebAppCluster[id=LYXZGkZJ,displayName=DynamicWebAppCluster:LYXZ]
http.port = 8080,18000-65535
cluster.initial.size = 1
cluster.reqs.count.total: 1
cluster.reqs.count.average: 1.0
cluster.reqs.errors.total: 0
cluster.reqs.errors.average: 0.0
cluster.reqs.persec.total: 0.09952606635071092
cluster.reqs.persec.average: 0.09952606635071092
cluster.reqs.processing-time.total: 68
cluster.reqs.processing-time.average: 68.0
service.isUp: true
group.members.count: 1
JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N]
install.version = 7.1.1.Final
webapp.jboss.managementPort = 9990-65535
webapp.jboss.managementNativePort = 10999-65535
webapp.jboss.portIncrement = 0
wars.root = classpath://hello-world-webapp.war
http.port = 8080,18000-65535
webapp.jboss.managementPort: 9990
webapp.jboss.managementNativePort: 10999
webapp.jboss.portIncrement: 0
webapp.jboss.managementStatus: 200
http.port: 8080
webapp.reqs.errors: 0
webpp.reqs.processing.max: 68
webapp.reqs.total: 1
webapp.reqs.processing.time: 68
webapp.reqs.bytes.received: 0
webapp.reqs.bytes.sent: 520
webapp.reqs.persec.last: 4.739336492890995
webapp.reqs.persec.avg.10000: 0.09952606635071092
webapp.url: http://localhost:8080/
host.name: localhost
host.address: 127.0.0.1
service.state: running
service.isUp: true
2012-05-31 12:06:58,398 INFO Launched application; now blocking to wait for cntrl-c or kill
2012-05-31 12:07:41,956 INFO Web console using default security provider: brooklyn.web.console.security.ExplicitUsersSecurityProvider
2012-05-31 12:07:41,963 INFO redirecting Session Content:
from dashboard to login page
2012-05-31 12:07:42,105 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 12:07:42,119 WARN [DEPRECATED] Tag [createLinkTo] is deprecated please use [resource] instead
2012-05-31 12:07:45,887 INFO Web console allowing default user (admin)
2012-05-31 12:07:45,887 INFO Web console ExplicitUsersSecurityProvider authenticated user admin
^C2012-05-31 12:07:58,732 INFO Brooklyn launcher's shutdown-hook invoked: shutting down web-console
2012-05-31 12:07:58,732 INFO Brooklyn launcher's shutdown-hook invoked: shutting down application
2012-05-31 12:07:58,733 INFO Stopping Brooklyn web console at http://localhost:8081 (brooklyn.war)
2012-05-31 12:07:58,734 INFO Stopping application MovableCloudFoundryClusterExample[id=NaepvoQ5,displayName=MovableCloudFoundryClusterExample:Naep]
Application context shutting down...
2012-05-31 12:07:58,746 INFO Stopping software process entity NginxController[id=eL05SXC7,displayName=NginxController:eL05]
Application context shutdown.
2012-05-31 12:07:58,993 INFO Resize DynamicWebAppCluster[id=LYXZGkZJ,displayName=DynamicWebAppCluster:LYXZ] from 1 to 0; delta = -1
2012-05-31 12:07:59,005 INFO Stopping software process entity JBoss7Server[id=Ej5NBSuQ,displayName=JBoss7Server:Ej5N]
2012-05-31 12:07:59,060 INFO Stopped Brooklyn web console at http://localhost:8081
2012-05-31 12:07:59,178 INFO Stopped application MovableCloudFoundryClusterExample[id=NaepvoQ5,displayName=MovableCloudFoundryClusterExample:Naep]
The update method does a synchronized on the targetHosts list. The targetHosts itself is a threadsafe list (since it is created using a Collections.synchronizedMap). But by calling synchronized the intrinsic lock of the targetHosts object is acquired, and this could be a completely different lock than the lock used by the Collections.synchronizedMap implementation.
So while the synchronized block is entered, there is no guarantee that another method can't call a put/remove operation on the map.
So the code is unclear at best, or otherwise broken. A typical example of sprinkling the code with synchronized to hope to get something threadsafe.
Solution? Don't know.. perhaps use a normal mutable collections for the targetHost, and always use explicit synchronization if some form of stable copy is needed. Otherwise perhaps make use of the concurrenthashmap
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.