Migrating unsigned Jobs on the Nexus repository - 7.3

Talend Migration and Upgrade Guide

Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Talend Activity Monitoring Console
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend Data Preparation
Talend Data Stewardship
Talend ESB
Talend Identity and Access Management
Talend JobServer
Talend LogServer
Talend MDM Server
Talend MDM Web UI
Talend Runtime
Talend SAP RFC Server
Talend Studio
Installation and Upgrade
Last publication date
After upgrading Talend Administration Center, you need to migrate the unsigned Jobs already published to the Nexus repository before you can execute them in your new Talend Administration Center.

Before you begin

Make sure the Redeploy option is activated on the Nexus side.


  1. Unzip the archive Artifact-Repository-Nexus-<version>.zip included in the Talend Administration Center package to get the migration-<version> folder.
  2. Go to the configuration sub-folder and open the configuration file repository.properties.
  3. Edit the configuration file to specify the following details according to your actual situation:
    • repository type
    • repository URL
    • repository ID
    • group ID or search keyword
    • user name and password
    • the path to your license file
  4. Execute the JAR file nexus-signature-migration-<version>.jar in the migration-<version> folder.
    java -jar nexus-signature-migration-<version>.jar


Your old Jobs published to the Nexus repository will be downloaded to your local file system, signed and redeployed to the Nexus repository.
Troubleshooting: If the migration failed and no error message is displayed, try following those steps.
  1. Log in to Nexus Repository Manager as admin.
  2. Click the Server Administration and Configuration button.
  3. Scroll down to the Update stored script by name API.
  4. Write search in the value of the name parameter.
  5. Paste the following search script in value of the body parameter if you don't already have the search script:
    { "name": "search", "content": "import org.sonatype.nexus.repository.storage.Query; 
    import org.sonatype.nexus.repository.storage.StorageFacet; 
    import org.sonatype.nexus.repository.storage.Query.Builder; 
    import groovy.json.JsonOutput; 
    import groovy.json.JsonSlurper; 
    def search = new JsonSlurper().parseText(args); 
    log.info('search arguments: ' + args); 
    def repositoryId = search.repositoryId; 
    def groupId = search.g; 
    def artifactId = search.a; 
    def version = search.v; 
    def data = []; 
    def repo = repository.repositoryManager.get(repositoryId); 
    StorageFacet storageFacet = repo.facet(StorageFacet); 
    def tx = storageFacet.txSupplier().get(); 
    def builder = Query.builder(); 
    if(groupId != null){ builder.where('group = ').param(groupId); };
    if(version != null){ if(builder.hasWhere()){ builder.and('version = ').param(version); }else{ builder.where('version = ').param(version); } };
    if(artifactId != null){ artifactId =[artifactId]; log.info('artifactId: ' + artifactId); if(builder.hasWhere()){ builder.and('name in ').param(artifactId); }else{ builder.where('name in ').param(artifactId); } };
    def query = builder.build() ;
    log.info('query: ' + query.getParameters());
    log.info('query: ' + query.getWhere());
    def components = tx.findComponents(query , [repo]);
    components.each{ ArtifactResult artifact = new ArtifactResult(); artifact.groupId = it.attributes().child('maven2').get('groupId'); artifact.artifactId = it.attributes().child('maven2').get('artifactId'); artifact.version = it.attributes().child('maven2').get('baseVersion'); artifact.extension = it.attributes().child('maven2').get('packaging'); artifact.last_updated = it.lastUpdated(); artifact.description = it.attributes().child('maven2').get('pom_description'); log.info('search arguments: ' + it.attributes()); log.info('search getProperties: ' + it.getProperties()); log.info('search getEntityMetadata: ' + it.getEntityMetadata()); log.info('search getMetaPropertyValues: ' + it.getMetaPropertyValues()); data << artifact; };
    return JsonOutput.toJson(data);
    class ArtifactResult{ String groupId; String artifactId; String version; String extension; String last_updated; String description; } ", "type": "groovy" }
  6. Click Try it out!.