Javadoc: How to make it cross-link the dependencies (Maven project) - java

I would like to generate Javadoc which would include the classes of project's dependencies.
For example, project Windup would reference JBoss Forge, TinkerPop Frames and Rewrite.
Can Javadoc do it? How?
If I define the G:A:V -> Javadoc URL, it should be technically doable.
I found about javadoc -link.
I have also found Maven's <detectLinks> but setting it to true made no change.
I've experimentally tried:
<additionalparam>-link http://docs.jboss.org/forge/javadoc/2.13.0-SNAPSHOT/</additionalparam>
And that works.
However, I'd like to make Maven do this link resolving. Just as the detectLinks is supposed to do.

How about import whole API Docs link into your config. I found it on this site:
Import API Docs

Related

How do I generate JavaDocs for non-exported packages in a module?

I am currently writing a JavaFX application contained within 1 module and I want to use Javadoc to document all of my code. However, I am noticing that I can't seem to generate Javadocs for packages that have not been exported out of the module in module-info.java. On one hand, that makes sense. Non-exported packages aren't part of the public API. On the other hand, I feel like surely there should be options to enable documentation of internal APIs hidden in non-exported packages, but I've had no success in enabling them.
As this is a Maven project, I've tried the following options with the maven-javadoc-plugin:
<show>private</show>
<additionalOptions>-private</additionalOptions>
<additionalOptions>--show-module-contents all --show-packages all --show-types private</additionalOptions>
None of these work (and I am pretty sure 1 and 2 are the exact same thing). They only show a bit more info on one package that i've exported to another specific module. If I don't have these options, the Modules section of the Javadoc is completely blank with the exception of the module name.
I've done lots of Googling and no one on the Internet seems to bring this issue up. Maybe my Google-Fu is just off? I feel like there's just some silly undocumented flag that I haven't found yet because it can't be the case that you have to export the packages to get Javadocs for them, right?
My project consists of only one module containing 8 packages. None of them need to be fully exported out yet. Only one package containing my JavaFX files needs to be exported to javafx.graphics and that's the only one that gets picked up by Javadoc when I enable <show>private</show>.
Here is a gist of my module and Maven config, if anybody needs it:
https://gist.github.com/urbenlegend/753de7bec598fd07d6b5c0b0ef02d1d0
I am invoking Javadoc generation via mvn compile javadoc:javadoc
Anyone here have any tips? Thanks in advance!

Where does the groovy http-builder module live now?

The documentation for for the groovy http-builder module used to live here-ish: http://repository.codehaus.org/org/codehaus/groovy/modules/http-builder/http-builder
After codehaus shut down did http-builder and HttpClient get moved / did apache start maintaining them? I'm wondering if there's newer-than-2014 version anywhere and where I could find up to date documentation? Google is not being helpful so clearly I'm searching for the wrong things.
The classic HttpBuilder is located here
https://github.com/jgritman/httpbuilder/wiki
you could grab it from maven repository using following annotation in groovy code:
#Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1')
import groovyx.net.http.HTTPBuilder
...
There is also a newer fork HttpBuilder-NG referenced in the documentation above
https://github.com/http-builder-ng/http-builder-ng

Difference between com.thoughtworks.selenium and org.seleniumhq.selenium

I have got a code with following imports:
import com.thoughtworks.selenium.Selenium;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;
I tried to use Maven to resolve, but I can't found these packages on https://mvnrepository.com. There are packages only under org.seleniumhq.selenium, but these aren't able to resolve method calls in code and there aren't any selenium named packages under com.thoughtworks.
It looks like those packages come from Selenium RC, from the times when it was created by ThoughtWorks.
See deprecated package list here, and migration guide here.
You probably want to migrate by disposing of the old dependency, re-writing the client code according to documentation, and use WebDriver.
In that case, your Maven groupID would be org.seleniumhq.selenium, as documented here.

How to import docs.* in akka project?

I want import docs.actor.japi.FaultHandlingDocSample.WorkerApi.*; But I can't find the docs package which can use in maven central repository. And I don't find the information about docs package in the Akka official website.The akka version I used is 2.4.6.
If you are still seeing this error, remove the declarations for docs.* from the top of the example code. All of the values are present in the file itself. Re-import the declarations referencing the file and the errors should resolve.

How do I choose a proper component file from Apache Commons?

I don't understand how should I know which Apache Commons jar's to reference if I want to use some of its components.
For example, if I want to use ObservableCollection, how do I know which jar's to reference to be able to use it.
I downloaded Collections (I added it to my build path) but this component has only "AbstractCollectionDecorator" class. In the documentation I can see that the actual class lies in the package:
org.apache.commons.events.observable.ObservableCollection
How should I figure out which package to reference?
Note that the path to the javadoc to ObservableCollection starts with
http://commons.apache.org/dormant. Hmmm... not a good sign.
How should I figure out which package to rererence?
From the main dormant page:
If you wish to use any of these components, you must build them yourselves. It is best to assume that these components will not be released in the near future.
From the package name, e.g. org.apache.commons.events remove the org.apache part.
The next part is org.apache.commons, that means it's the Apache Jakarta Commons project group, which is also an aggregator for multiple projects. So we need yet another fragment for the name to distinguish it:
So you got org.apache.commons.events now. The name suggest commons-events, because Apache Commons Collections would be org.apache.commons.collections
So all you have to do is remove org.apache, replace the dot with a slash and you've got the jar filename you need:
org.apache.commons.events -> commons-events.jar
org.apache.commons.collections -> commons-collections.jar
org.apache.commons.io -> commons-io.jar
org.apache.commons.lang -> commons-lang.jar
etc

Categories