Author: brianf
Date: Mon Apr 2 18:56:19 2007
New Revision: 524996
URL: http://svn.apache.org/viewvc?view=rev&rev=524996
Log:
created site with sample
Added:
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/pom.xml
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/myCustomRule.java
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/usage-pom.xml
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/usage-pom.xml
maven/shared/trunk/maven-enforcer-rule-api/src/site/resources/
maven/shared/trunk/maven-enforcer-rule-api/src/site/resources/custom-rule.zip
(with props)
Modified:
maven/shared/trunk/maven-enforcer-rule-api/pom.xml
maven/shared/trunk/maven-enforcer-rule-api/src/main/java/org/apache/maven/shared/enforcer/rule/api/EnforcerRuleHelper.java
maven/shared/trunk/maven-enforcer-rule-api/src/site/apt/writing-a-custom-rule.apt
maven/shared/trunk/maven-enforcer-rule-api/src/site/site.xml
Modified: maven/shared/trunk/maven-enforcer-rule-api/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/pom.xml?view=diff&rev=524996&r1=524995&r2=524996
==============================================================================
--- maven/shared/trunk/maven-enforcer-rule-api/pom.xml (original)
+++ maven/shared/trunk/maven-enforcer-rule-api/pom.xml Mon Apr 2 18:56:19 2007
@@ -108,4 +108,12 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
</project>
Added: maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/pom.xml?view=auto&rev=524996
==============================================================================
--- maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/pom.xml
(added)
+++ maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/pom.xml
Mon Apr 2 18:56:19 2007
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>your.group</groupId>
+ <artifactId>custom-rule</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0</version>
+ <name>My Custom Rule</name>
+ <description>This is my custom rule.</description>
+ <build>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-enforcer-rule-api</artifactId>
+ <version>1.0-alpha-1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-9</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Added:
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/myCustomRule.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/myCustomRule.java?view=auto&rev=524996
==============================================================================
---
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/myCustomRule.java
(added)
+++
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/main/java/org/apache/maven/shared/rule/myCustomRule.java
Mon Apr 2 18:56:19 2007
@@ -0,0 +1,65 @@
+package org.apache.maven.shared.rule;
+
+import java.io.File;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.RuntimeInformation;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.shared.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.shared.enforcer.rule.api.EnforcerRuleHelper;
+import
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brian Fox</a>
+ */
+public class myCustomRule
+ implements EnforcerRule
+{
+ /**
+ * Simple param. This rule will fail if the value is true.
+ */
+ private boolean shouldIfail = false;
+
+ public void execute( EnforcerRuleHelper helper )
+ throws EnforcerRuleException
+ {
+ Log log = helper.getLog();
+
+ try
+ {
+ // get the various expressions out of the helper.
+ MavenProject project = (MavenProject) helper.evaluate(
"${project}" );
+ MavenSession session = (MavenSession) helper.evaluate(
"${session}" );
+ String target = (String) helper.evaluate(
"${project.build.directory}" );
+ String artifactId = (String) helper.evaluate(
"${project.artifactId}" );
+
+ // retreive any component out of the session directly
+ ArtifactResolver resolver = (ArtifactResolver)
helper.getComponent( ArtifactResolver.class );
+ RuntimeInformation rti = (RuntimeInformation) helper.getComponent(
RuntimeInformation.class );
+
+ log.info( "Retrieved Target Folder: " + target );
+ log.info( "Retrieved ArtifactId: " +artifactId );
+ log.info( "Retrieved Project: " + project );
+ log.info( "Retrieved RuntimeInfo: " + rti );
+ log.info( "Retrieved Session: " + session );
+ log.info( "Retrieved Resolver: " + resolver );
+
+ if ( this.shouldIfail )
+ {
+ throw new EnforcerRuleException( "Failing because my param
said so." );
+ }
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new EnforcerRuleException( "Unable to lookup a component " +
e.getLocalizedMessage(), e );
+ }
+ catch ( ExpressionEvaluationException e )
+ {
+ throw new EnforcerRuleException( "Unable to lookup an expression "
+ e.getLocalizedMessage(), e );
+ }
+ }
+}
Added:
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/usage-pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/usage-pom.xml?view=auto&rev=524996
==============================================================================
---
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/usage-pom.xml
(added)
+++
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/src/usage-pom.xml
Mon Apr 2 18:56:19 2007
@@ -0,0 +1,43 @@
+<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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin-it1</artifactId>
+ <version>1</version>
+ <packaging>pom</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>your.group</groupId>
+
<artifactId>custom-rule</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>enforce</id>
+ <configuration>
+ <rules>
+
<requireJavaVersion>
+
<version>[1.3,1.6]</version>
+
</requireJavaVersion>
+
<requireMavenVersion>
+
<version>2.0.6</version>
+
</requireMavenVersion>
+ <myCustomRule
implementation="org.apache.maven.shared.rule.myCustomRule">
+
<shouldIfail>false</shouldIfail>
+ </myCustomRule>
+ </rules>
+ </configuration>
+ <goals>
+
<goal>enforce-once</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added:
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/usage-pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/usage-pom.xml?view=auto&rev=524996
==============================================================================
---
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/usage-pom.xml
(added)
+++
maven/shared/trunk/maven-enforcer-rule-api/src/custom-rule-sample/usage-pom.xml
Mon Apr 2 18:56:19 2007
@@ -0,0 +1,43 @@
+<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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin-it1</artifactId>
+ <version>1</version>
+ <packaging>pom</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>your.group</groupId>
+
<artifactId>custom-rule</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>enforce</id>
+ <configuration>
+ <rules>
+
<requireJavaVersion>
+
<version>[1.3,1.6]</version>
+
</requireJavaVersion>
+
<requireMavenVersion>
+
<version>2.0.6</version>
+
</requireMavenVersion>
+ <myCustomRule
implementation="org.apache.maven.shared.rule.myCustomRule">
+
<shouldIfail>false</shouldIfail>
+ </myCustomRule>
+ </rules>
+ </configuration>
+ <goals>
+
<goal>enforce-once</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Modified:
maven/shared/trunk/maven-enforcer-rule-api/src/main/java/org/apache/maven/shared/enforcer/rule/api/EnforcerRuleHelper.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/main/java/org/apache/maven/shared/enforcer/rule/api/EnforcerRuleHelper.java?view=diff&rev=524996&r1=524995&r2=524996
==============================================================================
---
maven/shared/trunk/maven-enforcer-rule-api/src/main/java/org/apache/maven/shared/enforcer/rule/api/EnforcerRuleHelper.java
(original)
+++
maven/shared/trunk/maven-enforcer-rule-api/src/main/java/org/apache/maven/shared/enforcer/rule/api/EnforcerRuleHelper.java
Mon Apr 2 18:56:19 2007
@@ -19,10 +19,8 @@
* under the License.
*/
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.execution.RuntimeInformation;
import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.project.MavenProject;
+import
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
/**
@@ -33,17 +31,15 @@
* @version $Id$
*/
public interface EnforcerRuleHelper
+ extends ExpressionEvaluator
{
public Log getLog();
- public MavenSession getSession();
-
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.apache.maven.shared.enforcer.rule.api.EnforcerRuleHelper#getRuntimeInformation()
+ */
public Object getComponent( Class clazz )
- throws ComponentLookupException;
-
- public MavenProject getProject()
- throws ComponentLookupException;
-
- public RuntimeInformation getRuntimeInformation()
throws ComponentLookupException;
}
Modified:
maven/shared/trunk/maven-enforcer-rule-api/src/site/apt/writing-a-custom-rule.apt
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/site/apt/writing-a-custom-rule.apt?view=diff&rev=524996&r1=524995&r2=524996
==============================================================================
---
maven/shared/trunk/maven-enforcer-rule-api/src/site/apt/writing-a-custom-rule.apt
(original)
+++
maven/shared/trunk/maven-enforcer-rule-api/src/site/apt/writing-a-custom-rule.apt
Mon Apr 2 18:56:19 2007
@@ -28,6 +28,8 @@
Custom rules are easy to make with the <<<maven-enforcer-rule-api>>>. These
rules can then be invoked with the
{{{http://maven.apache.org/plugins/maven-enforcer-plugin}maven-enforcer-plugin}}.
+ Note: The files shown below may be downloaded here:
{{{custom-rule.zip}custom-rule.zip}}
+
[[1]] First make a new jar project starting with the sample pom below:
+---+
@@ -121,14 +123,18 @@
try
{
- // get the various components out of the helper.
- MavenProject project = helper.getProject();
- RuntimeInformation rti = helper.getRuntimeInformation();
- MavenSession session = helper.getSession();
+ // get the various expressions out of the helper.
+ MavenProject project = (MavenProject) helper.evaluate(
"${project}" );
+ MavenSession session = (MavenSession) helper.evaluate(
"${session}" );
+ String target = (String) helper.evaluate(
"${project.build.directory}" );
+ String artifactId = (String) helper.evaluate(
"${project.artifactId}" );
// retreive any component out of the session directly
ArtifactResolver resolver = (ArtifactResolver)
helper.getComponent( ArtifactResolver.class );
+ RuntimeInformation rti = (RuntimeInformation) helper.getComponent(
RuntimeInformation.class );
+ log.info( "Retrieved Target Folder: " + target );
+ log.info( "Retrieved ArtifactId: " +artifactId );
log.info( "Retrieved Project: " + project );
log.info( "Retrieved RuntimeInfo: " + rti );
log.info( "Retrieved Session: " + session );
Added:
maven/shared/trunk/maven-enforcer-rule-api/src/site/resources/custom-rule.zip
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/site/resources/custom-rule.zip?view=auto&rev=524996
==============================================================================
Binary file - no diff available.
Propchange:
maven/shared/trunk/maven-enforcer-rule-api/src/site/resources/custom-rule.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: maven/shared/trunk/maven-enforcer-rule-api/src/site/site.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-enforcer-rule-api/src/site/site.xml?view=diff&rev=524996&r1=524995&r2=524996
==============================================================================
--- maven/shared/trunk/maven-enforcer-rule-api/src/site/site.xml (original)
+++ maven/shared/trunk/maven-enforcer-rule-api/src/site/site.xml Mon Apr 2
18:56:19 2007
@@ -1,29 +1,62 @@
<?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.
- *
--->
+ ~ Copyright 2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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>
+<project name="Shared">
+ <!-- TODO: banners, skin, publish date, version should be inherited from
Maven itself -->
+ <bannerLeft>
+ <name>${project.name}</name>
+ <src>http://maven.apache.org/images/apache-maven-project-2.png</src>
+ <href>http://maven.apache.org/</href>
+ </bannerLeft>
+ <bannerRight>
+ <src>http://maven.apache.org/images/maven-logo-2.gif</src>
+ </bannerRight>
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-stylus-skin</artifactId>
+ </skin>
+ <publishDate format="dd MMM yyyy" position="left" />
+ <version position="left" />
<body>
+ <!-- TODO: Link, head, reports should be inherited -->
+ <!-- TODO: use breadcrumbs more structure, links for links, and inherit
subprojects as a menu or not at all -->
+ <links>
+ <item name="Apache" href="http://www.apache.org/"/>
+ <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
+ <item name="Maven 2.x" href="http://maven.apache.org/"/>
+ <item name="Maven 2.x Plugins" href="http://maven.apache.org/plugins/"/>
+ <item name="Continuum" href="http://maven.apache.org/continuum"/>
+ <item name="SCM" href="http://maven.apache.org/scm"/>
+ <item name="Wagon" href="http://maven.apache.org/wagon"/>
+ <item name="JXR" href="http://maven.apache.org/jxr"/>
+ <item name="Doxia" href="http://maven.apache.org/doxia"/>
+ </links>
+ <head>
+ <script src="http://www.google-analytics.com/urchin.js"
type="text/javascript">
+ </script>
+ <script type="text/javascript">
+ _uacct = "UA-140879-1";
+ urchinTracker();
+ </script>
+ </head>
<menu name="Overview">
<item name="Introduction" href="index.html"/>
<item name="Writing a custom rule" href="writing-a-custom-rule.html"/>
</menu>
+ <menu ref="reports" inherit="bottom" />
</body>
-</project>
+</project>
\ No newline at end of file