Improve content edition and validation
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / TypesManager.java
index 72bb26f209c49e5437d5eaa8895fcffc78c12d7d..d3617e128729dd3678b09058e9cd12027ae9d299 100644 (file)
@@ -77,35 +77,30 @@ class TypesManager {
 
        }
 
-       public synchronized void init() {
-//             prefixes.put(CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI);
-//             prefixes.put("basic", CrName.CR_NAMESPACE_URI);
-//             prefixes.put("owner", CrName.CR_NAMESPACE_URI);
-//             prefixes.put("posix", CrName.CR_NAMESPACE_URI);
-
+       public void init() {
                for (CmsContentTypes cs : CmsContentTypes.values()) {
-                       StreamSource source = new StreamSource(cs.getResource().toExternalForm());
-                       sources.add(source);
-//                     if (prefixes.containsKey(cs.getDefaultPrefix()))
-//                             throw new IllegalStateException("Prefix " + cs.getDefaultPrefix() + " is already mapped with "
-//                                             + prefixes.get(cs.getDefaultPrefix()));
-//                     prefixes.put(cs.getDefaultPrefix(), cs.getNamespace());
+                       if (cs.getResource() != null) {
+                               StreamSource source = new StreamSource(cs.getResource().toExternalForm());
+                               sources.add(source);
+                       }
                        RuntimeNamespaceContext.register(cs.getNamespace(), cs.getDefaultPrefix());
                }
 
                reload();
        }
 
-       public synchronized void registerTypes(String defaultPrefix, String namespace, String xsdSystemId) {
+       public void registerTypes(String defaultPrefix, String namespace, String xsdSystemId) {
 //             if (prefixes.containsKey(defaultPrefix))
 //                     throw new IllegalStateException(
 //                                     "Prefix " + defaultPrefix + " is already mapped with " + prefixes.get(defaultPrefix));
 //             prefixes.put(defaultPrefix, namespace);
                RuntimeNamespaceContext.register(namespace, defaultPrefix);
 
-               if (xsdSystemId != null)
+               if (xsdSystemId != null) {
                        sources.add(new StreamSource(xsdSystemId));
-               reload();
+                       reload();
+                       log.debug(() -> "Registered types " + namespace + " from " + xsdSystemId);
+               }
        }
 
        public Set<QName> listTypes() {
@@ -458,7 +453,8 @@ class TypesManager {
                try {
                        validator.validate(source);
                } catch (SAXException e) {
-                       throw new IllegalArgumentException("Provided source is not valid", e);
+                       log.error(source + " is not valid " + e);
+                       // throw new IllegalArgumentException("Provided source is not valid", e);
                }
        }