Skip to content

Commit

Permalink
Use @Inject annotation instead of @Requirement / Change dict to M…
Browse files Browse the repository at this point in the history
…ap<String, String>
  • Loading branch information
trustin committed Apr 22, 2018
1 parent 59fd029 commit fa82fef
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 29 deletions.
53 changes: 29 additions & 24 deletions src/main/java/kr/motd/maven/os/DetectExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.util.Properties;

import javax.annotation.Nullable;
import javax.inject.Inject;

import org.apache.maven.AbstractMavenLifecycleParticipant;
import org.apache.maven.MavenExecutionException;
Expand All @@ -37,7 +38,6 @@
import org.apache.maven.model.Plugin;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.InterpolationFilterReader;

Expand Down Expand Up @@ -67,23 +67,26 @@
@Component(role = AbstractMavenLifecycleParticipant.class, hint = "detect-os")
public class DetectExtension extends AbstractMavenLifecycleParticipant {

@Requirement
@SuppressWarnings("UnusedDeclaration")
private Logger logger;
private final Logger logger;
private final Detector detector;

private final Detector detector = new Detector() {
@Override
protected void log(String message) {
logger.info(message);
}
@Inject
public DetectExtension(final Logger logger) {
this.logger = logger;
detector = new Detector() {
@Override
protected void log(String message) {
logger.info(message);
}

@Override
protected void logProperty(String name, String value) {
if (logger.isInfoEnabled()) {
logger.info(name + ": " + value);
@Override
protected void logProperty(String name, String value) {
if (logger.isInfoEnabled()) {
logger.info(name + ": " + value);
}
}
}
};
};
}

@Override
public void afterProjectsRead(MavenSession session) throws MavenExecutionException {
Expand All @@ -98,7 +101,7 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti
}

// Generate the dictionary.
final Map<String, Object> dict = new LinkedHashMap<String, Object>();
final Map<String, String> dict = new LinkedHashMap<String, String>();
dict.put(Detector.DETECTED_NAME, sessionProps.getProperty(Detector.DETECTED_NAME));
dict.put(Detector.DETECTED_ARCH, sessionProps.getProperty(Detector.DETECTED_ARCH));
dict.put(Detector.DETECTED_CLASSIFIER, sessionProps.getProperty(Detector.DETECTED_CLASSIFIER));
Expand Down Expand Up @@ -130,12 +133,12 @@ private static List<String> getClassifierWithLikes(MavenSession session) {
props.getProperty(DetectMojo.CLASSIFIER_WITH_LIKES_PROPERTY));
}

private void injectSession(MavenSession session, Map<String, Object> dict) {
private void injectSession(MavenSession session, Map<String, String> dict) {
final Properties sessionExecProps = session.getSystemProperties();
sessionExecProps.setProperty(Detector.DETECTED_NAME, String.valueOf(dict.get(Detector.DETECTED_NAME)));
sessionExecProps.setProperty(Detector.DETECTED_ARCH, String.valueOf(dict.get(Detector.DETECTED_ARCH)));
sessionExecProps.setProperty(Detector.DETECTED_CLASSIFIER, String.valueOf(dict.get(Detector.DETECTED_CLASSIFIER)));
for (Map.Entry<String, Object> entry : dict.entrySet()) {
for (Map.Entry<String, String> entry : dict.entrySet()) {
if (entry.getKey().startsWith(Detector.DETECTED_RELEASE)) {
sessionExecProps.setProperty(entry.getKey(), String.valueOf(entry.getValue()));
}
Expand All @@ -153,7 +156,7 @@ private void injectSession(MavenSession session, Map<String, Object> dict) {
RepositorySessionInjector.injectRepositorySession(logger, session, dict);
}

private static void interpolate(Map<String, Object> dict, MavenProject p) {
private static void interpolate(Map<String, String> dict, MavenProject p) {
if (p == null) {
return;
}
Expand All @@ -165,9 +168,9 @@ private static void interpolate(Map<String, Object> dict, MavenProject p) {
}
}

private static void interpolate(Map<String, Object> dict, ModelBase model) {
private static void interpolate(Map<String, String> dict, ModelBase model) {
final Properties modelProps = model.getProperties();
for (Map.Entry<String, Object> e : dict.entrySet()) {
for (Map.Entry<String, String> e : dict.entrySet()) {
modelProps.setProperty(e.getKey(), String.valueOf(e.getValue()));
}
interpolate(dict, model.getDependencies());
Expand All @@ -192,7 +195,7 @@ private static void interpolate(Map<String, Object> dict, ModelBase model) {
}
}

private static void interpolate(Map<String, Object> dict, Iterable<Dependency> dependencies) {
private static void interpolate(Map<String, String> dict, Iterable<Dependency> dependencies) {
if (dependencies == null) {
return;
}
Expand All @@ -211,7 +214,7 @@ private static void interpolate(Map<String, Object> dict, Iterable<Dependency> d
}

@Nullable
private static String interpolate(Map<String, Object> dict, String value) {
private static String interpolate(Map<String, String> dict, String value) {
if (value == null) {
return null;
}
Expand All @@ -222,7 +225,9 @@ private static String interpolate(Map<String, Object> dict, String value) {
break;
}

final InterpolationFilterReader reader = new InterpolationFilterReader(new StringReader(value), dict);
@SuppressWarnings({ "unchecked", "rawtypes" })
final InterpolationFilterReader reader = new InterpolationFilterReader(
new StringReader(value), (Map<String, Object>) (Map) dict);
final StringWriter writer = new StringWriter(value.length());
for (;;) {
final int ch;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/kr/motd/maven/os/RepositorySessionInjector.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
final class RepositorySessionInjector {
@SuppressWarnings("unchecked")
static void injectRepositorySession(
Logger logger, MavenSession session, Map<String, Object> dict) {
Logger logger, MavenSession session, Map<String, String> dict) {
// Inject repository session properties.
try {
Map<String, String> repoSessionProps;
Expand All @@ -24,16 +24,16 @@ static void injectRepositorySession(
final Method getSystemPropertiesMethod = cls.getDeclaredMethod("getSystemProperties");
repoSessionProps = (Map<String, String>) getSystemPropertiesMethod.invoke(repoSession);
try {
for (Map.Entry<String, Object> e : dict.entrySet()) {
repoSessionProps.put(e.getKey(), String.valueOf(e.getValue()));
for (Map.Entry<String, String> e : dict.entrySet()) {
repoSessionProps.put(e.getKey(), e.getValue());
}
} catch (Exception ex) {
// Time to hack: RepositorySystemSession.getSystemProperties() returned an immutable map.
final Field f = cls.getDeclaredField("systemProperties");
f.setAccessible(true);
repoSessionProps = (Map<String, String>) f.get(repoSession);
for (Map.Entry<String, Object> e : dict.entrySet()) {
repoSessionProps.put(e.getKey(), String.valueOf(e.getValue()));
for (Map.Entry<String, String> e : dict.entrySet()) {
repoSessionProps.put(e.getKey(), e.getValue());
}
}
} catch (Throwable t) {
Expand Down

0 comments on commit fa82fef

Please sign in to comment.