| Name | Metadata Plugin 2 |
|---|---|
| Vendor | Andy Armstrong |
| Authors | Andy Armstrong, Kelsey Grant |
| Homepage | http://confluence.atlassian.com/display/CONFEXT/Metadata+Plugin |
| Issue Management | http://developer.atlassian.com/jira/browse/META |
| Continuous Integration | n/a |
| Categories | Content Macros |
| Most Recent Version | 2.1.0 |
| Availability | Confluence v2.7 to v3.0.0_01 |
| State | Stable |
| Support |
|
| License | Freeware / Open Source (BSD) |
| Price | Free |
| Release Docs | http://confluence.atlassian.com/display/CONFEXT/Metadata+Plugin |
| Java API Docs | n/a |
| Download Source | http://svn.atlassian.com/svn/public/contrib/confluence/metadata-plugin/tags/2.1 |
| Download JAR | metadata-2.1.0.jar |
Version 2 of the Metadata Plugin provides full metadata support for spaces, users, blog posts and attachments, as well as adding support for hierarchical spaces.
- Description/Features
- Space metadata
- Hierarchical spaces
- Metadata reports for users, blog posts and attachments
- Alternative report styles
- Support for dates
- Additional internal metadata
- Issues addressed
- Usage
- Metadata macros
- space-metadata macro
- space-metadata-list macro
- space-metadata-from macro
- spaces-report macro
- space-hierarchy macro
- space-breadcrumbs macro
- users-report macro
- blog-posts-report macro
- attachments-report macro
- Setting up hierarchical spaces
- Version History
- Future Improvements
- Screenshots
Description/Features
Version 2 is a major rewrite of the Metadata Plugin that extends the functionality in a number of directions. The highlights are as follows:
- support for adding metadata and generating reports for spaces
- support for hierarchical spaces through space metadata
- new metadata reports for users, blog posts and attachments
- alternative renderings for each report
- provided access to more internal metadata
- full support for dates
- addressed a number of reported issues
Space metadata
This release adds the same metadata functionality to spaces that the previous version provided for pages. There are a lot of useful reports that you can now generate automatically from your Wiki.
e.g. a report of all the spaces, all the spaces tagged with a specific label
The main improvement over the built-in Confluence support for showing spaces is that these reports can include columns with different metadata from the space. Some examples include the space's status, its owner, its purpose etc.
Hierarchical spaces
Version 2 of the plugin also provides the ability to define space hierarchies by utilizing space metadata. By default, Confluence provides a flat list of spaces, but as your wiki grows this becomes harder and harder to manage. For example, note that the Atlassian wiki has a large number of spaces, many of which could be grouped together. There are eight general Atlassian spaces, two for Bamboo, six for Confluence etc.
This plugin allows you to create new parent spaces (say one called "Confluence") and to parent other spaces into it. You simply attach a single piece of space metadata to the home page of the space indicating the key of its parent space. Note that this metadata is used to visually group spaces, but does not affect the existing Confluence permissioning scheme.
For example, to specify that the current space is a child of the dev space, you would add this to the home page:
{parent-space}dev{parent-space}
This hierarchy metadata is now available to all the other metadata macros. For example, a new space-breadcrumb macro is provided to render a new hierarchical breadcrumb for your pages from this information. In the following screenshot, you are looking at a page in the Development space, which is under the "New Product" space, which itself is under the "Root Space".

The new breadcrumb can optionally drop the 'Dashboard' link so that the home page is itself a space. This can allow Confluence to lose its administrative feel, and hence be used as a website for people who don't need to know that they are accessing a wiki.
See "Setting up hierarchical spaces" for details.
Metadata reports for users, blog posts and attachments
In addition to all the new functionality around spaces, version 2 also provides useful functionality for generating reports for users, blog posts and attachments.
For users, Metadata can either be posted to a user's profile or to their personal space, and then reports generated. For example, every user in a company could be requested to attach personal metadata such as work phone, cell phone, location etc. A company directory can then be generated that includes all of this information.

See the users-report macro for details.
Similarly, there are two new reports available for blog posts and attachments. See the blog-posts-report and attachments-report macros.
Alternative report styles
The Metadata Plugin has been generalized to allow alternate report styles to be provided. As with other Confluence macros, the style parameter is used to control the rendering. THe possible values are:
| table | The old-style tabular report. |
|---|---|
| list | A bare-bones list representation, useful for a concise list of content. |
| ol | A bulleted list representation. |
| ul | An ordered list representation. |
Here's an example of the four different styles when showing a blog posts report:

Support for dates
In order to fully benefit from all of the new metadata, the plugin has been extended to add full support for dates. Internally metadata used to be stored as strings, but the code base has been generalized to allow for arbitrary data types. This means that metadata collections can be sorted by date, and that date fields can use a custom renderer so that the user's date and time format preferences are obeyed.
Currently dates can only come from internal metadata such as a blog's post date, the last modified date of a page etc. The plan is to add support for user-supplied date metadata shortly.
Additional internal metadata
The following internal metadata can now be accessed from reports:
| Attachment | A link to the matching attachment. |
|---|---|
| Author | The author of this piece of content. |
| Blog Post | A link to the matching blog. |
| Comment | The comment attached to an attachment. |
| Comments | A link to the comments for a blog, along with a count. |
| Creator | The creator of this piece of content. |
| Date | The date that this content was last modified. |
| Download | A link to download the attachment. |
| The email address for the owner of a space or personal profile. | |
| Excerpt | The excerpt from the page or blog. |
| File Size | The size of an attachment. |
| File Type | The attachment's file type. |
| Last Changed By | The user that last changed this content. |
| Last Time Changed | The time that this content was last changed. |
| Page | A link to the matching page. |
| Parent | A link to the parent of this page. |
| Posted | The date that this piece of content was posted. |
| Poster | A link to the user that posted this piece of content. |
| Size | The size of the matching attachment. |
| Space | A link to the space that this content belongs too. |
| Time | The time that this content was last modified. |
| Time Created | The time that this content was created. |
| Title | The title of this piece of content. |
| Type | The type of the attachment. |
| User | The user that created this piece of content. |
| Version | The version number of this piece of content. |
Issues addressed
This release addresses a few of the issues reported against version 1:
| Issue | Summary | Votes |
|---|---|---|
| META-44 | Unable to install the Plugin with Confluence 2.3 | 7 |
| META-24 | Ability to do a report over profiles | 0 |
| META-13 | Add the ability to poll Last Modified Date and User to reporting macros | 3 |
In addition, the following general Confluence issues are addressed (some only partially):
| Issue | Summary | Votes |
|---|---|---|
| CONF-5385 | Provide {blog-posts} option to show concise list of titles | 5 |
| CONF-1095 | Nested Spaces | 59 |
| CONF-2460 | Home Page | 8 |
| CONF-4429 | Breadcrumbs don't need to show space name and home page name when 'View Space Goes to Browse Space' is not set | 9 |
| CONF-5795 | Breadcrumbs shouldn't hyperlink the current page | 5 |
Usage
Metadata macros
The plugin provides the following new macros:
| space-metadata | Adds one piece of metadata to the space. |
| space-metadata-list | Adds a list of metadata values to the space. |
| space-metadata-from | Shows a metadata value from a space. |
| spaces-report | Shows a tabular report of metadata from matching spaces. |
| space-hierarchy | Shows a tree representation of the space hiearchy from the current space. |
| space-breadcrumbs | Shows a tabular report of metadata from matching spaces. |
| users-report | Shows a tabular report of metadata from matching user profiles and/or spaces. |
| attachments-report | Shows a tabular report of metadata from matching attachments. |
| blog-posts-report | Shows a tabular report of metadata from matching blog posts. |
space-metadata macro
This lets you attach a single piece of metadata to a space (see the original metadata macro for the equivalent functionality for pages).
For example:
{space-metadata:location}Bedford, MA{space-metadata}
would render simply as:
Bedford, MA
but would also attach "location" as a piece of metadata to the page. Note that as with the other metadata macros, the metadata is stored as unrendered Wiki markup. The reporting macros then render the markup into the page they are used on. This usually works very well because links, emoticons etc can be used.
If you don't want the metadata to show on the page you can use the "hidden" parameter.
{space-metadata:location|hidden=true}Bedford, MA{space-metadata}
space-metadata-list macro
This macro allows the user to attach multiple pieces of metadata to a space with one macro. The main purpose of this is to make it allow a user to add metadata more concisely and to make the Wiki markup easier to read.
The following usage:
{space-metadata-list}
|| Location | Bedford, MA |
|| Extension | x1234 |
|| Cell Phone | 617 123-4567 |
{space-metadata-list}
adds three pieces of metadata to the space, as well as rendering the following output:
| Location | Bedford, MA |
|---|---|
| Extension | x1234 |
| Cell Phone | 617 123-4567 |
An optional orientation=horizontal parameter changes the rendering to be horizontal. It will then render as follows:
| Location | Extension | Cell Phone |
|---|---|---|
| Bedford, MA | x1234 | 617 123-4567 |
space-metadata-from macro
This is a simple macro that can pull one piece of metadata from a space.
This space's owner is {space-metadata-from:Owner}
will just display as:
This space's owner is Andy Armstrong.
spaces-report macro
As with the standard metadata-report, this macro allows you to generate a report detailing the metadata attached to the matching spaces. There are a large number of internal metadata types that can be used, plus custom metadata can be attached using the space-metadata and space-metadata-list macros.
Here's a sample
{spaces-report:Space,Owner,Purpose,Last Changed By,Last Time Changed|sort=Last Time Changed desc}
which produces this result:

space-hierarchy macro
This is a very simple macro that shows the hierarchy beneath the current space.
For example:
h2. Spaces
{space-hierarchy}
shows this:

In addition, you can show the hierarchy beneath a different space using the space argument:
{space-hierarchy:space=dev}
space-breadcrumbs macro
This is a very simple macro that will add breadcrumbs to a page. In particular, it analyzes the space hierarchy information so that it includes all of the parent spaces up to the root space.
You can control the display of the breadcrumb using an optional second parameter. It can take any of the following three values:
| dashboard | Includes the standard 'Dashboard' link at the start of the breadcrumb |
|---|---|
| home | Shows the 'Home' link in addition to the link to the space itself |
| dashboard+home | Includes both 'Dashboard' and 'Home' links in the breadcrumb |
By default, neither the 'Dashboard' link nor the 'Home' link are shown. Note that you should be careful before removing the 'Dashboard' link to make sure that all of the required functionality is available elsewhere in your site. I would suggest including the 'Dashboard' link initially until you are ready to give it up. Probably the best place to put it is in your root space, either on the home page or on an "Administration" subpage.
_Note: I plan to provide an example page that replicates all of the dashboard functionality.
users-report macro
As with the other report macros, you can generate a report of all the users, showing any metadata attached to the user. For users with personal spaces, the metadata is fetched from the space, while for regular users the metadata is fetched from their profile.
Here's a sample
{users-report:User,Location,Email,Extension,Cell Phone}
which produces this result:

blog-posts-report macro
As with the other report macros, you can generate a report of all the blog posts in a particular space. Here's some sample usages, which illustrate some of the different report styles.
h4. Table
{blog-posts-report:Title,Date,Time,Author,Comments,Time Created|sort=Time Created desc|maxResults=5}
h4. Plain list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=list}
h4. Unordered list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=ul}
h4. Ordered list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=ol}
and here is the resulting page:

attachments-report macro
As with the other report macros, you can generate a report of all the attachments on a single page. Here's an example usage:
{attachments-report:Attachment,Title,File Type,Size,Version,Download,Creator,Date,Time|sort=Time desc}
and here's how it looks on my home page:

Setting up hierarchical spaces
There are four steps to setting up Confluence for hierarchical spaces:
- Create a root space
- Create a 'Users' space
- Add parent metadata to every other space
- Update the breadcrumb
Create a root space
The first thing to do is to decide upon a root space. Most non-hierarchical Wiki installations would not currently have a root space, so in that case you should create one. It should probably have the same name as the Wiki itself, because it will be shown as the root of the breadcrumb. e.g. Progress Software's wiki now has a space called "Progress Wiki". Remember the space key designated for this space as that will be needed in subsequent steps.
I also recommend setting the root space to be the site home page for your site. You can set this in the Administration page, under Configuration/General Configuration.
Create a 'Users' space
In addition to having a root space, it seems to be useful to also have a users space. This is conceptually the parent space of every personal space, and helps to provide another level of structure. Note that this step is optional.
If you want a user space, you should put the following metadata into the home page (note that 'root' should be replaced with your root space's key):
{parent-space}root{parent-space}
{users-space}
You might also want to put a user report directly onto this page, assuming that you don't have many users. Something like this:
{users-report:User,Location,Email,Extension,Cell Phone}
Eventually this will provide a pageable report of all the users, but currently it shows every single user, so be careful!
Add parent metadata to every other space
Now you should go through all of your existing spaces and attach the parent space information to every page. For each space, find the space key of the parent, and then change the home page of the space to include:
{parent-space}PARENT_SPACE_KEY{parent-space}
Updating the breadcrumb
Unfortunately the plugin cannot directly change the site breadcrumb. Instead a new macro called space-breadcrumbs has been provided, and it has to be manually installed into your main site velocity template. Edit the Main Layout (found in the Administration page, under Look and Feel/Layouts) and replace the reference to:
<span class="topBarDiv"> #breadcrumbs() </span>
with:
#if ($spaceKey != '') $helper.renderConfluenceMacro("{space-breadcrumbs:$spaceKey:$title|dashboard}") #else <span class="topBarDiv"> #breadcrumbs() </span> #end
| Some older version of Confluence call the variable $spacekey instead of $spaceKey, so the two references in the code above should be updated. |
You can configure the display of the breadcrumb by specifying parameters to the space-breadcrumbs macro.
Version History
- 2.0.0 - Initial release
- 2.0.1 - Adds support for dates, blog posts and attachments and new renderers
- 2.1.0 - Compatibility with Confluence 2.7. Note I have not back-tested this for compatibility, so it probably works a long way earlier than the indicated version.
Future Improvements
I hope to have the following functionality added in time for my Confluence entry:
- Provide support for paging through large result sets
- Ability to change the titles of columns (META-39)
- Ability to use boolean logic when matching spaces, users and blog posts in reports
Slightly longer term I'm thinking about:
- Allow the space hierarchy metadata to be edited as properties, rather than entered into Wiki pages


Comments (106)
May 11, 2007
Guy Fraser says:
Sweet! If you could make the space-breadcrumbs macro default to the current spa...Sweet!
If you could make the space-breadcrumbs macro default to the current space it could be used in sites themed with Adaptavist Theme Builder by simply replacing the builder-breadcrumbs macro in the Navigation panel
Guy
May 14, 2007
Stuart Gilberd says:
I'm getting a lot of: "Unable to show "metadata-matches" java.lang.NullPointerE...I'm getting a lot of:
"Unable to show "metadata-matches"
java.lang.NullPointerException"
Messages in my old content (copied from our confluence 2.2.7 with metadata 1.6 to our new test system running confluence 2.5.1) - all the other macros seem to be working fine. Is there any thing I need to change to get metadata-matches working?
May 14, 2007
Andy Armstrong says:
Hi Stuart, My testing missed this problem, but I can indeed reproduce the NullP...Hi Stuart,
My testing missed this problem, but I can indeed reproduce the NullPointerException on my machine. I'll work on a fix for tomorrow if possible.
Sorry for the inconvenience,
May 14, 2007
Stuart Gilberd says:
Thanks so much Andy, I appreciate it. I'll look out for the new version tomorro...Thanks so much Andy, I appreciate it.
I'll look out for the new version tomorrow.
May 14, 2007
Stuart Gilberd says:
And by tomorrow I mean when you get the time Sorry misread your post.And by tomorrow I mean when you get the time Sorry misread your post.
May 14, 2007
Andy Armstrong says:
Well, that was easy. I've uploaded a fixed version now. The repository should up...Well, that was easy. I've uploaded a fixed version now. The repository should update within an hour.
Let me know how it goes.
May 15, 2007
Stuart Gilberd says:
that did the trick - thanks Andythat did the trick - thanks Andy
May 20, 2007
Stuart Gilberd says:
The pages attribute seems to have changed I'm getting a lot of these: Unknown p...The pages attribute seems to have changed I'm getting a lot of these:
Unknown pages code '@descendants'"
Should I log this as a bug?
May 20, 2007
Stuart Gilberd says:
It looks like a change of spelling: @descendants has become @descendentsIt looks like a change of spelling: @descendants has become @descendents
May 20, 2007
Stuart Gilberd says:
I see there is already a Jira ticket in for this: META-52I see there is already a Jira ticket in for this: META-52
May 29, 2007
Andy Armstrong says:
For those who aren't watching META-52, this was fixed with version 2.0.3 a week ...For those who aren't watching META-52, this was fixed with version 2.0.3 a week or so ago.
May 29, 2007
Ray Johnson says:
I'd like to get a spaces-report of all spaces that match a paticular team label....I'd like to get a spaces-report of all spaces that match a paticular team label. Is that possible with this plugin?
May 29, 2007
Andy Armstrong says:
Hi Ray, Yes, this works as you would expect. You just have to use the special t...Hi Ray,
Yes, this works as you would expect. You just have to use the special team label syntax of team:TEAM_LABEL.
e.g. I just used this to list all of the engineering spaces:
{spaces-report:Status,Space,Date,Last Changed By|label=team:engineering}Let me know if you have any problems with this.
Cheers,
Sep 19, 2007
Martijn Danse says:
Is it also possible to somehow only report global spaces and leave out any perso...Is it also possible to somehow only report global spaces and leave out any personal spaces.
Thanks,
Martijn
Sep 20, 2007
David Dembo says:
According to this comment, you can reference metadata with the Reporting Plugin ...According to this comment, you can reference metadata with the Reporting Plugin using the Data Supplier. I'm not sure if this could reference space metadata, but if you desperately need this functionality you might want to experiment...
e.g. use a {space-reporter} macro to grab all spaces, then use a {boolean-filter} to filter out personal spaces (see the Space Supplier), and then use the data supplier to populate columns in the report table with space metadata.
Mar 08, 2008
Bill Bennett says:
Has anyone confirmed that one can include Space Metadata in a report created wit...Has anyone confirmed that one can include Space Metadata in a report created with the Reporting Plugin?
I am trying to organize my spaces by Location, Team, Project ID, Type, and Status. I have successfully attached this space metadata and can use the space-reporter to show a table of this information for all spaces.
But I am going to have large amounts of spaces so I need to get a little more complex with it and filter the results down. I need to have a report, for example, that will show all of the Chicago and San Francisco spaces for Jim's team that have an "Active" status. On that report I'd like to list space meta data like Project ID's and Types.
Am I barking up the right tree in general? Is some combo of MetaData 2 and Reporting Plugin's the way to go? Should I be looking into Scaffolding?
Mar 08, 2008
David Peterson [CustomWare] says:
I would be somewhat surprised if reporting supported using space metadata - I be...I would be somewhat surprised if reporting supported using space metadata - I believe it currently expects metadata to only be present in pages and news items.
With regards to Scaffolding, you can only really use that on pages, so it won't work too well at the space level either.
I have a feeling that getting it working on space metadata will be a simpler task, but isn't currently implemented. If it's something you'd like to see in a future version, the best thing is to create a feature request so it will be on the radar for the next release.
Jun 04, 2007
James Mortimer says:
{metadata-from:Title|pageX}{metadata-from:Excerpt|pageX} still gives the titl...{metadata-from:Title|pageX}{metadata-from:Excerpt|pageX}still gives the title from pageX, but no longer gives the excerpt for pageX.
Jun 07, 2007
Damon Rand says:
Hi, We too lose our excerpts when we upgrade to the metadata2 plugin.. We ar...Hi,
We too lose our excerpts when we upgrade to the metadata2 plugin.. We are running Confluence 2.4.2 right now.
Damon.
Jun 14, 2007
Ross Sharrott says:
Is anyone having trouble with addition and sorting of decimals? I have a m...Is anyone having trouble with addition and sorting of decimals? I have a metadata report that pulls sales results from individual salesmen's pages.
The problem is that the addition sometimes returns really long decimals even though the inputs only go out to 4 digits.
Also, sorting on whole numbers seems fine, but decimals sometimes sort out of order.
Example:
Input: 4.416
Input: 3.45
Input: 2.16
Input: 2.45
Total: 17.875999999999998
I opened a Jira bug: meta-55
Anyone else encountered this problem?
Jun 18, 2007
Kerry Geiger says:
I'm trying to use the space-metadata-from macro on my dashboard by using the hel...I'm trying to use the space-metadata-from macro on my dashboard by using the helper: $helper.renderConfluenceMacro("")
and I'm getting a java.lang.NullPointerException error. Is there a way to do this?
It would change my life.
Jun 18, 2007
Andy Armstrong says:
The problem is that when you render a macro like that, it doesn't have the page ...The problem is that when you render a macro like that, it doesn't have the page context, so it can't determine the space for itself. Try doing:
#helper.renderConfluenceMacro("space-metadata-from:$spaceKey")I haven't tried this, but it should work.
Jun 19, 2007
Kerry Geiger says:
Thanks Andy. I found the the following renders correctly on the dashboard, it s...Thanks Andy.
I found the the following renders correctly on the dashboard, it seems like order of parameters was important:
$helper.renderConfluenceMacro("{metadata-from:spacekey:Page Name|metadata}")When I used space-metadata-from I got an error.
Thank you for your help and your plugin rocks!
Jun 25, 2007
Jacqueline Leslie says:
Hi, I am trying to create a template based on the metadata-list such as: {...Hi,
I am trying to create a template based on the metadata-list such as:
{metadata-list} ||Term | Enter the term| ||Acronymn | Enter the Acronymn| ||Description | Enter a Description| ||Source | Enter the Source | {metadata-list}But I get this:
{warning:title=Unable to show "metadata-list"}Attempted to set metadata value for null ContentEntityObject{warning}I am using 2.5.4.
Any ideas why this is occuring?
Thanks, Jackie.
Jul 05, 2007
David Aldrich says:
Hi, we have a problem with the space-hierarchy macro. Our Server Base URL ...Hi,
we have a problem with the space-hierarchy macro. Our Server Base URL is:
https://aaa.bb.cc.dd/confluence
But the URLs created by the space-hierarchy macro strip '/confluence' from the URL. For example:
https://aaa.bb.cc.dd/confluence/display/RsdInv
becomes
https://aaa.bb.cc.dd/display/RsdInv
So the links fail. Is this a bug in the macro or are we using it incorrectly?
David
Jul 10, 2007
chris m says:
Hi, we have exactly the same problem. chrisHi,
we have exactly the same problem.
chris
Jul 10, 2007
Andy Armstrong says:
It looks like it is a bug in the plugin. It uses: space.getUrlPath() to ...It looks like it is a bug in the plugin. It uses:
to generate the URL, but I guess that is only the relative URL from the root of the site.
I'm on vacation for a month, but I'll look into this in August. Please report it as a bug in JIRA:
http://developer.atlassian.com/jira/browse/META
Thanks,
Jul 10, 2007
David Aldrich says:
Thanks. Raised in Jira as META-62 'Space-hierarchy macro generates incorrect url...Thanks. Raised in Jira as META-62 'Space-hierarchy macro generates incorrect url':
http://developer.atlassian.com/jira/browse/META-62
Aug 10, 2007
Imtiaz B Syed says:
For those who are having problem please take the updated jar from the attachment...For those who are having problem please take the updated jar from the attachment Metadata2.jar
Aug 17, 2007
Joey Potter says:
Hi, the Metadata2.jar works fine for the space hierarchy in the breadcrumbs. It...Hi,
the Metadata2.jar works fine for the space hierarchy in the breadcrumbs. It fails, however to handle the page hierarchy correctly. From the links of the pages the last part is still stripped off of the Server Base URL.
Am I doing something wrong or is this another bug?
Best Regards,
Joey
Sep 10, 2007
David Aldrich says:
Hi Imtiaz Your update fixes our problem; thanks. Please will you arrange for th...Hi Imtiaz
Your update fixes our problem; thanks. Please will you arrange for the fix to be merged into the official release?
David
Jul 09, 2007
sunshine says:
Support for hierarchical spaces is just what the doctor ordered. A couple of con...Support for hierarchical spaces is just what the doctor ordered. A couple of concerns, though:
1. Implementing them via metadata within markup makes space creation harder (I have to remember to put the markup in and what the parent's key is). This can cause problems if space creation is decentralized among non-tech users.
2. Implementing them via metadata within markup means a space can get lost if someone edits the markup and deletes the metadata.
This may just be a long-winded way of petitioning Atlassian to make hierarchical spaces part of the product, but does anyone have any thoughts on these issues?
Jul 10, 2007
Andy Armstrong says:
I agree with your concerns. My feeling was that I was tired of waiting for Atlas...I agree with your concerns. My feeling was that I was tired of waiting for Atlassian to implement the feature, since they've been quite clear so far that they don't like the idea:
http://jira.atlassian.com/browse/CONF-1095
We desperately wanted it as our Wiki is growing exponentially, so this was the quickest way for me to build it.
When I next get some time to work on the plugin, I was hoping to make the hierarchy information be editable from the space admin page, so that you wouldn't have to do it through Wiki syntax. This is for both the reasons you list above. Would that be satisfactory for you?
Thanks,
Aug 29, 2007
David Dembo says:
If I may suggest a slight variation on this idea - allow administrators to speci...If I may suggest a slight variation on this idea - allow administrators to specify (via the plug-in's Configure link in Global Administration) which users/groups are allowed to alter a space's place in the site's hierarchy (which could be done via the Space Admin section and/or the Global Administration page).
With this approach it allows control of the site's hierarchy to be separated from administration of other aspects of the space - e.g. Joe Bloggs can manage the content within a Products space, without the web design team waking up in a cold sweat worrying about whether or not he's going to break the company web site.
It'd also be nice to have a separate permission (configurable in the same manner described above) for other space metadata - e.g. Joe Bloggs can't break the site's hierarchy, but he can add/remove custom fields to his space to his heart's content.
While I'm at it - a couple more ideas for consideration:
This would allow users to be given edit access to pages that might otherwise have to be restricted to ensure the integrity of important metadata fields. A toggle to show/hide 'internal' metadata would also be fantastic.
Jul 17, 2007
Hodicska Gergely says:
Hi all, I am newbie to Confluence. I read about the metadata plugin, and it s...Hi all,
I am newbie to Confluence. I read about the metadata plugin, and it seems very interesting. I have to control a documentation project and I tought that it would be great to set a metadata with the date of the review, anf then to create a report which lists the pages where the last changed date is bigger than the date of the review (or where this is not presented).
Is it possible with metedata plugin, or is there any easier solution for this task?
Thanks everyone in advance.
Best regards,
Felhő
Jul 19, 2007
Stefan says:
Is it possible to report all pages with a specific label and export them e.g. to...Is it possible to report all pages with a specific label and export them e.g. to pdf like it is possible in the "Browse Space -> Export Space" section ?
May 20, 2008
Helene says:
Stefan - Did you find a solution to this? I don't see a reply here. I am ...Stefan - Did you find a solution to this? I don't see a reply here.
I am looking for similar functionality and have not yet found a good solution. Anything you can tell me would be much appreciated!
Jul 27, 2007
Britt Treece says:
I want to limit the spaces-report to global spaces only. Is there a way to do t...I want to limit the spaces-report to global spaces only. Is there a way to do this?
Aug 15, 2007
Joey Potter says:
Hi, I can't find a way to display the description provided for the space by the...Hi,
I can't find a way to display the description provided for the space by the space admin using the spaces-report macro. I want to avoid having the space admin provide the description in the space details, and another one using the spaces-metadata macro somewhere in the page. Is there a way use the description from the space details?
Thanks everyone in advance.
Best regards,
Joey
Aug 22, 2007
Simeon Hopkins says:
Hi, When using the Unable to render macro: Required parameter "0" not provided ...Hi,
When using the
{spaces-report:Space,Owner,Purpose,Last Changed By,Last Time Changed|sort=Last Time Changed desc}what exactly do "Last Changed By" and "Last Time Changed" report? I have tried this example creating metadata for "owner" and "Purpose" and these report correctly. "Last Changed By" and "Last Time Changed" provide a name and a date but it is not clear what they mean. They are not the last time any page in the space was edited and by whom, they are not when the space was created and they are not when the details of the space were last changed using space admin. So what are they?
Best Regards
Simeon
Aug 26, 2007
Stuart Gilberd says:
Does anyone have any performance suggestions when using this plugin? Any c...Does anyone have any performance suggestions when using this plugin? Any caches we should be watching? We use it extensively on our wiki and pages that use it in any reasonable capacity are much slower than others.
Our database has all the recommended Indexes on it and when our DBA profiled the database requests related to a page and only a small percentage of time was spent in the database - a lot of the time was plugin + confluence processing the page.
We recently upgraded our wiki server in the hope that we would gain big performance gains - unfortunately the gains weren't huge. Our current server is a dual 4 core 2.66GHz server with 16GB of RAM.
Aug 27, 2007
Ki Alam says:
Is it possible to access metadata via bean shell scripts? Does someone have a si...Is it possible to access metadata via bean shell scripts? Does someone have a simple example? thanks!
Aug 29, 2007
David Dembo says:
JIRA seems to be having a fit at the moment so I can't see if there's an issue a...JIRA seems to be having a fit at the moment so I can't see if there's an issue already logged for this or not, but has anyone else noticed any problems with the {space-hierarchy} macro? The space= parameter doesn't appear to work. I've also tried spaceKey, spacekey, and just a value without success. As an example, say you have 4 spaces in the following hierarchy:
In Space 1, {space-hierarchy} returns the full hierarchy as expected. However, {space-hierarchy:space=S3} also returns the full hierarchy from Space 1 downwards.
In space 2, {space-hierarchy} returns only Space 2 as expected. However, {space-hierarchy:space=S1} also returns only Space 2 and not the full hierarchy.
I've also tried rebuilding the search index without any success.
Oct 11, 2007
Bryan Landerman says:
I'm noticing the same issue. Andy...any ETA on a fix for this?I'm noticing the same issue. Andy...any ETA on a fix for this?
Aug 31, 2007
Sander van den Berg says:
I have a problem with the space-hierarchy macro. I did something wrong (made par...I have a problem with the space-hierarchy macro. I did something wrong (made parent space same as current space). Now on every page with the space-hierarchy macro included, the page content is not visible anymore (only a header, but no buttons). In preview mode the macro gives the following error:
I already restarted Confluence, disabled/enabled and uninstalled/installed the plugin, but it doesn't help...
Does anybody have tips to solve this?
Sep 18, 2007
David Dembo says:
Hi, I've got this same problem - however, I have not done anything like accident...Hi, I've got this same problem - however, I have not done anything like accidentally making a space its own parent etc. I double and triple-checked each version of these pages and I'm 100% certain of this - I just set up a hierarchy from scratch (being careful not to make errors) and updated the breadcrumbs as per the instructions above.
I've created a bug report (META-70).
Edit: To clarify, this is on a separate installation to the one that formed the basis of my previous comment.
Oct 17, 2007
Bryan Landerman says:
I am also seeing this issue intermittently. I'm using the space-breadcrumbs mac...I am also seeing this issue intermittently. I'm using the space-breadcrumbs macro and every now and then I'll get "Error formatting macro: space-breadcrumbs: java.lang.StackOverflowError" in place of the breadcrumbs. It eventually goes away but we lose navigation during that time. Any idea why this is happening?
Sep 21, 2007
James Mortimer says:
Anybody wanting to see a 'NOT' implemented in the metadata-report labels paramet...Anybody wanting to see a 'NOT' implemented in the metadata-report labels parameter for this plugin, as one of the first enhancements whenever development picks up again, please vote for this request:
http://developer.atlassian.com/jira/browse/META-48
Oct 01, 2007
Carlos Caballero says:
Andy, I am trying to use the user macro, to list users and their profile informa...Andy, I am trying to use the user macro, to list users and their profile information. The report takes a LONG time to run, which is understandable, but when it comes back it shows me only the first 500 of a couple of thousand users. My questions:
Cheers, and thanks for a GREAT contribution!
Oct 25, 2007
Thomas Drevon says:
I'm trying to write a velocity macro that invokes the [metadata-from] macro on a...I'm trying to write a velocity macro that invokes the [metadata-from] macro on a page, but $action.getGlobalHelper().renderConfluenceMacro("[metadata-from:MyData]") seems to render in the wrong context. Is there a way to get a map of the metadata for a page using the java api from velocity? I'm thinking along the lines of:
#set( $metadataMap = $content.getMetaDataForPage())
Dec 05, 2007
Appan Ponnappan says:
We have created additional user fields (e.g. Role) in the user profile by using ...We have created additional user fields (e.g. Role) in the user profile by using the "user Information" plugin. But when we try to use these fields in the users-report macro, nothing is getting listed, even though the document syas that: "... regular users the metadata is fetched from their profile.".
We are using the macro as:
{users-report:User,Role}Is this a bug in the plugin?
Dec 05, 2007
Andy Armstrong says:
I've never seen the "User Information" plugin before, so it is definitely not a ...I've never seen the "User Information" plugin before, so it is definitely not a bug. I think it is just that this plugin uses a different mechanism for adding metadata than the Metadata Plugin. Please submit a feature request here if you'd like to see this supported:
http://developer.atlassian.com/jira/browse/META
Thanks,
Dec 06, 2007
David Dembo says:
Suggestion - can the Metadata+Plugin+2 and Metadata+Plugin pages be merged into ...Suggestion - can the Metadata+Plugin+2 and Metadata+Plugin pages be merged into a single page?
At the moment, if I want to refer to the list of 'internal metadata' and look at the syntax for {metadata-report} for example, I have to switch between two separate pages that are both pretty slow to load. To me it doesn't make sense to have macros that are part of a plug-in documented on a separate page. It also results in comments being split over 2 separate pages, etc.
Come to think of it, is there any reason why the original Metadata Plugin is still available for download via the repository?
Dec 18, 2007
James Mortimer says:
Please vote for this issue: metadata-list is broken when it's not the first m...Please vote for this issue:
http://developer.atlassian.com/jira/browse/META-64
Jan 23, 2008
Jeff Williams says:
I keep seeing this in my logs: Plugin module org.andya.confluence.plugins.meta...I keep seeing this in my logs:
Plugin module org.andya.confluence.plugins.metadata:metadata-extractor is incompatible with this version of Confluence. You will need to upgrade to a newer version of the Metadata Plugin plugin. java.lang.NoSuchMethodError: org.apache.lucene.document.Field.Text(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/lucene/document/Field;
As you may guess, metadata isn't working as well. Anyone see this before?
Jan 23, 2008
David Dembo says:
I was just digging through the 'Plugins' section of our Global Administration Co...I was just digging through the 'Plugins' section of our Global Administration Console, and noticed that the Metadata plugin has a {relative-link} macro which doesn't seem to be documented anywhere. The description simply says "Macro allowing a relative link to be specified." What exactly does this macro do???
Jan 31, 2008
john futcher says:
there is a little conflict above as to which way round the Parent-space macro sh...there is a little conflict above as to which way round the Parent-space macro should be used...
under Hierarchical spaces it says
For example, to specify that the current space is a parent of the dev space, you would add this to the home page:
{parent-space}dev{parent-space}i.e you tell the parents who their children are.
but under Setting up hierarchical spaces it says
Add parent metadata to every other space
Now you should go through all of your existing spaces and attach the parent space information to every page. For each space, find the space key of the parent, and then change the home page of the space to include:
{parent-space}PARENT_SPACE_KEY{parent-space}i.e. you tell the children who their parents are
so which way round is it?
Jan 31, 2008
Andy Armstrong says:
Hi John, Sorry about the confusion. The correct answer is that you tell a space...Hi John,
Sorry about the confusion. The correct answer is that you tell a space who its parent is, which is why the macro is called parent-space. This is because every space has only one parent, but a space can have many child spaces.
I'll fix the incorrect description.
Thanks,
Jan 31, 2008
john futcher says:
thanks for sorting out the ambiguity. the next question is, where i have a larg...thanks for sorting out the ambiguity.
the next question is, where i have a large number of spaces that i want to group under a single space and then show an index of them. is there any way of restriction a hierarchy report to just those starting "A", "B" etc.
My alternative is to create 26 spaces - A, B, C etc, and make them the children of my index space,and the parents of the individual spaces according to their initial letter, but that's a bit of a hassle.
any thoughts??
Jan 31, 2008
john futcher says:
giving a Confluence Extensions method an experiment. but whilst t...giving a
Is there any way of suppressing the actual J space in the hierarchy report, i.e. just list "J"'s children?
Jan 31, 2008
David Dembo says:
You could try using the Reporting Plugin to rig something up - from memory you c...You could try using the Reporting Plugin to rig something up - from memory you can use 'data:<metadata>' to grab metadata, and I seem to remember the hierarchy data being stored under the metadata key "Parent" or similar.
One piece of advice - be very careful using these hierarchical spaces macros/etc in a production environment... while testing I found that they were very prone to breaking navigation - permanently - even after uninstalling/reinstalling the plugin.
I ended up hard-coding the hierarchy within the <content tag="breadcrumbs"> tags of the space & page layouts... e.g. if current space is space1, space2 or space3, breadcrumbs = hard-coded > space > ancestry > page, etc... a practical option in our case since our hierarchy is quite simple. If you're game enough to play around with $page.ancestry you can even replicate the 'suppress home page link' functionality.
PS - wrap macro examples in a {noformat} macro.
Feb 12, 2008
Jeff Branc says:
i just started using this with Conf 2.7.1. The space hierarchy macro worked onc...i just started using this with Conf 2.7.1. The space hierarchy macro worked once. then i tried to do the root thing and now all calls to space-hierarchy produce a System Error and prevent any access at all to my space, which is quite a problem to have.
Cause:
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:626)
there was nothing in the stack trace that seemed to point your way, but if i hit the 'back' button and remove the hierarchy tag, its all good.
any ideas? maybe i'm using it wrong. there are some points of abiguity:
what qualifies something to be a root space? is it any space that refers to itself as the spacekey in parent-space macro?
its ok for a space to show the hierarchy starting from itself on down without being the root, right? that seemed to be the point when things when south.
finally:
any thoughts on extending this to pages in a space? another key point where Confluence falls down is providing easy access/navigation to pages in a given site.
additional note: this forum discussion may be helpful:
http://forum.springframework.org/showthread.php?t=20943
Feb 13, 2008
David Dembo says:
any thoughts on extending this to pages in a space? another key point where Conf...What do you mean exactly? Each page has a list of children at the bottom of it by default, and there is an expandable/collapsible tree to navigate the full hierarchy in the 'Browse Space' section... or have I completely missed your point?
Regarding the hierarchical spaces - as I mentioned above, it's extremely buggy... your issue with the macro working once and then erroring every subsequent time is exactly what I experienced. From the nature of the issue it seems almost as if one or more of the hierarchical spaces macros are mangling an object's properties or attributes somewhere... which would probably explain why it remains permanently broken even after restarting Confluence and disabling/re-enabling the plug-in.
Feb 13, 2008
Jeff Branc says:
i guess i was hoping this would work, because without it things are just....conf...i guess i was hoping this would work, because without it things are just....confusing. i'm very fearful of how the OOB usability issues will affect adoption as i prepare this to go company-wide. Thanks for the tip - I suppose now I'm going to have my hands full with lunch-n-learns
regarding the pages: a (by default) hidden list of child pages at the bottom of a very long page != navigation. Also clicking Browse Space...Pages...Expand List of Pages...Click Page does not either. Left Nav theme is close, but needs a permanent hierarchy of space pages in order for folks to know about and navigate to pages without willfully hunting around (and needs to have its menus expanded by default - relying on the curiosity of others to click around is a good way to frustrate them).
i know i'm not alone in this because nearly every confluence site i see has done something manual/custom to let folks navigate around. Heck even the default Demonstration Space has a manual list of links on the home page! that to me is not scalable/maintainable. sorry for the rant - this is my current source of pain
Feb 13, 2008
David Dembo says:
Yeah, we've got plans for a major theme overhaul in the works too, and we'll be ...Yeah, we've got plans for a major theme overhaul in the works too, and we'll be re-designing the navigation from scratch... in the meantime I played around with the built-in breadcrumbs to make things slightly better.
In page.vmd and space.vmd you'll see a set of <content tag="breadcrumbs"></content> tags. The stuff in here is used to populate the levels of the breadcrumbs. If you're prepared to mess around with a page's ancestry, you can basically insert/remove breadcrumb items and still make use of things like the expand ellipsis functions for long trails.
I'll paste the code from page.vmd as an example - note that I've just made some changes to remove site-specific information and haven't tested the below, but haven't changed anything that should affect functionality.
Also, you could probably improve the code somewhat by using a Map rather than a List (e.g. spacekey:parentspacekey) and using #foreach to render a link until it finds a space without a parent - I whipped up the below fairly quickly and it was never intended to be a long-term solution, so didn't really worry too greatly about things like ease of scalability.
Hope it helps.
<content tag="breadcrumbs"> <!--<-->script language="JavaScript"> function showBreadcrumbsEllipsis() { document.getElementById('breadcrumbsEllipsis').style.display = 'none'; document.getElementById('breadcrumbsExpansion').style.display = 'inline'; } </script> ## PREFIX THE BREADCRUMBS WITH A STATIC LINK (E.G. REPLACE 'DASHBOARD' WITH A 'HOME' SPACE, ETC) <a href="$req.contextPath/display/homespacekey">'Home' Space Description</a> > ## DEFINE HIERARCHY INFORMATION #set ($space1children = ["child1", "child2", "child3", "child4"]) #set ($space2children = ["child5", "child6", "child7", "child8"]) #if ($space.key) #if ($helper.spaceType == "personal") #peopledirectorylink() > <a href="$req.contextPath/display/~$!generalUtil.doubleUrlEncode($helper.space.creatorName)">$webwork.htmlEncode($helper.space.name)</a> > #else #if ($space1children.contains($helper.spaceKey)) <a href="$req.contextPath/display/space1key">Space 1 Description</a> > #elseif ($space1children.contains($helper.spaceKey)) <a href="$req.contextPath/display/space2key">Space 2 Description</a> > #end <a href="$req.contextPath/display/$space.key">$webwork.htmlEncode($space.name)</a> > #end ## THIS MODIFIES THE PAGE'S ACTUAL ANCESTRY - SO BE CAREFUL! #set ($ancestry = $page.ancestors) #if ($ancestry.size()>0) #if ($ancestry.get(0).isHomePage()) ## REMOVE 'HOME' FROM BREADCRUMBS #set ($page.ancestors = $page.ancestors.remove(0)) #end #end #if ($postingYear) $postingYear > #end #if ($postingMonth) <a href="$req.contextPath/display/$space.key/$postingYear/$postingMonthNumeric">$postingMonth</a> > #end #if ($postingDayOfMonth) <a href="$req.contextPath/display/$space.key/$postingDay/">$postingDayOfMonth</a> > #end #if ($helper.page.title) #if ($postingDay) <a href="$req.contextPath$helper.page.urlPath">$textUtil.htmlEncode($helper.page.title)</a> #else $helper.action.generateAncestryBreadcrumbs()<a href="$req.contextPath$helper.page.urlPath">$textUtil.htmlEncode($helper.page.title)</a> #end #end #if ($viewingPageInfo) > <a href="$req.contextPath/pages/pageinfo.action?pageId=$helper.page.id">Information</a> #end #if (!$viewpagebreadcrumb) ##if ($helper.getText("action.name") != "View") #if ($action.getActionName($action.getClass().getName()) != "View") ##> $helper.getText("action.name") > $action.getActionName($action.getClass().getName()) #end #end ## THIS RETURNS THE ANCESTRY BACK TO ITS PREVIOUS STATE AFTER GENERATING THE BREADCRUMBS #if ($ancestry != $page.ancestors) #set ($page.ancestors = $ancestry) #end #else $action.getText("action.error") #end </content>Feb 13, 2008
Chainsaw says:
I use version 2.1.0 of the metadata plugin with confluence 2.7 and have been att...I use version 2.1.0 of the metadata plugin with confluence 2.7 and have been attempting to use the heirarchial spaces.
When I apply the alteration to the main layout template as instructed, the /confluence is stripped from the URL (my url is http://machinename/confluence). I notice above that using the metadata2.jar fixed this, but if i did this, wouldn't i be going backwards?
How have people fixed this?
Feb 16, 2008
Andrey says:
Dead loop with hierarchical spaces. We are using Confluence 2.6. I set up spaces...Dead loop with hierarchical spaces.
We are using Confluence 2.6.
I set up spaces hierarchy - placed parent macro into home pages of all second-level spaces and so on.
Then I changed code for breadcrubmbs as in recipte.
Everything had worked well.
After that one of our users for some reason moved home page of second-level space into root space
As I understand, that caused dead loop inside metadata plugin.
Result was nearly completely unfunctional wiki site (syserror on home page, some other pages which uses metadata dysplayed as empty).
That was undertandable what is wrong - I had to remove parent metadata from parent page. But with plugin on I cannot edit the page (got the syserror), and with plugin off is seems impossible to change the space metadata.
I had to fix that fast so I just created new space, moved into it all root space pages except one can was from second level space. After that I deleted old root space. And repeat all the process (because I did not want to change parent marco in all spaces and cannot change space key in newly created 'temp root' space).
Ok, everything is up and running, but now I am very uneasy about that plugin.
Is there some fix for this dead-loop problem?
Except edit deny for root space homepage.
Mar 10, 2008
William Lubelski says:
Hi, If this already works and I just coundn't figure it out then I appologize. ...Hi, If this already works and I just coundn't figure it out then I appologize.
Here goes. I would LOVE the ability to generate reports with boolean logic for the labels. As far as I can tell there's commas for ANY (i.e. OR) and + for AND, but I would love a - for NOT.
Example: I will break down item pages by catagories, so it'll be ROOT PAGE > CATAGORY PAGE > ITEM PAGE. What I would like to be able to do is have a report of just the items and not the catagories by filtering the list as all descendants of ROOT PAGE except the pages labeled as catagory.
Ciao,
Will
Mar 13, 2008
Valeria Köllhofer says:
How may adress the metadata from my IDE? I'm trying to write a plugin and I need...How may adress the metadata from my IDE? I'm trying to write a plugin and I need to access the metadata of a page.
Mar 27, 2008
Ken Yagen says:
Is the attachments-report macro supposed to show every version of an attachment?...Is the attachments-report macro supposed to show every version of an attachment? We only want to show the last version - is there a way to filter this?
Jan 15
Thomas Drevon says:
Did you solve this? I just ran into this same problem myself, and would be happy...Did you solve this? I just ran into this same problem myself, and would be happy to hear about your solution!
Apr 18, 2008
Chainsaw says:
I'm using LDAP authentication external to confluence and the users-report macro....I'm using LDAP authentication external to confluence and the users-report macro.
The code is quite simple, only
{users-report:User,Location,Email,Extension,Subject Area}But when I save this page, the page will take 10 minutes to complete and will retrieve all of the users from the ldap (3000 or so for our country),
Is there a way to limit to report to those only in the people directory? For us that's 200.
Apr 29, 2008
Rob Jones says:
Can this plugin be used to set the order spaces are displayed on the Dashboard? ...Can this plugin be used to set the order spaces are displayed on the Dashboard?
Rob
May 04, 2008
Roberto Dominguez says:
Hey Andy, With some advice from Alain Moran, I came up with this wrapper to dea...Hey Andy,
With some advice from Alain Moran, I came up with this wrapper to deal with the indexing in the same binary (pre and post 2.7).
May 05, 2008
Colin Ho says:
Does the blog-posts-report macro support filtering by label, similar to the way ...Does the blog-posts-report macro support filtering by label, similar to the way the metadata-report macro does it?
May 08, 2008
Gil César Faria says:
Hi, there is any way to make a restriction within the macros that render report...Hi,
there is any way to make a restriction within the macros that render reports based on metadata information?
Something like "I want to get only the pages which have a certain metadata value within all pages ...", like this:
{metadata-report:Page,Author(s),Version,LOC|label=+codegeist,|totals=LOC|sort=LOC desc|metadata-values=+Author(s)=Andy Armstrong,+Version=2.1}
which mean "create a report from all pages which metadata Author(s) have value Andy Armstrong AND metadata Version have value 2.1"
Jun 04, 2008
Matt Bovett says:
Is there any possible way I can make the "Comments" metadata appear as just a nu...Is there any possible way I can make the "Comments" metadata appear as just a number, rather than:
...etc
So instead, just:
If not, can the plugin be modified to either allow this or make this the default behavior?
It would be easy to add "comment(s)" with CSS...
#whatever confluenceTd+td+td+td:after { content: "comments(s)"; }
(however many +td's are needed)
Jul 01, 2008
Thomas Drevon says:
I'm looking into the possibility of extending this plugin so it can return metad...I'm looking into the possibility of extending this plugin so it can return metadata for page(s) in xml format. I could then use xslt to format the output as I want. The xml might look like this:
Has anyone done anything similar? Where would be the best place to start?
Jul 01, 2008
Thomas Drevon says:
I figured it out. If anyone else is interested, I'll be happy to provide the cod...I figured it out. If anyone else is interested, I'll be happy to provide the code!
BTW: Thanks to you metadata people for writing clean code that's easy to read and extend upon
Jul 01, 2008
Stefan says:
Hi Thomas, i am interested how this works. Can you provide a sample? Thanks...Hi Thomas,
i am interested how this works.
Can you provide a sample?
Thanks!
Jul 03, 2008
Thomas Drevon says:
Right! This is what you need to do: Check out the latest version of the pl...Right! This is what you need to do:
Disclaimer: This is just a quick solution to what I needed. It's not an ideal solution for several reasons, but it works. Maybe, if the authors of the plugin approve, this could be included in the actual metadata plugin?
Jul 08, 2008
Rosie Piller says:
Hi, I'm using Confluence 2.8.1 (Evaluation license) and I'm setting up hierarch...Hi,
I'm using Confluence 2.8.1 (Evaluation license) and I'm setting up hierarchical spaces. It's going fine so far.
A few questions:
1) Do you have any guidelines to suggest regarding when I should create hierarchical spaces and when I should just stick with hierarchical pages?
2) Is there a way to move the functionality of the Dashboard to the new root of my hierarchical spaces?
3) Should I expect buggy behavior (as reported above in several comments as recently as Feb 13)?
4) Regarding the space-breadcrumbs macro, I see that it has to be manually installed into the main site velocity template. The instructions talk about editing the Main Layout and replacing one breadcrumbs reference with another. Is that what is meant by manually installing the macro, or is that what you do *after* you've manually installed the macro?
Thanks!
Rosie
Jul 08, 2008
Rosie Piller says:
Another question: 5) With the hierarchical spaces, do you lose the toolbar that...Another question:
5) With the hierarchical spaces, do you lose the toolbar that otherwise gets displayed on the left in a space's home page, allowing you to perform Page Operations, Browse Space, Add Content, etc.? How can I add that back in?
Thanks!
Jul 08, 2008
Rosie Piller says:
Figured this one out - changed the theme.Figured this one out - changed the theme.
Jul 10, 2008
Mike Burr says:
I'm trying to pull a piece of metadata across spaces and I seem to be having dif...I'm trying to pull a piece of metadata across spaces and I seem to be having difficulty. In the page where I define the metadata, I have:
{space-metadata:system maintenance level}NONE{space-metadata}
and I am trying to retrieve it like this:
{space-metadata-from:GENDOC:system maintenance level}
Am I doing something obvious wrong? Thanks for any help on this
Jul 19, 2008
Appan Ponnappan says:
When the metadata name consists of more than one word - example: Product Version...When the metadata name consists of more than one word - example: Product Version, the search using the metadata field name does not work. I am trying as: Product Version:<some text>. I guess it is taking only the Version as the field name. How does specify the search text, in this case?
Jul 19, 2008
Appan Ponnappan says:
Escaping the space with backslash as in: Product\ Version:<some text> work...Escaping the space with backslash as in: Product\ Version:<some text> worked. But the search results are showing the raw form in which metadata is stored, but there is already a bug created for it.
Jul 28, 2008
Nick Fishwick says:
Hi, I am trying to use the Space-metadata in conjunction with the Space-Reporte...Hi, I am trying to use the Space-metadata in conjunction with the
Space-Reporter, and I cannot work out the syntax to access the space-metadata from the Space-Supplier object.
{report-block} {space-reporter:space=@global} {text-filter:space:data:PM|include=.*robert.*} {space-reporter} {report-body} _DO SOMETHING HERE_ {report-body} {report-block}Can anyone help me with this?
Cheers Nick...
Sep 14, 2008
Appan Ponnappan says:
How do I get a space meta-data if I am not in that space & I need to get the...How do I get a space meta-data if I am not in that space & I need to get the value given the meta-data name? {space-metadata-from} macro does not seem to take the space key parameter. How do I get all the child spaces of a given space? I do not want the whole space hierarchy.
Oct 24, 2008
Maurice Albarone says:
Is there a SQL equivalent to metadata-from? We have a need to extract metadata...Is there a SQL equivalent to metadata-from?
We have a need to extract metadata via SQL. This were looking in the os_propertyentry table for the values. This worked fine until we started using Scaffolding. To keep the Scaffolding form values as metadata we used get-data on our form pages and the metadata-from correctly finds the value. Now the values in the os_propertyentry table contain the get-data markup rather than the actual value (ex. {get-data:name=it_owner}{get-data} rather than Joe). My question is this: is there some way to get the value via SQL? Is there a SQL equivalent to metadata-from? Or do I have to find another way?
Oct 24, 2008
David Peterson [CustomWare] says:
The raw Scaffolding data is stored in XML format in os_propertyentry also. Look ...The raw Scaffolding data is stored in XML format in os_propertyentry also. Look for <metadata> tags.
Oct 26, 2008
Maurice Albarone says:
Oh, it is stuffed in there, isn't it. Thanks.Oh, it is stuffed in there, isn't it. Thanks.
Dec 13, 2008
Yao Ge says:
Metadata search in 2.10 seems broken, I can not search on things like manager:an...Metadata search in 2.10 seems broken, I can not search on things like manager:andy like I can in 2.9.x. Anybody else have the same problem?
Jan 07
Thomas Drevon says:
I'm trying to use the attachments-report from inside a news item in order to dis...I'm trying to use the attachments-report from inside a news item in order to display the attached pictures. I get the error message "Unable to render macro: java.lang.NullPointerException", and my catalina.out says:
java.lang.NullPointerException
at org.andya.confluence.plugins.metadata.AttachmentsReportMacro.getMatchingAttachments(AttachmentsReportMacro.java:87)
at org.andya.confluence.plugins.metadata.AttachmentsReportMacro.execute(AttachmentsReportMacro.java:67)
at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
at com.atlassian.renderer.v2.components.MacroRendererComponent.executeMacro(MacroRendererComponent.java:297)
at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:255)
at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:151)
at com.atlassian.renderer.v2.components.WikiContentRendererHandler.handleMacro(WikiContentRendererHandler.java:18)
at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:126)
at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:114)
at com.atlassian.renderer.v2.WikiMarkupParser.handlePotentialMacro(WikiMarkupParser.java:99)
at com.atlassian.renderer.v2.WikiMarkupParser.parse(WikiMarkupParser.java:60)
at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:47)
at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:53)
at com.atlassian.renderer.v2.plugin.PluggableV2Renderer.render(PluggableV2Renderer.java:30)
at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:57)
at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
Is the attachments-report macro only expected to work on a page (as opposed to a news item)? Or is this a bug? Or have I somehow messed up my testing/environment?
Alternatively, are there perhaps any other macros out there which I can use to achieve this?
Jan 07
Thomas Drevon says:
Couldn't wait out an answer, so I came up with a fix: Download the plugin, v2....Couldn't wait out an answer, so I came up with a fix:
with:
Et voila!
(no guarantees that this doesn't brake anything else, though
Feb 19
Morten Sorensen says:
Is there any way to generate metadata using an foreach loop? I have a list of w...Is there any way to generate metadata using an foreach loop?
I have a list of web services (WS1, WS2, WS3, WS4) and I would like to create metadata like so:
{space-metadata-list} || ws-url-WS1 | http://server:port/services/WS1?wsdl | || ws-url-WS2 | http://server:port/services/WS2?wsdl | || ws-url-WS3 | http://server:port/services/WS3?wsdl | || ws-url-WS4 | http://server:port/services/WS4?wsdl | {space-metadata-list}I have tried using the velocity-render macro in the Replace and Render plugin - but that seems to return HTML; i.e. one cannot have Wiki Markup rendered.
This will list the URLs:
{replace-and-render} {replace-body} {velocity-render} #foreach($a in [%ws-list%]) %ws-prefix%$a%ws-suffix%<br /> #end {velocity-render} {replace-body} {replace-item:%ws-list%}'WS1','WS2','WS3','WS4'{replace-item} {replace-item:%ws-prefix%}http://server:port/services/{replace-item} {replace-item:%ws-suffix%}?wsdl{replace-item} {replace-and-render}... but what I really want is this (which does not work):
{replace-and-render} {replace-body} {space-metadata-list} {velocity-render} #foreach($ws-name in [%ws-list%]) || ws-url-$ws-name | %ws-prefix%$ws-name%ws-suffix% | #end {velocity-render} {space-metadata-list} {replace-body} {replace-item:%ws-list%}'WS1','WS2','WS3','WS4'{replace-item} {replace-item:%ws-prefix%}http://server:port/services/{replace-item} {replace-item:%ws-suffix%}?wsdl{replace-item} {replace-and-render}Is what I want possible using another approach or plugin?
Mar 05
Christian Kuehn says:
I try to sort pages according to their creation time and the list is simply sort...I try to sort pages according to their creation time and the list is simply sorted wrong. is the problem a bug or is the problem the wrong usage
{checklist-wiki:Created}{metadata-from:Time Created|sort=created desc}{checklist-wiki}Mar 23
Remo Pistor says:
The code in Confluence's main site velocity template has changed in ver. 2.10 so...The code in Confluence's main site velocity template has changed in ver. 2.10 so the instructions on how to manually install the space-breadcrumbs macro seems to no longer be relevent for the newest version. Could you give an update of the code changes that need to be made to the Main Layout template.
Thanks
Apr 03
Ville Valtasaari says:
It would be nice if the space hierarchy could be set up using space labels (f.ex...It would be nice if the space hierarchy could be set up using space labels (f.ex.) rather than putting anything that users can mess up in the space home page content.
r. Ville
Apr 14
Bill Wheatley says:
With confluence 2.10 and metadata 2.1.0 i am getting errors when i try to hit a ...With confluence 2.10 and metadata 2.1.0 i am getting errors when i try to hit a page with metadata
Cause
java.lang.RuntimeException: Error rendering template for decorator root
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
caused by: java.lang.RuntimeException: Error rendering template for decorator page
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getDisplayableLabel' in class com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel threw exception com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content @ templates/leftnavigation/page.vmd[50,352]
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
caused by: com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:132)
caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getLatestVersionsOfAttachments' in class com.atlassian.confluence.pages.Page threw exception net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection @ getRenderedContent[1,15]
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
caused by: net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection
at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:201)
caused by: net.sf.hibernate.HibernateException: collection was evicted
at net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3305)
Stack Trace:[hide]java.lang.RuntimeException: Error rendering template for decorator root
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.Template.merge(Template.java:254)
at com.opensymphony.webwork.dispatcher.VelocityResult.doExecute(VelocityResult.java:91)
at com.atlassian.xwork.results.ProfiledVelocityResult.doExecute(ProfiledVelocityResult.java:21)
at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:116)
at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:263)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:187)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:55)
at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.security.interceptors.CaptchaInterceptor.intercept(CaptchaInterceptor.java:46)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.util.LoggingContextInterceptor.intercept(LoggingContextInterceptor.java:48)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.core.CancellingInterceptor.intercept(CancellingInterceptor.java:23)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:54)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.setup.webwork.BootstrapAwareInterceptor.intercept(BootstrapAwareInterceptor.java:26)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.pages.actions.CommentAwareInterceptor.intercept(CommentAwareInterceptor.java:43)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:108)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor.intercept(SpaceAwareInterceptor.java:67)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.core.actions.LastModifiedInterceptor.intercept(LastModifiedInterceptor.java:39)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.confluence.core.ConfluenceAutowireInterceptor.intercept(ConfluenceAutowireInterceptor.java:38)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.atlassian.xwork.interceptors.TransactionalInvocation.invokeAndHandleExceptions(TransactionalInvocation.java:72)
at com.atlassian.xwork.interceptors.TransactionalInvocation.invokeInTransaction(TransactionalInvocation.java:59)
at com.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:56)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
at com.atlassian.confluence.servlet.ConfluenceServletDispatcher.serviceAction(ConfluenceServletDispatcher.java:53)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.atlassian.confluence.servlet.simpledisplay.SimpleDisplayServlet.service(SimpleDisplayServlet.java:59)
at com.atlassian.confluence.servlet.SpringManagedServlet.service(SpringManagedServlet.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:153)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.jmx.JmxFilter.doFilter(JmxFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.web.filter.ThreadLocalCacheFilter.doFilter(ThreadLocalCacheFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.util.UserThreadLocalFilter.doFilter(UserThreadLocalFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:204)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:120)
at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.core.datetime.RequestTimeThreadLocalFilter.doFilter(RequestTimeThreadLocalFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:75)
at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
at com.atlassian.confluence.extra.webdav.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:43)
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:57)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException: Error rendering template for decorator page
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:194)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.Template.merge(Template.java:254)
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplateWithoutSwallowingErrors(VelocityUtils.java:58)
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:227)
... 156 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getDisplayableLabel' in class com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel threw exception com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content @ templates/leftnavigation/page.vmd[50,352]
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:203)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:294)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.Template.merge(Template.java:254)
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplateWithoutSwallowingErrors(VelocityUtils.java:58)
at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:227)
... 167 more
Caused by: com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:132)
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:118)
at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebFragmentHelper.renderVelocityFragment(ConfluenceWebFragmentHelper.java:57)
at com.atlassian.plugin.web.model.DefaultWebLabel.getDisplayableLabel(DefaultWebLabel.java:66)
at com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel.getDisplayableLabel(ConfluenceWebLabel.java:35)
at com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel.getDisplayableLabel(ConfluenceWebLabel.java:50)
at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:295)
at com.atlassian.confluence.velocity.introspection.AnnotationBoxingMethod.invoke(AnnotationBoxingMethod.java:28)
at com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:29)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:245)
... 176 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getLatestVersionsOfAttachments' in class com.atlassian.confluence.pages.Page threw exception net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection @ getRenderedContent[1,15]
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:203)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:294)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:356)
at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:228)
at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:126)
... 188 more
Caused by: net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection
at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:201)
at net.sf.hibernate.collection.PersistentCollection.read(PersistentCollection.java:71)
at net.sf.hibernate.collection.Bag.size(Bag.java:232)
at com.atlassian.confluence.core.ContentEntityObject.getLatestVersionsOfAttachments(ContentEntityObject.java:438)
at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:295)
at com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:29)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:245)
... 194 more
Caused by: net.sf.hibernate.HibernateException: collection was evicted
at net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3305)
at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:195)
... 203 more
Referer URL
http://tools.mediatemple.net/confluence/dashboard.action
Confluence Application Information
Build Information
buildNumber: 1518
upTime: 8 days, 1 hour, 37 minutes, 4 seconds
devMode: false
version: 2.10.2
home: /opt/confluence-data
Unique ID: 0x00000120A5A0E8A940CF8180AA0441DF8E03849011549B0EC249B001C9ECD26A
Server information
Application Server: Apache Tomcat/6.0.14
Servlet Version: 2.5
Database Dialect: com.atlassian.hibernate.dialect.MySQLDialect
Database Driver Name: com.mysql.jdbc.Driver
Database Driver Version: 3.1
Database Name: MySQL
Database Version: 5.1.33-community
Database Transaction Isolation: Repeatable read Database Latency: 1
Memory Information
Total Memory: 254 MB
Used Memory: 173 MB
Free Memory: 80 MB
System Information
userName: root
favouriteColour: Gamboge
time: 10:16:07
javaVm: Java HotSpot(TM) Client VM
operatingSystemArchitecture: i386
date: Tuesday, 14 Apr 2009
operatingSystem: Linux 2.6.9-023stab046.2-enterprise
jvmVersion: 1.0
userTimezone: PST
fileSystemEncoding: ANSI_X3.4-1968
jvmImplementationVersion: 1.5.0_06-b05
appServer: Apache Tomcat
javaVendor: Sun Microsystems Inc.
javaVersion: 1.5.0_06
javaRuntime: Java(TM) 2 Runtime Environment, Standard Edition
jvmVendor: Sun Microsystems Inc.
Cluster Information
Not clustered.
Plugins
Request
InformationURLhttp://tools.mediatemple.net/confluence/500page.jspURI/confluence/500page.jspContext Path/confluenceServlet Path/500page.jsp
Headers (Limited subset)hosttools.mediatemple.netx-forwarded-for192.168.206.6user-agentMozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8 FirePHP/0.2.4
Attributesjavax.servlet.forward.request_uri/confluence/display/new/Homejavax.servlet.forward.context_path/confluencejavax.servlet.forward.servlet_path/displayjavax.servlet.forward.path_info/500page.jspjavax.servlet.error.message
javax.servlet.error.exceptionjava.lang.RuntimeException: Error rendering template for decorator rootos_securityfilter_already_filteredtrue_sitemeshusing_streamfalsecom.atlassian.gzipfilter.org.tuckey.web.filters.urlrewrite.RuleMatchedtruejavax.servlet.error.request_uri/confluence/display/new/Homecom.atlassian.gzipfilter.GzipFilter_already_filteredtruejavax.servlet.error.status_code500sitemesh_filterappliedtruegzipMimeTypestext/.*,application/x-javascript,application/javascript,application/xml,application/xhtml+xmljavax.servlet.error.servlet_namesimple-displaywebwork.valueStackcom.opensymphony.xwork.util.OgnlValueStack@13850c7com.atlassian.confluence.web.ConfluenceJohnsonFilter_already_filteredtrueatlassian.core.seraph.original.url/display/new/Homeloginfilter.already.filteredtrueConfluence-Request-Time1239729359800javax.servlet.jsp.jspExceptionjava.lang.RuntimeException: Error rendering template for decorator rootsessioninview.FILTEREDtrue
Parameters (Limited subset)
Confluence User
bill
Apr 15
Remo Pistor says:
The code in Confluence's main site velocity template has changed in ver. 2.10 so...The code in Confluence's main site velocity template has changed in ver. 2.10 so the instructions on how to manually install the space-breadcrumbs macro seems to no longer be relevent for the newest version. This reference is no longer valid, there is no code that matches this in the main site velocity template:
Does anyone know how to manually install the space-breadcrumbs macro (update the code) to the Main Layout template for version 2.10 of confluence? It would be greatly appreciated.
Thanks
Apr 16
Ville Valtasaari says:
Are you using anything but the default theme? I'm not familiar with using the a...Are you using anything but the default theme?
I'm not familiar with using the administration section for that sort of thing, but the option doesn't seem to be available when using custom themes anyway. I'd suggest just making your own theme plugin. You could just make one that only replaces the default main.vmd with your own that only has that one change. It's a bit involved, I know, but that's what I'm planning to do once we start using the metadata plugin for organising spaces into hierarchies
Not much of a quick fix, I guess, but that's all I can think of off the top of my head.
r. Ville
Apr 16
Remo Pistor says:
Thanks Ville. I'm not using a custom theme, it's the default theme for Con...Thanks Ville. I'm not using a custom theme, it's the default theme for Confluence ver 2.10.
Here is an exerpt from the main layout template. As you can see, they've changed the portion of the code that needs to be replaced to get the breadcrumbs working.
Apr 22
Diane Sexton says:
Hi Remo, I just tried it on our eval Confluence v2.10.2 and it's very similar. ...Hi Remo,
I just tried it on our eval Confluence v2.10.2 and it's very similar.
Replace:
$!sitemeshPage.getProperty("page.breadcrumbs")with
Note : in our production confluence v2.9.1 the breadcrumbs code is the same as 2.10, so I don't know when it was changed.
HTH
Diane
Jun 10
Angela Burrows says:
We just installed Confluence 3.0 and we have Unable to render macro: java.lang....We just installed Confluence 3.0 and we have
Jun 26
Rehanesh Harindranath says:
Hi Angela, Just as Diane had indicated a different change in 2.10, even in 3.0...Hi Angela,
Just as Diane had indicated a different change in 2.10, even in 3.0 we have to make the same change.
Replace
$!sitemeshPage.getProperty("page.breadcrumbs")with
#if (($spaceKey == '') || ($sitemeshPage.getProperty("page.spacename"))) #if ($sitemeshPage.getProperty("page.spacename") != 'Preferences') $helper.renderConfluenceMacro("{space-breadcrumbs:$spaceKey:$title}") #else $!sitemeshPage.getProperty("page.breadcrumbs") #end #else $!sitemeshPage.getProperty("page.breadcrumbs") #endThis helps the Login Screen, User Profile and People Directory also have the correct breadcrumbs