org.apache.maven.doxia.sink.Sink Java Examples

The following examples show how to use org.apache.maven.doxia.sink.Sink. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ReportAggregateMojo.java    From revapi with Apache License 2.0 6 votes vote down vote up
@Override
protected void reportBody(ReportTimeReporter reporterWithResults, API oldAPI, API newAPI, Sink sink,
        ResourceBundle messages) {
    if (oldAPI == null || newAPI == null) {
        return;
    }

    sink.section2();
    sink.sectionTitle2();
    String title = messages.getString("report.revapi.aggregate.subTitle");
    sink.rawText(MessageFormat.format(title, niceList(oldAPI.getArchives()), niceList(newAPI.getArchives())));
    sink.sectionTitle2_();

    super.reportBody(reporterWithResults, oldAPI, newAPI, sink, messages);

    sink.section2_();
}
 
Example #2
Source File: ReportMojo.java    From revapi with Apache License 2.0 6 votes vote down vote up
private void reportDifferences(
    EnumMap<CompatibilityType, List<ReportTimeReporter.DifferenceReport>> diffsPerType, Sink sink,
    ResourceBundle bundle, String typeKey) {

    if (diffsPerType == null || diffsPerType.isEmpty()) {
        return;
    }

    sink.section2();
    sink.sectionTitle2();
    sink.text(bundle.getString(typeKey));
    sink.sectionTitle2_();

    reportDifferences(diffsPerType.get(CompatibilityType.BINARY), sink, bundle,
        "report.revapi.compatibilityType.binary");
    reportDifferences(diffsPerType.get(CompatibilityType.SOURCE), sink, bundle,
        "report.revapi.compatibilityType.source");
    reportDifferences(diffsPerType.get(CompatibilityType.SEMANTIC), sink, bundle,
        "report.revapi.compatibilityType.semantic");
    reportDifferences(diffsPerType.get(CompatibilityType.OTHER), sink, bundle,
        "report.revapi.compatibilityType.other");

    sink.section2_();
}
 
Example #3
Source File: ReportMojo.java    From revapi with Apache License 2.0 6 votes vote down vote up
@Override
protected void executeReport(Locale locale) throws MavenReportException {
    ensureAnalyzed(locale);

    if (skip) {
        return;
    }

    if (oldAPI == null || newAPI == null) {
        getLog().warn("Could not determine the artifacts to compare. If you're comparing the" +
                " currently built version, have you run the package goal?");
        return;
    }

    if (generateSiteReport) {
        Sink sink = getSink();
        ResourceBundle bundle = getBundle(locale);

        ReportTimeReporter reporter =
                analysisResult.getExtensions().getFirstExtension(ReportTimeReporter.class, null);

        startReport(sink, bundle);
        reportBody(reporter, oldAPI, newAPI, sink, bundle);
        endReport(sink);
    }
}
 
Example #4
Source File: DependenciesRenderer.java    From maven-confluence-plugin with Apache License 2.0 6 votes vote down vote up
/**
 * 
 * @param sink
 * @param project
 * @param mavenProjectBuilder
 * @param locale
 * @param listener
 */
public DependenciesRenderer(	Sink sink, 
								MavenProject project, 
								MavenProjectBuilder mavenProjectBuilder,
								ArtifactRepository localRepository,
								ArtifactFactory factory,
								I18N i18n,
								Locale locale, 
								ReportingResolutionListener listener,
								Log log )
{
    super( sink );

    this.project = project;
    this.locale = locale;
    this.listener = listener;
    this.mavenProjectBuilder = mavenProjectBuilder;
    this.localRepository = localRepository;
    this.i18n 	= i18n;
    this.factory = factory;
    this.log = log;
}
 
Example #5
Source File: PropertyUpdatesReport.java    From versions-maven-plugin with Apache License 2.0 6 votes vote down vote up
protected void doGenerateReport( Locale locale, Sink sink )
    throws MavenReportException
{
    final Map<Property, PropertyVersions> updateSet;
    try
    {
        updateSet = getHelper().getVersionPropertiesMap( getProject(), properties, includeProperties,
                                                         excludeProperties, autoLinkItems );
    }
    catch ( MojoExecutionException e )
    {
        throw new MavenReportException( e.getMessage(), e );
    }
    PropertyUpdatesRenderer renderer =
        new PropertyUpdatesRenderer( sink, getI18n(), getOutputName(), locale, updateSet );
    renderer.render();
}
 
Example #6
Source File: DoxiaReportExporterFactoryMiscTest.java    From LicenseScout with Apache License 2.0 5 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
protected IReportExporterFactory createFactory() {
    return new DoxiaReportExporterFactory(new ISinkProvider() {

        /** {@inheritDoc} */
        @Override
        public Sink getSink() {
            return null;
        }
    });
}
 
Example #7
Source File: ReportGenerationContext.java    From pitest with Apache License 2.0 5 votes vote down vote up
public ReportGenerationContext(Locale locale, Sink sink,
    File reportsDataDirectory, File siteDirectory, Log logger,
    List<String> sourceDataFormats) {
  this.locale = locale;
  this.sink = sink;
  this.reportsDataDirectory = reportsDataDirectory;
  this.siteDirectory = siteDirectory;
  this.logger = logger;
  this.sourceDataFormats = sourceDataFormats;
}
 
Example #8
Source File: ReportMojo.java    From revapi with Apache License 2.0 5 votes vote down vote up
protected void reportBody(ReportTimeReporter reporterWithResults, API oldAPI, API newAPI, Sink sink,
        ResourceBundle messages) {
    sink.paragraph();
    sink.text(getDescription(messages, oldAPI, newAPI));
    sink.paragraph_();

    reportDifferences(reporterWithResults.reportsBySeverity.get(DifferenceSeverity.BREAKING), sink, messages,
            "report.revapi.changes.breaking");
    reportDifferences(reporterWithResults.reportsBySeverity.get(DifferenceSeverity.POTENTIALLY_BREAKING), sink,
            messages, "report.revapi.changes.potentiallyBreaking");
    reportDifferences(reporterWithResults.reportsBySeverity.get(DifferenceSeverity.NON_BREAKING), sink, messages,
            "report.revapi.changes.nonBreaking");
    reportDifferences(reporterWithResults.reportsBySeverity.get(DifferenceSeverity.EQUIVALENT), sink, messages,
            "report.revapi.changes.equivalent");
}
 
Example #9
Source File: ReportMojo.java    From revapi with Apache License 2.0 5 votes vote down vote up
protected void startReport(Sink sink, ResourceBundle messages) {
    sink.head();
    sink.title();
    sink.text(messages.getString("report.revapi.title"));
    sink.title_();
    sink.head_();

    sink.body();

    sink.section1();
    sink.sectionTitle1();
    sink.rawText(messages.getString("report.revapi.title"));
    sink.sectionTitle1_();
}
 
Example #10
Source File: PluginUpdatesRenderer.java    From versions-maven-plugin with Apache License 2.0 5 votes vote down vote up
public PluginUpdatesRenderer( Sink sink, I18N i18n, String bundleName, Locale locale,
                              Map<Plugin, PluginUpdatesDetails> pluginUpdates,
                              Map<Plugin, PluginUpdatesDetails> pluginManagementUpdates )
{
    super( sink, bundleName, i18n, locale );
    this.pluginUpdates = pluginUpdates;
    this.pluginManagementUpdates = pluginManagementUpdates;
}
 
Example #11
Source File: AbstractVersionsReportRenderer.java    From versions-maven-plugin with Apache License 2.0 5 votes vote down vote up
public AbstractVersionsReportRenderer( org.apache.maven.doxia.sink.Sink sink, String bundleName, I18N i18n,
                                       Locale locale )
{
    super( sink );
    this.bundleName = bundleName;
    this.i18n = i18n;
    this.locale = locale;
}
 
Example #12
Source File: DependencyUpdatesRenderer.java    From versions-maven-plugin with Apache License 2.0 5 votes vote down vote up
public DependencyUpdatesRenderer( Sink sink, I18N i18n, String bundleName, Locale locale,
                                  Map<Dependency, ArtifactVersions> dependencyUpdates,
                                  Map<Dependency, ArtifactVersions> dependencyManagementUpdates )
{
    super( sink, bundleName, i18n, locale );
    this.dependencyUpdates = dependencyUpdates;
    this.dependencyManagementUpdates = dependencyManagementUpdates;
}
 
Example #13
Source File: SinkDelegate.java    From maven-confluence-plugin with Apache License 2.0 5 votes vote down vote up
/** {@inheritDoc} */
public Object invoke( Object proxy, Method method, Object[] args )
    throws Throwable
{
    Class<?>[] parameterTypes = method.getParameterTypes();
	
    for ( int i = parameterTypes.length - 1; i >= 0; i-- )
    {
        if ( AttributeSet.class.isAssignableFrom( parameterTypes[i] ) )
        {
            parameterTypes[i] = SinkEventAttributes.class;
        }
    }
	
    if ( args != null )
    {
        for ( int i = args.length - 1; i >= 0; i-- )
        {
            if ( AttributeSet.class.isInstance( args[i] ) )
            {
                args[i] = new SinkEventAttributeSet( (AttributeSet) args[i] );
            }
        }
    }
	
    Method target = Sink.class.getMethod( method.getName(), parameterTypes );
	
    return target.invoke( sink, args );
}
 
Example #14
Source File: GitLogJiraIssuesRenderer.java    From maven-confluence-plugin with Apache License 2.0 5 votes vote down vote up
/**
 * Default constructor.
 *
 * @param sink the sink to use.
 */
public GitLogJiraIssuesRenderer(Sink sink, String gitLogSinceTagName, String gitLogUntilTagName, List<String> jiraProjectKeyList,
                                String currentVersion, CalculateRuleForSinceTagName calculateRuleForSinceTagName,
                                String gitLogTagNamesPattern, Boolean gitLogGroupByVersions, Log log) {
    super(sink);
    this.gitLogSinceTagName = gitLogSinceTagName;
    this.gitLogUntilTagName = gitLogUntilTagName;
    this.currentVersion = currentVersion;
    this.calculateRuleForSinceTagName = calculateRuleForSinceTagName;
    this.jiraProjectKeyList = jiraProjectKeyList;
    this.gitLogTagNamesPattern = gitLogTagNamesPattern;
    this.gitLogGroupByVersions = gitLogGroupByVersions;
    this.log = log;
}
 
Example #15
Source File: ProjectTeamRenderer.java    From maven-confluence-plugin with Apache License 2.0 5 votes vote down vote up
public ProjectTeamRenderer( Sink sink, Model model, I18N i18n, Locale locale, Log log, boolean showAvatarImages ) {
    super( sink, i18n, locale );

    this.model = model;
    //this.log = log;
    this.showAvatarImages = showAvatarImages;
}
 
Example #16
Source File: ScmRenderer.java    From maven-confluence-plugin with Apache License 2.0 5 votes vote down vote up
public ScmRenderer(Log log, 
            ScmManager scmManager, 
            Sink sink, 
            Model model, 
            I18N i18n, 
            Locale locale,
            String checkoutDirName, 
            String webAccessUrl, 
            String anonymousConnection, 
            String devConnection,
            String scmTag) {
    super(sink, i18n, locale);

    this.log = log;

    this.scmManager = scmManager;

    this.model = model;

    this.checkoutDirectoryName = checkoutDirName;

    this.webAccessUrl = webAccessUrl;

    this.anonymousConnection = anonymousConnection;

    this.devConnection = devConnection;

    this.scmTag = scmTag;
}
 
Example #17
Source File: PluginsRenderer.java    From maven-confluence-plugin with Apache License 2.0 5 votes vote down vote up
/**
 * @param log
 * @param sink
 * @param locale
 * @param i18n
 * @param plugins
 * @param reports
 * @param project
 * @param mavenProjectBuilder
 * @param artifactFactory
 * @param localRepository
 */
public PluginsRenderer( 
        Log log, 
        Sink sink, 
        Locale locale, 
        I18N i18n, 
        Set<Artifact> plugins, 
        Set<Artifact> reports,
        MavenProject project, 
        MavenProjectBuilder mavenProjectBuilder,
        ArtifactFactory artifactFactory, 
        ArtifactRepository localRepository )
{
    super( sink );

    this.log = log;

    this.locale = locale;

    this.plugins = new ArrayList<>( plugins );

    this.reports = new ArrayList<>( reports );

    this.i18n = i18n;

    this.project = project;

    this.mavenProjectBuilder = mavenProjectBuilder;

    this.artifactFactory = artifactFactory;

    this.localRepository = localRepository;
}
 
Example #18
Source File: DoxiaReportExporterFactoryGetReportExporterTest.java    From LicenseScout with Apache License 2.0 5 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
protected IReportExporterFactory createFactory() {
    return new DoxiaReportExporterFactory(new ISinkProvider() {

        /** {@inheritDoc} */
        @Override
        public Sink getSink() {
            return null;
        }
    });
}
 
Example #19
Source File: AsciidoctorDoxiaParser.java    From asciidoctor-maven-plugin with Apache License 2.0 4 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
public void parse(Reader reader, Sink sink) throws ParseException {
    String source;
    try {
        if ((source = IOUtil.toString(reader)) == null) {
            source = "";
        }
    } catch (IOException ex) {
        getLog().error("Could not read AsciiDoc source: " + ex.getLocalizedMessage());
        return;
    }

    final MavenProject project = mavenProjectProvider.get();
    final Xpp3Dom siteConfig = getSiteConfig(project);
    final File siteDirectory = resolveSiteDirectory(project, siteConfig);

    // Doxia handles a single instance of this class and invokes it multiple times.
    // We need to ensure certain elements are initialized only once to avoid errors.
    // Note, this cannot be done in the constructor because mavenProjectProvider in set after construction.
    // And overriding init and other methods form parent classes does not work.
    final Asciidoctor asciidoctor = Asciidoctor.Factory.create();

    SiteConversionConfiguration conversionConfig = new SiteConversionConfigurationParser(project)
            .processAsciiDocConfig(siteConfig, defaultOptions(siteDirectory), defaultAttributes());
    for (String require : conversionConfig.getRequires()) {
        requireLibrary(asciidoctor, require);
    }

    final LogHandler logHandler = getLogHandlerConfig(siteConfig);
    final MemoryLogHandler memoryLogHandler = asciidoctorLoggingSetup(asciidoctor, logHandler, siteDirectory);

    // QUESTION should we keep OptionsBuilder & AttributesBuilder separate for call to convertAsciiDoc?
    String asciidocHtml = convertAsciiDoc(asciidoctor, source, conversionConfig.getOptions());
    try {
        // process log messages according to mojo configuration
        new LogRecordsProcessors(logHandler, siteDirectory, errorMessage -> getLog().error(errorMessage))
                .processLogRecords(memoryLogHandler);
    } catch (Exception exception) {
        throw new ParseException(exception.getMessage(), exception);
    }

    sink.rawText(asciidocHtml);
}
 
Example #20
Source File: SinkDelegate.java    From maven-confluence-plugin with Apache License 2.0 4 votes vote down vote up
public SinkDelegate( Sink sink ) {
    this.sink = sink;
}
 
Example #21
Source File: PluginUpdatesReport.java    From versions-maven-plugin with Apache License 2.0 4 votes vote down vote up
/**
 * generates an empty report in case there are no sources to generate a report with
 *
 * @param locale the locale to generate the report for.
 * @param sink the report formatting tool
 */
protected void doGenerateReport( Locale locale, Sink sink )
    throws MavenReportException
{
    Set<Plugin> pluginManagement = new TreeSet<>( new PluginComparator() );
    if ( haveBuildPluginManagementPlugins() )
    {
        pluginManagement.addAll( getProject().getBuild().getPluginManagement().getPlugins() );
    }

    Set<Plugin> plugins = new TreeSet<>( new PluginComparator() );
    if ( haveBuildPlugins() )
    {
        plugins.addAll( getProject().getBuild().getPlugins() );
    }

    plugins = removePluginManagment( plugins, pluginManagement );

    try
    {
        Map<Plugin, PluginUpdatesDetails> pluginUpdates =
            getHelper().lookupPluginsUpdates( plugins, getAllowSnapshots() );
        Map<Plugin, PluginUpdatesDetails> pluginManagementUpdates =
            getHelper().lookupPluginsUpdates( pluginManagement, getAllowSnapshots() );
        for ( String format : formats )
        {
            if ( "html".equals( format ) )
            {
                PluginUpdatesRenderer renderer =
                    new PluginUpdatesRenderer( sink, getI18n(), getOutputName(), locale, pluginUpdates,
                                               pluginManagementUpdates );
                renderer.render();
            }
            else if ( "xml".equals( format ) )
            {
                File outputDir = new File(getProject().getBuild().getDirectory());
                if (!outputDir.exists())
                {
                    outputDir.mkdirs();
                }
                String outputFile =
                    outputDir.getAbsolutePath() + File.separator + getOutputName() + ".xml";
                PluginUpdatesXmlRenderer xmlGenerator =
                    new PluginUpdatesXmlRenderer( pluginUpdates, pluginManagementUpdates, outputFile );
                xmlGenerator.render();
            }
        }
    }
    catch ( InvalidVersionSpecificationException | ArtifactMetadataRetrievalException e )
    {
        throw new MavenReportException( e.getMessage(), e );
    }
}
 
Example #22
Source File: ReportMojo.java    From revapi with Apache License 2.0 4 votes vote down vote up
protected void endReport(Sink sink) {
    sink.section1_();
    sink.body_();
}
 
Example #23
Source File: PropertyUpdatesRenderer.java    From versions-maven-plugin with Apache License 2.0 4 votes vote down vote up
public PropertyUpdatesRenderer( Sink sink, I18N i18n, String bundleName, Locale locale,
                                Map<Property, PropertyVersions> propertyUpdates )
{
    super( sink, bundleName, i18n, locale );
    this.propertyUpdates = propertyUpdates;
}
 
Example #24
Source File: ReportMojo.java    From revapi with Apache License 2.0 4 votes vote down vote up
private void reportDifferences(List<ReportTimeReporter.DifferenceReport> diffs, Sink sink, ResourceBundle bundle,
    String typeKey) {

    if (diffs == null || diffs.isEmpty()) {
        return;
    }

    sink.section3();
    sink.sectionTitle3();
    sink.text(bundle.getString(typeKey));
    sink.sectionTitle3_();

    sink.table();

    sink.tableRow();

    sink.tableHeaderCell();
    sink.text(bundle.getString("report.revapi.difference.code"));
    sink.tableHeaderCell_();

    sink.tableHeaderCell();
    sink.text(bundle.getString("report.revapi.difference.element"));
    sink.tableHeaderCell_();

    sink.tableHeaderCell();
    sink.text(bundle.getString("report.revapi.difference.description"));
    sink.tableHeaderCell_();

    sink.tableRow_();

    diffs.sort((d1, d2) -> {
        String c1 = d1.difference.code;
        String c2 = d2.difference.code;

        int cmp = c1.compareTo(c2);
        if (cmp != 0) {
            return cmp;
        }

        Element e1 = d1.newElement == null ? d1.oldElement : d1.newElement;
        Element e2 = d2.newElement == null ? d2.oldElement : d2.newElement;

        cmp = e1.getClass().getName().compareTo(e2.getClass().getName());
        if (cmp != 0) {
            return cmp;
        }

        return e1.getFullHumanReadableString().compareTo(e2.getFullHumanReadableString());
    });

    for (ReportTimeReporter.DifferenceReport d : diffs) {
        String element = d.oldElement == null ? (d.newElement.getFullHumanReadableString()) :
            d.oldElement.getFullHumanReadableString();

        sink.tableRow();

        sink.tableCell();
        sink.monospaced();
        sink.text(d.difference.code);
        sink.monospaced_();
        sink.tableCell_();

        sink.tableCell();
        sink.monospaced();
        sink.bold();
        sink.text(element);
        sink.bold_();
        sink.monospaced_();

        sink.tableCell();
        sink.text(d.difference.description);
        sink.tableCell_();

        sink.tableRow_();
    }

    sink.table_();

    sink.section3_();
}
 
Example #25
Source File: ReportAggregateMojo.java    From revapi with Apache License 2.0 4 votes vote down vote up
@Override
protected void executeReport(Locale locale) throws MavenReportException {
    if (skip) {
        return;
    }

    if (!canGenerateReport()) {
        return;
    }

    List<MavenProject> dependents = mavenSession.getProjectDependencyGraph().getDownstreamProjects(project, true);
    Collections.sort(dependents, (a, b) -> {
        String as = a.getArtifact().toString();
        String bs = b.getArtifact().toString();
        return as.compareTo(bs);
    });

    Map<MavenProject, ProjectVersions> projectVersions = dependents.stream().collect(
            Collectors.toMap(Function.identity(), this::getRunConfig));
    projectVersions.put(project, getRunConfig(project));

    ResourceBundle messages = getBundle(locale);
    Sink sink = getSink();

    if (generateSiteReport) {
        startReport(sink, messages);
    }

    try {
        Analyzer topAnalyzer = prepareAnalyzer(null, project, locale, projectVersions.get(project));

        Revapi sharedRevapi = topAnalyzer == null ? null : topAnalyzer.getRevapi();

        for (MavenProject p : dependents) {
            Analyzer projectAnalyzer = prepareAnalyzer(sharedRevapi, p, locale, projectVersions.get(p));
            if (projectAnalyzer != null) {
                try (AnalysisResult res = projectAnalyzer.analyze()) {
                    res.throwIfFailed();

                    ReportTimeReporter reporter =
                            res.getExtensions().getFirstExtension(ReportTimeReporter.class, null);

                    if (generateSiteReport && reporter != null) {
                        reportBody(reporter, projectAnalyzer.getResolvedOldApi(),
                                projectAnalyzer.getResolvedNewApi(), sink, messages);
                    }
                }
            }
        }

        if (generateSiteReport) {
            endReport(sink);
        }
    } catch (Exception e) {
        throw new MavenReportException("Failed to generate the report.", e);
    }
}
 
Example #26
Source File: ReportGenerationContext.java    From pitest with Apache License 2.0 4 votes vote down vote up
public void setSink(Sink sink) {
  this.sink = sink;
}
 
Example #27
Source File: ReportGenerationContext.java    From pitest with Apache License 2.0 4 votes vote down vote up
public Sink getSink() {
  return this.sink;
}
 
Example #28
Source File: ProjectSummaryRenderer.java    From maven-confluence-plugin with Apache License 2.0 3 votes vote down vote up
/**
 * 
 * @param owner
 */
public ProjectSummaryRenderer( Sink sink, MavenProject project, I18N i18n, Locale locale ) {
	super(sink);
	
	this.project = project;
	this.i18n = i18n;
	this.locale = locale;
	
	
}
 
Example #29
Source File: ISinkProvider.java    From LicenseScout with Apache License 2.0 2 votes vote down vote up
/**
 * @return a sink
 */
public Sink getSink();
 
Example #30
Source File: AbstractVersionsReport.java    From versions-maven-plugin with Apache License 2.0 2 votes vote down vote up
/**
 * generates the report.
 *
 * @param locale the locale to generate the report for.
 * @param sink the report formatting tool.
 * @throws MavenReportException when things go wrong.
 * @throws MojoExecutionException if something goes wrong.
 */
protected abstract void doGenerateReport( Locale locale, Sink sink )
    throws MavenReportException, MojoExecutionException;