o move the reporting api up a level to sit peer to the plugin api

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@573115 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-09-06 00:24:50 +00:00
parent 9ae1655a56
commit 2f32ccd361
6 changed files with 252 additions and 0 deletions

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
<version>2.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-reporting-api</artifactId>
<name>Maven Reporting API</name>
<developers>
<developer>
<id>vsiveton</id>
<name>Vincent Siveton</name>
<email>vincent.siveton@gmail.com</email>
<roles>
<role>Java Developer</role>
</roles>
<timezone>-5</timezone>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-sink-api</artifactId>
<version>1.0-alpha-9-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,40 @@
package org.apache.maven.reporting;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkFactory;
import java.util.Locale;
/**
* Temporary class for backwards compatibility. This method
* should be moved to the MavenReport class, and the other 'generate'
* method should be dropped. But that will render all reporting mojo's
* uncompilable.
*
* @author <a href="mailto:kenney@apache.org">Kenney Westerhof</a>
*/
public interface MavenMultiPageReport
extends MavenReport
{
void generate( Sink sink, SinkFactory sinkFactory, Locale locale )
throws MavenReportException;
}

View File

@ -0,0 +1,64 @@
package org.apache.maven.reporting;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.codehaus.doxia.sink.Sink;
import java.io.File;
import java.util.Locale;
/**
* The basis for a Maven report.
*
* @author Brett Porter
* @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
*/
public interface MavenReport
{
String ROLE = MavenReport.class.getName();
/** @deprecated For removal in Maven 3.0 or when reporting-api is decoupled from the core, as categories are dynamic. */
String CATEGORY_PROJECT_INFORMATION = "Project Info";
/** @deprecated For removal in Maven 3.0 or when reporting-api is decoupled from the core, as categories are dynamic. */
String CATEGORY_PROJECT_REPORTS = "Project Reports";
// eventually, we must replace this with the o.a.m.d.s.Sink class as a parameter
void generate( Sink sink, Locale locale )
throws MavenReportException;
String getOutputName();
String getName( Locale locale );
String getCategoryName();
String getDescription( Locale locale );
// TODO: remove?
void setReportOutputDirectory( File outputDirectory );
File getReportOutputDirectory();
boolean isExternalReport();
boolean canGenerateReport();
}

View File

@ -0,0 +1,40 @@
package org.apache.maven.reporting;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/**
* An exception occurring during the execution of a Maven report.
*
* @author Brett Porter
* @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
*/
public class MavenReportException extends Exception
{
public MavenReportException( String msg )
{
super( msg );
}
public MavenReportException( String msg, Exception e )
{
super( msg, e );
}
}

View File

@ -0,0 +1,33 @@
package org.apache.maven.reporting;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
* @todo Later it may be appropriate to create something like a VelocityMavenReportRenderer that could take a velocity template and pipe that through Doxia rather than coding them up like this.
*/
public interface MavenReportRenderer
{
String getTitle();
void render();
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project name="${project.name}">
<body>
${reports}
</body>
</project>