The plantuml library implements a DSL and renderer for many UML diagrams (class, sequence, objects, states, activities, …). See http://plantuml.com for more info about the DSL and renderer.
This project integrates plantuml’s functionality into Eclipse, by means of a view that shows a diagram for the currently active editor or view. The rendered diagram is typically based on explicit DSL code embedded in the editor, or generated from the content of the editor.
We currently support generating diagrams for
- DSL code embedded in text in any text editor
- the class in the Java and Class File editors, based on the Eclipse Java model
- the EClasses in Ecore models in the Ecore editor
- OSGi bundle's MANIFEST.MF files (as component)
There’s also support for generating a diagram for all the Java classes in a Java project (or within one or more Java packages).
Diagram generation is handled by (implementations of) an extension point, so you can customize the process of generating a diagram for other file types or editor content.
Categories: Documentation
Additional Details
Eclipse Versions: 2021-03 (4.19), 2020-12 (4.18), 2020-09 (4.17), 2020-06 (4.16), 2020-03 (4.15), 2019-12 (4.14), 2019-09 (4.13), 2019-06 (4.12), 2019-03 (4.11), 2018-12 (4.10), 2018-09 (4.9), Photon (4.8), Oxygen (4.7), Neon (4.6), Mars (4.5), Luna (4.4)
Platform Support: Windows, Mac, Linux/GTK
Organization Name: Dept. of Computer Science at The Norwegian Univ. of Science and Tech
Development Status: Production/Stable
Date Created: Tuesday, February 5, 2019 - 06:10
License: EPL
Date Updated: Monday, April 26, 2021 - 11:19
Submitted by: Hallvard Traetteberg
Date | Ranking | Installs | Clickthroughs |
---|---|---|---|
December 2024 | 40/560 | 207 | 6 |
November 2024 | 48/658 | 660 | 16 |
October 2024 | 56/663 | 648 | 12 |
September 2024 | 54/642 | 606 | 16 |
August 2024 | 71/641 | 384 | 26 |
July 2024 | 72/663 | 420 | 12 |
June 2024 | 55/681 | 615 | 23 |
May 2024 | 54/682 | 710 | 22 |
April 2024 | 53/687 | 758 | 19 |
March 2024 | 59/694 | 746 | 15 |
February 2024 | 69/687 | 542 | 13 |
January 2024 | 69/691 | 609 | 20 |
Unsuccessful Installs
Unsuccessful Installs in the last 7 Days: 4
Count | Error Message |
---|---|
4 | Cannot continue the operation. There is another install operation in progress. |
Reviews Add new review
Broken on 2023-03
Submitted by Jörn Guy Süß on Tue, 03/21/2023 - 21:28
!ENTRY org.eclipse.equinox.registry 4 1 2023-03-22 11:20:32.217
!MESSAGE Unable to create the selected preference page.
!STACK 0
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle net.sourceforge.plantuml.eclipse (2591).
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:126)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:920)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.ui.internal.WorkbenchPlugin.lambda$0(WorkbenchPlugin.java:287)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:285)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:52)
at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1281)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:338)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1167)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:630)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:661)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:658)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:821)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:818)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1191)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:284)
at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:438)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5040)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4520)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5855)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5065)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4517)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: org.osgi.framework.BundleException: Exception in net.sourceforge.plantuml.eclipse.Activator.start() of bundle net.sourceforge.plantuml.eclipse.
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:839)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:767)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
... 66 more
Caused by: java.lang.LinkageError: loader constraint violation for class net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage: when selecting overriding method 'org.eclipse.swt.widgets.Control net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage.createContents(org.eclipse.swt.widgets.Composite)' the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2c10ce56 of the selected method's type net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage, and the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3028c089 for its super type org.eclipse.jface.preference.PreferencePage have different Class objects for the type org.eclipse.swt.widgets.Composite used in the signature (net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2c10ce56, parent loader 'platform'; org.eclipse.jface.preference.PreferencePage is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3028c089, parent loader 'platform')
at net.sourceforge.plantuml.eclipse.Activator.updateBasePropertiesPath(Activator.java:95)
at net.sourceforge.plantuml.eclipse.Activator.start(Activator.java:83)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:818)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:810)
... 73 more
!ENTRY org.eclipse.equinox.registry 4 1 2023-03-22 11:20:45.658
!MESSAGE Unable to create the selected preference page.
!STACK 0
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle net.sourceforge.plantuml.eclipse (2591).
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:126)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:920)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.ui.internal.WorkbenchPlugin.lambda$0(WorkbenchPlugin.java:287)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:285)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:52)
at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1281)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:338)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1167)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:630)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:661)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:658)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:821)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:818)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1191)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:284)
at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:438)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5040)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4520)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5855)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5065)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4517)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: org.osgi.framework.BundleException: Exception in net.sourceforge.plantuml.eclipse.Activator.start() of bundle net.sourceforge.plantuml.eclipse.
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:839)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:767)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
... 66 more
Caused by: java.lang.LinkageError: loader constraint violation for class net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage: when selecting overriding method 'org.eclipse.swt.widgets.Control net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage.createContents(org.eclipse.swt.widgets.Composite)' the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2c10ce56 of the selected method's type net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage, and the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3028c089 for its super type org.eclipse.jface.preference.PreferencePage have different Class objects for the type org.eclipse.swt.widgets.Composite used in the signature (net.sourceforge.plantuml.preferences.DiagramIntentPreferencePage is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2c10ce56, parent loader 'platform'; org.eclipse.jface.preference.PreferencePage is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3028c089, parent loader 'platform')
at net.sourceforge.plantuml.eclipse.Activator.updateBasePropertiesPath(Activator.java:95)
at net.sourceforge.plantuml.eclipse.Activator.start(Activator.java:83)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:818)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:810)
... 73 more
Cool plugin, makes working with PlantUML great
Submitted by Jesper Jensen on Tue, 03/01/2022 - 12:45
Great plugin.
Doesn't do anything
Submitted by Chris Idema on Tue, 02/01/2022 - 05:47
It doesn't work. I installed it and nothing happens when I open a puml file. I have eclipse 4.19
Had no effect whatsoever
Submitted by Michael Moser on Sun, 11/01/2020 - 14:00
Unfortunately, installing this plugin had no recognizable effect whatsoever. It didn't render the .puml files nor did it offer to edit them n or do anything with them. This was on Eclipse reporting as:
Version: 2020-09 (4.17.0)
Build id: 20200910-1200
Re: Had no effect whatsoever
Submitted by Hallvard Traetteberg on Mon, 04/26/2021 - 11:22
In reply to Had no effect whatsoever by Michael Moser
You couldn't open any PlantUML-related views or didn't see content in any of them (not even an error message)?
Could you please check in the plugin view that the PlantUML plugins were activated?
Re: Had no effect whatsoever
Submitted by Jesper Jensen on Tue, 03/01/2022 - 12:45
In reply to Had no effect whatsoever by Michael Moser
Did you try to go into "Window" menu and then "Show view" and then "Others..." and then select PlantUML?
Plugin Seam not to be 4.11 Compatible
Submitted by Andreas Weier on Mon, 06/17/2019 - 02:11
Hello.
I have noticed, that since Eclipse 4.11 (64Bit) the plugin is no more compatible (available)
Re: Plugin Seam not to be 4.11 Compatible
Submitted by Max Hohenegger on Thu, 08/20/2020 - 07:17
In reply to Plugin Seam not to be 4.11 Compatible by Andreas Weier
Hi,
I was able to install this and open PlantUML views in Eclipse 2020-06 (4.16)