| Name | FreeMind Plugin |
|---|---|
| Version | 1.0.3 |
| Product Versions | Confluence 2.1, 2.2, 2.6.x (with mod'd pom) |
| Author(s) | jason.dillon@planet57.com |
| Homepage | n/a |
| Price | FREE! |
| License | ASL |
| Download JAR | See Installing |
| Download Source | freemind-plugin |
Description/Features
Displays a Mind Map inline using FreeMind.
| This plugin simply renders HTML to display the Freemind browser applet, and does not actually invoke any Freemind code. |
Here is an example of what a mind map looks like:

This macro is based on the same concept found in Wikka, though only the very basic referencing of a URL is supported (no inline definitions at this time).
| Requires Java Support Uses the FreeMind Browser Java applet v0.7.1. Web browsers that do not have Java 1.4, or have a misconfigured Java plugin will not work |
Installing
Due to some licensing mismatch between ASL and GPL licenses, this plugin is no longer (since 1.0.3) release as a binary, instead you must build the plugin and then install it (don't worry its simple).
You must have Maven 2 installed to build the plugin.
svn co http://svn.atlassian.com/svn/public/contrib/confluence/freemind-plugin/tags/1.0.3 freemind-plugin cd freemind-plugin mvn install
After the build reports BUILD SUCCESSFUL, you should have a fully functional Freemind plugin in the target/ directory which you can upload to Confluence or copy into the confluence.home/plugins directory.
Usage
| For definitive usage, see the online notation guide (in the Advanced Formatting section). |
{mindmap:^freemind.mm}
{mindmap:^freemind.mm|width=90%|height=400}
{mindmap:http://mylocalserver/mymindmap.mm}
Parameters
- default: The default parameter is the attachment reference or a local URL to a FreeMind MindMap source file.
- height: The height of the applet (optional). Default is 600 pixels.
- width: The width of the applet (optional). Default is 100%.
| NOTE When using the URL syntax, the URL must point to the same server from which the applet has been loaded to avoid security exceptions. |
Version History
- 1.0 - Initial release
- 1.0.1 - Allow attachments to be loaded using native Confluence attachment syntax.
- 1.0.2 - Changed license to GPL at the request of the Freemind authors.
- 1.0.3 - Drop binary distribution (force users to build), changed license back to ASL.
TODO (Maybe)
- Allow mind map content to be defined in a Confluence page's text.
- Add a fullscreen detach link
- Allow a full Freemind editor to be launched, and have it update the content.
Screenshots
|
|
|



Comments (42)
Jan 22, 2006
Guy Fraser says:
Very niceVery nice
Jan 25, 2006
Bob Swift says:
Can you please attach an example mm file?Can you please attach an example mm file?
Jan 25, 2006
Jason Dillon says:
Done. I don't have time to make a custom one, but I put up the FreeMind docs fr...Done. I don't have time to make a custom one, but I put up the FreeMind docs freemind.mm. You need to download this, upload it to your site, linking to this URL from your site will not work.
Jan 30, 2006
Rob Kearey says:
Awesome! How hard is a java 1.5 version to achieve?Awesome! How hard is a java 1.5 version to achieve?
Jan 30, 2006
Jason Dillon says:
No clue... but probably not much. I can add support to tell the plugin what ver...No clue... but probably not much. I can add support to tell the plugin what version to suggest. Right now its hardcoded to use 1.4.
Jan 30, 2006
Rob Kearey says:
Fairy nough - we're going through an enormous redesign period right now and this...Fairy nough - we're going through an enormous redesign period right now and this is exactly what I need. I'll ask one of our java people to check it out if they have time.
Feb 05, 2006
Thomas Peter Berntsen says:
Thanks for a great plugin, Jason.Thanks for a great plugin, Jason.
Feb 28, 2006
Jason Dillon says:
FYI, license changed from ASL 2.0 to GPL 2 at the request of the Freemind author...FYI, license changed from ASL 2.0 to GPL 2 at the request of the Freemind authors.
Feb 28, 2006
David Peterson [CustomWare] says:
Hey Jason, I belive that GPL (in any version) is incompatible with being plugge...Hey Jason,
I belive that GPL (in any version) is incompatible with being plugged into Confluence (being a non-GPL application). Any chance you could talk them into letting you license it as LGPL?
Feb 28, 2006
Jason Dillon says:
Changing the license from ASL to GPL seemed acceptable to the authors as a short...Changing the license from ASL to GPL seemed acceptable to the authors as a short-term solution. Not sure how GPL actually gets applied in this case, since the "plugin" is not importing any GPL code to function... but renders a HTML snippet that generates an applet tag to cause the user's webbrowser to import and include the Freemind browser.
Does that mean that any webbrowser that loads a page with this plugin is now GPL? Seems kinda obsurd to me...
Mar 01, 2006
Charles Miller says:
The GPL is incompatible with plugins written for non-GPL'd applications, unless ...The GPL is incompatible with plugins written for non-GPL'd applications, unless all of the GPL software used in the plugin makes a specific exception in its license.
More information:
Mar 01, 2006
Jason Dillon says:
This link (the relevant section of the GPL) indicates that the Freemind applet j...This link (the relevant section of the GPL) indicates that the Freemind applet jar, which is dynamically linked into the Browser or into Sun's JRE (not directly linked to anything in Confluence) which sounds like the original license was okay.
Ugh, GPL sucks man. I just did this for fun and now its becoming a royal pain in the ass. Not sure Freemind support in Confluence is worth it actually.
Mar 01, 2006
Jason Dillon says:
Anyways... I don't actually use this plugin... only did it for fun. So unless a...Anyways... I don't actually use this plugin... only did it for fun. So unless anyone has any suggestions on how to resolve this. I'm just going to remove it from SVN and delete this page and be done with it.
Mar 01, 2006
Dan Hardiker says:
You're only solution is to reason with the authors about why they have Freemind ...You're only solution is to reason with the authors about why they have Freemind GPLed. If it is to stop non-GPL products from benifiting from the Freemind project then you are out of luck I'm afraid.
I came up against exactly the same problem with my Sudoku Plugin - I ended up moving the sudoku generator into a separate utility project (which is GPLed), and its pretty obvious that you don't have that option.
Unforuntately, it's their choice - if the Freemind developers are unwilling to license it to you under a non-viral license (preferably BSD) then there is nothing you can do. Plead / beg / offer your first born in exchange for an alternative license, and you might get lucky.
Fingers crossed for ya!
Mar 01, 2006
David Peterson [CustomWare] says:
I agree - GPL = pain in the butt. I'm sure there are many others who disagree, b...I agree - GPL = pain in the butt. I'm sure there are many others who disagree, but it's gotten in my way more than once.
Unless it's something you really want and use, I'd concur - ditch it and let FreeMind loose a good opportunity for their hard work to get used in new and creative ways. It's their loss, really.
Mar 01, 2006
Guy Fraser says:
It does seem odd that they'd go to all the trouble of writing Freemind, only to ...It does seem odd that they'd go to all the trouble of writing Freemind, only to ensure that it cannot be used by the majority of the target audience. I'd see the stand-alone version as a plugin to Windows
Hardly supprising that there is heated debate over this silly, silly license in the Linux world.
Jason, you created a great plugin that would have put Freemind on the radar of over 700 organisations worldwide. The Freemind authors choose to remain in obscurity. Thier loss.
Apr 06, 2006
Turadg Aleahmad says:
I like Freemind and support the project, but I don't see how they have any say i...I like Freemind and support the project, but I don't see how they have any say in the license of this plugin. As I understand it, it just creates an <applet> tag that instructs the browser to download a JAR with a binary of Freemind and launch with a particular file. The code that the Freemind developers have written isn't even running on the same JVM (or continent?) as the code written by Atlassian. License compatibility is not an issue.
Jason, why not change your license back to ASL?
Aug 25, 2006
Jason Dillon says:
Because the authors of FreeMind asked me to change it to GPL. The applet code i...Because the authors of FreeMind asked me to change it to GPL.
The applet code is included in the distro here... and needs to be pulled from the same server to run.
May 15, 2006
Sean Blaes says:
Often, how the GPL really applies to Java (as compared to C+) is very confusing ...Often, how the GPL really applies to Java (as compared to C+) is very confusing and up for argument, because Java binaries link in totally different manner than languages like C+ do. However, this case seems to be one that is very clear. If your plugin does not in any way require the freemind binaries (their jar) then you are in no way linking to their code, even by the wildest stretch of the imagination. You should be able to release this under whatever license you want, and tell them to go fly a kite.
From what it appears, this sounds similar to MySQL saying that anybody that has typed MySQL specific SQL inside their code (and we pretty much all do) would force your application to be GPL, etc.
Generally, most contracts must be reasonable to be defensible. I read an article once by a tech lawyer (wish I could find a link so I could share that here, it's been ages ago) stating that in order for contracts to be defensible in court they must be reasonable. The last I knew, there was very little case history on the GPL, most claims brought forward have been settled without going to court. However, the point being that if a contract contains unreasonable terms (similar to a lot of non-compete contracts out there) then those terms can be thrown out if brought to court. This sort of an interpretation of the GPL definitely seems like one of those unreasonable interpretations...
I support and love open source, and personally always release under the Apache license that which I choose to give to the open source community. However, in this case, it really seems that they are overstepping their bounds.
That's my humble half-informed opinion. Take it or leave it.
May 15, 2006
Dan Hardiker says:
If your plugin does not in any way require the freemind binaries (their jar) the...This plugin does require the freemind binaries as it is needed by the imports when compiling. I see a fundamental difference here between using a programmatically API (like a library) and using a product API (through SOAP / SQL etc).
No biggy - just would have been nice.
Aug 25, 2006
Jason Dillon says:
This is not true. The source code of the plugin does not import any FreeMind cl...This is not true. The source code of the plugin does not import any FreeMind classes.
The FreeMind applet however is included in the plugin dist, that it gets installed into the server's WEB-INF so that the generated pages can generate a reference to the applet jar, which then instructs the client's webbrowser to download, install and execute the GPL plugin inside of your browser's JVM.
I guess the only good solution here is to provide the plugin w/o the applet jar, and then include instructions for users to follow that explain how to download the applet jar and install it into the plugin's jar, which can then be installed into Confluence.
PITA if you ask me... but unless anyone has any better ideas.
Aug 25, 2006
Dan Hardiker says:
If you can sign the applet jar, you could put it on a central webserver and link...If you can sign the applet jar, you could put it on a central webserver and link to that central location in the browser applet tags. However, I think placing the jar into the conf distribution and linking relatively is your best option. It's quite simple - and it is better than the current situation of not being able to work.
Aug 25, 2006
Alain Moran says:
Create two plugins .. one non-GPL that contains the plugin itself, and another G...Create two plugins .. one non-GPL that contains the plugin itself, and another GPL plugin that contains the freemind jar
Aug 25, 2006
Dan Hardiker says:
Confluence plugins are incompatible with the GPL as Confluence itself is not GPL...Confluence plugins are incompatible with the GPL as Confluence itself is not GPLed.
Aug 25, 2006
Mike Cannon-Brookes says:
AFAIK that's not true, but I may be wrong. Isn't it one of those chickens are an...AFAIK that's not true, but I may be wrong. Isn't it one of those chickens are animals, but animals aren't all chickens relationships?
Here's my understanding:
Otherwise, if anyone wrote a GPL plugin we'd have to GPL Confluence by their actions - which even those fine folks at the FSF would probably tell you is unfair
Or did I misunderstand?
Aug 25, 2006
Dan Hardiker says:
From what I can gather it's down to interpretation - see Charles' collection of ...From what I can gather it's down to interpretation - see Charles' collection of references on the issue:
http://confluence.atlassian.com/display/CONFEXT/FreeMind+Plugin?rootCommentId=163949#comments
Sep 18, 2006
Ivan S. Dubrov says:
How can I build it? It requires the com.atlassian.confluence:confluence-plugin-s...How can I build it? It requires the com.atlassian.confluence:confluence-plugin-support Maven2 artifact, but I miss it.
Feb 23, 2007
Jason Dillon says:
Its been a while, but I finally had some time to muck with this more... still no...Its been a while, but I finally had some time to muck with this more... still not sure how the whole GPL fluff works in this case, but I did a few things:
So, its up to the user who wants to use this, to download the src, run the simple build and then install the jar. They should know that Freemind's license is GPL, but this plugin (the java code, velocity macros and build configuration), which does not invoke any Freemind code is licensed as ASL.
Sucks... just makes it harder for folks that want to use the plugin to actually use it (ie. can't include it in the repo client's metadata).
I suppose a better solution would be hack up a plugin configuration action which would ask the user if they want to install the GPL code, and then reference that downloaded binary when generating the HTML to render the applet... though still not sure if that is legit or not.
Anyways, I think this is closer to legit now, as the java plugin code is ASL, and that java plugin code does not import any GPL code (only renders HTML). Only gray area is that for the plugin to work it needs to have the GPL Freemind jar inside of it... but since there is no more binary distribution of that archive, any licensing issues are assumed by the user when the build/install the jar.
Mar 10, 2007
Bambuda Leung says:
Just curious - has there been any progress on a plugin with edit capability? I c...Just curious - has there been any progress on a plugin with edit capability? I can think of some ugly work-arounds, such as scaffold forms to generate .mm files, but hope to avoid this.
Mar 11, 2007
Jason Dillon says:
Nope, I've certainly not made any progress on this, nor do I plan to given all o...Nope, I've certainly not made any progress on this, nor do I plan to given all of the licensing mumbo-jumbo around this.
But, if the Freemind applet supported editing, then it should be relatively easy to implement... but will require some more magic to integrate for sure.
Jun 10, 2007
Eugene Gavrilov says:
It seems that macro determines base url incorrectly in case of front proxy. I ha...It seems that macro determines base url incorrectly in case of front proxy.
I have installed Confluence behind Apache and the following code the most probably retrieves internal URL (http://localhost:8080) instead of external (https://xxx.xxx.xxx.xxx)
private String getBaseURL() { HttpServletRequest request = ServletActionContext.getRequest(); if (request == null) { return null; } return request.getScheme() + "://" + request.getServerName() + ((request.getServerPort() != 80) ? (":" + request.getServerPort()) : "") + request.getContextPath(); }I'd suggest to use an external Confluence base url (configured in Administration -> General Configuration)
Jun 19, 2007
Jason Dillon says:
Patches welcome...Patches welcome...
Jun 18
Louis Adiputra says:
import com.atlassian.spring.container.ContainerManager; import com.atlassian...Did it for me
. But a problem with it is the fact that the client's Java plugin doesn't (AFAIK) use the same HTTPS authentication mechanism as the browser.
Sep 24, 2007
Michael S. says:
Are there any plans to make this plug-in compatible with Confluence 2.5.x? Than...Are there any plans to make this plug-in compatible with Confluence 2.5.x?
Thanks,
Mike
Dec 17, 2007
Andy Brook says:
I just built this and installed on Confluence 2.6.1, I had to mod the pom, which...I just built this and installed on Confluence 2.6.1, I had to mod the pom, which is attached. I also had to harcode the name in the atlassian-plugin.xml, it didn't resolve the pom.name properly for some reason.
Cheers,
Jun 18
Louis Adiputra says:
You're missing a section in the POM-file: http://developer.atlassian.com/jira/br...You're missing a section in the POM-file: http://developer.atlassian.com/jira/browse/CPDK-14
In <build>..</build>:
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>The previous version of the POM file didn't have it either, but somehow the "filtering" (Maven's term for it) worked there. Or maybe it didn't work, I can't check because I never got it to compile with the previous version.
Thanks for the updated POM file, BTW.
Mar 19, 2008
Sebastian Görner says:
Yesterday I installed the FreeMind Plugin. I could see the mindmap (VIP.mm) and ...