class Project implements Serializable, Runnable {

    protected void publish(final Log buildLog) throws CruiseControlException {
        setState(ProjectState.PUBLISHING);
        for (final Publisher publisher : projectConfig.getPublishers()) {
            // catch all errors, Publishers shouldn't cause failures in the build method
            try {
                publisher.publish(buildLog.getContent());
            } catch (Throwable t) {
                final StringBuilder message = new StringBuilder("exception publishing results");
                message.append(" with ").append(publisher.getClass().getName());
                message.append(" for project ").append(name);
                LOG.error(message.toString(), t);
            }
        }
    }

    public  Project();

}