Liquibase Community Forum
2011-01-21 07:12:10 UTC
A new topic, 'maven plugin problem with maven 3', has been made on a board you are watching.
You can see it at
http://liquibase.org/forum/index.php?topic=966.new#new
The text of the topic is shown below:
Did the spam filter consume my previous post from yesterday?
Anyway I have an issue where username and password provided to the liquibase maven plugin is always overwritten by the server settings in maven. See http://liquibase.jira.com/browse/CORE-784
In liquibase maven plugin class AbstractLiquibaseMojo on line 230:
Code:
AuthenticationInfo info = wagonManager.getAuthenticationInfo( server );
if ( info != null ) {
username = info.getUserName();
password = info.getPassword();
}
In maven 2.0 DefaultWagonManager the above logic works as the AuthenticationInfo is retrieved from a map thereby returning null if we have not defined the server:
Code:
public AuthenticationInfo getAuthenticationInfo( String id )
{
return (AuthenticationInfo) authenticationInfoMap.get( id );
}
Running the plugin from eclipse using an external maven 3.0.1 installation it will use DefaultWagonManager from maven-compat-3.0.1.jar. There the implementation has changed to:
Code:
public AuthenticationInfo getAuthenticationInfo( String id )
{
MavenSession session = legacySupport.getSession();
if ( session != null && id != null )
{
MavenExecutionRequest request = session.getRequest();
if ( request != null )
{
List<Server> servers = request.getServers();
if ( servers != null )
{
for ( Server server : servers )
{
if ( id.equalsIgnoreCase( server.getId() ) )
{
... SNIP ...
return authInfo;
}
}
}
}
}
// empty one to prevent NPE
return new AuthenticationInfo();
}
So it will always return a non null value meaning the plugin logic is broken.
Unsubscribe to new topics from this board by clicking here: http://liquibase.org/forum/index.php?action=notifyboard;board=1.0
Regards,
The Liquibase Community Forum Team.
You can see it at
http://liquibase.org/forum/index.php?topic=966.new#new
The text of the topic is shown below:
Did the spam filter consume my previous post from yesterday?
Anyway I have an issue where username and password provided to the liquibase maven plugin is always overwritten by the server settings in maven. See http://liquibase.jira.com/browse/CORE-784
In liquibase maven plugin class AbstractLiquibaseMojo on line 230:
Code:
AuthenticationInfo info = wagonManager.getAuthenticationInfo( server );
if ( info != null ) {
username = info.getUserName();
password = info.getPassword();
}
In maven 2.0 DefaultWagonManager the above logic works as the AuthenticationInfo is retrieved from a map thereby returning null if we have not defined the server:
Code:
public AuthenticationInfo getAuthenticationInfo( String id )
{
return (AuthenticationInfo) authenticationInfoMap.get( id );
}
Running the plugin from eclipse using an external maven 3.0.1 installation it will use DefaultWagonManager from maven-compat-3.0.1.jar. There the implementation has changed to:
Code:
public AuthenticationInfo getAuthenticationInfo( String id )
{
MavenSession session = legacySupport.getSession();
if ( session != null && id != null )
{
MavenExecutionRequest request = session.getRequest();
if ( request != null )
{
List<Server> servers = request.getServers();
if ( servers != null )
{
for ( Server server : servers )
{
if ( id.equalsIgnoreCase( server.getId() ) )
{
... SNIP ...
return authInfo;
}
}
}
}
}
// empty one to prevent NPE
return new AuthenticationInfo();
}
So it will always return a non null value meaning the plugin logic is broken.
Unsubscribe to new topics from this board by clicking here: http://liquibase.org/forum/index.php?action=notifyboard;board=1.0
Regards,
The Liquibase Community Forum Team.