What is the advised stack to work with Flink and Scala? - eclipse

My current try:
Eclipse 4.4.2 Luna with scala-ide plugin
Rebuild Flink for scala 2.11 (by default maven downloads official Flink build which is for scala 2.10. This brings some issues with the IDE, such as the dreaded macros incompatibility
But working like that is somewhat cumbersome as you need :
To rebuild Flink for scala 2.11 everytime you update to latest source
code.
have correct maven settings so that your project dependencies are not overwritten with Flink official build (i.e. overwriting your scala 2.11 Flink build with scala 2.10 build) when building your project in Eclipse.

From Flink 0.10, the Flink community will provide Flink for Scala 2.11. Currently, you can use Flink for Scala 2.11 (0.10-SNAPSHOT) with Apache Snapshot Maven Repository.
You can add the repository using following maven settings:
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>http://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

Running IntelliJ solved my issues.
I post this as an answer as Matthias provided the answer in a comment. Thanks Matthias.

Related

Citrus version and Cucumber version issue

Citrus 2.7.7 is not compatible with cucumber 3.0.2 or later and when I check the sample from GitHub, they are using 2.8.0-SNAPSHOT with cucumber 3.0.2. So when is the 2.8.0 release version will be out? For me, I am able to get the 2.8.0-SNAPSHOT without any issue. But for some of my colleague they are not able to get it even with this.
<repositories>
<repository>
<id>consol-labs-snapshots</id>
<url>http://labs.consol.de/maven/snapshots-repository/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:10080</updatePolicy>
</snapshots>
</repository>
</repositories>
#Sven Hettwer,
There is no error message, it just says not able to find the artifact!
We're planning to release 2.8.0 no later than by the end of the year. Stay tuned on twitter or on http://citrusframework.org/.
The maven config seems to be okay so far. Could you provide some information about the error message?
Edit:
Have your tried the -U flag for maven? E.g. mvn clean install -U to force updates on snapshots?
BR,
Sven

Resolve oltu openid connect dependency in maven

This is not a question but a simple maven dependency solution of oltu openid connect that I like to share. I found it might be helpful to other as there's not too many resource about it on the web.
I was having a problem with oltu openid connect dependency in maven (pom). Somehow I found its groupid, artifact, and its version. But whenever I insert the dependency in pom, eclipse notifies me with missing artifact. The problem seemed like this:
The problem was as above mentioned that the dependency was not available in maven central repository. As I searched through web, I found those dependencies are hosted in other repository which is http://repository.idega.com/maven2/. After that, the solution was just to include this repository in your pom like shown below:
Try using the Apache Snapshot Repository:
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>

Using Akka in Scala IDE

I have Scala IDE already setup because I used it for Coursera course "Functional Programming Principles in Scala" by Martin Odersky.
Now i want to use Akka framework in the same IDE.
Is there any Scala IDE Akka plugin available which i can import directly?
I tried to reference all the akka provided jars in a new Scala Project. I am able to run the basic akka example this way.
But when I try to work with Dispatchers, the code is not compiling.
object TestActor {
val dispatcher = Dispatchers.newExecutorBasedEventDrivenWorkStealingDispatcher("pool")
.setCorePoolSize(100)
.setMaxPoolSize(100)
.build
}
I am trying to use Akka 2.0.2 on Scala 2.9
What is the surest way to configure and run akka 2.0.2 or 2.0.4 in Scala IDE?
You're mixing up Akka 1.x APIs (Dispatcher.newXXX) with Akka 2.0 APIs. Please refer to the reference documentation: http://doc.akka.io/docs/akka/2.0.4/
For setting up a quick and dirty Akka 2.0.2 project in IntelliJ, I've had the best luck using Maven. My guess is you could probably get Scala IDE to use Maven to pull in the dependencies using something like what I show below. My pom.xml file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>myProject</name>
<groupId>myProject</groupId>
<artifactId>myProject</artifactId>
<packaging>jar</packaging>
<version>0.1</version>
<url>http://example.com</url>
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.9.0-1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>typesafe</id>
<name>Typesafe Repository</name>
<url>http://repo.typesafe.com/typesafe/releases/</url>
</repository>
</repositories>
</project>
Here is the surest way.
I was in the same situation as you - I just finished the coursera class, had the integrated Scala IDE set up, want to explore Akka. Here is what I found.
Go to Installing the Typesafe Stack. Follow the instructions for setting up scala, sbt, giter8 etc. for your machine.
Go to Getting Started With Akka (Scala). This will take you through how to use the Typesafe templates to get an Akka project set up just like you were used to in the coursera class. Pay special attention to "Setting up The Scala IDE for Eclipse (optional)". Adding that, you will have a Scala project, with all the Akka dependencies installed, ready to develop in Eclipse. You'll feel right at home.

building spring batch sample application

I am trying to build the sample application for spring batch 2.1.6. (ie. spring-batch-2.1.6.RELEASE/samples/spring-batch-samples) using maven but am getting this error for a missing plugin:
[ERROR] Plugin
com.springsource.bundlor:com.springsource.bundlor.maven:1.0.0.RELEASE
or one of its dependencies could not be resolved: Failure to find
com.springsource.bundlor:com.springsource.bundlor.maven:jar:1.0.0.RELEASE
in http://repo1.maven.org/maven2 was cached in the local repository,
resolution will not be reattempted until the update interval of
central has elapsed or updates are forced ->
Is there another repository I can set up to get this plugin? I am a bit suprised to be getting this errror as this is the latest realease version of spring batch.
Here is the repository section from the pom as it came in the download:
<repositories>
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle External</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
The project's parent pom has a bootstrap profile which contains the necessary repository definitions. Build the project with the command mvn test -P bootstrap and it will download the dependencies.
P.S. This is explained in the readme's instructions that how to build Spring Batch. It would be good if they would also tell how to do it in the instructions for using the samples - maybe you could file a bug report?
i am using maven3 and was able to solve this problem by adding this to my pom:
<pluginRepositories>
<pluginRepository>
<id>plugin.repo.maven.central2</id>
<url>http://objectstyle.org/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
The Spring batch Admin sample build is broken for sure. At least as of today.
The -Pbootstrap doesn't help and adding the repos in that profile in my local settings doens't help either.
When I attempted to build spring-batch-admin-sample, I found that I was missing dependencies of spring batch!
So I went to build that. There I found that I was missing org.neo4j:neo4j-cypher-dsl-1.9.M04 and also gemfire.7.0.1.jar. Adding repos doesn't help because of the maven2/3 incompatibility issues.
So a sure way to fix this is to go to each repo, download the missing dep and mvn install-file them.
So get the neo4j one here:
http://m2.neo4j.org/content/repositories/releases/org/neo4j/neo4j-cypher-dsl/1.9.M04/
Get the gemfire one from here:
https://repo.springsource.org/gemstone-release-cache/com/gemstone/gemfire/gemfire/7.0.1/
And then I ran into a foundrylogic.vpp dependency that I found here:
http://objectstyle.org/maven2/foundrylogic/vpp/vpp/2.2.1/
Don't forget to get the corresponding poms also to keep it clean and get all the transitives, if any.
Use the mvn install-file plugin described here to get all three deps to your local repo.
http://maven.apache.org/plugins/maven-install-plugin/usage.html
Now spring-batch should build clean.
Now if you go to build spring-batch-admin it will still fail because it depends on spring-batch-core-2.2.3.BUILD-SNAPSHOT whereas what we just built was version 3.0.0.BUILD-SNAPSHOT.
So go to spring-batch-admin-parent's pom and modify the pom like so:
<!-- <spring.batch.version>2.2.3.BUILD-SNAPSHOT</spring.batch.version> -->
<spring.batch.version>3.0.0.BUILD-SNAPSHOT</spring.batch.version>
And then step back to spring-batch-admin and mvn clean install should build the sample.
Hope this helps someone!
I installed maven 3.2.1 and it works.

How do I build latest Tycho

I've tried to build Tycho now for a couple of hours and just can't get it to work. I've followed these instructions:
https://docs.sonatype.org/display/TYCHO/BuildingTycho
So, I've downloaded Eclipse 3.6RC2 and Delta-packs linked from this instruction (is it for 3.5 only?):
http:// (remove space) aniefer.blogspot.com/2009/06/using-deltapack-in-eclipse-35.html
I've added the DeltaPack to the TargetPlatform inside of the Eclipse-installation.
I've installed Maven: Apache Maven 3.0-beta-1 (r935667; 2010-04-19 19:00:39+0200)
I can run the first bootstrap of the build, but the second fails:
mvn clean install -e -V -Pbootstrap-2 -Dtycho.targetPlatform=$TYCHO_TARGET_PLATFORM
ERROR] Internal error: java.lang.RuntimeException:
Could not resolve plugin org.eclipse.core.net.linux.x86_null -> [Help 1]
I've tried different stuff, I built an older revision against 3.5 as in this blogpost:
http:// (remove space) divby0.blogspot.com/2010/03/im-in-love-with-tycho-08-and-maven-3.html
and that actually built a running maven, but that version then can't find the tycho plugin:
org.apache.maven.plugin.version.PluginVersionResolutionException: Error resolving version for plugin 'org.codehaus.tycho:maven-tycho-plugin' from the repositories [local (/Users/viktor/.m2/repository), central (http://repo1.maven.org/maven2)]: Plugin not found in any plugin repository
I thought that the point was that the plugin was going to build in when I had built a Tycho-dist…?
Sorry about the links, stackoverflows spam-protection doesn't let me post more than one url yet
The Tycho documentation is pretty bad, to set the record straight, Tycho is included in the Maven repositories by default now; declaring it in your POM will automatically download it and allow you to use it.
To cut to the chase, this is all you have to put in your Maven POM to use Tycho, and then next time Maven uses this POM for a project, it will get Tycho if you don't already have it and use it for the build. At the time of this writing, 0.12.0 is the latest stable release.
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.12.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
Now, say, you would like to use an "unstable" Tycho, like <version>0.13.0</version>. Then you would want to change the version number in the plugin to the appropriate value, and then add this (The latest Tycho repository) to your POM:
<pluginRepositories>
<pluginRepository>
<id>sonatype-release</id>
<url>http://repository.sonatype.org/content/groups/sonatype-public-grid
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
That simple.
With the move to eclipse.org, we also invested in better documentation for contributors:
http://wiki.eclipse.org/Developing_Tycho
http://wiki.eclipse.org/Tycho/Contributor_Guide