I was wondering about this. I'm planning to employ jackrabbit in a ECM project and it seems that OCM is dying or what, it is a different fork that the rest of the project. In maven repos there are old jackrabbit-ocm-nodemanagement jackrabbit-ocm versions, otherwise the project itself is downloadable via a referenced zip archive in reference documentation.
org.springmodules.jcr didn't make it to the official spring source base. It got abandoned. Even though it was a great glue for jackrabbit OCM and the project looks great. I absolutely don't understand why they decided to leave such an important specification !?!?!?
It currently resides here as some sort of conservation.
Also there is a jcr spring extension that the same thing I suppose. It has its Jira section, but everything seems abandoned to me. If I got into problems with some nasty bug, any support wouldn't get to me.
Please if you have brighter information than I do, let me know.
Related
I was recently looking into Jib for my personal Java project I have been working on, but I just discovered something called Jib-Core. I went thru some of the documentation but I can't seem to figure out what the difference between them is, and when you would use one over the other. Is anybody well versed in the two of them?
Jib core is the underlying library that jib tooling is built upon. It is shared by jib-maven-plugin, jib-gradle-plugin, jib-cli and other third party integrations (like quarkus, sbt-jib, etc).
Jib (it seems like you're using maven) is actually the jib-maven-plugin, that is basically all the necessary code for jib-core to be used by maven to build your container. Like exposing configuration in your pom.xml and creating various goals for you to run.
We initially built jib-core to share code for all our products and also for tooling developers. We've had users use it directly to highly customize how they build container, but in general I don't see too many people using it like this.
I have a system consisting of multiple web applications (war) and libraries (jar). All of them are using maven and are under my control (source code, built artifacts in Nexus,...). Let say that application A is using library L1 directly and L2 indirectly (it is used from L1). I can easily check the dependency tree top-down from the application, using maven's dependency:tree or graph:project plugins. But how can I check, who's using my library? From my example, I want to know, whether A is the only application (or library) using L1 and that L2 is used from L1 and from some other application, let say B. Is there any plugin for maven or nexus or should I try to write some script for that? What are your suggestions?
If you wish to achieve this on a repository level, Apache Archiva has a "used by" feature listed under project information
.
This is similar to what mvnrepository.com lists under its "used by" section of an artifact description.
Unfortunately, Nexus does not seem to provide an equivalent feature.
Now I suppose it would be a hassle to maintain yet another repository just for that, but then it would probably easier than what some other answers suggestions, such as writing a plugin to Nexus. I believe Archiva can be configured to proxy other repositories.
Update
In fact, there's also a plugin for Nexus to achieve the "used by" feature.
As far as I know nothing along these lines exists as an open source tool. You could write a Nexus plugin that traverses a repo and checks for usages of your component in all other components by iterating through all the pom's and analyzing them. This would be a rather heavy task to run though since it would have to look at all components and parse all the poms.
In a similar fashion you could do it on a local repository with some other tool. However it probably makes more sense to parse the contents of a repo manager rather than a local repository.
I don't think there's a Maven way to do this. That being said, there are ways of doing this or similar things. Here's a handful examples:
Open up your projects in your favorite IDE. For instance Eclipse will help you with impact analysis on a class level, which most of the time might be good enough
Use a simple "grep" on your source directory. This sounds a bit brusk (as well as stating the obvious), perhaps, but we've used this a lot
Use dependency analysis tools such as Sonargraph or Lattix
I am not aware of any public libraries for this job, so I wrote a customized app which does it for me.
I work with a distribution which involves more than 70 artifacts bundled together. Many times after modifying an artifact, I want to ensure changes are backward compatible (i.e. no compilation errors are introduced in dependent artifacts). To achieve this, it was crucial to know all dependents of modified artifact.
Hence, I wrote an app which scans through all artifacts under a directory(/subdirectories), extracts their pom.xml and searches (in dependency section of pom) for occurrence of modified artifact.
(I did this in java although shell/windows script can do this even more compactly.)
I'll be happy to share code on github, if that could be of any help.
One way that might suit your needs are to create a master-pom with all your maven projects. Then you run the following command on the master-pom:
mvn dependency:tree -DoutputType=graphml -DoutputFile=dependency.graphml
Open the generated file in yEd.
Used the instructions found here:
http://www.summa-tech.com/blog/2011/04/12/a-visual-maven-dependency-tree-view/
More interesting is probably: what would you do with this information? Inform the developers of A not to use library L1 or L2 anymore, because it has a critical bug?
In my opinion you should be able to create a blacklist of dependencies/parents/plugins on your repository manager. Once a project tries to deploy/upload itself with a blacklisted artifact, it should fail. I'm saying uploading and not downloading, because that might break a lot of projects. As far as I know, this is not yet available for any repository-manager.
One of the ways to approach this problem is outside Java itself : write an OS-level monitoring script that tracks each case of fopen() on the jar file under question! Assuming this is in a corporate environemnt, you might have to wait for a few weeks (!) to allow all using processes to access the library at least once!
On Windows, you might use Sysinternals Process Monitor to do this:
http://technet.microsoft.com/en-us/sysinternals/bb896645
On Unix variants, you would use DTrace or strace.
IMHO and also from my experience, looking for a technical solution for such a problem is often an overkill. If the reason why you want to know who is using your artifact(library) is because you want to ensure backward compatibility when you change an artifact or something similar, I think it is best done by communicating your changes using traditional channels and also encourage other teams who might be using your library to talk about it (project blogs, wiki, email, a well known location where documentations are put, Jour fixe etc.).
In theory, you could write a script that crawls though each project in your repository and then parses the maven build.xml (assuming they all use maven) and see whether they have defined a dependency to your artifact. If all the projects in your organization follows the standard maven structure, it should be easy to write one such script (though if any of those projects have a dependency to your artifact via a transitive dependency, things can get a bit more tricky).
I just got a book from Apress (Spring Recipes), and I started to learn the Spring framework and now I have a problem. I followed the steps in the book to add the Spring .jar-s to the build path. Everything seems to work fine, but the code I have just doesn't work.
My question is that: do you know about a good tutorial for integrating Spring with Eclipse? I googled for a while and I only found old tutorials (from 2007-2009) which just doesn't work with Eclipse 3.6.
use STS - Spring Tool Suite. It is built-upon Eclipse IDE. http://www.springsource.com/developer/sts
STS helps hugely (you can get it from the Eclipse Marketplace for free). The features of it I particularly like? Here's a few:
As a user of XML-based configuration I love having the bean graph visualized – it's great for reports – but the content assist when filling out bean properties is invaluable, both for names and for values (i.e., it makes writing that much XML not suck too much). I imagine that if you're heavily using autowiring or Java configuration it's less useful.
Refactoring support is also good (these days; it used to have bad bugs so you want to be patched up to date) and I've found that the pointcut search to be the only way to write a complex aspect without lots of round-trip testing.
But not all of STS is perfect. In particular, some of the content assist modes don't (seem to) help (me) that much, and it really only works well if you have your properties defined using public setters. Still, it helps a lot…
Apart from using STS as suggested, you can use spring and eclipse without any integration. There isn't that much an IDE integration can offer anyway (apart from autocompletion in the xml, and linking the xml to classes (inclding aop))
I found some sample code that uses an interface named com.sun.jersey.spi.container.ContainerRequestFilter. Someone was nice enough to post the javadoc here, but it just looks like it was some university professor who also couldn't find the javadocs. I know I can build it myself, but would rather not go through the work. Is there a central place to get javadocs like these?
I looked here and here the first was closed the second was just a fancy google search.
Jarvana Javadoc
EDIT:
As you might notice all the examples pointed out by you and others sites mentioned in answers don't do theirs job because it's hard to find all new api and track all api changes and present it in reasonable manner (plethora of versions). Even dzone.com child jdocs.com serves javadoc for out of date versions. Jarvana as a Maven focused search engine offers a great solution to find appropriate javadoc if it deployed to Maven repositories. We as developers have to influence library creators to deploy their software to Maven repositories with javadoc generated and support creator of Jarvana :)
Seems http://www.jarvana.com/jarvana/doc is currently down. You can try to use JavaDoc.io:
http://www.javadoc.io/doc/$org/$artifact/$version
For example. Spring-aop version 4.0.5.RELEASE
http://www.javadoc.io/doc/org.springframework/spring-aop/4.0.5.RELEASE
But the limitation is it only hosts JavaDocs for Open Source project released to central maven repository.
I'm aware this is a very old question, but sometimes old questions warrant new answers.
http://www.javadoc.io/
Free javadoc hosting for any open source Central Maven Repository project.
This looks like it: https://jersey.dev.java.net/nonav/apidocs/latest/jersey/index.html
Did a google search for 'sun jersey'.
JDocs contains lots of libraries. It even used to contain the JDK JavaDoc as well but Sun made them remove it!
There's the maven central repo. It has javadocs to go with many, but by no means all, of the libraries it hosts. That isn't something you can just browse to, you can only download the javadoc in jars.
I am looking for plugins which make developer's life easy while using technologies like Struts/ Spring/ Hibernate. For instance, here is a requirement:
If I were to change an Struts Action, I should be able to list out all the Struts Actions for my webapp, right click and add a method/ do some changes.
So, basically, I need to know what plugins will make eclipse more 'technology/framework friendly'.
Appreciate your help!
I've heard good things about Spring IDE. It has support for the Spring basics plus a few associated libraries, and is available as an Eclipse plugin download from http://springide.org/updatesite/. Once installed, you apply a Spring nature to the project in order to use it.
Hibernate also has Hibernate Tools available, but I've never checked that out to see how it works. From the description, it apparently offers some functions to make creating and editing mapping files easier.
As far as I can tell, Struts doesn't have anything up-to-date as far as IDE plugins go. MyEclipse may have something like that.
Side note: for some reason, I've never stuck with the plugins for these libraries. I gave the Spring one a try once, but eventually got used to editing the Spring configs manually and haven't touched it in a while. I don't know how much of a benefit they would be for increasing config file creation... although they probably would help in visualizing dependencies in a big set of Spring configs.
Spring tools suite is great for this. You might also look into Fast Code Eclipse Plugin
If you don't mind paying the price ($31.75 for standard, $63.55 for pro), you could check out MyEclipse. This is a nice and powerful "extension" of Eclipse that has many nice features, including Spring Tools, Struts (and Struts 2), Hibernate and many more.