You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Steve Brown (JIRA)" <ji...@apache.org> on 2008/09/04 17:09:51 UTC

[jira] Created: (IVY-895) Transactional Publishing to the FileSytemResolver doesn't work as expected.

Transactional Publishing to the FileSytemResolver doesn't work as expected.
---------------------------------------------------------------------------

                 Key: IVY-895
                 URL: https://issues.apache.org/jira/browse/IVY-895
             Project: Ivy
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.0.0-beta-2
         Environment: Windows XP Professional SP2, Sun JDK 1.5.17, 3Gb Ram, 8 Core Xeon processor.
            Reporter: Steve Brown


After publishing with transactional="auto", the revisions directory in the jars directory has a name like "1.0.part". The corresponding directory in the ivys directory has a correct name like "1.0"

The Ivy settings file is:

<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
    <property name="build.ivy.cache.dir" value="ivy/cache" override="false"/>
    <property name="build.ivy.repo.url" value="http://lonespappd0a.uk.db.com:8770/repo" override="false"/>
    <property name="build.ivy.resolver" value="url-resolve" override="false"/>

    <caches defaultCacheDir="${build.ivy.cache.dir}" defaultResolver="${build.ivy.resolver}" />
    <resolvers>
        <url name="url-resolve" latest="latest-revision">
            <ivy pattern="${build.ivy.repo.url}/[organisation]/[module]/ivys/[module]-[revision].xml" />
            <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
            <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[artifact].[ext]" />
            <ivy pattern="${build.ivy.repo.url}/[organisation]/[module]/ivys/[revision]/[module]-[revision].xml" />
            <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
            <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[revision]/[artifact].[ext]" />
        </url>
        <filesystem name="fs" latest="latest-revision">
            <ivy pattern="${build.local.ivy.repository}/[organisation]/[module]/ivys/[module]-[revision].xml" />
            <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
            <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[artifact].[ext]" />
            <ivy pattern="${build.local.ivy.repository}/[organisation]/[module]/ivys/[revision]/[module]-[revision].xml" />
            <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
            <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact].[ext]" />
        </filesystem>
        <filesystem name="fs1" latest="latest-revision" transactional="false">
            <ivy      pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[module]-[revision].xml" />
            <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
        </filesystem>
    </resolvers>
    <modules>
        <module organisation=".*" name=".*" resolver="${build.ivy.resolver}" />
    </modules>
</ivysettings>

The Ivy file is:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="org" module="module" />
    <publications>
        <artifact name="xyz" type="jar"/>
    </publications>
    <dependencies>
        <dependency org="checkstyle" name="checkstyle" rev="latest.integration" />
        <dependency org="pmd" name="pmd" rev="latest.integration" />
        <dependency org="xxx" name="all" rev="latest.integration">
            <include name="yyyy"/>
        </dependency>
        <dependency org="xxx" name="j2ee" rev="latest.integration" />
    </dependencies>
</ivy-module>

The Ant target is like this:

    <target
        name="publish.to.ivy"
        depends="init.ivy"
        description="Publish the jar file to the Ivy repository">

        <echoproperties prefix="ivy"/>
        <property name="ivy.deliver.revision" value="${ivy.new.revision}"/>
        <ivy:publish
            resolver="fs1"
            status="integration"
            update="true">
            <artifacts pattern="${build.packages.dir}/[artifact].[ext]"/>
        </ivy:publish>
    </target>






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


[jira] Commented: (IVY-895) Transactional Publishing to the FileSytemResolver doesn't work as expected.

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637642#action_12637642 ] 

Maarten Coene commented on IVY-895:
-----------------------------------

According to the documentation from the website http://ant.apache.org/ivy/history/latest-milestone/resolver/filesystem.html :

{quote}
Limitations
Atomic publish is currently limited in several ways:

    * you need to use a pattern for both the artifact and the ivy files which uses the revision as last directory. For instance [module]/[revision]/[artifact].[ext] works, [module]/[artifact]-[revision].[ext] doesn't
    * both the artifact and ivy pattern should have the same prefix until the [revision] token.
    * overwrite during publish is not supported
    * you should not use revision names ending with '.part'
{quote}

It seems to me that your patterns doesn't qualify the second requirement.

> Transactional Publishing to the FileSytemResolver doesn't work as expected.
> ---------------------------------------------------------------------------
>
>                 Key: IVY-895
>                 URL: https://issues.apache.org/jira/browse/IVY-895
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-beta-2
>         Environment: Windows XP Professional SP2, Sun JDK 1.5.17, 3Gb Ram, 8 Core Xeon processor.
>            Reporter: Steve Brown
>
> After publishing with transactional="auto", the revisions directory in the jars directory has a name like "1.0.part". The corresponding directory in the ivys directory has a correct name like "1.0"
> The Ivy settings file is:
> <?xml version="1.0" encoding="UTF-8"?>
> <ivysettings>
>     <property name="build.ivy.cache.dir" value="ivy/cache" override="false"/>
>     <property name="build.ivy.repo.url" value="http://lonespappd0a.uk.db.com:8770/repo" override="false"/>
>     <property name="build.ivy.resolver" value="url-resolve" override="false"/>
>     <caches defaultCacheDir="${build.ivy.cache.dir}" defaultResolver="${build.ivy.resolver}" />
>     <resolvers>
>         <url name="url-resolve" latest="latest-revision">
>             <ivy pattern="${build.ivy.repo.url}/[organisation]/[module]/ivys/[module]-[revision].xml" />
>             <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
>             <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[artifact].[ext]" />
>             <ivy pattern="${build.ivy.repo.url}/[organisation]/[module]/ivys/[revision]/[module]-[revision].xml" />
>             <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
>             <artifact pattern="${build.ivy.repo.url}/[organisation]/[module]/[type]s/[revision]/[artifact].[ext]" />
>         </url>
>         <filesystem name="fs" latest="latest-revision">
>             <ivy pattern="${build.local.ivy.repository}/[organisation]/[module]/ivys/[module]-[revision].xml" />
>             <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
>             <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[artifact].[ext]" />
>             <ivy pattern="${build.local.ivy.repository}/[organisation]/[module]/ivys/[revision]/[module]-[revision].xml" />
>             <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
>             <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact].[ext]" />
>         </filesystem>
>         <filesystem name="fs1" latest="latest-revision" transactional="false">
>             <ivy      pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[module]-[revision].xml" />
>             <artifact pattern="${build.local.ivy.repository}/[organisation]/[module]/[type]s/[revision]/[artifact]-[revision].[ext]" />
>         </filesystem>
>     </resolvers>
>     <modules>
>         <module organisation=".*" name=".*" resolver="${build.ivy.resolver}" />
>     </modules>
> </ivysettings>
> The Ivy file is:
> <?xml version="1.0" encoding="UTF-8"?>
> <ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
>     <info organisation="org" module="module" />
>     <publications>
>         <artifact name="xyz" type="jar"/>
>     </publications>
>     <dependencies>
>         <dependency org="checkstyle" name="checkstyle" rev="latest.integration" />
>         <dependency org="pmd" name="pmd" rev="latest.integration" />
>         <dependency org="xxx" name="all" rev="latest.integration">
>             <include name="yyyy"/>
>         </dependency>
>         <dependency org="xxx" name="j2ee" rev="latest.integration" />
>     </dependencies>
> </ivy-module>
> The Ant target is like this:
>     <target
>         name="publish.to.ivy"
>         depends="init.ivy"
>         description="Publish the jar file to the Ivy repository">
>         <echoproperties prefix="ivy"/>
>         <property name="ivy.deliver.revision" value="${ivy.new.revision}"/>
>         <ivy:publish
>             resolver="fs1"
>             status="integration"
>             update="true">
>             <artifacts pattern="${build.packages.dir}/[artifact].[ext]"/>
>         </ivy:publish>
>     </target>

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