RFR: JDK-8224597: create automated tests for platform create-app-image options

Alexey Semenyuk alexey.semenyuk at oracle.com
Tue Jun 11 00:41:30 UTC 2019


I agree that SAX/StAX are faster and more memory efficient compared to 
DOM. But the use case is just to query a string from 2Kb XML file. in 
this scenario use of DOM+XPath results in less coding with a tiny 
performance degradation. Does this sound reasonable?

- Alexey

On 6/7/2019 7:09 PM, Semyon Sadetsky wrote:
> On 6/7/19 9:52 AM, Alexey Semenyuk wrote:
>
>> Not quite exactly what I meant by suggesting to use xml api. Sorry 
>> for not being specific. With DOM and Xpath this can be as simple as 
>> the following:
>
> XPath is DOM based = slow. That point is not clear.
>
> --Semyon
>
>
>> ---
>> package sample;
>>
>> import java.io.FileInputStream;
>> import javax.xml.parsers.DocumentBuilder;
>> import javax.xml.parsers.DocumentBuilderFactory;
>> import javax.xml.xpath.XPath;
>> import javax.xml.xpath.XPathConstants;
>> import javax.xml.xpath.XPathFactory;
>>
>> public class Sample {
>>     public static void main(String[] args) throws Exception {
>>         DocumentBuilder b = 
>> DocumentBuilderFactory.newDefaultInstance().newDocumentBuilder();
>>         org.w3c.dom.Document doc = b.parse(new 
>> FileInputStream(args[0]));
>>
>>         XPath xPath = XPathFactory.newInstance().newXPath();
>>         // Query for the value of <string> element preceding <key> 
>> element
>>         // with value equal to CFBundleIdentifier
>>         String v = 
>> (String)xPath.evaluate("//string[preceding-sibling::key = 
>> \"CFBundleIdentifier\"][1]", doc, XPathConstants.STRING);
>>
>>         if (!v.equals(args[1])) {
>>             throw new AssertionError("Unexpected value of 
>> CFBundleIdentifier key: [" + v + "]. Expected value: [" + args[1] + 
>> "]");
>>         }
>>     }
>> }
>> ---
>>
>> Running the sample:
>> java sample.Sample 
>> jp_sandbox\jdk\open\src\jdk.jpackage\macosx\classes\jdk\jpackage\internal\resources\Info-lite.plist.template 
>> foo
>> Exception in thread "main" java.lang.AssertionError: Unexpected value 
>> of CFBundleIdentifier key: [DEPLOY_BUNDLE_IDENTIFIER]. Expected 
>> value: [foo]
>>     at sample.Sample.main(Sample.java:25)
>>
>> java sample.Sample 
>> jp_sandbox\jdk\open\src\jdk.jpackage\macosx\classes\jdk\jpackage\internal\resources\Info-lite.plist.templateDEPLOY_BUNDLE_IDENTIFIER
>>
>> - Alexey
>>
>> On 6/6/2019 10:56 PM, Alexander Matveev wrote:
>>> http://cr.openjdk.java.net/~almatvee/8224597/webrev.02/
>>>
>>> Updated OS X tests to use XML APIs to parse Info.plist.
>>>
>>> Thanks,
>>> Alexander
>>>
>>> On 6/6/2019 2:43 PM, Alexey Semenyuk wrote:
>>>> Any particular reason not to use xml api to read xml files?
>>>> The way to extract app attributes from xml files produced by 
>>>> jpackage looks fragile.
>>>>
>>>> - Alexey
>>>>
>>>> On 6/6/2019 5:37 PM, Alexander Matveev wrote:
>>>>> Please review the jpackage fix for bug [1] at [2].
>>>>>
>>>>> This is a fix for the JDK-8200758-branch branch of the open 
>>>>> sandbox repository (jpackage).
>>>>>
>>>>> - Added tests for --win-console, --mac-bundle-identifier and 
>>>>> --mac-bundle-name.
>>>>>
>>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8224597
>>>>> [2] http://cr.openjdk.java.net/~almatvee/8224597/webrev.00/
>>>>>
>>>>> Thanks,
>>>>> Alexander
>>>>
>>>
>>



More information about the core-libs-dev mailing list