Changeset 1864


Ignore:
Timestamp:
04/05/12 15:38:51 (12 years ago)
Author:
twagoo
Message:

Created ComponentRegistry-1.11.1. Copied from 1.11.0 and merged a number two fixes from trunk:

  • caching of w3c xml.xsd schema in validator (CMDValidate -> 1.1)
  • issue with user settings page users without user entry in database
Location:
ComponentRegistry/tags/ComponentRegistry-1.11.1
Files:
19 edited
7 copied

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/tags/ComponentRegistry-1.11.1

  • ComponentRegistry/tags/ComponentRegistry-1.11.1/CMDValidate/pom.xml

    r1843 r1864  
    1010    <groupId>clarin.cmdi</groupId>
    1111    <artifactId>cmd-validate</artifactId>
    12     <version>1.0</version>
     12    <version>1.1</version>
    1313    <name>CMDValidate</name>
    1414    <build>
     
    4545            <artifactId>junit</artifactId>
    4646            <version>4.10</version>
    47             <scope>test</scope>
    4847        </dependency>
    4948        <dependency>
     
    5150            <artifactId>Saxon-HE</artifactId>
    5251            <version>9.4</version>
     52        </dependency>
     53        <dependency>
     54            <groupId>xml-resolver</groupId>
     55            <artifactId>xml-resolver</artifactId>
     56            <version>1.2</version>
     57            <scope>test</scope>
    5358        </dependency>
    5459    </dependencies>
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/CMDValidate/src/main/java/clarin/cmdi/schema/cmd/Validator.java

    r1843 r1864  
    2525import net.sf.saxon.s9api.XsltTransformer;
    2626import org.w3c.dom.Document;
     27import org.w3c.dom.ls.LSResourceResolver;
    2728import org.xml.sax.SAXException;
    2829
     
    6465     */
    6566    private XdmNode validationReport = null;
     67    private LSResourceResolver resourceResolver = null;
    6668
    6769    /**
     
    134136        if (cmdSchema == null) {
    135137            SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     138            if (getResourceResolver() != null) {
     139                factory.setResourceResolver(getResourceResolver());
     140            }
    136141
    137142            // Load the CMD XSD.
     
    374379
    375380    /**
     381     * @return Resource resolver used for schemata
     382     */
     383    protected LSResourceResolver getResourceResolver() {
     384        return resourceResolver;
     385    }
     386
     387    /**
     388     * @param resourceResolver Resource resolver to use for schemata
     389     */
     390    public void setResourceResolver(LSResourceResolver resourceResolver) {
     391        this.resourceResolver = resourceResolver;
     392    }
     393
     394    /**
    376395     * Public inner class to represent validation messages.
    377396     */
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/CMDValidate/src/test/java/clarin/cmdi/schema/cmd/TestCMDValidate.java

    r1745 r1864  
    99import javax.xml.transform.Source;
    1010import org.junit.*;
     11
    1112import static org.junit.Assert.*;
    1213
     
    2223    public void setUp() {
    2324        cmdValidator = new Validator(getClass().getResource("/schema/general-component-schema.xsd"));
     25        cmdValidator.setResourceResolver(new ResourceResolver());
    2426    }
    2527
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentBrowserGui

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry

  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/CHANGES

    r1844 r1864  
    11Bug Fixes and Features
     2
     3Release ComponentRegistry-1.11.1 (17 april 2012):
     4- Fixed caching of w3c xml.xsd schema in validator
     5- Fixes issue with user settings page users without user entry in database
    26
    37Release ComponentRegistry-1.11.0 (3 april 2012):
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/pom.xml

    r1816 r1864  
    185185            <groupId>clarin.cmdi</groupId>
    186186            <artifactId>cmd-validate</artifactId>
    187             <version>1.0</version>
     187            <version>1.1</version>
    188188        </dependency>
    189189    </dependencies>
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/binding

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/binding/bindings.xjb

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java

  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/MDMarshaller.java

    r1816 r1864  
    4141    private final static Logger LOG = LoggerFactory.getLogger(MDMarshaller.class);
    4242    /**
    43      * I define W3C_XML_SCHEMA_NS_URI here cannot get it from @see XMLConstants there is a conflict between stax-api and java5.
     43     * I define W3C_XML_SCHEMA_NS_URI here cannot get it from
     44     *
     45     * @see XMLConstants there is a conflict between stax-api and java5.
    4446     */
    4547    private static final String W3C_XML_SCHEMA_NS_URI = "http://www.w3.org/2001/XMLSchema";
     
    6567
    6668    /**
    67      * 
     69     *
    6870     * @param docClass
    6971     * @param inputStream
     
    102104    }
    103105
    104     public static Schema getCMDComponentSchema() {
     106    public static synchronized Schema getCMDComponentSchema() {
    105107        if (generalComponentSchema == null) {
    106108            try {
    107109                SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
    108                 schemaFactory.setResourceResolver(new LSResourceResolver() {
    109                     private CatalogResolver catRes = new CatalogResolver();
    110 
    111                     @Override
    112                     public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
    113                         InputSource resolveEntity = catRes.resolveEntity(publicId, systemId);
    114                         resolveEntity.setEncoding("UTF-8");
    115                         DOMImplementationLS domImplementation;
    116                         try {
    117                             domImplementation = (DOMImplementationLS) DOMImplementationRegistry.newInstance().getDOMImplementation("LS");
    118                         } catch (ClassCastException e) {
    119                             throw new RuntimeException(e);
    120                         } catch (ClassNotFoundException e) {
    121                             throw new RuntimeException(e);
    122                         } catch (InstantiationException e) {
    123                             throw new RuntimeException(e);
    124                         } catch (IllegalAccessException e) {
    125                             throw new RuntimeException(e);
    126                         }
    127                         LSInput lsInput = domImplementation.createLSInput();
    128                         lsInput.setEncoding("UTF-8");
    129                         lsInput.setByteStream(resolveEntity.getByteStream());
    130                         lsInput.setCharacterStream(resolveEntity.getCharacterStream());
    131                         return lsInput;
    132                     }
    133                 });
     110                schemaFactory.setResourceResolver(new ComponentRegistryResourceResolver());
    134111                generalComponentSchema = schemaFactory.newSchema(new URL(Configuration.getInstance().getGeneralComponentSchema()));
    135112            } catch (MalformedURLException e) {
     
    169146    }
    170147
    171    
    172    
    173148    private static String getSpecId(CMDComponentSpec spec) {
    174149        String result = "";
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/UserSettingsPage.java

    r1779 r1864  
    55package clarin.cmdi.componentregistry.frontend;
    66
     7import clarin.cmdi.componentregistry.ComponentRegistryFactory;
     8import clarin.cmdi.componentregistry.UserCredentials;
    79import clarin.cmdi.componentregistry.impl.database.UserDao;
    810import clarin.cmdi.componentregistry.model.RegistryUser;
     
    2931    @SpringBean
    3032    private UserDao userDao;
     33    @SpringBean(name = "componentRegistryFactory")
     34    private ComponentRegistryFactory componentRegistryFactory;
    3135    private RegistryUser registryUser;
    3236
     
    3539
    3640        Principal userPrincipal = ((WebRequestCycle) (RequestCycle.get())).getWebRequest().getHttpServletRequest().getUserPrincipal();
    37         registryUser = userDao.getByPrincipalName(userPrincipal.getName());
    38        
     41        registryUser = componentRegistryFactory.getOrCreateUser(new UserCredentials(userPrincipal));
     42
    3943        add(new Label("userName", registryUser.getPrincipalName()));
    4044
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/ComponentRegistryFactoryDbImpl.java

    r1698 r1864  
    2020 * ComponentRegistryDbImpl implementation of ComponentRegistry for accessing the
    2121 * registry
    22  * 
     22 *
    2323 * @author Twan Goosen <twan.goosen@mpi.nl>
    2424 */
     
    118118        RegistryUser user = userDao.getByPrincipalName(principalName);
    119119        if (user == null) {
     120            LOG.info("Request to create user with principal name {} and display name {}", new Object[]{principalName, displayName});
    120121            // Create the new user
    121122            user = new RegistryUser();
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/rest/ComponentRegistryRestService.java

    r1753 r1864  
    8181
    8282    /**
    83      * 
     83     *
    8484     * @return Principal of current request
    8585     * @throws IllegalArgumentException If no user principal found
     
    281281
    282282    /**
    283      * 
     283     *
    284284     * Purely helper method for my front-end (FLEX) which only does post/get requests. The query param is checked and the "proper" method is
    285285     * called.
     286     *
    286287     * @param profileId
    287288     * @param method
     
    373374
    374375    /**
    375      * 
     376     *
    376377     * Purely helper method for my front-end (FLEX) which van only do post/get requests. The query param is checked and the "proper" method
    377378     * is called.
     379     *
    378380     * @param componentId
    379381     * @param method
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/rest/MDValidator.java

    r1816 r1864  
    33import clarin.cmdi.componentregistry.ComponentRegistry;
    44import clarin.cmdi.componentregistry.ComponentRegistryException;
     5import clarin.cmdi.componentregistry.ComponentRegistryResourceResolver;
    56import clarin.cmdi.componentregistry.Configuration;
    67import clarin.cmdi.componentregistry.MDMarshaller;
     
    2829
    2930public class MDValidator implements Validator {
    30 
     31   
    3132    private final static Logger LOG = LoggerFactory.getLogger(MDValidator.class);
    3233    static final String MISMATCH_ERROR = "Cannot register component as a profile or vica versa.";
     
    4950
    5051    /**
    51      *
    52      * @param input In order to validate the input is consumed. So use @see getCMDComponentSpec to get the parsed CMDComponentSpec.
     52     *
     53     * @param input In order to validate the input is consumed. So use
     54     * @see getCMDComponentSpec to get the parsed CMDComponentSpec.
    5355     * @param desc
    54      * @param registry (registry you currently used)
    55      * @param userRegistry can be null, We get user registry as well so we can give nice error messages if needed. Can be the same as @param registry
     56     * @param registry (registry you currently used)
     57     * @param userRegistry can be null, We get user registry as well so we can give nice error messages if needed. Can be the same as
     58     * @param registry
    5659     */
    5760    public MDValidator(InputStream input, AbstractDescription description, ComponentRegistry registry, ComponentRegistry userRegistry, ComponentRegistry publicRegistry) {
     
    6265        this.publicRegistry = publicRegistry;
    6366    }
    64 
     67   
    6568    @Override
    6669    public List<String> getErrorMessages() {
    6770        return errorMessages;
    6871    }
    69 
     72   
    7073    @Override
    7174    public boolean validate() {
    7275        try {
    7376            clarin.cmdi.schema.cmd.Validator validator = new clarin.cmdi.schema.cmd.Validator(new URL(Configuration.getInstance().getGeneralComponentSchema()));
     77            validator.setResourceResolver(new ComponentRegistryResourceResolver());
    7478            // We may need to reuse the input stream, so save it to a byte array first
    7579            byte[] inputBytes = getBytesFromInputStream();
     
    109113        return errorMessages.isEmpty();
    110114    }
    111 
     115   
    112116    private byte[] getBytesFromInputStream() throws IOException {
    113117        int len;
    114118        byte[] b = new byte[4096];
    115119        final ByteArrayOutputStream bOS = new ByteArrayOutputStream();
    116 
     120       
    117121        while ((len = input.read(b)) > 0) {
    118122            bOS.write(b, 0, len);
    119123        }
    120 
     124       
    121125        return bOS.toByteArray();
    122126    }
    123 
     127   
    124128    private void validateComponents(List<CMDComponentType> cmdComponents) throws ComponentRegistryException {
    125129        for (CMDComponentType cmdComponentType : cmdComponents) {
     
    128132        }
    129133    }
    130 
     134   
    131135    private void validateDescribedComponents(CMDComponentType cmdComponentType) throws ComponentRegistryException {
    132136        checkPublicComponents(cmdComponentType);
    133137    }
    134 
     138   
    135139    private void checkPublicComponents(CMDComponentType cmdComponentType) throws ComponentRegistryException {
    136140        if (isDefinedInSeparateFile(cmdComponentType)) {
     
    157161                    }
    158162                }
    159 
     163               
    160164            }
    161165        }
    162166    }
    163 
     167   
    164168    private boolean isDefinedInSeparateFile(CMDComponentType cmdComponentType) {
    165169        return cmdComponentType.getName() == null;
    166170    }
    167 
     171   
    168172    public CMDComponentSpec getCMDComponentSpec() {
    169173        return spec;
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/test/java

  • ComponentRegistry/tags/ComponentRegistry-1.11.1/ComponentRegistry/src/test/java/clarin/cmdi/componentregistry/rest/ConcurrentRestServiceTest.java

    r1603 r1864  
    33import clarin.cmdi.componentregistry.impl.database.ComponentRegistryTestDatabase;
    44import clarin.cmdi.componentregistry.model.AbstractDescription;
    5 import static clarin.cmdi.componentregistry.rest.ComponentRegistryRestService.USERSPACE_PARAM;
    6 import static org.junit.Assert.assertEquals;
    7 import static org.junit.Assert.fail;
    8 
     5import clarin.cmdi.componentregistry.model.ComponentDescription;
     6import clarin.cmdi.componentregistry.model.ProfileDescription;
     7import clarin.cmdi.componentregistry.model.RegisterResponse;
     8import com.sun.jersey.api.client.ClientResponse;
     9import com.sun.jersey.multipart.FormDataMultiPart;
    910import java.io.InputStream;
    1011import java.util.ArrayList;
    1112import java.util.Arrays;
     13import java.util.Collections;
     14import java.util.Comparator;
    1215import java.util.List;
    13 
    1416import javax.ws.rs.core.MediaType;
    15 
    1617import org.junit.Before;
    1718import org.junit.Test;
    1819import org.junit.runner.RunWith;
    19 
    20 import clarin.cmdi.componentregistry.model.ComponentDescription;
    21 import clarin.cmdi.componentregistry.model.ProfileDescription;
    22 import clarin.cmdi.componentregistry.model.RegisterResponse;
    23 
    24 import com.sun.jersey.api.client.ClientResponse;
    25 import com.sun.jersey.multipart.FormDataMultiPart;
    26 import java.util.Collections;
    27 import java.util.Comparator;
    2820import org.slf4j.Logger;
    2921import org.slf4j.LoggerFactory;
     
    3325import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    3426
     27import static clarin.cmdi.componentregistry.rest.ComponentRegistryRestService.USERSPACE_PARAM;
     28import static org.junit.Assert.*;
     29
    3530@RunWith(SpringJUnit4ClassRunner.class)
    36 @ContextConfiguration(locations = { "/applicationContext.xml" })
     31@ContextConfiguration(locations = {"/applicationContext.xml"})
    3732public class ConcurrentRestServiceTest extends ComponentRegistryRestServiceTestCase {
    3833
    3934    private final static Logger LOG = LoggerFactory.getLogger(ConcurrentRestServiceTest.class);
    40     private int NR_OF_PROFILES = 50;
    41     private int NR_OF_COMPONENTS = 50;
    42 
     35    private int NR_OF_PROFILES = 20;
     36    private int NR_OF_COMPONENTS = 20;
    4337    @Autowired
    4438    private JdbcTemplate jdbcTemplate;
     
    5448        return "classpath:applicationContext.xml";
    5549    }
    56    
     50
    5751    @Test
    5852    public void testConcurrentRegisterProfile() throws Exception {
     
    125119        for (int i = 0; i < size; i++) {
    126120            final boolean shouldDelete = (i % 2) == 1;
     121            LOG.debug("Profile {} should be registered in {} and {}", new Object[]{i + 1000, Boolean.parseBoolean(userSpace) ? "user space" : "public space", shouldDelete ? "ALSO DELETED" : "not deleted"});
    127122            Thread thread = createThread("/registry/profiles/", userSpace, "Test Profile" + (i + 1000), shouldDelete, RegistryTestHelper.getTestProfileContent(), errors);
    128123            ts.add(thread);
     
    133128        for (int i = 0; i < size; i++) {
    134129            final boolean shouldDelete = (i % 2) == 1;
     130            LOG.debug("Component {} should be registered in {} and {}", new Object[]{i + 1000, Boolean.parseBoolean(userSpace) ? "user space" : "public space", shouldDelete ? "ALSO DELETED" : "not deleted"});
    135131            Thread thread = createThread("/registry/components/", userSpace, "Test Component" + (i + 1000), shouldDelete,
    136132                    RegistryTestHelper.getComponentTestContent(), errors);
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/README

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/docs

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • ComponentRegistry/tags/ComponentRegistry-1.11.1/pom.xml

    • Property svn:mergeinfo changed (with no actual effect on merging)
    r1843 r1864  
    2222  <properties>
    2323    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    24     <ComponentBrowserGui.version>1.11.0</ComponentBrowserGui.version>
    25     <ComponentRegistry.version>1.11.0</ComponentRegistry.version>
     24    <ComponentBrowserGui.version>1.11.1</ComponentBrowserGui.version>
     25    <ComponentRegistry.version>1.11.1</ComponentRegistry.version>
    2626  </properties>
    2727 
Note: See TracChangeset for help on using the changeset viewer.