Package org.apache.maven.doxia.siterenderer

Examples of org.apache.maven.doxia.siterenderer.SiteRenderingContext


    return file;
  }

  private void render(final Locale locale) throws IOException, MojoExecutionException, MojoFailureException {
    final SiteRenderingContext context = createSiteRenderingContext(locale);

    context.setInputEncoding(getInputEncoding());
    context.setOutputEncoding(getOutputEncoding());
    context.setValidate(validate);
    if (validate) {
      getLog().info("Validation is switched on, xml input documents will be validated!");
    }

    final ChangeFreq changeFreq = ChangeFreq.valueOf(this.changeFreq.toUpperCase());
    if (changeFreq == null) {
      getLog().error("Change frequency must be set or is wrong.");
      return;
    }

    final File outputDir = getOutputDirectory(locale);
    getLog().info("Generating Sitemap.");

    final W3CDateFormat dateFormat = new W3CDateFormat(Pattern.DAY);
    final WebSitemapGenerator generator = WebSitemapGenerator.builder(project.getUrl(), outputDir).autoValidate(validate)
        .dateFormat(dateFormat).build();
    new Sitemap(getOutputEncoding(), i18n).generate(project, context.getDecoration(), generator, changeFreq);
    final List<File> files = generator.write();
    for (final File file : files) {
      getLog().info("Generated Sitemap: " + file.getPath());
    }
  }
View Full Code Here


      skinFile = skinArtifact.getFile();
    } catch (final SiteToolException e) {
      throw new MojoExecutionException("SiteToolException: " + e.getMessage(), e);
    }
    SiteRenderingContext context;
    if (templateFile != null) {
      if (!templateFile.exists()) {
        throw new MojoFailureException("Template file '" + templateFile + "' does not exist");
      }
      context = siteRenderer.createContextForTemplate(templateFile, skinFile, attributes, decorationModel, project.getName(), locale);
    } else {
      context = siteRenderer.createContextForSkin(skinFile, attributes, decorationModel, project.getName(), locale);
    }

    // Generate static site
    if (!locale.getLanguage().equals(Locale.getDefault().getLanguage())) {
      context.addSiteDirectory(new File(siteDirectory, locale.getLanguage()));
    } else {
      context.addSiteDirectory(siteDirectory);
    }

    return context;
  }
View Full Code Here

            getLog().debug( "Copy resources from skin artifact: '" + skinFile + "'..." );
        }

        try
        {
            final SiteRenderingContext context =
                siteRenderer.createContextForSkin( skinFile, new HashMap(), decorationModel, project.getName(),
                                                   locale );
            context.addSiteDirectory( new File( siteDirectory, locale.getLanguage() ) );

            for ( final Iterator i = context.getSiteDirectories().iterator(); i.hasNext(); )
            {
                final File siteDirectoryFile = (File) i.next();

                siteRenderer.copyResources( context, new File( siteDirectoryFile, "resources" ), workingDirectory );
            }
View Full Code Here

            Map<String, Object> attributes = new HashMap<String, Object>();
            attributes.put("outputEncoding", "UTF-8");
            attributes.put("project", project);
            Locale locale = Locale.getDefault();

            SiteRenderingContext siteContext = renderer.createContextForSkin(
                    getSkinArtifactFile(model), attributes, model,
                    getName(locale), locale);

            RenderingContext context = new RenderingContext(
                    getReportOutputDirectory(), getOutputName() + ".html");
View Full Code Here

        Map attributes = new HashMap();
        attributes.put( "outputEncoding", "UTF-8" );
        Locale locale = Locale.getDefault();
        try
        {
            SiteRenderingContext siteContext =
                siteRenderer.createContextForSkin( getSkinArtifactFile(), attributes, model, getName( locale ),
                                                   locale );
            RenderingContext context = new RenderingContext( outputDirectory, getOutputName() + ".html" );

            SiteRendererSink sink = new SiteRendererSink( context );
View Full Code Here

        }
        catch ( SiteToolException e )
        {
            throw new MojoExecutionException( "SiteToolException: " + e.getMessage(), e );
        }
        SiteRenderingContext context;
        if ( templateFile != null )
        {
            if ( !templateFile.exists() )
            {
                throw new MojoFailureException( "Template file '" + templateFile + "' does not exist" );
            }
            context = siteRenderer.createContextForTemplate( templateFile, skinFile, attributes, decorationModel,
                                                             project.getName(), locale );
        }
        else
        {
            context = siteRenderer.createContextForSkin( skinFile, attributes, decorationModel, project.getName(),
                                                         locale );
        }

        // Generate static site
        if ( !locale.getLanguage().equals( Locale.getDefault().getLanguage() ) )
        {
            context.addSiteDirectory( new File( siteDirectory, locale.getLanguage() ) );
            context.addModuleDirectory( new File( xdocDirectory, locale.getLanguage() ), "xdoc" );
            context.addModuleDirectory( new File( xdocDirectory, locale.getLanguage() ), "fml" );
        }
        else
        {
            context.addSiteDirectory( siteDirectory );
            context.addModuleDirectory( xdocDirectory, "xdoc" );
            context.addModuleDirectory( xdocDirectory, "fml" );
        }

        if ( moduleExcludes != null )
        {
            context.setModuleExcludes( moduleExcludes );
        }

        return context;
    }
View Full Code Here

    }

    private void renderLocale( Locale locale, List<MavenReportExecution> reports )
        throws IOException, RendererException, MojoFailureException, MojoExecutionException
    {
        SiteRenderingContext context = createSiteRenderingContext( locale );

        context.setInputEncoding( getInputEncoding() );
        context.setOutputEncoding( getOutputEncoding() );
        context.setValidate( validate );
        if ( validate )
        {
            getLog().info( "Validation is switched on, xml input documents will be validated!" );
        }

        File outputDir = getOutputDirectory( locale );

        Map<String, DocumentRenderer> documents = locateDocuments( context, reports, locale );

        // 1. render Doxia documents first
        List<DocumentRenderer> reportDocuments = renderDoxiaDocuments( documents, context, outputDir, false );

        // 2. then reports
        // For external reports
        for ( MavenReportExecution mavenReportExecution : reports )
        {
            MavenReport report = mavenReportExecution.getMavenReport();
            report.setReportOutputDirectory( outputDir );
        }

        siteRenderer.render( reportDocuments, context, outputDir );

        if ( generateSitemap )
        {
            getLog().info( "Generating Sitemap." );

            new SiteMap( getOutputEncoding(), i18n )
                    .generate( context.getDecoration(), generatedSiteDirectory, locale );
        }

        // 3. Generated docs must be done afterwards as they are often generated by reports
        context.getSiteDirectories().clear();
        context.addSiteDirectory( generatedSiteDirectory );

        Map<String, DocumentRenderer> generatedDocuments = siteRenderer.locateDocumentFiles( context );

        renderDoxiaDocuments( generatedDocuments, context, outputDir, true );
    }
View Full Code Here

        try
        {
            List<Locale> localesList = siteTool.getAvailableLocales( locales );

            SiteRenderingContext context = createSiteRenderingContext( localesList.get( 0 ) );

            DecorationModel decorationModel = context.getDecoration();

            StringWriter w = new StringWriter();
            XMLWriter writer =
                new PrettyPrintXMLWriter( w, StringUtils.repeat( " ", XmlWriterUtil.DEFAULT_INDENTATION_SIZE ),
                                          decorationModel.getModelEncoding(), null );
View Full Code Here

        // Remove the /
        path = path.substring( 1 );

        // Handle locale request
        SiteRenderingContext context;
        Map<String, DocumentRenderer> documents;
        File generatedSiteDirectory;

        String localeWanted = null;
        for ( Locale locale : localesList )
        {
            if ( path.startsWith( locale.getLanguage() + "/" ) )
            {
                localeWanted = locale.toString();
                path = path.substring( locale.getLanguage().length() + 1 );
            }
        }

        if ( localeWanted == null )
        {
            DoxiaBean defaultDoxiaBean = i18nDoxiaContexts.get( "default" );
            if ( defaultDoxiaBean == null )
            {
                throw new ServletException( "No doxia bean found for the default locale" );
            }
            context = defaultDoxiaBean.getContext();
            documents = defaultDoxiaBean.getDocuments();
            generatedSiteDirectory = defaultDoxiaBean.getGeneratedSiteDirectory();
        }
        else
        {
            DoxiaBean i18nDoxiaBean = i18nDoxiaContexts.get( localeWanted );
            if ( i18nDoxiaBean == null )
            {
                throw new ServletException( "No doxia bean found for the locale " + localeWanted );
            }
            context = i18nDoxiaBean.getContext();
            documents = i18nDoxiaBean.getDocuments();
            generatedSiteDirectory = i18nDoxiaBean.getGeneratedSiteDirectory();
        }

        // ----------------------------------------------------------------------
        // Handle report and documents
        // ----------------------------------------------------------------------
        if ( documents.containsKey( path ) )
        {
            try
            {
                DocumentRenderer renderer = documents.get( path );
                renderer.renderDocument( servletResponse.getWriter(), siteRenderer, context );

                if ( renderer instanceof ReportDocumentRenderer )
                {
                    ReportDocumentRenderer reportDocumentRenderer = (ReportDocumentRenderer) renderer;
                    if ( reportDocumentRenderer.isExternalReport() )
                    {
                        try
                        {
                            filterChain.doFilter( servletRequest, servletResponse );
                        }
                        catch ( Exception e )
                        {
                            throw new ServletException( e );
                        }
                    }
                }
            }
            catch ( RendererException e )
            {
                throw new ServletException( e );
            }
        }
        else if ( generatedSiteDirectory != null && generatedSiteDirectory.exists() )
        {
            context.getSiteDirectories().clear();
            context.addSiteDirectory( generatedSiteDirectory );
            try
            {
                Map<String, DocumentRenderer> locateDocuments = siteRenderer.locateDocumentFiles( context );

                if ( locateDocuments.containsKey( path ) )
                {
                    DocumentRenderer renderer = locateDocuments.get( path );
                    renderer.renderDocument( servletResponse.getWriter(), siteRenderer, context );
                }
            }
            catch ( RendererException e )
            {
                throw new ServletException( e );
            }

            List<File> originalSiteDirectories = new ArrayList<File>( context.getSiteDirectories() );
            for ( File dir : originalSiteDirectories )
            {
                context.addSiteDirectory( dir );
            }
        }
        else
        {
            filterChain.doFilter( servletRequest, servletResponse );
View Full Code Here

        {
            Map<String, DoxiaBean> i18nDoxiaContexts = new HashMap<String, DoxiaBean>();

            for ( Locale locale : localesList )
            {
                SiteRenderingContext i18nContext = createSiteRenderingContext( locale );
                i18nContext.setInputEncoding( getInputEncoding() );
                i18nContext.setOutputEncoding( getOutputEncoding() );

                Map<String, DocumentRenderer> i18nDocuments = locateDocuments( i18nContext, reports, locale );
                DoxiaBean doxiaBean;
                if ( defaultLocale.equals( locale ) )
                {
View Full Code Here

TOP

Related Classes of org.apache.maven.doxia.siterenderer.SiteRenderingContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.