All content and projects on JBoss Labs are managed via Subversion.
For Project Leads:
Each project has a file called the project.xml which resides in the project's CMS content location. So for example, if your project's Subversion CMS URL is:
We recommend using a project.xml that contains information just like the JBoss Wiki project:
You can find the JBoss Wiki project.xml in the project template wiki page: ProjectTemplate
Then you will have a project.xml in the working copy of the above url (i.e., in a directory called 'jbossas' in this case). This file contains various elements which describe the components which exist within a project hosted on JBoss Labs. For example, there are elements which indicate the ID of the project, the roles which are allowed to see the project, a logo for the project, and whether or not the project uses things like a wiki or a blog.
The project.xml has the following structure:
<project> <id>Id of the project</id> <name>Name of the project as it will appear on the pages</name> <permission>role-name - see below</permission> <company-name>Name of the company that creates this project</company-name> <logo>Path (relative to <portal-name>/members/<project-id>) to a project's logo; ommit this tag if a logo does not exist</logo> <company-logo>The same, but a company logo</company-logo> <category>Id of a category</category> <service>Id of a service</service> <page>Id of a page</page> <jems>Id of a component with which this project integrates(list available below)</jems> <!-- The description element below is a pointer to a file in your freezone dir that contains the html for the description of your project. --> <!-- This is the content that is displayed as the landing page for your project. --> <description>projectDescription.html</description> <!-- Here's an example menu layout from the JBoss Rules project. --> <menu> <freezone display="Documentation">./docs/index.html</freezone> <page display="Downloads">downloads</page> <freezone display="Live Trails">./livetrails/index.html</freezone> <freezone display="Screenshots">screenshots.html</freezone> <page display="Blog">blog</page> <freezone display="Mailing Lists">lists.html</freezone> <freezone display="Realtime Chat (IRC)">irc.html</freezone> <freezone display="Subversion">subversion.html</freezone> <issue-tracker display="JIRA Project"></issue-tracker> <link display="Drools 2.5">http://legacy.drools.codehaus.org</link> <link display="Drools DotNet 2.5">http://legacy.drools.codehaus.org/DotNet</link> <link display="Roadmap">http://wiki.jboss.org/wiki/Wiki.jsp?page=DroolsRoadmap</link> <link display="Wiki Knowledge Base">http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossRules</link> <freezone display="The Team">team.html</freezone> </menu> <issue-tracker type="jira">http://jira.jboss.com/jira/browse/JBRULES</issue-tracker> </project>
By default, each project in its navigation has a link to an info page. This "info" page is the landing page for your project. The contents of this landing page is defined by the <description>projectDescription.html</description> element. The name of the file: projectDescription.html is a file that resides in your project's freezone. To change the content of your project's landing page, you would edit the contents of ./freezone/projectDescription.html and check it in.
Any additional links will be displayed depending on the tags. Note: if your URL includes '&', pleasse use
in the xml descriptor (space is intentional, due to Wiki generating it as simple '&').
The <permission> tag
By using this tag, you can make your project invisible to normal users. It will be displayed in the navigation and other pages only when a user is logged in, and has at least two roles: project-manager and the role given in the tag. You must ask the Labs administrator to add you to appropriate roles.
You can include many <permission> tags, this will cause the project to be shown to users who have any of the roles given.
<project> ... <permission>wiki-project-admin-role</permission> ... </project>
Note: The current implementation doesn't block file-access, that is, all files that you put in downloads/images/freezone subdirectories will still be available for download, provided of course you know the right url. All other pages are secured (for example, preparating a downloads or freezone page url won't work if you don't have the right roles).
All images for a project should be located in any images subdirectory. To access them, use the following URL:
<ad> tags are not mandatory.
For more information about defining project specific ads see AdsConf.
Available repository types:
'svn' - default
Available issue tracker types:
'jira' - default
List of available JEMS components:
'as', name - JBoss AS
'jbide', name - JBoss IDE
'portal', name - JBoss Portal
'admin-console', name - JBoss Administration Console
'ws', name - JBoss WS
'tomcat', name - Tomcat
'hibernate', name - Hibernate
'microkernel', name - JMX Microkernel
'jbpm', name - jBPM
'groups', name - JGroups
List of available pages:
To add a project and all its content requires that a Labs administrator first add the necessary skeleton project to the CMS repository, then the Project Lead will populate his project with the proper content.
Adding a project to Labs, at the moment requires:
The administrator to add the project to Labs
A lead for the new project, to create the initial content from the skeleton project information.
There are two sections below, one for admins and one for project leads.
To add a new project, the forge administrator must do 3 things:
put its id in projects.xml:
<?xml version="1.0" encoding="iso-8859-1"?> <projects> <project>id-of-project</project> <project>id-of-project</project> </projects>
create a directory <portal-name>/members/<project-id>
create a project descriptor <portal-name>/members/<project-id>/project.xml
Additionaly, if the project requires a blog, the administrator must:
create a new blog user through blojsom's administration
log in as that user
Note: This is about to change as we implement the Shotoku feeds. After Shotoku is enabled, there will only be an XML element required to enable the blog.