View osgi bundles' dependencies? - osgi

I am looking for a tool in Eclipse that I can view graphically all osgi bundles' dependencies. Anyone has any ideas, please?

The STAN bundle and project dependency views are free add-ons. Here's a sample dependency graph: http://stan4j.com/images/stories/misc/plugin-deps.png
Quick feature list:
horizontal, vertical, narrow layout options
node markers +/- indicate outgoing/incoming dependencies currently not shown
double-clicking a node adds outgoing dependencies
double-clicking a node while holding the control key adds incoming dependencies not shown
edge labels indicate "requires-bundle" and/or "imports-packages"
supports drag'n drop from the project/package explorer
Visit http://stan4j.com for further information and download/install instructions.

There is a "Plug-in" dependencies viewer in the Plug-in development perspective, is that what you are looking for?
Also see here:
http://ekkescorner.wordpress.com/2009/07/03/galileo-cool-views-to-control-plug-ins-ide/

Found one. STAN tool is a good one (http://stan4j.com/advanced/acyclic-dependencies-principle.html). Although this is a commercial tool, it still has the free version that can analyze the structure of maximum 500 classes and have no limit with bundles and projects. This is more than what I need.

There's tool from Eclipse PDE incubator called Dependency Visualization. Despite it's in incubating phase and seems a little bit abandoned, it doest the job very well for me.
Add new software site http://download.eclipse.org/eclipse/pde/incubator/visualization/site
Install a feature
After restart, open Window / Show view / Graph plug-in dependencies under PDE category

Related

D365 CE > What is the standard way to manage plugins?

I am looking for some guidance on the standard way of implementing plugins in D365 CE or what Microsoft recommends.
I generally follow this practice -
1. Have only 1 CRM Solution and one plug-in assembly (DLL) for all these plugin steps.
2. Have a separate ".cs" file for each plugin in this project.
3. Each plugin corresponds to specific functionality. So in case, we want to disable any functionality, it could be easily done without changing the code.
4. Have only 1 CRM Solution for all these plugins.
Looking forward to some expert guidance.
Thanks!
In this video former MVP Mitch Milam talks three plugin solution layout options. He recommends the approach you outline above, and that is the one I typically use.
I also generally use a Console app to test and debug plugins. For maximum flexibility, I often put all the business logic into a Visual Studio shared project. Then I reference that shared project from both the plugin project and the Console App.
While the Console app could reference a DLL, having the logic in a shared project easily allows me to also use the logic in a workflow project if I want. Ultimately, the shared project gives me the option run the code as a plugin, a workflow, or a Console app.
Here's an example:
The .Cmd project is the console app. The one with the double diamond icon is the shared project (which cannot be compiled on its own - it must be referenced by one or more compilable projects).

The spring boot edit starters context menu option does not show up under rightclicking pom.xml

The spring boot edit starters context menu for downloading content to pom.xml automatically is not visible in my eclipse, although Spring Tool Suite is properly installed. Also. the Boot Dashboard for Development Tools will not show up.
Error: java.io.IOException: Unable to resolve plugin
"org.springframework.ide.eclipse.boot.dash".
What could this be, how do I solve this?
This is usually a hard-to-debug issue and probably caused by some incompatibilities among installed plugins. You can try to start up Eclipse/STS with the -clean option, this causes the runtime to re-evaluate bundle resolution (among other things), and in some rare cases that helps. But it doesn't help if there is a real underlying incompatibility. And that is hard to identify from the outside, we would need a lot more details to debug this.
I would recommend to download a ready-to-use STS distribution and go from there. It contains a full Eclipse JEE package plus the Spring IDE plugins pre-installed. I know that starting from a fresh install might cause additional work if you need additional third-party plugins being installed again, but it would at least give you a good starting point. And if the problem arises again after installing certain plugins, we would at least have a potentially reproducible path towards the issue that we could use to track down the issue on our end.
You may follow these steps -
Right click "pom.xml"
Select "Spring" item
Click "Add Starters"
For your reference,

How to reproduce owasp dependency-check example of dependency report

I want to check if my project dependencies have any updates.
I've used
versions:dependency-updates-report
But I have some performance problems with it which I was unable to solve. Now I'm trying to use
org.owasp.dependency-check-maven:check
But I could not reproduce their example:
I'm getting similar look but I can't get 4 last columns (Next Version, Next Incremental, Next Minor, Next Major) which is most important for me.
How to reproduce this example?
(full disclosure - I am the founder of meterian)
You may want to consider a commercial product like sourceclear, snyk or meterian.
The meterian client is very easy to use, you can quickly check any maven or gradle project with no changes to the code: get the client, cd into the project folder, run it, see the results.
It's free for open source projects, badges are available for GitHub, and at the moment commercial use is not charged.
Hope this helps.
You will not reproduce the given report with org.owasp.dependency-check-maven because the shown report is created with versions-maven-plugin.
This are two different plugins.
org.owasp.dependency-check-maven is to find vulnerabilities according to the NVD in dependencies whereas versions-maven-plugin is for checking for newer versions, independent of vulnerabilities.

How to publish a Maven project

I am developing a Java framework/API to solve a problem at a client. The code/idea is my property (not the client's). I think it might be useful for others, so I would like to publish it as a open source project.
By publishing I mean bringing it out in the open - making it available as a Maven project.
I can think of conforming to Maven structure, proper documentation/example usage available on a web site, and unit tests, maybe some code coverage threshold.
But does it have to be run by some committee? Do I have to present it to somebody? What steps do I need to take to eventually have it available as a Maven dependency?
There's no committee or approval process that I know of. All you have to do is put your code into a public Github repo. This is how open source software works.
Per Kapep's excellent suggestion below, you have to choose a license as well. Apache, Creative Commons, Gnu, MIT - these are a few of your choices. Know what they mean before you decide.
Your problem begins on that day - you'll have to make others aware of it and see if it's adopted by others. If it's good, you'll have the nice problems of dealing with a user base and having others change your code. If not, it'll languish in the repo.

There is a GUI to manage OSGi services? (in Eclipse or another project)

I'm working with an application that uses and manages a large amount of OSGi services and implementations for each service, with properties, dynamism and so. Using the command line of the Equinox console is useful, with commands like services or list -c . However, it is difficult to see specific implementations of services, and obtain a current snapshot of bounded or available services to consume. For example, you can see if the bundle references are satisfied, but you can't see which are the implementations of those satisfied references (although there are another mechanisms, of course).
So, the idea is to find a GUI with organized information (for example, using graphs) to increase the performance when you are developing in OSGi. Maybe there is one GUI in Eclipse plug-in perspective, but I can't find it.
If you don't know anything like this, I've in mind to create my own for my thesis :)
Eclipse has its Plug-in Registry view:
Window > Show View > Other... > Plug-in Development -> Plug-in Registry
This view comes with the Plug-in Development Environment (PDE), so you'll need to either use Eclipse Classic or Eclipse for Plug-in Developers or install it additionally through the standard Eclipse update mechanism.
The view can show the plugins, running in the current Eclipse instance and group them by plugin, extension points or services. I believe the last option is what you are searching for.
Although there was some work to make this view show remote content as well, it appears that this functionality hasn't made it to the normal Eclipse release.
Another tool, which can assist you in OSGi development is mToolkit. It is open source project, specifically aimed at helping developing in OSGi environments.
It provides similar view to the Plug-in Registry, but it only shows information about the OSGi bundles and services. It doesn't support nothing outside OSGi specification, so no plug-in registry inspection.
The Apache Felix console provides a web interface to manage OSGi services (and many other things) - I haven't tested it with Equinox but it has minimal dependencies so it should work in most OSGi environments. See http://felix.apache.org/site/apache-felix-web-console.html
I would checkout Peter Krien's Xray http://softwaresimplexity.blogspot.com/2012/07/xray-again.html
Have you looked at Knopflerfish and Apache Felix UIs? I think, they could be installed on top of Equinox as well.

Resources