Changeset 5928


Ignore:
Timestamp:
01/16/15 14:08:38 (10 years ago)
Author:
Twan Goosen
Message:

Merged (parts of) a number of fixes from trunk to 1.14 for the 14.5 release
Refs #714,#715,#717,#731

Location:
ComponentRegistry/branches/ComponentRegistry-1.14
Files:
1 deleted
19 edited
2 copied

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/branches/ComponentRegistry-1.14

  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentBrowserGui

  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/ConceptLinkInput.as

    r2526 r5928  
    5252               
    5353                private function createSearchConceptLinkButton():void {
    54                         searchConceptLink.label = "Search in isocat...";
     54                        searchConceptLink.label = "Search in concept registry...";
    5555                        searchConceptLink.addEventListener(MouseEvent.CLICK, handleButtonClick);
    5656                }
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/IsocatSearchPopUp.mxml

    r2126 r5928  
    55                                creationComplete="PopUpManager.centerPopUp(this)"
    66                                close="cleanUp();"
    7                                 title="Search in Isocat.org">
     7                                title="Search in CLARIN Concept Registry">
    88
    99        <mx:Metadata>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/ValueSchemePopUp.mxml

    r2525 r5928  
    125125                                        <mx:Button label="Use Controlled Vocabulary"
    126126                                                           click="setControlledVocabulary()"/>
    127                                         <mx:Button label="Search in isocat..."
     127                                        <mx:Button label="Search in concept registry..."
    128128                                                           click="handleIsocatButtonClick(event)"
    129129                                                           enabled="{enumerationGrid.conceptLinkEdit}"/>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/Config.as

    r5823 r5928  
    5959                private static const USER_SETTINGS_URL:String = "/admin/userSettings";
    6060                private static const COMMENTS_URL_PATH:String = "/comments/";
    61                 private static const ISOCAT_SERVLET:String = "/isocat";
     61                private static const ISOCAT_SERVLET:String = "/ccr";
    6262                private static const USER_GROUPS_MEMBERSHIP_URL:String = "/rest/registry/groups/usermembership";
    6363               
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry

  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java

  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/ComponentRegistry.java

    r5874 r5928  
    249249
    250250    Number makeGroupMember(String principalName, String groupName) throws UserUnauthorizedException, ItemNotFoundException;
     251   
     252    boolean canCurrentUserAccessDescription(String cmdId) throws ItemNotFoundException, AuthenticationRequiredException;
    251253
    252254    //long removeGroupMember(String principalName, String groupName) throws  UserUnauthorizedException, ItemNotFoundException;
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/Configuration.java

    r5549 r5928  
    1919public class Configuration {
    2020
    21     private static Logger LOG = LoggerFactory.getLogger(Configuration.class);
     21    private final static Logger LOG = LoggerFactory.getLogger(Configuration.class);
    2222    //NOTE: Default values, can be overwritten in applicationContext.xml
    2323    private String generalComponentSchema = "https://infra.clarin.eu/cmd/general-component-schema.xsd";
    2424    private String component2SchemaXsl = "https://infra.clarin.eu/cmd/xslt/comp2schema-v2/comp2schema.xsl";//"http://www.clarin.eu/cmd/comp2schema.xsl";
    25     private String isocatRestUrl = "http://www.isocat.org/rest/";
     25    private String ccrRestUrl = "https://openskos.meertens.knaw.nl/ccr/api/";
    2626    private Collection<String> adminUsers = new HashSet<String>();
    2727    private List<String> displayNameShibbolethKeys = new ArrayList<String>();
    2828
    2929    {//Default values
    30         displayNameShibbolethKeys.add("displayName");
    31         displayNameShibbolethKeys.add("commonName");
     30        displayNameShibbolethKeys.add("displayName");
     31        displayNameShibbolethKeys.add("commonName");
    3232    }
    33     private Map<String, String> schemaLocations = new HashMap<String, String>();
     33    private final Map<String, String> schemaLocations = new HashMap<String, String>();
    3434
    3535    {//Default values
    36         schemaLocations.put(CMDComponentSpec.class.getName(),
    37                 "http://www.clarin.eu/cmd/ http://infra.clarin.eu/cmd/general-component-schema.xsd");
     36        schemaLocations.put(CMDComponentSpec.class.getName(),
     37                "http://www.clarin.eu/cmd/ http://infra.clarin.eu/cmd/general-component-schema.xsd");
    3838    }
    3939    private final static Configuration INSTANCE = new Configuration();
     
    4343
    4444    public static Configuration getInstance() {
    45         return INSTANCE;
     45        return INSTANCE;
    4646    }
    4747
    4848    public String getComponent2SchemaXsl() {
    49         return component2SchemaXsl;
     49        return component2SchemaXsl;
    5050    }
    5151
    5252    public List<String> getDisplayNameShibbolethKeys() {
    53         return displayNameShibbolethKeys;
     53        return displayNameShibbolethKeys;
    5454    }
    5555
    5656    public String getGeneralComponentSchema() {
    57         return generalComponentSchema;
     57        return generalComponentSchema;
    5858    }
    5959
    60     public String getIsocatRestUrl() {
    61         return isocatRestUrl;
     60    public String getCcrRestUrl() {
     61        return ccrRestUrl;
    6262    }
    6363
    6464    public String getSchemaLocation(String key) {
    65         return schemaLocations.get(key);
     65        return schemaLocations.get(key);
    6666    }
    6767
    6868    public boolean isAdminUser(Principal principal) {
    69         if (principal != null) {
    70             return principal.getName().trim().length() > 0 // user name must be set (in case an empty entry is in admin users list)
    71                     && adminUsers.contains(principal.getName());
    72         }
    73         return false;
     69        if (principal != null) {
     70            return principal.getName().trim().length() > 0 // user name must be set (in case an empty entry is in admin users list)
     71                    && adminUsers.contains(principal.getName());
     72        }
     73        return false;
    7474    }
    7575
    7676    public boolean isAdminUser(String name) {
    77         if (name != null) {
    78             return name.trim().length() > 0 // user name must be set (in case an empty entry is in admin users list)
    79                     && adminUsers.contains(name);
    80         }
    81         return false;
     77        if (name != null) {
     78            return name.trim().length() > 0 // user name must be set (in case an empty entry is in admin users list)
     79                    && adminUsers.contains(name);
     80        }
     81        return false;
    8282    }
    83    
     83
    8484    public void setAdminUsers(Collection<String> adminUsers) {
    85         LOG.debug("Setting adminUsers to {}", Arrays.toString(adminUsers.toArray()));
    86         this.adminUsers = adminUsers;
     85        LOG.debug("Setting adminUsers to {}", Arrays.toString(adminUsers.toArray()));
     86        this.adminUsers = adminUsers;
    8787    }
    88    
    89    
     88
    9089    /**
    9190     *
     
    9392     */
    9493    public void setAdminUsersList(String adminUsersList) {
    95         String[] adminUsersArray = adminUsersList.trim().split("\\s+");
    96         if (LOG.isDebugEnabled()) {
    97             LOG.info("Setting adminUsersList to {}", Arrays.toString(adminUsersArray));
    98         }
    99         setAdminUsers(Arrays.asList(adminUsersArray));
     94        String[] adminUsersArray = adminUsersList.trim().split("\\s+");
     95        if (LOG.isDebugEnabled()) {
     96            LOG.info("Setting adminUsersList to {}", Arrays.toString(adminUsersArray));
     97        }
     98        setAdminUsers(Arrays.asList(adminUsersArray));
    10099    }
    101100
    102101    public void setComponent2SchemaXsl(String component2SchemaXsl) {
    103         LOG.info("Setting component2SchemaXsl to {}", component2SchemaXsl);
    104         this.component2SchemaXsl = component2SchemaXsl;
     102        LOG.info("Setting component2SchemaXsl to {}", component2SchemaXsl);
     103        this.component2SchemaXsl = component2SchemaXsl;
    105104    }
    106105
    107106    public void setComponentSpecSchemaLocation(String componentSpecSchemaLocation) {
    108         LOG.info("Setting componentSpecSchemaLocation to {}", componentSpecSchemaLocation);
    109         schemaLocations.put(CMDComponentSpec.class.getName(), componentSpecSchemaLocation);
     107        LOG.info("Setting componentSpecSchemaLocation to {}", componentSpecSchemaLocation);
     108        schemaLocations.put(CMDComponentSpec.class.getName(), componentSpecSchemaLocation);
    110109    }
    111110
    112111    public void setDisplayNameShibbolethKeys(List<String> displayNameShibbolethKeys) {
    113         LOG.info("Setting displayNameShibbolethKeys to {}", displayNameShibbolethKeys);
    114         this.displayNameShibbolethKeys = displayNameShibbolethKeys;
     112        LOG.info("Setting displayNameShibbolethKeys to {}", displayNameShibbolethKeys);
     113        this.displayNameShibbolethKeys = displayNameShibbolethKeys;
    115114    }
    116115
    117116    public void setGeneralComponentSchema(String generalComponentSchema) {
    118         LOG.info("Setting generalComponentSchema to {}", generalComponentSchema);
    119         this.generalComponentSchema = generalComponentSchema;
     117        LOG.info("Setting generalComponentSchema to {}", generalComponentSchema);
     118        this.generalComponentSchema = generalComponentSchema;
    120119    }
    121120
    122     public void setIsocatRestUrl(String isocatRestUrl) {
    123         LOG.info("Setting isocatRestUrl to {}", isocatRestUrl);
    124         this.isocatRestUrl = isocatRestUrl;
     121    public void setCcrRestUrl(String ccrRestUrl) {
     122        LOG.info("Setting ccrRestUrl to {}", ccrRestUrl);
     123        this.ccrRestUrl = ccrRestUrl;
    125124    }
    126125
    127126    public String[] getAdminUsersArray() {
    128         return adminUsers.toArray(new String[0]);
     127        return adminUsers.toArray(new String[0]);
    129128    }
    130129}
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/MDMarshaller.java

    r3091 r5928  
    44import java.io.ByteArrayInputStream;
    55import java.io.ByteArrayOutputStream;
    6 import java.io.File;
    7 import java.io.FileInputStream;
    8 import java.io.IOException;
    96import java.io.InputStream;
    107import java.io.OutputStream;
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/ComponentRegistryDbImpl.java

    r5874 r5928  
    800800    }
    801801
    802     private boolean canCurrentUserAccessDescription(String cmdId) throws ItemNotFoundException, AuthenticationRequiredException {
     802    @Override
     803    public boolean canCurrentUserAccessDescription(String cmdId) throws ItemNotFoundException, AuthenticationRequiredException {
    803804        if (cmdId == null) {
    804805            throw new ItemNotFoundException("Item with the null cmdIdentifier.");
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/rest/ComponentRegistryRestService.java

    r5874 r5928  
    368368                                try {
    369369                                    registry.getMDComponentAsXml(componentId, output);
    370                                 } catch (ItemNotFoundException e1) {
    371                                     LOG.warn("Could not retrieve component {}",
    372                                             componentId);
    373                                     LOG.debug("Details", e1);
    374                                     throw new WebApplicationException(e1, Response
     370                                } catch (ItemNotFoundException e) {
     371                                    LOG.warn("Could not retrieve component {}: {}",
     372                                            componentId, e.getMessage());
     373                                    LOG.debug("Details", e);
     374                                    throw new WebApplicationException(Response
    375375                                            .serverError()
    376376                                            .status(Status.INTERNAL_SERVER_ERROR)
     
    378378                                }
    379379                            } catch (ComponentRegistryException e) {
    380                                 LOG.warn("Could not retrieve component {}",
    381                                         componentId);
     380                                LOG.warn("Could not retrieve component {}: {}",
     381                                        componentId, e.getMessage());
    382382                                LOG.debug("Details", e);
    383                                 throw new WebApplicationException(e, Response
     383                                throw new WebApplicationException(Response
    384384                                        .serverError()
    385385                                        .status(Status.INTERNAL_SERVER_ERROR)
     
    402402                                try {
    403403                                    registry.getMDComponentAsXsd(componentId, output);
    404                                 } catch (ItemNotFoundException e1) {
    405                                     LOG.warn("Could not retrieve component {}",
    406                                             componentId);
    407                                     LOG.debug("Details", e1);
    408                                     throw new WebApplicationException(e1, Response
     404                                } catch (ItemNotFoundException e) {
     405                                    LOG.warn("Could not retrieve component {}: {}",
     406                                            componentId, e.getMessage());
     407                                    LOG.debug("Details", e);
     408                                    throw new WebApplicationException(Response
    409409                                            .serverError()
    410410                                            .status(Status.INTERNAL_SERVER_ERROR)
     
    412412                                }
    413413                            } catch (ComponentRegistryException e) {
    414                                 LOG.warn("Could not retrieve component {}",
    415                                         componentId);
     414                                LOG.warn("Could not retrieve component {}: {}",
     415                                        componentId, e.getMessage());
    416416                                LOG.debug("Details", e);
    417                                 throw new WebApplicationException(e, Response
     417                                throw new WebApplicationException(Response
    418418                                        .serverError()
    419419                                        .status(Status.INTERNAL_SERVER_ERROR)
     
    11961196                            registry.getMDProfileAsXml(profileId, output);
    11971197                        } catch (Exception e) {
    1198                             LOG.warn("Could not retrieve component {}",
    1199                                     profileId);
     1198                            LOG.warn("Could not retrieve component {}: {}",
     1199                                    profileId, e.getMessage());
    12001200                            LOG.debug("Details", e);
    1201                             throw new WebApplicationException(e, Response
     1201                            throw new WebApplicationException(Response
    12021202                                    .serverError()
    12031203                                    .status(Status.INTERNAL_SERVER_ERROR)
     
    12141214                            registry.getMDProfileAsXsd(profileId, output);
    12151215                        } catch (Exception e) {
    1216                             LOG.warn("Could not retrieve component {}",
    1217                                     profileId);
     1216                            LOG.warn("Could not retrieve component {}: {}",
     1217                                    profileId, e.getMessage());
    12181218                            LOG.debug("Details", e);
    1219                             throw new WebApplicationException(e, Response
     1219                            throw new WebApplicationException(Response
    12201220                                    .serverError()
    12211221                                    .status(Status.INTERNAL_SERVER_ERROR)
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/rest/MDValidator.java

    r5549 r5928  
    11package clarin.cmdi.componentregistry.rest;
    22
     3import clarin.cmdi.componentregistry.AuthenticationRequiredException;
    34import clarin.cmdi.componentregistry.ComponentRegistry;
    45import clarin.cmdi.componentregistry.ComponentRegistryException;
     
    1213import clarin.cmdi.componentregistry.components.CMDComponentSpec;
    1314import clarin.cmdi.componentregistry.components.CMDComponentType;
     15import clarin.cmdi.componentregistry.impl.database.GroupService;
    1416import clarin.cmdi.componentregistry.model.BaseDescription;
    1517import clarin.cmdi.schema.cmd.Validator.Message;
     
    3941    static final String SCHEMA_ERROR = "Error in reading general component schema: ";
    4042    static final String IO_ERROR = "Error while reading specification or general component schema: ";
     43    static final String INTERNAL_ERROR = "Internal error: ";   
    4144    static final String COMPONENT_NOT_REGISTERED_IN_APPROPRIATE_SPACE_ERROR = "referenced component cannot be found in the appropriate registry components: ";
    4245    static final String COMPONENT_REGISTRY_EXCEPTION_ERROR = "An exception occurred while accessing the component registry: ";
     
    119122            } catch (NullIdException e3) {
    120123                errorMessages.add(COMPONENT_NOT_REGISTERED_ERROR + e3);
     124            } catch(AuthenticationRequiredException e) {
     125                errorMessages.add(INTERNAL_ERROR + e);
    121126            }
    122127        }
     
    136141    }
    137142
    138     private void validateComponents(CMDComponentSpec componentSpec) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException {
     143    private void validateComponents(CMDComponentSpec componentSpec) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException, AuthenticationRequiredException {
    139144        validateComponents(Collections.singletonList(componentSpec.getCMDComponent()));
    140145    }
    141146
    142     private void validateComponents(List<CMDComponentType> cmdComponents) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException {
     147    private void validateComponents(List<CMDComponentType> cmdComponents) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException, AuthenticationRequiredException {
    143148        for (CMDComponentType cmdComponentType : cmdComponents) {
    144149            this.validateDescribedComponents(cmdComponentType);
     
    147152    }
    148153
    149     private void validateDescribedComponents(CMDComponentType cmdComponentType) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException {
     154    private void validateDescribedComponents(CMDComponentType cmdComponentType) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException, AuthenticationRequiredException {
    150155        this.checkComponentInSpace(cmdComponentType);
    151156    }
    152157
    153     private void checkComponentInSpace(CMDComponentType cmdComponentType) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException {
     158    private void checkComponentInSpace(CMDComponentType cmdComponentType) throws ComponentRegistryException, UserUnauthorizedException, ItemNotFoundException, NullIdException, AuthenticationRequiredException {
    154159        if (isDefinedInSeparateFile(cmdComponentType)) {
    155160            String id = cmdComponentType.getComponentId();
     
    160165            CMDComponentSpec registeredComponent = registry.getMDComponent(id);
    161166            if (registeredComponent != null) {
    162                 String componentId = cmdComponentType.getComponentId();
    163                 Boolean isPublicB = registry.isItemPublic(id);// throws ItemNotFoundException
    164                 boolean isPublic = isPublicB.booleanValue();
    165                 if (isPublic) {  // if  a component is public, it is available for any registry
     167                final String componentId = cmdComponentType.getComponentId();
     168                if (registry.isItemPublic(id)) {  // if  a component is public, it is available for any registry
    166169                    return;
    167170                };
    168171                // a private component for a private registry is available only if its owner is the owner of the resgitry
    169172                if (registry.getRegistrySpace().equals(RegistrySpace.PRIVATE)) {
    170                     Number registryOwnerId = registry.getRegistryOwner().getId();
    171                     Number componentOwnerId = registry.getBaseDescriptionOwnerId(cmdComponentType.getComponentId());
    172                     if (registryOwnerId.equals(componentOwnerId)) {
     173                    if(registry.canCurrentUserAccessDescription(componentId)) {
    173174                        return;
    174                     };
     175                    }
    175176                    errorMessages.add(COMPONENT_NOT_REGISTERED_IN_APPROPRIATE_SPACE_ERROR + componentId + " (private registry)");
    176177                    return;
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/resources/spring-config/applicationContext.xml

    r5549 r5928  
    5151                <property name="componentSpecSchemaLocation"
    5252                        value="${eu.clarin.cmdi.componentregistry.componentSpecSchemaLocation}" />
    53                 <property name="isocatRestUrl"
    54                         value="${eu.clarin.cmdi.componentregistry.isocatRestUrl}" />
     53                <property name="ccrRestUrl"
     54                        value="${eu.clarin.cmdi.componentregistry.ccrRestUrl}" />
    5555                <!-- Extra attribute keys that are passed in a shibboleth authenticated
    5656                        request principal. You need to configure the shhaa.xml file to enable the
     
    113113                                <prop key="hibernate.dialect">${eu.clarin.cmdi.componentregistry.jpaDialect}</prop>
    114114                                <prop key="hibernate.show_sql">false</prop>
     115                                <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
    115116                                <!-- prop key="hibernate.hbm2ddl.auto">update</prop -->
    116117                        </props>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/webapp/META-INF/context.xml

    r5549 r5928  
    6767        Base location of the ISOcat service
    6868    -->
    69   <Parameter name="eu.clarin.cmdi.componentregistry.isocatRestUrl" value="https://catalog.clarin.eu/isocat/rest/"/>
     69  <Parameter name="eu.clarin.cmdi.componentregistry.ccrRestUrl" value="https://openskos.meertens.knaw.nl/ccr/api/"/>
    7070  <Parameter name="eu.clarin.cmdi.componentregistry.jpaDialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    7171</Context>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/webapp/WEB-INF/web-shib.xml

    r5834 r5928  
    102102
    103103    <servlet>
    104         <servlet-name>Isocat Servlet</servlet-name>
    105         <servlet-class>clarin.cmdi.componentregistry.servlet.IsocatServlet</servlet-class>
     104        <servlet-name>Concept Registry Servlet</servlet-name>
     105        <servlet-class>clarin.cmdi.componentregistry.servlet.ConceptRegistryServlet</servlet-class>
    106106        <load-on-startup>1</load-on-startup>
    107107    </servlet>
    108108    <servlet-mapping>
    109         <servlet-name>Isocat Servlet</servlet-name>
    110         <url-pattern>/isocat/*</url-pattern>
     109        <servlet-name>Concept Registry Servlet</servlet-name>
     110        <url-pattern>/ccr/*</url-pattern>
    111111    </servlet-mapping>
    112112    <servlet>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/main/webapp/WEB-INF/web-test.xml

    r5834 r5928  
    7676        <servlet-name>ComponentRegistry Web Application</servlet-name>
    7777        <url-pattern>/rest/*</url-pattern>
    78     </servlet-mapping>
     78    </servlet-mapping>   
     79   
    7980    <servlet>
    80         <servlet-name>Isocat Servlet</servlet-name>
    81         <servlet-class>clarin.cmdi.componentregistry.servlet.IsocatServlet
    82         </servlet-class>
     81        <servlet-name>Concept Registry Servlet</servlet-name>
     82        <servlet-class>clarin.cmdi.componentregistry.servlet.ConceptRegistryServlet</servlet-class>
    8383        <load-on-startup>1</load-on-startup>
    8484    </servlet>
    8585    <servlet-mapping>
    86         <servlet-name>Isocat Servlet</servlet-name>
    87         <url-pattern>/isocat/*</url-pattern>
     86        <servlet-name>Concept Registry Servlet</servlet-name>
     87        <url-pattern>/ccr/*</url-pattern>
    8888    </servlet-mapping>
     89   
    8990    <servlet>
    9091        <servlet-name>JerseyJaxrsConfig</servlet-name>
  • ComponentRegistry/branches/ComponentRegistry-1.14/ComponentRegistry/src/test/resources/spring-config/component-registry.properties

    r4680 r5928  
    33eu.clarin.cmdi.componentregistry.component2SchemaXslUrl=https://infra.clarin.eu/cmd/xslt/comp2schema-v2/comp2schema.xsl
    44eu.clarin.cmdi.componentregistry.componentSpecSchemaLocation=http://www.clarin.eu/cmd http://lux16.mpi.nl/general-component-schema.xsd
    5 eu.clarin.cmdi.componentregistry.isocatRestUrl=https://catalog.clarin.eu/isocat/rest/
     5eu.clarin.cmdi.componentregistry.ccrRestUrl=https://openskos.meertens.knaw.nl/ccr/api/
    66eu.clarin.cmdi.componentregistry.jpaDialect=org.hibernate.dialect.HSQLDialect
Note: See TracChangeset for help on using the changeset viewer.