Maybe this even should bump the version to v3.1? /Anders
On Fri, Sep 7, 2012 at 5:37 PM, Olivier Lamy <ol...@apache.org> wrote: > Maybe I miss something but we don't have any associated jira entry for > reference in release notes neither core it test. > Do you have a bit of time for that ? > > Thanks > -- > Olivier > 2012/9/3 <jvan...@apache.org>: >> Author: jvanzyl >> Date: Mon Sep 3 01:07:31 2012 >> New Revision: 1380105 >> >> URL: http://svn.apache.org/viewvc?rev=1380105&view=rev >> Log: >> o Enabled support and discovery of JSR-330 components >> >> o Added Slf4j logger factory to support generic JSR-330 logging >> >> o Exported Guice package for components that access Guice (or better it's >> injector) directly >> >> Widen export of Guice packages (not ideal, need to look into ways to avoid >> this) >> >> o use specific exports >> >> o for now we will attempt to hide all of Guice in plugin realms and we'll do >> a bit of testing >> >> closes #3 >> >> Added: >> >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLogger.java >> >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLoggerFactory.java >> Modified: >> maven/maven-3/trunk/apache-maven/pom.xml >> >> maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java >> maven/maven-3/trunk/maven-embedder/pom.xml >> >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java >> maven/maven-3/trunk/pom.xml >> >> Modified: maven/maven-3/trunk/apache-maven/pom.xml >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/apache-maven/pom.xml?rev=1380105&r1=1380104&r2=1380105&view=diff >> ============================================================================== >> --- maven/maven-3/trunk/apache-maven/pom.xml (original) >> +++ maven/maven-3/trunk/apache-maven/pom.xml Mon Sep 3 01:07:31 2012 >> @@ -83,6 +83,10 @@ >> <groupId>org.sonatype.aether</groupId> >> <artifactId>aether-connector-wagon</artifactId> >> </dependency> >> + <dependency> >> + <groupId>org.slf4j</groupId> >> + <artifactId>slf4j-nop</artifactId> >> + </dependency> >> </dependencies> >> >> <build> >> >> Modified: >> maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java?rev=1380105&r1=1380104&r2=1380105&view=diff >> ============================================================================== >> --- >> maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java >> (original) >> +++ >> maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java >> Mon Sep 3 01:07:31 2012 >> @@ -198,6 +198,26 @@ public class DefaultClassRealmManager >> imports.put( "org.codehaus.plexus.util.xml.pull.XmlPullParser", >> coreRealm ); >> imports.put( >> "org.codehaus.plexus.util.xml.pull.XmlPullParserException", coreRealm ); >> imports.put( "org.codehaus.plexus.util.xml.pull.XmlSerializer", >> coreRealm ); >> + >> + // javax.inject, sisu-inject (JSR-330) >> + imports.put( "javax.inject.*", coreRealm ); >> + imports.put( "javax.enterprise.inject.*", coreRealm ); >> + imports.put( "org.sonatype.inject.*", coreRealm ); >> + imports.put( "org.slf4j.*", coreRealm ); >> + >> + // com.google >> + // >> + // We may potentially want to export these, but right now I'm not >> sure that anything Guice specific needs >> + // to be made available to plugin authors. If we find people are >> getting fancy and want to take advantage >> + // of Guice specifics we can expose that later. Really some testing >> needs to be done to see full hiding >> + // of Guice has any impact on what we may categorize as a standard >> JSR-330 based Tesla/Maven plugin. >> + // >> + // imports.put( "com.google.inject.*", coreRealm ); >> + // imports.put( "com.google.inject.binder.*", coreRealm ); >> + // imports.put( "com.google.inject.matcher.*", coreRealm ); >> + // imports.put( "com.google.inject.name.*", coreRealm ); >> + // imports.put( "com.google.inject.spi.*", coreRealm ); >> + // imports.put( "com.google.inject.util.*", coreRealm ); >> } >> >> /** >> >> Modified: maven/maven-3/trunk/maven-embedder/pom.xml >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/pom.xml?rev=1380105&r1=1380104&r2=1380105&view=diff >> ============================================================================== >> --- maven/maven-3/trunk/maven-embedder/pom.xml (original) >> +++ maven/maven-3/trunk/maven-embedder/pom.xml Mon Sep 3 01:07:31 2012 >> @@ -70,6 +70,10 @@ >> <groupId>org.sonatype.plexus</groupId> >> <artifactId>plexus-cipher</artifactId> >> </dependency> >> + <dependency> >> + <groupId>org.slf4j</groupId> >> + <artifactId>slf4j-api</artifactId> >> + </dependency> >> <!-- CLI --> >> <dependency> >> <groupId>commons-cli</groupId> >> >> Modified: >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=1380105&r1=1380104&r2=1380105&view=diff >> ============================================================================== >> --- >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java >> (original) >> +++ >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java >> Mon Sep 3 01:07:31 2012 >> @@ -59,12 +59,14 @@ import org.apache.maven.settings.buildin >> import org.codehaus.plexus.ContainerConfiguration; >> import org.codehaus.plexus.DefaultContainerConfiguration; >> import org.codehaus.plexus.DefaultPlexusContainer; >> +import org.codehaus.plexus.PlexusConstants; >> import org.codehaus.plexus.PlexusContainer; >> import org.codehaus.plexus.classworlds.ClassWorld; >> import org.codehaus.plexus.classworlds.realm.ClassRealm; >> import >> org.codehaus.plexus.component.repository.exception.ComponentLookupException; >> import org.codehaus.plexus.logging.Logger; >> import org.codehaus.plexus.util.StringUtils; >> +import org.slf4j.ILoggerFactory; >> import org.sonatype.aether.transfer.TransferListener; >> import org.sonatype.plexus.components.cipher.DefaultPlexusCipher; >> import org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher; >> @@ -72,6 +74,8 @@ import org.sonatype.plexus.components.se >> import org.sonatype.plexus.components.sec.dispatcher.SecUtil; >> import org.sonatype.plexus.components.sec.dispatcher.model.SettingsSecurity; >> >> +import com.google.inject.AbstractModule; >> + >> // TODO: push all common bits back to plexus cli and prepare for transition >> to Guice. We don't need 50 ways to make CLIs >> >> /** >> @@ -372,17 +376,29 @@ public class MavenCli >> { >> logger = setupLogger( cliRequest ); >> >> + final MavenLoggerManager loggerManager = new >> MavenLoggerManager( logger ) ; >> + >> ContainerConfiguration cc = new DefaultContainerConfiguration() >> .setClassWorld( cliRequest.classWorld ) >> .setRealm( setupContainerRealm( cliRequest ) ) >> + .setClassPathScanning( PlexusConstants.SCANNING_INDEX ) >> + .setAutoWiring( true ) >> .setName( "maven" ); >> >> - container = new DefaultPlexusContainer( cc ); >> + container = new DefaultPlexusContainer( cc, new AbstractModule() >> + { >> + >> + protected void configure() >> + { >> + bind( ILoggerFactory.class ).toInstance( new >> PlexusLoggerFactory( loggerManager ) ); >> + } >> + >> + } ); >> >> // NOTE: To avoid inconsistencies, we'll use the TCCL >> exclusively for lookups >> container.setLookupRealm( null ); >> >> - container.setLoggerManager( new MavenLoggerManager( logger ) ); >> + container.setLoggerManager( loggerManager ); >> >> customizeContainer( container ); >> >> >> Added: >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLogger.java >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLogger.java?rev=1380105&view=auto >> ============================================================================== >> --- >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLogger.java >> (added) >> +++ >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLogger.java >> Mon Sep 3 01:07:31 2012 >> @@ -0,0 +1,358 @@ >> +package org.apache.maven.cli; >> + >> +/* >> + * 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.slf4j.Logger; >> +import org.slf4j.Marker; >> +import org.slf4j.helpers.FormattingTuple; >> +import org.slf4j.helpers.MessageFormatter; >> + >> +/** >> + * A Slf4j logger bridged onto a Plexus logger. >> + */ >> +class PlexusLogger >> + implements Logger >> +{ >> + >> + private final org.codehaus.plexus.logging.Logger logger; >> + >> + public PlexusLogger( org.codehaus.plexus.logging.Logger logger ) >> + { >> + this.logger = logger; >> + } >> + >> + public String getName() >> + { >> + return logger.getName(); >> + } >> + >> + public boolean isTraceEnabled() >> + { >> + return isDebugEnabled(); >> + } >> + >> + public void trace( String msg ) >> + { >> + debug( msg ); >> + } >> + >> + public void trace( String format, Object arg ) >> + { >> + debug( format, arg ); >> + } >> + >> + public void trace( String format, Object arg1, Object arg2 ) >> + { >> + debug( format, arg1, arg2 ); >> + } >> + >> + public void trace( String format, Object[] argArray ) >> + { >> + debug( format, argArray ); >> + } >> + >> + public void trace( String msg, Throwable t ) >> + { >> + debug( msg, t ); >> + } >> + >> + public boolean isTraceEnabled( Marker marker ) >> + { >> + return isTraceEnabled(); >> + } >> + >> + public void trace( Marker marker, String msg ) >> + { >> + trace( msg ); >> + } >> + >> + public void trace( Marker marker, String format, Object arg ) >> + { >> + trace( format, arg ); >> + } >> + >> + public void trace( Marker marker, String format, Object arg1, Object >> arg2 ) >> + { >> + trace( format, arg1, arg2 ); >> + } >> + >> + public void trace( Marker marker, String format, Object[] argArray ) >> + { >> + trace( format, argArray ); >> + } >> + >> + public void trace( Marker marker, String msg, Throwable t ) >> + { >> + trace( msg, t ); >> + } >> + >> + public boolean isDebugEnabled() >> + { >> + return logger.isDebugEnabled(); >> + } >> + >> + public void debug( String msg ) >> + { >> + logger.debug( msg ); >> + } >> + >> + public void debug( String format, Object arg ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg ); >> + logger.debug( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void debug( String format, Object arg1, Object arg2 ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg1, arg2 ); >> + logger.debug( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void debug( String format, Object[] argArray ) >> + { >> + FormattingTuple ft = MessageFormatter.arrayFormat( format, argArray >> ); >> + logger.debug( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void debug( String msg, Throwable t ) >> + { >> + logger.debug( msg, t ); >> + } >> + >> + public boolean isDebugEnabled( Marker marker ) >> + { >> + return isDebugEnabled(); >> + } >> + >> + public void debug( Marker marker, String msg ) >> + { >> + debug( msg ); >> + } >> + >> + public void debug( Marker marker, String format, Object arg ) >> + { >> + debug( format, arg ); >> + } >> + >> + public void debug( Marker marker, String format, Object arg1, Object >> arg2 ) >> + { >> + debug( format, arg1, arg2 ); >> + } >> + >> + public void debug( Marker marker, String format, Object[] argArray ) >> + { >> + debug( format, argArray ); >> + } >> + >> + public void debug( Marker marker, String msg, Throwable t ) >> + { >> + debug( msg, t ); >> + } >> + >> + public boolean isInfoEnabled() >> + { >> + return logger.isInfoEnabled(); >> + } >> + >> + public void info( String msg ) >> + { >> + logger.info( msg ); >> + } >> + >> + public void info( String format, Object arg ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg ); >> + logger.info( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void info( String format, Object arg1, Object arg2 ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg1, arg2 ); >> + logger.info( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void info( String format, Object[] argArray ) >> + { >> + FormattingTuple ft = MessageFormatter.arrayFormat( format, argArray >> ); >> + logger.info( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void info( String msg, Throwable t ) >> + { >> + logger.info( msg, t ); >> + } >> + >> + public boolean isInfoEnabled( Marker marker ) >> + { >> + return isInfoEnabled(); >> + } >> + >> + public void info( Marker marker, String msg ) >> + { >> + info( msg ); >> + } >> + >> + public void info( Marker marker, String format, Object arg ) >> + { >> + info( format, arg ); >> + } >> + >> + public void info( Marker marker, String format, Object arg1, Object >> arg2 ) >> + { >> + info( format, arg1, arg2 ); >> + } >> + >> + public void info( Marker marker, String format, Object[] argArray ) >> + { >> + info( format, argArray ); >> + } >> + >> + public void info( Marker marker, String msg, Throwable t ) >> + { >> + info( msg, t ); >> + } >> + >> + public boolean isWarnEnabled() >> + { >> + return logger.isWarnEnabled(); >> + } >> + >> + public void warn( String msg ) >> + { >> + logger.warn( msg ); >> + } >> + >> + public void warn( String format, Object arg ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg ); >> + logger.warn( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void warn( String format, Object arg1, Object arg2 ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg1, arg2 ); >> + logger.warn( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void warn( String format, Object[] argArray ) >> + { >> + FormattingTuple ft = MessageFormatter.arrayFormat( format, argArray >> ); >> + logger.warn( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void warn( String msg, Throwable t ) >> + { >> + logger.warn( msg, t ); >> + } >> + >> + public boolean isWarnEnabled( Marker marker ) >> + { >> + return isWarnEnabled(); >> + } >> + >> + public void warn( Marker marker, String msg ) >> + { >> + warn( msg ); >> + } >> + >> + public void warn( Marker marker, String format, Object arg ) >> + { >> + warn( format, arg ); >> + } >> + >> + public void warn( Marker marker, String format, Object arg1, Object >> arg2 ) >> + { >> + warn( format, arg1, arg2 ); >> + } >> + >> + public void warn( Marker marker, String format, Object[] argArray ) >> + { >> + warn( format, argArray ); >> + } >> + >> + public void warn( Marker marker, String msg, Throwable t ) >> + { >> + warn( msg, t ); >> + } >> + >> + public boolean isErrorEnabled() >> + { >> + return logger.isErrorEnabled(); >> + } >> + >> + public void error( String msg ) >> + { >> + logger.error( msg ); >> + } >> + >> + public void error( String format, Object arg ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg ); >> + logger.error( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void error( String format, Object arg1, Object arg2 ) >> + { >> + FormattingTuple ft = MessageFormatter.format( format, arg1, arg2 ); >> + logger.error( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void error( String format, Object[] argArray ) >> + { >> + FormattingTuple ft = MessageFormatter.arrayFormat( format, argArray >> ); >> + logger.error( ft.getMessage(), ft.getThrowable() ); >> + } >> + >> + public void error( String msg, Throwable t ) >> + { >> + logger.error( msg, t ); >> + } >> + >> + public boolean isErrorEnabled( Marker marker ) >> + { >> + return isErrorEnabled(); >> + } >> + >> + public void error( Marker marker, String msg ) >> + { >> + error( msg ); >> + } >> + >> + public void error( Marker marker, String format, Object arg ) >> + { >> + error( format, arg ); >> + } >> + >> + public void error( Marker marker, String format, Object arg1, Object >> arg2 ) >> + { >> + error( format, arg1, arg2 ); >> + } >> + >> + public void error( Marker marker, String format, Object[] argArray ) >> + { >> + error( format, argArray ); >> + } >> + >> + public void error( Marker marker, String msg, Throwable t ) >> + { >> + error( msg, t ); >> + } >> + >> +} >> >> Added: >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLoggerFactory.java >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLoggerFactory.java?rev=1380105&view=auto >> ============================================================================== >> --- >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLoggerFactory.java >> (added) >> +++ >> maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/PlexusLoggerFactory.java >> Mon Sep 3 01:07:31 2012 >> @@ -0,0 +1,50 @@ >> +package org.apache.maven.cli; >> + >> +/* >> + * 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.plexus.logging.LoggerManager; >> +import org.slf4j.ILoggerFactory; >> +import org.slf4j.Logger; >> + >> +/** >> + * A Slf4j logger factory bridged onto a Plexus logger manager. >> + */ >> +public class PlexusLoggerFactory >> + implements ILoggerFactory >> +{ >> + >> + private LoggerManager loggerManager; >> + >> + public PlexusLoggerFactory( LoggerManager loggerManager ) >> + { >> + this.loggerManager = loggerManager; >> + } >> + >> + public void setLoggerManager( LoggerManager loggerManager ) >> + { >> + this.loggerManager = loggerManager; >> + } >> + >> + public Logger getLogger( String name ) >> + { >> + return new PlexusLogger( loggerManager.getLoggerForComponent( name, >> null ) ); >> + } >> + >> +} >> >> Modified: maven/maven-3/trunk/pom.xml >> URL: >> http://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?rev=1380105&r1=1380104&r2=1380105&view=diff >> ============================================================================== >> --- maven/maven-3/trunk/pom.xml (original) >> +++ maven/maven-3/trunk/pom.xml Mon Sep 3 01:07:31 2012 >> @@ -56,6 +56,7 @@ >> <modelloVersion>1.4.1</modelloVersion> >> <jxpathVersion>1.3</jxpathVersion> >> <aetherVersion>1.13.1</aetherVersion> >> + <slf4jVersion>1.6.1</slf4jVersion> >> >> <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile> >> <!-- Control the name of the distribution and information output by mvn >> --> >> <distributionId>apache-maven</distributionId> >> @@ -203,6 +204,17 @@ >> <artifactId>plexus-interpolation</artifactId> >> <version>${plexusInterpolationVersion}</version> >> </dependency> >> + <dependency> >> + <groupId>org.slf4j</groupId> >> + <artifactId>slf4j-api</artifactId> >> + <version>${slf4jVersion}</version> >> + </dependency> >> + <dependency> >> + <groupId>org.slf4j</groupId> >> + <artifactId>slf4j-nop</artifactId> >> + <version>${slf4jVersion}</version> >> + <scope>runtime</scope> >> + </dependency> >> <!-- Wagon --> >> <dependency> >> <groupId>org.apache.maven.wagon</groupId> >> >> > > > > -- > Olivier Lamy > Talend: http://coders.talend.com > http://twitter.com/olamy | http://linkedin.com/in/olamy > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org