Simple Hello World with unit tests
Having tests is great (I'd love to see more questions with tests), keep it up! Other parts I would keep simpler.


You might want this as a tag in your revision control system instead of commenting:


* @version 1.0.0 - Mar 9, 2014



This is also in the revision control history, so it's usually unnecessary:


* @author mhemphill



See: Pros and cons of versioning javadoc
I would not want to maintain comments on test methods like this:


/**
 * Test method for 
 * {@link com.getgnosis.tutorials.tutorial01001.AdvancedHelloWorld
 *      #toString()}.
 */
@Test
public void testToString() {
    ...
}



I don't see why would it be useful. I haven't seen anyone who likes reading javadoc of test classes instead of the test code directly. The name of the method is good, it contains the main point: it's a test for toString, keep that and remove the superfluous comment.

@Test
public void testMain() {
    final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
    System.setOut(new PrintStream(outContent));
    AdvancedHelloWorld.main(null);
    assertEquals("Hello World!" + System.getProperty("line.separator"), outContent.toString());
    System.setOut(null);
}



The System.setOut(null) statements should be in an @After tearDown method or at least in a finally block. If the assertEquals throws an exception (or something else) out won't be set back.
I the same testMain method I'd create a local variable for the expected result:

final String expected = "Hello World!" + System.getProperty("line.separator");
assertEquals(expected, outContent.toString());


It's easier to read. (Clean Code by Robert C. Martin, G19: Use Explanatory Variables;  Refactoring: Improving the Design of Existing Code by Martin Fowler, Introduce Explaining Variable)

@Test
public void testAdvancedHelloWorld() {
    try {
        new AdvancedHelloWorld();
    } catch (Exception e) {
        fail("Construction failed. ");
    }
}



The following is the same:

@Test
public void testAdvancedHelloWorld() {
    new AdvancedHelloWorld();
}


If the constructor throws an exception (or anything inside a @Test method) JUnit will tell you.
This comments does not say anything which isn't in the code already, I'd remove it:


/**
 * The default constructor. Initializes the value of message via the static
 * block.
 */



(Clean Code by Robert C. Martin: Chapter 4: Comments, Noise Comments)

static {
    message = "Hello World!";
}

/**
 * The {@link String} instance representing the message to be displayed.
 */
private final static String message;



The following is the same:

private final static String message = "Hello World!";


I would keep it simple.

@Override
public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("AdvancedHelloWorld [");
    if (getMessage() != null)
        builder.append("message=").append(getMessage());
    builder.append("]");
    return builder.toString();
}



The if condition can't be false (the message field is final and has a non-null value), so the following is the same:

StringBuilder builder = new StringBuilder();
builder.append("AdvancedHelloWorld [");
builder.append("message=").append(getMessage());
builder.append("]");
return builder.toString();

I'd move the main method to a separate class. It's usually a good idea to separate a class from its clients.