Examples of WebOrdering


Examples of org.apache.catalina.deploy.WebOrdering

                    InputSource input = new InputSource((new File(jars[i].getName())).toURI().toURL().toExternalForm());
                    input.setByteStream(is);
                    synchronized (fragmentOrderingDigester) {
                        try {
                            fragmentOrderingDigester.parse(input);
                            WebOrdering ordering = (WebOrdering) fragmentOrderingDigester.peek();
                            if (ordering != null) {
                                ordering.setJar(jars[i].getName());
                                orderings.add(ordering);
                            }
                        } finally {
                            fragmentOrderingDigester.reset();
                        }
                    }
                } catch (Exception e) {
                    log.error(sm.getString("contextConfig.fragmentOrderingParse", jars[i].getName()), e);
                    ok = false;
                } finally {
                    try {
                        if (is != null) {
                            is.close();
                        }
                    } catch (IOException e) {
                        // Ignore
                    }
                }
            } else {
                // If there is no fragment, still consider it for ordering as a
                // fragment specifying no name and no order
                WebOrdering ordering = new WebOrdering();
                ordering.setJar(jars[i].getName());
                orderings.add(ordering);
            }
        }
        if (!fragmentFound) {
            // Drop the order as there is no fragment in the webapp
            orderings.clear();
        }
       
        // Generate web fragments parsing order
        if (absoluteOrdering != null) {
            // Absolute ordering from web.xml, any relative fragment ordering is ignored
            List<String> fragmentNames = absoluteOrdering.getOrder();
            int otherPos = -1;
            for (int i = 0; i < fragmentNames.size(); i++) {
                String fragmentName = fragmentNames.get(i);
                if (fragmentName.equals("*")) {
                    if (otherPos >= 0) {
                        log.error(sm.getString("contextConfig.invalidAbsoluteOrder"));
                        ok = false;
                    }
                    otherPos = i;
                } else {
                    Iterator<WebOrdering> orderingsIterator = orderings.iterator();
                    while (orderingsIterator.hasNext()) {
                        WebOrdering ordering = orderingsIterator.next();
                        if (fragmentName.equals(ordering.getName())) {
                            order.add(ordering.getJar());
                            jarsSet.remove(ordering.getJar());
                            break;
                        }
                    }
                }
            }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

     * Get the jar name corresponding to the ordering name.
     */
    protected String getJarName(List<WebOrdering> orderings, String name) {
        Iterator<WebOrdering> orderingsIterator = orderings.iterator();
        while (orderingsIterator.hasNext()) {
            WebOrdering ordering = orderingsIterator.next();
            if (name.equals(ordering.getName())) {
                return ordering.getJar();
            }
        }
        return null;
    }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

                    InputSource input = new InputSource((new File(jars[i].getName())).toURI().toURL().toExternalForm());
                    input.setByteStream(is);
                    synchronized (fragmentOrderingDigester) {
                        try {
                            fragmentOrderingDigester.parse(input);
                            WebOrdering ordering = (WebOrdering) fragmentOrderingDigester.peek();
                            if (ordering != null) {
                                ordering.setJar(jars[i].getName());
                                orderings.add(ordering);
                            }
                        } finally {
                            fragmentOrderingDigester.reset();
                        }
                    }
                } catch (Exception e) {
                    log.error(sm.getString("contextConfig.fragmentOrderingParse", jars[i].getName()), e);
                    ok = false;
                } finally {
                    try {
                        if (is != null) {
                            is.close();
                        }
                    } catch (IOException e) {
                        // Ignore
                    }
                }
            } else {
                // If there is no fragment, still consider it for ordering as a
                // fragment specifying no name and no order
                WebOrdering ordering = new WebOrdering();
                ordering.setJar(jars[i].getName());
                orderings.add(ordering);
            }
        }
        if (!fragmentFound) {
            // Drop the order as there is no fragment in the webapp
            orderings.clear();
        }
       
        // Generate web fragments parsing order
        if (absoluteOrdering != null) {
            // Absolute ordering from web.xml, any relative fragment ordering is ignored
            List<String> fragmentNames = absoluteOrdering.getOrder();
            int otherPos = -1;
            for (int i = 0; i < fragmentNames.size(); i++) {
                String fragmentName = fragmentNames.get(i);
                if (fragmentName.equals("*")) {
                    if (otherPos >= 0) {
                        log.error(sm.getString("contextConfig.invalidAbsoluteOrder"));
                        ok = false;
                    }
                    otherPos = i;
                } else {
                    Iterator<WebOrdering> orderingsIterator = orderings.iterator();
                    while (orderingsIterator.hasNext()) {
                        WebOrdering ordering = orderingsIterator.next();
                        if (fragmentName.equals(ordering.getName())) {
                            order.add(ordering.getJar());
                            jarsSet.remove(ordering.getJar());
                            break;
                        }
                    }
                }
            }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

     * Get the jar name corresponding to the ordering name.
     */
    protected String getJarName(List<WebOrdering> orderings, String name) {
        Iterator<WebOrdering> orderingsIterator = orderings.iterator();
        while (orderingsIterator.hasNext()) {
            WebOrdering ordering = orderingsIterator.next();
            if (name.equals(ordering.getName())) {
                return ordering.getJar();
            }
        }
        return null;
    }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

                    InputSource input = new InputSource((new File(jars[i].getName())).toURI().toURL().toExternalForm());
                    input.setByteStream(is);
                    synchronized (fragmentOrderingDigester) {
                        try {
                            fragmentOrderingDigester.parse(input);
                            WebOrdering ordering = (WebOrdering) fragmentOrderingDigester.peek();
                            if (ordering != null) {
                                ordering.setJar(jars[i].getName());
                                orderings.add(ordering);
                            }
                        } finally {
                            fragmentOrderingDigester.reset();
                        }
                    }
                } catch (Exception e) {
                    log.error(sm.getString("contextConfig.fragmentOrderingParse", jars[i].getName()), e);
                    ok = false;
                } finally {
                    try {
                        if (is != null) {
                            is.close();
                        }
                    } catch (IOException e) {
                        // Ignore
                    }
                }
            } else {
                // If there is no fragment, still consider it for ordering as a
                // fragment specifying no name and no order
                WebOrdering ordering = new WebOrdering();
                ordering.setJar(jars[i].getName());
                orderings.add(ordering);
            }
        }
        if (!fragmentFound) {
            // Drop the order as there is no fragment in the webapp
            orderings.clear();
        }
       
        // Generate web fragments parsing order
        if (absoluteOrdering != null) {
            // Absolute ordering from web.xml, any relative fragment ordering is ignored
            List<String> fragmentNames = absoluteOrdering.getOrder();
            int otherPos = -1;
            for (int i = 0; i < fragmentNames.size(); i++) {
                String fragmentName = fragmentNames.get(i);
                if (fragmentName.equals("*")) {
                    if (otherPos >= 0) {
                        log.error(sm.getString("contextConfig.invalidAbsoluteOrder"));
                        ok = false;
                    }
                    otherPos = i;
                } else {
                    Iterator<WebOrdering> orderingsIterator = orderings.iterator();
                    while (orderingsIterator.hasNext()) {
                        WebOrdering ordering = orderingsIterator.next();
                        if (fragmentName.equals(ordering.getName())) {
                            order.add(ordering.getJar());
                            jarsSet.remove(ordering.getJar());
                            break;
                        }
                    }
                }
            }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

     * Get the jar name corresponding to the ordering name.
     */
    protected String getJarName(List<WebOrdering> orderings, String name) {
        Iterator<WebOrdering> orderingsIterator = orderings.iterator();
        while (orderingsIterator.hasNext()) {
            WebOrdering ordering = orderingsIterator.next();
            if (name.equals(ordering.getName())) {
                return ordering.getJar();
            }
        }
        return null;
    }
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

        List<Ordering> work = new ArrayList<Ordering>();
       
        // Populate the work Ordering list
        Iterator<WebOrdering> webOrderingsIterator = webOrderings.iterator();
        while (webOrderingsIterator.hasNext()) {
            WebOrdering webOrdering = webOrderingsIterator.next();
            Ordering ordering = new Ordering();
            ordering.ordering = webOrdering;
            ordering.afterOthers = webOrdering.isAfterOthers();
            ordering.beforeOthers = webOrdering.isBeforeOthers();
            if (ordering.afterOthers && ordering.beforeOthers) {
                // Cannot be both after and before others
                throw new IllegalStateException(sm.getString("ordering.afterAndBeforeOthers", webOrdering.getJar()));
            }
            work.add(ordering);
        }
       
        // Create double linked relationships between the orderings,
        // and resolve names
        Iterator<Ordering> workIterator = work.iterator();
        while (workIterator.hasNext()) {
            Ordering ordering = workIterator.next();
            WebOrdering webOrdering = ordering.ordering;
            Iterator<String> after = webOrdering.getAfter().iterator();
            while (after.hasNext()) {
                String name = after.next();
                Iterator<Ordering> workIterator2 = work.iterator();
                boolean found = false;
                while (workIterator2.hasNext()) {
                    Ordering ordering2 = workIterator2.next();
                    if (name.equals(ordering2.ordering.getName())) {
                        if (found) {
                            // Duplicate name
                            throw new IllegalStateException(sm.getString("ordering.duplicateName", webOrdering.getJar()));
                        }
                        ordering.addAfter(ordering2);
                        ordering2.addBefore(ordering);
                        found = true;
                    }
                }
                if (!found) {
                    // Unknown name
                    throw new IllegalStateException(sm.getString("ordering.unkonwnName", webOrdering.getJar()));
                }
            }
            Iterator<String> before = webOrdering.getBefore().iterator();
            while (before.hasNext()) {
                String name = before.next();
                Iterator<Ordering> workIterator2 = work.iterator();
                boolean found = false;
                while (workIterator2.hasNext()) {
                    Ordering ordering2 = workIterator2.next();
                    if (name.equals(ordering2.ordering.getName())) {
                        if (found) {
                            // Duplicate name
                            throw new IllegalStateException(sm.getString("ordering.duplicateName", webOrdering.getJar()));
                        }
                        ordering.addBefore(ordering2);
                        ordering2.addAfter(ordering);
                        found = true;
                    }
                }
                if (!found) {
                    // Unknown name
                    throw new IllegalStateException(sm.getString("ordering.unkonwnName", webOrdering.getJar()));
                }
            }
        }
       
        // Validate ordering
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

    public static void test1() {

        ArrayList<String> order = new ArrayList<String>();
        ArrayList<WebOrdering> webOrderings = new ArrayList<WebOrdering>();

        WebOrdering A = new WebOrdering();
        A.setName("A");
        A.setJar("A.jar");
        A.setAfterOthers(true);
        A.addAfter("C");
        webOrderings.add(A);
       
        WebOrdering B = new WebOrdering();
        B.setName("B");
        B.setJar("B.jar");
        B.setBeforeOthers(true);
        webOrderings.add(B);
       
        WebOrdering C = new WebOrdering();
        C.setName("C");
        C.setJar("C.jar");
        C.setAfterOthers(true);
        webOrderings.add(C);
       
        WebOrdering D = new WebOrdering();
        D.setName("D");
        D.setJar("D.jar");
        webOrderings.add(D);
       
        WebOrdering E = new WebOrdering();
        E.setName("E");
        E.setJar("E.jar");
        webOrderings.add(E);
       
        WebOrdering F = new WebOrdering();
        F.setName("F");
        F.setJar("F.jar");
        F.setBeforeOthers(true);
        F.addBefore("B");
        webOrderings.add(F);
       
        long n1 = System.nanoTime();
        resolveOrder(webOrderings, order);
        long n2 = System.nanoTime();
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

    public static void test2() {

        ArrayList<String> order = new ArrayList<String>();
        ArrayList<WebOrdering> webOrderings = new ArrayList<WebOrdering>();

        WebOrdering A = new WebOrdering();
        A.setJar("noid.jar");
        A.setAfterOthers(true);
        A.addBefore("C");
        webOrderings.add(A);
       
        WebOrdering B = new WebOrdering();
        B.setName("B");
        B.setJar("B.jar");
        B.setBeforeOthers(true);
        webOrderings.add(B);
       
        WebOrdering C = new WebOrdering();
        C.setName("C");
        C.setJar("C.jar");
        webOrderings.add(C);
       
        WebOrdering D = new WebOrdering();
        D.setName("D");
        D.setJar("D.jar");
        D.setAfterOthers(true);
        webOrderings.add(D);
       
        WebOrdering E = new WebOrdering();
        E.setName("E");
        E.setJar("E.jar");
        E.setBeforeOthers(true);
        webOrderings.add(E);
       
        WebOrdering F = new WebOrdering();
        F.setName("F");
        F.setJar("F.jar");
        webOrderings.add(F);
       
        long n1 = System.nanoTime();
        resolveOrder(webOrderings, order);
        long n2 = System.nanoTime();
View Full Code Here

Examples of org.apache.catalina.deploy.WebOrdering

    public static void test3() {

        ArrayList<String> order = new ArrayList<String>();
        ArrayList<WebOrdering> webOrderings = new ArrayList<WebOrdering>();

        WebOrdering A = new WebOrdering();
        A.setName("A");
        A.setJar("A.jar");
        A.addAfter("B");
        webOrderings.add(A);
       
        WebOrdering B = new WebOrdering();
        B.setName("B");
        B.setJar("B.jar");
        webOrderings.add(B);
       
        WebOrdering C = new WebOrdering();
        C.setName("C");
        C.setJar("C.jar");
        C.setBeforeOthers(true);
        webOrderings.add(C);
       
        WebOrdering D = new WebOrdering();
        D.setName("D");
        D.setJar("D.jar");
        webOrderings.add(D);
       
        long n1 = System.nanoTime();
        resolveOrder(webOrderings, order);
        long n2 = System.nanoTime();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.