<target name="install-shared" depends="jar, makepom" description="Publish the target modules into the SHARED Apache Ivy Repository">
<echo> Uploading JAR file into Artifactory via cURL </echo>
<echo>
project.organisation=${project.organisation}
artifactory.repo.project.organisation=${artifactory.repo.project.organisation}
</echo>
<!-- curl -v -X PUT - -data-binary @mylib-1.0.jar -u admin:XYZ1234 http://localhost:8080/artifactory/libs-releases-local/org/jfrog/test/1.0/mylib-1.0.jar -->
<curl-upload sourcefile="${target.dir}/${project.artifact}-${project.version}.jar"
datamode="--data-binary"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.jar" />
<!-- FIXME: This almost works. Uploading the POM file generates an internal server error
in Artifactory. Hmmm *PP* 15/Dec/2008
-->
<echo>Upload POM file to Artifactory via cURL </echo>
<curl-upload sourcefile="${target.dir}/${project.artifact}-${project.version}.pom"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.pom" />
<echo>Upload Ivy file to Artifactory via cURL </echo>
<curl-upload sourcefile="${basedir}/ivy.xml"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.ivy" />
<echo message="Project ${ant.project.name} published to shared repository with version ${project.version}" />
</target>
Here is the artifactory.log from the server.
2008-12-15 12:09:54,006 [ERROR] (o.a.w.s.RepoFilter :63) - Sending HTTP error code 500:Failed to save resource 'echannel-releas
es-local:com/lloydstsbcorporatemarkets/echannel/pmhub/0.1-SNAPSHOT/pmhub-0.1-SNAPSHOT.pom'.
java.lang.RuntimeException: Failed to save resource 'echannel-releases-local:com/lloydstsbcorporatemarkets/echannel/pmhub/0.1-SN
APSHOT/pmhub-0.1-SNAPSHOT.pom'.
at org.artifactory.repo.jcr.JcrRepoBase.saveResource(JcrRepoBase.java:542) [artifactory-core-1.3.0-beta-6.1.jar:na]
at org.artifactory.engine.UploadServiceImpl.doProcess(UploadServiceImpl.java:214) [artifactory-core-1.3.0-beta-6.1.jar:n
a]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_05]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_05]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_05]
at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_05]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) [spring-aop-2.5.5.jar:2.5.
5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) [sp
ring-aop-2.5.5.jar:2.5.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) [spring-aop
-2.5.5.jar:2.5.5]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) [spring-tx
-2.5.5.jar:2.5.5]
at org.artifactory.jcr.lock.LockingAdvice.invoke(LockingAdvice.java:79) [artifactory-core-1.3.0-beta-6.1.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) [spring-aop
-2.5.5.jar:2.5.5]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [spring-aop-2.5.5.jar:2.5.5]
at $Proxy45.doProcess(Unknown Source) [na:na]
at org.artifactory.engine.UploadServiceImpl.process(UploadServiceImpl.java:109) [artifactory-core-1.3.0-beta-6.1.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_05]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_05]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_05]
at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_05]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) [spring-aop-2.5.5.jar:2.5.
5]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198) [spring-aop-2.5.5.jar:2.5.5]
at $Proxy45.process(Unknown Source) [na:na]
at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:122) [RepoFilter.class:na]
at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:73) [RepoFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.artifactory.webapp.servlet.AccessFilter.useAuthentication(AccessFilter.java:187) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.authenticateAndExecute(AccessFilter.java:134) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:118) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:87) [AccessFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
All this was based on a comment that Yaov pasted on my jroller blog.
Running on Tomcat 6.0.16
I will upgrade to the RC1 later this week. I have got some project issues to resolve first ;-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
It was great to meet you at Devoxx 2008 last week, and thanks for the JFrog tee-shirt,
I am using Artifactory 1.3.0 beta 6.1 with Apache Ivy.
I see there is a HTTP error 500 when I use CURL.exe to upload the POM file.
In my Ant File. I have a Macrodefinition for CURL.exe
<macrodef name="curl-upload">
<attribute name="sourcefile" description="source file" />
<attribute name="url" description="target URL" />
<attribute name="username" description="server login username" />
<attribute name="password" description="server login password" />
<attribute name="datamode" default="--data-ascii" description="member of the set {--data, --data-binary, --data-ascii }" />
<sequential>
<!-- curl -v -X PUT - -data-binary @mylib-1.0.jar -u admin:XYZ1234 http://localhost:8080/artifactory/libs-releases-local/org/jfrog/test/1.0/mylib-1.0.jar -->
<echo> Uploading file @{sourcefile} to target URL @{url} </echo>
<exec executable="${curl.exe}">
<arg value="-v" />
<arg value="-X" />
<arg value="PUT" />
<arg value="@{datamode}" />
<arg value="@{sourcefile}" />
<arg value="-u" />
<arg value="@{username}:@{password}" />
<arg value="@{url}" />
<!-- <arg value="" /> -->
</exec>
</sequential>
</macrodef>
And the next thing is a INSTALL SHARED REPOSITORY target
<target name="makepom" depends="init" description="Generates the Maven 2 Apache POM file">
<ivy:makepom ivyfile="${basedir}/ivy.xml" pomfile="${target.dir}/${project.artifact}-${project.version}.pom">
<mapping conf="compile" scope="compile" />
<mapping conf="runtime" scope="runtime" />
<mapping conf="test" scope="test" />
<mapping conf="provided" scope="provided" />
</ivy:makepom>
<echo> ${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.pom </echo>
</target>
<target name="install-shared" depends="jar, makepom" description="Publish the target modules into the SHARED Apache Ivy Repository">
<echo> Uploading JAR file into Artifactory via cURL </echo>
<echo>
project.organisation=${project.organisation}
artifactory.repo.project.organisation=${artifactory.repo.project.organisation}
</echo>
<!-- curl -v -X PUT - -data-binary @mylib-1.0.jar -u admin:XYZ1234 http://localhost:8080/artifactory/libs-releases-local/org/jfrog/test/1.0/mylib-1.0.jar -->
<curl-upload sourcefile="${target.dir}/${project.artifact}-${project.version}.jar"
datamode="--data-binary"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.jar" />
<!-- FIXME: This almost works. Uploading the POM file generates an internal server error
in Artifactory. Hmmm *PP* 15/Dec/2008
-->
<echo>Upload POM file to Artifactory via cURL </echo>
<curl-upload sourcefile="${target.dir}/${project.artifact}-${project.version}.pom"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.pom" />
<echo>Upload Ivy file to Artifactory via cURL </echo>
<curl-upload sourcefile="${basedir}/ivy.xml"
username="${artifactory.manager.username}" password="${artifactory.manager.password}"
url="${artifactory.repo.url}/${artifactory.repo.project.organisation}/${project.version}/${project.artifact}-${project.version}.ivy" />
<echo message="Project ${ant.project.name} published to shared repository with version ${project.version}" />
</target>
Here is the artifactory.log from the server.
2008-12-15 12:09:54,006 [ERROR] (o.a.w.s.RepoFilter :63) - Sending HTTP error code 500:Failed to save resource 'echannel-releas
es-local:com/lloydstsbcorporatemarkets/echannel/pmhub/0.1-SNAPSHOT/pmhub-0.1-SNAPSHOT.pom'.
java.lang.RuntimeException: Failed to save resource 'echannel-releases-local:com/lloydstsbcorporatemarkets/echannel/pmhub/0.1-SN
APSHOT/pmhub-0.1-SNAPSHOT.pom'.
at org.artifactory.repo.jcr.JcrRepoBase.saveResource(JcrRepoBase.java:542) [artifactory-core-1.3.0-beta-6.1.jar:na]
at org.artifactory.engine.UploadServiceImpl.doProcess(UploadServiceImpl.java:214) [artifactory-core-1.3.0-beta-6.1.jar:n
a]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_05]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_05]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_05]
at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_05]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) [spring-aop-2.5.5.jar:2.5.
5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) [sp
ring-aop-2.5.5.jar:2.5.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) [spring-aop
-2.5.5.jar:2.5.5]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) [spring-tx
-2.5.5.jar:2.5.5]
at org.artifactory.jcr.lock.LockingAdvice.invoke(LockingAdvice.java:79) [artifactory-core-1.3.0-beta-6.1.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) [spring-aop
-2.5.5.jar:2.5.5]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [spring-aop-2.5.5.jar:2.5.5]
at $Proxy45.doProcess(Unknown Source) [na:na]
at org.artifactory.engine.UploadServiceImpl.process(UploadServiceImpl.java:109) [artifactory-core-1.3.0-beta-6.1.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_05]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_05]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_05]
at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_05]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) [spring-aop-2.5.5.jar:2.5.
5]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198) [spring-aop-2.5.5.jar:2.5.5]
at $Proxy45.process(Unknown Source) [na:na]
at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:122) [RepoFilter.class:na]
at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:73) [RepoFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.artifactory.webapp.servlet.AccessFilter.useAuthentication(AccessFilter.java:187) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.authenticateAndExecute(AccessFilter.java:134) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:118) [AccessFilter.class:na]
at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:87) [AccessFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
All this was based on a comment that Yaov pasted on my jroller blog.
Running on Tomcat 6.0.16
I will upgrade to the RC1 later this week. I have got some project issues to resolve first ;-)