FragmentDescriptor descriptor = new FragmentDescriptor(xmlResource); _webFragmentResourceMap.put(jarResource, descriptor); _webFragmentRoots.add(descriptor); descriptor.setValidating(isValidateXml()); descriptor.parse(); if (descriptor.getName() != null) Descriptor existing = _webFragmentNameMap.get(descriptor.getName()); if (existing != null && !isAllowDuplicateFragmentNames()) throw new IllegalStateException("Duplicate fragment name: "+descriptor.getName()+" for "+existing.getResource()+" and "+descriptor.getResource()); _webFragmentNameMap.put(descriptor.getName(), descriptor); if (_ordering == null && descriptor.isOrdered())
else switch (fragment.getOtherType()) for (String name: fragment.getAfters()) for (String name: fragment.getBefores()) switch (fragment.getOtherType())
@Override public void processOrdering () { //Process a fragment jar's web-fragment.xml<ordering> elements XmlParser.Node root = getRoot(); XmlParser.Node ordering = root.get("ordering"); if (ordering == null) return; //No ordering for this fragment _isOrdered = true; processBefores(ordering); processAfters(ordering); }
List<String> befores = f.getBefores(); if (befores != null && !befores.isEmpty()) if (!isBefore(list, f.getName(), b)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, b); insert(list, idx2, f.getName()); changes = true; List<String> afters = f.getAfters(); if (afters != null && !afters.isEmpty()) if (!isAfter(list, f.getName(), a)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, a);
public void processName () { XmlParser.Node root = getRoot(); XmlParser.Node nameNode = root.get("name"); _name = NAMELESS+(_counter++); if (nameNode != null) { String tmp = nameNode.toString(false,true); if (tmp!=null && tmp.length()>0) _name = tmp; } } @Override
public boolean isDistributable () { boolean distributable = ( (_webDefaultsRoot != null && _webDefaultsRoot.isDistributable()) || (_webXmlRoot != null && _webXmlRoot.isDistributable())); for (WebDescriptor d : _webOverrideRoots) distributable&=d.isDistributable(); if (getOrdering() != null) { List<Resource> orderedResources = getOrderedWebInfJars(); for (Resource r: orderedResources) { FragmentDescriptor d = _webFragmentResourceMap.get(r); if (d!=null) distributable = distributable && d.isDistributable(); } } return distributable; }
/** * Get the web-fragment.xml from a jar * * @param jar * @param frags * @return * @throws Exception */ public FragmentDescriptor getFragmentFromJar (Resource jar, List<FragmentDescriptor> frags) throws Exception { //check if the jar has a web-fragment.xml FragmentDescriptor d = null; for (FragmentDescriptor frag: frags) { Resource fragResource = frag.getResource(); //eg jar:file:///a/b/c/foo.jar!/META-INF/web-fragment.xml if (Resource.isContainedIn(fragResource,jar)) { d = frag; break; } } return d; }
if (descriptor != null) switch (descriptor.getOtherType())
List<String> befores = f.getBefores(); if (befores != null && !befores.isEmpty()) if (!isBefore(list, f.getName(), b)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, b); insert(list, idx2, f.getName()); changes = true; List<String> afters = f.getAfters(); if (afters != null && !afters.isEmpty()) if (!isAfter(list, f.getName(), a)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, a);
public void processName () { XmlParser.Node root = getRoot(); XmlParser.Node nameNode = root.get("name"); _name = NAMELESS+(_counter++); if (nameNode != null) { String tmp = nameNode.toString(false,true); if (tmp!=null && tmp.length()>0) _name = tmp; } } @Override
public boolean isDistributable () { boolean distributable = ( (_webDefaultsRoot != null && _webDefaultsRoot.isDistributable()) || (_webXmlRoot != null && _webXmlRoot.isDistributable())); for (WebDescriptor d : _webOverrideRoots) distributable&=d.isDistributable(); List<Resource> orderedResources = getOrderedWebInfJars(); for (Resource r: orderedResources) { FragmentDescriptor d = _webFragmentResourceMap.get(r); if (d!=null) distributable = distributable && d.isDistributable(); } return distributable; }
/** * Get the web-fragment.xml from a jar * * @param jar * @param frags * @return * @throws Exception */ public FragmentDescriptor getFragmentFromJar (Resource jar, List<FragmentDescriptor> frags) throws Exception { //check if the jar has a web-fragment.xml FragmentDescriptor d = null; for (FragmentDescriptor frag: frags) { Resource fragResource = frag.getResource(); //eg jar:file:///a/b/c/foo.jar!/META-INF/web-fragment.xml if (Resource.isContainedIn(fragResource,jar)) { d = frag; break; } } return d; }
if (descriptor != null) switch (descriptor.getOtherType())
FragmentDescriptor descriptor = new FragmentDescriptor(xmlResource); _webFragmentResourceMap.put(jarResource, descriptor); _webFragmentRoots.add(descriptor); descriptor.parse(); if (descriptor.getName() != null) Descriptor existing = _webFragmentNameMap.get(descriptor.getName()); if (existing != null && !isAllowDuplicateFragmentNames()) throw new IllegalStateException("Duplicate fragment name: "+descriptor.getName()+" for "+existing.getResource()+" and "+descriptor.getResource()); _webFragmentNameMap.put(descriptor.getName(), descriptor); return; if (_ordering == null && descriptor.isOrdered()) _ordering = new Ordering.RelativeOrdering(this);
@Override public void processOrdering () { //Process a fragment jar's web-fragment.xml<ordering> elements XmlParser.Node root = getRoot(); XmlParser.Node ordering = root.get("ordering"); if (ordering == null) return; //No ordering for this fragment _isOrdered = true; processBefores(ordering); processAfters(ordering); }
List<String> befores = f.getBefores(); if (befores != null && !befores.isEmpty()) if (!isBefore(list, f.getName(), b)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, b); insert(list, idx2, f.getName()); changes = true; List<String> afters = f.getAfters(); if (afters != null && !afters.isEmpty()) if (!isAfter(list, f.getName(), a)) int idx1 = getIndexOf(list, f.getName()); int idx2 = getIndexOf(list, a);
else switch (fragment.getOtherType()) for (String name: fragment.getAfters()) for (String name: fragment.getBefores()) switch (fragment.getOtherType())
public void processName () { XmlParser.Node root = getRoot(); XmlParser.Node nameNode = root.get("name"); _name = NAMELESS+(_counter++); if (nameNode != null) { String tmp = nameNode.toString(false,true); if (tmp!=null && tmp.length()>0) _name = tmp; } } @Override
public boolean isDistributable () { boolean distributable = ( (_webDefaultsRoot != null && _webDefaultsRoot.isDistributable()) || (_webXmlRoot != null && _webXmlRoot.isDistributable())); for (WebDescriptor d : _webOverrideRoots) distributable&=d.isDistributable(); List<Resource> orderedResources = getOrderedWebInfJars(); for (Resource r: orderedResources) { FragmentDescriptor d = _webFragmentResourceMap.get(r); if (d!=null) distributable = distributable && d.isDistributable(); } return distributable; }
/** * Get the web-fragment.xml from a jar * * @param jar the jar to look in for a fragment * @param frags the fragments previously found * @return true if the fragment if found, or null of not found * @throws Exception if unable to determine the the fragment contains */ public FragmentDescriptor getFragmentFromJar (Resource jar, List<FragmentDescriptor> frags) throws Exception { //check if the jar has a web-fragment.xml FragmentDescriptor d = null; for (FragmentDescriptor frag: frags) { Resource fragResource = frag.getResource(); //eg jar:file:///a/b/c/foo.jar!/META-INF/web-fragment.xml if (Resource.isContainedIn(fragResource,jar)) { d = frag; break; } } return d; }