Uploaded image for project: 'Ivy'
  1. Ivy
  2. IVY-529

Ivy:retrieve fails through proxy server

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0-alpha-1
    • 2.0.0-beta-1
    • Ant
    • None
    • Win XP, Ant 1.6.5, Java 5.

    Description

      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 | working@hpac-keay47z ]
      [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 | working@h097-kea ]
      [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

      Attachments

        Activity

          People

            maartenc Maarten Coene
            ncharman Nigel Charman
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: