private void writeSourceRepository()

in src/main/java/org/apache/maven/plugin/doap/DoapMojo.java [1455:1486]


    private void writeSourceRepository(XMLWriter writer, MavenProject project, String connection) {
        ScmRepository repository = getScmRepository(connection);

        DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "repository");

        if (isScmSystem(repository, "svn")) {
            DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "SVNRepository");

            SvnScmProviderRepository svnRepo = (SvnScmProviderRepository) repository.getProviderRepository();

            DoapUtil.writeRdfResourceElement(writer, doapOptions.getXmlnsPrefix(), "location", svnRepo.getUrl());
        } else {
            /*
             * Supported DOAP repositories actually unsupported by SCM: BitKeeper
             * (http://usefulinc.com/ns/doap#BKRepository) Arch (http://usefulinc.com/ns/doap#ArchRepository) Other SCM
             * repos are unsupported by DOAP.
             */
            DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "Repository");

            if (connection.length() < 4) {
                throw new IllegalArgumentException("The source repository connection is too short.");
            }

            DoapUtil.writeRdfResourceElement(writer, doapOptions.getXmlnsPrefix(), "location", connection.substring(4));
        }

        DoapUtil.writeRdfResourceElement(
                writer, doapOptions.getXmlnsPrefix(), "browse", project.getScm().getUrl());

        writer.endElement(); // SVNRepository || Repository
        writer.endElement(); // repository
    }