Skip navigation

Clearspace 1.9 Beta Now Available

Posted by dawn Nov 29, 2007

Clearspace 1.9 is now available in beta.  You can download the Clearspace 1.9 beta, and get an early look at the next release.


Clearspace 1.9 is primarily a bug fix release, so there isn't too much to say about it.  You can browse through the change log contained within the beta download if you want to know exactly what we changed.  It would be great to have a few people from the Jivespace community kick the tires for a while.  You can post any bugs, issues, or other feedback in the Clearspace Beta Program space.


As always, the standard caveats apply. Please keep in mind that we offer these betas to give developers an opportunity to test pre-released Jive Software. Do NOT run production environments using beta products. These beta products are entirely unsupported. However, we would love to hear your feedback about the beta product to help us improve the final version of Clearspace.


Note: Updated 12/3 to add attached changelog

There are several options for user authentication in Clearspace ranging from a built in user manager to LDAP to custom solutions.  In this video, Joel Rosinbum, Jive engineer, will walk you through how to best configure user authentication for your environment.




Or you can download the Quicktime version (caution: ~260MB)

We were really pleased at how popular widgets were from the start. It seems as if everyone has an idea for something they want to "widgetize." So it's great that they're so easy to build.


If you haven't checked out widget development in Clearspace, now's a great time to do it. Version 1.8 improves on widgets' debut by adding support for including them in plugins. Now you can build a widget and get that handy autodeployment support you already get with macros, actions, and the like.


If you have looked at building widgets, then you know that the version 1.8 changes make them easier to deploy, but they were easy to build from the start. For an introductory tutorial on building widgets, check out  . And be sure to download the for a sample.

Want to add a shiny new feature to your Clearspace community? It just might be easier than you think! A macro can be used for anything from embedding videos to displaying Jira Issues to adding bling

  • A macro class that extends This class will implement the methods that Clearspace calls to get the String value for display in the user interface where the user has inserted your macro.

  • Macros are technically plugins, so yours will include a plugin.xml file that describes the plugin to Clearspace, including which Java class is your macro class.

to your text.  They are also an easy way to get started if you want to add some custom functionality to your Clearspace community.

The basics

For simple macros, you'll really need just two pieces of code:

The process

  • Set up your testing environment and project hierarchy.

  • Create your plugin.xml file, which tells Clearspace what's in the plugin -- in short, what Clearspace features you're extending -- and where to find code and other supporting files your plugin needs

  • Create a plugin class with the logic to tell Clearspace what to do when the user uses your macro.

  • Build, deploy, and test your macro.


Sounds pretty easy.  If you still aren't sure, you can start with these documents and tutorials:

  • The specified item was not found.

  • The specified item was not found.

  • The specified item was not found.


And as always, you can post any questions here in Jivespace if you get into any trouble.


What's your craziest idea for a macro?

Have you ever wanted to pull a list of issues from JIRA into a document? Tim Colson, the winner of our first plugin contest, has developed an awesome JiraIssues Macro that makes it easy to interact with JIRA issues from within Clearspace using a slick Flex interface!


Because the input of the macro is an XML feed URL, you can customize it to show almost any cut of the data from Jira (only open issues on a specific project owned by a certain owner, etc.) The interface gives you the flexibility to filter, show/hide fields, and interact with the data in a variety of ways.


Download the plugin or learn more about the JiraIssues Macro Plugin with Flex.


If you are interested in writing your own plugin or macro for Clearspace, you can find plenty of information in our documentation space.

RSS and Attention Video

Posted by dawn Nov 9, 2007

Jive was lucky enough to be the host for the November Portland Web Innovators meeting with a presentation and discussion about RSS and Attention led by Attensa, another local Portland company. Attensa is focused on finding and delivering the most relevant information out of our RSS feeds, and they are also an enthusiastic Clearspace customer, so it was interesting to hear their perspective on RSS and Attention.





Or download a Quicktime movie of the entire 30 minute presentation (Caution! ~400MB file!)

Jivespace Has Moved!

Posted by dawn Nov 9, 2007

OK, so it was a virtual move rather than a physical one.  Our original idea to put the main landing page of Jivespace at with the Clearspace community portion at turned out to be less than optimal. The original architecture made testing a nightmare and made many things more difficult than they should have been.


Last night, we deployed the re-architected site and completed the move to and  We have redirects in place, so you shouldn't have any issues finding what you need, but you might want to update your bookmarks.


As with any upgrade, if you notice anything strange, please post it in the Jivespace Lounge, and I'll take care of any issues.

An easy way to extend Clearspace is by writing a macro. Macros can be used to modify and/or decorate a piece of a document, blog post or comment. For example: Say you wanted to include a map of downtown Portland, OR. Assuming you had the yahoomaps plugin installed, you could do so using the ymaps macro included in the plugin.

In a document or a blog post, you could write the following :

Jive Software is located in Downtown Portland
{ymaps}304 SW Adler, Portland, OR{ymaps}


When the document or the blog post is rendered, the

{ymaps}304 SW Adler, Portland, OR{ymaps}


portion of the document would be replaced by a map from Yahoo.


Writing a macro is simple, all you have to do is implement that Macro interface

public interface Macro{
    String render(String body, Map<String, String> parameters, MacroContext macroContext);

The return value (String) contains the HTML and/or Javascript code that replaces the macro tag in the document. For example, in case of Yahoo maps, the macro returns the following.

<script type="text/javascript" src=""></script>
<div id="mapContainer_1234">
<script type="text/javascript">

When the document is rendered in the browser, the Javascript block executes and adds the Yahoo maps widget to the &lt;div&gt; element.


The render method of the Macro interface is passed three arguments.

  • body: This argument contains the text between tags. So, 304 SW Adler, Portland, OR, would mean that the render method would be passed the string "304 SW Adler, Portland, OR" as the body argument.

  • parameters: This argument is a map of name value pairs that capture the attributes set on the macro. For example, it is possible to specify the type of the map and zoom level by using "type" and "zoom" attributes on the yahoo maps plugin. So, 304 SW Adler, Portland, OR, will create a hybrid map with the zoom level set to 4. These two attributes will be passed inside the parameter map argument. In the code, you would access them using the name of the attribute as the key.

     String render(String body, Map<String, String> parameters, MacroContext macroContext){
          String mapType = parameters.get("type");//will return the string "hybrid"
          String zoomLevel = parameters.get("zoom"); //will return the string "4"
  • macroContext: macroContext argument allows you to get handle to objects and managers inside Clearspace. Most macros never use this argument, but sometimes it is neccesary call into Clearspace to lookup a value or peek at the document that the macro was included in. For example, the yahoo maps macro needs to ensure that yahoo apis javascript is included only once in a document, regardless of the number of times a macro was included in the document. So, in the render method, it queries the macroContext for the document body and checks to see how many times it has been included and appropriately includes the &lt;script&gt; tag when needed.



Unit testing macros is extremely easy, since all of the arguments of the render method are easily mock-able. Macros are ideal candidates for TDD, since you know exactly what the input arguments and the HTML/Javascript return value should look like.


Packaging and additional docs

Macros are packaged as part of a plugin. So, the process is the same as a plugin. See Plugin and Clearspace documentation for additional details.

We have selected the winners for our first Clearspace plugin contest based on usefulness, completeness, creativity / elegance, and code quality.


(Drum Roll)


  1. First Place $5000: JiraIssues Macro Plugin with Flex by timcolson - bonus points for using Flex and targeting developer audiences!

  2. Second Place $2500: Google Maps plugin by Jay Allen - very cool way to get a feel for community member locations!

  3. Third Place $1500: Translations Macro by Lokkju - nice way to support international community members!

  4. Honorable Mention: Flickr Slideshow macro by Beans0063 - cool way to embed Flickr slide shows!


We will be contacting each of the winners shortly to work out all of the details!

Filter Blog

By date: By tag: