-
Notifications
You must be signed in to change notification settings - Fork 153
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
80 changed files
with
1,395 additions
and
425 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
enforcer-api/src/main/java/org/apache/maven/enforcer/rule/api/AbstractEnforcerRule.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/* | ||
* 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. | ||
*/ | ||
package org.apache.maven.enforcer.rule.api; | ||
|
||
/** | ||
* Entry point for custom {@code Enforcer Rule}. | ||
* | ||
* @author Slawomir Jaranowski | ||
* @since 3.2.0 | ||
*/ | ||
public abstract class AbstractEnforcerRule implements EnforcerRuleBase { | ||
|
||
/** | ||
* EnforcerLogger instance | ||
*/ | ||
private EnforcerLogger log; | ||
|
||
/** | ||
* Enforcer Rule execution level | ||
*/ | ||
private EnforcerLevel level = EnforcerLevel.ERROR; | ||
|
||
/** | ||
* Used by {@code EnforcerMojo} to inject logger instance | ||
* | ||
* @param log an {@link EnforcerLogger} instance | ||
*/ | ||
public void setLog(EnforcerLogger log) { | ||
this.log = log; | ||
} | ||
|
||
/** | ||
* Provide an {@link EnforcerLogger} instance for Rule | ||
* | ||
* @return an {@link EnforcerLogger} instance | ||
*/ | ||
public EnforcerLogger getLog() { | ||
return log; | ||
} | ||
|
||
/** | ||
* Current Enforcer execution level | ||
* | ||
* @return an Enforcer execution level | ||
*/ | ||
public EnforcerLevel getLevel() { | ||
return level; | ||
} | ||
|
||
/** | ||
* If the rule is to be cached during session scope, whole executing of Maven build, | ||
* this id is used as part of the key. | ||
* <p> | ||
* Rule of the same class and the same cache id will be executed once. | ||
* | ||
* @return id to be used by the Enforcer to determine uniqueness of cache results. | ||
* Return {@code null} disable cache of rule executing. | ||
*/ | ||
public String getCacheId() { | ||
return null; | ||
} | ||
|
||
/** | ||
* This is the interface into the rule. This method should throw an exception | ||
* containing a reason message if the rule fails the check. The plugin will | ||
* then decide based on the fail flag and rule level if it should stop or just log the | ||
* message as a warning. | ||
* | ||
* @throws EnforcerRuleException the enforcer rule exception | ||
* @throws EnforcerRuleError in order to brake a build immediately | ||
*/ | ||
public abstract void execute() throws EnforcerRuleException; | ||
} |
110 changes: 110 additions & 0 deletions
110
enforcer-api/src/main/java/org/apache/maven/enforcer/rule/api/EnforcerLogger.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
/* | ||
* 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. | ||
*/ | ||
package org.apache.maven.enforcer.rule.api; | ||
|
||
import java.util.function.Supplier; | ||
|
||
/** | ||
* Logger used by enforcer rule. | ||
* | ||
* @author Slawomir Jaranowski | ||
* @since 3.2.0 | ||
*/ | ||
public interface EnforcerLogger { | ||
|
||
/** | ||
* Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}. | ||
* | ||
* @param message a massage to log | ||
*/ | ||
void warnOrError(CharSequence message); | ||
|
||
/** | ||
* Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}. | ||
* <p> | ||
* {@code messageSupplier} will be evaluate only when corresponding log level is enabled. | ||
* | ||
* @param messageSupplier a supplier for message to log | ||
*/ | ||
void warnOrError(Supplier<CharSequence> messageSupplier); | ||
|
||
/** | ||
* Log message in {@code debug} level. | ||
* | ||
* @param message a massage to log | ||
*/ | ||
void debug(CharSequence message); | ||
|
||
/** | ||
* Log message in {@code debug} level. | ||
* <p> | ||
* {@code messageSupplier} will be evaluate only when corresponding log level is enabled. | ||
* | ||
* @param messageSupplier a supplier for message to log | ||
*/ | ||
void debug(Supplier<CharSequence> messageSupplier); | ||
|
||
/** | ||
* Log message in {@code info} level. | ||
* | ||
* @param message a massage to log | ||
*/ | ||
void info(CharSequence message); | ||
|
||
/** | ||
* Log message in {@code info} level. | ||
* <p> | ||
* {@code messageSupplier} will be evaluate only when corresponding log level is enabled. | ||
* | ||
* @param messageSupplier a supplier for message to log | ||
*/ | ||
void info(Supplier<CharSequence> messageSupplier); | ||
|
||
/** | ||
* Log message in {@code warn} level. | ||
* | ||
* @param message a massage to log | ||
*/ | ||
void warn(CharSequence message); | ||
|
||
/** | ||
* Log message in {@code warn} level. | ||
* <p> | ||
* {@code messageSupplier} will be evaluate only when corresponding log level is enabled. | ||
* | ||
* @param messageSupplier a supplier for message to log | ||
*/ | ||
void warn(Supplier<CharSequence> messageSupplier); | ||
|
||
/** | ||
* Log message in {@code error} level. | ||
* | ||
* @param message a massage to log | ||
*/ | ||
void error(CharSequence message); | ||
|
||
/** | ||
* Log message in {@code error} level. | ||
* <p> | ||
* {@code messageSupplier} will be evaluate only when corresponding log level is enabled. | ||
* | ||
* @param messageSupplier a supplier for message to log | ||
*/ | ||
void error(Supplier<CharSequence> messageSupplier); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
enforcer-api/src/main/java/org/apache/maven/enforcer/rule/api/EnforcerRuleBase.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
/* | ||
* 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. | ||
*/ | ||
package org.apache.maven.enforcer.rule.api; | ||
|
||
/** | ||
* Base interface for old and new API. | ||
* <p> | ||
* Used for internal purpose. | ||
* | ||
* @author Slawomir Jaranowski | ||
* @since 3.2.0 | ||
*/ | ||
public interface EnforcerRuleBase {} |
Oops, something went wrong.