I got to fix that one...I forgot to import that library.
However, now I got this:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile
(default-testCompile) on project brooklyn-social-apps: Compilation failure
[ERROR]
/Users/chechu/scripts/brooklyn-social-app-original/brooklyn-social-apps/src/test/java/io/cloudsoft/socialapps/drupal/DrupalLiveTest.java:[36,33]
destroyAll(brooklyn.management.ManagementContext) in
brooklyn.entity.basic.Entities cannot be applied to
(brooklyn.test.entity.TestApplication)
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile
(default-testCompile) on project brooklyn-social-apps: Compilation failure
/Users/chechu/scripts/brooklyn-social-app-original/brooklyn-social-apps/src/test/java/io/cloudsoft/socialapps/drupal/DrupalLiveTest.java:[36,33]
destroyAll(brooklyn.management.ManagementContext) in
brooklyn.entity.basic.Entities cannot be applied to
(brooklyn.test.entity.TestApplication)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
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.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.CompilationFailureException:
Compilation failure
/Users/chechu/scripts/brooklyn-social-app-original/brooklyn-social-apps/src/test/java/io/cloudsoft/socialapps/drupal/DrupalLiveTest.java:[36,33]
destroyAll(brooklyn.management.ManagementContext) in
brooklyn.entity.basic.Entities cannot be applied to
(brooklyn.test.entity.TestApplication)
at
org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656)
at
org.apache.maven.plugin.TestCompilerMojo.execute(TestCompilerMojo.java:161)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 19 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
This is the file:
package io.cloudsoft.socialapps.drupal;
import static
brooklyn.event.basic.DependentConfiguration.attributeWhenReady;
import java.util.Arrays;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.entity.basic.ApplicationBuilder;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.database.mysql.MySqlNode;
import brooklyn.location.Location;
import brooklyn.test.HttpTestUtils;
import brooklyn.test.entity.TestApplication;
public class DrupalLiveTest {
private final static String SCRIPT = "create database drupal; " +
"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupal'@'localhost'
IDENTIFIED BY 'password'; " +
"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupal'@'127.0.0.1'
IDENTIFIED BY 'password'; " +
"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupal'@'%'
IDENTIFIED BY 'password';" +
"FLUSH PRIVILEGES;";
private TestApplication app;
private Location location;
@BeforeMethod(alwaysRun = true)
public void setUp() {
app = ApplicationBuilder.newManagedApp(TestApplication.class);
}
@AfterMethod(alwaysRun = true)
public void tearDown() {
if (app != null) Entities.destroyAll(app);
}
@Test(groups = "Live")
public void test() {
MySqlNode mySqlNode =
app.createAndManageChild(EntitySpec.create(MySqlNode.class)
.configure(MySqlNode.CREATION_SCRIPT_CONTENTS, SCRIPT));
Drupal drupal =
app.createAndManageChild(EntitySpec.create(Drupal.class)
.configure(Drupal.DATABASE_PORT,
attributeWhenReady(mySqlNode, MySqlNode.MYSQL_PORT))
.configure(Drupal.DATABASE_UP,
attributeWhenReady(mySqlNode, MySqlNode.SERVICE_UP))
.configure(Drupal.DATABASE_HOST,
attributeWhenReady(mySqlNode, MySqlNode.HOSTNAME))
.configure(Drupal.DATABASE_SCHEMA, "drupal")
.configure(Drupal.DATABASE_USER, "drupal")
.configure(Drupal.DATABASE_PASSWORD, "password")
.configure(Drupal.ADMIN_EMAIL, "[email protected]"));
location =
app.getManagementContext().getLocationRegistry().resolve("aws-ec2:us-east-1");
app.start(Arrays.asList(location));
HttpTestUtils.assertContentEventuallyContainsText("http://" +
drupal.getAttribute(Drupal.HOSTNAME) + "/index.php", "Welcome");
}
}
On Thu, Jul 17, 2014 at 3:37 PM, Aled Sage <[email protected]> wrote:
Can you copy-paste your line 15 of Drupal.java, and confirm that the
class has an import for brooklyn.entity.basic.ConfigKeys
On 17/07/2014 13:53, Jesus arteche wrote:
mmm still getting this:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile
(default-compile) on project brooklyn-social-apps: Compilation failure
[ERROR]
/Users/chechu/scripts/brooklyn-social-app-original/
brooklyn-social-apps/src/main/java/io/cloudsoft/socialapps/
drupal/Drupal.java:[15,3]
cannot find symbol
[ERROR] symbol : variable ConfigKeys
[ERROR] location: interface io.cloudsoft.socialapps.drupal.Drupal
On Thu, Jul 17, 2014 at 2:26 PM, Aled Sage <[email protected]> wrote:
Hi,
public static final BasicConfigKey<String> SUGGESTED_VERSION =
new BasicConfigKey<String>(SoftwareProcess.SUGGESTED_
VERSION,
"7.17");
Try replacing this with:
ConfigKey<String> SUGGESTED_VERSION =
ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_
VERSION,
"7.17");
---
To run on other cloud providers, you should be able to give it any other
location you choose (assuming that location is configured in
~/.brooklyn/brooklyn.properties).
The code in `BasicDrupalApp.java` is just adding some extra config for
aws-ec2 and for cloudservers-uk. If softlayer is already configured
appropriately it will just work.
For example, try running something like:
brooklyn launch --app
io.cloudsoft.socialapps.drupal.examples.BasicDrupalApp --location
softlayer-debian
or the custom main method directly:
io.cloudsoft.socialapps.drupal.examples.BasicDrupalApp --location
softlayer-debian
where you have in your brooklyn.properties:
brooklyn.location.jclouds.softlayer.identity=ABCDEFGH
brooklyn.location.jclouds.softlayer.credential=
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk
brooklyn.location.named.softlayer-debian=jclouds:softlayer
brooklyn.location.named.softlayer-debian.imageId=DEBIAN_7_64
---
We should really take out the hard-coded properties from
BasicDrupalApp.main, and instead document it better that just Debian is
supported (and give some examples of how to do that for different
clouds).
But that's an exercise for a later day I think!
Aled
On 16/07/2014 22:17, Jesus arteche wrote:
mmm Working on that...I think I solved the majority of teh
dependencies...but I can not fix this one:
the original code:
public static final BasicConfigKey<String> SUGGESTED_VERSION =
new BasicConfigKey<String>(SoftwareProcess.SUGGESTED_
VERSION,
"7.17");
Reading the release notes of teh different I tried to change it...but
not
success...
Could you help me out?
Other topic, the Drupal app is using a debian instance on aws...how
can I
change this to be able to use at least Debian on SoftLayer...or if
possible
in any cloud provider?
this is the code:
BrooklynProperties brooklynProperties =
BrooklynProperties.Factory.newDefault();
brooklynProperties.put("brooklyn.jclouds.aws-ec2.image-id",
"us-east-1/ami-7ce17315");
brooklynProperties.put("brooklyn.jclouds.aws-ec2.loginUser",
"admin");
brooklynProperties.put("brooklyn.jclouds.cloudservers-
uk.image-name-regex",
"Debian 6");
brooklynProperties.remove("brooklyn.jclouds.cloudservers-
uk.image-id");
On Sun, Jul 13, 2014 at 10:56 PM, Aled Sage <[email protected]>
wrote:
Hi,
you meant I should compile the code of Brooklyn 0.6?
I meant that you can update the pom of brooklyn-social-apps [1] to
depend
on brooklyn 0.6.0 - mvn (and IDEs like Eclipse and IntelliJ) will pull
down
the pre-built jars from maven central when it next does a full build.
The idea behind my suggestion of updating first to 0.6.0, rather than
straight to 0.7.0-M1, was to get the relevant deprecation warnings -
the
javadoc of the now-deprecated code will point you at the alternative
code
to use. Most IDEs will tell you about all the deprecation warnings in
the
code. Running javac (or `mvn clean install`) at the command line
should
also warn you about deprecation warnings.
If updating straight from 0.5.0 (or an old 0.6.0-SNAPSHOT) to 0.7.0-M1
then you might find code had been deleted, without seeing the
intermediate
deprecation warnings.
The release notes for each version includes information on deprecated
code, but I would not guarantee it is a 100% complete list. The
javadoc
on
the methods is the authoritative source:
http://brooklyncentral.github.io/v/0.7.0-M1/start/release-notes.html
http://brooklyncentral.github.io/v/0.6.0/start/release-notes.html
---
Two things about the NoClassDefFoundError you are seeing.
First, the BasicEntitySpec was deprecated in 0.6.0 [2] and deleted in
0.7.0-M1. Instead, use `EntitySpec.create()`.
Second, getting a NoClassDefFoundError usual means that you have
compiled
the code against a different version from what you are running
against. I
presume you have compiled against 0.6.0, and are trying to run it
against a
more recent brooklyn?
[1] https://github.com/cloudsoft/brooklyn-social-apps/
[2] https://github.com/brooklyncentral/brooklyn/blob/
0.6.x/core/src/main/java/brooklyn/entity/proxying/
BasicEntitySpec.java
On 13/07/2014 20:55, Jesus arteche wrote:
I got to compile with mvn the social-apps....When trying to run
Drupal
cluster I got:
014-07-13 21:18:01,931 INFO No exception mapping for class
java.lang.NoClassDefFoundError, responding 500
java.lang.NoClassDefFoundError: brooklyn/entity/proxying/
BasicEntitySpec
at java.lang.Class.getDeclaredConstructors0(Native Method)
~[na:1.6.0_65]
Caused by: java.lang.ClassNotFoundException:
brooklyn.entity.proxying.BasicEntitySpec
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
~[na:1.6.0_65]
2014-07-13 21:18:01,932 INFO No exception mapping for class
java.lang.NoClassDefFoundError, responding 500
java.lang.NoClassDefFoundError: brooklyn/entity/proxying/
BasicEntitySpec
at java.lang.Class.getDeclaredFields0(Native Method) ~[na:1.6.0_65]
Caused by: java.lang.ClassNotFoundException:
brooklyn.entity.proxying.BasicEntitySpec
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
~[na:1.6.0_65]
2014-07-13 21:21:54,853 INFO No exception mapping for class
java.lang.NoClassDefFoundError, responding 500
java.lang.NoClassDefFoundError: brooklyn/entity/proxying/
BasicEntitySpec
at java.lang.Class.getDeclaredConstructors0(Native Method)
~[na:1.6.0_65]
Caused by: java.lang.ClassNotFoundException:
brooklyn.entity.proxying.BasicEntitySpec
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
~[na:1.6.0_65]
I guess you guys substituted brooklyn.entity.proxying.
BasicEntitySpec
for
another library in version 7...how can I track these changes?
On Sat, Jul 12, 2014 at 12:04 AM, Jesus arteche <
[email protected]
wrote:
you meant I should compile the code of Brooklyn 0.6?
On Fri, Jul 11, 2014 at 9:15 PM, Aled Sage <
[email protected]>
wrote:
Hi,
I'd start with the unmerged pull request - get a copy of that
branch.
Then update pom to depend on Brooklyn 0.6.0.
Then fix any code with deprecation warnings.
Then update to Brooklyn 0.7.0-M1.
Then fix any more deprecation warnings (or code that doesn't
compile,
but
I don't expect any of that).
Then run integration tests.
Thanks and good luck. We're here to help!
---
Open stack: yes, Brooklyn supports that. Use location
jclouds:openstack-nova:<keystone-endpoint>
Aled
Sent from my iPhone
On 11 Jul 2014, at 18:49, Jesus arteche <[email protected]
wrote:
hey Alex,
I got some cycles, so probably I will start to look how to fix the
Drupal
example for the version 7...
Where should I start to look?
Other topic:
Can Brooklyn work with OpenStack?
On Fri, Jul 4, 2014 at 3:52 PM, Alex Heneveld <
[email protected]> wrote:
Jesus,
It's probably not too tough to update that code further to run
against
0.7.0-M1 or snapshot. Would be great to have!
Fancy a go?
I'm happy to help on IRC if you have questions about where things
have
been moved.
Best
Alex
On 04/07/2014 13:43, Aled Sage wrote:
Hi,
Which version of brooklyn-social-apps are you using? the error
doesn't
match the code in master:
https://github.com/cloudsoft/brooklyn-social-apps/blob/
master/src/main/java/io/cloudsoft/socialapps/drupal/
examples/ClusteredDrupalApp.java
Are you building at the command line (`mvn clean install`) or in
the
IDE?
If the latter, does it depend on more recent projects of
Brooklyn or
is
using mvn to get the dependencies?
---
Unfortunately, it looks like https://github.com/cloudsoft/
brooklyn-social-apps master still depends on the old Brooklyn
0.5.0.
With that, `mvn clean install` works for me.
Dropping these entities into most recent Brooklyn server may not
work.
There is an unmerged pull request [1] that updates the code
against
an
interim release of 0.6.0. We should build on that to work
against
0.7.0-M1.
The specific error you are seeing is because
brooklyn.util.MutableMap
was
deprecated [2], and has been deleted in the latest version. You
need
to
instead use ` brooklyn.util.collections.MutableMap`.
Aled
[1] https://github.com/cloudsoft/brooklyn-social-apps/pull/16
[2] https://github.com/brooklyncentral/brooklyn/blob/
v0.6.0/utils/common/src/main/java/brooklyn/util/MutableMap.java
On 04/07/2014 13:19, Jesus arteche wrote:
Hey guys,
I´m trying to install social-app for brooklyn to deploy a
drupal-cluster
but I got this error:
1. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 25)
import brooklyn.util.MutableMap;
^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] no more tokens - could not parse error message: The
import
brooklyn.util.MutableMap cannot be resolved
----------
2. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 47)
Map mysqlConf = MutableMap.of("creationScriptContents",
SCRIPT);
^^^^^^^^^^
[ERROR] no more tokens - could not parse error message:
MutableMap
cannot
be resolved
----------
3. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 48)
mySqlNode = new MySqlNode(mysqlConf, this);
^^^^^^^^^
[ERROR] no more tokens - could not parse error message: Cannot
instantiate
the type MySqlNode
----------
4. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 50)
ConfigurableEntityFactory<Drupal> drupalFactory = new
BasicConfigurableEntityFactory<Drupal>(Drupal.class);
^^^^^^
[ERROR] no more tokens - could not parse error message: Bound
mismatch:
The
type Drupal is not a valid substitute for the bounded parameter
<T
extends
Entity> of the type ConfigurableEntityFactory<T>
----------
5. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 50)
ConfigurableEntityFactory<Drupal> drupalFactory = new
BasicConfigurableEntityFactory<Drupal>(Drupal.class);
^^^^^^
[ERROR] no more tokens - could not parse error message: Bound
mismatch:
The
type Drupal is not a valid substitute for the bounded parameter
<T
extends
Entity> of the type BasicConfigurableEntityFactory<T>
----------
6. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 59)
Map clusterProps = MutableMap.of("factory", drupalFactory,
"initialSize",
2);
^^^^^^^^^^
[ERROR] no more tokens - could not parse error message:
MutableMap
cannot
be resolved
----------
7. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 60)
cluster = new ControlledDynamicWebAppCluster(clusterProps,
this);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] no more tokens - could not parse error message: Cannot
instantiate
the type ControlledDynamicWebAppCluster
----------
8. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/ClusteredDrupalApp.java
(at line 68)
BrooklynServerDetails server = BrooklynLauncher.newLauncher().
^^^^^^^^^^^
[ERROR] no more tokens - could not parse error message: The
method
newLauncher() is undefined for the type BrooklynLauncher
----------
----------
9. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/BasicDrupalApp.java
(at line 16)
import brooklyn.location.basic.LocationRegistry;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] no more tokens - could not parse error message: The
import
brooklyn.location.basic.LocationRegistry cannot be resolved
----------
10. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/BasicDrupalApp.java
(at line 18)
import brooklyn.location.basic.jclouds.JcloudsLocation;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] no more tokens - could not parse error message: The
import
brooklyn.location.basic.jclouds cannot be resolved
----------
11. ERROR in
/root/brookly-social/brooklyn-social-apps/src/main/java/io/
cloudsoft/socialapps/drupal/examples/BasicDrupalApp.java
(at line 19)
import brooklyn.util.MutableMap;
^^
I Installed first Brooklyn 0.7.0 without any error...probably
is a
stupid
mistake...any idea?