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

5.2-alpha2  ../components/httpcomponents-core-5.1.x/5.2-alpha2
5.2-beta1  ../components/httpcomponents-core-5.1.x/5.2-beta1
5.2-beta2  ../components/httpcomponents-core-5.1.x/5.2-beta2
current     ../components/httpcomponents-core-5.1.x/5.2-beta2
