# links property file for Ant's symlink task in pom.xml:
# links to components in http://hc.apache.org/components/

5.0.3       ../components/httpcomponents-client-5.0.x/5.0.3
current     ../components/httpcomponents-client-5.0.x/5.0.3

android.html             ../components/httpcomponents-client-5.x/android.html
logging.html             ../components/httpcomponents-client-5.x/logging.html
related-projects.html    ../components/httpcomponents-client-5.x/related-projects.html
