Changeset 5636


Ignore:
Timestamp:
09/16/14 07:55:44 (10 years ago)
Author:
Twan Goosen
Message:

Added optional context parameter to set EPIC PID infix
Fixes #632

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/doc/README.txt

    r5624 r5636  
    8989             value="$epic_password"
    9090             override="false"/>
    91 
     91             
     92  Add the following parameter to configure a custom PID 'infix'. The example below
     93  configures the default behaviour, i.e. '{prefix}/VCR-{id}'.
     94   
     95  <Parameter name="pid_provider.epic.infix"
     96             value="VCR-"/>
     97             
    9298* AUTHENTICATION *
    9399
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/pid/EPICPersistentIdentifierProvider.java

    r5599 r5636  
    3838    private String baseUri;
    3939
     40    @Value("${pid_provider.epic.infix:VCR-}")
     41    private String infix;
     42
    4043    /**
    4144     *
     
    5457        final Map<HandleField, String> fieldMap = createPIDFieldMap(vc);
    5558        try {
    56             final String requestedPid = String.format("VCR-%d", vc.getId());
     59            final String requestedPid = String.format("%s%d", infix, vc.getId());
    5760            final String pid = pidWriter.registerNewPID(configuration, fieldMap, requestedPid);
    5861            return new PersistentIdentifier(vc, PersistentIdentifier.Type.HANDLE, pid);
     
    8992        this.baseUri = baseUri;
    9093    }
     94   
     95    protected void setInfix(String infix) {
     96        this.infix = infix;
     97    }
    9198
    9299}
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/test/java/eu/clarin/cmdi/virtualcollectionregistry/pid/EPICPersistentIdentifierProviderTest.java

    r5601 r5636  
    3131        instance = new EPICPersistentIdentifierProvider(pidWriter, pidConfig);
    3232        instance.setBaseUri("http://vcr");
     33        instance.setInfix("VCR-test-");
    3334    }
    3435
     
    5556                                hasEntry(HandleField.CREATOR, "Joe Unit")
    5657                        ),
    57                         equalTo("VCR-123")
     58                        equalTo("VCR-test-123")
    5859                );
    59                 will(returnValue("9999/VCR-123"));
     60                will(returnValue("9999/VCR-test-123"));
    6061            }
    6162        });
    6263
    6364        PersistentIdentifier result = instance.createIdentifier(vc);
    64         assertEquals("9999/VCR-123", result.getIdentifier());
     65        assertEquals("9999/VCR-test-123", result.getIdentifier());
    6566        assertEquals(Type.HANDLE, result.getType());
    6667    }
Note: See TracChangeset for help on using the changeset viewer.