Blog

  • 2024
  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
titlePrinciples

In the past we have come up with some simple observations that we like when using blueprints

  1. Have sets of blueprints that work together, using existing blueprints
  2. Have at least one space that provides a basic structure for the domain of the blueprint set
  3. Create navigation by dynamic linking
    1. Provide a type blueprint for most of the blueprints
    2. Show pages of a given type
    3. Show child pages and a reference to the parent
    4. After the creation of a new space or new page, everything should be ready to work
.
    1. - no remove this, paste that
Section
titleThe Mission

To create a blueprint you need to touch a number of files.

  1. There is the XML file containing the template,
  2. the Soy file to specify the wizard.
  3. A JavaScript file for the validators for the wizard,
  4. probably a Java file to manipulate the blueprint context.
  5. Add localized resource files for one or more languages,
  6. create one or more index pages,
  7. and finally a number of edits to the atlassian-plugin.xml file.
Note Box

For projectdoc we also generate blueprints to create index pages (should you get lost of the doctypes homepage), special pages (such as - and currently the only one) content management homepage, which is a view for authors on the documents, and finally a blueprint that creates all pages of a space in an already existing page.

Since these are considered as basic support they are created automatically.

So the basic course of events is this:

Code Block
languagetext
themeMidnight
> mvn doctype:create 
  -DshortId=services 
  -DprojectName="Service Management Doctypes" 
  -DprojectDescription="Provides Blueprints for System Management."
  -DcreateExamples=false
> [add your descriptor files]
> mvn doctype:generate
> atlas-run
Tip Box

If you start from new you probably would like to have some example files and your are probably not that fancy with a nice name and description. In this case use this:

Code Block
languagetext
themeMidnight
> mvn doctype:create -DshortId=services 
> mvn doctype:generate
> atlas-debug

The project has configured quick reload.

Section
titleTypes of Pages

To make this simplification we define some constraints.

First, we think of pages as documents with properties (key-value pairs) and sections (a title with text, possibly nested). We call this a projectdoc document. With this in mind, we define a document type with a doctype descriptor (there is also a descriptor for spaces and one for the context of the add-on).

When we create new doctype add-ons there are typically three kind of documents:

  1. Documents that contain information of a given type (e.g. a doctype to document systems)
  2. Documents that categorize this type (e.g. system type documents)
  3. Documents that categorize this and other types (e.g. documents that specify phases in a lifecycle)
Example Box
titleA System, a System Type, and a Type

With this a team may document a system (e.g. a JIRA instance), associate it with a system type (e.g. issue management system), and set a lifecycle phase (e.g. In-service). On the issue management page there will automatically be listed all issue management systems and on the In-service lifecycle page, all systems (and maybe other entities with a lifecycle) that are actually servicing will be shown. Only one document is added, but two indexing pages will automatically reference it.

...