I am looking for Fest APIs for Java swing application testing.
I can't seem to find any APIs posted online anywhere (their website seems to be down) and I've decided to check out the Git repository that you can download the source code from to do what you wish with.
But when I do this there are tons of errors and the Java doc refuses to get generated.
I was curious if anyone knew where I could either find a copy of the docs or if it is possible to generate the docs directly from Git?
As mentioned in fest-assert-2.x issue 167:
Fest Assert is not active anymore these days, you might have a look to AssertJ a fork of fest-assert-2.x.
... And yes, that fork AssertJ does have a JavaDoc API!
http://joel-costigliola.github.io/assertj/core-8/api/index.html
The latest release dates from 10 days ago: AssertJ Core 2.8.0 2017-05-21.
Related
I am trying to use Vowpal Wabbit through Java. I have downloaded and successfully compiled the code from GitHub. The command line tool works fine.
After having a quick look at the repository (especially here), I can only assume that using it through Java is supposed to be already possible, and I don't really want to reinvent the wheel.
A wrapper around Vowpal Wabbit that allows use through Java. This wrapper is designed to be self contained. Because
of the use of JNI, a number of platforms are supported in this JAR.
I have added the maven dependency (found here) to my project, but without any kind of document, I don't really know where to start.
I have seen in another question that it seems to be possible to use VW with Java, but the guy only uses Runtime.getRuntime.exec() to call his bash command, and I can't find any documentation about any other way of doing (and there are only 2 questions mixing VW and Java on SO, which doesn't help).
I am new to JNI, so most likely there is something easy that I don't see.
To be perfectly clear, my questions are :
Should I just make a valid vw command and use it through Runtime.getRuntime.exec()? This doesn't seem to be the spirit of JNI, for there is no need for any wrapper/library for this. Plus, this doesn't make it very portable.
Where (the hell) is the (Java API) documentation ?
Any kind of help or guidance would be welcome.
I was one of the two primary authors of the VW JNI wrapper. Since the posting of this question the interface has significantly changed. We now encourage users to compile the native side on their own and provide it on the java.library.path. We have updated the README significantly to show how to use the library from Java.
I totally agree with your criticism that we have not published the Java API. I will work on that the next time I modify this code. In the meantime please feel free to clone the library and run mvn install and you can generate the Java API docs yourself. They should be quite detailed as we spent a lot of effort writing detailed docs.
You may checkout vowpal wabbit JNI wrapper we've built in Indeed: https://github.com/indeedeng/vowpal-wabbit-java.
We wrote integration test that can work as usage examples and we wrote API documentation as well. Check "using the library" section of README.
Hope this will help.
I don't think this adds a lot, but none of the previous answers really provided a clear answer. Like #Macchiatow mentioned, to use the Java wrapper which comes with Vowpal Wabbit, you would:
(on the project root dir) make all java or make java
cd into java and verify the installation with mvn test
you'd then mvn install to have the Java API jarred up and placed in your local maven repository. Supposedly this builds the JNI parts on your machine, so as to fit the C/C++ libraries of your platform if you have the necessary native C/C++ libraries installed and available to the make command.
you'd supposedly be able to include the vowpal package/s from those jars in the build tool used in your own project (ant/maven/boot/leiningen/sbt/etc. as in here).
For more background maybe see the Vowpal Wabbit Java readme. I think what it tries to say there, is that if you want a ready made jar from maven central, you should make sure it's the same vowpal version you're using, but without knowing more I'd guess if you built it like above, you are by definition using the same version.
I've had the above process work off a fresh clone, with Ubuntu 16.04 and Java 8.
This link may be of some help with regards to setting up a JNI wrapper.
I wasn't able to find Java API documentation anywhere, but Java code seems well documented - did you maybe try generating Javadoc yourself from the code?
There is indeed Java JNI wrapper to have a basic access to VW. By basic I mean to teach your model and to predict probability later on. They also provide Python library that can do far more than wrapper for Java. Recently I was forced to expose few more VW methods to Java by extending code provided.
Back to the questions:
Rather use the vw-jni artifact available in central maven repo and clone their code and run make all java. I some cases compiling code yourself will be the only solution, as for example provided artifact won't run on OpenSuse (my case)
Code available pretty straight forward. VWLearners::create is a factory to get an instance of VW from Java.
I'm on the process of release a play app to production. So far most of my experience has been with java projects, using maven with maven-release-plugin, for version incrementing, creating a version tag in git, etc.
How to handle releases and version changes with play framework?
I found a few mentions about sbt-release, but haven't found a complete tutorial or a sample project.
Depends on you requirements, in my experience I haven't had much need to do the whole build-test-commit-tag-release-commit dance, but then I have used it in continuous-delivery-like circumstances. Just making sure that there is something marking what VCS-revision a certain binary is (for example using sbt-buildinfo) and then using plays dist has been enough.
If you really need it the sbt-release plugin has got a pretty detailed documentation. I would try with that to begin with.
The documentation for ROS is terrible.
One great irony is that the Groovy and ROSJava versions of ROS was created to allow developers on platforms like Windows to utilize the great robotics SDK, while all the installation instructions are still geared toward linux/ubuntu users.
The ROSJava core documentation says:
TODO: write a guide for a strictly java installation.
I've tried to follow the instructions here on the Google Code project, but seeing as all the instructions assume I'm running Ubuntu, it is very difficult as a traditional Windows/Web developer to translate into windows instructions on my own.
The link is also broken to the GIT repo, it is moved to github: https://github.com/rosjava/rosjava_core.git
If you were looking for rosws documentation, its here. Another broken link: http://www.ros.org/doc/independent/api/rosinstall/html/
Now, wanting a versatile IDE for coding, I chose Eclipse because it can handle Python, Java and c++. Now I have no idea how to build this project with Gradle and Maven-- Heck, I'm not even sure I should be building it.
Is there a definitive installation/build tutorial for ROSJava on Windows? If not, I think it would greatly benefit the community if somebody could create a walk-through that can help developers make their first "Hello World" in robotics. I've done some processing and some light Java before, but nothing too serious. The manual should assume you are new to Java, ROS and all the dependencies/build helpers/compilers. I feel like all the instructions from Google Code and ROSWiki assume you're familiar with many tools and dependencies or are aware of the historical context of ROSJava versus Groovy versus Linux implementations. Many of the necessary tools are off the beaten path for a C#.NET, Objective C or Javascript/Web developer.
Also, a big detriment is that the pre-compiled version of the ROS SDK is outright missing from ROSWiki. "Page Does Not Exist" so, us newcomers have to also install 10-16 dependencies for compiling the core (not to mention figuring out how to configure and use them).
Additionally, build scripts named in the Wiki don't even exist yet.
Currently, I've not even gotten far enough to start encountering problems like this: Gradle Eclipse Plugin
While the ROS documentation has improved in general during the past years, the ROS Java documentation is even currently not as detailed.
Using ROS_JAVA is in fact as easy as using any other dependency if you do not use custom messages.
ROS_JAVA can be practically divided in two parts.
An API to create your own servers/clients and publishers/subscribers
A pure Java roscore
The API is perfect for accessing and consuming ROS based services/topics/actions written in any language.
The pure Java roscore can be used for testing, or installation in any system that runs Java, in cases where the C++ ROS is not supported. However it is not as complete as ROS C++.
If you do not use custom messages you can easily add the required dependencies.
The following configuration should work in gradle.
repositories {
repositories {
mavenCentral()
maven {
url "https://github.com/rosjava/rosjava_mvn_repo/raw/master"
}
}
}
dependencies {
implementation 'org.ros.rosjava_core:rosjava:[0.3,0.4)'
implementation 'org.ros.rosjava_bootstrap:message_generation:0.3.3'
implementation 'org.ros.rosjava_messages:std_msgs:0.5.11'
}
This is part of a simple "Hello World" pure Java project that I have published here.
For programming only in Java /ROS Java you do not need to install ROSjava in windows. (This is also an article I had written trying to provide some quick instructions on the issue.)
If you also need to compile messages without a ROS installation then you can also do this manually through java.
Finally it is worth noting that ROS Noetic can be installed in windows. While this is not a requirement for development using ROS java.
Can anybody point me to Netbeans plugins that help do better code?
I hope to find some plugins that do Java code review and search for:
bug patters
duplicate code
and other types of vulnerabilities.
Thanks!
Install EasyPMD from the plugin portal. http://plugins.netbeans.org/plugin/33246/easypmd-2-1
How about Findbugs.
Never used it with Netbeans (only with HudsonBuilder), but some Google results state that there is a plugin for NB.
Several of the PMD and Findbugs rules (suggested by others) are already part of the regular "Hints" of Netbeans. By enabling more than the standard set of hints, you can already get some good "programming advices" without having to install anything.
(But they are by no means a complete replacement for PMD or Findbugs)
There is an article about integrating plugins you could try to follow that (I haven't yet), but from my experience sadly in IDE tools never work as well as the commandline versions.
I would recommend you instead use Maven as your build tool and add the Cobertura, FindBugs, PMD, and CheckStyle plugins that will produce reports whenever you compile your code. Not as handy, but you will still get good feedback.
Also, this means that they will be equally available for people working on your code base with other IDEs. If you use a continuous integration server like Jenkins and it will create a report using any tool you'd like whenever you check-in code.
And this is speaking as someone who prefers NetBeans over Eclipse.
I can't find any good documentation for the new version of maven (Maven 3)
There are few blog entries that are mostly related to Maven 3 Beta.
Do you know of any official/unofficial documentation or tutorial for Maven 3?
From the Maven3 Plan, you get the Maven3 wiki, which is the closest piece of "maven 3-specific" documentation out there.
You can find the documentation on the official website right here http://maven.apache.org/ref/3.0.2/index.html
The documentation is on the left hand side.
The current Maven 3 documentation is on the main Maven site. It is still getting updated however, and I'm sure would appreciate help with any inconsistencies that you find. Because of the amount of work that went into making Maven 3 backwards compatible, most of the documentation is still valid. The compatibility notes do a good job highlighting the differences.
If you're already using Maven 2 and are looking for reasons to upgrade, see the stack overflow question on whether Maven 3 is worth it.
Also, note that due to the nature of betas/alphas/release candidates, the documentation shouldn't change much between versions, so all the blog posts on pre-release Maven 3s should be pretty much correct.
On a sidenote, I can tell you what is not Maven 3 documentation: Apache Maven 3 Cookbook, shiny new from print this month. It does not talk about sophisticated native americans cooking recipes, but neither does give you anything useful specifically related to Maven 3. Learn from my painful experience and stay away from it (still a decent book on Maven in general, though).