Search in sources :

Example 1 with Format

use of com.ibm.commons.xml.Format in project org.openntf.nsfodp by OpenNTF.

the class AbstractSchemaServlet method doGet.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    try {
        Document doc = DOMUtil.createDocument(namespace, "xs:schema");
        doc.setXmlStandalone(true);
        Element schema = doc.getDocumentElement();
        schema.setAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema");
        schema.setAttribute("xmlns:" + extMap.get(namespace), namespace);
        schema.setAttribute("targetNamespace", namespace);
        schema.setAttribute("elementFormDefault", "qualified");
        for (String importUri : this.imports) {
            schema.setAttribute("xmlns:" + extMap.get(importUri), importUri);
            Element importEl = DOMUtil.createElement(doc, schema, "xs:import");
            importEl.setAttribute("namespace", importUri);
            // importEl.setAttribute("schemaLocation", URI.create(req.getRequestURL().toString()).resolve(extMap.get(importUri) + ".xsd").toString());
            importEl.setAttribute("schemaLocation", extMap.get(importUri) + ".xsd");
        }
        outSimpleTypes(schema);
        SharableRegistryImpl facesRegistry = new SharableRegistryImpl(getClass().getPackage().getName());
        // $NON-NLS-1$
        List<Object> libraries = ExtensionManager.findServices((List<Object>) null, LibraryServiceLoader.class, "com.ibm.xsp.Library");
        libraries.stream().filter(lib -> lib instanceof XspLibrary).map(XspLibrary.class::cast).map(lib -> new LibraryWrapper(lib.getLibraryId(), lib)).map(wrapper -> {
            SimpleRegistryProvider provider = new SimpleRegistryProvider();
            provider.init(wrapper);
            return provider;
        }).map(XspRegistryProvider::getRegistry).forEach(facesRegistry::addDepend);
        facesRegistry.refreshReferences();
        @SuppressWarnings("unchecked") List<FacesDefinition> defs = (List<FacesDefinition>) (List<?>) facesRegistry.findDefs();
        defs.stream().filter(FacesDefinition::isTag).filter(def -> StringUtil.equals(namespace, def.getNamespaceUri())).forEach(def -> outComponentDefinition(def, schema, facesRegistry, false));
        resp.setContentType("text/xml");
        DOMUtil.serialize(resp.getOutputStream(), doc, new Format(2, true, "UTF-8"));
    } catch (Throwable e) {
        e.printStackTrace();
        resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getLocalizedMessage());
        resp.setContentType("text/plain");
        e.printStackTrace(new PrintWriter(resp.getOutputStream()));
        resp.getOutputStream().flush();
        e.printStackTrace();
    }
}
Also used : FacesListener(javax.faces.event.FacesListener) FacesSimpleProperty(com.ibm.xsp.registry.FacesSimpleProperty) ServletException(javax.servlet.ServletException) Date(java.util.Date) ExtensionManager(com.ibm.commons.extension.ExtensionManager) SimpleRegistryProvider(com.ibm.xsp.registry.config.SimpleRegistryProvider) HashMap(java.util.HashMap) XspLibrary(com.ibm.xsp.library.XspLibrary) TemporalAccessor(java.time.temporal.TemporalAccessor) FacesComplexDefinition(com.ibm.xsp.registry.FacesComplexDefinition) HttpServletRequest(javax.servlet.http.HttpServletRequest) FacesComponentDefinition(com.ibm.xsp.registry.FacesComponentDefinition) Document(org.w3c.dom.Document) ActionGroup(com.ibm.xsp.actions.ActionGroup) Map(java.util.Map) Node(org.w3c.dom.Node) LocalTime(java.time.LocalTime) AbstractContainerProperty(com.ibm.xsp.registry.AbstractContainerProperty) MethodBinding(javax.faces.el.MethodBinding) LibraryWrapper(com.ibm.xsp.library.LibraryWrapper) PrintWriter(java.io.PrintWriter) PathUtil(com.ibm.commons.util.PathUtil) DOMUtil(com.ibm.commons.xml.DOMUtil) FacesValidatorDefinition(com.ibm.xsp.registry.FacesValidatorDefinition) SharableRegistryImpl(com.ibm.xsp.registry.SharableRegistryImpl) Properties(java.util.Properties) HttpServlet(javax.servlet.http.HttpServlet) FacesContainerProperty(com.ibm.xsp.registry.FacesContainerProperty) Collection(java.util.Collection) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) FacesDefinition(com.ibm.xsp.registry.FacesDefinition) Collectors(java.util.stream.Collectors) ValueBinding(javax.faces.el.ValueBinding) FacesProperty(com.ibm.xsp.registry.FacesProperty) UIComponent(javax.faces.component.UIComponent) LibraryServiceLoader(com.ibm.xsp.library.LibraryServiceLoader) List(java.util.List) Stream(java.util.stream.Stream) Element(org.w3c.dom.Element) StringUtil(com.ibm.commons.util.StringUtil) XspRegistryProvider(com.ibm.xsp.registry.config.XspRegistryProvider) Format(com.ibm.commons.xml.Format) XMLException(com.ibm.commons.xml.XMLException) InputStream(java.io.InputStream) ComplexContainerTreeNode(com.ibm.xsp.extlib.tree.complex.ComplexContainerTreeNode) LibraryWrapper(com.ibm.xsp.library.LibraryWrapper) Element(org.w3c.dom.Element) XspLibrary(com.ibm.xsp.library.XspLibrary) FacesDefinition(com.ibm.xsp.registry.FacesDefinition) Document(org.w3c.dom.Document) SharableRegistryImpl(com.ibm.xsp.registry.SharableRegistryImpl) Format(com.ibm.commons.xml.Format) SimpleRegistryProvider(com.ibm.xsp.registry.config.SimpleRegistryProvider) List(java.util.List) PrintWriter(java.io.PrintWriter)

Aggregations

ExtensionManager (com.ibm.commons.extension.ExtensionManager)1 PathUtil (com.ibm.commons.util.PathUtil)1 StringUtil (com.ibm.commons.util.StringUtil)1 DOMUtil (com.ibm.commons.xml.DOMUtil)1 Format (com.ibm.commons.xml.Format)1 XMLException (com.ibm.commons.xml.XMLException)1 ActionGroup (com.ibm.xsp.actions.ActionGroup)1 ComplexContainerTreeNode (com.ibm.xsp.extlib.tree.complex.ComplexContainerTreeNode)1 LibraryServiceLoader (com.ibm.xsp.library.LibraryServiceLoader)1 LibraryWrapper (com.ibm.xsp.library.LibraryWrapper)1 XspLibrary (com.ibm.xsp.library.XspLibrary)1 AbstractContainerProperty (com.ibm.xsp.registry.AbstractContainerProperty)1 FacesComplexDefinition (com.ibm.xsp.registry.FacesComplexDefinition)1 FacesComponentDefinition (com.ibm.xsp.registry.FacesComponentDefinition)1 FacesContainerProperty (com.ibm.xsp.registry.FacesContainerProperty)1 FacesDefinition (com.ibm.xsp.registry.FacesDefinition)1 FacesProperty (com.ibm.xsp.registry.FacesProperty)1 FacesSimpleProperty (com.ibm.xsp.registry.FacesSimpleProperty)1 FacesValidatorDefinition (com.ibm.xsp.registry.FacesValidatorDefinition)1 SharableRegistryImpl (com.ibm.xsp.registry.SharableRegistryImpl)1