Ivy:retrieve fails through proxy server
---------------------------------------

                 Key: IVY-529
                 URL: https://issues.apache.org/jira/browse/IVY-529
             Project: Ivy
          Issue Type: Bug
          Components: Ant
    Affects Versions: 2.0.0-alpha-1
         Environment: Win XP, Ant 1.6.5, Java 5.  
            Reporter: Nigel Charman


I'm working at a site that connects to the net using a proxy server that 
requires authentication.

Our ant script uses the setproxy task to set the proxy details.  Calling the 
ivy:retrieve task after setproxy results in the error:

   [ivy:retrieve] :: problems summary ::
   [ivy:retrieve] :::: WARNINGS
   [ivy:retrieve]  Your proxy requires authentication.
   [ivy:retrieve]  Your proxy requires authentication.
   [ivy:retrieve]          module not found: [ commons-lang | commons-lang | 
2.1 ]

However, there is a workaround.  Calling the get task before ivy:retrieve fixes 
the problem.

It appears that get must be doing something with the proxy details that 
ivy:retrieve is not.  Please can ivy:retrieve be updated to perform the 
authentication magic that get is doing?

I have managed to reproduce this with the hello ivy example.  The failing Ant 
Script contains:

    <target name="proxy">
            <property name="proxy.host" value="proxy.myorg.com"/>
            <property name="proxy.port" value="8080"/>
                <input message="Please enter proxy username" 
addproperty="proxy.user" />
                <input message="Please enter proxy password - NOTE: CLEAR TEXT" 
addproperty="proxy.pass"/>
            <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" 
proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
      </target>

    <!-- =================================
          target: resolve
         ================================= -->
    <target name="resolve" depends="proxy" description="--> retreive 
dependencies with ivy">
        <ivy:retrieve/>
    </target>

which produces the output

    resolve:
    [ivy:retrieve] :: Ivy 2.0.0-alpha-1-incubating - 20070416155158 :: 
    http://incubator.apache.org/ivy/ ::
    [ivy:retrieve] no settings file found, using default...
    [ivy:retrieve] :: loading settings :: url = 
jar:file:/C:/Program%20Files/Ant/lib/ivy-2.0.0-alpha-1-incubating.jar!/org/apache/ivy/core/settings/ivysettings.xml
    [ivy:retrieve] :: resolving dependencies :: [ apache | hello-ivy | [EMAIL 
PROTECTED] ]
    [ivy:retrieve]  confs: [default]
    [ivy:retrieve] :: resolution report ::
     ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts  |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
     ---------------------------------------------------------------------
      |      default     |   1   |   0   |   0   |   0   ||   0   |   0  
      |
     ---------------------------------------------------------------------
    [ivy:retrieve]
    [ivy:retrieve] :: problems summary ::
    [ivy:retrieve] :::: WARNINGS
    [ivy:retrieve]  Your proxy requires authentication.
    [ivy:retrieve]  Your proxy requires authentication.
    [ivy:retrieve]          module not found: [ commons-lang | commons-lang | 
2.1 ]
    [ivy:retrieve]  ==== local: tried
    [ivy:retrieve]    C:\Documents and 
Settings\charmann\.ivy/local/commons-lang/commons-lang/2.1/ivys/ivy.xml
    [ivy:retrieve]    -- artifact [ commons-lang | commons-lang | 2.1 
]/commons-lang.jar[jar]:
    [ivy:retrieve]    C:\Documents and 
Settings\charmann\.ivy/local/commons-lang/commons-lang/2.1/jars/commons-lang.jar
    [ivy:retrieve]  ==== shared: tried [ivy:retrieve]    C:\Documents and 
Settings\charmann\.ivy/shared/commons-lang/commons-lang/2.1/ivys/ivy.xml
    [ivy:retrieve]    -- artifact [ commons-lang | commons-lang | 2.1 
]/commons-lang.jar[jar]:
    [ivy:retrieve]    C:\Documents and 
Settings\charmann\.ivy/shared/commons-lang/commons-lang/2.1/jars/commons-lang.jar
    [ivy:retrieve]  ==== public: tried[ivy:retrieve] 
http://repo1.maven.org/maven2/commons-lang/commons-lang/2.1/commons-lang-2.1.pom
    [ivy:retrieve]    -- artifact [ commons-lang | commons-lang | 2.1 
]/commons-lang.jar[jar]:
    [ivy:retrieve] 
http://repo1.maven.org/maven2/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
    [ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:retrieve]          ::          UNRESOLVED DEPENDENCIES         ::
    [ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:retrieve]          :: [ commons-lang | commons-lang | 2.1 ]: not found
    [ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:retrieve]
    [ivy:retrieve]
    [ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

    BUILD FAILED

Changing the ant script to include a get task fixes the problem:

        <target name="proxy">
            <property name="proxy.host" value="proxy.myorg.com"/>
            <property name="proxy.port" value="8080"/>
                <input message="Please enter proxy username" 
addproperty="proxy.user" />
                <input message="Please enter proxy password - NOTE: CLEAR TEXT" 
addproperty="proxy.pass"/>
            <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" 
proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
            <get src="http://www.google.co.nz"; dest="temp.html" 
usetimestamp="true"/>
          </target>
 
    <!-- ================================= 
          target: resolve 
         ================================= -->
    <target name="resolve" depends="proxy" description="--> retreive 
dependencies with ivy">
        <ivy:retrieve/>
    </target> 

with the following output:

    resolve:
    [ivy:retrieve] :: Ivy 2.0.0-alpha-1-incubating - 20070416155158 :: 
http://incubator.apache.org/ivy/ ::
    [ivy:retrieve] no settings file found, using default...
    [ivy:retrieve] :: loading settings :: url = 
jar:file:/C:/Program%20Files/Ant/lib/ivy-2.0.0-alpha-1-incubating.jar!/org/apache/ivy/core/settings/ivysettings.xml
    [ivy:retrieve] :: resolving dependencies :: [ apache | hello-ivy | [EMAIL 
PROTECTED] ]
    [ivy:retrieve]  confs: [default]
    [ivy:retrieve]  found [ commons-lang | commons-lang | 2.1 ] in public
    [ivy:retrieve] downloading 
http://repo1.maven.org/maven2/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
 ...
    [ivy:retrieve] ..................
    [ivy:retrieve] .................................... (202kB)
    [ivy:retrieve] .. (0kB)
    [ivy:retrieve]  [SUCCESSFUL ] [ commons-lang | commons-lang | 2.1 
]/commons-lang.jar[jar] (6923ms)
    [ivy:retrieve] :: resolution report ::
     ---------------------------------------------------------------------
        |                  |            modules            ||   artifacts  |
        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
     ---------------------------------------------------------------------
        |      default     |   1   |   1   |   0   |   0   ||   1   |   1  |
     ---------------------------------------------------------------------
    [ivy:retrieve] :: retrieving :: [ apache | hello-ivy ]
    [ivy:retrieve]  confs: [default]
    [ivy:retrieve]  1 artifacts copied, 0 already retrieved

    run:
         [java] standard message : hello ivy !
         [java] capitalized by org.apache.commons.lang.WordUtils : Hello Ivy !

    BUILD SUCCESSFUL


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to