Codebase list eclipse-linuxtools / 1a15dfa
Update upstream source from tag 'upstream/8.1.0+dfsg.1' Update to upstream version '8.1.0+dfsg.1' with Debian dir 7de990c7e5526b5b35a55edd5dd878156131e2ea Sudip Mukherjee 3 years ago
997 changed file(s) with 6720 addition(s) and 33360 deletion(s). Raw diff Collapse all Expand all
11 <feature
22 id="org.eclipse.linuxtools.changelog"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools ChangeLog Feature</name>
2525
11 <feature
22 id="org.eclipse.linuxtools.changelog.c"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.c</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools ChangeLog Feature for C/C++</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
111113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
112114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
113115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
114 org.eclipse.jdt.core.compiler.source=1.8
116 org.eclipse.jdt.core.compiler.release=enabled
117 org.eclipse.jdt.core.compiler.source=11
1818 org.eclipse.core.resources,
1919 org.eclipse.ui.genericeditor;bundle-version="1.0.0"
2020 Export-Package: org.eclipse.linuxtools.changelog.core
21 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
21 Bundle-RequiredExecutionEnvironment: JavaSE-11
2222 Bundle-ActivationPolicy: lazy
2323 Eclipse-ExtensibleAPI: true
2424 Automatic-Module-Name: org.eclipse.linuxtools.changelog.core
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7778 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7879 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
81 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8082 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8183 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8284 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
108110 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
109111 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
110112 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
111 org.eclipse.jdt.core.compiler.source=1.8
113 org.eclipse.jdt.core.compiler.release=enabled
114 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Vendor: %Bundle-Vendor
66 Require-Bundle: org.eclipse.cdt.core;bundle-version="5.2.0",
77 org.eclipse.cdt.ui;bundle-version="5.2.0"
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Fragment-Host: org.eclipse.linuxtools.changelog.core;bundle-version="2.6.3"
1010 Import-Package: org.eclipse.core.resources
1111 Automatic-Module-Name: org.eclipse.linuxtools.changelog.cparser
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.cparser</artifactId>
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.doc</artifactId>
11 <feature
22 id="org.eclipse.linuxtools.changelog.java"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.java</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools ChangeLog Feature for Java</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7778 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7879 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
81 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8082 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8183 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8284 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
108110 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
109111 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
110112 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
111 org.eclipse.jdt.core.compiler.source=1.8
113 org.eclipse.jdt.core.compiler.release=enabled
114 org.eclipse.jdt.core.compiler.source=11
55 Require-Bundle: org.eclipse.jdt.core;bundle-version="3.3.0",
66 org.eclipse.jdt.ui;bundle-version="3.3.0"
77 Bundle-Vendor: %Bundle-Vendor
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Fragment-Host: org.eclipse.linuxtools.changelog.core;bundle-version="2.6.3"
1010 Automatic-Module-Name: org.eclipse.linuxtools.changelog.parsers.java
1111
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.parsers.java</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
88 org.eclipse.jdt.ui,
99 org.junit;bundle-version="4.8.1"
1010 Fragment-Host: org.eclipse.linuxtools.changelog.core
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-ActivationPolicy: lazy
1313 Import-Package: org.eclipse.cdt.core,
1414 org.eclipse.cdt.core.model,
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
88 Fragment-Host: org.eclipse.linuxtools.changelog.core
99 Import-Package: org.eclipse.core.resources,
1010 org.eclipse.jdt.core
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Automatic-Module-Name: org.eclipse.linuxtools.changelog.ui.tests
1414 <parent>
1515 <artifactId>linuxtools-changelog-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.changelog</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.changelog.ui.tests</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.changelog</groupId>
33 src.includes = feature.xml,\
44 feature.properties,\
55 build.properties,\
6 .classpath,\
76 .project
11 <feature
22 id="org.eclipse.linuxtools.docker.feature"
33 label="%featureName"
4 version="4.4.0.qualifier"
4 version="5.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
2121 <url>
2222 <update label="Linux Tools Docker Update Site" url="http://download.eclipse.org/linuxtools/update-docker"/>
2323 </url>
24
25 <includes
26 id="org.eclipse.linuxtools.docker.editor.ls.feature"
27 version="0.0.0"/>
2428
2529 <plugin
2630 id="org.eclipse.linuxtools.docker.core"
4347 version="0.0.0"
4448 unpack="false"/>
4549
46 <plugin
47 id="org.eclipse.linuxtools.docker.editor"
48 download-size="0"
49 install-size="0"
50 version="0.0.0"
51 unpack="false"/>
52
5350 </feature>
1313 <parent>
1414 <groupId>org.eclipse.linuxtools</groupId>
1515 <artifactId>org.eclipse.linuxtools.docker</artifactId>
16 <version>4.4.0</version>
16 <version>5.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.docker.feature</artifactId>
2020 <packaging>eclipse-feature</packaging>
21 <version>4.4.0-SNAPSHOT</version>
21 <version>5.1.0-SNAPSHOT</version>
2222
2323 <name>Linux Tools Docker Tooling Feature</name>
2424
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
111113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
112114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
113115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
114 org.eclipse.jdt.core.compiler.source=1.8
116 org.eclipse.jdt.core.compiler.release=enabled
117 org.eclipse.jdt.core.compiler.source=11
115118 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
116119 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
117120 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
1414 sp_cleanup.always_use_parentheses_in_expressions=false
1515 sp_cleanup.always_use_this_for_non_static_field_access=false
1616 sp_cleanup.always_use_this_for_non_static_method_access=false
17 sp_cleanup.convert_functional_interfaces=false
17 sp_cleanup.convert_functional_interfaces=true
1818 sp_cleanup.convert_to_enhanced_for_loop=false
19 sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
1920 sp_cleanup.correct_indentation=false
2021 sp_cleanup.format_source_code=true
2122 sp_cleanup.format_source_code_changes_only=true
2223 sp_cleanup.insert_inferred_type_arguments=false
24 sp_cleanup.lazy_logical_operator=false
2325 sp_cleanup.make_local_variable_final=true
2426 sp_cleanup.make_parameters_final=false
2527 sp_cleanup.make_private_fields_final=true
2628 sp_cleanup.make_type_abstract_if_missing_method=false
2729 sp_cleanup.make_variable_declarations_final=false
30 sp_cleanup.merge_conditional_blocks=false
2831 sp_cleanup.never_use_blocks=false
2932 sp_cleanup.never_use_parentheses_in_expressions=true
33 sp_cleanup.number_suffix=false
34 sp_cleanup.objects_equals=false
3035 sp_cleanup.on_save_use_additional_actions=true
3136 sp_cleanup.organize_imports=true
37 sp_cleanup.push_down_negation=false
3238 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3339 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3440 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3541 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3642 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3743 sp_cleanup.remove_private_constructors=true
44 sp_cleanup.remove_redundant_modifiers=true
45 sp_cleanup.remove_redundant_semicolons=true
3846 sp_cleanup.remove_redundant_type_arguments=true
39 sp_cleanup.remove_trailing_whitespaces=false
47 sp_cleanup.remove_trailing_whitespaces=true
4048 sp_cleanup.remove_trailing_whitespaces_all=true
4149 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
50 sp_cleanup.remove_unnecessary_array_creation=true
4251 sp_cleanup.remove_unnecessary_casts=true
4352 sp_cleanup.remove_unnecessary_nls_tags=false
4453 sp_cleanup.remove_unused_imports=false
4756 sp_cleanup.remove_unused_private_members=false
4857 sp_cleanup.remove_unused_private_methods=true
4958 sp_cleanup.remove_unused_private_types=true
59 sp_cleanup.simplify_lambda_expression_and_method_ref=true
5060 sp_cleanup.sort_members=false
5161 sp_cleanup.sort_members_all=false
5262 sp_cleanup.use_anonymous_class_creation=false
63 sp_cleanup.use_autoboxing=false
5364 sp_cleanup.use_blocks=false
5465 sp_cleanup.use_blocks_only_for_return_and_throw=false
66 sp_cleanup.use_directly_map_method=true
5567 sp_cleanup.use_lambda=true
5668 sp_cleanup.use_parentheses_in_expressions=false
5769 sp_cleanup.use_this_for_non_static_field_access=false
5971 sp_cleanup.use_this_for_non_static_method_access=false
6072 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
6173 sp_cleanup.use_type_arguments=false
74 sp_cleanup.use_unboxing=false
75 sp_cleanup.use_var=false
11 Bundle-ManifestVersion: 2
22 Bundle-Name: Docker Core Plugin
33 Bundle-SymbolicName: org.eclipse.linuxtools.docker.core;singleton:=true
4 Bundle-Version: 4.4.0.qualifier
4 Bundle-Version: 5.1.0.qualifier
55 Bundle-Activator: org.eclipse.linuxtools.docker.core.Activator
66 Bundle-Vendor: Eclipse Linux Tools
77 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
88 org.eclipse.core.resources;bundle-version="3.9.0",
9 com.google.guava;bundle-version="21.0.0",
9 com.google.guava;bundle-version="27.1.0",
1010 org.eclipse.equinox.registry;bundle-version="0.0.0",
1111 org.eclipse.equinox.security,
1212 org.eclipse.osgi,
13 com.spotify.docker.client;bundle-version="[8.9.2,9.0.0)",
14 com.github.jnr.unixsocket;bundle-version="0.4.0",
15 com.github.jnr.enxio;bundle-version="0.5.0",
16 org.glassfish.jersey.core.jersey-client;bundle-version="2.14.0",
17 org.glassfish.jersey.media.jersey-media-json-jackson;bundle-version="2.14.0",
18 org.glassfish.jersey.core.jersey-common;bundle-version="2.14.0",
13 org.mandas.docker-client;bundle-version="3.2.1",
14 com.github.jnr.unixsocket;bundle-version="0.28.0",
15 com.github.jnr.enxio;bundle-version="0.25.0",
16 org.glassfish.jersey.core.jersey-client;bundle-version="2.30.1",
17 org.glassfish.jersey.media.jersey-media-json-jackson;bundle-version="2.30.1",
18 org.glassfish.jersey.core.jersey-common;bundle-version="2.30.1",
19 org.glassfish.jersey.containers.servlet;bundle-version="2.3.0.1",
20 org.glassfish.jersey.inject.jersey-hk2;bundle-version="2.3.0.1",
1921 org.eclipse.tm.terminal.view.core;bundle-version="4.0.0",
2022 org.eclipse.debug.core;bundle-version="3.10.100",
21 javax.xml.bind;bundle-version="2.2.0",
22 javax.xml.stream;bundle-version="1.0.1"
23 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
23 javax.annotation;bundle-version="1.3.5",
24 org.apache.httpcomponents.httpcore;bundle-version="4.4.12",
25 org.apache.httpcomponents.httpclient;bundle-version="4.5.10"
26 Bundle-RequiredExecutionEnvironment: JavaSE-11
2427 Bundle-ActivationPolicy: lazy
2528 Export-Package: org.eclipse.linuxtools.docker.core,
2629 org.eclipse.linuxtools.internal.docker.core;x-friends:="org.eclipse.linuxtools.docker.ui,org.eclipse.linuxtools.docker.ui.tests,org.eclipse.linuxtools.docker.integration.tests"
27 Import-Package: com.fasterxml.jackson.annotation;version="2.5.0",
30 Import-Package: com.fasterxml.jackson.annotation;version="2.10.3",
2831 javax.ws.rs;version="2.0.1",
2932 javax.ws.rs.core;version="2.0.1",
33 javax.xml.bind;version="2.3.3",
3034 javax.ws.rs.client;version="2.0.1"
3135 Automatic-Module-Name: org.eclipse.linuxtools.docker.core
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.docker.core</artifactId>
99 <packaging>eclipse-plugin</packaging>
10 <version>4.4.0-SNAPSHOT</version>
10 <version>5.1.0-SNAPSHOT</version>
1111
1212 </project>
00 #!/usr/bin/env sh
1 $SHELL -i -l -c "env | grep DOCKER"
1 $SHELL -l -c "env | grep DOCKER"
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
2 *
1 * Copyright (c) 2016, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
4040 import org.eclipse.osgi.util.NLS;
4141 import org.glassfish.jersey.client.ClientConfig;
4242 import org.glassfish.jersey.jackson.JacksonFeature;
43
44 import com.spotify.docker.client.ObjectMapperProvider;
45 import com.spotify.docker.client.messages.ImageSearchResult;
43 import org.mandas.docker.client.ObjectMapperProvider;
44 import org.mandas.docker.client.messages.ImageSearchResult;
4645
4746 /**
4847 * @since 2.0
6867 public abstract String getServerAddress();
6968
7069 /**
71 *
70 *
7271 * @return the server host (and optional port) to prepend to an image name
7372 * when pushing or pulling
7473 */
138137 WebTarget queryImagesResource;
139138
140139 if (isVersion2()) {
141 final GenericType<ImageSearchResultV2> IMAGE_SEARCH_RESULT_LIST = new GenericType<ImageSearchResultV2>() {
140 final GenericType<ImageSearchResultV2> IMAGE_SEARCH_RESULT_LIST = new GenericType<>() {
142141 };
143142 ImageSearchResultV2 cisr = null;
144143 queryImagesResource = client.target(getHTTPServerAddress())
160159 .collect(Collectors.toList()));
161160 } else {
162161 ImageSearchResultV1 pisr = null;
163 final GenericType<ImageSearchResultV1> IMAGE_SEARCH_RESULT_LIST = new GenericType<ImageSearchResultV1>() {
162 final GenericType<ImageSearchResultV1> IMAGE_SEARCH_RESULT_LIST = new GenericType<>() {
164163 };
165164 int page = 0;
166165 try {
210209 /**
211210 * Retrieves the list of tags for a given repository, assuming that the
212211 * target registry is Docker Hub.
213 *
212 *
214213 * @param client
215214 * the client to use
216215 * @param repository
299298 /**
300299 * Retrieves the list of tags for a given repository, assuming that the
301300 * target registry is a registry v2 instance.
302 *
301 *
303302 * @param client
304303 * the client to use
305304 * @param repository
315314 private List<IRepositoryTag> retrieveTagsFromRegistryV1(final Client client,
316315 final String repository)
317316 throws InterruptedException, ExecutionException {
318 final GenericType<Map<String, String>> REPOSITORY_TAGS_RESULT_LIST = new GenericType<Map<String, String>>() {
317 final GenericType<Map<String, String>> REPOSITORY_TAGS_RESULT_LIST = new GenericType<>() {
319318 };
320319 final WebTarget queryTagsResource = client
321320 .target(getHTTPServerAddress()).path("v1") //$NON-NLS-1$
329328 /**
330329 * Retrieves the list of tags for a given repository, assuming that the
331330 * target registry is a registry v1 instance.
332 *
331 *
333332 * @param client
334333 * the client to use
335334 * @param repository
345344 private List<IRepositoryTag> retrieveTagsFromRegistryV2(final Client client,
346345 final String repository)
347346 throws InterruptedException, ExecutionException {
348 final GenericType<RepositoryTagV2> REPOSITORY_TAGS_RESULT_LIST = new GenericType<RepositoryTagV2>() {
347 final GenericType<RepositoryTagV2> REPOSITORY_TAGS_RESULT_LIST = new GenericType<>() {
349348 };
350349 final WebTarget queryTagsResource = client
351350 .target(getHTTPServerAddress()).path("v2") //$NON-NLS-1$
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1111 *******************************************************************************/
1212 package org.eclipse.linuxtools.docker.core;
1313
14 import org.mandas.docker.client.exceptions.DockerRequestException;
15
1416 public class DockerException extends Exception {
1517
1618 private static final long serialVersionUID = 1L;
1719
18 private String JSON_MESSAGE_PREFIX = "{\"message\":\""; //$NON-NLS-1$
19 private String JSON_MESSAGE_SUFFIX = "\"}"; //$NON-NLS-1$
20 private static String JSON_MESSAGE_PREFIX = "{\"message\":\""; //$NON-NLS-1$
21 private static String JSON_MESSAGE_SUFFIX = "\"}"; //$NON-NLS-1$
2022
2123 public DockerException(final String message) {
2224 super(message);
2325 }
2426
2527 public DockerException(final String message, final Throwable cause) {
26 super(message, cause);
28 super(calculateMessage(message, cause), cause);
2729 }
2830
2931 public DockerException(final Throwable cause) {
30 super(cause);
32 super(calculateMessage(null, cause), cause);
3133 }
3234
3335 @Override
3436 public String getMessage() {
35 String s = super.getMessage();
36 // Bug 499917 - temporarily massage any message we get back from docker
37 // client if it is in JSON format. This code can be removed once docker
38 // client has fixed itself to work with error messages from docker
39 // 1.12.0 and beyond.
40 if (s.startsWith(JSON_MESSAGE_PREFIX)) {
41 s = s.substring(JSON_MESSAGE_PREFIX.length());
42 s = s.replaceAll(JSON_MESSAGE_SUFFIX, ""); //$NON-NLS-1$
43 return s;
44 }
4537 return super.getMessage();
4638 }
4739
40 static private String calculateMessage(final String message, final Throwable cause) {
41 Throwable dre = cause;
42 // Search for DockerRequestException
43 while (dre != null && !(dre instanceof DockerRequestException)) {
44 dre = dre.getCause();
45 }
46
47 // Handle DockerRequestException
48 if (dre != null) {
49 // Bug 499917 - temporarily massage any message we get back from
50 // docker client if it is in JSON format. This code can be removed
51 // once docker client has fixed itself to work with error messages
52 // from docker 1.12.0 and beyond.
53 DockerRequestException re = (DockerRequestException) dre;
54 String s = re.getResponseBody();
55 if (s.startsWith(JSON_MESSAGE_PREFIX)) {
56 s = s.substring(JSON_MESSAGE_PREFIX.length());
57 s = s.replaceAll(JSON_MESSAGE_SUFFIX, ""); //$NON-NLS-1$
58 if (message != null) {
59 return message + "; " + s;
60 } else {
61 return s;
62 }
63 }
64 }
65
66 // As it's not possible to select the super-constructor Throwable's
67 // behavior must be simulated
68 if ((message == null) && (cause != null)) {
69 return cause.toString();
70 } else {
71 return message;
72 }
73 }
74
4875 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2222 import org.eclipse.linuxtools.internal.docker.core.TCPConnectionSettings;
2323 import org.eclipse.linuxtools.internal.docker.core.UnixSocketConnectionSettings;
2424
25 import com.spotify.docker.client.exceptions.DockerCertificateException;
25 import org.mandas.docker.client.exceptions.DockerCertificateException;
2626
2727 public interface IDockerConnection {
2828
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
2 *
1 * Copyright (c) 2016, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3939 * @return the DockerRootDir
4040 */
4141 String getDockerRootDir();
42
42
4343 /**
4444 * @return the executionDriver
45 * @deprecated this will be removed in Docker Tooling 5.0.0
4546 */
47 @Deprecated
4648 String getExecutionDriver();
47
49
4850 /**
4951 * @return the fileDescriptors
5052 */
6971 * @return the initSha1
7072 */
7173 String getInitSha1();
72
74
7375 /**
7476 * @return the IndexServerAddress
7577 */
7678 String getIndexServerAddress();
77
79
7880 /**
7981 * @return the IPv4Forwarding flag
8082 */
8183 boolean isIPv4Forwarding();
82
84
8385 /**
8486 * @return the kernelVersion
8587 */
8991 * @return the Labels
9092 */
9193 List<String> getLabels();
92
94
9395 /**
9496 * @return number of CPUs
9597 */
99101 * @return total memory
100102 */
101103 long getTotalMemory();
102
104
103105 /**
104106 * @return VM name
105107 */
106108 String getName();
107
109
108110 /**
109111 * @return VM ID
110112 */
111113 String getId();
112
114
113115 /**
114116 * @return the storageDriver
115117 */
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
0 /*******************************************************************************
1 * Copyright (c) 2020 Red Hat.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - Initial Contribution
11 *******************************************************************************/
12 package org.eclipse.linuxtools.docker.core;
13
14 import java.util.List;
15
16 /**
17 * @since 4.7
18 * @author jjohnstn
19 *
20 */
21 public interface IDockerContainerInfo2 {
22
23 List<IDockerContainerMount> mounts();
24
25 }
0 /*******************************************************************************
1 * Copyright (c) 2020 Red Hat.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - Initial Contribution
11 *******************************************************************************/
12 package org.eclipse.linuxtools.docker.core;
13
14 /**
15 * @since 4.7
16 *
17 */
18 public interface IDockerContainerMount {
19
20 String type();
21
22 String name();
23
24 String source();
25
26 String destination();
27
28 String driver();
29
30 String mode();
31
32 Boolean rw();
33
34 String propagation();
35
36 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
2 *
1 * Copyright (c) 2016, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1111 *******************************************************************************/
1212 package org.eclipse.linuxtools.internal.docker.core;
1313
14 import org.eclipse.core.runtime.Path;
15
1416 public class ContainerFileProxy {
1517
1618 private final String path;
1719 private final String name;
1820 private final String link;
21 private final String target;
1922 private final boolean isFolder;
2023 private final boolean isLink;
2124
2528 this.name = name;
2629 this.isFolder = isFolder;
2730 this.isLink = false;
28 this.link = this.path;
31 this.link = null;
32 this.target = this.path;
2933 }
3034
3135 public ContainerFileProxy(String directory, String name, boolean isFolder,
3438 this.name = name;
3539 this.isFolder = isFolder;
3640 this.isLink = isLink;
37 this.link = (link == null ? this.path : link);
41 this.link = link;
42 this.target = (link.startsWith("/") ? link
43 : new Path(this.path).removeLastSegments(1).append(link)
44 .toPortableString());
3845 }
3946
4047 public String getFullPath() {
5966 return link;
6067 }
6168
69 public String getTarget() {
70 return target;
71 }
72
6273 public String getName() {
6374 return name;
6475 }
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3434 import org.eclipse.linuxtools.docker.core.IDockerConnectionSettingsFinder;
3535 import org.eclipse.linuxtools.docker.core.IDockerConnectionSettingsProvider;
3636
37 import com.spotify.docker.client.DockerClient;
38 import com.spotify.docker.client.exceptions.DockerCertificateException;
37 import org.mandas.docker.client.DockerClient;
38 import org.mandas.docker.client.exceptions.DockerCertificateException;
3939
4040 /**
4141 * A utility class that looks for candidate {@link IDockerConnection}s on the
7979 return client.info().name();
8080 }
8181 } catch (DockerCertificateException
82 | com.spotify.docker.client.exceptions.DockerException
82 | org.mandas.docker.client.exceptions.DockerException
8383 | InterruptedException e) {
8484 // ignore and return null
8585 }
0 /*******************************************************************************
1 * Copyright (c) 2020 Red Hat.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - Initial Contribution
11 *******************************************************************************/
012 package org.eclipse.linuxtools.internal.docker.core;
113
214 import org.eclipse.linuxtools.docker.core.IDockerBlkioDeviceRate;
315
4 import com.spotify.docker.client.messages.HostConfig.BlkioDeviceRate;
16 import org.mandas.docker.client.messages.HostConfig.BlkioDeviceRate;
517
618 public class DockerBlkioDeviceRate implements IDockerBlkioDeviceRate {
719
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerBlkioWeightDevice;
1515
16 import com.spotify.docker.client.messages.HostConfig.BlkioWeightDevice;
16 import org.mandas.docker.client.messages.HostConfig.BlkioWeightDevice;
1717
1818 public class DockerBlkioWeightDevice implements IDockerBlkioWeightDevice {
1919
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1212
1313 package org.eclipse.linuxtools.internal.docker.core;
1414
15 import static java.util.Collections.singletonMap;
16
1517 import java.io.File;
1618 import java.net.URI;
1719
1820 import org.eclipse.linuxtools.docker.core.IDockerConnectionSettings;
1921 import org.eclipse.linuxtools.docker.core.IDockerConnectionSettings.BindingType;
2022 import org.eclipse.linuxtools.docker.core.IRegistryAccount;
23 import org.mandas.docker.client.DefaultDockerClient;
24 import org.mandas.docker.client.DefaultDockerClient.Builder;
25 import org.mandas.docker.client.DockerCertificates;
26 import org.mandas.docker.client.DockerClient;
27 import org.mandas.docker.client.auth.FixedRegistryAuthSupplier;
28 import org.mandas.docker.client.exceptions.DockerCertificateException;
29 import org.mandas.docker.client.messages.RegistryAuth;
30 import org.mandas.docker.client.messages.RegistryConfigs;
2131
22 import com.spotify.docker.client.DefaultDockerClient;
23 import com.spotify.docker.client.DefaultDockerClient.Builder;
24 import com.spotify.docker.client.DockerCertificates;
25 import com.spotify.docker.client.DockerClient;
26 import com.spotify.docker.client.exceptions.DockerCertificateException;
27 import com.spotify.docker.client.messages.RegistryAuth;
32 import com.google.common.base.MoreObjects;
2833
2934 /**
3035 * Factory for {@link DockerClient}. Decoupling from {@link DockerConnection}
3540 /**
3641 * Creates a new {@link DockerClient} from the given
3742 * {@link IDockerConnectionSettings}.
38 *
43 *
3944 * @param connectionSettings
4045 * the connection settings
4146 * @return the {@link DockerClient}
5156 /**
5257 * Creates a new {@link DockerClient} from the given
5358 * {@link IDockerConnectionSettings}.
54 *
59 *
5560 * @param connectionSettings
5661 * the connection settings
5762 * @return the {@link DockerClient} or <code>null</code> if the connection
9196 }
9297
9398 if (registryAccount != null) {
94 builder.registryAuth(buildAuthentication(registryAccount));
99 // mimic spotify:
100 // https://github.com/spotify/docker-client/blob/master/src/main/java/com/spotify/docker/client/DefaultDockerClient.java#L3140
101 RegistryAuth registryAuth = buildAuthentication(registryAccount);
102 final RegistryConfigs configs = RegistryConfigs.create(singletonMap(
103 MoreObjects.firstNonNull(registryAuth.serverAddress(), ""),
104 registryAuth));
105 builder.registryAuthSupplier(
106 new FixedRegistryAuthSupplier(registryAuth, configs));
95107 }
96108 return builder.build();
97109 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerConfParameter;
1515
16 import com.spotify.docker.client.messages.HostConfig.LxcConfParameter;
16 import org.mandas.docker.client.messages.HostConfig.LxcConfParameter;
1717
1818 public class DockerConfParameter implements IDockerConfParameter {
1919
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2014, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3434 import java.util.Map.Entry;
3535 import java.util.Set;
3636 import java.util.concurrent.CopyOnWriteArrayList;
37 import java.util.regex.Matcher;
38 import java.util.regex.Pattern;
3739
3840 import javax.ws.rs.ProcessingException;
3941
4143 import org.eclipse.core.runtime.IProgressMonitor;
4244 import org.eclipse.core.runtime.IStatus;
4345 import org.eclipse.core.runtime.ListenerList;
44 import org.eclipse.core.runtime.Path;
46 import org.eclipse.core.runtime.Platform;
4547 import org.eclipse.core.runtime.Status;
4648 import org.eclipse.core.runtime.jobs.Job;
4749 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
9698 import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
9799 import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
98100 import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
101 import org.mandas.docker.client.DockerClient;
102 import org.mandas.docker.client.DockerClient.AttachParameter;
103 import org.mandas.docker.client.DockerClient.BuildParam;
104 import org.mandas.docker.client.DockerClient.ExecCreateParam;
105 import org.mandas.docker.client.DockerClient.LogsParam;
106 import org.mandas.docker.client.LogStream;
107 import org.mandas.docker.client.exceptions.ContainerNotFoundException;
108 import org.mandas.docker.client.exceptions.DockerCertificateException;
109 import org.mandas.docker.client.exceptions.DockerTimeoutException;
110 import org.mandas.docker.client.messages.Container;
111 import org.mandas.docker.client.messages.ContainerChange;
112 import org.mandas.docker.client.messages.ContainerConfig;
113 import org.mandas.docker.client.messages.ContainerCreation;
114 import org.mandas.docker.client.messages.ContainerExit;
115 import org.mandas.docker.client.messages.ContainerInfo;
116 import org.mandas.docker.client.messages.ExecCreation;
117 import org.mandas.docker.client.messages.HostConfig;
118 import org.mandas.docker.client.messages.HostConfig.LxcConfParameter;
119 import org.mandas.docker.client.messages.Image;
120 import org.mandas.docker.client.messages.ImageInfo;
121 import org.mandas.docker.client.messages.ImageSearchResult;
122 import org.mandas.docker.client.messages.Info;
123 import org.mandas.docker.client.messages.Ipam;
124 import org.mandas.docker.client.messages.IpamConfig;
125 import org.mandas.docker.client.messages.Network;
126 import org.mandas.docker.client.messages.NetworkConfig;
127 import org.mandas.docker.client.messages.PortBinding;
128 import org.mandas.docker.client.messages.RegistryAuth;
129 import org.mandas.docker.client.messages.Version;
130 import org.mandas.docker.client.messages.Volume;
131 import org.mandas.docker.client.messages.VolumeList;
99132
100133 import com.google.common.collect.ImmutableMap;
101 import com.spotify.docker.client.DockerClient;
102 import com.spotify.docker.client.DockerClient.AttachParameter;
103 import com.spotify.docker.client.DockerClient.BuildParam;
104 import com.spotify.docker.client.DockerClient.ExecCreateParam;
105 import com.spotify.docker.client.DockerClient.LogsParam;
106 import com.spotify.docker.client.LogStream;
107 import com.spotify.docker.client.exceptions.ContainerNotFoundException;
108 import com.spotify.docker.client.exceptions.DockerCertificateException;
109 import com.spotify.docker.client.exceptions.DockerTimeoutException;
110 import com.spotify.docker.client.messages.Container;
111 import com.spotify.docker.client.messages.ContainerChange;
112 import com.spotify.docker.client.messages.ContainerConfig;
113 import com.spotify.docker.client.messages.ContainerCreation;
114 import com.spotify.docker.client.messages.ContainerExit;
115 import com.spotify.docker.client.messages.ContainerInfo;
116 import com.spotify.docker.client.messages.ExecCreation;
117 import com.spotify.docker.client.messages.HostConfig;
118 import com.spotify.docker.client.messages.HostConfig.LxcConfParameter;
119 import com.spotify.docker.client.messages.Image;
120 import com.spotify.docker.client.messages.ImageInfo;
121 import com.spotify.docker.client.messages.ImageSearchResult;
122 import com.spotify.docker.client.messages.Info;
123 import com.spotify.docker.client.messages.Ipam;
124 import com.spotify.docker.client.messages.Network;
125 import com.spotify.docker.client.messages.NetworkConfig;
126 import com.spotify.docker.client.messages.PortBinding;
127 import com.spotify.docker.client.messages.RegistryAuth;
128 import com.spotify.docker.client.messages.Version;
129 import com.spotify.docker.client.messages.Volume;
130 import com.spotify.docker.client.messages.VolumeList;
131134
132135 /**
133 * A connection to a Docker daemon. The connection may rely on Unix Socket or TCP connection (using the REST API).
136 * A connection to a Docker daemon. The connection may rely on Unix Socket or TCP connection (using the REST API).
134137 * All low-level communication is delegated to a wrapped {@link DockerClient}.
135 *
138 *
136139 *
137140 */
138141 public class DockerConnection
151154
152155 /**
153156 * Creates a new {@link DockerConnection} using a Unix socket.
154 *
157 *
155158 * @param unixSocketConnectionSettings
156159 * the connection settings.
157160 * @return a new {@link DockerConnection}
164167
165168 /**
166169 * Creates a {@link DockerConnection} using a TCP connection.
167 *
170 *
168171 * @param tcpConnectionSettings
169172 * the {@link TCPConnectionSettings}
170173 * @return a new {@link DockerConnection}
307310 }
308311 /**
309312 * Change the default {@link DockerClientFactory}
310 *
313 *
311314 * @param dockerClientFactory
312315 * the new {@link DockerClientFactory} to use when opening a
313316 * connection.
372375 String socket = path.replaceAll("unix://", ""); //$NON-NLS-1$ //$NON-NLS-2$
373376 java.io.File f = new java.io.File(socket);
374377 if (!f.exists()) {
375 throw new com.spotify.docker.client.exceptions.DockerException(
378 throw new org.mandas.docker.client.exceptions.DockerException(
376379 NLS.bind(Messages.Docker_Daemon_No_Unix_Socket,
377380 socket));
378381 }
385388 Messages.Docker_Daemon_Ping_Failure, this.getName()));
386389 }
387390 setState(EnumDockerConnectionState.ESTABLISHED);
388 } catch (com.spotify.docker.client.exceptions.DockerException
391 } catch (org.mandas.docker.client.exceptions.DockerException
389392 | InterruptedException | IllegalArgumentException e) {
390393 setState(EnumDockerConnectionState.CLOSED);
391394 throw new DockerPingConnectionException(NLS.bind(
394397 }
395398
396399 @Override
397 protected void finalize() throws Throwable {
400 protected void finalize() {
398401 this.finalizing = true;
399402 close();
400 super.finalize();
401403 }
402404
403405 @Override
433435 final Info info = this.client.info();
434436 final Version version = this.client.version();
435437 return new DockerConnectionInfo(info, version);
436 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
438 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
437439 throw new DockerException(e.getResponseBody());
438 } catch (com.spotify.docker.client.exceptions.DockerException
440 } catch (org.mandas.docker.client.exceptions.DockerException
439441 | InterruptedException e) {
440442 throw new DockerException(Messages.Docker_General_Info_Failure, e);
441443 }
442444 }
443
445
444446 @Override
445447 public String getName() {
446448 if (name != null && !name.isEmpty()) {
523525 try {
524526 Version version = client.version();
525527 return new DockerVersion(this, version);
526 } catch (com.spotify.docker.client.exceptions.DockerException
528 } catch (org.mandas.docker.client.exceptions.DockerException
527529 | InterruptedException e) {
528530 throw new DockerException(Messages.Docker_General_Info_Failure, e);
529531 }
541543 volumeList.add(v);
542544 }
543545 }
544 } catch (com.spotify.docker.client.exceptions.DockerException e) {
546 } catch (org.mandas.docker.client.exceptions.DockerException e) {
545547 throw new DockerException(e.getMessage());
546548 } catch (InterruptedException e) {
547549 return Collections.emptyList();
567569 * Get a copy of the client to use in parallel threads for long-standing
568570 * operations such as logging or waiting until finished. The user of the
569571 * copy should close it when the operation is complete.
570 *
572 *
571573 * @return copy of client
572574 * @throws DockerException
573575 * - general Docker client exception
741743 }
742744 } while (follow && !stop);
743745 listContainers();
744 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
746 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
745747 Activator.logErrorMessage(
746748 ProcessMessages.getString("Monitor_Logs_Exception"), e); //$NON-NLS-1$
747749 throw new InterruptedException();
748 } catch (com.spotify.docker.client.exceptions.DockerException
750 } catch (org.mandas.docker.client.exceptions.DockerException
749751 | IOException e) {
750752 Activator.logErrorMessage(
751753 ProcessMessages.getString("Monitor_Logs_Exception"), e); //$NON-NLS-1$
830832 new Status(IStatus.WARNING, Activator.PLUGIN_ID,
831833 Messages.Docker_Connection_Timeout, e));
832834 }
833 } catch (com.spotify.docker.client.exceptions.DockerException
835 } catch (org.mandas.docker.client.exceptions.DockerException
834836 | InterruptedException e) {
835837 if (isOpen() && e.getCause() != null
836838 && e.getCause().getCause() != null && e.getCause()
907909 Messages.Docker_Connection_Timeout, e));
908910 close();
909911 }
910 } catch (com.spotify.docker.client.exceptions.DockerException
912 } catch (org.mandas.docker.client.exceptions.DockerException
911913 | InterruptedException e) {
912914 if (isOpen() && e.getCause() != null
913915 && e.getCause().getCause() != null
923925 /**
924926 * Sorts the given values using the given comparator and returns the result
925927 * in a {@link List}
926 *
928 *
927929 * @param values
928930 * the values to sort
929931 * @param comparator
953955 try {
954956 final ContainerInfo info = client.inspectContainer(id);
955957 return new DockerContainerInfo(info);
956 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
958 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
957959 Activator.logErrorMessage(
958960 ProcessMessages.getString("Container_Info_Exception"), e); //$NON-NLS-1$
959961 return null;
960 } catch (com.spotify.docker.client.exceptions.DockerException
962 } catch (org.mandas.docker.client.exceptions.DockerException
961963 | InterruptedException e) {
962964 Activator.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
963965 ProcessMessages.getFormattedString(
975977 try {
976978 final ImageInfo info = this.client.inspectImage(id);
977979 return new DockerImageInfo(info);
978 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
980 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
979981 Activator.logErrorMessage(
980982 ProcessMessages.getString("Image_Info_Exception"), e); //$NON-NLS-1$
981983 return null;
982 } catch (com.spotify.docker.client.exceptions.ImageNotFoundException e) {
984 } catch (org.mandas.docker.client.exceptions.ImageNotFoundException e) {
985 // we might have an id which contains a registry which is invalid
986 // for inspectImage() so
987 // see if we can find a local image with matching tag
988 IDockerImage image = getImageByTag(id);
989 if (image != null) {
990 return getImageInfo(image.id());
991 }
983992 return null;
984 } catch (com.spotify.docker.client.exceptions.DockerException
993 } catch (org.mandas.docker.client.exceptions.DockerException
985994 | InterruptedException e) {
986995 Activator.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
987996 ProcessMessages.getFormattedString(
11301139 nativeImage.created(), nativeImage.size(),
11311140 nativeImage.virtualSize(), imageQualifier));
11321141 }
1133 } catch (com.spotify.docker.client.exceptions.DockerTimeoutException e) {
1142 } catch (org.mandas.docker.client.exceptions.DockerTimeoutException e) {
11341143 if (isOpen()) {
11351144 Activator.log(
11361145 new Status(IStatus.WARNING, Activator.PLUGIN_ID,
11371146 Messages.Docker_Connection_Timeout, e));
11381147 }
1139 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1148 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
11401149 throw new DockerException(e.getResponseBody());
1141 } catch (com.spotify.docker.client.exceptions.DockerException
1150 } catch (org.mandas.docker.client.exceptions.DockerException
11421151 | InterruptedException e) {
11431152 if (isOpen() && e.getCause() != null
11441153 && e.getCause().getCause() != null && e.getCause()
11651174 /**
11661175 * Resolves the {@link DockerImageQualifier} for the given
11671176 * {@code nativeImage} in the context of all {@code nativeImages}
1168 *
1177 *
11691178 * @param nativeImage
11701179 * the image to analyze
11711180 * @param nativeImages
12401249 DockerProgressHandler d = new DockerProgressHandler(handler);
12411250 client.pull(id, d);
12421251 listImages();
1243 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1252 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
12441253 throw new DockerException(e.getResponseBody());
1245 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1254 } catch (org.mandas.docker.client.exceptions.DockerException e) {
12461255 DockerException f = new DockerException(e);
12471256 throw f;
12481257 }
12571266 final DockerProgressHandler d = new DockerProgressHandler(handler);
12581267 client.pull(imageId, d);
12591268 listImages();
1260 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1269 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
12611270 throw new DockerException(e.getResponseBody());
1262 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1271 } catch (org.mandas.docker.client.exceptions.DockerException e) {
12631272 DockerException f = new DockerException(e);
12641273 throw f;
12651274 }
12781287 }
12791288 }
12801289 return results;
1281 } catch (com.spotify.docker.client.exceptions.DockerException
1290 } catch (org.mandas.docker.client.exceptions.DockerException
12821291 | InterruptedException e) {
12831292 throw new DockerException(e);
12841293 }
12901299 try {
12911300 DockerProgressHandler d = new DockerProgressHandler(handler);
12921301 client.push(name, d);
1293 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1302 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
12941303 throw new DockerException(e.getResponseBody());
1295 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1304 } catch (org.mandas.docker.client.exceptions.DockerException e) {
12961305 DockerException f = new DockerException(e);
12971306 throw f;
12981307 }
13061315 .getClient(this.connectionSettings, info);
13071316 final DockerProgressHandler d = new DockerProgressHandler(handler);
13081317 client.push(name, d);
1309 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1318 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
13101319 throw new DockerException(e.getResponseBody());
1311 } catch (com.spotify.docker.client.exceptions.DockerException
1320 } catch (org.mandas.docker.client.exceptions.DockerException
13121321 | DockerCertificateException e) {
13131322 DockerException f = new DockerException(e);
13141323 throw f;
13201329 InterruptedException {
13211330 try {
13221331 client.removeImage(name, true, false);
1323 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1332 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
13241333 throw new DockerException(e.getResponseBody());
1325 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1334 } catch (org.mandas.docker.client.exceptions.DockerException e) {
13261335 DockerException f = new DockerException(e);
13271336 throw f;
13281337 }
13331342 InterruptedException {
13341343 try {
13351344 client.removeImage(tag, false, false);
1336 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1345 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
13371346 throw new DockerException(e.getResponseBody());
1338 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1347 } catch (org.mandas.docker.client.exceptions.DockerException e) {
13391348 DockerException f = new DockerException(e);
13401349 throw f;
13411350 }
13501359 /**
13511360 * Adds a tag to an existing image while specifying the <code>force</code>
13521361 * flag.
1353 *
1362 *
13541363 * @param name
13551364 * the image id
13561365 * @param newTag
13681377 final boolean force) throws DockerException, InterruptedException {
13691378 try {
13701379 client.tag(name, newTag, force);
1371 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1380 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
13721381 throw new DockerException(e.getResponseBody());
1373 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1382 } catch (org.mandas.docker.client.exceptions.DockerException e) {
13741383 DockerException f = new DockerException(e);
13751384 throw f;
13761385 }
13871396 String res = getClientCopy().build(p, d,
13881397 BuildParam.create("forcerm", "true")); //$NON-NLS-1$ //$NON-NLS-2$
13891398 return res;
1390 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1399 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
13911400 throw new DockerException(e.getResponseBody());
1392 } catch (com.spotify.docker.client.exceptions.DockerException
1401 } catch (org.mandas.docker.client.exceptions.DockerException
13931402 | IOException e) {
13941403 DockerException f = new DockerException(e);
13951404 throw f;
14071416 String res = getClientCopy().build(p, name, d,
14081417 BuildParam.create("forcerm", "true")); //$NON-NLS-1$ $NON-NLS-2$
14091418 return res;
1410 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1419 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
14111420 throw new DockerException(e.getResponseBody());
1412 } catch (com.spotify.docker.client.exceptions.DockerException
1421 } catch (org.mandas.docker.client.exceptions.DockerException
14131422 | IOException e) {
14141423 DockerException f = new DockerException(e);
14151424 throw f;
14181427
14191428 /**
14201429 * Builds an {@link IDockerImage}
1421 *
1430 *
14221431 * @param path
14231432 * path to the build context
14241433 * @param name
14451454 String res = getClientCopy().build(p, name, d,
14461455 getBuildParameters(buildOptions));
14471456 return res;
1448 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1457 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
14491458 throw new DockerException(e.getResponseBody());
1450 } catch (com.spotify.docker.client.exceptions.DockerException
1459 } catch (org.mandas.docker.client.exceptions.DockerException
14511460 | IOException e) {
14521461 DockerException f = new DockerException(e);
14531462 throw f;
14561465
14571466 /**
14581467 * Builds an {@link IDockerImage}
1459 *
1468 *
14601469 * @param path
14611470 * path to the build context
14621471 * @param name
14851494 String res = getClientCopy().build(p, name, dockerFileName, d,
14861495 getBuildParameters(buildOptions));
14871496 return res;
1488 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1497 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
14891498 throw new DockerException(e.getResponseBody());
1490 } catch (com.spotify.docker.client.exceptions.DockerException
1499 } catch (org.mandas.docker.client.exceptions.DockerException
14911500 | IOException e) {
14921501 DockerException f = new DockerException(e);
14931502 throw f;
14981507 * Converts the given {@link Map} of build options into an array of
14991508 * {@link BuildParameter} when the build options are set a value different
15001509 * from the default value.
1501 *
1510 *
15021511 * @param buildOptions
15031512 * the build options
15041513 * @return an array of relevant {@link BuildParameter}, an empty array if
15371546 // Currently we have to save all clouds instead of just this one
15381547 DockerConnectionManager.getInstance().saveConnections();
15391548 }
1540
1549
15411550 @Override
15421551 public String createContainer(final IDockerContainerConfig c,
15431552 final IDockerHostConfig hc) throws DockerException,
16441653 builder = builder.env(c.env());
16451654 }
16461655 if (c.volumes() != null) {
1647 builder = builder.volumes(c.volumes());
1656 builder = builder.volumes(c.volumes().keySet());
16481657 }
16491658 if (c.entrypoint() != null) {
16501659 builder = builder.entrypoint(c.entrypoint());
16651674 return id;
16661675 } catch (ContainerNotFoundException e) {
16671676 throw new DockerContainerNotFoundException(e);
1668 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1677 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
16691678 throw new DockerException(e.getResponseBody());
1670 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1679 } catch (org.mandas.docker.client.exceptions.DockerException e) {
16711680 throw new DockerException(e);
16721681 }
16731682 }
16881697 listContainers();
16891698 } catch (ContainerNotFoundException e) {
16901699 throw new DockerContainerNotFoundException(e);
1691 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1700 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
16921701 throw new DockerException(e.getResponseBody());
1693 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1702 } catch (org.mandas.docker.client.exceptions.DockerException e) {
16941703 throw new DockerException(e.getMessage(), e.getCause());
16951704 }
16961705 }
17101719 listContainers(); // update container list
17111720 } catch (ContainerNotFoundException e) {
17121721 throw new DockerContainerNotFoundException(e);
1713 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1722 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
17141723 // Permit kill to fail silently even on non-running containers
1715 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1724 } catch (org.mandas.docker.client.exceptions.DockerException e) {
17161725 throw new DockerException(e.getMessage(), e.getCause());
17171726 }
17181727 }
17261735 listContainers(); // update container list
17271736 } catch (ContainerNotFoundException e) {
17281737 throw new DockerContainerNotFoundException(e);
1729 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1738 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
17301739 throw new DockerException(e.getResponseBody());
1731 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1740 } catch (org.mandas.docker.client.exceptions.DockerException e) {
17321741 throw new DockerException(e.getMessage(), e.getCause());
17331742 }
17341743 }
17601769 listContainers(); // update container list
17611770 } catch (ContainerNotFoundException e) {
17621771 throw new DockerContainerNotFoundException(e);
1763 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1772 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
17641773 throw new DockerException(e.getResponseBody());
1765 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1774 } catch (org.mandas.docker.client.exceptions.DockerException e) {
17661775 throw new DockerException(e.getMessage(), e.getCause());
17671776 }
17681777 }
17761785 listContainers(); // update container list
17771786 } catch (ContainerNotFoundException e) {
17781787 throw new DockerContainerNotFoundException(e);
1779 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1788 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
17801789 throw new DockerException(e.getResponseBody());
1781 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1790 } catch (org.mandas.docker.client.exceptions.DockerException e) {
17821791 throw new DockerException(e.getMessage(), e.getCause());
17831792 }
17841793 }
18271836 }
18281837 }
18291838 // list of containers needs to be refreshed once the container started, to reflect it new state.
1830 listContainers();
1839 listContainers();
18311840 } catch (ContainerNotFoundException e) {
18321841 // if we get here, it means that the command failed...the actual
18331842 // message is buried in the throwable cause and isn't actually
18341843 // clearly stated so report there was a problem starting the command
18351844 throw new DockerException(DockerMessages.getFormattedString(
18361845 "DockerStartContainer.error", getCmdString(containerInfo))); //$NON-NLS-1$
1837 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1846 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
18381847 if (e.status() != 304) {
18391848 throw new DockerException(e.getMessage());
18401849 }
1841 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1850 } catch (org.mandas.docker.client.exceptions.DockerException e) {
18421851 throw new DockerException(e.getMessage(), e.getCause());
18431852 }
18441853 }
18811890 // clearly stated so report there was a problem starting the command
18821891 throw new DockerException(DockerMessages.getFormattedString(
18831892 "DockerStartContainer.error", getCmdString(containerInfo))); //$NON-NLS-1$
1884 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1893 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
18851894 if (e.status() != 304) {
18861895 throw new DockerException(e.getMessage());
18871896 }
1888 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1897 } catch (org.mandas.docker.client.exceptions.DockerException e) {
18891898 throw new DockerException(e);
18901899 }
18911900 }
19231932 listContainers();
19241933 } catch (ContainerNotFoundException e) {
19251934 throw new DockerContainerNotFoundException(e);
1926 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1935 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
19271936 throw new DockerException(e.getResponseBody());
1928 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1937 } catch (org.mandas.docker.client.exceptions.DockerException e) {
19291938 throw new DockerException(e.getMessage(), e.getCause());
19301939 }
19311940 }
19431952 // FIXME: are we refreshing the list of images twice ?
19441953 listImages();
19451954 getImages(true);
1946 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
1955 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
19471956 throw new DockerException(e.getResponseBody());
1948 } catch (com.spotify.docker.client.exceptions.DockerException
1957 } catch (org.mandas.docker.client.exceptions.DockerException
19491958 | InterruptedException e) {
19501959 throw new DockerException(e.getMessage(), e.getCause());
19511960 }
19581967 try {
19591968 DockerClient copy = getClientCopy();
19601969 stream = copy.archiveContainer(id, path);
1961 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1970 } catch (org.mandas.docker.client.exceptions.DockerException e) {
19621971 throw new DockerException(e.getMessage(), e.getCause());
19631972 }
19641973 return stream;
19711980 DockerClient clientCopy = (DockerClient) token;
19721981 try {
19731982 stream = clientCopy.archiveContainer(id, path);
1974 } catch (com.spotify.docker.client.exceptions.DockerException e) {
1983 } catch (org.mandas.docker.client.exceptions.DockerException e) {
19751984 throw new DockerException(e.getMessage(), e.getCause());
19761985 }
19771986 return stream;
19881997 containerChanges.add(new DockerContainerChange(change.path(),
19891998 change.kind()));
19901999 }
1991 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2000 } catch (org.mandas.docker.client.exceptions.DockerException e) {
19922001 throw new DockerException(e.getMessage(), e.getCause());
19932002 }
19942003 return containerChanges;
20342043 .getPath(directory);
20352044 copy.copyToContainer(dirPath, id, path);
20362045 copy.close(); /* dispose of client copy now that we are done */
2037 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2046 } catch (org.mandas.docker.client.exceptions.DockerException e) {
20382047 throw new DockerException(e.getMessage(), e.getCause());
20392048 }
20402049 }
20462055 DockerClient copy = (DockerClient) token;
20472056 java.nio.file.Path dirPath = FileSystems.getDefault()
20482057 .getPath(directory);
2049 copy.copyToContainer(dirPath, id, path);
2058 boolean isWin = Platform.getOS().equals(Platform.OS_WIN32);
2059 copy.copyToContainer(dirPath, id,
2060 isWin ? path.replace('\\', '/') : path);
20502061 copy.close(); /* dispose of client copy now that we are done */
2051 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2062 } catch (org.mandas.docker.client.exceptions.DockerException e) {
20522063 throw new DockerException(e.getMessage(), e.getCause());
20532064 }
20542065 }
20642075 .email(new String(cfg.getEmail()))
20652076 .serverAddress(new String(cfg.getServerAddress())).build();
20662077 return client.auth(authConfig);
2067 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2078 } catch (org.mandas.docker.client.exceptions.DockerException e) {
20682079 throw new DockerException(e.getMessage(), e.getCause());
20692080 }
20702081 }
21232134 }
21242135 } catch (ContainerNotFoundException e) {
21252136 throw new DockerContainerNotFoundException(e);
2126 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
2137 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
21272138 throw new DockerException(e.getResponseBody());
2128 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2139 } catch (org.mandas.docker.client.exceptions.DockerException e) {
21292140 throw new DockerException(e.getMessage(), e.getCause());
21302141 }
21312142 }
21412152 LogsParam.stdout(), LogsParam.stderr());
21422153 stream.attach(out, err);
21432154 stream.close();
2144 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2155 } catch (org.mandas.docker.client.exceptions.DockerException e) {
21452156 throw new DockerException(e.getMessage(), e.getCause());
21462157 }
21472158 }
21542165 LogsParam.follow(), LogsParam.stdout(), LogsParam.stderr());
21552166 stream.attach(out, err);
21562167 stream.close();
2157 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2168 } catch (org.mandas.docker.client.exceptions.DockerException e) {
21582169 throw new DockerException(e.getMessage(), e.getCause());
21592170 }
21602171 }
21722183 return exit;
21732184 } catch (ContainerNotFoundException e) {
21742185 throw new DockerContainerNotFoundException(e);
2175 } catch (com.spotify.docker.client.exceptions.DockerRequestException e) {
2186 } catch (org.mandas.docker.client.exceptions.DockerRequestException e) {
21762187 throw new DockerException(e.getResponseBody());
2177 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2188 } catch (org.mandas.docker.client.exceptions.DockerException e) {
21782189 throw new DockerException(e.getMessage(), e.getCause());
21792190 }
21802191 }
22542265 try {
22552266 DockerClient copyClient = getClientCopy();
22562267 final ExecCreation execCreation = copyClient.execCreate(id,
2257 new String[] { "/bin/sh", "-c", "ls -l -F -L -Q " + path }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
2268 new String[] { "/bin/sh", "-c", "ls -l -F -Q " + path }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
22582269 ExecCreateParam.attachStdout(),
22592270 ExecCreateParam.attachStderr());
22602271 final String execId = execCreation.id();
22612272 final LogStream pty_stream = copyClient.execStart(execId);
2273 String lastLine = ""; //$NON-NLS-1$
22622274 try {
22632275 while (pty_stream.hasNext()) {
22642276 ByteBuffer b = pty_stream.next().content();
22652277 byte[] buffer = new byte[b.remaining()];
22662278 b.get(buffer);
2267 String s = new String(buffer);
2279 String s = lastLine + new String(buffer);
22682280 String[] lines = s.split("\\r?\\n"); //$NON-NLS-1$
2269 for (String line : lines) {
2270 if (line.trim().startsWith("total")) //$NON-NLS-1$
2271 continue; // ignore the total line
2272 String[] token = line.split("\\s+"); //$NON-NLS-1$
2273 boolean isDirectory = token[0].startsWith("d"); //$NON-NLS-1$
2274 boolean isLink = token[0].startsWith("l"); //$NON-NLS-1$
2275 if (token.length > 8) {
2276 // last token depends on whether we have a link or not
2277 String link = null;
2278 if (isLink) {
2279 String linkname = token[token.length - 1];
2280 if (linkname.endsWith("/")) { //$NON-NLS-1$
2281 linkname = linkname.substring(0, linkname.length() - 1);
2282 isDirectory = true;
2283 }
2284 IPath linkPath = new Path(path);
2285 linkPath = linkPath.append(linkname);
2286 link = linkPath.toString();
2287 String name = token[token.length - 3];
2288 childList.add(new ContainerFileProxy(path, name,
2289 isDirectory, isLink, link));
2290 } else {
2291 String name = token[token.length - 1];
2292 // remove quotes and any indicator char
2293 name = name.substring(1, name.length()
2294 - (name.endsWith("\"") ? 1 : 2));
2295 childList.add(new ContainerFileProxy(path, name,
2296 isDirectory));
2297 }
2298 }
2281 if (lines.length > 0) {
2282 lastLine = lines[lines.length - 1];
2283 } else {
2284 lastLine = ""; //$NON-NLS-1$
22992285 }
2286 for (int i = 0; i < lines.length - 1; ++i) {
2287 String line = lines[i];
2288 processDirectoryLine(line, path, childList);
2289 }
2290 }
2291 if (!lastLine.isEmpty()) {
2292 processDirectoryLine(lastLine, path, childList);
23002293 }
23012294 } finally {
23022295 if (pty_stream != null)
23052298 copyClient.close();
23062299 }
23072300 } catch (Exception e) {
2301 if (e.getCause() instanceof IOException) {
2302 // ugly hack as we often get Connection reset by peer exceptions
2303 // so retry
2304 return readContainerDirectory(id, path);
2305 }
23082306 // e.printStackTrace();
23092307 }
23102308 return childList;
2309 }
2310
2311 private String[] tokenize(String line) {
2312 String regex = "(\"[^\"]*\"/?)|(\\S+)";
2313 List<String> result = new ArrayList<>();
2314
2315 Matcher m = Pattern.compile(regex).matcher(line);
2316 while (m.find()) {
2317 if (m.group(1) != null) {
2318 result.add(m.group(1));
2319 } else {
2320 result.add(m.group(2));
2321 }
2322 }
2323 return result.toArray(new String[0]);
2324 }
2325
2326 private void processDirectoryLine(String line, String path,
2327 List<ContainerFileProxy> childList) {
2328 if (line.trim().startsWith("total")) //$NON-NLS-1$
2329 return; // ignore the total line
2330 String[] token = tokenize(line);
2331 boolean isDirectory = token[0].startsWith("d"); //$NON-NLS-1$
2332 boolean isLink = token[0].startsWith("l"); //$NON-NLS-1$
2333 if (token.length > 8) {
2334 // Non-Link ends with "filename"
2335 // Link ends with "filename" -> "Target"
2336 String name = token[token.length - (isLink ? 3 : 1)];
2337 // remove quotes and any indicator char
2338 name = name.substring(1,
2339 name.length() - (name.endsWith("\"") ? 1 : 2));
2340
2341 if (isLink) {
2342 String linkname = token[token.length - 1];
2343 if (linkname.endsWith("/")) { //$NON-NLS-1$
2344 isDirectory = true;
2345 }
2346 linkname = linkname.substring(1,
2347 linkname.length() - (linkname.endsWith("\"") ? 1 : 2));
2348
2349 childList.add(new ContainerFileProxy(path, name, isDirectory,
2350 isLink, linkname));
2351 } else {
2352 childList.add(new ContainerFileProxy(path, name, isDirectory));
2353 }
2354 }
23112355 }
23122356
23132357 public void execShell(final String id) throws DockerException {
23572401 OutputStream tout = noBlockingOutputStream(
23582402 HttpHijackWorkaround.getOutputStream(pty_stream, getUri()));
23592403 InputStream tin = HttpHijackWorkaround.getInputStream(pty_stream);
2360
2404
23612405 TerminalOutputMonitorListener monitor = new TerminalOutputMonitorListener(out);
2362
2406
23632407 // org.eclipse.tm.terminal.connector.ssh.controls.SshWizardConfigurationPanel
23642408 Map<String, Object> properties = new HashMap<>();
23652409 properties.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID,
24452489 try {
24462490 Ipam.Builder ipamBuilder = Ipam.builder()
24472491 .driver(cfg.ipam().driver());
2448 List<IDockerIpamConfig> ipamCfgs = cfg.ipam().config();
2449 for (IDockerIpamConfig ipamCfg : ipamCfgs) {
2450 ipamBuilder = ipamBuilder.config(ipamCfg.subnet(),
2451 ipamCfg.ipRange(), ipamCfg.gateway());
2452 }
2492 List<IDockerIpamConfig> idockerIpamCfgs = cfg.ipam().config();
2493 List<IpamConfig> ipamCfgs = new ArrayList<>();
2494 for (IDockerIpamConfig ipamCfg : idockerIpamCfgs) {
2495 ipamCfgs.add(IpamConfig.create(ipamCfg.subnet(),
2496 ipamCfg.ipRange(), ipamCfg.gateway()));
2497 }
2498 ipamBuilder = ipamBuilder.config(ipamCfgs);
24532499 Ipam ipam = ipamBuilder.build();
24542500 NetworkConfig.Builder networkConfigBuilder = NetworkConfig.builder()
24552501 .name(cfg.name()).driver(cfg.driver()).ipam(ipam);
24562502 networkConfigBuilder.options(cfg.options());
24572503 NetworkConfig networkConfig = networkConfigBuilder.build();
2458 com.spotify.docker.client.messages.NetworkCreation creation = client
2504 org.mandas.docker.client.messages.NetworkCreation creation = client
24592505 .createNetwork(networkConfig);
24602506 return new DockerNetworkCreation(creation);
24612507
2462 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2508 } catch (org.mandas.docker.client.exceptions.DockerException e) {
24632509 throw new DockerException(e.getMessage(), e.getCause());
24642510 }
24652511 }
24702516 try {
24712517 Network n = client.inspectNetwork(networkId);
24722518 return new DockerNetwork(n);
2473 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2519 } catch (org.mandas.docker.client.exceptions.DockerException e) {
24742520 throw new DockerException(e.getMessage(), e.getCause());
24752521 }
24762522 }
24852531 networks.add(new DockerNetwork(n));
24862532 }
24872533 return networks;
2488 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2534 } catch (org.mandas.docker.client.exceptions.DockerException e) {
24892535 throw new DockerException(e.getMessage(), e.getCause());
24902536 }
24912537 }
24952541 throws DockerException, InterruptedException {
24962542 try {
24972543 client.removeNetwork(networkId);
2498 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2544 } catch (org.mandas.docker.client.exceptions.DockerException e) {
24992545 throw new DockerException(e.getMessage(), e.getCause());
25002546 }
25012547 }
25052551 throws DockerException, InterruptedException {
25062552 try {
25072553 client.connectToNetwork(id, networkId);
2508 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2554 } catch (org.mandas.docker.client.exceptions.DockerException e) {
25092555 throw new DockerException(e.getMessage(), e.getCause());
25102556 }
25112557 }
25152561 throws DockerException, InterruptedException {
25162562 try {
25172563 client.disconnectFromNetwork(id, networkId);
2518 } catch (com.spotify.docker.client.exceptions.DockerException e) {
2564 } catch (org.mandas.docker.client.exceptions.DockerException e) {
25192565 throw new DockerException(e.getMessage(), e.getCause());
25202566 }
25212567 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1717
1818 import org.eclipse.linuxtools.docker.core.IDockerConnection;
1919 import org.eclipse.linuxtools.docker.core.IDockerConnectionInfo;
20
21 import com.spotify.docker.client.messages.Info;
22 import com.spotify.docker.client.messages.Version;
20 import org.mandas.docker.client.messages.Info;
21 import org.mandas.docker.client.messages.Version;
2322
2423 /**
2524 * Info about a given {@link IDockerConnection}
2827
2928 private final int containers;
3029 private final boolean debug;
31 private final String executionDriver;
3230 private final int fileDescriptors;
3331 private final int goroutines;
3432 private final int images;
5149 private final boolean ipv4Forwarding;
5250 private final List<String> labels;
5351 private final String dockerRootDir;
54
52
5553 public DockerConnectionInfo(final Info info, final Version version) {
5654 this.containers = info != null ? info.containers() : -1;
5755 this.debug = info != null ? info.debug() : false;
58 this.executionDriver = info != null ? info.executionDriver() : null;
5956 this.fileDescriptors = info != null ? info.fileDescriptors() : -1;
6057 this.goroutines = info != null ? info.goroutines() : -1;
6158 this.images = info != null ? info.images() : -1;
8582 : null;
8683 this.labels = info != null ? info.labels() : null;
8784 this.dockerRootDir = info != null ? info.dockerRootDir() : null;
88
85
8986 }
9087
9188 @Override
10198 @Override
10299 public boolean isDebug() {
103100 return debug;
104 }
105
106 @Override
107 public String getExecutionDriver() {
108 return executionDriver;
109101 }
110102
111103 @Override
216208 return dockerRootDir;
217209 }
218210
211 @Override
212 @Deprecated
213 public String getExecutionDriver() {
214 return null;
215 }
216
219217 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2020 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
2121 import org.eclipse.linuxtools.docker.core.IDockerPortMapping;
2222
23 import com.spotify.docker.client.DockerClient;
24 import com.spotify.docker.client.messages.Container;
23 import org.mandas.docker.client.DockerClient;
24 import org.mandas.docker.client.messages.Container;
2525
2626 public class DockerContainer implements IDockerContainer, IAdaptable {
2727
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2222
2323 import org.eclipse.linuxtools.docker.core.IDockerContainerConfig;
2424
25 import com.spotify.docker.client.messages.ContainerConfig;
26 import com.spotify.docker.client.messages.HostConfig;
25 import org.mandas.docker.client.messages.ContainerConfig;
26 import org.mandas.docker.client.messages.HostConfig;
2727
2828 public class DockerContainerConfig implements IDockerContainerConfig {
2929
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1515
1616 public class DockerContainerExit implements IDockerContainerExit {
1717
18 private Integer statusCode;
18 private Long statusCode;
1919
20 public DockerContainerExit(Integer statusCode) {
21 this.statusCode = statusCode;
20 public DockerContainerExit(Long long1) {
21 this.statusCode = long1;
2222 }
2323
2424 @Override
2525 public Integer statusCode() {
26 return statusCode;
26 return Integer.valueOf(statusCode.intValue());
2727 }
2828
2929 }
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1111 *******************************************************************************/
1212 package org.eclipse.linuxtools.internal.docker.core;
1313
14 import java.util.ArrayList;
1415 import java.util.Date;
1516 import java.util.List;
1617 import java.util.Map;
1718
1819 import org.eclipse.linuxtools.docker.core.IDockerContainerConfig;
1920 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
21 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo2;
22 import org.eclipse.linuxtools.docker.core.IDockerContainerMount;
2023 import org.eclipse.linuxtools.docker.core.IDockerContainerState;
2124 import org.eclipse.linuxtools.docker.core.IDockerHostConfig;
2225 import org.eclipse.linuxtools.docker.core.IDockerNetworkSettings;
26 import org.mandas.docker.client.messages.ContainerInfo;
27 import org.mandas.docker.client.messages.ContainerMount;
2328
24 import com.spotify.docker.client.messages.ContainerInfo;
25
26 public class DockerContainerInfo implements IDockerContainerInfo {
29 public class DockerContainerInfo
30 implements IDockerContainerInfo, IDockerContainerInfo2 {
2731
2832 private String id;
2933 private Date created;
4246 private String execDriver;
4347 private String processLabel;
4448 private String mountLabel;
45 private Map<String, String> volumes;
46 private Map<String, Boolean> volumesRW;
49 private List<IDockerContainerMount> mounts;
4750
4851 public DockerContainerInfo (final ContainerInfo info) {
4952 this.id = info != null ? info.id() : null;
6770 this.execDriver = info != null ? info.execDriver() : null;
6871 this.processLabel = info != null ? info.processLabel() : null;
6972 this.mountLabel = info != null ? info.mountLabel() : null;
70 this.volumes = info != null ? info.volumes() : null;
71 this.volumesRW = info != null ? info.volumesRw() : null;
73 if (info.mounts() != null) {
74 this.mounts = new ArrayList<>();
75 for (ContainerMount mount : info.mounts()) {
76 this.mounts.add(new DockerContainerMount(mount));
77 }
78 } else {
79 this.mounts = null;
80 }
7281 }
7382
7483 @Override
157166 }
158167
159168 @Override
160 public Map<String, String> volumes() {
161 return volumes;
169 public List<IDockerContainerMount> mounts() {
170 return mounts;
162171 }
163172
164173 @Override
174 @Deprecated
175 public Map<String, String> volumes() {
176 return null;
177 }
178
179 @Override
180 @Deprecated
165181 public Map<String, Boolean> volumesRW() {
166 return volumesRW;
182 return null;
167183 }
168184
169185 }
0 /*******************************************************************************
1 * Copyright (c) 2020 Red Hat.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - Initial Contribution
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.docker.core;
13
14 import org.eclipse.linuxtools.docker.core.IDockerContainerMount;
15 import org.mandas.docker.client.messages.ContainerMount;
16
17 public class DockerContainerMount implements IDockerContainerMount {
18
19 private String name;
20 private String source;
21 private String destination;
22 private String type;
23 private String driver;
24 private String mode;
25 private Boolean rw;
26 private String propagation;
27
28 public DockerContainerMount(final ContainerMount mount) {
29 this.name = mount.name();
30 this.source = mount.source();
31 this.destination = mount.destination();
32 this.type = mount.type();
33 this.driver = mount.driver();
34 this.mode = mount.mode();
35 this.rw = mount.rw();
36 this.propagation = mount.propagation();
37 }
38
39 @Override
40 public String type() {
41 return type;
42 }
43
44 @Override
45 public String name() {
46 return name;
47 }
48
49 @Override
50 public String source() {
51 return source;
52 }
53
54 @Override
55 public String destination() {
56 return destination;
57 }
58
59 @Override
60 public String driver() {
61 return driver;
62 }
63
64 @Override
65 public String mode() {
66 return mode;
67 }
68
69 @Override
70 public Boolean rw() {
71 return rw;
72 }
73
74 @Override
75 public String propagation() {
76 return propagation;
77 }
78
79 }
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2019 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
5757 final List<IDockerContainer> dclist) {
5858 if (!this.refreshThreadMap.containsKey(connection)) {
5959 long refreshRateInSeconds = Platform.getPreferencesService()
60 .getLong("org.eclipse.linuxtools.docker.ui", //$NON-NLS-1$
60 .getLong("org.eclipse.linuxtools.docker.ui", //$NON-NLS-1$
6161 "containerRefreshTime", DEFAULT_REFRESH_TIME, null); //$NON-NLS-1$
6262 final ContainerRefreshThread rt = new ContainerRefreshThread(
6363 connection,
7070 /**
7171 * Stops and remove the {@link ContainerRefreshThread} associated with the
7272 * given {@link IDockerConnection}.
73 *
73 *
7474 * @param connection
7575 * the connection that was monitored
7676 */
7979 if (this.refreshThreadMap.containsKey(connection)) {
8080 final ContainerRefreshThread containerRefreshThread = refreshThreadMap.get(connection);
8181 containerRefreshThread.stopMonitoring();
82 final ContainerRefreshThread removed = this.refreshThreadMap.remove(connection);
82 this.refreshThreadMap.remove(connection);
8383 }
8484 }
8585
8686 /**
8787 * Method to reset the refresh rate for updating container lists
88 *
88 *
8989 * @param seconds
9090 * - time to wait between refreshes
9191 */
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414 import java.util.Date;
1515
1616 import org.eclipse.linuxtools.docker.core.IDockerContainerState;
17
18 import com.spotify.docker.client.messages.ContainerState;
17 import org.mandas.docker.client.messages.ContainerState;
1918
2019 public class DockerContainerState implements IDockerContainerState {
2120
2322 private final Boolean running;
2423 private final Boolean paused;
2524 private final Boolean restarting;
26 private final Integer exitCode;
25 private final Long exitCode;
2726 private final Date startDate;
2827 private final Date finishDate;
2928
4645 public Boolean restarting() {
4746 return restarting;
4847 }
49
48
5049 @Override
5150 public Boolean paused() {
5251 return paused;
5352 }
54
53
5554 @Override
5655 public Integer pid() {
5756 return pid;
5958
6059 @Override
6160 public Integer exitCode() {
62 return exitCode;
61 return Integer.valueOf(exitCode.intValue());
6362 }
6463
6564 @Override
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2019, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerDevice;
1515
16 import com.spotify.docker.client.messages.Device;
16 import org.mandas.docker.client.messages.Device;
1717
1818 public class DockerDevice implements IDockerDevice {
1919
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2828 import org.eclipse.linuxtools.docker.core.IDockerRestartPolicy;
2929 import org.eclipse.linuxtools.docker.core.IDockerUlimit;
3030
31 import com.spotify.docker.client.messages.Device;
32 import com.spotify.docker.client.messages.HostConfig;
33 import com.spotify.docker.client.messages.HostConfig.BlkioDeviceRate;
34 import com.spotify.docker.client.messages.HostConfig.BlkioWeightDevice;
35 import com.spotify.docker.client.messages.HostConfig.LxcConfParameter;
36 import com.spotify.docker.client.messages.HostConfig.Ulimit;
37 import com.spotify.docker.client.messages.PortBinding;
31 import org.mandas.docker.client.messages.Device;
32 import org.mandas.docker.client.messages.HostConfig;
33 import org.mandas.docker.client.messages.HostConfig.BlkioDeviceRate;
34 import org.mandas.docker.client.messages.HostConfig.BlkioWeightDevice;
35 import org.mandas.docker.client.messages.HostConfig.LxcConfParameter;
36 import org.mandas.docker.client.messages.HostConfig.Ulimit;
37 import org.mandas.docker.client.messages.PortBinding;
3838
3939 public class DockerHostConfig implements IDockerHostConfig {
4040
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
4949 + "(\\:(?<tag>" + TAG + "))?"); //$NON-NLS-1$ //$NON-NLS-2$
5050
5151 // SimpleDateFormat is not thread-safe, so give one to each thread
52 private static final ThreadLocal<SimpleDateFormat> formatter = new ThreadLocal<SimpleDateFormat>() {
52 private static final ThreadLocal<SimpleDateFormat> formatter = new ThreadLocal<>() {
5353 @Override
5454 protected SimpleDateFormat initialValue() {
5555 return new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$
140140 * {@code repoTags}, assuming that the given repoTags elements have the
141141 * following format: {@code [org/]repo[:tag]}. Tags are sorted by their
142142 * natural order.
143 *
143 *
144144 * @param repoTags
145145 * the list of repo/tags to analyze
146146 * @return the tags indexed by org/repo
169169 /**
170170 * Extracts the list of tags in the given repo/tags, assuming that the given
171171 * repoTags elements have the following format: {@code [org/]repo[:tag]}.
172 *
172 *
173173 * @param repoTags
174174 * the repo/tags list to analyze
175175 * @return the list of tags or empty list if none was found.
193193 /**
194194 * Extracts the tag in the given repo/tag, assuming that the given repoTag
195195 * element has the following format: {@code [org/]repo[:tag]}.
196 *
196 *
197197 * @param repoTag
198198 * the repo/tag to analyze
199199 * @return the tag or null if none was found.
212212 /**
213213 * Extracts the tag in the given repo/tag, assuming that the given repoTag
214214 * element has the following format: {@code [org/]repo[:tag]}
215 *
215 *
216216 * @param repoTag
217217 * the repo/tag to analyze
218218 * @return the tag or <code>null</code> if none was found.
231231 /**
232232 * Duplicates the given {@code image} into as many {@link IDockerImage} has
233233 * it has distinct repoTags entries
234 *
234 *
235235 * @param image
236236 * the source image
237237 * @return a {@link Stream} of duplicate {@link IDockerImage}
372372
373373 /**
374374 * Appends the <code>latest</code> tag to the given {@code imageName}
375 *
375 *
376376 * @param imageName
377377 * the image name to check
378378 * @return the image name with the <code>latest</code> tag if none was set
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1616 import org.eclipse.linuxtools.docker.core.IDockerContainerConfig;
1717 import org.eclipse.linuxtools.docker.core.IDockerImageInfo;
1818
19 import com.spotify.docker.client.messages.ImageInfo;
19 import org.mandas.docker.client.messages.ImageInfo;
2020
2121 public class DockerImageInfo implements IDockerImageInfo {
2222
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1717 import org.eclipse.linuxtools.docker.core.IDockerIpam;
1818 import org.eclipse.linuxtools.docker.core.IDockerIpamConfig;
1919
20 import com.spotify.docker.client.messages.Ipam;
21 import com.spotify.docker.client.messages.IpamConfig;
20 import org.mandas.docker.client.messages.Ipam;
21 import org.mandas.docker.client.messages.IpamConfig;
2222
2323 public class DockerIpam implements IDockerIpam {
2424
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerIpamConfig;
1515
16 import com.spotify.docker.client.messages.IpamConfig;
16 import org.mandas.docker.client.messages.IpamConfig;
1717
1818 public class DockerIpamConfig implements IDockerIpamConfig {
1919
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2019, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1515
1616 import org.eclipse.linuxtools.docker.core.IDockerLogConfig;
1717
18 import com.spotify.docker.client.messages.LogConfig;
18 import org.mandas.docker.client.messages.LogConfig;
1919
2020 public class DockerLogConfig implements IDockerLogConfig {
2121
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1818 import org.eclipse.linuxtools.docker.core.IDockerNetwork;
1919 import org.eclipse.linuxtools.docker.core.IDockerNetworkContainer;
2020
21 import com.spotify.docker.client.messages.Network;
21 import org.mandas.docker.client.messages.Network;
2222
2323 public class DockerNetwork implements IDockerNetwork {
2424
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1616 import org.eclipse.linuxtools.docker.core.IDockerIpam;
1717 import org.eclipse.linuxtools.docker.core.IDockerNetworkConfig;
1818
19 import com.spotify.docker.client.messages.NetworkConfig;
19 import org.mandas.docker.client.messages.NetworkConfig;
2020
2121 public class DockerNetworkConfig implements IDockerNetworkConfig {
2222
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerNetworkContainer;
1515
16 import com.spotify.docker.client.messages.Network;
16 import org.mandas.docker.client.messages.Network;
1717
1818 public class DockerNetworkContainer implements IDockerNetworkContainer {
1919
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerNetworkCreation;
1515
16 import com.spotify.docker.client.messages.NetworkCreation;
16 import org.mandas.docker.client.messages.NetworkCreation;
1717
1818 public class DockerNetworkCreation implements IDockerNetworkCreation {
1919
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2121 import org.eclipse.linuxtools.docker.core.IDockerNetworkSettings;
2222 import org.eclipse.linuxtools.docker.core.IDockerPortBinding;
2323
24 import com.spotify.docker.client.messages.NetworkSettings;
25 import com.spotify.docker.client.messages.PortBinding;
24 import org.mandas.docker.client.messages.NetworkSettings;
25 import org.mandas.docker.client.messages.PortBinding;
2626
2727 public class DockerNetworkSettings implements IDockerNetworkSettings {
2828
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerPortBinding;
1515
16 import com.spotify.docker.client.messages.PortBinding;
16 import org.mandas.docker.client.messages.PortBinding;
1717
1818 public class DockerPortBinding implements IDockerPortBinding {
1919
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerProgressHandler;
1515
16 import com.spotify.docker.client.ProgressHandler;
17 import com.spotify.docker.client.exceptions.DockerException;
18 import com.spotify.docker.client.messages.ProgressDetail;
19 import com.spotify.docker.client.messages.ProgressMessage;
16 import org.mandas.docker.client.ProgressHandler;
17 import org.mandas.docker.client.exceptions.DockerException;
18 import org.mandas.docker.client.messages.ProgressDetail;
19 import org.mandas.docker.client.messages.ProgressMessage;
2020
2121 public class DockerProgressHandler implements ProgressHandler {
2222
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2019, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerRestartPolicy;
1515
16 import com.spotify.docker.client.messages.HostConfig.RestartPolicy;
16 import org.mandas.docker.client.messages.HostConfig.RestartPolicy;
1717
1818 public class DockerRestartPolicy implements IDockerRestartPolicy {
1919
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2019, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.linuxtools.docker.core.IDockerUlimit;
1515
16 import com.spotify.docker.client.messages.HostConfig.Ulimit;
16 import org.mandas.docker.client.messages.HostConfig.Ulimit;
1717
1818 public class DockerUlimit implements IDockerUlimit {
1919
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1414 import org.eclipse.linuxtools.docker.core.IDockerConnection;
1515 import org.eclipse.linuxtools.docker.core.IDockerVersion;
1616
17 import com.spotify.docker.client.DockerClient;
18 import com.spotify.docker.client.messages.Version;
17 import org.mandas.docker.client.DockerClient;
18 import org.mandas.docker.client.messages.Version;
1919
2020 public class DockerVersion implements IDockerVersion {
2121
00 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat.
1 * Copyright (c) 2019, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1515
1616 import org.eclipse.linuxtools.docker.core.IDockerVolume;
1717
18 import com.spotify.docker.client.messages.Volume;
18 import org.mandas.docker.client.messages.Volume;
1919
2020 public class DockerVolume implements IDockerVolume {
2121
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2525 import org.eclipse.linuxtools.docker.core.Activator;
2626 import org.osgi.framework.Bundle;
2727
28 import com.spotify.docker.client.LogReader;
29 import com.spotify.docker.client.LogStream;
28 import org.mandas.docker.client.LogReader;
29 import org.mandas.docker.client.LogStream;
3030
3131 /**
3232 * This is a workaround for lack of HTTP Hijacking support in Apache
5050 "in", //$NON-NLS-1$
5151 "wrappedStream", //$NON-NLS-1$
5252 "in", //$NON-NLS-1$
53 "instream" //$NON-NLS-1$
53 "inStream" //$NON-NLS-1$
5454 };
5555 final String[] declared = new String[] {
56 "com.spotify.docker.client.DefaultLogStream",
56 "org.mandas.docker.client.DefaultLogStream",
5757 LogReader.class.getName(),
5858 "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream", //$NON-NLS-1$
5959 "org.glassfish.jersey.message.internal.EntityInputStream", //$NON-NLS-1$
120120 }
121121
122122 /*
123 * We could add API for this in com.spotify.docker.client since there is
123 * We could add API for this in org.mandas.docker.client since there is
124124 * access to the underlying InputStream but better wait and see what
125125 * happens with the HTTP Hijacking situation.
126126 */
127127 public static InputStream getInputStream(LogStream stream) {
128128 final String[] fields = new String[] { "reader", "stream" }; //$NON-NLS-1$ //$NON-NLS-2$
129 final String[] declared = new String[] { "com.spotify.docker.client.DefaultLogStream", LogReader.class.getName()};
129 final String[] declared = new String[] { "org.mandas.docker.client.DefaultLogStream", LogReader.class.getName()};
130130
131131 List<String[]> list = new LinkedList<>();
132132 for (int i = 0; i < fields.length; i++) {
154154
155155 /*
156156 * Avoid explicitly depending on certain classes that are requirements
157 * of the docker-client library (com.spotify.docker.client).
157 * of the docker-client library (org.mandas.docker.client).
158158 */
159159 private static Class<?> loadClass(String key, String [] bundles) {
160160 try {
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2020 import com.fasterxml.jackson.annotation.JsonAutoDetect;
2121 import com.fasterxml.jackson.annotation.JsonProperty;
2222 import com.google.common.base.MoreObjects;
23 import com.spotify.docker.client.messages.ImageSearchResult;
23 import org.mandas.docker.client.messages.ImageSearchResult;
2424
2525 /**
2626 * Binding for Image Search Results from a Registry V1.
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
2 *
1 * Copyright (c) 2016, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1717 import java.util.ArrayList;
1818 import java.util.List;
1919
20 import org.mandas.docker.client.messages.ImageSearchResult;
21
2022 import com.fasterxml.jackson.annotation.JsonAutoDetect;
2123 import com.fasterxml.jackson.annotation.JsonProperty;
2224 import com.google.common.base.MoreObjects;
23 import com.spotify.docker.client.messages.ImageSearchResult;
2425
2526 /**
2627 * Binding for Image Search Results from a Registry V2.
27 *
28 *
2829 * Currently the returned image search results lack the same degree of
2930 * information returned from the V1 registries.
3031 */
4849 .add("results", getRepositories()).toString(); //$NON-NLS-1$
4950 }
5051
51 private class ImageResultV2 extends ImageSearchResult {
52 private class ImageResultV2 implements ImageSearchResult {
5253
5354 private String name;
5455
1616 Monitor_Logs_Exception=Failed to monitor container logs
1717 Settings_Detection_Exception=Failed to retrieve connection settings
1818 Container_Info_Exception=Failed to retrieve container info
19 Image_Info_exception=Failed to retrieve image info
19 Image_Info_Exception=Failed to retrieve image info
2020 Container_Inspect_Exception=Failed to inspect container: ''{0}''
2121 Image_Inspect_Exception=Failed to inspect image: ''{0}''
2222
11 Bundle-ManifestVersion: 2
22 Bundle-Name: %Bundle-Name
33 Bundle-SymbolicName: org.eclipse.linuxtools.docker.docs;singleton:=true
4 Bundle-Version: 4.4.0.qualifier
4 Bundle-Version: 5.1.0.qualifier
55 Bundle-Vendor: %providerName
66 Require-Bundle: org.eclipse.help
77 Bundle-Localization: plugin
1414 <parent>
1515 <artifactId>org.eclipse.linuxtools.docker</artifactId>
1616 <groupId>org.eclipse.linuxtools</groupId>
17 <version>4.4.0</version>
17 <version>5.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.docker.docs</artifactId>
21 <version>4.4.0-SNAPSHOT</version>
21 <version>5.1.0-SNAPSHOT</version>
2222 <packaging>eclipse-plugin</packaging>
2323
2424 <name>Linux Tools Docker Tooling Documentation Plug-in</name>
+0
-7
containers/org.eclipse.linuxtools.docker.editor/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="bin"/>
6 </classpath>
+0
-1
containers/org.eclipse.linuxtools.docker.editor/.gitignore less more
0 /bin/
+0
-28
containers/org.eclipse.linuxtools.docker.editor/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.docker.editor</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
+0
-106
containers/org.eclipse.linuxtools.docker.editor/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
5 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
6 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
7 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
8 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
9 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
10 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
13 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
15 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
16 org.eclipse.jdt.core.compiler.debug.localVariable=generate
17 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
18 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
19 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
20 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
21 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
22 org.eclipse.jdt.core.compiler.problem.deadCode=warning
23 org.eclipse.jdt.core.compiler.problem.deprecation=warning
24 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
25 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
26 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
27 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
29 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
30 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
31 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
32 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
33 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
34 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
35 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
36 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
37 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
38 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
39 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
40 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
41 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
42 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
43 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
44 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
45 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
46 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
47 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
48 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
49 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
50 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
51 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
52 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
53 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
54 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
55 org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
56 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
57 org.eclipse.jdt.core.compiler.problem.nullReference=warning
58 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
59 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
60 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
61 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
62 org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
63 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
64 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
65 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
66 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
67 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
68 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
69 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
70 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
71 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
72 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
73 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
74 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
75 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
76 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
77 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
78 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
79 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
80 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
81 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
82 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
83 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
84 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
85 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
86 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
87 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
88 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
89 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
90 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
91 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
92 org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
93 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
94 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
95 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
96 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
97 org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
98 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
99 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
100 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
101 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
102 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
103 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
104 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
105 org.eclipse.jdt.core.compiler.source=1.8
+0
-59
containers/org.eclipse.linuxtools.docker.editor/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=false
16 sp_cleanup.convert_to_enhanced_for_loop=false
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=false
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
31 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
32 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
34 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
35 sp_cleanup.remove_private_constructors=true
36 sp_cleanup.remove_redundant_type_arguments=false
37 sp_cleanup.remove_trailing_whitespaces=false
38 sp_cleanup.remove_trailing_whitespaces_all=true
39 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
40 sp_cleanup.remove_unnecessary_casts=true
41 sp_cleanup.remove_unnecessary_nls_tags=false
42 sp_cleanup.remove_unused_imports=false
43 sp_cleanup.remove_unused_local_variables=false
44 sp_cleanup.remove_unused_private_fields=true
45 sp_cleanup.remove_unused_private_members=false
46 sp_cleanup.remove_unused_private_methods=true
47 sp_cleanup.remove_unused_private_types=true
48 sp_cleanup.sort_members=false
49 sp_cleanup.sort_members_all=false
50 sp_cleanup.use_anonymous_class_creation=false
51 sp_cleanup.use_blocks=false
52 sp_cleanup.use_blocks_only_for_return_and_throw=false
53 sp_cleanup.use_lambda=true
54 sp_cleanup.use_parentheses_in_expressions=false
55 sp_cleanup.use_this_for_non_static_field_access=false
56 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
57 sp_cleanup.use_this_for_non_static_method_access=false
58 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+0
-4
containers/org.eclipse.linuxtools.docker.editor/.settings/org.eclipse.m2e.core.prefs less more
0 activeProfiles=
1 eclipse.preferences.version=1
2 resolveWorkspaceProjects=true
3 version=1
+0
-17
containers/org.eclipse.linuxtools.docker.editor/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: Dockerfile Editor
3 Bundle-SymbolicName: org.eclipse.linuxtools.docker.editor;singleton:=true
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-Activator: org.eclipse.linuxtools.internal.docker.editor.Activator
6 Bundle-Vendor: Eclipse Linux Tools
7 Require-Bundle: org.eclipse.ui,
8 org.eclipse.core.runtime,
9 org.eclipse.core.resources,
10 org.eclipse.ui.editors,
11 org.eclipse.jface.text
12 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-ActivationPolicy: lazy
14 Export-Package: org.eclipse.linuxtools.internal.docker.editor;x-friends:="org.eclipse.linuxtools.docker.ui"
15 Import-Package: org.eclipse.ui.ide
16 Automatic-Module-Name: org.eclipse.linuxtools.docker.editor
+0
-36
containers/org.eclipse.linuxtools.docker.editor/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-2
containers/org.eclipse.linuxtools.docker.editor/about.ini less more
0 featureImage=icons/about_docker.png
1 aboutText=Docker Editor: Eclipse Plugin for Editing Dockerfiles
+0
-9
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/ADD.html less more
0 <p>
1 <b>ADD</b> copies files, directories or remote file URLs from a source to a destination.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 ADD hom* /mydir/ # adds all files starting with "hom"
7 </pre>
8 </p>
+0
-13
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/ARG.html less more
0 <p>
1 <b>ARG</b> defines a variable that users can pass at build-time to the builder with the docker build command using the --build-arg <varname>=<value> flag. If a user specifies a build argument that was not defined in the Dockerfile, the build outputs an error.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 ARG user1 # Defines an build argument called 'user1' without any default values
7 ARG buildno # Defines an build argument called 'buildno' without any default values
8
9 ARG user1=someuser # Defines and declares a default value for the build argument 'user1'
10 ARG buildno=123 # Defines and declares a default value for the build argument 'buildno'
11 </pre>
12 </p>
+0
-23
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/CMD.html less more
0 <p>
1 <b>CMD</b> provides defaults for an executing container
2 </p>
3 <br/>
4 <p>
5 There are three ways to specify a CMD: the (preferred) exec form
6 <br/>
7 <pre>
8 CMD ["executable", "param1", "param2"]
9 </pre>
10 <br/>
11 as default parameters to ENTRYPOINT:
12 <br/>
13 <pre>
14 CMD ["param1","param2"]
15 </pre>
16 <br/>
17 and in shell form
18 <br/>
19 <pre>
20 CMD command param1 param2
21 </pre>
22 </p>
+0
-9
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/COPY.html less more
0 <p>
1 <b>COPY</b> copies new files or directories from source and adds them to the filesystem of the container at the destination path
2 </p>
3 <br/>
4 <p>
5 <pre>
6 COPY hom* /mydir/ # adds all files starting with "hom"
7 </pre>
8 </p>
+0
-17
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/ENTRYPOINT.html less more
0 <p>
1 <b>ENTRYPOINT</b> configures a container that will be run as an executable.
2 </p>
3 <br/>
4 <p>
5 There are two ways to specify an ENTRYPOINT: the (preferred) exec form
6 <br/>
7 <pre>
8 ENTRYPOINT ["executable", "param1", "param2"]
9 </pre>
10 <br/>
11 and the shell form:
12 <br/>
13 <pre>
14 ENTRYPOINT command param1 param2
15 </pre>
16 </p>
+0
-13
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/ENV.html less more
0 <p>
1 <b>ENV</b> allows to declare environment variables.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 ENV CATALINA_HOME /usr/local/tomcat
7 </pre>
8 <br/>
9 <pre>
10 ENV LC_ALL en_US.UTF-8
11 </pre>
12 </p>
+0
-7
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/EXPOSE.html less more
0 <p>
1 <b>EXPOSE</b> specifies network ports on which the container will listen at runtime.
2 </p>
3 <br/>
4 <p>
5 EXPOSE 8080
6 </p>
+0
-20
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/FROM.html less more
0 <p>
1 <b>FROM</b> sets the base image starting from which the image is built.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 FROM image
7 </pre>
8 <br/>
9 <pre>
10 FROM image:tag
11 <pre>
12 <br/>
13 FROM image@digest
14 </pre>
15 </p>
16 <br/>
17 <p>
18 <b>FROM</b> must be the first non-comment instruction in the Dockerfile
19 </p>
+0
-7
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/HEALTHCHECK.html less more
0 <p>
1 Specify the <b>HEALTHCHECK</b> of the Docker image.
2 </p>
3 <br/>
4 <p>
5 HEALTHCHECK --timeout=3s CMD curl -f http://localhost/ || exit 1
6 </p>
+0
-21
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/LABEL.html less more
0 <p>
1 <b>LABEL</b> adds meta-data to an image using one or more key-value pairs.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 LABEL Description="Docker Image for running the R Service Bus" Vendor="Open Analytics NV" Version="6.2"
7 </pre>
8 <br/>
9 <pre>
10 LABEL com.example.label-without-value
11 LABEL com.example.label-with-value="foo"
12 LABEL version="1.0"
13 LABEL description="This text illustrates \
14 that label-values can span multiple lines."
15 </pre>
16 </p>
17 <br/>
18 <p>
19 N.B. Image labels can be viewed using the <pre>docker inspect </pre> command.
20 </p>
+0
-7
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/MAINTAINER.html less more
0 <p>
1 Specify the <b>MAINTAINER</b> of the Docker image.
2 </p>
3 <br/>
4 <p>
5 MAINTAINER "Tobias Verbeke"
6 </p>
+0
-10
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/ONBUILD.html less more
0 <p>
1 <b>ONBUILD</b> specifies a 'trigger' instruction executed when the image is used as the base for another build.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 ONBUILD ADD . /app/src
7 ONBUILD RUN /usr/local/bin/python-build --dir /app/src
8 </pre>
9 </p>
+0
-17
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/RUN.html less more
0 <p>
1 <b>RUN</b> executes any commands in a new layer on top of the current image and commits the results
2 </p>
3 <br/>
4 <p>
5 There are two ways to specify a RUN: the exec form
6 <br/>
7 <pre>
8 RUN ["executable", "param1", "param2"]
9 </pre>
10 <br/>
11 and the shell form:
12 <br/>
13 <pre>
14 RUN command param1 param2
15 </pre>
16 </p>
+0
-9
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/SHELL.html less more
0 <p>
1 <b>SHELL</b> allows overriding the default shell used for the shell form of commands. The JSON format is required: ["executable", "parameters"]. On Linux, the default is: ["/bin/sh", "-c"] whereas on Windows it is ["cmd", "/S", "/C"].
2 </p>
3 <br/>
4 <p>
5 <pre>
6 SHELL ["powershell", "-command"]
7 </pre>
8 </p>
+0
-9
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/USER.html less more
0 <p>
1 <b>USER</b> sets the user name or UID used when running the image.
2 </p>
3 <br/>
4 <p>
5 <pre>
6 USER jenkins
7 </pre>
8 </p>
+0
-11
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/VOLUME.html less more
0 <p>
1 <b>VOLUME</b> creates a mount point with the specified name
2 </p>
3 <br/>
4 <p>
5 <pre>
6 VOLUME ["/data"] # specified as a JSON array
7 VOLUME /var/log
8 VOLUME /var/log /var/db
9 </pre>
10 </p>
+0
-9
containers/org.eclipse.linuxtools.docker.editor/assets/additional-info/WORKDIR.html less more
0 <p>
1 <b>WORKDIR</b> sets the working directory for all WORKDIR instruction sets the working directory for any RUN, CMD, ENTRYPOINT, COPY and ADD instructions that follow
2 </p>
3 <br/>
4 <p>
5 <pre>
6 WORKDIR /opt/architect
7 </pre>
8 </p>
+0
-17
containers/org.eclipse.linuxtools.docker.editor/assets/instructions.txt less more
0 ADD
1 ARG
2 CMD
3 COPY
4 ENTRYPOINT
5 ENV
6 EXPOSE
7 FROM
8 HEALTHCHECK
9 LABEL
10 MAINTAINER
11 ONBUILD
12 RUN
13 SHELL
14 USER
15 VOLUME
16 WORKDIR
+0
-9
containers/org.eclipse.linuxtools.docker.editor/build.properties less more
0 source.. = src/
1 output.. = bin/
2 bin.includes = META-INF/,\
3 .,\
4 plugin.xml,\
5 about.html,\
6 icons/,\
7 assets/,\
8 about.ini
containers/org.eclipse.linuxtools.docker.editor/icons/about_docker.png less more
Binary diff not shown
containers/org.eclipse.linuxtools.docker.editor/icons/dockerfile.png less more
Binary diff not shown
+0
-88
containers/org.eclipse.linuxtools.docker.editor/plugin.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.4"?>
2 <plugin>
3 <extension
4 point="org.eclipse.core.contenttype.contentTypes">
5 <content-type
6 base-type="org.eclipse.core.runtime.text"
7 file-extensions="dockerfile"
8 file-names="Dockerfile"
9 id="org.eclipse.linuxtools.dockerfile.content-type"
10 name="Dockerfile"
11 priority="high">
12 </content-type>
13 </extension>
14 <extension
15 point="org.eclipse.ui.editors.documentProviders">
16 <provider
17 class="org.eclipse.linuxtools.internal.docker.editor.DockerDocumentProvider"
18 extensions="dockerfile"
19 id="org.eclipse.linuxtools.docker.editor.documentProvider">
20 </provider>
21 </extension>
22 <extension
23 point="org.eclipse.ui.genericeditor.presentationReconcilers">
24 <presentationReconciler
25 class="org.eclipse.linuxtools.internal.docker.editor.DockerPresentationReconciler"
26 contentType="org.eclipse.linuxtools.dockerfile.content-type">
27 </presentationReconciler>
28 </extension>
29 <extension point="org.eclipse.ui.genericeditor.contentAssistProcessors">
30 <contentAssistProcessor
31 class="org.eclipse.linuxtools.internal.docker.editor.assist.CompletionProcessor"
32 contentType="org.eclipse.linuxtools.dockerfile.content-type">
33 </contentAssistProcessor>
34 </extension>
35 <extension point="org.eclipse.ui.genericeditor.hoverProviders">
36 <hoverProvider
37 class="org.eclipse.linuxtools.internal.docker.editor.DockerHover"
38 contentType="org.eclipse.linuxtools.dockerfile.content-type">
39 </hoverProvider>
40 </extension>
41 <extension
42 point="org.eclipse.ui.editors">
43 <editor
44 class="org.eclipse.linuxtools.internal.docker.editor.DockerEditor"
45 contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor"
46 default="false"
47 icon="icons/dockerfile.png"
48 id="org.eclipse.linuxtools.DockerEditor"
49 name="Dockerfile Editor">
50 <contentTypeBinding
51 contentTypeId="org.eclipse.linuxtools.dockerfile.content-type">
52 </contentTypeBinding>
53 </editor>
54 </extension>
55 <extension
56 point="org.eclipse.ui.themes">
57 <themeElementCategory
58 id="org.eclipse.linuxtools.docker.editor.presentation"
59 label="Dockerfile">
60 </themeElementCategory>
61 <colorDefinition
62 categoryId="org.eclipse.linuxtools.docker.editor.presentation"
63 id="org.eclipse.linuxtools.docker.editor.color.instruction"
64 label="Instruction"
65 value="0,128,0">
66 </colorDefinition>
67 <colorDefinition
68 categoryId="org.eclipse.linuxtools.docker.editor.presentation"
69 id="org.eclipse.linuxtools.docker.editor.color.string"
70 label="String"
71 value="0,0,255">
72 </colorDefinition>
73 <colorDefinition
74 categoryId="org.eclipse.linuxtools.docker.editor.presentation"
75 id="org.eclipse.linuxtools.docker.editor.color.comment"
76 label="Comment"
77 value="128,128,128">
78 </colorDefinition>
79 <colorDefinition
80 categoryId="org.eclipse.linuxtools.docker.editor.presentation"
81 id="org.eclipse.linuxtools.docker.editor.color.variable"
82 label="Variable"
83 value="255,0,0">
84 </colorDefinition>
85 </extension>
86
87 </plugin>
+0
-13
containers/org.eclipse.linuxtools.docker.editor/pom.xml less more
0 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2 <modelVersion>4.0.0</modelVersion>
3 <parent>
4 <groupId>org.eclipse.linuxtools</groupId>
5 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
7 </parent>
8 <artifactId>org.eclipse.linuxtools.docker.editor</artifactId>
9 <version>1.0.0-SNAPSHOT</version>
10 <packaging>eclipse-plugin</packaging>
11
12 </project>
+0
-51
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/Activator.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor;
10
11 import org.eclipse.core.runtime.Status;
12 import org.eclipse.ui.plugin.AbstractUIPlugin;
13 import org.osgi.framework.BundleContext;
14
15 /**
16 * The activator class controls the plug-in life cycle
17 */
18 public class Activator extends AbstractUIPlugin {
19
20 // The plug-in ID
21 public static final String PLUGIN_ID = "org.eclipse.linuxtools.docker.editor"; //$NON-NLS-1$
22
23 // The shared instance
24 private static Activator plugin;
25
26 @Override
27 public void start(BundleContext context) throws Exception {
28 super.start(context);
29 plugin = this;
30 }
31
32 @Override
33 public void stop(BundleContext context) throws Exception {
34 plugin = null;
35 super.stop(context);
36 }
37
38 /**
39 * Returns the shared instance
40 *
41 * @return the shared instance
42 */
43 public static Activator getDefault() {
44 return plugin;
45 }
46
47 public static void log(int severity, String message, Throwable cause) {
48 getDefault().getLog().log(new Status(severity, PLUGIN_ID, message, cause));
49 }
50 }
+0
-65
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/DockerConfiguration.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor;
10
11 import org.eclipse.jface.text.IDocument;
12 import org.eclipse.jface.text.ITextHover;
13 import org.eclipse.jface.text.contentassist.ContentAssistant;
14 import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
15 import org.eclipse.jface.text.contentassist.IContentAssistant;
16 import org.eclipse.jface.text.presentation.IPresentationReconciler;
17 import org.eclipse.jface.text.reconciler.IReconciler;
18 import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
19 import org.eclipse.jface.text.reconciler.Reconciler;
20 import org.eclipse.jface.text.source.ISourceViewer;
21 import org.eclipse.linuxtools.internal.docker.editor.assist.CompletionProcessor;
22 import org.eclipse.linuxtools.internal.docker.editor.syntax.SyntaxReconcilingStrategy;
23 import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
24
25 public class DockerConfiguration extends TextSourceViewerConfiguration {
26
27 private DockerEditor editor;
28 private DockerHover hover;
29
30 public DockerConfiguration(DockerEditor editor) {
31 this.editor = editor;
32 }
33
34 @Override
35 public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
36 return new DockerPresentationReconciler();
37 }
38
39 @Override
40 public IReconciler getReconciler(ISourceViewer sourceViewer) {
41 Reconciler reconciler = new Reconciler();
42 IReconcilingStrategy strategy = new SyntaxReconcilingStrategy(editor);
43 reconciler.setReconcilingStrategy(strategy, IDocument.DEFAULT_CONTENT_TYPE);
44 return reconciler;
45 }
46
47 @Override
48 public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
49 ContentAssistant ca = new ContentAssistant();
50 IContentAssistProcessor cap = new CompletionProcessor();
51 ca.setContentAssistProcessor(cap, IDocument.DEFAULT_CONTENT_TYPE);
52 ca.setInformationControlCreator(getInformationControlCreator(sourceViewer));
53 return ca;
54 }
55
56 @Override
57 public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
58 if (hover == null) {
59 hover = new DockerHover();
60 }
61 return hover;
62 }
63
64 }
+0
-210
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/DockerDocumentProvider.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor;
10
11 import java.io.ByteArrayInputStream;
12 import java.io.File;
13 import java.io.FileInputStream;
14 import java.io.FileNotFoundException;
15 import java.io.FileWriter;
16 import java.io.IOException;
17 import java.io.InputStream;
18 import java.io.InputStreamReader;
19 import java.nio.ByteBuffer;
20 import java.nio.CharBuffer;
21 import java.nio.charset.CharacterCodingException;
22 import java.nio.charset.Charset;
23 import java.nio.charset.CharsetEncoder;
24 import java.nio.charset.CodingErrorAction;
25 import java.nio.charset.IllegalCharsetNameException;
26 import java.nio.charset.UnmappableCharacterException;
27 import java.nio.charset.UnsupportedCharsetException;
28 import java.nio.file.Files;
29 import java.nio.file.Path;
30 import java.nio.file.Paths;
31
32 import org.eclipse.core.runtime.Assert;
33 import org.eclipse.core.runtime.CoreException;
34 import org.eclipse.core.runtime.IProgressMonitor;
35 import org.eclipse.core.runtime.IStatus;
36 import org.eclipse.core.runtime.Status;
37 import org.eclipse.jface.text.IDocument;
38 import org.eclipse.jface.text.IDocumentPartitioner;
39 import org.eclipse.jface.text.rules.FastPartitioner;
40 import org.eclipse.linuxtools.internal.docker.editor.scanner.DockerPartitionScanner;
41 import org.eclipse.osgi.util.NLS;
42 import org.eclipse.ui.IEditorInput;
43 import org.eclipse.ui.editors.text.EditorsUI;
44 import org.eclipse.ui.editors.text.FileDocumentProvider;
45 import org.eclipse.ui.ide.FileStoreEditorInput;
46 import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel;
47
48 public class DockerDocumentProvider extends FileDocumentProvider {
49
50 @Override
51 protected IDocument createDocument(Object element) throws CoreException {
52 IDocument document = super.createDocument(element);
53 if (document != null) {
54 DockerPartitionScanner scanner = new DockerPartitionScanner();
55 IDocumentPartitioner partitioner = new FastPartitioner(scanner,
56 DockerPartitionScanner.ALLOWED_CONTENT_TYPES);
57 partitioner.connect(document);
58 document.setDocumentPartitioner(partitioner);
59 }
60 return document;
61 }
62
63 @Override
64 public String getEncoding(Object element) {
65 return Charset.defaultCharset().name();
66 }
67
68 @Override
69 public boolean isReadOnly(Object element) {
70 if (element instanceof FileStoreEditorInput) {
71 String path = ((FileStoreEditorInput) element).getURI().getPath();
72 return !new File(path).canWrite();
73 } else {
74 return super.isReadOnly(element);
75 }
76 }
77
78 @Override
79 public boolean isModifiable(Object element) {
80 if (element instanceof FileStoreEditorInput) {
81 String path = ((FileStoreEditorInput) element).getURI().getPath();
82 return new File(path).canWrite();
83 } else {
84 return super.isModifiable(element);
85 }
86 }
87
88 @Override
89 protected boolean setDocumentContent(IDocument document, IEditorInput editorInput, String encoding)
90 throws CoreException {
91 if (editorInput instanceof FileStoreEditorInput) {
92 String path = ((FileStoreEditorInput) editorInput).getURI().getPath();
93 InputStream in;
94 try {
95 in = new FileInputStream(path);
96 } catch (FileNotFoundException e) {
97 return false;
98 }
99 super.setDocumentContent(document, in, encoding);
100 return true;
101 } else {
102 return super.setDocumentContent(document, editorInput, encoding);
103 }
104 }
105
106 @Override
107 protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite)
108 throws CoreException {
109 if (element instanceof FileStoreEditorInput) {
110
111 String encoding = null;
112
113 ElementInfo info = getElementInfo(element);
114 Path filePath = Paths.get(((FileStoreEditorInput) element).getURI());
115
116 encoding = getEncoding(element);
117
118 Charset charset;
119 try {
120 charset = Charset.forName(encoding);
121 } catch (UnsupportedCharsetException ex) {
122 String message = NLS.bind(Messages.DockerDocumentProvider_encoding_not_supported, encoding);
123 IStatus s = new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, IStatus.OK, message, ex);
124 throw new CoreException(s);
125 } catch (IllegalCharsetNameException ex) {
126 String message = NLS.bind(Messages.DockerDocumentProvider_encoding_not_legal, encoding);
127 IStatus s = new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, IStatus.OK, message, ex);
128 throw new CoreException(s);
129 }
130
131 CharsetEncoder encoder = charset.newEncoder();
132 encoder.onMalformedInput(CodingErrorAction.REPLACE);
133 encoder.onUnmappableCharacter(CodingErrorAction.REPORT);
134
135 InputStream stream;
136
137 try {
138 byte[] bytes;
139 ByteBuffer byteBuffer = encoder.encode(CharBuffer.wrap(document.get()));
140 if (byteBuffer.hasArray())
141 bytes = byteBuffer.array();
142 else {
143 bytes = new byte[byteBuffer.limit()];
144 byteBuffer.get(bytes);
145 }
146 stream = new ByteArrayInputStream(bytes, 0, byteBuffer.limit());
147 } catch (CharacterCodingException ex) {
148 Assert.isTrue(ex instanceof UnmappableCharacterException);
149 String message = NLS.bind(Messages.DockerDocumentProvider_cannot_be_mapped
150 + Messages.DockerDocumentProvider_chars_not_supported, encoding);
151 IStatus s = new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, EditorsUI.CHARSET_MAPPING_FAILED, message,
152 null);
153 throw new CoreException(s);
154 }
155
156 if (Files.exists(filePath)) {
157 // inform about the upcoming content change
158 fireElementStateChanging(element);
159 try (FileWriter fw = new FileWriter(filePath.toFile());
160 InputStreamReader istream = new InputStreamReader(stream)) {
161 char[] bb = new char[1024];
162 int nRead = istream.read(bb);
163 while (nRead > 0) {
164 fw.write(bb, 0, nRead);
165 nRead = istream.read(bb);
166 }
167 } catch (RuntimeException | IOException x) {
168 // inform about failure
169 fireElementStateChangeFailed(element);
170 throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, x.getMessage()));
171 }
172
173 // If here, the editor state will be flipped to "not dirty".
174 // Thus, the state changing flag will be reset.
175
176 if (info != null) {
177
178 ResourceMarkerAnnotationModel model = (ResourceMarkerAnnotationModel) info.fModel;
179 if (model != null)
180 model.updateMarkers(info.fDocument);
181 }
182
183 } else {
184 try {
185 Files.createFile(filePath);
186 try (FileWriter fw = new FileWriter(filePath.toFile());
187 InputStreamReader istream = new InputStreamReader(stream)) {
188 char[] bb = new char[1024];
189 int nRead = istream.read(bb);
190 while (nRead > 0) {
191 fw.write(bb, 0, nRead);
192 nRead = istream.read(bb);
193 }
194 } catch (IOException x) {
195 throw x;
196 }
197 } catch (IOException e) {
198 throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage()));
199 } finally {
200 monitor.done();
201 }
202 }
203
204 } else {
205 super.doSaveDocument(monitor, element, document, overwrite);
206 }
207 }
208
209 }
+0
-40
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/DockerEditor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor;
10
11 import org.eclipse.core.resources.IResource;
12 import org.eclipse.core.runtime.CoreException;
13 import org.eclipse.core.runtime.IProgressMonitor;
14 import org.eclipse.core.runtime.IStatus;
15 import org.eclipse.jface.text.BadLocationException;
16 import org.eclipse.jface.text.IDocument;
17 import org.eclipse.linuxtools.internal.docker.editor.syntax.SyntaxProblemReporter;
18 import org.eclipse.ui.editors.text.TextEditor;
19
20 public class DockerEditor extends TextEditor {
21
22 public DockerEditor() {
23 super();
24 setSourceViewerConfiguration(new DockerConfiguration(this));
25 setDocumentProvider(new DockerDocumentProvider());
26 }
27
28 @Override
29 public void doSave(IProgressMonitor progressMonitor) {
30 try {
31 IResource resource = getEditorInput().getAdapter(IResource.class);
32 IDocument document = getDocumentProvider().getDocument(getEditorInput());
33 new SyntaxProblemReporter().checkAndApply(document, 0, document.getLength(), resource);
34 } catch (CoreException | BadLocationException e) {
35 Activator.log(IStatus.ERROR, "Failed to perform syntax check", e);
36 }
37 super.doSave(progressMonitor);
38 }
39 }
+0
-101
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/DockerHover.java less more
0 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat Inc and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implmentation.
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.docker.editor;
13
14 import org.eclipse.jface.text.BadLocationException;
15 import org.eclipse.jface.text.DefaultInformationControl;
16 import org.eclipse.jface.text.IDocument;
17 import org.eclipse.jface.text.IInformationControlCreator;
18 import org.eclipse.jface.text.IRegion;
19 import org.eclipse.jface.text.ITextHover;
20 import org.eclipse.jface.text.ITextHoverExtension;
21 import org.eclipse.jface.text.ITextViewer;
22 import org.eclipse.jface.text.Region;
23 import org.eclipse.linuxtools.internal.docker.editor.util.AssetLoader;
24
25 public class DockerHover implements ITextHover, ITextHoverExtension {
26
27 private AssetLoader loader;
28
29 public DockerHover() {
30 loader = new AssetLoader();
31 }
32
33 @Override
34 public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
35 String varName = null;
36 try {
37 varName = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength());
38 } catch (BadLocationException e) {
39 return null;
40 }
41
42 return loader.getInfo(varName);
43 }
44
45 @Override
46 public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
47 return findWord(textViewer.getDocument(), offset);
48 }
49
50 @Override
51 public IInformationControlCreator getHoverControlCreator() {
52 return parent -> new DefaultInformationControl(parent, false);
53 }
54
55 private IRegion findWord(IDocument document, int offset) {
56 int start = -2;
57 int end = -1;
58
59 try {
60
61 int pos = offset;
62 char c;
63
64 while (pos >= 0) {
65 c = document.getChar(pos);
66 if (!Character.isUnicodeIdentifierPart(c))
67 break;
68 --pos;
69 }
70
71 start = pos;
72
73 pos = offset;
74 int length = document.getLength();
75
76 while (pos < length) {
77 c = document.getChar(pos);
78 if (!Character.isUnicodeIdentifierPart(c))
79 break;
80 ++pos;
81 }
82
83 end = pos;
84
85 } catch (BadLocationException x) {
86 }
87
88 if (start >= -1 && end > -1) {
89 if (start == offset && end == offset)
90 return new Region(offset, 0);
91 else if (start == offset)
92 return new Region(start, end - start);
93 else
94 return new Region(start + 1, end - start - 1);
95 }
96
97 return null;
98 }
99
100 }
+0
-35
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/DockerPresentationReconciler.java less more
0 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat Inc and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implmentation.
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.docker.editor;
13
14 import org.eclipse.jface.text.IDocument;
15 import org.eclipse.jface.text.presentation.PresentationReconciler;
16 import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
17 import org.eclipse.linuxtools.internal.docker.editor.scanner.DockerCommentScanner;
18 import org.eclipse.linuxtools.internal.docker.editor.scanner.DockerInstructionScanner;
19 import org.eclipse.linuxtools.internal.docker.editor.scanner.DockerPartitionScanner;
20
21 public class DockerPresentationReconciler extends PresentationReconciler {
22
23 public DockerPresentationReconciler() {
24 super();
25 DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new DockerCommentScanner());
26 this.setDamager(dr, DockerPartitionScanner.TYPE_COMMENT);
27 this.setRepairer(dr, DockerPartitionScanner.TYPE_COMMENT);
28
29 dr = new DefaultDamagerRepairer(new DockerInstructionScanner());
30 this.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
31 this.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
32 }
33
34 }
+0
-30
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/Messages.java less more
0 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - Initial Contribution
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.docker.editor;
13
14 import org.eclipse.osgi.util.NLS;
15
16 public class Messages extends NLS {
17 private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.docker.editor.messages"; //$NON-NLS-1$
18 public static String DockerDocumentProvider_cannot_be_mapped;
19 public static String DockerDocumentProvider_chars_not_supported;
20 public static String DockerDocumentProvider_encoding_not_legal;
21 public static String DockerDocumentProvider_encoding_not_supported;
22 static {
23 // initialize resource bundle
24 NLS.initializeMessages(BUNDLE_NAME, Messages.class);
25 }
26
27 private Messages() {
28 }
29 }
+0
-102
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/assist/CompletionProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.assist;
10
11 import java.util.ArrayList;
12
13 import org.eclipse.core.runtime.IStatus;
14 import org.eclipse.core.runtime.Status;
15 import org.eclipse.jface.text.IDocument;
16 import org.eclipse.jface.text.ITextViewer;
17 import org.eclipse.jface.text.contentassist.ICompletionProposal;
18 import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
19 import org.eclipse.jface.text.contentassist.IContextInformation;
20 import org.eclipse.jface.text.contentassist.IContextInformationValidator;
21 import org.eclipse.linuxtools.internal.docker.editor.Activator;
22 import org.eclipse.linuxtools.internal.docker.editor.scanner.InstructionWordRule;
23 import org.eclipse.linuxtools.internal.docker.editor.util.AssetLoader;
24
25 public class CompletionProcessor implements IContentAssistProcessor {
26
27 private static final ICompletionProposal[] NO_COMPLETIONS = {};
28 private static final IContextInformation[] NO_CONTEXTS = {};
29 private static final char[] PROPOSAL_ACTIVATION_CHARS = {};
30 private static final char[] INFO_ACTIVATION_CHARS = {};
31 private AssetLoader assetLoader;
32
33 public CompletionProcessor() {
34 assetLoader = new AssetLoader();
35 }
36
37 @Override
38 public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
39 try {
40 IDocument document = viewer.getDocument();
41 ArrayList<ICompletionProposal> result = new ArrayList<>();
42
43 int lineNr = document.getLineOfOffset(offset);
44 int lineOffset = document.getLineOffset(lineNr);
45
46 boolean isNewLine = (offset == 0) || (document.getChar(offset - 1) == '\n');
47 if (isNewLine) {
48 for (String instr : InstructionWordRule.INSTRUCTIONS)
49 result.add(new CompletionProposal(instr, lineOffset, 0, assetLoader.getInfo(instr)));
50 }
51
52 boolean isFirstWord = true;
53 for (int i = lineOffset; i < offset; i++) {
54 if (Character.isWhitespace(document.getChar(i)))
55 isFirstWord = false;
56 }
57 if (isFirstWord) {
58 String prefix = "";
59 for (int i = lineOffset; i < offset; i++)
60 prefix += document.getChar(i);
61 for (String instr : InstructionWordRule.INSTRUCTIONS) {
62 if (instr.toLowerCase().startsWith(prefix.toLowerCase()))
63 result.add(
64 new CompletionProposal(instr, lineOffset, prefix.length(), assetLoader.getInfo(instr)));
65 }
66 }
67
68 return result.toArray(new ICompletionProposal[result.size()]);
69 } catch (Exception e) {
70 Activator.getDefault().getLog()
71 .log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, "Failed to compute completion proposals", e));
72 return NO_COMPLETIONS;
73 }
74 }
75
76 @Override
77 public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
78 return NO_CONTEXTS;
79 }
80
81 @Override
82 public char[] getCompletionProposalAutoActivationCharacters() {
83 return PROPOSAL_ACTIVATION_CHARS;
84 }
85
86 @Override
87 public char[] getContextInformationAutoActivationCharacters() {
88 return INFO_ACTIVATION_CHARS;
89 }
90
91 @Override
92 public String getErrorMessage() {
93 return "";
94 }
95
96 @Override
97 public IContextInformationValidator getContextInformationValidator() {
98 return null;
99 }
100
101 }
+0
-91
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/assist/CompletionProposal.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.assist;
10
11 import org.eclipse.jface.text.BadLocationException;
12 import org.eclipse.jface.text.DefaultInformationControl;
13 import org.eclipse.jface.text.IDocument;
14 import org.eclipse.jface.text.IInformationControlCreator;
15 import org.eclipse.jface.text.contentassist.ICompletionProposal;
16 import org.eclipse.jface.text.contentassist.ICompletionProposalExtension3;
17 import org.eclipse.jface.text.contentassist.IContextInformation;
18 import org.eclipse.swt.graphics.Image;
19 import org.eclipse.swt.graphics.Point;
20
21 /**
22 * Based on {@link org.eclipse.jface.text.contentassist.CompletionProposal} with
23 * added functionality for showing additional information formatted as HTML.
24 */
25 public class CompletionProposal implements ICompletionProposal, ICompletionProposalExtension3 {
26
27 private String fReplacementString;
28 private int fReplacementOffset;
29 private int fReplacementLength;
30
31 private String fAdditionalProposalInfo;
32
33 public CompletionProposal(String replacementString, int replacementOffset, int replacementLength,
34 String additionalProposalInfo) {
35 this.fReplacementString = replacementString;
36 this.fReplacementOffset = replacementOffset;
37 this.fReplacementLength = replacementLength;
38 this.fAdditionalProposalInfo = additionalProposalInfo;
39 }
40
41 @Override
42 public void apply(IDocument document) {
43 try {
44 document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
45 } catch (BadLocationException x) {
46 // ignore
47 }
48 }
49
50 @Override
51 public Point getSelection(IDocument document) {
52 return new Point(fReplacementOffset + fReplacementString.length(), 0);
53 }
54
55 @Override
56 public String getDisplayString() {
57 return fReplacementString;
58 }
59
60 @Override
61 public String getAdditionalProposalInfo() {
62 return fAdditionalProposalInfo;
63 }
64
65 @Override
66 public IInformationControlCreator getInformationControlCreator() {
67 return shell -> new DefaultInformationControl(shell, true);
68 }
69
70 @Override
71 public IContextInformation getContextInformation() {
72 return null;
73 }
74
75 @Override
76 public Image getImage() {
77 return null;
78 }
79
80 @Override
81 public CharSequence getPrefixCompletionText(IDocument document, int completionOffset) {
82 return null;
83 }
84
85 @Override
86 public int getPrefixCompletionStart(IDocument document, int completionOffset) {
87 return 0;
88 }
89
90 }
+0
-4
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/messages.properties less more
0 DockerDocumentProvider_cannot_be_mapped=Some characters cannot be mapped using {0} character encoding.
1 DockerDocumentProvider_chars_not_supported=Either change the encoding or remove the characters which are not supported by the {0} character encoding.
2 DockerDocumentProvider_encoding_not_legal=Character encoding {0} is not a legal character encoding.
3 DockerDocumentProvider_encoding_not_supported=Character encoding {0} is not supported by this platform.
+0
-40
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/scanner/DockerCommentScanner.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.scanner;
10
11 import org.eclipse.jface.text.TextAttribute;
12 import org.eclipse.jface.text.rules.EndOfLineRule;
13 import org.eclipse.jface.text.rules.ICharacterScanner;
14 import org.eclipse.jface.text.rules.IRule;
15 import org.eclipse.jface.text.rules.IToken;
16 import org.eclipse.jface.text.rules.RuleBasedScanner;
17 import org.eclipse.jface.text.rules.Token;
18 import org.eclipse.linuxtools.internal.docker.editor.syntax.SyntaxColors;
19
20 public class DockerCommentScanner extends RuleBasedScanner {
21
22 public static final String COMMENT_SEQUENCE = "#";
23
24 public DockerCommentScanner() {
25 IToken token = new Token(new TextAttribute(SyntaxColors.getCommentColor()));
26
27 IRule[] rules = new IRule[1];
28 rules[0] = new EndOfLineRule(COMMENT_SEQUENCE, token) {
29 @Override
30 public IToken evaluate(ICharacterScanner scanner, boolean resume) {
31 if (getColumn() > 0)
32 return Token.UNDEFINED;
33 return super.evaluate(scanner, resume);
34 }
35 };
36
37 setRules(rules);
38 }
39 }
+0
-46
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/scanner/DockerInstructionScanner.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.scanner;
10
11 import org.eclipse.jface.text.TextAttribute;
12 import org.eclipse.jface.text.rules.EndOfLineRule;
13 import org.eclipse.jface.text.rules.ICharacterScanner;
14 import org.eclipse.jface.text.rules.IRule;
15 import org.eclipse.jface.text.rules.IToken;
16 import org.eclipse.jface.text.rules.RuleBasedScanner;
17 import org.eclipse.jface.text.rules.SingleLineRule;
18 import org.eclipse.jface.text.rules.Token;
19 import org.eclipse.linuxtools.internal.docker.editor.syntax.SyntaxColors;
20
21 public class DockerInstructionScanner extends RuleBasedScanner {
22
23 public DockerInstructionScanner() {
24 IToken instructionToken = new Token(new TextAttribute(SyntaxColors.getInstructionColor()));
25 IToken stringToken = new Token(new TextAttribute(SyntaxColors.getStringColor()));
26 IToken varToken = new Token(new TextAttribute(SyntaxColors.getVariableColor()));
27 IToken commentToken = new Token(new TextAttribute(SyntaxColors.getCommentColor()));
28
29 IRule[] rules = new IRule[5];
30 rules[0] = new InstructionWordRule(instructionToken);
31 rules[1] = new SingleLineRule("\"", "\"", stringToken, '\\');
32 rules[2] = new SingleLineRule("\'", "\'", stringToken, '\\');
33 rules[3] = new SingleLineRule("${", "}", varToken, '\\');
34 rules[4] = new EndOfLineRule("#", commentToken) {
35 @Override
36 public IToken evaluate(ICharacterScanner scanner, boolean resume) {
37 if (getColumn() > 0)
38 return Token.UNDEFINED;
39 return super.evaluate(scanner, resume);
40 }
41 };
42
43 setRules(rules);
44 }
45 }
+0
-39
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/scanner/DockerPartitionScanner.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.scanner;
10
11 import org.eclipse.jface.text.IDocument;
12 import org.eclipse.jface.text.rules.EndOfLineRule;
13 import org.eclipse.jface.text.rules.IPredicateRule;
14 import org.eclipse.jface.text.rules.IToken;
15 import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
16 import org.eclipse.jface.text.rules.Token;
17
18 /**
19 * This scanner partitions the document in two things:
20 * <ul>
21 * <li>Comments, of type TYPE_COMMENT</li>
22 * <li>Everything else, of type {@link IDocument#DEFAULT_CONTENT_TYPE}</li>
23 * </ul>
24 */
25 public class DockerPartitionScanner extends RuleBasedPartitionScanner {
26
27 public final static String TYPE_COMMENT = "__docker_comment";
28
29 public final static String[] ALLOWED_CONTENT_TYPES = { TYPE_COMMENT };
30
31 public DockerPartitionScanner() {
32 IToken commentToken = new Token(TYPE_COMMENT);
33 IPredicateRule[] rules = new IPredicateRule[1];
34 rules[0] = new EndOfLineRule(DockerCommentScanner.COMMENT_SEQUENCE, commentToken);
35 setPredicateRules(rules);
36 }
37
38 }
+0
-62
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/scanner/InstructionWordRule.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.scanner;
10
11 import java.io.IOException;
12
13 import org.eclipse.core.runtime.IStatus;
14 import org.eclipse.jface.text.rules.IToken;
15 import org.eclipse.jface.text.rules.IWordDetector;
16 import org.eclipse.jface.text.rules.Token;
17 import org.eclipse.jface.text.rules.WordRule;
18 import org.eclipse.linuxtools.internal.docker.editor.Activator;
19 import org.eclipse.linuxtools.internal.docker.editor.util.AssetLoader;
20
21 public class InstructionWordRule extends WordRule {
22
23 public static final String[] INSTRUCTIONS;
24
25 private static final String INSTRUCTION_FILE_PATH = "assets/instructions.txt";
26
27 // Load instructions from the text file.
28 static {
29 String[] loadedInstructions = new String[0];
30 try {
31 String contentsString = AssetLoader.loadAsset(INSTRUCTION_FILE_PATH);
32 String lineSeparator = (contentsString.contains("\r\n")) ? "\r\n" : "\n";
33 loadedInstructions = contentsString.split(lineSeparator);
34 } catch (IOException e) {
35 Activator.log(IStatus.WARNING,
36 "No content assist available: error while reading instruction file: " + INSTRUCTION_FILE_PATH, e);
37 }
38 INSTRUCTIONS = loadedInstructions;
39 }
40
41 public InstructionWordRule(IToken instructionToken) {
42 super(new InstructionWordDetector(), Token.UNDEFINED, true);
43 setColumnConstraint(0);
44 for (String instruction : INSTRUCTIONS)
45 addWord(instruction, instructionToken);
46 }
47
48 private static class InstructionWordDetector implements IWordDetector {
49
50 @Override
51 public boolean isWordStart(char c) {
52 return Character.isJavaIdentifierStart(c);
53 }
54
55 @Override
56 public boolean isWordPart(char c) {
57 return Character.isJavaIdentifierPart(c);
58 }
59
60 }
61 }
+0
-42
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/syntax/SyntaxColors.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.syntax;
10
11 import org.eclipse.swt.graphics.Color;
12 import org.eclipse.ui.PlatformUI;
13 import org.eclipse.ui.themes.ITheme;
14
15 public class SyntaxColors {
16
17 private static final String COLOR_DEF_INSTRUCTION = "org.eclipse.linuxtools.docker.editor.color.instruction";
18 private static final String COLOR_DEF_STRING = "org.eclipse.linuxtools.docker.editor.color.string";
19 private static final String COLOR_DEF_COMMENT = "org.eclipse.linuxtools.docker.editor.color.comment";
20 private static final String COLOR_DEF_VARIABLE = "org.eclipse.linuxtools.docker.editor.color.variable";
21
22 public static Color getInstructionColor() {
23 return getTheme().getColorRegistry().get(COLOR_DEF_INSTRUCTION);
24 }
25
26 public static Color getStringColor() {
27 return getTheme().getColorRegistry().get(COLOR_DEF_STRING);
28 }
29
30 public static Color getCommentColor() {
31 return getTheme().getColorRegistry().get(COLOR_DEF_COMMENT);
32 }
33
34 public static Color getVariableColor() {
35 return getTheme().getColorRegistry().get(COLOR_DEF_VARIABLE);
36 }
37
38 private static ITheme getTheme() {
39 return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
40 }
41 }
+0
-120
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/syntax/SyntaxProblemReporter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.syntax;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.eclipse.core.resources.IMarker;
15 import org.eclipse.core.resources.IResource;
16 import org.eclipse.core.runtime.CoreException;
17 import org.eclipse.jface.text.BadLocationException;
18 import org.eclipse.jface.text.IDocument;
19 import org.eclipse.linuxtools.internal.docker.editor.scanner.DockerCommentScanner;
20 import org.eclipse.linuxtools.internal.docker.editor.scanner.InstructionWordRule;
21
22 public class SyntaxProblemReporter {
23
24 private static final String LINE_SEP = System.getProperty("line.separator");
25
26 public void checkAndApply(IDocument document, int offset, int length, IResource resource)
27 throws CoreException, BadLocationException {
28
29 // We can't do problem report when file is external (no IResource)
30 if (resource == null) {
31 return;
32 }
33 boolean fullScan = (offset == 0 && length == document.getLength());
34
35 // Clear any existing markers in the affected region.
36 IMarker[] markers = resource.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ZERO);
37 List<IMarker> markersToDelete = new ArrayList<>();
38 for (IMarker marker : markers) {
39 int markerLineNr = (Integer) marker.getAttribute(IMarker.LINE_NUMBER);
40 int regionLineNr = document.getLineOfOffset(offset);
41 if (fullScan || markerLineNr == regionLineNr)
42 markersToDelete.add(marker);
43 }
44 for (IMarker marker : markersToDelete)
45 marker.delete();
46
47 // Apply new problems as needed.
48 List<SyntaxProblem> problems = check(document, offset, length);
49 for (SyntaxProblem problem : problems) {
50 IMarker marker = resource.createMarker(IMarker.PROBLEM);
51 marker.setAttribute(IMarker.SEVERITY, problem.severity);
52 marker.setAttribute(IMarker.MESSAGE, problem.message);
53 marker.setAttribute(IMarker.LINE_NUMBER, document.getLineOfOffset(problem.offset));
54 marker.setAttribute(IMarker.CHAR_START, problem.offset);
55 marker.setAttribute(IMarker.CHAR_END, problem.offset + problem.length);
56 }
57 }
58
59 public List<SyntaxProblem> check(IDocument document, int offset, int length) throws BadLocationException {
60 String region = document.get(offset, length);
61 int lineCount = region.split(LINE_SEP).length;
62 int startingLineNr = document.getLineOfOffset(offset);
63
64 List<SyntaxProblem> problems = new ArrayList<>();
65
66 for (int lineNr = startingLineNr; lineNr < startingLineNr + lineCount; lineNr++) {
67 int lineOffset = document.getLineOffset(lineNr);
68 int lineEnd = document.getLength();
69 if (lineNr + startingLineNr + 1 < lineCount)
70 lineEnd = document.getLineOffset(lineNr + 1);
71
72 int endOfFirstWord = 0;
73 for (; endOfFirstWord < lineEnd - lineOffset; endOfFirstWord++) {
74 if (Character.isWhitespace(document.getChar(lineOffset + endOfFirstWord)))
75 break;
76 }
77
78 String firstWord = document.get(lineOffset, endOfFirstWord);
79 if (firstWord.trim().isEmpty())
80 continue;
81 if (firstWord.trim().startsWith(DockerCommentScanner.COMMENT_SEQUENCE))
82 continue;
83
84 String matchingInstruction = null;
85 for (String instr : InstructionWordRule.INSTRUCTIONS) {
86 if (instr.equalsIgnoreCase(firstWord)) {
87 matchingInstruction = instr;
88 break;
89 }
90 }
91
92 if (matchingInstruction == null) {
93 // Error: unknown instruction
94 problems.add(new SyntaxProblem(IMarker.SEVERITY_ERROR, lineOffset, firstWord.length(),
95 "Unknown instruction: " + firstWord));
96 } else if (!matchingInstruction.equals(firstWord)) {
97 // Warning: case incorrect
98 problems.add(new SyntaxProblem(IMarker.SEVERITY_WARNING, lineOffset, firstWord.length(),
99 "Instructions should be upper case"));
100 }
101 }
102
103 return problems;
104 }
105
106 public static class SyntaxProblem {
107 public int severity;
108 public int offset;
109 public int length;
110 public String message;
111
112 public SyntaxProblem(int severity, int offset, int length, String message) {
113 this.severity = severity;
114 this.offset = offset;
115 this.length = length;
116 this.message = message;
117 }
118 }
119 }
+0
-63
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/syntax/SyntaxReconcilingStrategy.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.syntax;
10
11 import org.eclipse.core.resources.IResource;
12 import org.eclipse.core.runtime.CoreException;
13 import org.eclipse.core.runtime.IProgressMonitor;
14 import org.eclipse.core.runtime.IStatus;
15 import org.eclipse.jface.text.BadLocationException;
16 import org.eclipse.jface.text.IDocument;
17 import org.eclipse.jface.text.IRegion;
18 import org.eclipse.jface.text.reconciler.DirtyRegion;
19 import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
20 import org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension;
21 import org.eclipse.linuxtools.internal.docker.editor.Activator;
22 import org.eclipse.linuxtools.internal.docker.editor.DockerEditor;
23
24 public class SyntaxReconcilingStrategy implements IReconcilingStrategy, IReconcilingStrategyExtension {
25
26 private DockerEditor editor;
27 private IDocument document;
28
29 public SyntaxReconcilingStrategy(DockerEditor editor) {
30 this.editor = editor;
31 }
32
33 @Override
34 public void setDocument(IDocument document) {
35 this.document = document;
36 }
37
38 @Override
39 public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) {
40 try {
41 IResource resource = editor.getEditorInput().getAdapter(IResource.class);
42 new SyntaxProblemReporter().checkAndApply(document, subRegion.getOffset(), subRegion.getLength(), resource);
43 } catch (CoreException | BadLocationException e) {
44 Activator.log(IStatus.ERROR, "Failed to perform syntax check", e);
45 }
46 }
47
48 @Override
49 public void reconcile(IRegion partition) {
50 // Partition reconciling not supported.
51 }
52
53 @Override
54 public void setProgressMonitor(IProgressMonitor monitor) {
55 // Monitoring not supported.
56 }
57
58 @Override
59 public void initialReconcile() {
60 // Nothing to do.
61 }
62 }
+0
-68
containers/org.eclipse.linuxtools.docker.editor/src/org/eclipse/linuxtools/internal/docker/editor/util/AssetLoader.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Open Analytics NV and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.internal.docker.editor.util;
10
11 import java.io.ByteArrayOutputStream;
12 import java.io.IOException;
13 import java.io.InputStream;
14 import java.net.URL;
15 import java.util.HashMap;
16 import java.util.Map;
17
18 import org.eclipse.core.runtime.FileLocator;
19 import org.eclipse.core.runtime.IStatus;
20 import org.eclipse.core.runtime.Path;
21 import org.eclipse.linuxtools.internal.docker.editor.Activator;
22
23 public class AssetLoader {
24
25 private Map<String, String> additionalInfos = new HashMap<>();
26 private static final String ADDITIONAL_INFO_PATH = "assets/additional-info";
27
28 public AssetLoader() {
29 additionalInfos = new HashMap<>();
30 }
31
32 public String getInfo(String instruction) {
33 if (additionalInfos.containsKey(instruction))
34 return additionalInfos.get(instruction);
35
36 String additionalInfo = "";
37 String targetFile = ADDITIONAL_INFO_PATH + "/" + instruction + ".html";
38 try {
39 additionalInfo = AssetLoader.loadAsset(targetFile);
40 } catch (IOException e) {
41 Activator.log(IStatus.WARNING, "Failed to load additional info file for instruction " + instruction, e);
42 }
43
44 additionalInfos.put(instruction, additionalInfo);
45 return additionalInfo;
46 }
47
48 public static String loadAsset(String path) throws IOException {
49 URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(path), null);
50 if (url == null) {
51 return null;
52 } else {
53 ByteArrayOutputStream out = new ByteArrayOutputStream();
54 try (InputStream input = url.openStream()) {
55
56 byte[] buffer = new byte[4096];
57 int len = 0;
58 do {
59 len = input.read(buffer, 0, buffer.length);
60 if (len > 0)
61 out.write(buffer, 0, len);
62 } while (len >= 0);
63 }
64 return new String(out.toByteArray());
65 }
66 }
67 }
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.docker.editor.ls</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
4 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
6 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
18 sp_cleanup.correct_indentation=false
19 sp_cleanup.format_source_code=true
20 sp_cleanup.format_source_code_changes_only=false
21 sp_cleanup.insert_inferred_type_arguments=false
22 sp_cleanup.lazy_logical_operator=false
23 sp_cleanup.make_local_variable_final=true
24 sp_cleanup.make_parameters_final=false
25 sp_cleanup.make_private_fields_final=true
26 sp_cleanup.make_type_abstract_if_missing_method=false
27 sp_cleanup.make_variable_declarations_final=false
28 sp_cleanup.merge_conditional_blocks=false
29 sp_cleanup.never_use_blocks=false
30 sp_cleanup.never_use_parentheses_in_expressions=true
31 sp_cleanup.number_suffix=false
32 sp_cleanup.on_save_use_additional_actions=true
33 sp_cleanup.organize_imports=true
34 sp_cleanup.push_down_negation=false
35 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
36 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
37 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
38 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
39 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
40 sp_cleanup.remove_private_constructors=true
41 sp_cleanup.remove_redundant_modifiers=true
42 sp_cleanup.remove_redundant_semicolons=true
43 sp_cleanup.remove_redundant_type_arguments=true
44 sp_cleanup.remove_trailing_whitespaces=true
45 sp_cleanup.remove_trailing_whitespaces_all=true
46 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
47 sp_cleanup.remove_unnecessary_array_creation=true
48 sp_cleanup.remove_unnecessary_casts=true
49 sp_cleanup.remove_unnecessary_nls_tags=false
50 sp_cleanup.remove_unused_imports=false
51 sp_cleanup.remove_unused_local_variables=false
52 sp_cleanup.remove_unused_private_fields=true
53 sp_cleanup.remove_unused_private_members=false
54 sp_cleanup.remove_unused_private_methods=true
55 sp_cleanup.remove_unused_private_types=true
56 sp_cleanup.simplify_lambda_expression_and_method_ref=true
57 sp_cleanup.sort_members=false
58 sp_cleanup.sort_members_all=false
59 sp_cleanup.use_anonymous_class_creation=false
60 sp_cleanup.use_autoboxing=false
61 sp_cleanup.use_blocks=false
62 sp_cleanup.use_blocks_only_for_return_and_throw=false
63 sp_cleanup.use_directly_map_method=true
64 sp_cleanup.use_lambda=true
65 sp_cleanup.use_parentheses_in_expressions=false
66 sp_cleanup.use_this_for_non_static_field_access=false
67 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
68 sp_cleanup.use_this_for_non_static_method_access=false
69 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
70 sp_cleanup.use_unboxing=false
71 sp_cleanup.use_var=false
0 compilers.f.unresolved-features=1
1 compilers.f.unresolved-plugins=1
2 compilers.incompatible-environment=1
3 compilers.p.build=1
4 compilers.p.build.bin.includes=1
5 compilers.p.build.encodings=2
6 compilers.p.build.java.compiler=2
7 compilers.p.build.java.compliance=1
8 compilers.p.build.missing.output=2
9 compilers.p.build.output.library=1
10 compilers.p.build.source.library=1
11 compilers.p.build.src.includes=1
12 compilers.p.deprecated=1
13 compilers.p.discouraged-class=1
14 compilers.p.internal=1
15 compilers.p.missing-packages=2
16 compilers.p.missing-version-export-package=2
17 compilers.p.missing-version-import-package=2
18 compilers.p.missing-version-require-bundle=2
19 compilers.p.no-required-att=0
20 compilers.p.no.automatic.module=1
21 compilers.p.not-externalized-att=2
22 compilers.p.service.component.without.lazyactivation=1
23 compilers.p.unknown-attribute=1
24 compilers.p.unknown-class=1
25 compilers.p.unknown-element=1
26 compilers.p.unknown-identifier=1
27 compilers.p.unknown-resource=1
28 compilers.p.unresolved-ex-points=0
29 compilers.p.unresolved-import=0
30 compilers.s.create-docs=false
31 compilers.s.doc-folder=doc
32 compilers.s.open-tags=1
33 eclipse.preferences.version=1
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: Dockerfile Language Server Client
3 Bundle-SymbolicName: org.eclipse.linuxtools.docker.editor.ls;singleton:=true
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-Vendor: Eclipse
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
7 Bundle-ActivationPolicy: lazy
8 Require-Bundle: org.eclipse.lsp4e;bundle-version="0.11.0",
9 org.eclipse.ui.genericeditor;bundle-version="1.0.0",
10 org.eclipse.ui,
11 org.eclipse.core.contenttype,
12 org.eclipse.tm4e.registry;bundle-version="0.1.0",
13 org.eclipse.tm4e.ui;bundle-version="0.1.0",
14 org.eclipse.core.runtime;bundle-version="3.13.0",
15 org.eclipse.wildwebdeveloper.embedder.node
16 Eclipse-BundleShape: dir
17 Automatic-Module-Name: org.eclipse.linuxtools.docker.editor.ls
0 source.. = src/
1 output.. = target/classes/
2 bin.includes = META-INF/,\
3 .,\
4 plugin.xml,\
5 grammars/,\
6 language-server/,\
7 icons/
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
2 <plist version="1.0">
3 <dict>
4 <key>fileTypes</key>
5 <array>
6 <string>Dockerfile</string>
7 </array>
8 <key>name</key>
9 <string>Dockerfile</string>
10 <key>patterns</key>
11 <array>
12 <dict>
13 <key>captures</key>
14 <dict>
15 <key>1</key>
16 <dict>
17 <key>name</key>
18 <string>keyword.other.special-method.dockerfile</string>
19 </dict>
20 <key>2</key>
21 <dict>
22 <key>name</key>
23 <string>keyword.other.special-method.dockerfile</string>
24 </dict>
25 </dict>
26 <key>match</key>
27 <string>^\s*\b(?i:(FROM))\b.*?\b(?i:(AS))\b</string>
28 </dict>
29 <dict>
30 <key>captures</key>
31 <dict>
32 <key>1</key>
33 <dict>
34 <key>name</key>
35 <string>keyword.control.dockerfile</string>
36 </dict>
37 <key>2</key>
38 <dict>
39 <key>name</key>
40 <string>keyword.other.special-method.dockerfile</string>
41 </dict>
42 </dict>
43 <key>match</key>
44 <string>^\s*(?i:(ONBUILD)\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\s</string>
45 </dict>
46 <dict>
47 <key>captures</key>
48 <dict>
49 <key>1</key>
50 <dict>
51 <key>name</key>
52 <string>keyword.operator.dockerfile</string>
53 </dict>
54 <key>2</key>
55 <dict>
56 <key>name</key>
57 <string>keyword.other.special-method.dockerfile</string>
58 </dict>
59 </dict>
60 <key>match</key>
61 <string>^\s*(?i:(ONBUILD)\s+)?(?i:(CMD|ENTRYPOINT))\s</string>
62 </dict>
63 <dict>
64 <key>begin</key>
65 <string>"</string>
66 <key>beginCaptures</key>
67 <dict>
68 <key>1</key>
69 <dict>
70 <key>name</key>
71 <string>punctuation.definition.string.begin.dockerfile</string>
72 </dict>
73 </dict>
74 <key>end</key>
75 <string>"</string>
76 <key>endCaptures</key>
77 <dict>
78 <key>1</key>
79 <dict>
80 <key>name</key>
81 <string>punctuation.definition.string.end.dockerfile</string>
82 </dict>
83 </dict>
84 <key>name</key>
85 <string>string.quoted.double.dockerfile</string>
86 <key>patterns</key>
87 <array>
88 <dict>
89 <key>match</key>
90 <string>\\.</string>
91 <key>name</key>
92 <string>constant.character.escaped.dockerfile</string>
93 </dict>
94 </array>
95 </dict>
96 <dict>
97 <key>begin</key>
98 <string>'</string>
99 <key>beginCaptures</key>
100 <dict>
101 <key>1</key>
102 <dict>
103 <key>name</key>
104 <string>punctuation.definition.string.begin.dockerfile</string>
105 </dict>
106 </dict>
107 <key>end</key>
108 <string>'</string>
109 <key>endCaptures</key>
110 <dict>
111 <key>1</key>
112 <dict>
113 <key>name</key>
114 <string>punctuation.definition.string.end.dockerfile</string>
115 </dict>
116 </dict>
117 <key>name</key>
118 <string>string.quoted.single.dockerfile</string>
119 <key>patterns</key>
120 <array>
121 <dict>
122 <key>match</key>
123 <string>\\.</string>
124 <key>name</key>
125 <string>constant.character.escaped.dockerfile</string>
126 </dict>
127 </array>
128 </dict>
129 <dict>
130 <key>captures</key>
131 <dict>
132 <key>1</key>
133 <dict>
134 <key>name</key>
135 <string>punctuation.whitespace.comment.leading.dockerfile</string>
136 </dict>
137 <key>2</key>
138 <dict>
139 <key>name</key>
140 <string>comment.line.number-sign.dockerfile</string>
141 </dict>
142 <key>3</key>
143 <dict>
144 <key>name</key>
145 <string>punctuation.definition.comment.dockerfile</string>
146 </dict>
147 </dict>
148 <key>comment</key>
149 <string>comment.line</string>
150 <key>match</key>
151 <string>^(\s*)((#).*$\n?)</string>
152 </dict>
153 </array>
154 <key>scopeName</key>
155 <string>source.dockerfile</string>
156 <key>uuid</key>
157 <string>a39d8795-59d2-49af-aa00-fe74ee29576e</string>
158 </dict>
159 </plist>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.4"?>
2 <plugin>
3 <extension
4 point="org.eclipse.lsp4e.languageServer">
5 <server
6 class="org.eclipse.linuxtools.docker.editor.ls.DockerfileLanguageServer"
7 id="org.eclipse.linuxtools.docker.editor.ls.server"
8 label="Dockerfile Language Server">
9 </server>
10 <contentTypeMapping
11 contentType="org.eclipse.linuxtools.docker.editor.ls"
12 languageId="Dockerfile"
13 id="org.eclipse.linuxtools.docker.editor.ls.server">
14 </contentTypeMapping>
15 </extension>
16 <extension
17 point="org.eclipse.ui.editors">
18 <editorContentTypeBinding
19 contentTypeId="org.eclipse.linuxtools.docker.editor.ls"
20 editorId="org.eclipse.ui.genericeditor.GenericEditor">
21 </editorContentTypeBinding>
22 </extension>
23 <extension
24 point="org.eclipse.core.contenttype.contentTypes">
25 <content-type
26 base-type="org.eclipse.core.runtime.text"
27 file-extensions="Dockerfile,dockerfile"
28 file-names="Dockerfile"
29 id="org.eclipse.linuxtools.docker.editor.ls"
30 name="Dockerfile"
31 priority="normal">
32 </content-type>
33 </extension>
34 <extension
35 point="org.eclipse.tm4e.registry.grammars">
36 <grammar
37 path="grammars/Dockerfile.tmLanguage"
38 scopeName="source.dockerfile">
39 </grammar>
40 <scopeNameContentTypeBinding
41 contentTypeId="org.eclipse.linuxtools.docker.editor.ls"
42 scopeName="source.dockerfile">
43 </scopeNameContentTypeBinding>
44 </extension>
45 <extension
46 point="org.eclipse.ui.genericeditor.presentationReconcilers">
47 <presentationReconciler
48 class="org.eclipse.tm4e.ui.text.TMPresentationReconciler"
49 contentType="org.eclipse.linuxtools.docker.editor.ls">
50 </presentationReconciler>
51 </extension>
52 <extension point="org.eclipse.ui.genericeditor.icons">
53 <icon contentType="org.eclipse.linuxtools.docker.editor.ls" icon="icons/dockerfile.png" />
54 </extension>
55
56 </plugin>
0 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2 <modelVersion>4.0.0</modelVersion>
3 <parent>
4 <groupId>org.eclipse.linuxtools</groupId>
5 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>5.1.0</version>
7 </parent>
8 <artifactId>org.eclipse.linuxtools.docker.editor.ls</artifactId>
9 <version>1.0.0-SNAPSHOT</version>
10 <packaging>eclipse-plugin</packaging>
11
12 <build>
13 <plugins>
14 <plugin>
15 <groupId>org.apache.maven.plugins</groupId>
16 <artifactId>maven-clean-plugin</artifactId>
17 <version>3.1.0</version>
18 <configuration>
19 <filesets>
20 <fileset>
21 <directory>language-server/</directory>
22 </fileset>
23 </filesets>
24 </configuration>
25 </plugin>
26 <plugin>
27 <groupId>org.codehaus.mojo</groupId>
28 <artifactId>exec-maven-plugin</artifactId>
29 <version>1.6.0</version>
30 <executions>
31 <execution>
32 <id>npm-install</id>
33 <goals>
34 <goal>exec</goal>
35 </goals>
36 <phase>generate-resources</phase>
37 <configuration>
38 <executable>npm</executable>
39 <arguments>
40 <arg>install</arg>
41 <arg>--no-bin-links</arg>
42 <arg>dockerfile-language-server-nodejs@0.1.1</arg>
43 </arguments>
44 <workingDirectory>language-server/</workingDirectory>
45 </configuration>
46 </execution>
47 </executions>
48 </plugin>
49 </plugins>
50 </build>
51
52 </project>
0 /*******************************************************************************
1 * Copyright (c) 2017 Red Hat Inc. and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.docker.editor.ls;
10
11 import java.io.File;
12 import java.io.IOException;
13 import java.net.URL;
14 import java.util.ArrayList;
15 import java.util.List;
16
17 import org.eclipse.core.runtime.FileLocator;
18 import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider;
19
20 public class DockerfileLanguageServer extends ProcessStreamConnectionProvider {
21
22 final static String PATH = "/language-server/node_modules/dockerfile-language-server-nodejs/lib/server.js"; //$NON-NLS-1$
23
24 public DockerfileLanguageServer() {
25 List<String> command = new ArrayList<> ();
26 try {
27 URL url = FileLocator.toFileURL(getClass().getResource(PATH));
28 String resourcePath = new File (url.getPath()).getAbsolutePath();
29 String nodePath = InitializeLaunchConfigurations.getNodeJsLocation();
30 if (nodePath != null) {
31 command.add(nodePath);
32 command.add(resourcePath);
33 command.add("--stdio"); //$NON-NLS-1$
34 setCommands(command);
35 setWorkingDirectory(System.getProperty("user.dir")); //$NON-NLS-1$
36 }
37 } catch (IOException e) {
38 e.printStackTrace();
39 }
40 }
41
42 }
0 /*******************************************************************************
1 * Copyright (c) 2016 Red Hat Inc. and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *******************************************************************************/
9 package org.eclipse.linuxtools.docker.editor.ls;
10
11 import java.io.BufferedReader;
12 import java.io.File;
13 import java.io.IOException;
14 import java.io.InputStreamReader;
15 import java.nio.file.Files;
16 import java.nio.file.Paths;
17
18 import org.eclipse.core.runtime.Platform;
19 import org.eclipse.jface.dialogs.MessageDialog;
20 import org.eclipse.swt.widgets.Display;
21 import org.eclipse.wildwebdeveloper.embedder.node.NodeJSManager;
22
23 public class InitializeLaunchConfigurations {
24
25 private static boolean alreadyWarned;
26
27 public static String getNodeJsLocation() {
28
29 File nodeJsRuntime = NodeJSManager.getNodeJsLocation();
30 if (nodeJsRuntime != null) {
31 return nodeJsRuntime.getAbsolutePath();
32 }
33
34 String res = null;
35 String[] command = new String[] { "/bin/bash", "-c", "which node" };
36 if (Platform.getOS().equals(Platform.OS_WIN32)) {
37 command = new String[] { "cmd", "/c", "where node" };
38 }
39
40 BufferedReader reader = null;
41 try {
42 Process p = Runtime.getRuntime().exec(command);
43 reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
44 res = reader.readLine();
45 } catch (IOException e) {
46 // try other defaults
47 }
48
49 // Try default install path as last resort
50 if (res == null && Platform.getOS().equals(Platform.OS_MACOSX)) {
51 res = "/usr/local/bin/node";
52 }
53
54 if (res != null && Files.exists(Paths.get(res))) {
55 return res;
56 } else if (!alreadyWarned) {
57 warnNodeJSMissing();
58 alreadyWarned = true;
59 }
60
61 return null;
62 }
63
64 private static void warnNodeJSMissing() {
65 Display.getDefault().asyncExec(() -> {
66 MessageDialog.openWarning(Display.getCurrent().getActiveShell(), "Missing node.js",
67 "Could not find node.js. This will result in editors missing key features.\n"
68 + "Please make sure node.js is installed and that your PATH environement variable contains the location to the `node` executable.");
69 });
70 }
71
72 }
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.docker.editor.ls-feature</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.pde.FeatureBuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 </buildSpec>
13 <natures>
14 <nature>org.eclipse.pde.FeatureNature</nature>
15 </natures>
16 </projectDescription>
0 bin.includes = feature.xml,\
1 feature.properties
2 src.includes = build.properties,\
3 feature.properties,\
4 feature.xml,\
5 .project
0 # features.properties
1 # contains externalized strings for feature.xml
2 # "%foo" in feature.xml corresponds to the key "foo" in this file
3 # java.io.Properties file (ISO 8859-1 with "\" escapes)
4 # This file should be translated.
5
6 featureProvider=Eclipse Linux Tools
7 featureName=Docker Tooling Editor
8 featureDescription=The Docker Tooling Editor feature provides content assist and syntax highlighting when editing Dockerfiles.
9 copyright=Copyright 2019, 2020 Red Hat, Inc.
0 <?xml version="1.0" encoding="UTF-8"?>
1 <feature
2 id="org.eclipse.linuxtools.docker.editor.ls.feature"
3 label="%featureName"
4 version="5.1.0.qualifier"
5 provider-name="%featureProvider"
6 license-feature="org.eclipse.license"
7 license-feature-version="0.0.0">
8
9 <description url="http://www.eclipse.org/linuxtools">
10 %featureDescription
11 </description>
12
13 <copyright url="http://www.redhat.com">
14 %copyright
15 </copyright>
16
17 <license url="%licenseURL">
18 %license
19 </license>
20
21 <url>
22 <update label="Linux Tools Docker Update Site" url="http://download.eclipse.org/linuxtools/update-docker"/>
23 </url>
24
25 <plugin
26 id="org.eclipse.linuxtools.docker.editor.ls"
27 download-size="0"
28 install-size="0"
29 version="0.0.0"/>
30
31 </feature>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2019, 2020 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13 <parent>
14 <groupId>org.eclipse.linuxtools</groupId>
15 <artifactId>org.eclipse.linuxtools.docker</artifactId>
16 <version>5.1.0</version>
17 </parent>
18
19 <artifactId>org.eclipse.linuxtools.docker.editor.ls.feature</artifactId>
20 <packaging>eclipse-feature</packaging>
21 <version>5.1.0-SNAPSHOT</version>
22
23 <name>Linux Tools Docker Tooling Editor Feature</name>
24
25 <build>
26 <plugins>
27 <plugin>
28 <groupId>org.eclipse.tycho.extras</groupId>
29 <artifactId>tycho-source-feature-plugin</artifactId>
30 <executions>
31 <execution>
32 <id>source-feature</id>
33 <phase>package</phase>
34 <goals>
35 <goal>source-feature</goal>
36 </goals>
37 </execution>
38 </executions>
39 </plugin>
40 <plugin>
41 <groupId>org.eclipse.tycho</groupId>
42 <artifactId>tycho-p2-plugin</artifactId>
43 <version>${tycho-version}</version>
44 <executions>
45 <execution>
46 <id>attached-p2-metadata</id>
47 <phase>package</phase>
48 <goals>
49 <goal>p2-metadata</goal>
50 </goals>
51 </execution>
52 </executions>
53 </plugin>
54 </plugins>
55 </build>
56
57 </project>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="output" path="bin"/>
10 </classpath>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.docker.editor.ls.tests</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.jdt.core.javanature</nature>
25 <nature>org.eclipse.pde.PluginNature</nature>
26 </natures>
27 </projectDescription>
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
4 org.eclipse.jdt.core.compiler.compliance=11
5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
6 org.eclipse.jdt.core.compiler.debug.localVariable=generate
7 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
8 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
9 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
10 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
12 org.eclipse.jdt.core.compiler.release=enabled
13 org.eclipse.jdt.core.compiler.source=11
0 compilers.f.unresolved-features=1
1 compilers.f.unresolved-plugins=1
2 compilers.incompatible-environment=1
3 compilers.p.build=1
4 compilers.p.build.bin.includes=1
5 compilers.p.build.encodings=2
6 compilers.p.build.java.compiler=2
7 compilers.p.build.java.compliance=1
8 compilers.p.build.missing.output=2
9 compilers.p.build.output.library=1
10 compilers.p.build.source.library=1
11 compilers.p.build.src.includes=1
12 compilers.p.deprecated=1
13 compilers.p.discouraged-class=1
14 compilers.p.internal=1
15 compilers.p.missing-packages=2
16 compilers.p.missing-version-export-package=2
17 compilers.p.missing-version-import-package=2
18 compilers.p.missing-version-require-bundle=2
19 compilers.p.no-required-att=0
20 compilers.p.no.automatic.module=1
21 compilers.p.not-externalized-att=2
22 compilers.p.service.component.without.lazyactivation=1
23 compilers.p.unknown-attribute=1
24 compilers.p.unknown-class=1
25 compilers.p.unknown-element=1
26 compilers.p.unknown-identifier=1
27 compilers.p.unknown-resource=1
28 compilers.p.unresolved-ex-points=0
29 compilers.p.unresolved-import=0
30 compilers.s.create-docs=false
31 compilers.s.doc-folder=doc
32 compilers.s.open-tags=1
33 eclipse.preferences.version=1
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: Tests
3 Bundle-SymbolicName: org.eclipse.linuxtools.docker.editor.ls.tests
4 Bundle-Version: 1.0.0.qualifier
5 Fragment-Host: org.eclipse.linuxtools.docker.editor.ls
6 Automatic-Module-Name: org.eclipse.linuxtools.docker.editor.ls.tests
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
8 Require-Bundle: org.eclipse.core.resources,
9 org.junit,
10 org.eclipse.ui.workbench,
11 org.eclipse.equinox.preferences,
12 org.eclipse.ui.workbench.texteditor,
13 org.eclipse.equinox.common,
14 org.eclipse.ui.ide,
15 org.eclipse.jface.text,
16 org.eclipse.ui.tests.harness,
17 org.eclipse.swt
0 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2 <modelVersion>4.0.0</modelVersion>
3 <parent>
4 <groupId>org.eclipse.linuxtools</groupId>
5 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>5.1.0</version>
7 </parent>
8 <artifactId>org.eclipse.linuxtools.docker.editor.ls.tests</artifactId>
9 <version>1.0.0-SNAPSHOT</version>
10 <packaging>eclipse-test-plugin</packaging>
11 <build>
12 <plugins>
13 <plugin>
14 <groupId>org.eclipse.tycho</groupId>
15 <artifactId>tycho-surefire-plugin</artifactId>
16 <version>${tycho-version}</version>
17 <configuration>
18 <useUIThread>true</useUIThread>
19 <useUIHarness>true</useUIHarness>
20 </configuration>
21 </plugin>
22 </plugins>
23 </build>
24 </project>
0 /*******************************************************************************
1 * Copyright (c) 2019 Red Hat Inc. and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat Inc. - initial implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.docker.editor.ls.tests;
13
14 import static org.junit.Assert.assertTrue;
15
16 import java.io.ByteArrayInputStream;
17
18 import org.eclipse.core.resources.IFile;
19 import org.eclipse.core.resources.IProject;
20 import org.eclipse.core.resources.IResource;
21 import org.eclipse.core.resources.ResourcesPlugin;
22 import org.eclipse.core.runtime.CoreException;
23 import org.eclipse.core.runtime.preferences.InstanceScope;
24 import org.eclipse.ui.IViewReference;
25 import org.eclipse.ui.IWorkbenchPage;
26 import org.eclipse.ui.PlatformUI;
27 import org.eclipse.ui.ide.IDE;
28 import org.eclipse.ui.preferences.ScopedPreferenceStore;
29 import org.eclipse.ui.tests.harness.util.DisplayHelper;
30 import org.eclipse.ui.texteditor.ITextEditor;
31 import org.junit.After;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35 import org.junit.runners.Parameterized;
36 import org.junit.runners.Parameterized.Parameter;
37 import org.junit.runners.Parameterized.Parameters;
38
39 @RunWith(Parameterized.class)
40 public class TestLanguageServers {
41
42 private IProject project;
43
44 @Parameter
45 public String fileName;
46
47 @Before
48 public void setUpProject() throws Exception {
49 ScopedPreferenceStore prefs = new ScopedPreferenceStore(InstanceScope.INSTANCE, "org.eclipse.lsp4e");
50 prefs.putValue("org.eclipse.linuxtools.docker.editor.ls.server.logging.enabled", Boolean.toString(true));
51 this.project = ResourcesPlugin.getWorkspace().getRoot().getProject(getClass().getName() + System.nanoTime());
52 project.create(null);
53 project.open(null);
54 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
55 for (IViewReference ref : activePage.getViewReferences()) {
56 activePage.hideView(ref);
57 }
58 }
59
60 @After
61 public void deleteProjectAndCloseEditors() throws Exception {
62 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
63 this.project.delete(true, null);
64 }
65
66 @Parameters
67 public static Object[] data() {
68 return new Object[] { "test.dockerfile", "Dockerfile" };
69 }
70
71 @Test
72 public void testDiagnostics() throws Exception {
73 final IFile file = project.getFile(fileName);
74 file.create(new ByteArrayInputStream("".getBytes()), true, null);
75 ITextEditor editor = (ITextEditor) IDE
76 .openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file, "org.eclipse.ui.genericeditor.GenericEditor");
77 editor.getDocumentProvider().getDocument(editor.getEditorInput()).set("MAINTAINER alex");
78 assertTrue("Diagnostic not published", new DisplayHelper() {
79 @Override
80 protected boolean condition() {
81 try {
82 return file.findMarkers("org.eclipse.lsp4e.diagnostic", true, IResource.DEPTH_ZERO).length != 0;
83 } catch (CoreException e) {
84 return false;
85 }
86 }
87 }.waitForCondition(PlatformUI.getWorkbench().getDisplay(), 5000));
88 }
89 }
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/">
55 <attributes>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
22 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
3 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
44 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 org.eclipse.jdt.core.compiler.compliance=1.8
5 org.eclipse.jdt.core.compiler.compliance=11
66 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
77 org.eclipse.jdt.core.compiler.debug.localVariable=generate
88 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
99 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
1011 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 org.eclipse.jdt.core.compiler.source=1.8
12 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
13 org.eclipse.jdt.core.compiler.release=enabled
14 org.eclipse.jdt.core.compiler.source=11
2323 org.apache.commons.lang,
2424 org.eclipse.linuxtools.docker.core,
2525 org.mockito,
26 com.spotify.docker.client;bundle-version="[8.9.2,9.0.0)",
26 org.mandas.docker-client;bundle-version="3.2.1",
2727 org.eclipse.linuxtools.docker.ui.tests,
2828 org.eclipse.ui.console,
2929 org.eclipse.ui,
3030 org.eclipse.swt,
31 com.google.guava;bundle-version="21.0.0",
32 javax.xml.bind;bundle-version="2.2.0"
33 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
31 com.google.guava;bundle-version="21.0.0"
32 Bundle-RequiredExecutionEnvironment: JavaSE-11
3433 Bundle-ActivationPolicy: lazy
35 Import-Package: org.eclipse.debug.core,
34 Import-Package: javax.xml.bind;version="2.3.3",
35 org.eclipse.debug.core,
3636 org.eclipse.linuxtools.docker.reddeer,
3737 org.eclipse.linuxtools.docker.reddeer.condition,
3838 org.eclipse.linuxtools.docker.reddeer.core.ui.wizards,
4141 org.eclipse.linuxtools.docker.reddeer.ui,
4242 org.eclipse.linuxtools.docker.reddeer.ui.resources,
4343 org.eclipse.linuxtools.docker.reddeer.utils,
44 org.hamcrest;version="1.3.0"
44 org.hamcrest;version="1.3.0",
45 javax.annotation;version="1.3.5"
4546 Automatic-Module-Name: org.eclipse.linuxtools.docker.integration.tests
4647
4748
00 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
11 <launchConfiguration type="org.eclipse.reddeer.eclipse.ui.launcher.JunitLaunchConfig">
2 <setAttribute key="additional_plugins">
3 <setEntry value="com.spotify.docker.client:6.1.1.v20170301-1624:default:true"/>
4 <setEntry value="org.apache.httpcomponents.httpclient:4.5.2.v20170210-0925:default:true"/>
5 <setEntry value="org.apache.httpcomponents.httpcore:4.4.6.v20170210-0925:default:true"/>
6 <setEntry value="org.eclipse.linuxtools.docker.core:3.1.0.qualifier:default:true"/>
7 <setEntry value="org.eclipse.linuxtools.docker.editor:1.0.0.qualifier:default:true"/>
8 <setEntry value="org.eclipse.linuxtools.docker.integration.tests:1.0.0.qualifier:default:true"/>
9 <setEntry value="org.eclipse.linuxtools.docker.reddeer:1.0.0.qualifier:default:true"/>
10 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap:1.2.0.qualifier:default:true"/>
11 <setEntry value="org.eclipse.linuxtools.docker.ui.tests:2.1.0.qualifier:default:true"/>
12 <setEntry value="org.eclipse.linuxtools.docker.ui:3.1.0.qualifier:default:true"/>
13 <setEntry value="org.slf4j.api:1.7.2.v20121108-1250:default:true"/>
14 </setAttribute>
15 <booleanAttribute key="append.args" value="true"/>
16 <stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
17 <booleanAttribute key="askclear" value="false"/>
18 <booleanAttribute key="automaticAdd" value="true"/>
19 <booleanAttribute key="automaticValidate" value="true"/>
20 <stringAttribute key="bootstrap" value=""/>
21 <stringAttribute key="checked" value="[NONE]"/>
22 <booleanAttribute key="clearConfig" value="true"/>
23 <booleanAttribute key="clearws" value="true"/>
24 <booleanAttribute key="clearwslog" value="false"/>
25 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
26 <booleanAttribute key="default" value="false"/>
27 <stringAttribute key="featureDefaultLocation" value="workspace"/>
28 <stringAttribute key="featurePluginResolution" value="workspace"/>
29 <booleanAttribute key="includeOptional" value="true"/>
30 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
31 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
32 <listEntry value="/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java"/>
33 </listAttribute>
34 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
35 <listEntry value="1"/>
36 </listAttribute>
37 <mapAttribute key="org.eclipse.debug.core.environmentVariables">
38 <mapEntry key="DISPLAY" value=":2"/>
39 </mapAttribute>
40 <stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
41 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
42 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
43 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
44 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
45 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.linuxtools.docker.integration.tests.DockerAllBotTest"/>
46 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/>
47 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.linuxtools.docker.integration.tests"/>
48 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
49 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DdockerMockito=false -DunixSocket=unix:///var/run/docker.sock -Dusage_reporting_enabled=false -DdockerHubUsername=test -DdockerHubEmail=test@test.com -DdockerHubPassword=password -DdockerComposePath=//testpath"/>
50 <stringAttribute key="pde.version" value="3.3"/>
51 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
52 <stringAttribute key="rd.launch.property.rd.captureScreenshot" value="true"/>
53 <stringAttribute key="rd.launch.property.rd.closeShells" value="true"/>
54 <stringAttribute key="rd.launch.property.rd.closeWelcomeScreen" value="true"/>
55 <stringAttribute key="rd.launch.property.rd.disableMavenIndex" value="true"/>
56 <stringAttribute key="rd.launch.property.rd.logCollectorEnabled" value="true"/>
57 <stringAttribute key="rd.launch.property.rd.logLevel" value="ALL"/>
58 <stringAttribute key="rd.launch.property.rd.logMessageFilter" value="ALL"/>
59 <stringAttribute key="rd.launch.property.rd.openAssociatedPerspective" value="never"/>
60 <stringAttribute key="rd.launch.property.rd.pauseFailedTest" value="false"/>
61 <stringAttribute key="rd.launch.property.rd.timePeriodFactor" value="1.0"/>
62 <setAttribute key="selected_features">
63 <setEntry value="org.eclipse.cdt.autotools:default"/>
64 <setEntry value="org.eclipse.cdt.gdb:default"/>
65 <setEntry value="org.eclipse.cdt.gnu.build:default"/>
66 <setEntry value="org.eclipse.cdt.gnu.debug:default"/>
67 <setEntry value="org.eclipse.cdt.gnu.dsf:default"/>
68 <setEntry value="org.eclipse.cdt.native:default"/>
69 <setEntry value="org.eclipse.cdt.platform:default"/>
70 <setEntry value="org.eclipse.cdt:default"/>
71 <setEntry value="org.eclipse.draw2d:default"/>
72 <setEntry value="org.eclipse.e4.rcp:default"/>
73 <setEntry value="org.eclipse.ecf.core.feature:default"/>
74 <setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
75 <setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
76 <setEntry value="org.eclipse.ecf.filetransfer.httpclient4.feature:default"/>
77 <setEntry value="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:default"/>
78 <setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
79 <setEntry value="org.eclipse.emf.common:default"/>
80 <setEntry value="org.eclipse.emf.ecore:default"/>
81 <setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
82 <setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
83 <setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
84 <setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
85 <setEntry value="org.eclipse.help:default"/>
86 <setEntry value="org.eclipse.jgit:default"/>
87 <setEntry value="org.eclipse.launchbar:default"/>
88 <setEntry value="org.eclipse.license:default"/>
89 <setEntry value="org.eclipse.linuxtools.docker.feature:default"/>
90 <setEntry value="org.eclipse.platform:default"/>
91 <setEntry value="org.eclipse.ptp.rdt.sync:default"/>
92 <setEntry value="org.eclipse.rcp:default"/>
93 <setEntry value="org.eclipse.remote:default"/>
94 <setEntry value="org.eclipse.swtbot.eclipse:default"/>
95 <setEntry value="org.eclipse.swtbot.forms:default"/>
96 <setEntry value="org.eclipse.swtbot:default"/>
97 <setEntry value="org.eclipse.tm.terminal.connector.local.feature:default"/>
98 <setEntry value="org.eclipse.tm.terminal.connector.ssh.feature:default"/>
99 <setEntry value="org.eclipse.tm.terminal.connector.telnet.feature:default"/>
100 <setEntry value="org.eclipse.tm.terminal.control.feature:default"/>
101 <setEntry value="org.eclipse.tm.terminal.feature:default"/>
102 <setEntry value="org.eclipse.tm.terminal.view.feature:default"/>
103 <setEntry value="org.eclipse.zest:default"/>
104 <setEntry value="org.jboss.reddeer.eclipse.feature:default"/>
105 <setEntry value="org.jboss.reddeer.junit.extension.feature:default"/>
106 <setEntry value="org.jboss.reddeer.ui.feature:default"/>
107 </setAttribute>
108 <stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-guava@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.github.jnr.constants@default:default,com.github.jnr.enxio@default:default,com.github.jnr.ffi@default:default,com.github.jnr.jffi.native@default:false,com.github.jnr.jffi@default:default,com.github.jnr.posix@default:default,com.github.jnr.unixsocket@default:default,com.google.gson@default:default,com.google.guava@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.spotify.docker.client@default:true,com.sun.el@default:default,javaewah@default:default,javassist@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.ws.rs@default:default,javax.xml@default:default,jnr.x86asm@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.compress@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang3.source@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient*4.3.6.v201511171540@default:default,org.apache.httpcomponents.httpclient*4.5.2.v20161115-1643@default:default,org.apache.httpcomponents.httpcore*4.3.3.v201411290715@default:default,org.apache.httpcomponents.httpcore*4.4.4.v20161115-1643@default:default,org.apache.jasper.glassfish@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.assertj@default:default,org.bouncycastle.bcpkix@default:default,org.bouncycastle.bcprov@default:default,org.cyberneko.html@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.autotools.core@default:default,org.eclipse.cdt.autotools.docs@default:default,org.eclipse.cdt.autotools.ui@default:default,org.eclipse.cdt.build.gcc.core@default:default,org.eclipse.cdt.codan.checkers.ui@default:default,org.eclipse.cdt.codan.checkers@default:default,org.eclipse.cdt.codan.core.cxx@default:default,org.eclipse.cdt.codan.core@default:default,org.eclipse.cdt.codan.ui.cxx@default:default,org.eclipse.cdt.codan.ui@default:default,org.eclipse.cdt.core.linux.x86_64@default:false,org.eclipse.cdt.core.linux@default:false,org.eclipse.cdt.core.native@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.debug.core@default:default,org.eclipse.cdt.debug.ui@default:default,org.eclipse.cdt.doc.user@default:default,org.eclipse.cdt.dsf.gdb.ui@default:default,org.eclipse.cdt.dsf.gdb@default:default,org.eclipse.cdt.dsf.ui@default:default,org.eclipse.cdt.dsf@default:default,org.eclipse.cdt.gdb.ui@default:default,org.eclipse.cdt.gdb@default:default,org.eclipse.cdt.launch@default:default,org.eclipse.cdt.make.core@default:default,org.eclipse.cdt.make.ui@default:default,org.eclipse.cdt.managedbuilder.core@default:default,org.eclipse.cdt.managedbuilder.gnu.ui@default:default,org.eclipse.cdt.managedbuilder.ui@default:default,org.eclipse.cdt.native.serial@default:default,org.eclipse.cdt.remote.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.cdt@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.dstore.core@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit.archive@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.launchbar.core@default:default,org.eclipse.launchbar.ui.controls@default:default,org.eclipse.launchbar.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.ptp.rdt.sync.core@default:default,org.eclipse.ptp.rdt.sync.git.core@default:default,org.eclipse.ptp.rdt.sync.git.ui@default:default,org.eclipse.ptp.rdt.sync.ui@default:default,org.eclipse.rcp@default:default,org.eclipse.remote.console@default:default,org.eclipse.remote.core@default:default,org.eclipse.remote.doc.isv@default:default,org.eclipse.remote.jsch.core@default:default,org.eclipse.remote.jsch.ui@default:default,org.eclipse.remote.serial.core@default:default,org.eclipse.remote.serial.ui@default:default,org.eclipse.remote.telnet.core@default:default,org.eclipse.remote.telnet.ui@default:default,org.eclipse.remote.ui@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.e4.finder@default:default,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tm.terminal.connector.local@default:default,org.eclipse.tm.terminal.connector.process@default:default,org.eclipse.tm.terminal.connector.serial@default:default,org.eclipse.tm.terminal.connector.ssh@default:default,org.eclipse.tm.terminal.connector.telnet@default:default,org.eclipse.tm.terminal.control@default:default,org.eclipse.tm.terminal.view.core@default:default,org.eclipse.tm.terminal.view.ui@default:default,org.eclipse.tools.templates.core@default:default,org.eclipse.tools.templates.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.wb.core.lib@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.server.discovery@default:default,org.eclipse.wst.server.ui@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.glassfish.hk2.api@default:default,org.glassfish.hk2.locator@default:default,org.glassfish.hk2.osgi-resource-locator@default:default,org.glassfish.hk2.utils@default:default,org.glassfish.jersey.apache.connector@default:default,org.glassfish.jersey.bundles.repackaged.jersey-guava@default:default,org.glassfish.jersey.core.jersey-client@default:default,org.glassfish.jersey.core.jersey-common@default:default,org.glassfish.jersey.core.jersey-server@default:default,org.glassfish.jersey.ext.entityfiltering@default:default,org.glassfish.jersey.media.jersey-media-json-jackson@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.jboss.reddeer.common@default:default,org.jboss.reddeer.core@default:default,org.jboss.reddeer.direct@default:default,org.jboss.reddeer.eclipse@default:default,org.jboss.reddeer.gef@default:default,org.jboss.reddeer.go@default:default,org.jboss.reddeer.jface@default:default,org.jboss.reddeer.junit.extension@default:default,org.jboss.reddeer.junit@default:default,org.jboss.reddeer.requirements@default:default,org.jboss.reddeer.swt@default:default,org.jboss.reddeer.ui@default:default,org.jboss.reddeer.uiforms@default:default,org.jboss.reddeer.workbench@default:default,org.junit@default:default,org.mockito@default:default,org.objectweb.asm.analysis@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm.util@default:default,org.objectweb.asm@default:default,org.objenesis@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api*1.7.10.v20160921-1923@default:default,org.slf4j.api*1.7.2.v20121108-1250@default:default,org.slf4j.impl.log4j12@default:false,org.swtchart@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
109 <stringAttribute key="selected_workspace_plugins" value="org.eclipse.linuxtools.docker.core@default:default,org.eclipse.linuxtools.docker.docs@default:default,org.eclipse.linuxtools.docker.editor@default:default,org.eclipse.linuxtools.docker.integration.tests@default:default,org.eclipse.linuxtools.docker.reddeer@default:default,org.eclipse.linuxtools.docker.tests.hamcrest-wrap@default:default,org.eclipse.linuxtools.docker.ui.tests@default:default,org.eclipse.linuxtools.docker.ui@default:default"/>
110 <booleanAttribute key="show_selected_only" value="false"/>
111 <booleanAttribute key="tracing" value="false"/>
112 <booleanAttribute key="useCustomFeatures" value="true"/>
113 <booleanAttribute key="useDefaultConfig" value="true"/>
114 <booleanAttribute key="useDefaultConfigArea" value="false"/>
115 <booleanAttribute key="useProduct" value="false"/>
2 <setAttribute key="additional_plugins">
3 <setEntry value="org.apache.httpcomponents.httpclient:4.5.10.v20200114-1512:default:true:default:default"/>
4 <setEntry value="org.apache.httpcomponents.httpcore:4.4.12.v20200108-1212:default:true:default:default"/>
5 <setEntry value="org.eclipse.linuxtools.docker.core:5.0.0.qualifier:default:true:default:default"/>
6 <setEntry value="org.eclipse.linuxtools.docker.integration.tests:2.2.0.qualifier:default:true:default:default"/>
7 <setEntry value="org.eclipse.linuxtools.docker.reddeer:2.2.0.qualifier:default:true:default:default"/>
8 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap:1.2.0.qualifier:default:true:default:default"/>
9 <setEntry value="org.eclipse.linuxtools.docker.ui.tests:2.2.0.qualifier:default:true:default:default"/>
10 <setEntry value="org.eclipse.linuxtools.docker.ui:5.0.0.qualifier:default:true:default:default"/>
11 <setEntry value="org.slf4j.api:1.7.2.v20121108-1250:default:true:default:default"/>
12 </setAttribute>
13 <booleanAttribute key="append.args" value="true"/>
14 <stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
15 <booleanAttribute key="askclear" value="false"/>
16 <booleanAttribute key="automaticAdd" value="true"/>
17 <booleanAttribute key="automaticValidate" value="true"/>
18 <stringAttribute key="bootstrap" value=""/>
19 <stringAttribute key="checked" value="[NONE]"/>
20 <booleanAttribute key="clearConfig" value="true"/>
21 <booleanAttribute key="clearws" value="true"/>
22 <booleanAttribute key="clearwslog" value="false"/>
23 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
24 <booleanAttribute key="default" value="false"/>
25 <stringAttribute key="featureDefaultLocation" value="workspace"/>
26 <stringAttribute key="featurePluginResolution" value="workspace"/>
27 <booleanAttribute key="includeOptional" value="true"/>
28 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
29 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
30 <listEntry value="/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java"/>
31 </listAttribute>
32 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
33 <listEntry value="1"/>
34 </listAttribute>
35 <mapAttribute key="org.eclipse.debug.core.environmentVariables">
36 <mapEntry key="DISPLAY" value=":2"/>
37 </mapAttribute>
38 <stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
39 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
40 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
41 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
42 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
43 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.linuxtools.docker.integration.tests.DockerAllBotTest"/>
44 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/>
45 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.linuxtools.docker.integration.tests"/>
46 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
47 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DdockerMockito=false -DunixSocket=unix:///var/run/docker.sock -Dusage_reporting_enabled=false -DdockerHubUsername=test -DdockerHubEmail=test@test.com -DdockerHubPassword=password -DdockerComposePath=//testpath"/>
48 <stringAttribute key="pde.version" value="3.3"/>
49 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
50 <stringAttribute key="rd.launch.property.rd.captureScreenshot" value="true"/>
51 <stringAttribute key="rd.launch.property.rd.closeShells" value="true"/>
52 <stringAttribute key="rd.launch.property.rd.closeWelcomeScreen" value="true"/>
53 <stringAttribute key="rd.launch.property.rd.defaultKey" value="org.eclipse.reddeer.widget.key"/>
54 <stringAttribute key="rd.launch.property.rd.disableMavenIndex" value="true"/>
55 <stringAttribute key="rd.launch.property.rd.logCollectorEnabled" value="true"/>
56 <stringAttribute key="rd.launch.property.rd.logLevel" value="ALL"/>
57 <stringAttribute key="rd.launch.property.rd.logMessageFilter" value="ALL"/>
58 <stringAttribute key="rd.launch.property.rd.maximizeWorkbench" value="true"/>
59 <stringAttribute key="rd.launch.property.rd.openAssociatedPerspective" value="never"/>
60 <stringAttribute key="rd.launch.property.rd.pauseFailedTest" value="false"/>
61 <stringAttribute key="rd.launch.property.rd.timePeriodFactor" value="1.0"/>
62 <setAttribute key="selected_features">
63 <setEntry value="org.eclipse.cdt.autotools:default"/>
64 <setEntry value="org.eclipse.cdt.gdb:default"/>
65 <setEntry value="org.eclipse.cdt.gnu.build:default"/>
66 <setEntry value="org.eclipse.cdt.gnu.debug:default"/>
67 <setEntry value="org.eclipse.cdt.gnu.dsf:default"/>
68 <setEntry value="org.eclipse.cdt.native:default"/>
69 <setEntry value="org.eclipse.cdt.platform:default"/>
70 <setEntry value="org.eclipse.cdt:default"/>
71 <setEntry value="org.eclipse.draw2d:default"/>
72 <setEntry value="org.eclipse.e4.rcp:default"/>
73 <setEntry value="org.eclipse.ecf.core.feature:default"/>
74 <setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
75 <setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
76 <setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
77 <setEntry value="org.eclipse.emf.common:default"/>
78 <setEntry value="org.eclipse.emf.ecore:default"/>
79 <setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
80 <setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
81 <setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
82 <setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
83 <setEntry value="org.eclipse.help:default"/>
84 <setEntry value="org.eclipse.jgit:default"/>
85 <setEntry value="org.eclipse.launchbar:default"/>
86 <setEntry value="org.eclipse.license:default"/>
87 <setEntry value="org.eclipse.linuxtools.docker.feature:default"/>
88 <setEntry value="org.eclipse.platform:default"/>
89 <setEntry value="org.eclipse.ptp.rdt.sync:default"/>
90 <setEntry value="org.eclipse.rcp:default"/>
91 <setEntry value="org.eclipse.remote:default"/>
92 <setEntry value="org.eclipse.swtbot.eclipse:default"/>
93 <setEntry value="org.eclipse.swtbot.forms:default"/>
94 <setEntry value="org.eclipse.swtbot:default"/>
95 <setEntry value="org.eclipse.tm.terminal.connector.local.feature:default"/>
96 <setEntry value="org.eclipse.tm.terminal.connector.ssh.feature:default"/>
97 <setEntry value="org.eclipse.tm.terminal.connector.telnet.feature:default"/>
98 <setEntry value="org.eclipse.tm.terminal.control.feature:default"/>
99 <setEntry value="org.eclipse.tm.terminal.feature:default"/>
100 <setEntry value="org.eclipse.tm.terminal.view.feature:default"/>
101 <setEntry value="org.eclipse.zest:default"/>
102 </setAttribute>
103 <setAttribute key="selected_target_bundles">
104 <setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>
105 <setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>
106 <setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>
107 <setEntry value="com.fasterxml.jackson.datatype.jackson-datatype-guava@default:default"/>
108 <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default"/>
109 <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default"/>
110 <setEntry value="com.github.jnr.constants@default:default"/>
111 <setEntry value="com.github.jnr.enxio@default:default"/>
112 <setEntry value="com.github.jnr.ffi@default:default"/>
113 <setEntry value="com.github.jnr.jffi.native@default:false"/>
114 <setEntry value="com.github.jnr.jffi@default:default"/>
115 <setEntry value="com.github.jnr.posix@default:default"/>
116 <setEntry value="com.github.jnr.unixsocket@default:default"/>
117 <setEntry value="com.google.gson@default:default"/>
118 <setEntry value="com.google.guava@default:default"/>
119 <setEntry value="com.ibm.icu@default:default"/>
120 <setEntry value="com.jcraft.jsch@default:default"/>
121 <setEntry value="com.sun.el@default:default"/>
122 <setEntry value="javaewah@default:default"/>
123 <setEntry value="javassist@default:default"/>
124 <setEntry value="javax.annotation@default:default"/>
125 <setEntry value="javax.el@default:default"/>
126 <setEntry value="javax.inject@default:default"/>
127 <setEntry value="javax.servlet.jsp@default:default"/>
128 <setEntry value="javax.servlet@default:default"/>
129 <setEntry value="javax.ws.rs@default:default"/>
130 <setEntry value="javax.xml@default:default"/>
131 <setEntry value="jnr.x86asm@default:default"/>
132 <setEntry value="org.aopalliance@default:default"/>
133 <setEntry value="org.apache.ant@default:default"/>
134 <setEntry value="org.apache.batik.css@default:default"/>
135 <setEntry value="org.apache.batik.util.gui@default:default"/>
136 <setEntry value="org.apache.batik.util@default:default"/>
137 <setEntry value="org.apache.commons.beanutils@default:default"/>
138 <setEntry value="org.apache.commons.codec@default:default"/>
139 <setEntry value="org.apache.commons.compress@default:default"/>
140 <setEntry value="org.apache.commons.io@default:default"/>
141 <setEntry value="org.apache.commons.jxpath@default:default"/>
142 <setEntry value="org.apache.commons.lang3.source@default:default"/>
143 <setEntry value="org.apache.commons.lang3@default:default"/>
144 <setEntry value="org.apache.commons.lang@default:default"/>
145 <setEntry value="org.apache.commons.logging@default:default"/>
146 <setEntry value="org.apache.felix.gogo.command@default:default"/>
147 <setEntry value="org.apache.felix.gogo.runtime@default:default"/>
148 <setEntry value="org.apache.felix.gogo.shell@default:default"/>
149 <setEntry value="org.apache.httpcomponents.httpclient*4.3.6.v201511171540@default:default"/>
150 <setEntry value="org.apache.httpcomponents.httpclient*4.5.2.v20161115-1643@default:default"/>
151 <setEntry value="org.apache.httpcomponents.httpcore*4.3.3.v201411290715@default:default"/>
152 <setEntry value="org.apache.httpcomponents.httpcore*4.4.4.v20161115-1643@default:default"/>
153 <setEntry value="org.apache.jasper.glassfish@default:default"/>
154 <setEntry value="org.apache.log4j@default:default"/>
155 <setEntry value="org.apache.lucene.analysis@default:default"/>
156 <setEntry value="org.apache.lucene.core@default:default"/>
157 <setEntry value="org.apache.xerces@default:default"/>
158 <setEntry value="org.apache.xml.resolver@default:default"/>
159 <setEntry value="org.apache.xml.serializer@default:default"/>
160 <setEntry value="org.assertj@default:default"/>
161 <setEntry value="org.bouncycastle.bcpkix@default:default"/>
162 <setEntry value="org.bouncycastle.bcprov@default:default"/>
163 <setEntry value="org.cyberneko.html@default:default"/>
164 <setEntry value="org.eclipse.ant.core@default:default"/>
165 <setEntry value="org.eclipse.ant.launching@default:default"/>
166 <setEntry value="org.eclipse.ant.ui@default:default"/>
167 <setEntry value="org.eclipse.cdt.autotools.core@default:default"/>
168 <setEntry value="org.eclipse.cdt.autotools.docs@default:default"/>
169 <setEntry value="org.eclipse.cdt.autotools.ui@default:default"/>
170 <setEntry value="org.eclipse.cdt.build.gcc.core@default:default"/>
171 <setEntry value="org.eclipse.cdt.codan.checkers.ui@default:default"/>
172 <setEntry value="org.eclipse.cdt.codan.checkers@default:default"/>
173 <setEntry value="org.eclipse.cdt.codan.core.cxx@default:default"/>
174 <setEntry value="org.eclipse.cdt.codan.core@default:default"/>
175 <setEntry value="org.eclipse.cdt.codan.ui.cxx@default:default"/>
176 <setEntry value="org.eclipse.cdt.codan.ui@default:default"/>
177 <setEntry value="org.eclipse.cdt.core.linux.x86_64@default:false"/>
178 <setEntry value="org.eclipse.cdt.core.linux@default:false"/>
179 <setEntry value="org.eclipse.cdt.core.native@default:default"/>
180 <setEntry value="org.eclipse.cdt.core@default:default"/>
181 <setEntry value="org.eclipse.cdt.debug.core@default:default"/>
182 <setEntry value="org.eclipse.cdt.debug.ui@default:default"/>
183 <setEntry value="org.eclipse.cdt.doc.user@default:default"/>
184 <setEntry value="org.eclipse.cdt.dsf.gdb.ui@default:default"/>
185 <setEntry value="org.eclipse.cdt.dsf.gdb@default:default"/>
186 <setEntry value="org.eclipse.cdt.dsf.ui@default:default"/>
187 <setEntry value="org.eclipse.cdt.dsf@default:default"/>
188 <setEntry value="org.eclipse.cdt.gdb.ui@default:default"/>
189 <setEntry value="org.eclipse.cdt.gdb@default:default"/>
190 <setEntry value="org.eclipse.cdt.launch@default:default"/>
191 <setEntry value="org.eclipse.cdt.make.core@default:default"/>
192 <setEntry value="org.eclipse.cdt.make.ui@default:default"/>
193 <setEntry value="org.eclipse.cdt.managedbuilder.core@default:default"/>
194 <setEntry value="org.eclipse.cdt.managedbuilder.gnu.ui@default:default"/>
195 <setEntry value="org.eclipse.cdt.managedbuilder.ui@default:default"/>
196 <setEntry value="org.eclipse.cdt.native.serial@default:default"/>
197 <setEntry value="org.eclipse.cdt.remote.core@default:default"/>
198 <setEntry value="org.eclipse.cdt.ui@default:default"/>
199 <setEntry value="org.eclipse.cdt@default:default"/>
200 <setEntry value="org.eclipse.compare.core@default:default"/>
201 <setEntry value="org.eclipse.compare@default:default"/>
202 <setEntry value="org.eclipse.core.commands@default:default"/>
203 <setEntry value="org.eclipse.core.contenttype@default:default"/>
204 <setEntry value="org.eclipse.core.databinding.beans@default:default"/>
205 <setEntry value="org.eclipse.core.databinding.observable@default:default"/>
206 <setEntry value="org.eclipse.core.databinding.property@default:default"/>
207 <setEntry value="org.eclipse.core.databinding@default:default"/>
208 <setEntry value="org.eclipse.core.expressions@default:default"/>
209 <setEntry value="org.eclipse.core.externaltools@default:default"/>
210 <setEntry value="org.eclipse.core.filebuffers@default:default"/>
211 <setEntry value="org.eclipse.core.filesystem.linux.x86_64@default:false"/>
212 <setEntry value="org.eclipse.core.filesystem@default:default"/>
213 <setEntry value="org.eclipse.core.jobs@default:default"/>
214 <setEntry value="org.eclipse.core.net.linux.x86_64@default:false"/>
215 <setEntry value="org.eclipse.core.net@default:default"/>
216 <setEntry value="org.eclipse.core.resources@default:default"/>
217 <setEntry value="org.eclipse.core.runtime@default:true"/>
218 <setEntry value="org.eclipse.core.variables@default:default"/>
219 <setEntry value="org.eclipse.debug.core@default:default"/>
220 <setEntry value="org.eclipse.debug.ui@default:default"/>
221 <setEntry value="org.eclipse.draw2d@default:default"/>
222 <setEntry value="org.eclipse.dstore.core@default:default"/>
223 <setEntry value="org.eclipse.dstore.extra@default:default"/>
224 <setEntry value="org.eclipse.e4.core.commands@default:default"/>
225 <setEntry value="org.eclipse.e4.core.contexts@default:default"/>
226 <setEntry value="org.eclipse.e4.core.di.annotations@default:default"/>
227 <setEntry value="org.eclipse.e4.core.di.extensions@default:default"/>
228 <setEntry value="org.eclipse.e4.core.di@default:default"/>
229 <setEntry value="org.eclipse.e4.core.services@default:default"/>
230 <setEntry value="org.eclipse.e4.emf.xpath@default:default"/>
231 <setEntry value="org.eclipse.e4.ui.bindings@default:default"/>
232 <setEntry value="org.eclipse.e4.ui.css.core@default:default"/>
233 <setEntry value="org.eclipse.e4.ui.css.swt.theme@default:default"/>
234 <setEntry value="org.eclipse.e4.ui.css.swt@default:default"/>
235 <setEntry value="org.eclipse.e4.ui.di@default:default"/>
236 <setEntry value="org.eclipse.e4.ui.dialogs@default:default"/>
237 <setEntry value="org.eclipse.e4.ui.model.workbench@default:default"/>
238 <setEntry value="org.eclipse.e4.ui.services@default:default"/>
239 <setEntry value="org.eclipse.e4.ui.swt.gtk@default:false"/>
240 <setEntry value="org.eclipse.e4.ui.widgets@default:default"/>
241 <setEntry value="org.eclipse.e4.ui.workbench.addons.swt@default:default"/>
242 <setEntry value="org.eclipse.e4.ui.workbench.renderers.swt@default:default"/>
243 <setEntry value="org.eclipse.e4.ui.workbench.swt@default:default"/>
244 <setEntry value="org.eclipse.e4.ui.workbench3@default:default"/>
245 <setEntry value="org.eclipse.e4.ui.workbench@default:default"/>
246 <setEntry value="org.eclipse.ecf.filetransfer@default:default"/>
247 <setEntry value="org.eclipse.ecf.identity@default:default"/>
248 <setEntry value="org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false"/>
249 <setEntry value="org.eclipse.ecf.provider.filetransfer.httpclient4@default:default"/>
250 <setEntry value="org.eclipse.ecf.provider.filetransfer.ssl@default:false"/>
251 <setEntry value="org.eclipse.ecf.provider.filetransfer@default:default"/>
252 <setEntry value="org.eclipse.ecf.ssl@default:false"/>
253 <setEntry value="org.eclipse.ecf@default:default"/>
254 <setEntry value="org.eclipse.emf.common@default:default"/>
255 <setEntry value="org.eclipse.emf.ecore.change@default:default"/>
256 <setEntry value="org.eclipse.emf.ecore.xmi@default:default"/>
257 <setEntry value="org.eclipse.emf.ecore@default:default"/>
258 <setEntry value="org.eclipse.equinox.app@default:default"/>
259 <setEntry value="org.eclipse.equinox.bidi@default:default"/>
260 <setEntry value="org.eclipse.equinox.common@2:true"/>
261 <setEntry value="org.eclipse.equinox.concurrent@default:default"/>
262 <setEntry value="org.eclipse.equinox.console@default:default"/>
263 <setEntry value="org.eclipse.equinox.ds@1:true"/>
264 <setEntry value="org.eclipse.equinox.event@default:default"/>
265 <setEntry value="org.eclipse.equinox.frameworkadmin.equinox@default:default"/>
266 <setEntry value="org.eclipse.equinox.frameworkadmin@default:default"/>
267 <setEntry value="org.eclipse.equinox.http.jetty@default:default"/>
268 <setEntry value="org.eclipse.equinox.http.registry@default:default"/>
269 <setEntry value="org.eclipse.equinox.http.servlet@default:default"/>
270 <setEntry value="org.eclipse.equinox.jsp.jasper.registry@default:default"/>
271 <setEntry value="org.eclipse.equinox.jsp.jasper@default:default"/>
272 <setEntry value="org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false"/>
273 <setEntry value="org.eclipse.equinox.launcher@default:default"/>
274 <setEntry value="org.eclipse.equinox.p2.artifact.repository@default:default"/>
275 <setEntry value="org.eclipse.equinox.p2.console@default:default"/>
276 <setEntry value="org.eclipse.equinox.p2.core@default:default"/>
277 <setEntry value="org.eclipse.equinox.p2.director.app@default:default"/>
278 <setEntry value="org.eclipse.equinox.p2.director@default:default"/>
279 <setEntry value="org.eclipse.equinox.p2.directorywatcher@default:default"/>
280 <setEntry value="org.eclipse.equinox.p2.engine@default:default"/>
281 <setEntry value="org.eclipse.equinox.p2.extensionlocation@default:default"/>
282 <setEntry value="org.eclipse.equinox.p2.garbagecollector@default:default"/>
283 <setEntry value="org.eclipse.equinox.p2.jarprocessor@default:default"/>
284 <setEntry value="org.eclipse.equinox.p2.metadata.repository@default:default"/>
285 <setEntry value="org.eclipse.equinox.p2.metadata@default:default"/>
286 <setEntry value="org.eclipse.equinox.p2.operations@default:default"/>
287 <setEntry value="org.eclipse.equinox.p2.publisher.eclipse@default:default"/>
288 <setEntry value="org.eclipse.equinox.p2.publisher@default:default"/>
289 <setEntry value="org.eclipse.equinox.p2.reconciler.dropins@default:default"/>
290 <setEntry value="org.eclipse.equinox.p2.repository.tools@default:default"/>
291 <setEntry value="org.eclipse.equinox.p2.repository@default:default"/>
292 <setEntry value="org.eclipse.equinox.p2.touchpoint.eclipse@default:default"/>
293 <setEntry value="org.eclipse.equinox.p2.touchpoint.natives@default:default"/>
294 <setEntry value="org.eclipse.equinox.p2.transport.ecf@default:default"/>
295 <setEntry value="org.eclipse.equinox.p2.ui.importexport@default:default"/>
296 <setEntry value="org.eclipse.equinox.p2.ui.sdk.scheduler@default:default"/>
297 <setEntry value="org.eclipse.equinox.p2.ui.sdk@default:default"/>
298 <setEntry value="org.eclipse.equinox.p2.ui@default:default"/>
299 <setEntry value="org.eclipse.equinox.p2.updatechecker@default:default"/>
300 <setEntry value="org.eclipse.equinox.p2.updatesite@default:default"/>
301 <setEntry value="org.eclipse.equinox.preferences@default:default"/>
302 <setEntry value="org.eclipse.equinox.registry@default:default"/>
303 <setEntry value="org.eclipse.equinox.security.ui@default:default"/>
304 <setEntry value="org.eclipse.equinox.security@default:default"/>
305 <setEntry value="org.eclipse.equinox.simpleconfigurator.manipulator@default:default"/>
306 <setEntry value="org.eclipse.equinox.simpleconfigurator@1:true"/>
307 <setEntry value="org.eclipse.equinox.util@default:default"/>
308 <setEntry value="org.eclipse.gef@default:default"/>
309 <setEntry value="org.eclipse.help.base@default:default"/>
310 <setEntry value="org.eclipse.help.ui@default:default"/>
311 <setEntry value="org.eclipse.help.webapp@default:default"/>
312 <setEntry value="org.eclipse.help@default:default"/>
313 <setEntry value="org.eclipse.jdt.core.manipulation@default:default"/>
314 <setEntry value="org.eclipse.jdt.core@default:default"/>
315 <setEntry value="org.eclipse.jdt.debug.ui@default:default"/>
316 <setEntry value="org.eclipse.jdt.debug@default:default"/>
317 <setEntry value="org.eclipse.jdt.junit.core@default:default"/>
318 <setEntry value="org.eclipse.jdt.junit.runtime@default:default"/>
319 <setEntry value="org.eclipse.jdt.junit@default:default"/>
320 <setEntry value="org.eclipse.jdt.launching@default:default"/>
321 <setEntry value="org.eclipse.jdt.ui@default:default"/>
322 <setEntry value="org.eclipse.jetty.continuation@default:default"/>
323 <setEntry value="org.eclipse.jetty.http@default:default"/>
324 <setEntry value="org.eclipse.jetty.io@default:default"/>
325 <setEntry value="org.eclipse.jetty.security@default:default"/>
326 <setEntry value="org.eclipse.jetty.server@default:default"/>
327 <setEntry value="org.eclipse.jetty.servlet@default:default"/>
328 <setEntry value="org.eclipse.jetty.util@default:default"/>
329 <setEntry value="org.eclipse.jface.databinding@default:default"/>
330 <setEntry value="org.eclipse.jface.text@default:default"/>
331 <setEntry value="org.eclipse.jface@default:default"/>
332 <setEntry value="org.eclipse.jgit.archive@default:default"/>
333 <setEntry value="org.eclipse.jgit@default:default"/>
334 <setEntry value="org.eclipse.jsch.core@default:default"/>
335 <setEntry value="org.eclipse.jsch.ui@default:default"/>
336 <setEntry value="org.eclipse.launchbar.core@default:default"/>
337 <setEntry value="org.eclipse.launchbar.ui.controls@default:default"/>
338 <setEntry value="org.eclipse.launchbar.ui@default:default"/>
339 <setEntry value="org.eclipse.ltk.core.refactoring@default:default"/>
340 <setEntry value="org.eclipse.ltk.ui.refactoring@default:default"/>
341 <setEntry value="org.eclipse.osgi.compatibility.state@default:false"/>
342 <setEntry value="org.eclipse.osgi.services@default:default"/>
343 <setEntry value="org.eclipse.osgi.util@default:default"/>
344 <setEntry value="org.eclipse.osgi@-1:true"/>
345 <setEntry value="org.eclipse.pde.build@default:default"/>
346 <setEntry value="org.eclipse.pde.core@default:default"/>
347 <setEntry value="org.eclipse.pde.launching@default:default"/>
348 <setEntry value="org.eclipse.pde.runtime@default:default"/>
349 <setEntry value="org.eclipse.pde.ui@default:default"/>
350 <setEntry value="org.eclipse.platform.doc.user@default:default"/>
351 <setEntry value="org.eclipse.platform@default:default"/>
352 <setEntry value="org.eclipse.ptp.rdt.sync.core@default:default"/>
353 <setEntry value="org.eclipse.ptp.rdt.sync.git.core@default:default"/>
354 <setEntry value="org.eclipse.ptp.rdt.sync.git.ui@default:default"/>
355 <setEntry value="org.eclipse.ptp.rdt.sync.ui@default:default"/>
356 <setEntry value="org.eclipse.rcp@default:default"/>
357 <setEntry value="org.eclipse.remote.console@default:default"/>
358 <setEntry value="org.eclipse.remote.core@default:default"/>
359 <setEntry value="org.eclipse.remote.doc.isv@default:default"/>
360 <setEntry value="org.eclipse.remote.jsch.core@default:default"/>
361 <setEntry value="org.eclipse.remote.jsch.ui@default:default"/>
362 <setEntry value="org.eclipse.remote.serial.core@default:default"/>
363 <setEntry value="org.eclipse.remote.serial.ui@default:default"/>
364 <setEntry value="org.eclipse.remote.telnet.core@default:default"/>
365 <setEntry value="org.eclipse.remote.telnet.ui@default:default"/>
366 <setEntry value="org.eclipse.remote.ui@default:default"/>
367 <setEntry value="org.eclipse.search@default:default"/>
368 <setEntry value="org.eclipse.swt.gtk.linux.x86_64@default:false"/>
369 <setEntry value="org.eclipse.swt@default:default"/>
370 <setEntry value="org.eclipse.swtbot.e4.finder@default:default"/>
371 <setEntry value="org.eclipse.swtbot.eclipse.core@default:default"/>
372 <setEntry value="org.eclipse.swtbot.eclipse.finder@default:default"/>
373 <setEntry value="org.eclipse.swtbot.forms.finder@default:default"/>
374 <setEntry value="org.eclipse.swtbot.go@default:default"/>
375 <setEntry value="org.eclipse.swtbot.junit4_x@default:default"/>
376 <setEntry value="org.eclipse.swtbot.swt.finder@default:default"/>
377 <setEntry value="org.eclipse.team.core@default:default"/>
378 <setEntry value="org.eclipse.team.ui@default:default"/>
379 <setEntry value="org.eclipse.text@default:default"/>
380 <setEntry value="org.eclipse.tm.terminal.connector.local@default:default"/>
381 <setEntry value="org.eclipse.tm.terminal.connector.process@default:default"/>
382 <setEntry value="org.eclipse.tm.terminal.connector.serial@default:default"/>
383 <setEntry value="org.eclipse.tm.terminal.connector.ssh@default:default"/>
384 <setEntry value="org.eclipse.tm.terminal.connector.telnet@default:default"/>
385 <setEntry value="org.eclipse.tm.terminal.control@default:default"/>
386 <setEntry value="org.eclipse.tm.terminal.view.core@default:default"/>
387 <setEntry value="org.eclipse.tm.terminal.view.ui@default:default"/>
388 <setEntry value="org.eclipse.tools.templates.core@default:default"/>
389 <setEntry value="org.eclipse.tools.templates.ui@default:default"/>
390 <setEntry value="org.eclipse.ui.browser@default:default"/>
391 <setEntry value="org.eclipse.ui.cheatsheets@default:default"/>
392 <setEntry value="org.eclipse.ui.console@default:default"/>
393 <setEntry value="org.eclipse.ui.editors@default:default"/>
394 <setEntry value="org.eclipse.ui.externaltools@default:default"/>
395 <setEntry value="org.eclipse.ui.forms@default:default"/>
396 <setEntry value="org.eclipse.ui.ide.application@default:default"/>
397 <setEntry value="org.eclipse.ui.ide@default:default"/>
398 <setEntry value="org.eclipse.ui.intro.quicklinks@default:default"/>
399 <setEntry value="org.eclipse.ui.intro.universal@default:default"/>
400 <setEntry value="org.eclipse.ui.intro@default:default"/>
401 <setEntry value="org.eclipse.ui.monitoring@default:default"/>
402 <setEntry value="org.eclipse.ui.navigator.resources@default:default"/>
403 <setEntry value="org.eclipse.ui.navigator@default:default"/>
404 <setEntry value="org.eclipse.ui.net@default:default"/>
405 <setEntry value="org.eclipse.ui.themes@default:default"/>
406 <setEntry value="org.eclipse.ui.trace@default:default"/>
407 <setEntry value="org.eclipse.ui.views.log@default:default"/>
408 <setEntry value="org.eclipse.ui.views.properties.tabbed@default:default"/>
409 <setEntry value="org.eclipse.ui.views@default:default"/>
410 <setEntry value="org.eclipse.ui.workbench.texteditor@default:default"/>
411 <setEntry value="org.eclipse.ui.workbench@default:default"/>
412 <setEntry value="org.eclipse.ui@default:default"/>
413 <setEntry value="org.eclipse.update.configurator@3:true"/>
414 <setEntry value="org.eclipse.wb.core.lib@default:default"/>
415 <setEntry value="org.eclipse.wst.common.core@default:default"/>
416 <setEntry value="org.eclipse.wst.internet.monitor.core@default:default"/>
417 <setEntry value="org.eclipse.wst.server.core@default:default"/>
418 <setEntry value="org.eclipse.wst.server.discovery@default:default"/>
419 <setEntry value="org.eclipse.wst.server.ui@default:default"/>
420 <setEntry value="org.eclipse.zest.core@default:default"/>
421 <setEntry value="org.eclipse.zest.layouts@default:default"/>
422 <setEntry value="org.glassfish.hk2.api@default:default"/>
423 <setEntry value="org.glassfish.hk2.locator@default:default"/>
424 <setEntry value="org.glassfish.hk2.osgi-resource-locator@default:default"/>
425 <setEntry value="org.glassfish.hk2.utils@default:default"/>
426 <setEntry value="org.glassfish.jersey.apache.connector@default:default"/>
427 <setEntry value="org.glassfish.jersey.bundles.repackaged.jersey-guava@default:default"/>
428 <setEntry value="org.glassfish.jersey.core.jersey-client@default:default"/>
429 <setEntry value="org.glassfish.jersey.core.jersey-common@default:default"/>
430 <setEntry value="org.glassfish.jersey.core.jersey-server@default:default"/>
431 <setEntry value="org.glassfish.jersey.ext.entityfiltering@default:default"/>
432 <setEntry value="org.glassfish.jersey.media.jersey-media-json-jackson@default:default"/>
433 <setEntry value="org.hamcrest.core@default:default"/>
434 <setEntry value="org.hamcrest.library@default:default"/>
435 <setEntry value="org.jboss.reddeer.common@default:default"/>
436 <setEntry value="org.jboss.reddeer.core@default:default"/>
437 <setEntry value="org.jboss.reddeer.direct@default:default"/>
438 <setEntry value="org.jboss.reddeer.eclipse@default:default"/>
439 <setEntry value="org.jboss.reddeer.gef@default:default"/>
440 <setEntry value="org.jboss.reddeer.go@default:default"/>
441 <setEntry value="org.jboss.reddeer.jface@default:default"/>
442 <setEntry value="org.jboss.reddeer.junit.extension@default:default"/>
443 <setEntry value="org.jboss.reddeer.junit@default:default"/>
444 <setEntry value="org.jboss.reddeer.requirements@default:default"/>
445 <setEntry value="org.jboss.reddeer.swt@default:default"/>
446 <setEntry value="org.jboss.reddeer.ui@default:default"/>
447 <setEntry value="org.jboss.reddeer.uiforms@default:default"/>
448 <setEntry value="org.jboss.reddeer.workbench@default:default"/>
449 <setEntry value="org.junit@default:default"/>
450 <setEntry value="org.mandas.docker.client@default:true"/>
451 <setEntry value="org.mockito@default:default"/>
452 <setEntry value="org.objectweb.asm.analysis@default:default"/>
453 <setEntry value="org.objectweb.asm.tree@default:default"/>
454 <setEntry value="org.objectweb.asm.util@default:default"/>
455 <setEntry value="org.objectweb.asm@default:default"/>
456 <setEntry value="org.objenesis@default:default"/>
457 <setEntry value="org.sat4j.core@default:default"/>
458 <setEntry value="org.sat4j.pb@default:default"/>
459 <setEntry value="org.slf4j.api*1.7.10.v20160921-1923@default:default"/>
460 <setEntry value="org.slf4j.api*1.7.2.v20121108-1250@default:default"/>
461 <setEntry value="org.slf4j.impl.log4j12@default:false"/>
462 <setEntry value="org.swtchart@default:default"/>
463 <setEntry value="org.tukaani.xz@default:default"/>
464 <setEntry value="org.w3c.css.sac@default:default"/>
465 <setEntry value="org.w3c.dom.events@default:default"/>
466 <setEntry value="org.w3c.dom.smil@default:default"/>
467 <setEntry value="org.w3c.dom.svg@default:default"/>
468 </setAttribute>
469 <setAttribute key="selected_workspace_bundles">
470 <setEntry value="org.eclipse.linuxtools.docker.core@default:default"/>
471 <setEntry value="org.eclipse.linuxtools.docker.docs@default:default"/>
472 <setEntry value="org.eclipse.linuxtools.docker.editor@default:default"/>
473 <setEntry value="org.eclipse.linuxtools.docker.integration.tests@default:default"/>
474 <setEntry value="org.eclipse.linuxtools.docker.reddeer@default:default"/>
475 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap@default:default"/>
476 <setEntry value="org.eclipse.linuxtools.docker.ui.tests@default:default"/>
477 <setEntry value="org.eclipse.linuxtools.docker.ui@default:default"/>
478 </setAttribute>
479 <booleanAttribute key="show_selected_only" value="false"/>
480 <booleanAttribute key="tracing" value="false"/>
481 <booleanAttribute key="useCustomFeatures" value="true"/>
482 <booleanAttribute key="useDefaultConfig" value="true"/>
483 <booleanAttribute key="useDefaultConfigArea" value="false"/>
484 <booleanAttribute key="useProduct" value="false"/>
116485 </launchConfiguration>
00 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
11 <launchConfiguration type="org.eclipse.reddeer.eclipse.ui.launcher.JunitLaunchConfig">
2 <setAttribute key="additional_plugins">
3 <setEntry value="com.spotify.docker.client:3.6.8.v20161117-2005:default:true"/>
4 <setEntry value="org.apache.httpcomponents.httpclient:4.5.2.v20161115-1643:default:true"/>
5 <setEntry value="org.apache.httpcomponents.httpcore:4.4.4.v20161115-1643:default:true"/>
6 <setEntry value="org.eclipse.linuxtools.docker.core:2.3.0.qualifier:default:true"/>
7 <setEntry value="org.eclipse.linuxtools.docker.editor:1.0.0.qualifier:default:true"/>
8 <setEntry value="org.eclipse.linuxtools.docker.integration.tests:1.0.0.qualifier:default:true"/>
9 <setEntry value="org.eclipse.linuxtools.docker.reddeer:1.0.0.qualifier:default:true"/>
10 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap:1.2.0.qualifier:default:true"/>
11 <setEntry value="org.eclipse.linuxtools.docker.ui.tests:2.1.0.qualifier:default:true"/>
12 <setEntry value="org.eclipse.linuxtools.docker.ui:2.3.0.qualifier:default:true"/>
13 <setEntry value="org.slf4j.api:1.7.10.v20160921-1923:default:true"/>
14 </setAttribute>
15 <booleanAttribute key="append.args" value="true"/>
16 <stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
17 <booleanAttribute key="askclear" value="false"/>
18 <booleanAttribute key="automaticAdd" value="true"/>
19 <booleanAttribute key="automaticValidate" value="true"/>
20 <stringAttribute key="bootstrap" value=""/>
21 <stringAttribute key="checked" value="[NONE]"/>
22 <booleanAttribute key="clearConfig" value="true"/>
23 <booleanAttribute key="clearws" value="true"/>
24 <booleanAttribute key="clearwslog" value="false"/>
25 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
26 <booleanAttribute key="default" value="false"/>
27 <stringAttribute key="featureDefaultLocation" value="workspace"/>
28 <stringAttribute key="featurePluginResolution" value="workspace"/>
29 <booleanAttribute key="includeOptional" value="true"/>
30 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
31 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
32 <listEntry value="/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java"/>
33 </listAttribute>
34 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
35 <listEntry value="1"/>
36 </listAttribute>
37 <mapAttribute key="org.eclipse.debug.core.environmentVariables">
38 <mapEntry key="DISPLAY" value=":1"/>
39 </mapAttribute>
40 <stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
41 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
42 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
43 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
44 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
45 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.linuxtools.docker.integration.tests.DockerAllBotTest"/>
46 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/>
47 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.linuxtools.docker.integration.tests"/>
48 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
49 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DdockerMockito=true -Dusage_reporting_enabled=false -DdockerHubUsername=test -DdockerHubEmail=test@test.com -DdockerHubPassword=password -DdockerComposePath=//testpath"/>
50 <stringAttribute key="pde.version" value="3.3"/>
51 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
52 <stringAttribute key="rd.launch.property.rd.captureScreenshot" value="true"/>
53 <stringAttribute key="rd.launch.property.rd.closeShells" value="true"/>
54 <stringAttribute key="rd.launch.property.rd.closeWelcomeScreen" value="true"/>
55 <stringAttribute key="rd.launch.property.rd.disableMavenIndex" value="true"/>
56 <stringAttribute key="rd.launch.property.rd.logCollectorEnabled" value="true"/>
57 <stringAttribute key="rd.launch.property.rd.logLevel" value="ALL"/>
58 <stringAttribute key="rd.launch.property.rd.logMessageFilter" value="ALL"/>
59 <stringAttribute key="rd.launch.property.rd.openAssociatedPerspective" value="never"/>
60 <stringAttribute key="rd.launch.property.rd.pauseFailedTest" value="false"/>
61 <stringAttribute key="rd.launch.property.rd.timePeriodFactor" value="1.0"/>
62 <setAttribute key="selected_features">
63 <setEntry value="org.eclipse.cdt.autotools:default"/>
64 <setEntry value="org.eclipse.cdt.gdb:default"/>
65 <setEntry value="org.eclipse.cdt.gnu.build:default"/>
66 <setEntry value="org.eclipse.cdt.gnu.debug:default"/>
67 <setEntry value="org.eclipse.cdt.gnu.dsf:default"/>
68 <setEntry value="org.eclipse.cdt.native:default"/>
69 <setEntry value="org.eclipse.cdt.platform:default"/>
70 <setEntry value="org.eclipse.cdt:default"/>
71 <setEntry value="org.eclipse.draw2d:default"/>
72 <setEntry value="org.eclipse.e4.rcp:default"/>
73 <setEntry value="org.eclipse.ecf.core.feature:default"/>
74 <setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
75 <setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
76 <setEntry value="org.eclipse.ecf.filetransfer.httpclient4.feature:default"/>
77 <setEntry value="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:default"/>
78 <setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
79 <setEntry value="org.eclipse.emf.common:default"/>
80 <setEntry value="org.eclipse.emf.ecore:default"/>
81 <setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
82 <setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
83 <setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
84 <setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
85 <setEntry value="org.eclipse.help:default"/>
86 <setEntry value="org.eclipse.jgit:default"/>
87 <setEntry value="org.eclipse.launchbar:default"/>
88 <setEntry value="org.eclipse.license:default"/>
89 <setEntry value="org.eclipse.linuxtools.docker.feature:default"/>
90 <setEntry value="org.eclipse.platform:default"/>
91 <setEntry value="org.eclipse.ptp.rdt.sync:default"/>
92 <setEntry value="org.eclipse.rcp:default"/>
93 <setEntry value="org.eclipse.remote:default"/>
94 <setEntry value="org.eclipse.swtbot.eclipse:default"/>
95 <setEntry value="org.eclipse.swtbot.forms:default"/>
96 <setEntry value="org.eclipse.swtbot:default"/>
97 <setEntry value="org.eclipse.tm.terminal.connector.local.feature:default"/>
98 <setEntry value="org.eclipse.tm.terminal.connector.serial.feature:default"/>
99 <setEntry value="org.eclipse.tm.terminal.connector.ssh.feature:default"/>
100 <setEntry value="org.eclipse.tm.terminal.connector.telnet.feature:default"/>
101 <setEntry value="org.eclipse.tm.terminal.control.feature:default"/>
102 <setEntry value="org.eclipse.tm.terminal.feature:default"/>
103 <setEntry value="org.eclipse.tm.terminal.view.feature:default"/>
104 <setEntry value="org.eclipse.zest:default"/>
105 <setEntry value="org.jboss.reddeer.eclipse.feature:default"/>
106 <setEntry value="org.jboss.reddeer.junit.extension.feature:default"/>
107 <setEntry value="org.jboss.reddeer.ui.feature:default"/>
108 </setAttribute>
109 <stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-guava@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.github.jnr.constants@default:default,com.github.jnr.enxio@default:default,com.github.jnr.ffi@default:default,com.github.jnr.jffi.native@default:false,com.github.jnr.jffi@default:default,com.github.jnr.posix@default:default,com.github.jnr.unixsocket@default:default,com.google.gson@default:default,com.google.guava@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.spotify.docker.client@default:true,com.sun.el@default:default,javaewah@default:default,javassist@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.ws.rs@default:default,javax.xml@default:default,jnr.x86asm@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.compress@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang3.source@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient*4.3.6.v201511171540@default:default,org.apache.httpcomponents.httpclient*4.5.2.v20161115-1643@default:default,org.apache.httpcomponents.httpcore*4.3.3.v201411290715@default:default,org.apache.httpcomponents.httpcore*4.4.4.v20161115-1643@default:default,org.apache.jasper.glassfish@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.assertj@default:default,org.bouncycastle.bcpkix@default:default,org.bouncycastle.bcprov@default:default,org.cyberneko.html@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.autotools.core@default:default,org.eclipse.cdt.autotools.docs@default:default,org.eclipse.cdt.autotools.ui@default:default,org.eclipse.cdt.build.gcc.core@default:default,org.eclipse.cdt.codan.checkers.ui@default:default,org.eclipse.cdt.codan.checkers@default:default,org.eclipse.cdt.codan.core.cxx@default:default,org.eclipse.cdt.codan.core@default:default,org.eclipse.cdt.codan.ui.cxx@default:default,org.eclipse.cdt.codan.ui@default:default,org.eclipse.cdt.core.linux.x86_64@default:false,org.eclipse.cdt.core.linux@default:false,org.eclipse.cdt.core.native@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.debug.core@default:default,org.eclipse.cdt.debug.ui@default:default,org.eclipse.cdt.doc.user@default:default,org.eclipse.cdt.dsf.gdb.ui@default:default,org.eclipse.cdt.dsf.gdb@default:default,org.eclipse.cdt.dsf.ui@default:default,org.eclipse.cdt.dsf@default:default,org.eclipse.cdt.gdb.ui@default:default,org.eclipse.cdt.gdb@default:default,org.eclipse.cdt.launch@default:default,org.eclipse.cdt.make.core@default:default,org.eclipse.cdt.make.ui@default:default,org.eclipse.cdt.managedbuilder.core@default:default,org.eclipse.cdt.managedbuilder.gnu.ui@default:default,org.eclipse.cdt.managedbuilder.ui@default:default,org.eclipse.cdt.native.serial@default:default,org.eclipse.cdt.remote.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.cdt@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.dstore.core@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit.archive@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.launchbar.core@default:default,org.eclipse.launchbar.ui.controls@default:default,org.eclipse.launchbar.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.ptp.rdt.sync.core@default:default,org.eclipse.ptp.rdt.sync.git.core@default:default,org.eclipse.ptp.rdt.sync.git.ui@default:default,org.eclipse.ptp.rdt.sync.ui@default:default,org.eclipse.rcp@default:default,org.eclipse.remote.console@default:default,org.eclipse.remote.core@default:default,org.eclipse.remote.doc.isv@default:default,org.eclipse.remote.jsch.core@default:default,org.eclipse.remote.jsch.ui@default:default,org.eclipse.remote.serial.core@default:default,org.eclipse.remote.serial.ui@default:default,org.eclipse.remote.telnet.core@default:default,org.eclipse.remote.telnet.ui@default:default,org.eclipse.remote.ui@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.e4.finder@default:default,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tm.terminal.connector.local@default:default,org.eclipse.tm.terminal.connector.process@default:default,org.eclipse.tm.terminal.connector.serial@default:default,org.eclipse.tm.terminal.connector.ssh@default:default,org.eclipse.tm.terminal.connector.telnet@default:default,org.eclipse.tm.terminal.control@default:default,org.eclipse.tm.terminal.view.core@default:default,org.eclipse.tm.terminal.view.ui@default:default,org.eclipse.tools.templates.core@default:default,org.eclipse.tools.templates.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.wb.core.lib@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.server.discovery@default:default,org.eclipse.wst.server.ui@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.glassfish.hk2.api@default:default,org.glassfish.hk2.locator@default:default,org.glassfish.hk2.osgi-resource-locator@default:default,org.glassfish.hk2.utils@default:default,org.glassfish.jersey.apache.connector@default:default,org.glassfish.jersey.bundles.repackaged.jersey-guava@default:default,org.glassfish.jersey.core.jersey-client@default:default,org.glassfish.jersey.core.jersey-common@default:default,org.glassfish.jersey.core.jersey-server@default:default,org.glassfish.jersey.ext.entityfiltering@default:default,org.glassfish.jersey.media.jersey-media-json-jackson@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.jboss.reddeer.common@default:default,org.jboss.reddeer.core@default:default,org.jboss.reddeer.direct@default:default,org.jboss.reddeer.eclipse@default:default,org.jboss.reddeer.gef@default:default,org.jboss.reddeer.go@default:default,org.jboss.reddeer.jface@default:default,org.jboss.reddeer.junit.extension@default:default,org.jboss.reddeer.junit@default:default,org.jboss.reddeer.requirements@default:default,org.jboss.reddeer.swt@default:default,org.jboss.reddeer.ui@default:default,org.jboss.reddeer.uiforms@default:default,org.jboss.reddeer.workbench@default:default,org.junit@default:default,org.mockito@default:default,org.objectweb.asm.analysis@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm.util@default:default,org.objectweb.asm@default:default,org.objenesis@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api*1.7.10.v20160921-1923@default:default,org.slf4j.api*1.7.2.v20121108-1250@default:default,org.slf4j.impl.log4j12@default:false,org.swtchart@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
110 <stringAttribute key="selected_workspace_plugins" value="org.eclipse.linuxtools.docker.core@default:default,org.eclipse.linuxtools.docker.docs@default:default,org.eclipse.linuxtools.docker.editor@default:default,org.eclipse.linuxtools.docker.integration.tests@default:default,org.eclipse.linuxtools.docker.reddeer@default:default,org.eclipse.linuxtools.docker.tests.hamcrest-wrap@default:default,org.eclipse.linuxtools.docker.ui.tests@default:default,org.eclipse.linuxtools.docker.ui@default:default"/>
111 <booleanAttribute key="show_selected_only" value="false"/>
112 <booleanAttribute key="tracing" value="false"/>
113 <booleanAttribute key="useCustomFeatures" value="true"/>
114 <booleanAttribute key="useDefaultConfig" value="true"/>
115 <booleanAttribute key="useDefaultConfigArea" value="false"/>
116 <booleanAttribute key="useProduct" value="false"/>
2 <setAttribute key="additional_plugins">
3 <setEntry value="org.apache.httpcomponents.httpclient:4.5.10.v20200114-1512:default:true:default:default"/>
4 <setEntry value="org.apache.httpcomponents.httpcore:4.4.12.v20200108-1212:default:true:default:default"/>
5 <setEntry value="org.eclipse.linuxtools.docker.core:5.0.0.qualifier:default:true:default:default"/>
6 <setEntry value="org.eclipse.linuxtools.docker.integration.tests:2.2.0.qualifier:default:true:default:default"/>
7 <setEntry value="org.eclipse.linuxtools.docker.reddeer:2.2.0.qualifier:default:true:default:default"/>
8 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap:1.2.0.qualifier:default:true:default:default"/>
9 <setEntry value="org.eclipse.linuxtools.docker.ui.tests:2.2.0.qualifier:default:true:default:default"/>
10 <setEntry value="org.eclipse.linuxtools.docker.ui:5.0.0.qualifier:default:true:default:default"/>
11 <setEntry value="org.slf4j.api:1.7.30.v20200204-2150:default:true:default:default"/>
12 </setAttribute>
13 <booleanAttribute key="append.args" value="true"/>
14 <stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
15 <booleanAttribute key="askclear" value="false"/>
16 <booleanAttribute key="automaticAdd" value="true"/>
17 <booleanAttribute key="automaticValidate" value="true"/>
18 <stringAttribute key="bootstrap" value=""/>
19 <stringAttribute key="checked" value="[NONE]"/>
20 <booleanAttribute key="clearConfig" value="true"/>
21 <booleanAttribute key="clearws" value="true"/>
22 <booleanAttribute key="clearwslog" value="false"/>
23 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
24 <booleanAttribute key="default" value="false"/>
25 <stringAttribute key="featureDefaultLocation" value="workspace"/>
26 <stringAttribute key="featurePluginResolution" value="workspace"/>
27 <booleanAttribute key="includeOptional" value="true"/>
28 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
29 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
30 <listEntry value="/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java"/>
31 </listAttribute>
32 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
33 <listEntry value="1"/>
34 </listAttribute>
35 <mapAttribute key="org.eclipse.debug.core.environmentVariables">
36 <mapEntry key="DISPLAY" value=":1"/>
37 </mapAttribute>
38 <stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
39 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
40 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
41 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
42 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
43 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.linuxtools.docker.integration.tests.DockerAllBotTest"/>
44 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/>
45 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.linuxtools.docker.integration.tests"/>
46 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
47 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DdockerMockito=true -Dusage_reporting_enabled=false -DdockerHubUsername=test -DdockerHubEmail=test@test.com -DdockerHubPassword=password -DdockerComposePath=//testpath"/>
48 <stringAttribute key="pde.version" value="3.3"/>
49 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
50 <stringAttribute key="rd.launch.property.rd.captureScreenshot" value="true"/>
51 <stringAttribute key="rd.launch.property.rd.closeShells" value="true"/>
52 <stringAttribute key="rd.launch.property.rd.closeWelcomeScreen" value="true"/>
53 <stringAttribute key="rd.launch.property.rd.defaultKey" value="org.eclipse.reddeer.widget.key"/>
54 <stringAttribute key="rd.launch.property.rd.disableMavenIndex" value="true"/>
55 <stringAttribute key="rd.launch.property.rd.logCollectorEnabled" value="true"/>
56 <stringAttribute key="rd.launch.property.rd.logLevel" value="ALL"/>
57 <stringAttribute key="rd.launch.property.rd.logMessageFilter" value="ALL"/>
58 <stringAttribute key="rd.launch.property.rd.maximizeWorkbench" value="true"/>
59 <stringAttribute key="rd.launch.property.rd.openAssociatedPerspective" value="never"/>
60 <stringAttribute key="rd.launch.property.rd.pauseFailedTest" value="false"/>
61 <stringAttribute key="rd.launch.property.rd.timePeriodFactor" value="1.0"/>
62 <setAttribute key="selected_features">
63 <setEntry value="org.eclipse.cdt.autotools:default"/>
64 <setEntry value="org.eclipse.cdt.gdb:default"/>
65 <setEntry value="org.eclipse.cdt.gnu.build:default"/>
66 <setEntry value="org.eclipse.cdt.gnu.debug:default"/>
67 <setEntry value="org.eclipse.cdt.gnu.dsf:default"/>
68 <setEntry value="org.eclipse.cdt.native:default"/>
69 <setEntry value="org.eclipse.cdt.platform:default"/>
70 <setEntry value="org.eclipse.cdt:default"/>
71 <setEntry value="org.eclipse.draw2d:default"/>
72 <setEntry value="org.eclipse.e4.rcp:default"/>
73 <setEntry value="org.eclipse.ecf.core.feature:default"/>
74 <setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
75 <setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
76 <setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
77 <setEntry value="org.eclipse.emf.common:default"/>
78 <setEntry value="org.eclipse.emf.ecore:default"/>
79 <setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
80 <setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
81 <setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
82 <setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
83 <setEntry value="org.eclipse.help:default"/>
84 <setEntry value="org.eclipse.jgit:default"/>
85 <setEntry value="org.eclipse.launchbar:default"/>
86 <setEntry value="org.eclipse.license:default"/>
87 <setEntry value="org.eclipse.linuxtools.docker.feature:default"/>
88 <setEntry value="org.eclipse.platform:default"/>
89 <setEntry value="org.eclipse.ptp.rdt.sync:default"/>
90 <setEntry value="org.eclipse.rcp:default"/>
91 <setEntry value="org.eclipse.remote:default"/>
92 <setEntry value="org.eclipse.swtbot.eclipse:default"/>
93 <setEntry value="org.eclipse.swtbot.forms:default"/>
94 <setEntry value="org.eclipse.swtbot:default"/>
95 <setEntry value="org.eclipse.tm.terminal.connector.local.feature:default"/>
96 <setEntry value="org.eclipse.tm.terminal.connector.ssh.feature:default"/>
97 <setEntry value="org.eclipse.tm.terminal.connector.telnet.feature:default"/>
98 <setEntry value="org.eclipse.tm.terminal.control.feature:default"/>
99 <setEntry value="org.eclipse.tm.terminal.feature:default"/>
100 <setEntry value="org.eclipse.tm.terminal.view.feature:default"/>
101 <setEntry value="org.eclipse.zest:default"/>
102 </setAttribute>
103 <setAttribute key="selected_target_bundles">
104 <setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>
105 <setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>
106 <setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>
107 <setEntry value="com.fasterxml.jackson.datatype.jackson-datatype-guava@default:default"/>
108 <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default"/>
109 <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default"/>
110 <setEntry value="com.github.jnr.constants@default:default"/>
111 <setEntry value="com.github.jnr.enxio@default:default"/>
112 <setEntry value="com.github.jnr.ffi@default:default"/>
113 <setEntry value="com.github.jnr.jffi.native@default:false"/>
114 <setEntry value="com.github.jnr.jffi@default:default"/>
115 <setEntry value="com.github.jnr.posix@default:default"/>
116 <setEntry value="com.github.jnr.unixsocket@default:default"/>
117 <setEntry value="com.google.gson@default:default"/>
118 <setEntry value="com.google.guava@default:default"/>
119 <setEntry value="com.ibm.icu@default:default"/>
120 <setEntry value="com.jcraft.jsch@default:default"/>
121 <setEntry value="com.sun.el@default:default"/>
122 <setEntry value="javaewah@default:default"/>
123 <setEntry value="javassist@default:default"/>
124 <setEntry value="javax.annotation@default:default"/>
125 <setEntry value="javax.el@default:default"/>
126 <setEntry value="javax.inject@default:default"/>
127 <setEntry value="javax.servlet.jsp@default:default"/>
128 <setEntry value="javax.servlet@default:default"/>
129 <setEntry value="javax.ws.rs@default:default"/>
130 <setEntry value="javax.xml@default:default"/>
131 <setEntry value="jnr.x86asm@default:default"/>
132 <setEntry value="org.aopalliance@default:default"/>
133 <setEntry value="org.apache.ant@default:default"/>
134 <setEntry value="org.apache.batik.css@default:default"/>
135 <setEntry value="org.apache.batik.util.gui@default:default"/>
136 <setEntry value="org.apache.batik.util@default:default"/>
137 <setEntry value="org.apache.commons.beanutils@default:default"/>
138 <setEntry value="org.apache.commons.codec@default:default"/>
139 <setEntry value="org.apache.commons.compress@default:default"/>
140 <setEntry value="org.apache.commons.io@default:default"/>
141 <setEntry value="org.apache.commons.jxpath@default:default"/>
142 <setEntry value="org.apache.commons.lang3.source@default:default"/>
143 <setEntry value="org.apache.commons.lang3@default:default"/>
144 <setEntry value="org.apache.commons.lang@default:default"/>
145 <setEntry value="org.apache.commons.logging@default:default"/>
146 <setEntry value="org.apache.felix.gogo.command@default:default"/>
147 <setEntry value="org.apache.felix.gogo.runtime@default:default"/>
148 <setEntry value="org.apache.felix.gogo.shell@default:default"/>
149 <setEntry value="org.apache.httpcomponents.httpclient*4.3.6.v201511171540@default:default"/>
150 <setEntry value="org.apache.httpcomponents.httpclient*4.5.2.v20161115-1643@default:default"/>
151 <setEntry value="org.apache.httpcomponents.httpcore*4.3.3.v201411290715@default:default"/>
152 <setEntry value="org.apache.httpcomponents.httpcore*4.4.4.v20161115-1643@default:default"/>
153 <setEntry value="org.apache.jasper.glassfish@default:default"/>
154 <setEntry value="org.apache.log4j@default:default"/>
155 <setEntry value="org.apache.lucene.analysis@default:default"/>
156 <setEntry value="org.apache.lucene.core@default:default"/>
157 <setEntry value="org.apache.xerces@default:default"/>
158 <setEntry value="org.apache.xml.resolver@default:default"/>
159 <setEntry value="org.apache.xml.serializer@default:default"/>
160 <setEntry value="org.assertj@default:default"/>
161 <setEntry value="org.bouncycastle.bcpkix@default:default"/>
162 <setEntry value="org.bouncycastle.bcprov@default:default"/>
163 <setEntry value="org.cyberneko.html@default:default"/>
164 <setEntry value="org.eclipse.ant.core@default:default"/>
165 <setEntry value="org.eclipse.ant.launching@default:default"/>
166 <setEntry value="org.eclipse.ant.ui@default:default"/>
167 <setEntry value="org.eclipse.cdt.autotools.core@default:default"/>
168 <setEntry value="org.eclipse.cdt.autotools.docs@default:default"/>
169 <setEntry value="org.eclipse.cdt.autotools.ui@default:default"/>
170 <setEntry value="org.eclipse.cdt.build.gcc.core@default:default"/>
171 <setEntry value="org.eclipse.cdt.codan.checkers.ui@default:default"/>
172 <setEntry value="org.eclipse.cdt.codan.checkers@default:default"/>
173 <setEntry value="org.eclipse.cdt.codan.core.cxx@default:default"/>
174 <setEntry value="org.eclipse.cdt.codan.core@default:default"/>
175 <setEntry value="org.eclipse.cdt.codan.ui.cxx@default:default"/>
176 <setEntry value="org.eclipse.cdt.codan.ui@default:default"/>
177 <setEntry value="org.eclipse.cdt.core.linux.x86_64@default:false"/>
178 <setEntry value="org.eclipse.cdt.core.linux@default:false"/>
179 <setEntry value="org.eclipse.cdt.core.native@default:default"/>
180 <setEntry value="org.eclipse.cdt.core@default:default"/>
181 <setEntry value="org.eclipse.cdt.debug.core@default:default"/>
182 <setEntry value="org.eclipse.cdt.debug.ui@default:default"/>
183 <setEntry value="org.eclipse.cdt.doc.user@default:default"/>
184 <setEntry value="org.eclipse.cdt.dsf.gdb.ui@default:default"/>
185 <setEntry value="org.eclipse.cdt.dsf.gdb@default:default"/>
186 <setEntry value="org.eclipse.cdt.dsf.ui@default:default"/>
187 <setEntry value="org.eclipse.cdt.dsf@default:default"/>
188 <setEntry value="org.eclipse.cdt.gdb.ui@default:default"/>
189 <setEntry value="org.eclipse.cdt.gdb@default:default"/>
190 <setEntry value="org.eclipse.cdt.launch@default:default"/>
191 <setEntry value="org.eclipse.cdt.make.core@default:default"/>
192 <setEntry value="org.eclipse.cdt.make.ui@default:default"/>
193 <setEntry value="org.eclipse.cdt.managedbuilder.core@default:default"/>
194 <setEntry value="org.eclipse.cdt.managedbuilder.gnu.ui@default:default"/>
195 <setEntry value="org.eclipse.cdt.managedbuilder.ui@default:default"/>
196 <setEntry value="org.eclipse.cdt.native.serial@default:default"/>
197 <setEntry value="org.eclipse.cdt.remote.core@default:default"/>
198 <setEntry value="org.eclipse.cdt.ui@default:default"/>
199 <setEntry value="org.eclipse.cdt@default:default"/>
200 <setEntry value="org.eclipse.compare.core@default:default"/>
201 <setEntry value="org.eclipse.compare@default:default"/>
202 <setEntry value="org.eclipse.core.commands@default:default"/>
203 <setEntry value="org.eclipse.core.contenttype@default:default"/>
204 <setEntry value="org.eclipse.core.databinding.beans@default:default"/>
205 <setEntry value="org.eclipse.core.databinding.observable@default:default"/>
206 <setEntry value="org.eclipse.core.databinding.property@default:default"/>
207 <setEntry value="org.eclipse.core.databinding@default:default"/>
208 <setEntry value="org.eclipse.core.expressions@default:default"/>
209 <setEntry value="org.eclipse.core.externaltools@default:default"/>
210 <setEntry value="org.eclipse.core.filebuffers@default:default"/>
211 <setEntry value="org.eclipse.core.filesystem.linux.x86_64@default:false"/>
212 <setEntry value="org.eclipse.core.filesystem@default:default"/>
213 <setEntry value="org.eclipse.core.jobs@default:default"/>
214 <setEntry value="org.eclipse.core.net.linux.x86_64@default:false"/>
215 <setEntry value="org.eclipse.core.net@default:default"/>
216 <setEntry value="org.eclipse.core.resources@default:default"/>
217 <setEntry value="org.eclipse.core.runtime@default:true"/>
218 <setEntry value="org.eclipse.core.variables@default:default"/>
219 <setEntry value="org.eclipse.debug.core@default:default"/>
220 <setEntry value="org.eclipse.debug.ui@default:default"/>
221 <setEntry value="org.eclipse.draw2d@default:default"/>
222 <setEntry value="org.eclipse.dstore.core@default:default"/>
223 <setEntry value="org.eclipse.dstore.extra@default:default"/>
224 <setEntry value="org.eclipse.e4.core.commands@default:default"/>
225 <setEntry value="org.eclipse.e4.core.contexts@default:default"/>
226 <setEntry value="org.eclipse.e4.core.di.annotations@default:default"/>
227 <setEntry value="org.eclipse.e4.core.di.extensions@default:default"/>
228 <setEntry value="org.eclipse.e4.core.di@default:default"/>
229 <setEntry value="org.eclipse.e4.core.services@default:default"/>
230 <setEntry value="org.eclipse.e4.emf.xpath@default:default"/>
231 <setEntry value="org.eclipse.e4.ui.bindings@default:default"/>
232 <setEntry value="org.eclipse.e4.ui.css.core@default:default"/>
233 <setEntry value="org.eclipse.e4.ui.css.swt.theme@default:default"/>
234 <setEntry value="org.eclipse.e4.ui.css.swt@default:default"/>
235 <setEntry value="org.eclipse.e4.ui.di@default:default"/>
236 <setEntry value="org.eclipse.e4.ui.dialogs@default:default"/>
237 <setEntry value="org.eclipse.e4.ui.model.workbench@default:default"/>
238 <setEntry value="org.eclipse.e4.ui.services@default:default"/>
239 <setEntry value="org.eclipse.e4.ui.swt.gtk@default:false"/>
240 <setEntry value="org.eclipse.e4.ui.widgets@default:default"/>
241 <setEntry value="org.eclipse.e4.ui.workbench.addons.swt@default:default"/>
242 <setEntry value="org.eclipse.e4.ui.workbench.renderers.swt@default:default"/>
243 <setEntry value="org.eclipse.e4.ui.workbench.swt@default:default"/>
244 <setEntry value="org.eclipse.e4.ui.workbench3@default:default"/>
245 <setEntry value="org.eclipse.e4.ui.workbench@default:default"/>
246 <setEntry value="org.eclipse.ecf.filetransfer@default:default"/>
247 <setEntry value="org.eclipse.ecf.identity@default:default"/>
248 <setEntry value="org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false"/>
249 <setEntry value="org.eclipse.ecf.provider.filetransfer.httpclient4@default:default"/>
250 <setEntry value="org.eclipse.ecf.provider.filetransfer.ssl@default:false"/>
251 <setEntry value="org.eclipse.ecf.provider.filetransfer@default:default"/>
252 <setEntry value="org.eclipse.ecf.ssl@default:false"/>
253 <setEntry value="org.eclipse.ecf@default:default"/>
254 <setEntry value="org.eclipse.emf.common@default:default"/>
255 <setEntry value="org.eclipse.emf.ecore.change@default:default"/>
256 <setEntry value="org.eclipse.emf.ecore.xmi@default:default"/>
257 <setEntry value="org.eclipse.emf.ecore@default:default"/>
258 <setEntry value="org.eclipse.equinox.app@default:default"/>
259 <setEntry value="org.eclipse.equinox.bidi@default:default"/>
260 <setEntry value="org.eclipse.equinox.common@2:true"/>
261 <setEntry value="org.eclipse.equinox.concurrent@default:default"/>
262 <setEntry value="org.eclipse.equinox.console@default:default"/>
263 <setEntry value="org.eclipse.equinox.ds@1:true"/>
264 <setEntry value="org.eclipse.equinox.event@default:default"/>
265 <setEntry value="org.eclipse.equinox.frameworkadmin.equinox@default:default"/>
266 <setEntry value="org.eclipse.equinox.frameworkadmin@default:default"/>
267 <setEntry value="org.eclipse.equinox.http.jetty@default:default"/>
268 <setEntry value="org.eclipse.equinox.http.registry@default:default"/>
269 <setEntry value="org.eclipse.equinox.http.servlet@default:default"/>
270 <setEntry value="org.eclipse.equinox.jsp.jasper.registry@default:default"/>
271 <setEntry value="org.eclipse.equinox.jsp.jasper@default:default"/>
272 <setEntry value="org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false"/>
273 <setEntry value="org.eclipse.equinox.launcher@default:default"/>
274 <setEntry value="org.eclipse.equinox.p2.artifact.repository@default:default"/>
275 <setEntry value="org.eclipse.equinox.p2.console@default:default"/>
276 <setEntry value="org.eclipse.equinox.p2.core@default:default"/>
277 <setEntry value="org.eclipse.equinox.p2.director.app@default:default"/>
278 <setEntry value="org.eclipse.equinox.p2.director@default:default"/>
279 <setEntry value="org.eclipse.equinox.p2.directorywatcher@default:default"/>
280 <setEntry value="org.eclipse.equinox.p2.engine@default:default"/>
281 <setEntry value="org.eclipse.equinox.p2.extensionlocation@default:default"/>
282 <setEntry value="org.eclipse.equinox.p2.garbagecollector@default:default"/>
283 <setEntry value="org.eclipse.equinox.p2.jarprocessor@default:default"/>
284 <setEntry value="org.eclipse.equinox.p2.metadata.repository@default:default"/>
285 <setEntry value="org.eclipse.equinox.p2.metadata@default:default"/>
286 <setEntry value="org.eclipse.equinox.p2.operations@default:default"/>
287 <setEntry value="org.eclipse.equinox.p2.publisher.eclipse@default:default"/>
288 <setEntry value="org.eclipse.equinox.p2.publisher@default:default"/>
289 <setEntry value="org.eclipse.equinox.p2.reconciler.dropins@default:default"/>
290 <setEntry value="org.eclipse.equinox.p2.repository.tools@default:default"/>
291 <setEntry value="org.eclipse.equinox.p2.repository@default:default"/>
292 <setEntry value="org.eclipse.equinox.p2.touchpoint.eclipse@default:default"/>
293 <setEntry value="org.eclipse.equinox.p2.touchpoint.natives@default:default"/>
294 <setEntry value="org.eclipse.equinox.p2.transport.ecf@default:default"/>
295 <setEntry value="org.eclipse.equinox.p2.ui.importexport@default:default"/>
296 <setEntry value="org.eclipse.equinox.p2.ui.sdk.scheduler@default:default"/>
297 <setEntry value="org.eclipse.equinox.p2.ui.sdk@default:default"/>
298 <setEntry value="org.eclipse.equinox.p2.ui@default:default"/>
299 <setEntry value="org.eclipse.equinox.p2.updatechecker@default:default"/>
300 <setEntry value="org.eclipse.equinox.p2.updatesite@default:default"/>
301 <setEntry value="org.eclipse.equinox.preferences@default:default"/>
302 <setEntry value="org.eclipse.equinox.registry@default:default"/>
303 <setEntry value="org.eclipse.equinox.security.ui@default:default"/>
304 <setEntry value="org.eclipse.equinox.security@default:default"/>
305 <setEntry value="org.eclipse.equinox.simpleconfigurator.manipulator@default:default"/>
306 <setEntry value="org.eclipse.equinox.simpleconfigurator@1:true"/>
307 <setEntry value="org.eclipse.equinox.util@default:default"/>
308 <setEntry value="org.eclipse.gef@default:default"/>
309 <setEntry value="org.eclipse.help.base@default:default"/>
310 <setEntry value="org.eclipse.help.ui@default:default"/>
311 <setEntry value="org.eclipse.help.webapp@default:default"/>
312 <setEntry value="org.eclipse.help@default:default"/>
313 <setEntry value="org.eclipse.jdt.core.manipulation@default:default"/>
314 <setEntry value="org.eclipse.jdt.core@default:default"/>
315 <setEntry value="org.eclipse.jdt.debug.ui@default:default"/>
316 <setEntry value="org.eclipse.jdt.debug@default:default"/>
317 <setEntry value="org.eclipse.jdt.junit.core@default:default"/>
318 <setEntry value="org.eclipse.jdt.junit.runtime@default:default"/>
319 <setEntry value="org.eclipse.jdt.junit@default:default"/>
320 <setEntry value="org.eclipse.jdt.launching@default:default"/>
321 <setEntry value="org.eclipse.jdt.ui@default:default"/>
322 <setEntry value="org.eclipse.jetty.continuation@default:default"/>
323 <setEntry value="org.eclipse.jetty.http@default:default"/>
324 <setEntry value="org.eclipse.jetty.io@default:default"/>
325 <setEntry value="org.eclipse.jetty.security@default:default"/>
326 <setEntry value="org.eclipse.jetty.server@default:default"/>
327 <setEntry value="org.eclipse.jetty.servlet@default:default"/>
328 <setEntry value="org.eclipse.jetty.util@default:default"/>
329 <setEntry value="org.eclipse.jface.databinding@default:default"/>
330 <setEntry value="org.eclipse.jface.text@default:default"/>
331 <setEntry value="org.eclipse.jface@default:default"/>
332 <setEntry value="org.eclipse.jgit.archive@default:default"/>
333 <setEntry value="org.eclipse.jgit@default:default"/>
334 <setEntry value="org.eclipse.jsch.core@default:default"/>
335 <setEntry value="org.eclipse.jsch.ui@default:default"/>
336 <setEntry value="org.eclipse.launchbar.core@default:default"/>
337 <setEntry value="org.eclipse.launchbar.ui.controls@default:default"/>
338 <setEntry value="org.eclipse.launchbar.ui@default:default"/>
339 <setEntry value="org.eclipse.ltk.core.refactoring@default:default"/>
340 <setEntry value="org.eclipse.ltk.ui.refactoring@default:default"/>
341 <setEntry value="org.eclipse.osgi.compatibility.state@default:false"/>
342 <setEntry value="org.eclipse.osgi.services@default:default"/>
343 <setEntry value="org.eclipse.osgi.util@default:default"/>
344 <setEntry value="org.eclipse.osgi@-1:true"/>
345 <setEntry value="org.eclipse.pde.build@default:default"/>
346 <setEntry value="org.eclipse.pde.core@default:default"/>
347 <setEntry value="org.eclipse.pde.launching@default:default"/>
348 <setEntry value="org.eclipse.pde.runtime@default:default"/>
349 <setEntry value="org.eclipse.pde.ui@default:default"/>
350 <setEntry value="org.eclipse.platform.doc.user@default:default"/>
351 <setEntry value="org.eclipse.platform@default:default"/>
352 <setEntry value="org.eclipse.ptp.rdt.sync.core@default:default"/>
353 <setEntry value="org.eclipse.ptp.rdt.sync.git.core@default:default"/>
354 <setEntry value="org.eclipse.ptp.rdt.sync.git.ui@default:default"/>
355 <setEntry value="org.eclipse.ptp.rdt.sync.ui@default:default"/>
356 <setEntry value="org.eclipse.rcp@default:default"/>
357 <setEntry value="org.eclipse.remote.console@default:default"/>
358 <setEntry value="org.eclipse.remote.core@default:default"/>
359 <setEntry value="org.eclipse.remote.doc.isv@default:default"/>
360 <setEntry value="org.eclipse.remote.jsch.core@default:default"/>
361 <setEntry value="org.eclipse.remote.jsch.ui@default:default"/>
362 <setEntry value="org.eclipse.remote.serial.core@default:default"/>
363 <setEntry value="org.eclipse.remote.serial.ui@default:default"/>
364 <setEntry value="org.eclipse.remote.telnet.core@default:default"/>
365 <setEntry value="org.eclipse.remote.telnet.ui@default:default"/>
366 <setEntry value="org.eclipse.remote.ui@default:default"/>
367 <setEntry value="org.eclipse.search@default:default"/>
368 <setEntry value="org.eclipse.swt.gtk.linux.x86_64@default:false"/>
369 <setEntry value="org.eclipse.swt@default:default"/>
370 <setEntry value="org.eclipse.swtbot.e4.finder@default:default"/>
371 <setEntry value="org.eclipse.swtbot.eclipse.core@default:default"/>
372 <setEntry value="org.eclipse.swtbot.eclipse.finder@default:default"/>
373 <setEntry value="org.eclipse.swtbot.forms.finder@default:default"/>
374 <setEntry value="org.eclipse.swtbot.go@default:default"/>
375 <setEntry value="org.eclipse.swtbot.junit4_x@default:default"/>
376 <setEntry value="org.eclipse.swtbot.swt.finder@default:default"/>
377 <setEntry value="org.eclipse.team.core@default:default"/>
378 <setEntry value="org.eclipse.team.ui@default:default"/>
379 <setEntry value="org.eclipse.text@default:default"/>
380 <setEntry value="org.eclipse.tm.terminal.connector.local@default:default"/>
381 <setEntry value="org.eclipse.tm.terminal.connector.process@default:default"/>
382 <setEntry value="org.eclipse.tm.terminal.connector.serial@default:default"/>
383 <setEntry value="org.eclipse.tm.terminal.connector.ssh@default:default"/>
384 <setEntry value="org.eclipse.tm.terminal.connector.telnet@default:default"/>
385 <setEntry value="org.eclipse.tm.terminal.control@default:default"/>
386 <setEntry value="org.eclipse.tm.terminal.view.core@default:default"/>
387 <setEntry value="org.eclipse.tm.terminal.view.ui@default:default"/>
388 <setEntry value="org.eclipse.tools.templates.core@default:default"/>
389 <setEntry value="org.eclipse.tools.templates.ui@default:default"/>
390 <setEntry value="org.eclipse.ui.browser@default:default"/>
391 <setEntry value="org.eclipse.ui.cheatsheets@default:default"/>
392 <setEntry value="org.eclipse.ui.console@default:default"/>
393 <setEntry value="org.eclipse.ui.editors@default:default"/>
394 <setEntry value="org.eclipse.ui.externaltools@default:default"/>
395 <setEntry value="org.eclipse.ui.forms@default:default"/>
396 <setEntry value="org.eclipse.ui.ide.application@default:default"/>
397 <setEntry value="org.eclipse.ui.ide@default:default"/>
398 <setEntry value="org.eclipse.ui.intro.quicklinks@default:default"/>
399 <setEntry value="org.eclipse.ui.intro.universal@default:default"/>
400 <setEntry value="org.eclipse.ui.intro@default:default"/>
401 <setEntry value="org.eclipse.ui.monitoring@default:default"/>
402 <setEntry value="org.eclipse.ui.navigator.resources@default:default"/>
403 <setEntry value="org.eclipse.ui.navigator@default:default"/>
404 <setEntry value="org.eclipse.ui.net@default:default"/>
405 <setEntry value="org.eclipse.ui.themes@default:default"/>
406 <setEntry value="org.eclipse.ui.trace@default:default"/>
407 <setEntry value="org.eclipse.ui.views.log@default:default"/>
408 <setEntry value="org.eclipse.ui.views.properties.tabbed@default:default"/>
409 <setEntry value="org.eclipse.ui.views@default:default"/>
410 <setEntry value="org.eclipse.ui.workbench.texteditor@default:default"/>
411 <setEntry value="org.eclipse.ui.workbench@default:default"/>
412 <setEntry value="org.eclipse.ui@default:default"/>
413 <setEntry value="org.eclipse.update.configurator@3:true"/>
414 <setEntry value="org.eclipse.wb.core.lib@default:default"/>
415 <setEntry value="org.eclipse.wst.common.core@default:default"/>
416 <setEntry value="org.eclipse.wst.internet.monitor.core@default:default"/>
417 <setEntry value="org.eclipse.wst.server.core@default:default"/>
418 <setEntry value="org.eclipse.wst.server.discovery@default:default"/>
419 <setEntry value="org.eclipse.wst.server.ui@default:default"/>
420 <setEntry value="org.eclipse.zest.core@default:default"/>
421 <setEntry value="org.eclipse.zest.layouts@default:default"/>
422 <setEntry value="org.glassfish.hk2.api@default:default"/>
423 <setEntry value="org.glassfish.hk2.locator@default:default"/>
424 <setEntry value="org.glassfish.hk2.osgi-resource-locator@default:default"/>
425 <setEntry value="org.glassfish.hk2.utils@default:default"/>
426 <setEntry value="org.glassfish.jersey.apache.connector@default:default"/>
427 <setEntry value="org.glassfish.jersey.bundles.repackaged.jersey-guava@default:default"/>
428 <setEntry value="org.glassfish.jersey.core.jersey-client@default:default"/>
429 <setEntry value="org.glassfish.jersey.core.jersey-common@default:default"/>
430 <setEntry value="org.glassfish.jersey.core.jersey-server@default:default"/>
431 <setEntry value="org.glassfish.jersey.ext.entityfiltering@default:default"/>
432 <setEntry value="org.glassfish.jersey.media.jersey-media-json-jackson@default:default"/>
433 <setEntry value="org.hamcrest.core@default:default"/>
434 <setEntry value="org.hamcrest.library@default:default"/>
435 <setEntry value="org.jboss.reddeer.common@default:default"/>
436 <setEntry value="org.jboss.reddeer.core@default:default"/>
437 <setEntry value="org.jboss.reddeer.direct@default:default"/>
438 <setEntry value="org.jboss.reddeer.eclipse@default:default"/>
439 <setEntry value="org.jboss.reddeer.gef@default:default"/>
440 <setEntry value="org.jboss.reddeer.go@default:default"/>
441 <setEntry value="org.jboss.reddeer.jface@default:default"/>
442 <setEntry value="org.jboss.reddeer.junit.extension@default:default"/>
443 <setEntry value="org.jboss.reddeer.junit@default:default"/>
444 <setEntry value="org.jboss.reddeer.requirements@default:default"/>
445 <setEntry value="org.jboss.reddeer.swt@default:default"/>
446 <setEntry value="org.jboss.reddeer.ui@default:default"/>
447 <setEntry value="org.jboss.reddeer.uiforms@default:default"/>
448 <setEntry value="org.jboss.reddeer.workbench@default:default"/>
449 <setEntry value="org.junit@default:default"/>
450 <setEntry value="org.mandas.docker.client@default:true"/>
451 <setEntry value="org.mockito@default:default"/>
452 <setEntry value="org.objectweb.asm.analysis@default:default"/>
453 <setEntry value="org.objectweb.asm.tree@default:default"/>
454 <setEntry value="org.objectweb.asm.util@default:default"/>
455 <setEntry value="org.objectweb.asm@default:default"/>
456 <setEntry value="org.objenesis@default:default"/>
457 <setEntry value="org.sat4j.core@default:default"/>
458 <setEntry value="org.sat4j.pb@default:default"/>
459 <setEntry value="org.slf4j.api*1.7.10.v20160921-1923@default:default"/>
460 <setEntry value="org.slf4j.api*1.7.2.v20121108-1250@default:default"/>
461 <setEntry value="org.slf4j.impl.log4j12@default:false"/>
462 <setEntry value="org.swtchart@default:default"/>
463 <setEntry value="org.tukaani.xz@default:default"/>
464 <setEntry value="org.w3c.css.sac@default:default"/>
465 <setEntry value="org.w3c.dom.events@default:default"/>
466 <setEntry value="org.w3c.dom.smil@default:default"/>
467 <setEntry value="org.w3c.dom.svg@default:default"/>
468 </setAttribute>
469 <setAttribute key="selected_workspace_bundles">
470 <setEntry value="org.eclipse.linuxtools.docker.core@default:default"/>
471 <setEntry value="org.eclipse.linuxtools.docker.docs@default:default"/>
472 <setEntry value="org.eclipse.linuxtools.docker.editor@default:default"/>
473 <setEntry value="org.eclipse.linuxtools.docker.integration.tests@default:default"/>
474 <setEntry value="org.eclipse.linuxtools.docker.reddeer@default:default"/>
475 <setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap@default:default"/>
476 <setEntry value="org.eclipse.linuxtools.docker.ui.tests@default:default"/>
477 <setEntry value="org.eclipse.linuxtools.docker.ui@default:default"/>
478 </setAttribute>
479 <booleanAttribute key="show_selected_only" value="false"/>
480 <booleanAttribute key="tracing" value="false"/>
481 <booleanAttribute key="useCustomFeatures" value="true"/>
482 <booleanAttribute key="useDefaultConfig" value="true"/>
483 <booleanAttribute key="useDefaultConfigArea" value="false"/>
484 <booleanAttribute key="useProduct" value="false"/>
117485 </launchConfiguration>
44 <parent>
55 <groupId>org.eclipse.linuxtools</groupId>
66 <artifactId>org.eclipse.linuxtools.docker</artifactId>
7 <version>4.4.0</version>
7 <version>5.1.0</version>
88 </parent>
99 <artifactId>org.eclipse.linuxtools.docker.integration.tests</artifactId>
1010 <version>2.2.0-SNAPSHOT</version>
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3232 import org.junit.Before;
3333 import org.junit.Test;
3434
35 import com.spotify.docker.client.DockerClient;
36 import com.spotify.docker.client.exceptions.DockerException;
35 import org.mandas.docker.client.DockerClient;
36 import org.mandas.docker.client.exceptions.DockerException;
3737
3838 /**
3939 *
00 /*******************************************************************************
1 * Copyright (c) 2017,2018 Red Hat, Inc.
1 * Copyright (c) 2017,2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3838 import org.junit.Before;
3939 import org.junit.Test;
4040
41 import com.spotify.docker.client.DockerClient;
41 import org.mandas.docker.client.DockerClient;
4242
4343 public class ContainerLogTest extends AbstractImageBotTest {
4444
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3535 import org.junit.Test;
3636
3737 import com.google.common.collect.ImmutableMap;
38 import com.spotify.docker.client.DockerClient;
39 import com.spotify.docker.client.exceptions.DockerException;
38 import org.mandas.docker.client.DockerClient;
39 import org.mandas.docker.client.exceptions.DockerException;
4040
4141 public class LabelsTest extends AbstractImageBotTest {
4242
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3535 import org.junit.Before;
3636 import org.junit.Test;
3737
38 import com.spotify.docker.client.DockerClient;
38 import org.mandas.docker.client.DockerClient;
3939
4040 public class LinkContainersTest extends AbstractImageBotTest {
4141
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3434 import org.junit.Before;
3535 import org.junit.Test;
3636
37 import com.spotify.docker.client.DockerClient;
38 import com.spotify.docker.client.exceptions.DockerException;
37 import org.mandas.docker.client.DockerClient;
38 import org.mandas.docker.client.exceptions.DockerException;
3939
4040 public class NetworkModeTest extends AbstractImageBotTest {
4141
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3232 import org.junit.Before;
3333 import org.junit.Test;
3434
35 import com.spotify.docker.client.DockerClient;
36 import com.spotify.docker.client.exceptions.DockerException;
35 import org.mandas.docker.client.DockerClient;
36 import org.mandas.docker.client.exceptions.DockerException;
3737
3838 public class PrivilegedModeTest extends AbstractImageBotTest {
3939
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3232 import org.junit.Before;
3333 import org.junit.Test;
3434
35 import com.spotify.docker.client.DockerClient;
36 import com.spotify.docker.client.exceptions.DockerException;
35 import org.mandas.docker.client.DockerClient;
36 import org.mandas.docker.client.exceptions.DockerException;
3737
3838 public class UnconfinedTest extends AbstractImageBotTest {
3939
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3333 import org.junit.Before;
3434 import org.junit.Test;
3535
36 import com.spotify.docker.client.DockerClient;
37 import com.spotify.docker.client.exceptions.DockerException;
38 import com.spotify.docker.client.messages.Container;
39 import com.spotify.docker.client.messages.ContainerInfo;
40 import com.spotify.docker.client.messages.Image;
41 import com.spotify.docker.client.messages.ImageInfo;
36 import org.mandas.docker.client.DockerClient;
37 import org.mandas.docker.client.exceptions.DockerException;
38 import org.mandas.docker.client.messages.Container;
39 import org.mandas.docker.client.messages.ContainerInfo;
40 import org.mandas.docker.client.messages.Image;
41 import org.mandas.docker.client.messages.ImageInfo;
4242
4343 public class VariablesTest extends AbstractImageBotTest {
4444
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3838 import org.junit.Before;
3939 import org.junit.Test;
4040
41 import com.spotify.docker.client.DockerClient;
42 import com.spotify.docker.client.exceptions.DockerException;
41 import org.mandas.docker.client.DockerClient;
42 import org.mandas.docker.client.exceptions.DockerException;
4343
4444 public class VolumeMountTest extends AbstractImageBotTest {
4545
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3030 import org.junit.Before;
3131 import org.junit.Test;
3232
33 import com.spotify.docker.client.DockerClient;
34 import com.spotify.docker.client.messages.Image;
33 import org.mandas.docker.client.DockerClient;
34 import org.mandas.docker.client.messages.Image;
3535
3636 public class HierarchyViewTest extends AbstractImageBotTest {
3737 private static final int DAEMON_MAJOR_VERSION = 11;
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat, Inc.
1 * Copyright (c) 2017, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2121 import org.mockito.ArgumentMatchers;
2222 import org.mockito.Mockito;
2323
24 import com.spotify.docker.client.DockerClient;
25 import com.spotify.docker.client.exceptions.DockerCertificateException;
24 import org.mandas.docker.client.DockerClient;
25 import org.mandas.docker.client.exceptions.DockerCertificateException;
2626
2727 public class MockDockerConnection {
2828
00 /*******************************************************************************
1 * Copyright (c) 2017,2018 Red Hat, Inc.
1 * Copyright (c) 2017,2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2727 import org.eclipse.reddeer.eclipse.ui.browser.WebBrowserView;
2828 import org.eclipse.reddeer.eclipse.ui.console.ConsoleView;
2929
30 import com.spotify.docker.client.DockerClient;
31 import com.spotify.docker.client.messages.ContainerInfo;
30 import org.mandas.docker.client.DockerClient;
31 import org.mandas.docker.client.messages.ContainerInfo;
3232
3333 public class MockUtils {
3434
00 /*******************************************************************************
1 * Copyright (c) 2017,2018 Red Hat, Inc.
1 * Copyright (c) 2017,2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1818
1919 import java.util.List;
2020
21 import org.eclipse.linuxtools.docker.core.IDockerImage;
2221 import org.eclipse.linuxtools.docker.integration.tests.image.AbstractImageBotTest;
2322 import org.eclipse.linuxtools.docker.integration.tests.mock.MockDockerConnectionManager;
2423 import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageSearchPage;
3938 import org.junit.Before;
4039 import org.junit.Test;
4140
42 import com.spotify.docker.client.DockerClient;
41 import org.mandas.docker.client.DockerClient;
4342
4443 public class SearchDialogTest extends AbstractImageBotTest {
4544
9695 .build();
9796 final DockerConnection dockerConnection = MockDockerConnectionFactory.from(DEFAULT_CONNECTION_NAME, client)
9897 .withDefaultTCPConnectionSettings();
99 final IDockerImage image = MockDockerImageFactory.name(IMAGE_NAME + ":" + IMAGE_TAG).connection(dockerConnection).build();
98 MockDockerImageFactory.name(IMAGE_NAME + ":" + IMAGE_TAG).connection(dockerConnection).build();
10099 MockDockerConnectionManager.configureConnectionManager(dockerConnection);
101100 }
102101
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
42 <classpathentry kind="src" path="src">
53 <attributes>
64 <attribute name="test" value="true"/>
75 </attributes>
86 </classpathentry>
7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
8 <attributes>
9 <attribute name="module" value="true"/>
10 </attributes>
11 </classpathentry>
12 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
913 <classpathentry kind="output" path="target/classes"/>
1014 </classpath>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
3 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
4 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 org.eclipse.jdt.core.compiler.compliance=11
6 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
49 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
511 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
12 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
13 org.eclipse.jdt.core.compiler.release=enabled
14 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Activator: org.eclipse.linuxtools.docker.reddeer.Activator
66 Bundle-ActivationPolicy: lazy
77 Bundle-Vendor: Red Hat
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Require-Bundle: org.junit,
1010 org.eclipse.swt,
1111 org.eclipse.ui,
3232 org.eclipse.linuxtools.docker.reddeer.utils,
3333 org.eclipse.linuxtools.docker.reddeer.requirements,
3434 org.eclipse.linuxtools.docker.reddeer
35 Import-Package: org.eclipse.linuxtools.internal.docker.ui.testutils
35 Import-Package: org.eclipse.linuxtools.internal.docker.ui.testutils,
36 javax.annotation;version="1.3.5"
3637 Automatic-Module-Name: org.eclipse.linuxtools.docker.reddeer
44 <parent>
55 <groupId>org.eclipse.linuxtools</groupId>
66 <artifactId>org.eclipse.linuxtools.docker</artifactId>
7 <version>4.4.0</version>
7 <version>5.1.0</version>
88 </parent>
99 <artifactId>org.eclipse.linuxtools.docker.reddeer</artifactId>
1010 <version>2.2.0-SNAPSHOT</version>
00 /*******************************************************************************
1 * Copyright (c) 2017,2018 Red Hat, Inc.
1 * Copyright (c) 2017,2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3131 import org.eclipse.reddeer.swt.impl.menu.ContextMenu;
3232 import org.eclipse.reddeer.swt.impl.shell.DefaultShell;
3333 import org.eclipse.reddeer.swt.impl.text.LabeledText;
34 import org.eclipse.reddeer.swt.impl.toolbar.DefaultToolItem;
3534 import org.eclipse.reddeer.workbench.core.condition.JobIsRunning;
3635
3736 public class DockerConnection extends AbstractDockerExplorerItem {
4544
4645 public void enableConnection() {
4746 select();
48 new DefaultToolItem("Enable Connection").click();
47 // new DefaultToolItem("Enable Connection").click();
48 new ContextMenu().getItem("Refresh").select();
4949 new WaitWhile(new JobIsRunning());
5050 }
5151
202202
203203 public void removeConnection() {
204204 select();
205 new DefaultToolItem("Remove Connection").click();
205 // Use context menu instead of Tab toolbar button as this is not working with 4.17 I-build
206 // new DefaultToolItem("Remove Connection").click();
207 new ContextMenu().getItem("Remove").select();
206208 new WaitWhile(new JobIsRunning());
207209 }
208210
119119 this.browser = browser;
120120 }
121121
122 @Override
122123 public boolean test() {
123124 return !browser.getText().equals("");
124125 }
125126
127 @Override
126128 public String description() {
127129 return "Browser is empty!";
128130 }
11 <feature
22 id="org.eclipse.linuxtools.docker.tests.feature"
33 label="%featureName"
4 version="4.4.0.qualifier"
4 version="5.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1313 <parent>
1414 <groupId>org.eclipse.linuxtools</groupId>
1515 <artifactId>org.eclipse.linuxtools.docker</artifactId>
16 <version>4.4.0</version>
16 <version>5.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.docker.tests.feature</artifactId>
20 <version>4.4.0-SNAPSHOT</version>
20 <version>5.1.0-SNAPSHOT</version>
2121 <packaging>eclipse-feature</packaging>
2222
2323 <name>Linux Tools Docker Tooling Test Feature</name>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/">
55 <attributes>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
22 Bundle-Name: Wrapper for hamcrest
33 Bundle-SymbolicName: org.eclipse.linuxtools.docker.tests.hamcrest-wrap
44 Bundle-Version: 1.2.0.qualifier
5 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
5 Bundle-RequiredExecutionEnvironment: JavaSE-11
66 Require-Bundle: org.hamcrest.core;bundle-version="1.3.0",
77 org.hamcrest.library;bundle-version="1.3.0"
88 Export-Package: org.hamcrest;version="1.3.0"
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.docker.tests.hamcrest-wrap</artifactId>
99 <version>1.2.0-SNAPSHOT</version>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7172 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7273 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7374 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
75 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7476 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7577 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7678 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
107109 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
108110 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
109111 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
110 org.eclipse.jdt.core.compiler.release=disabled
111 org.eclipse.jdt.core.compiler.source=1.8
112 org.eclipse.jdt.core.compiler.release=enabled
113 org.eclipse.jdt.core.compiler.source=11
112114 org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
113115 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
114116 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
1414 sp_cleanup.always_use_parentheses_in_expressions=false
1515 sp_cleanup.always_use_this_for_non_static_field_access=false
1616 sp_cleanup.always_use_this_for_non_static_method_access=false
17 sp_cleanup.convert_functional_interfaces=false
18 sp_cleanup.convert_to_enhanced_for_loop=false
17 sp_cleanup.convert_functional_interfaces=true
18 sp_cleanup.convert_to_enhanced_for_loop=true
1919 sp_cleanup.correct_indentation=false
2020 sp_cleanup.format_source_code=true
2121 sp_cleanup.format_source_code_changes_only=true
2929 sp_cleanup.never_use_parentheses_in_expressions=true
3030 sp_cleanup.on_save_use_additional_actions=true
3131 sp_cleanup.organize_imports=true
32 sp_cleanup.push_down_negation=false
3233 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3334 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3435 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3536 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3637 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3738 sp_cleanup.remove_private_constructors=true
38 sp_cleanup.remove_redundant_modifiers=false
39 sp_cleanup.remove_redundant_modifiers=true
40 sp_cleanup.remove_redundant_semicolons=true
3941 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=false
42 sp_cleanup.remove_trailing_whitespaces=true
4143 sp_cleanup.remove_trailing_whitespaces_all=true
4244 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
45 sp_cleanup.remove_unnecessary_array_creation=true
4346 sp_cleanup.remove_unnecessary_casts=true
4447 sp_cleanup.remove_unnecessary_nls_tags=false
4548 sp_cleanup.remove_unused_imports=false
5154 sp_cleanup.sort_members=false
5255 sp_cleanup.sort_members_all=false
5356 sp_cleanup.use_anonymous_class_creation=false
57 sp_cleanup.use_autoboxing=false
5458 sp_cleanup.use_blocks=false
5559 sp_cleanup.use_blocks_only_for_return_and_throw=false
5660 sp_cleanup.use_lambda=true
6064 sp_cleanup.use_this_for_non_static_method_access=false
6165 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
6266 sp_cleanup.use_type_arguments=false
67 sp_cleanup.use_unboxing=false
11 Bundle-ManifestVersion: 2
22 Bundle-Name: Docker UI Plug-in
33 Bundle-SymbolicName: org.eclipse.linuxtools.docker.ui;singleton:=true
4 Bundle-Version: 4.4.0.qualifier
4 Bundle-Version: 5.1.0.qualifier
55 Bundle-Activator: org.eclipse.linuxtools.docker.ui.Activator
66 Bundle-Vendor: Eclipse Linux Tools
77 Require-Bundle: org.eclipse.ui,
2222 org.eclipse.jface.databinding;bundle-version="1.9.0",
2323 org.eclipse.debug.core;bundle-version="3.10.0",
2424 org.eclipse.debug.ui;bundle-version="3.11.0",
25 com.spotify.docker.client;bundle-version="3.6.8",
26 org.eclipse.linuxtools.docker.editor,
25 org.mandas.docker-client;bundle-version="3.2.1",
2726 org.eclipse.e4.ui.workbench;bundle-version="1.4.0",
2827 org.eclipse.e4.ui.model.workbench;bundle-version="1.2.0",
2928 org.eclipse.tm.terminal.view.ui;bundle-version="4.1.0",
3029 org.eclipse.tm.terminal.view.core;bundle-version="4.0.0",
31 com.ibm.icu,
32 org.apache.commons.compress;bundle-version="1.6.0",
33 javax.xml.bind;bundle-version="2.2.0"
34 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
30 org.apache.commons.compress;bundle-version="1.6.0"
31 Import-Package: javax.xml.bind;version="2.3.3",
32 javax.annotation;version="1.3.5"
33 Bundle-RequiredExecutionEnvironment: JavaSE-11
3534 Bundle-ActivationPolicy: lazy
3635 Bundle-Localization: plugin
3736 Export-Package: org.eclipse.linuxtools.docker.ui,
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.docker.ui</artifactId>
99 <packaging>eclipse-plugin</packaging>
10 <version>4.4.0-SNAPSHOT</version>
10 <version>5.1.0-SNAPSHOT</version>
1111
1212 </project>
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat Inc.
1 * Copyright (c) 2014, 2019 Red Hat Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1818 import org.eclipse.core.runtime.Status;
1919 import org.eclipse.swt.widgets.Shell;
2020 import org.eclipse.ui.IWorkbenchWindow;
21 import org.eclipse.ui.PlatformUI;
2122 import org.eclipse.ui.plugin.AbstractUIPlugin;
2223 import org.osgi.framework.BundleContext;
2324
8081 }
8182
8283 public static Shell getActiveWorkbenchShell() {
83 IWorkbenchWindow window = getDefault().getWorkbench()
84 IWorkbenchWindow window = PlatformUI.getWorkbench()
8485 .getActiveWorkbenchWindow();
8586 if (window != null) {
8687 return window.getShell();
00 /*******************************************************************************
1 * Copyright (c) 2015, 2019 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2015, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
423423
424424 InputStream in = ((DockerConnection) connection).copyContainer(token, containerId, volume);
425425
426 Map<String, String> links = new HashMap<>();
427
426428 synchronized (lockObject) {
427429 if (!dirList.contains(volume)) {
428430 dirList.add(volume);
448450 path = path.append(te.getName());
449451 File f = new File(path.toOSString());
450452 int mode = te.getMode();
453 if (te.isSymbolicLink()) {
454 IPath linkPath = new Path(te.getLinkName());
455 if (!linkPath.isAbsolute()) {
456 if (!isWin) {
457 java.nio.file.Path p = Paths.get(path.toPortableString());
458 java.nio.file.Path link = Paths.get(te.getLinkName());
459 if (f.exists()) {
460 f.delete();
461 }
462 Files.createSymbolicLink(p, link);
463 } else {
464 linkPath = new Path(volume).append(te.getLinkName());
465 links.put(path.toPortableString(), linkPath.toPortableString());
466 }
467 } else {
468 links.put(path.toPortableString(), linkPath.toPortableString());
469 }
470 continue;
471 }
451472 if (te.isDirectory()) {
452473 f.mkdir();
453 if (!isWin && !te.isSymbolicLink()) {
474 if (!isWin) {
454475 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
455476 }
456477 continue;
459480 continue;
460481 }
461482 f.createNewFile();
462 if (!isWin && !te.isSymbolicLink()) {
483 if (!isWin) {
463484 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
464485 }
465486 }
482503 // remove from copying list so subsequent jobs might
483504 // know that the volume
484505 // is fully copied
506 for (String name : links.keySet()) {
507 String link = links.get(name);
508 boolean resolved = false;
509 int i = 0; // prevent infinite loop if there is a circular link
510 while (!resolved && ++i < 10) {
511 InputStream in2 = ((DockerConnection) connection).copyContainer(token, containerId,
512 link);
513 /*
514 * The input stream from copyContainer might be incomplete or non-blocking so we
515 * should wrap it in a stream that is guaranteed to block until data is
516 * available.
517 */
518 try (TarArchiveInputStream k = new TarArchiveInputStream(
519 new BlockingInputStream(in2))) {
520 TarArchiveEntry te = k.getNextTarEntry();
521 if (te != null && te.isSymbolicLink()) {
522 IPath linkPath = new Path(te.getLinkName());
523 if (!linkPath.isAbsolute()) {
524 linkPath = new Path(link).removeLastSegments(1)
525 .append(te.getLinkName());
526 }
527 link = linkPath.toPortableString();
528 continue;
529 }
530 while (te != null) {
531 long size = te.getSize();
532 IPath currDir = target.append(volume).removeLastSegments(1);
533 IPath path = currDir.append(name);
534 File f = new File(path.toOSString());
535 if (te.isSymbolicLink()) {
536 IPath linkPath = new Path(te.getLinkName());
537 if (!linkPath.isAbsolute()) {
538 if (!isWin) {
539 java.nio.file.Path p = Paths.get(path.toPortableString());
540 java.nio.file.Path linkp = Paths.get(te.getLinkName());
541 if (f.exists()) {
542 f.delete();
543 }
544 Files.createSymbolicLink(p, linkp);
545 } else {
546 // we don't follow nested links
547 }
548 } else {
549 // we don't follow nested absolute links
550 }
551 te = k.getNextTarEntry();
552 continue;
553 }
554 int mode = te.getMode();
555 if (te.isDirectory()) {
556 f.mkdir();
557 if (!isWin) {
558 Files.setPosixFilePermissions(Paths.get(path.toOSString()),
559 toPerms(mode));
560 }
561 te = k.getNextTarEntry();
562 continue;
563 }
564 f.createNewFile();
565 if (!isWin) {
566 Files.setPosixFilePermissions(Paths.get(path.toOSString()),
567 toPerms(mode));
568 }
569 try (FileOutputStream os = new FileOutputStream(f)) {
570 int bufferSize = ((int) size > 4096 ? 4096 : (int) size);
571 byte[] barray = new byte[bufferSize];
572 int result = -1;
573 while ((result = k.read(barray, 0, bufferSize)) > -1) {
574 if (monitor.isCanceled()) {
575 monitor.done();
576 k.close();
577 os.close();
578 return Status.CANCEL_STATUS;
579 }
580 os.write(barray, 0, result);
581 }
582 }
583 }
584 resolved = true;
585 }
586 }
587 }
485588 synchronized (lockObject) {
486589 copyingList.remove(currentVolume);
487590 }
548651 }
549652 }
550653 }
551 super.finalize();
552654 }
553655
554656 public ContainerLauncher() {
591693 /**
592694 * Perform a launch of a command in a container and output stdout/stderr to
593695 * console.
594 *
696 *
595697 * @param id
596698 * - id of caller to use to distinguish console owner
597699 * @param listener
634736 /**
635737 * Perform a launch of a command in a container and output stdout/stderr to
636738 * console.
637 *
739 *
638740 * @param id
639741 * - id of caller to use to distinguish console owner
640742 * @param listener
680782 /**
681783 * Perform a launch of a command in a container and output stdout/stderr to
682784 * console.
683 *
785 *
684786 * @param id
685787 * - id of caller to use to distinguish console owner
686788 * @param listener
748850 /**
749851 * Perform a launch of a command in a container and output stdout/stderr to
750852 * console.
751 *
853 *
752854 * @param id
753855 * - id of caller to use to distinguish console owner
754856 * @param listener
803905 /**
804906 * Perform a launch of a command in a container and output stdout/stderr to
805907 * console.
806 *
908 *
807909 * @param id
808910 * - id of caller to use to distinguish console owner
809911 * @param listener
12571359
12581360 /**
12591361 * Fetch directories from Container and place them in a specified location.
1260 *
1362 *
12611363 * @param connectionUri
12621364 * - uri of connection to use
12631365 * @param imageName
12671369 * @param hostDir
12681370 * - host directory to copy directories to
12691371 * @return 0 if successful, -1 if failure occurred
1270 *
1372 *
12711373 * @since 3.0
12721374 */
12731375 public int fetchContainerDirs(String connectionUri, String imageName,
12961398
12971399 /**
12981400 * Fetch directories from Container and place them in a specified location.
1299 *
1401 *
13001402 * @param connectionUri
13011403 * - uri of connection to use
13021404 * @param imageName
13081410 * @param hostDir
13091411 * - host directory to copy directories to
13101412 * @return 0 if successful, -1 if failure occurred
1311 *
1413 *
13121414 * @since 4.0
13131415 */
13141416 public int fetchContainerDirs(String connectionUri, String imageName,
13381440 /**
13391441 * Fetch directories from Container and place them in a specified location.
13401442 * This method will wait for copy job to complete before returning.
1341 *
1443 *
13421444 * @param connectionUri
13431445 * - uri of connection to use
13441446 * @param imageName
13481450 * @param hostDir
13491451 * - host directory to copy directories to
13501452 * @return 0 if successful, -1 if failure occurred
1351 *
1453 *
13521454 * @since 4.0
13531455 */
13541456 public int fetchContainerDirsSync(String connectionUri, String imageName,
13831485 /**
13841486 * Fetch directories from Container and place them in a specified location.
13851487 * This method will wait for copy job to complete before returning.
1386 *
1488 *
13871489 * @param connectionUri
13881490 * - uri of connection to use
13891491 * @param imageName
13931495 * @param hostDir
13941496 * - host directory to copy directories to
13951497 * @return 0 if successful, -1 if failure occurred
1396 *
1498 *
13971499 * @since 4.0
13981500 */
13991501 public int fetchContainerDirsSync(String connectionUri, String imageName,
14291531 /**
14301532 * Create a Process to run an arbitrary command in a Container with uid of
14311533 * caller so any files created are accessible to user.
1432 *
1534 *
14331535 * @param connectionName
14341536 * - uri of connection to use
14351537 * @param imageName
14601562 * - boolean whether to keep Container when done
14611563 * @return Process that can be used to check for completion and for routing
14621564 * stdout/stderr
1463 *
1565 *
14641566 * @since 3.0
14651567 */
1466 public Process runCommand(String connectionName, String imageName, IProject project,
1568 public Process runCommand(String connectionName, String imageName, IProject project,
14671569 IErrorMessageHolder errMsgHolder, String command,
14681570 @SuppressWarnings("unused") String commandDir,
14691571 String workingDir,
14711573 Properties envMap, boolean supportStdin,
14721574 boolean privilegedMode, HashMap<String, String> labels,
14731575 boolean keepContainer) {
1474
1576
14751577 final List<String> cmdList = getCmdList(command);
14761578 return runCommand(connectionName, imageName, project, errMsgHolder,
14771579 cmdList, workingDir, additionalDirs, origEnv, envMap,
14811583 /**
14821584 * Create a Process to run an arbitrary command in a Container with uid of
14831585 * caller so any files created are accessible to user.
1484 *
1586 *
14851587 * @param connectionName
14861588 * - uri of connection to use
14871589 * @param imageName
15101612 * - boolean whether to keep Container when done
15111613 * @return Process that can be used to check for completion and for routing
15121614 * stdout/stderr
1513 *
1615 *
15141616 * @since 4.0
15151617 */
15161618 public Process runCommand(String connectionName, String imageName,
16121714 id += ":" + gid.toString(); //$NON-NLS-1$
16131715 builder = builder.user(id);
16141716 }
1615
1717
16161718 // TODO: add group id here when supported by DockerHostConfig.Builder
16171719
16181720 // add any labels if specified
17751877 errMsgHolder.setErrorMessage(e.getMessage());
17761878 return null;
17771879 }
1778
1880
17791881 final String id = containerId;
17801882 final IDockerConnection conn = connection;
17811883 if (!((DockerConnection) conn).isLocal()) {
18061908
18071909 /**
18081910 * Clean up the container used for launching
1809 *
1911 *
18101912 * @param connectionUri
18111913 * the URI of the connection used
18121914 * @param info
18321934
18331935 /**
18341936 * Get the reusable run console for running C/C++ executables in containers.
1835 *
1937 *
18361938 * @return
18371939 */
18381940 private RunConsole getConsole() {
18451947
18461948 /**
18471949 * Take the command string and parse it into a list of strings.
1848 *
1950 *
18491951 * @param s
18501952 * @return list of strings
18511953 */
19092011 /**
19102012 * Convert map of environment variables to a {@link List} of KEY=VALUE
19112013 * String
1912 *
2014 *
19132015 * @param variables
19142016 * the entries to manipulate
19152017 * @return the concatenated key/values for each given variable entry
19362038 /**
19372039 * Get set of volumes that have been copied from Container to Host as part
19382040 * of fetchContainerDirs method.
1939 *
2041 *
19402042 * @param connectionName
19412043 * - uri of connection used
19422044 * @param imageName
19432045 * - name of image used
19442046 * @return set of paths copied from Container to Host
1945 *
2047 *
19462048 * @since 3.0
19472049 */
19482050 public Set<String> getCopiedVolumes(String connectionName,
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414
1515 import org.eclipse.jface.wizard.Wizard;
1616 import org.eclipse.jface.wizard.WizardPage;
17 import org.eclipse.linuxtools.docker.core.AbstractRegistry;
1718 import org.eclipse.linuxtools.docker.core.IDockerConnection;
1819 import org.eclipse.linuxtools.docker.core.IDockerImage;
1920 import org.eclipse.linuxtools.docker.core.IRegistry;
21 import org.eclipse.linuxtools.internal.docker.core.RegistryInfo;
2022 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageSearchModel;
2123 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageSearchPage;
2224 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageTagSelectionPage;
2426
2527 /**
2628 * Wizard to search for images.
27 *
29 *
2830 */
2931 public class ImageSearch extends Wizard {
3032
4143 private final ImageSearchModel imageSearchModel;
4244
4345 /**
44 * Default Constructor
45 *
46 * @param connection
47 * the current connection to a target Docker daemon
48 * @param name
49 * the current image name or <code>null</code> if not applicable
46 * Constructor
47 *
48 * @param connection the current connection to a target Docker daemon
49 * @param name the current image name or <code>null</code> if not
50 * applicable
51 * @param reg registry to use
5052 */
5153 public ImageSearch(final IDockerConnection connection, final String name, final IRegistry reg) {
5254 setWindowTitle(WizardMessages.getString("ImageSearch.title")); //$NON-NLS-1$
5557 this.imageSearchPage = new ImageSearchPage(this.imageSearchModel, reg);
5658 this.imageTagSelectionPage = new ImageTagSelectionPage(
5759 this.imageSearchModel, reg);
60 }
61
62 /**
63 * Constructor
64 *
65 * @param connection the current connection to a target Docker daemon
66 * @param name the current image name or <code>null</code> if not
67 * applicable
68 * @since 4.7
69 */
70 public ImageSearch(final IDockerConnection connection, final String name) {
71 this(connection, name, new RegistryInfo(AbstractRegistry.DOCKERHUB_REGISTRY, true));
5872 }
5973
6074 @Override
1515 command.pullImage.failure.no_connection=Unable to pull an image: no connection was found in the selection.
1616
1717 command.copyfromcontainer.failure.no_connection=Unable to copy from container: no connection was found.
18 command.copyfromcontainer.failure.possible_circular_links=More than 9 links followed: possible circular links.
1819 command.copyfromcontainer.job.title=Copying files from {0}
1920 command.copyfromcontainer.job.task=Copying files
2021 command.copyfromcontainer.job.subtask=Copying {0}
00 /*******************************************************************************
1 * Copyright (c) 2016, 2019 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2016, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1919 import java.nio.file.Files;
2020 import java.nio.file.Paths;
2121 import java.nio.file.attribute.PosixFilePermission;
22 import java.util.HashMap;
2223 import java.util.HashSet;
2324 import java.util.List;
25 import java.util.Map;
2426 import java.util.Set;
2527
2628 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
5658 public class CopyFromContainerCommandHandler extends AbstractHandler {
5759
5860 private static final String ERROR_COPYING_FROM_CONTAINER_NO_CONNECTION = "command.copyfromcontainer.failure.no_connection"; //$NON-NLS-1$
61 private static final String ERROR_POSSIBLE_CIRCULAR_LINKS = "command.copyfromcontainer.failure.possible_circular_links"; //$NON-NLS-1$
5962 private static final String MISSING_CONNECTION = "missing_connection"; //$NON-NLS-1$
6063 private static final String ERROR_COPYING_FROM_CONTAINER = "command.copyfromcontainer.error.msg"; //$NON-NLS-1$
6164 private static final String COPY_FROM_CONTAINER_JOB_TASK = "command.copyfromcontainer.job.task"; //$NON-NLS-1$
152155 monitor.beginTask(CommandMessages.getString(COPY_FROM_CONTAINER_JOB_TASK), files.size());
153156 boolean isWin = Platform.getOS().equals(Platform.OS_WIN32);
154157 try (Closeable token = ((DockerConnection) connection).getOperationToken()) {
158 Map<String, String> links = new HashMap<>();
155159 for (ContainerFileProxy proxy : files) {
156160 if (monitor.isCanceled()) {
157161 monitor.done();
162166 proxy.getFullPath()));
163167 monitor.worked(1);
164168 InputStream in = ((DockerConnection) connection).copyContainer(token, container.id(),
165 proxy.getLink());
169 proxy.getFullPath());
166170 /*
167171 * The input stream from copyContainer might be incomplete or non-blocking so we
168172 * should wrap it in a stream that is guaranteed to block until data is
176180 path = path.append(te.getName());
177181 File f = new File(path.toOSString());
178182 int mode = te.getMode();
183 if (te.isSymbolicLink()) {
184 IPath linkPath = new Path(te.getLinkName());
185 if (!linkPath.isAbsolute()) {
186 // for relative links, we will create a symbolic link if
187 // we are copying a folder, otherwise, we will follow the
188 // link and copy the file it points to
189 if (!isWin && proxy.isFolder()) {
190 java.nio.file.Path p = Paths.get(path.toPortableString());
191 java.nio.file.Path link = Paths.get(te.getLinkName());
192 if (f.exists()) {
193 f.delete();
194 }
195 Files.createSymbolicLink(p, link);
196 } else {
197 linkPath = new Path(proxy.getFullPath()).removeLastSegments(1)
198 .append(te.getLinkName());
199 links.put(path.toPortableString(), linkPath.toPortableString());
200 }
201 } else {
202 links.put(path.toPortableString(), linkPath.toPortableString());
203 }
204 continue;
205 }
179206 if (te.isDirectory()) {
180207 f.mkdir();
181 if (!isWin && !te.isSymbolicLink()) {
208 if (!isWin) {
182209 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
183210 }
184211 continue;
185 } else {
186 f.createNewFile();
187 if (!isWin && !te.isSymbolicLink()) {
188 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
189 }
212 }
213 f.createNewFile();
214 if (!isWin) {
215 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
190216 }
191217 try (FileOutputStream os = new FileOutputStream(f)) {
192218 int bufferSize = ((int) size > 4096 ? 4096 : (int) size);
209235 .syncExec(() -> MessageDialog.openError(
210236 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
211237 CommandMessages.getFormattedString(ERROR_COPYING_FROM_CONTAINER,
212 proxy.getLink(), container.name()),
238 proxy.getTarget(), container.name()),
213239 e.getCause() != null ? e.getCause().getMessage() : e.getMessage()));
240 }
241 }
242 // resolve absolute links by copying the files
243 for (String name : links.keySet()) {
244 String link = links.get(name);
245 boolean resolved = false;
246 int i = 0; // prevent infinite loop if there is a circular link
247 while (!resolved && ++i < 10) {
248 try {
249 InputStream in = ((DockerConnection) connection).copyContainer(token, container.id(),
250 link);
251 /*
252 * The input stream from copyContainer might be incomplete or non-blocking so we
253 * should wrap it in a stream that is guaranteed to block until data is
254 * available.
255 */
256 try (TarArchiveInputStream k = new TarArchiveInputStream(new BlockingInputStream(in))) {
257 TarArchiveEntry te = k.getNextTarEntry();
258 if (te != null && te.isSymbolicLink()) {
259 IPath linkPath = new Path(te.getLinkName());
260 if (!linkPath.isAbsolute()) {
261 linkPath = new Path(link).removeLastSegments(1).append(te.getLinkName());
262 }
263 link = linkPath.toPortableString();
264 continue;
265 }
266 while (te != null) {
267 long size = te.getSize();
268 IPath path = new Path(name)
269 .append(new Path(te.getName()).removeFirstSegments(1));
270 File f = new File(path.toOSString());
271 if (te.isSymbolicLink()) {
272 IPath linkPath = new Path(te.getLinkName());
273 if (!isWin && !linkPath.isAbsolute()) {
274 java.nio.file.Path p = Paths.get(path.toPortableString());
275 java.nio.file.Path linkp = Paths.get(te.getLinkName());
276 if (f.exists()) {
277 f.delete();
278 }
279 Files.createSymbolicLink(p, linkp);
280 } else {
281 // we don't follow nested links
282 }
283 te = k.getNextTarEntry();
284 continue;
285 }
286 int mode = te.getMode();
287 if (te.isDirectory()) {
288 f.mkdir();
289 if (!isWin) {
290 Files.setPosixFilePermissions(Paths.get(path.toOSString()),
291 toPerms(mode));
292 }
293 te = k.getNextTarEntry();
294 continue;
295 }
296 f.createNewFile();
297 if (!isWin) {
298 Files.setPosixFilePermissions(Paths.get(path.toOSString()), toPerms(mode));
299 }
300 try (FileOutputStream os = new FileOutputStream(f)) {
301 int bufferSize = ((int) size > 4096 ? 4096 : (int) size);
302 byte[] barray = new byte[bufferSize];
303 int result = -1;
304 while ((result = k.read(barray, 0, bufferSize)) > -1) {
305 if (monitor.isCanceled()) {
306 monitor.done();
307 k.close();
308 os.close();
309 return Status.CANCEL_STATUS;
310 }
311 os.write(barray, 0, result);
312 }
313 }
314 te = k.getNextTarEntry();
315 }
316 resolved = true;
317 }
318 } catch (final DockerException e) {
319 Display.getDefault()
320 .syncExec(() -> MessageDialog.openError(
321 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
322 CommandMessages.getFormattedString(ERROR_COPYING_FROM_CONTAINER, name,
323 container.name()),
324 e.getCause() != null ? e.getCause().getMessage() : e.getMessage()));
325 }
326 }
327 if (i == 10) {
328 Display.getDefault()
329 .syncExec(() -> MessageDialog.openError(
330 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
331 CommandMessages.getFormattedString(ERROR_COPYING_FROM_CONTAINER, name,
332 container.name()),
333 CommandMessages.getString(ERROR_POSSIBLE_CIRCULAR_LINKS)));
334
214335 }
215336 }
216337 } catch (InterruptedException e) {
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat Inc. and others.
1 * Copyright (c) 2015, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3232 import org.eclipse.ui.PlatformUI;
3333 import org.eclipse.ui.handlers.HandlerUtil;
3434
35 import com.spotify.docker.client.exceptions.DockerCertificateException;
35 import org.mandas.docker.client.exceptions.DockerCertificateException;
3636
3737 /**
3838 * Command handler that opens the {@link ImageSearch} wizard and pulls the
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2014, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1515 import static org.eclipse.linuxtools.internal.docker.ui.commands.CommandUtils.getRunConsole;
1616
1717 import java.io.OutputStream;
18 import java.util.ArrayList;
19 import java.util.List;
1820
1921 import org.eclipse.core.commands.AbstractHandler;
2022 import org.eclipse.core.commands.ExecutionEvent;
6971 if (runImage) {
7072 final IDockerContainerConfig containerConfig = wizard
7173 .getDockerContainerConfig();
74 List<String> unusedPorts = new ArrayList<>();
7275 final IDockerHostConfig hostConfig = wizard
73 .getDockerHostConfig();
76 .getDockerHostConfig(unusedPorts);
7477 runImage(selectedImage, containerConfig, null,
75 hostConfig, wizard.getDockerContainerName(),
78 hostConfig, unusedPorts, wizard.getDockerContainerName(),
7679 wizard.removeWhenExits());
7780 }
7881 } catch (DockerException | CoreException e) {
8487
8588 /**
8689 * Run the given {@link IDockerImage} with the given settings
87 *
90 *
8891 * @param image
8992 * @param containerConfig
9093 * @param hostConfig
9497 public static void runImage(final IDockerImage image,
9598 final IDockerContainerConfig containerConfig,
9699 final ILaunch launch,
97 final IDockerHostConfig hostConfig, final String containerName,
100 final IDockerHostConfig hostConfig,
101 final List<String> unusedPorts,
102 final String containerName,
98103 final boolean removeWhenExits) {
99104 final IDockerConnection connection = image.getConnection();
100105 if (containerConfig.tty()) {
163168 // create a launch configuration from the container
164169 LaunchConfigurationUtils.createRunImageLaunchConfiguration(image,
165170 containerConfig,
166 hostConfig, containerName,
171 hostConfig, unusedPorts, containerName,
167172 removeWhenExits);
168173 } catch (final DockerException | InterruptedException e) {
169174 if (console != null) {
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2015, 2019 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2929 implements IConsolePageParticipant, IDebugEventSetListener {
3030
3131 private DockerComposeConsole dockerComposeConsole;
32 private IPageBookViewPage dockerComposeConsolePage;
3332 private DockerComposeStopAction stopAction;
3433
3534 private boolean dockerComposeConsoleTerminated = false;
4241 @Override
4342 public void init(final IPageBookViewPage dockerComposeConsolePage,
4443 final IConsole console) {
45 this.dockerComposeConsolePage = dockerComposeConsolePage;
4644 this.dockerComposeConsole = (DockerComposeConsole) console;
4745 this.stopAction = new DockerComposeStopAction(
4846 dockerComposeConsole.getConnection(),
00 /*******************************************************************************
1 * Copyright (c) 2017, 2019 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2017, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
220220 LaunchMessages.getFormattedString(
221221 "ContainerNotFinished.msg", containerId)); //$NON-NLS-1$
222222 }
223 return state.exitCode();
223 return state.exitCode().intValue();
224224 }
225225 }
226226 if (containerRemoved) {
275275 containerRemoved = true;
276276 connection.removeContainer(containerId);
277277 }
278 return exit.statusCode();
278 return exit.statusCode().intValue();
279279 } catch (DockerException e) {
280280 return -1;
281281 }
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
4141
4242 String PUBLISHED_PORTS = "publishedPorts"; //$NON-NLS-1$
4343
44 String UNUSED_PORTS = "unusedPorts"; //$NON-NLS-1$
45
4446 String LINKS = "links"; //$NON-NLS-1$
4547
4648 String INTERACTIVE = "interactive"; //$NON-NLS-1$
00 /*******************************************************************************
1 * Copyright (c) 2015,2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3535 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.PUBLISHED_PORTS;
3636 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.PUBLISH_ALL_PORTS;
3737 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.READONLY;
38 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.UNUSED_PORTS;
3839
3940 import java.text.SimpleDateFormat;
4041 import java.util.ArrayList;
106107 /**
107108 * Creates a new {@link ILaunchConfiguration} for the given
108109 * {@link IDockerContainer}.
109 *
110 *
110111 * @param baseConfigurationName
111112 * the base configuration name to use when creating the
112113 * {@link ILaunchConfiguration}.
122123 * @param removeWhenExits
123124 * flag to indicate if container should be removed when exited
124125 * @return the generated {@link ILaunchConfiguration}
125 *
126 *
126127 */
127128 public static ILaunchConfiguration createRunImageLaunchConfiguration(
128129 final IDockerImage image,
129130 final IDockerContainerConfig containerConfig,
130 final IDockerHostConfig hostConfig, final String containerName,
131 final IDockerHostConfig hostConfig,
132 final List<String> unusedPorts,
133 final String containerName,
131134 final boolean removeWhenExits) {
132135 try {
133136 final ILaunchManager manager = DebugPlugin.getDefault()
174177 } else {
175178 workingCopy.setAttribute(PUBLISHED_PORTS,
176179 serializePortBindings(hostConfig.portBindings()));
180 workingCopy.setAttribute(UNUSED_PORTS, unusedPorts);
177181 }
178182 // links (with format being: "<containerName>:<containerAlias>")
179183 workingCopy.setAttribute(LINKS, hostConfig.links());
199203 volumes.add(volume.toString());
200204 }
201205 }
206 // volumes with no external mount
207 for (String volumePath : containerConfig.volumes().keySet()) {
208 final DataVolumeModel volume = new DataVolumeModel(volumePath);
209 volumes.add(volume.toString());
210 }
202211 // TODO: container path declaration
203212
204213 workingCopy.setAttribute(DATA_VOLUMES, volumes);
213222 if (hostConfig.networkMode() != null)
214223 workingCopy.setAttribute(NETWORK_MODE,
215224 hostConfig.networkMode());
216
225
217226 // resources limitations
218227 if (containerConfig.memory() != null) {
219228 workingCopy.setAttribute(ENABLE_LIMITS, true);
244253 /**
245254 * Serializes the given Port Bindings to save them in an
246255 * {@link ILaunchConfiguration}
247 *
256 *
248257 * @param bindings
249258 * @return a {@link List} of port bindings serialized in the following
250259 * format:
277286 /**
278287 * Serializes the given Port Bindings to save them in an
279288 * {@link ILaunchConfiguration}
280 *
289 *
281290 * @param bindings
282291 * @return a {@link List} of port bindings serialized in the following
283292 * format:
309318 /**
310319 * Deserializes the given Port Bindings to use them in an
311320 * {@link ILaunchConfiguration}
312 *
321 *
313322 * @param bindings
314323 * a {@link List} of serialized bindings
315324 * @return a {@link Map} of {@link List} of {@link IDockerPortBinding}
341350
342351 /**
343352 * Computes the size of the given {@link Button} and returns the width.
344 *
353 *
345354 * @param button
346355 * the button for which the size must be computed.
347356 * @return the width hint for the given button
358367 /**
359368 * Looks-up the {@link ILaunchConfiguration} with the given type and
360369 * <strong>IDockerImage's name</strong>.
361 *
370 *
362371 * @param type
363372 * the configuration type
364373 * @param imageName
376385 /**
377386 * Looks-up the {@link ILaunchConfiguration} with the given type and
378387 * <strong>IDockerImage's name</strong>.
379 *
388 *
380389 * @param type
381390 * the configuration type
382391 * @param imageName
411420 /**
412421 * Returns the {@link ILaunchConfigurationWorkingCopy} with the given type
413422 * and <strong>IDockerImage's name</strong>.
414 *
423 *
415424 * @param type
416425 * the configuration type
417426 * @param imageName
441450 /**
442451 * Looks-up the {@link ILaunchConfiguration} with the given type and
443452 * <strong>name</strong>.
444 *
453 *
445454 * @param type
446455 * the configuration type
447456 * @param name
467476 /**
468477 * Converts the given <code>path</code> to a Unix path if the current OS if
469478 * {@link Platform#OS_WIN32}
470 *
479 *
471480 * @param path
472481 * the path to convert
473482 * @return the converted path or the given path, depending on the current
484493 /**
485494 * Converts the given path to a portable form, replacing all "\" and ": "
486495 * with "/" if the given <code>os</code> is {@link Platform#OS_WIN32}.
487 *
496 *
488497 * @param os
489498 * the current OS
490499 * @param path
513522 /**
514523 * Converts the given <code>path</code> back to a Windows path if the
515524 * current OS if {@link Platform#OS_WIN32}.
516 *
525 *
517526 * <p>
518527 * Note: This is the revert operation of
519528 * {@link LaunchConfigurationUtils#convertToUnixPath(String)}.
520529 * </p>
521 *
530 *
522531 * @param path
523532 * the path to convert
524533 * @return the converted path or the given path, depending on the current
535544 /**
536545 * Converts the given path to a portable form, replacing all "\" and ": "
537546 * with "/" if the given <code>os</code> is {@link Platform#OS_WIN32}.
538 *
547 *
539548 * @param os
540549 * the current OS
541550 * @param path
563572 /**
564573 * Creates a Launch Configuration name from the given repoName or from the
565574 * given resource's project if the repoName was <code>null</code>.
566 *
575 *
567576 * @param imageName
568577 * the full image name
569578 * @param resource
601610 /**
602611 * Creates a new {@link ILaunchConfiguration} to build an
603612 * {@link IDockerImage} from a Dockerfile {@link IResource}.
604 *
613 *
605614 * @param connection
606615 * the connection to use to submit the build
607616 * @param repoName
638647 /**
639648 * Creates an {@link ILaunchConfiguration} for to run the
640649 * {@code docker-compose up} command.
641 *
650 *
642651 * @param connection
643652 * the Docker connection to use
644653 * @param dockerComposeScript
675684 /**
676685 * Creates a Launch Configuration name from the given
677686 * {@code dockerComposeScript}.
678 *
687 *
679688 * @param dockerComposeScript
680689 * the name of the {@code Docker Compose} script
681690 * @return the {@link ILaunchConfiguration} name
690699 * Updates all {@link ILaunchConfiguration} of the given {@code type} where
691700 * there is an attribute with the given {@code attributeName} of the given
692701 * {@code oldValue}, and sets the {@code newValue} instead.
693 *
702 *
694703 * @param type
695704 * the type of {@link ILaunchConfiguration} to find
696705 * @param attributeName
00 /*******************************************************************************
1 * Copyright (c) 2015,2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
6969 launch,
7070 hostConfig,
7171 config.getAttribute(
72 IRunDockerImageLaunchConfigurationConstants.UNUSED_PORTS, new ArrayList<String>()),
73 config.getAttribute(
7274 IRunDockerImageLaunchConfigurationConstants.CONTAINER_NAME,
7375 (String) null),
7476 config.getAttribute(
105107 .deserializePortBindings(serializedBindings);
106108 hostConfigBuilder.portBindings(portBindings);
107109 }
108
110
109111 // container links
110112 final List<String> links = config.getAttribute(
111113 IRunDockerImageLaunchConfigurationConstants.LINKS,
127129 bind.append(",ro"); //$NON-NLS-1$
128130 }
129131 binds.add(bind.toString());
130
132
131133 }
132134 hostConfigBuilder.binds(binds);
133
135
134136 // run in privileged mode
135137 final boolean privileged = config.getAttribute(
136138 IRunDockerImageLaunchConfigurationConstants.PRIVILEGED,
187189 IRunDockerImageLaunchConfigurationConstants.ENV_VARIABLES,
188190 new ArrayList<String>());
189191 config.env(environmentVariables);
190
192
191193 // labels
192194 final Map<String, String> labelVariables = lconfig.getAttribute(
193195 IRunDockerImageLaunchConfigurationConstants.LABELS,
250252 /**
251253 * Show a selection dialog that allows the user to choose one of the
252254 * connections to use to build the Image.
253 *
255 *
254256 * @param connections
255257 * Array of connections.
256258 * @return The chosen connection, or <code>null</code> if the user cancelled
282284
283285 /**
284286 * Get the active Workbench shell.
285 *
287 *
286288 * @return active shell as returned by the plug-in
287289 */
288290 protected Shell getActiveWorkbenchShell() {
00 /*******************************************************************************
1 * Copyright (c) 2015, 2019 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2015, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
338338 final List<String> publishedPorts = configuration.getAttribute(
339339 IRunDockerImageLaunchConfigurationConstants.PUBLISHED_PORTS,
340340 new ArrayList<String>());
341 final List<String> unusedPorts = configuration
342 .getAttribute(IRunDockerImageLaunchConfigurationConstants.UNUSED_PORTS, new ArrayList<String>());
341343 final Set<ExposedPortModel> selectedPorts = new HashSet<>();
342344 for (String port : publishedPorts) {
343345 final ImageRunSelectionModel.ExposedPortModel exposedPort = ImageRunSelectionModel.ExposedPortModel
347349 selectedPorts.add(exposedPort);
348350 }
349351 }
352 for (String port : unusedPorts) {
353 final ImageRunSelectionModel.ExposedPortModel exposedPort = ImageRunSelectionModel.ExposedPortModel
354 .createPortModel(port);
355 exposedPort.setSelected(false);
356 model.addExposedPort(exposedPort);
357 }
358
350359 // select ports
351360 model.setSelectedPorts(selectedPorts);
352361
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
1 * Copyright (c) 2014, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4040 new Object[] { "Images", connectionInfo.getImages() }, //$NON-NLS-1$
4141 new Object[] { "Storage driver", //$NON-NLS-1$
4242 connectionInfo.getStorageDriver() },
43 new Object[] { "Execution driver", //$NON-NLS-1$
44 connectionInfo.getExecutionDriver() },
4543 new Object[] { "Kernel version", //$NON-NLS-1$
4644 connectionInfo.getKernelVersion() },
4745 new Object[] { "Operating system", connectionInfo.getOs() }, //$NON-NLS-1$
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2222 import org.eclipse.jface.viewers.Viewer;
2323 import org.eclipse.linuxtools.docker.core.IDockerContainerConfig;
2424 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
25 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo2;
2526 import org.eclipse.linuxtools.docker.core.IDockerContainerState;
2627 import org.eclipse.linuxtools.docker.core.IDockerHostConfig;
2728 import org.eclipse.linuxtools.docker.core.IDockerNetworkSettings;
6364 new Object[]{"Path", info.path()}, //$NON-NLS-1$
6465 new Object[]{"ProcessLabel", info.processLabel()}, //$NON-NLS-1$
6566 new Object[]{"ResolvConfPath", info.resolvConfPath()}, //$NON-NLS-1$
66 new Object[]{"Volumes", info.volumes()}, //$NON-NLS-1$
67 new Object[]{"VolumesRW", info.volumesRW()}, //$NON-NLS-1$
67 new Object[] { "Mounts", ((IDockerContainerInfo2) info).mounts() }, //$NON-NLS-1$
6868 };
6969 }return EMPTY;
7070 }
8080 new Object[]{"Running", containerState.running()}, //$NON-NLS-1$
8181 new Object[]{"Paused", containerState.paused()}, //$NON-NLS-1$
8282 new Object[]{"Pid", containerState.pid()}, //$NON-NLS-1$
83 };
83 };
8484 } else if(propertyValue instanceof IDockerHostConfig) {
8585 final DockerHostConfig hostConfig = (DockerHostConfig) propertyValue;
8686 return new Object[] {
173173 i++;
174174 }
175175 return result;
176 }
176 }
177177 return EMPTY;
178178 }
179179
210210 }
211211 return false;
212212 }
213
213
214214 }
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
2 *
1 * Copyright (c) 2015, 2019 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3535 private final static String PropertiesInfoError = "PropertiesInfoError.msg"; //$NON-NLS-1$
3636 private final static String PropertiesLoadingImageInfo = "PropertiesLoadingImageInfo.msg"; //$NON-NLS-1$
3737
38 private IDockerImage selectedImage;
39 private Object imageInfo;
40
4138 @Override
4239 public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
4340 super.createControls(parent, aTabbedPropertySheetPage);
4441 getTreeViewer().setContentProvider(new ImageInspectContentProvider());
4542 }
46
43
4744 @Override
4845 public void setInput(final IWorkbenchPart part, final ISelection selection) {
4946 super.setInput(part, selection);
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2015, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
4040 import org.eclipse.jface.viewers.ComboViewer;
4141 import org.eclipse.linuxtools.docker.core.IDockerConnection;
4242 import org.eclipse.linuxtools.docker.core.IDockerContainer;
43 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
43 import org.eclipse.linuxtools.docker.core.IDockerContainerInfo2;
44 import org.eclipse.linuxtools.docker.core.IDockerContainerMount;
4445 import org.eclipse.linuxtools.internal.docker.ui.SWTImagesFactory;
4546 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageRunResourceVolumesVariablesModel.MountType;
4647 import org.eclipse.swt.SWT;
293294 * selected, and set the enablement of the associated {@link Control} at the
294295 * same time (ie: the {@link Control} are only enabled when the given
295296 * {@link Button} is selected.
296 *
297 *
297298 * @param button
298299 * the {@link Button} to bind
299300 * @param mountType
360361 /**
361362 * Creates an {@link IContentProposalProvider} to propose
362363 * {@link IDockerContainer} names based on the current text.
363 *
364 *
364365 * @param items
365366 * @return
366367 */
436437 // just make sure that the dialog cannot complete
437438 return ValidationStatus.error(null);
438439 }
439 final IDockerContainerInfo selectedContainerInfo = container.info();
440 if (selectedContainerInfo != null
441 && selectedContainerInfo.volumes() != null
442 && !selectedContainerInfo.volumes()
443 .containsKey(model.getContainerPath())) {
444 return ValidationStatus
445 .warning(WizardMessages.getFormattedString(
446 "ContainerDataVolumeDialog.volumeWarning", //$NON-NLS-1$
447 model.getContainerPath()));
440 final IDockerContainerInfo2 selectedContainerInfo = (IDockerContainerInfo2) container.info();
441 if (selectedContainerInfo != null && selectedContainerInfo.mounts() != null
442 && model.getContainerPath() != null) {
443 boolean shouldWarn = true;
444 for (IDockerContainerMount mount : selectedContainerInfo.mounts()) {
445 if (model.getContainerPath().equals(mount.source())) {
446 shouldWarn = false;
447 break;
448 }
449 }
450 if (shouldWarn) {
451 return ValidationStatus
452 .warning(WizardMessages.getFormattedString("ContainerDataVolumeDialog.volumeWarning", //$NON-NLS-1$
453 model.getContainerPath()));
454
455 }
448456 }
449457 }
450458 return ValidationStatus.ok();
00 /*******************************************************************************
1 * Copyright (c) 2014, 2019 Red Hat Inc. and others.
1 * Copyright (c) 2014, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
6161 import org.eclipse.swt.widgets.Text;
6262 import org.eclipse.ui.PlatformUI;
6363
64 import com.spotify.docker.client.exceptions.DockerCertificateException;
64 import org.mandas.docker.client.exceptions.DockerCertificateException;
6565
6666 /**
6767 * {@link WizardPage} to edit an {@link IDockerConnection}
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3737 import org.eclipse.linuxtools.internal.docker.core.DockerPortBinding;
3838 import org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants;
3939 import org.eclipse.linuxtools.internal.docker.ui.launch.LaunchConfigurationUtils;
40 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageRunResourceVolumesVariablesModel.MountType;
4041 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageRunSelectionModel.ContainerLinkModel;
4142 import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageRunSelectionModel.ExposedPortModel;
4243
5253 /**
5354 * Constructor when an {@link IDockerConnection} has been selected to run an
5455 * {@link IDockerImage}.
55 *
56 *
5657 * @param connection
5758 * the {@link IDockerConnection} pointing to a specific Docker
5859 * daemon/host.
7071
7172 /**
7273 * Full constructor with a selected {@link IDockerImage} to run.
73 *
74 *
7475 * @param selectedImage
7576 * the {@link IDockerImage} to use to fill the wizard pages
7677 * @throws DockerException
124125 return this.imageRunSelectionPage.getModel().isRemoveWhenExits();
125126 }
126127
127 public IDockerHostConfig getDockerHostConfig() {
128 public IDockerHostConfig getDockerHostConfig(List<String> unusedPorts) {
128129 final ImageRunSelectionModel selectionModel = this.imageRunSelectionPage
129130 .getModel();
130131 final ImageRunResourceVolumesVariablesModel resourcesModel = this.imageRunResourceVolumesPage
133134 .getModel();
134135
135136 final DockerHostConfig.Builder hostConfigBuilder = new DockerHostConfig.Builder();
137
136138 if (selectionModel.isPublishAllPorts()) {
137139 hostConfigBuilder.publishAllPorts(true);
138140 } else {
140142 for (ExposedPortModel exposedPort : selectionModel.getExposedPorts()) {
141143 // only selected Ports in the CheckboxTableViewer are exposed.
142144 if (!selectionModel.getSelectedPorts().contains(exposedPort)) {
145 StringBuilder b = new StringBuilder();
146 b.append(exposedPort.getContainerPort());
147 b.append("/");
148 b.append(exposedPort.getPortType());
149 b.append(":"); //$NON-NLS-1$
150 if (exposedPort.getHostAddress() != null) {
151 b.append(exposedPort.getHostAddress());
152 }
153 b.append(":"); //$NON-NLS-1$
154 b.append(exposedPort.getHostPort());
155 unusedPorts.add(b.toString());
143156 continue;
144157 }
145158 final DockerPortBinding portBinding = new DockerPortBinding(exposedPort.getHostAddress(),
261274 }
262275 config.exposedPorts(exposedPorts);
263276 }
277
278 Map<String, String> emptyMap = new HashMap<>();
279 @SuppressWarnings("rawtypes")
280 Map<String, Map> volumes = new HashMap<>();
281 for (DataVolumeModel dataVolume : resourcesModel.getDataVolumes()) {
282 // only data volumes selected in the CheckBoxTableViewer are
283 // included.
284 if (!resourcesModel.getSelectedDataVolumes().contains(dataVolume)) {
285 continue;
286 }
287 if (dataVolume.getMountType() == MountType.NONE) {
288 volumes.put(dataVolume.getContainerPath(), emptyMap);
289 }
290 }
291 if (!volumes.isEmpty()) {
292 config.volumes(volumes);
293 }
294
264295 return config.build();
265296 }
266297
00 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat.
2 *
1 * Copyright (c) 2014, 2020 Red Hat.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3232
3333 /**
3434 * Databinding model for the {@link ImageRunSelectionPage}
35 *
35 *
3636 * @author xcoulon
3737 *
3838 */
372372
373373 /**
374374 * Set the container links
375 *
375 *
376376 * @param links
377377 * in the following format:
378378 * <code>&lt;containerName&gt;:&lt;containerAlias&gt;</code>
476476 /**
477477 * Parses and converts the {@link List} of the given {@link String}
478478 * values into a {@link List} of {@link ExposedPortModel}
479 *
479 *
480480 * @param exposedPortInfos
481481 * the input values
482482 * @return the corresponding {@link ExposedPortModel}s
497497 /**
498498 * Parse the given value and returns an instance of
499499 * {@link ExposedPortModel}.
500 *
500 *
501501 * @param exposedPortInfo
502502 * the value to parse
503503 * @return the corresponding {@link ExposedPortModel}
511511 if (firstColumnSeparator == -1 && exposedPortInfo
512512 .indexOf(CONTAINER_TYPE_SEPARATOR) != -1) {
513513 final String type = exposedPortInfo.substring(
514 exposedPortInfo.indexOf(CONTAINER_TYPE_SEPARATOR)); // $NON-NLS-1$
514 exposedPortInfo.indexOf(CONTAINER_TYPE_SEPARATOR) + 1); // $NON-NLS-1$
515515 final ExposedPortModel exposedPort = new ExposedPortModel(
516516 privatePort, type, "", privatePort); // $NON-NLS-1$
517517 return exposedPort; // $NON-NLS-1$
520520 .indexOf(SEPARATOR,
521521 firstColumnSeparator + 1);
522522 final String type = exposedPortInfo.substring(
523 exposedPortInfo.indexOf(CONTAINER_TYPE_SEPARATOR), // $NON-NLS-1$
523 exposedPortInfo.indexOf(CONTAINER_TYPE_SEPARATOR)
524 + 1, // $NON-NLS-1$
524525 firstColumnSeparator); // $NON-NLS-1$
525526 final String hostIP = exposedPortInfo.substring(
526527 firstColumnSeparator + 1, secondColumnSeparator);
534535
535536 /**
536537 * Full constructor
537 *
538 *
538539 * @param privatePort
539540 * @param portType
540541 * @param hostAddress
553554
554555 /**
555556 * Create an ExposedPortModel from its toString output
556 *
557 *
557558 * @param stringValue
558559 * @return ExposedPortModel
559560 */
00 /*******************************************************************************
1 * Copyright (c) 2014, 2019 Red Hat Inc. and others.
2 *
1 * Copyright (c) 2014, 2020 Red Hat Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2222 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.PUBLISHED_PORTS;
2323 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.PUBLISH_ALL_PORTS;
2424 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.READONLY;
25 import static org.eclipse.linuxtools.internal.docker.ui.launch.IRunDockerImageLaunchConfigurationConstants.UNUSED_PORTS;
2526
2627 import java.lang.reflect.InvocationTargetException;
2728 import java.util.ArrayList;
102103 /**
103104 * A {@link WizardPage} to let the user select the {@link IDockerImage} to run
104105 * and select the most common arguments (container name, port settings, etc.)
105 *
106 *
106107 * @author xcoulon
107108 *
108109 */
124125
125126 /**
126127 * Default constructor.
127 *
128 *
128129 * @param selectedImage
129130 * the {@link IDockerImage} to run
130131 * @param lastLaunchConfiguration
131132 * the last {@link ILaunchConfiguration} used to run this
132133 * {@link IDockerImage} or <code>null</code> if none exists.
133 *
134 *
134135 */
135136 public ImageRunSelectionPage(final IDockerImage selectedImage,
136137 final ILaunchConfiguration lastLaunchConfiguration) {
145146
146147 /**
147148 * Default constructor.
148 *
149 *
149150 * @param selectedConnection
150151 * the {@link IDockerConnection} to run
151 *
152 *
152153 */
153154 public ImageRunSelectionPage(final IDockerConnection selectedConnection) {
154155 super("ImageSelectionPage", //$NON-NLS-1$
268269 /**
269270 * Creates the {@link Composite} container that will display widgets to
270271 * select an {@link IDockerImage}, name it and specify the command to run.
271 *
272 *
272273 * @param container
273274 * the parent {@link Composite}
274275 */
465466 exposedPortsTableViewer, ExposedPortModel.class),
466467 BeanProperties.set(ImageRunSelectionModel.SELECTED_PORTS)
467468 .observe(model));
468 checkAllElements(exposedPortsTableViewer);
469469
470470 // disable the edit and removeButton if the table is empty
471471 exposedPortsTableViewer.addSelectionChangedListener(
473473
474474 togglePortMappingControls(exposedPortsTableViewer.getTable(), addButton,
475475 removeButton);
476 }
477
478 private void checkAllElements(
479 final CheckboxTableViewer exposedPortsTableViewer) {
480 exposedPortsTableViewer.setAllChecked(true);
481 model.setSelectedPorts(
482 new HashSet<>(model.getExposedPorts()));
483476 }
484477
485478 private ISelectionChangedListener onSelectionChanged(
720713 /**
721714 * Creates an {@link IContentProposalProvider} to propose
722715 * {@link IDockerImage} names based on the current text.
723 *
716 *
724717 * @param items
725718 * @return
726719 */
858851 final List<String> exposedPortInfos = lastLaunchConfiguration
859852 .getAttribute(PUBLISHED_PORTS,
860853 Collections.<String> emptyList());
854 final List<String> unusedPortInfos = lastLaunchConfiguration.getAttribute(UNUSED_PORTS,
855 Collections.<String>emptyList());
861856 // FIXME: handle the case where ports where added (and selected)
862857 // by the user.
863858 if (selectedImageInfo != null) {
864 final List<ExposedPortModel> exposedPorts = ExposedPortModel
865 .fromStrings(
866 selectedImageInfo.config().exposedPorts());
867 model.setExposedPorts(exposedPorts);
868 final List<ExposedPortModel> selectedExposedPorts = ExposedPortModel
869 .fromStrings(exposedPortInfos);
870 this.model.setSelectedPorts(
871 new HashSet<>(selectedExposedPorts));
859 if (exposedPortInfos.isEmpty()) {
860 final List<ExposedPortModel> exposedPorts = ExposedPortModel
861 .fromStrings(selectedImageInfo.config().exposedPorts());
862 model.setExposedPorts(exposedPorts);
863 this.model.setSelectedPorts(new HashSet<>(exposedPorts));
864 } else {
865 final List<ExposedPortModel> exposedPorts = ExposedPortModel.fromStrings(exposedPortInfos);
866 model.setExposedPorts(exposedPorts);
867 this.model.setSelectedPorts(new HashSet<>(exposedPorts));
868 }
869 for (String port : unusedPortInfos) {
870 ExposedPortModel portModel = ExposedPortModel.fromString(port);
871 portModel.setSelected(false);
872 model.addExposedPort(portModel);
873 }
872874 }
873875
874876 // links
00 /*******************************************************************************
1 * Copyright (c) 2014, 2019 Red Hat Inc. and others
1 * Copyright (c) 2014, 2020 Red Hat Inc. and others
22 * .
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
8282 import org.eclipse.ui.dialogs.ListDialog;
8383 import org.eclipse.ui.dialogs.PreferencesUtil;
8484
85 import com.spotify.docker.client.exceptions.DockerCertificateException;
85 import org.mandas.docker.client.exceptions.DockerCertificateException;
8686
8787 /**
8888 * {@link WizardPage} to input the settings to connect to a Docker
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/">
55 <attributes>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2525 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2626 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2727 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2829 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2930 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3031 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7071 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7172 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7273 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
74 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7375 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7476 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7577 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
102104 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
103105 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
104106 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
105 org.eclipse.jdt.core.compiler.source=1.8
107 org.eclipse.jdt.core.compiler.release=enabled
108 org.eclipse.jdt.core.compiler.source=11
1212 sp_cleanup.always_use_parentheses_in_expressions=false
1313 sp_cleanup.always_use_this_for_non_static_field_access=false
1414 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=false
15 sp_cleanup.convert_functional_interfaces=true
1616 sp_cleanup.convert_to_enhanced_for_loop=false
17 sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
1718 sp_cleanup.correct_indentation=false
1819 sp_cleanup.format_source_code=true
1920 sp_cleanup.format_source_code_changes_only=true
2021 sp_cleanup.insert_inferred_type_arguments=false
22 sp_cleanup.lazy_logical_operator=false
2123 sp_cleanup.make_local_variable_final=true
2224 sp_cleanup.make_parameters_final=false
2325 sp_cleanup.make_private_fields_final=true
2426 sp_cleanup.make_type_abstract_if_missing_method=false
2527 sp_cleanup.make_variable_declarations_final=false
28 sp_cleanup.merge_conditional_blocks=false
2629 sp_cleanup.never_use_blocks=false
2730 sp_cleanup.never_use_parentheses_in_expressions=true
31 sp_cleanup.number_suffix=false
32 sp_cleanup.objects_equals=false
2833 sp_cleanup.on_save_use_additional_actions=true
2934 sp_cleanup.organize_imports=true
35 sp_cleanup.push_down_negation=false
3036 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3137 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3238 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3339 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3440 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3541 sp_cleanup.remove_private_constructors=true
42 sp_cleanup.remove_redundant_modifiers=true
43 sp_cleanup.remove_redundant_semicolons=true
3644 sp_cleanup.remove_redundant_type_arguments=true
3745 sp_cleanup.remove_trailing_whitespaces=true
3846 sp_cleanup.remove_trailing_whitespaces_all=true
3947 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
48 sp_cleanup.remove_unnecessary_array_creation=true
4049 sp_cleanup.remove_unnecessary_casts=true
4150 sp_cleanup.remove_unnecessary_nls_tags=false
4251 sp_cleanup.remove_unused_imports=false
4554 sp_cleanup.remove_unused_private_members=false
4655 sp_cleanup.remove_unused_private_methods=true
4756 sp_cleanup.remove_unused_private_types=true
57 sp_cleanup.simplify_lambda_expression_and_method_ref=true
4858 sp_cleanup.sort_members=false
4959 sp_cleanup.sort_members_all=false
5060 sp_cleanup.use_anonymous_class_creation=false
61 sp_cleanup.use_autoboxing=false
5162 sp_cleanup.use_blocks=false
5263 sp_cleanup.use_blocks_only_for_return_and_throw=false
64 sp_cleanup.use_directly_map_method=true
5365 sp_cleanup.use_lambda=true
5466 sp_cleanup.use_parentheses_in_expressions=false
5567 sp_cleanup.use_this_for_non_static_field_access=false
5769 sp_cleanup.use_this_for_non_static_method_access=false
5870 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
5971 sp_cleanup.use_type_arguments=false
72 sp_cleanup.use_unboxing=false
73 sp_cleanup.use_var=false
88 org.hamcrest.library;bundle-version="1.3.0",
99 org.hamcrest.core;bundle-version="1.3.0",
1010 org.eclipse.core.databinding;bundle-version="1.5.0",
11 com.spotify.docker.client;bundle-version="[8.9.2,9.0.0)",
11 org.mandas.docker-client;bundle-version="3.2.1",
1212 org.eclipse.swtbot.junit4_x;bundle-version="2.3.0",
1313 org.eclipse.swtbot.swt.finder;bundle-version="2.3.0",
1414 org.eclipse.swtbot.eclipse.finder;bundle-version="2.3.0",
2222 org.eclipse.linuxtools.docker.tests.hamcrest-wrap;bundle-version="1.2.0",
2323 com.google.guava;bundle-version="15.0.0",
2424 org.glassfish.hk2.api;bundle-version="2.3.0",
25 org.glassfish.jersey.core.jersey-common;bundle-version="2.3.0",
26 org.glassfish.jersey.containers.servlet.core;bundle-version="2.3.0",
27 org.glassfish.jersey.inject.jersey-hk2;bundle-version="2.3.0",
2528 com.fasterxml.jackson.core.jackson-core;bundle-version="2.5.0",
2629 com.fasterxml.jackson.core.jackson-databind;bundle-version="2.5.0",
2730 org.slf4j.api;bundle-version="1.7.2",
28 org.glassfish.jersey.bundles.repackaged.jersey-guava;bundle-version="2.14.0",
2931 org.eclipse.ui.ide,
3032 org.eclipse.debug.ui,
3133 org.eclipse.ui.console;bundle-version="3.6.100",
3234 org.eclipse.launchbar.ui;bundle-version="2.0.1",
33 org.eclipse.launchbar.ui.controls;bundle-version="1.0.0",
34 javax.xml.bind;bundle-version="2.2.0"
35 org.eclipse.launchbar.ui.controls;bundle-version="1.0.0"
36 Import-Package: javax.xml.bind;version="2.3.3",
37 javax.annotation;version="1.3.5"
3538 Bundle-ClassPath: .
36 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
39 Bundle-RequiredExecutionEnvironment: JavaSE-11
3740 Export-Package: org.eclipse.linuxtools.internal.docker.ui.testutils;x-friends:="org.eclipse.linuxtools.docker.reddeer,org.eclipse.linuxtools.docker.reddeer.ui,org.eclipse.linuxtools.docker.integration.tests"
3841 Automatic-Module-Name: org.eclipse.linuxtools.docker.ui.tests
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.docker.ui.tests</artifactId>
99 <version>2.2.0-SNAPSHOT</version>
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3737 import org.junit.Before;
3838 import org.junit.Test;
3939
40 import com.spotify.docker.client.DockerClient;
40 import org.mandas.docker.client.DockerClient;
4141
4242 public class DockerConnectionManagerTest {
4343
00 /*******************************************************************************
1 * Copyright (c) 2016,2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1414
1515 import static org.assertj.core.api.Assertions.assertThat;
1616
17 import java.net.URI;
18 import java.net.URISyntaxException;
19
1720 import org.junit.Test;
1821 import org.junit.runner.RunWith;
1922 import org.junit.runners.Parameterized;
2023 import org.junit.runners.Parameterized.Parameter;
2124 import org.junit.runners.Parameterized.Parameters;
25 import org.mandas.docker.client.exceptions.DockerRequestException;
2226
2327 /**
2428 * Testing the {@link DockerException} class
2731 public class DockerExceptionTest {
2832
2933 @Parameters
30 public static Object[][] getData() {
34 public static Object[][] getData() throws URISyntaxException {
3135 final Object[][] data = new Object[][] {
36 // 0: Normal exceptions
3237 new Object[] { new DockerException("this is an error"), "this is an error" },
38 // 1:
3339 new Object[] { new DockerException("error with message: 232"), "error with message: 232" },
40 // 2: Use passed message or message from original exception - Behave like
41 // Throwable
42 new Object[] { new DockerException(null, new RuntimeException("This is a test")),
43 "java.lang.RuntimeException: This is a test" },
44 // 3:
45 new Object[] { new DockerException("First", new RuntimeException("This is a test")), "First" },
46 // 4: Do not parse passed message
3447 new Object[] {
3548 new DockerException(
3649 "{\"message\":\"invalid reference format: repository name must be lowercase\"}"),
37 "invalid reference format: repository name must be lowercase" }, };
50 "{\"message\":\"invalid reference format: repository name must be lowercase\"}" },
51 // 5: Decode DockerRequestException
52 new Object[] { new DockerException(null, new DockerRequestException("m", new URI("http://none"), 404,
53 "{\"message\":\"invalid reference format: repository name must be lowercase\"}", null)),
54 "invalid reference format: repository name must be lowercase"
55 },
56 // 6: DockerRequestException and prefix message
57 new Object[] { new DockerException("Additional info", new DockerRequestException("m", new URI("http://none"), 404,
58 "{\"message\":\"invalid reference format: repository name must be lowercase\"}", null)),
59 "Additional info; invalid reference format: repository name must be lowercase"
60 },
61 // 7: DockerRequestException Without Json-message - use toString
62 new Object[] {
63 new DockerException(
64 new DockerRequestException("Hello", new URI("http://none"), 404, "Response", null)),
65 "org.mandas.docker.client.exceptions.DockerRequestException: Request error: Hello http://none: 404, body: Response" },
66 // 8:
67 new Object[] {
68 new DockerException("Additional info",
69 new DockerRequestException("Hello", new URI("http://none"), 404, "Response", null)),
70 "Additional info" },
71 // 9: Search DockerRequestException
72 new Object[] { new DockerException(null,
73 new RuntimeException(new DockerRequestException("m", new URI("http://none"), 404,
74 "{\"message\":\"invalid reference format: repository name must be lowercase\"}",
75 null))),
76 "invalid reference format: repository name must be lowercase" },
77 // 10: Wrapped in exception with message
78 new Object[] { new DockerException(null, new RuntimeException("Hello", new DockerRequestException("m",
79 new URI("http://none"), 404,
80 "{\"message\":\"invalid reference format: repository name must be lowercase\"}",
81 null))),
82 "invalid reference format: repository name must be lowercase" },
83 // 11: Wrapped twice
84 new Object[] {
85 new DockerException(null,
86 new RuntimeException(new RuntimeException(new DockerRequestException("m",
87 new URI("http://none"), 404,
88 "{\"message\":\"invalid reference format: repository name must be lowercase\"}",
89 null)))),
90 "invalid reference format: repository name must be lowercase" },
91 // 12: Wrapped without message
92 new Object[] { new DockerException(null, new RuntimeException("Hello",
93 new DockerRequestException("m", new URI("http://none"), 404, "Do not show this", null))),
94 "java.lang.RuntimeException: Hello" },
95 };
3896 return data;
3997 }
4098
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1616
1717 import org.junit.Test;
1818
19 import com.spotify.docker.client.DockerClient;
20 import com.spotify.docker.client.exceptions.DockerCertificateException;
19 import org.mandas.docker.client.DockerClient;
20 import org.mandas.docker.client.exceptions.DockerCertificateException;
2121
2222 /**
2323 * Testing the {@link DockerClientFactory}
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2828 import org.eclipse.linuxtools.internal.docker.ui.testutils.MockImageFactory;
2929 import org.junit.Test;
3030
31 import com.spotify.docker.client.DockerClient;
32 import com.spotify.docker.client.exceptions.DockerCertificateException;
33 import com.spotify.docker.client.messages.Container;
34 import com.spotify.docker.client.messages.Image;
31 import org.mandas.docker.client.DockerClient;
32 import org.mandas.docker.client.exceptions.DockerCertificateException;
33 import org.mandas.docker.client.messages.Container;
34 import org.mandas.docker.client.messages.Image;
3535
3636 /**
3737 * Testing the {@link DockerConnection} class.
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3232 import org.junit.runners.Parameterized.Parameter;
3333 import org.junit.runners.Parameterized.Parameters;
3434
35 import com.spotify.docker.client.DockerClient;
36 import com.spotify.docker.client.messages.Image;
35 import org.mandas.docker.client.DockerClient;
36 import org.mandas.docker.client.messages.Image;
3737
3838 /**
3939 * Verifying that images are properly qualified as {@code Top-Level},
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3434 import org.junit.Rule;
3535 import org.junit.Test;
3636
37 import com.spotify.docker.client.DockerClient;
37 import org.mandas.docker.client.DockerClient;
3838
3939 /**
4040 *
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4545 import org.mockito.ArgumentMatchers;
4646 import org.mockito.Mockito;
4747
48 import com.spotify.docker.client.DockerClient;
49 import com.spotify.docker.client.ProgressHandler;
48 import org.mandas.docker.client.DockerClient;
49 import org.mandas.docker.client.ProgressHandler;
5050
5151 /**
5252 * Testing the {@link BuildDockerImageShortcut}
109109 @Test
110110 @RunWithProject("foo")
111111 public void shouldPromptDialogThenBuildDockerImageOnFirstCall()
112 throws InterruptedException, com.spotify.docker.client.exceptions.DockerException, IOException {
112 throws InterruptedException, org.mandas.docker.client.exceptions.DockerException, IOException {
113113 // given
114114 final DockerClient client = MockDockerClientFactory.build();
115115 final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
133133 @Test
134134 @RunWithProject("foo")
135135 public void shouldBuildDockerImageImmediatelyOnSecondCall()
136 throws InterruptedException, com.spotify.docker.client.exceptions.DockerException, IOException {
136 throws InterruptedException, org.mandas.docker.client.exceptions.DockerException, IOException {
137137 // given
138138 final DockerClient client = MockDockerClientFactory.build();
139139 final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
163163 @Test
164164 @RunWithProject("foo")
165165 public void shouldNotBuildDockerImageOnSecondCallWhenAllConnectionWereRemoved()
166 throws InterruptedException, com.spotify.docker.client.exceptions.DockerException, IOException {
166 throws InterruptedException, org.mandas.docker.client.exceptions.DockerException, IOException {
167167 // given
168168 final DockerClient client = MockDockerClientFactory.build();
169169 final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
201201
202202 @RunWithProject("foo")
203203 public void shouldPromptForAnotherConnectionWhenBuildingDockerImageOnSecondCallAfterConnectionWasReplaced()
204 throws InterruptedException, com.spotify.docker.client.exceptions.DockerException, IOException {
204 throws InterruptedException, org.mandas.docker.client.exceptions.DockerException, IOException {
205205 // given
206206 final DockerClient client = MockDockerClientFactory.build();
207207 final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
242242 @Test
243243 @RunWithProject("foo")
244244 public void shouldNotBuildDockerImageOnSecondCallWhenDockerfileWasRemoved()
245 throws InterruptedException, com.spotify.docker.client.exceptions.DockerException, IOException, CoreException {
245 throws InterruptedException, org.mandas.docker.client.exceptions.DockerException, IOException, CoreException {
246246 // given
247247 final DockerClient client = MockDockerClientFactory.build();
248248 final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
5656 import org.junit.Ignore;
5757 import org.junit.Rule;
5858 import org.junit.Test;
59 import org.mandas.docker.client.DockerClient;
5960 import org.mockito.ArgumentMatchers;
6061 import org.mockito.Mockito;
61 import org.mockito.invocation.InvocationOnMock;
62 import org.mockito.stubbing.Answer;
63
64 import com.spotify.docker.client.DockerClient;
6562
6663 /**
6764 * Testing the {@link DockerCompose} utility class using SWTBot.
123120 .workingDir(ArgumentMatchers.anyString()).start())
124121 .thenReturn(mockDockerComposeUpProcess);
125122 latch = new CountDownLatch(1);
126 Mockito.when(mockDockerComposeUpProcess.waitFor()).then(new Answer<Object>() {
127
128 @Override
129 public Object answer(InvocationOnMock invocation) throws Throwable {
130 latch.await(5, TimeUnit.SECONDS);
131 return 0;
132 }
123 Mockito.when(mockDockerComposeUpProcess.waitFor()).then(invocation -> {
124 latch.await(5, TimeUnit.SECONDS);
125 return 0;
133126 });
134127 }
135128
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat.
1 * Copyright (c) 2017, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1414 import org.mockito.Mockito;
1515
1616 import com.google.common.collect.ImmutableMap;
17 import com.spotify.docker.client.messages.ContainerConfig;
17 import org.mandas.docker.client.messages.ContainerConfig;
1818
1919 public class MockContainerConfigFactory {
2020
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2424 import org.mockito.Mockito;
2525
2626 import com.google.common.collect.ImmutableList;
27 import com.spotify.docker.client.messages.Container;
27 import org.mandas.docker.client.messages.Container;
2828
2929 /**
3030 * A factory for mock {@link Container}s.
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1717 import java.util.HashMap;
1818 import java.util.List;
1919
20 import org.mandas.docker.client.messages.ContainerConfig;
21 import org.mandas.docker.client.messages.ContainerInfo;
22 import org.mandas.docker.client.messages.HostConfig;
23 import org.mandas.docker.client.messages.NetworkSettings;
24 import org.mandas.docker.client.messages.PortBinding;
2025 import org.mockito.Mockito;
2126
2227 import com.google.common.collect.ImmutableList;
2328 import com.google.common.collect.ImmutableMap;
24 import com.spotify.docker.client.messages.ContainerConfig;
25 import com.spotify.docker.client.messages.ContainerInfo;
26 import com.spotify.docker.client.messages.HostConfig;
27 import com.spotify.docker.client.messages.NetworkSettings;
28 import com.spotify.docker.client.messages.PortBinding;
2929
3030 /**
3131 * A factory for mock {@link ContainerInfo}s.
114114 Mockito.when(this.containerInfo.processLabel()).thenReturn(null);
115115 Mockito.when(this.containerInfo.hostsPath()).thenReturn(null);
116116 Mockito.when(this.containerInfo.mountLabel()).thenReturn(null);
117 Mockito.when(this.containerInfo.volumes()).thenReturn(null);
118 Mockito.when(this.containerInfo.volumesRw()).thenReturn(null);
117 Mockito.when(this.containerInfo.mounts()).thenReturn(null);
119118
120119 }
121120
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat Inc. and others.
1 * Copyright (c) 2015, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2727 import org.mockito.ArgumentMatchers;
2828 import org.mockito.Mockito;
2929
30 import com.spotify.docker.client.DockerClient;
31 import com.spotify.docker.client.exceptions.DockerException;
32 import com.spotify.docker.client.messages.Container;
33 import com.spotify.docker.client.messages.ContainerInfo;
34 import com.spotify.docker.client.messages.Image;
35 import com.spotify.docker.client.messages.ImageInfo;
36 import com.spotify.docker.client.messages.ImageSearchResult;
37 import com.spotify.docker.client.messages.Info;
30 import org.mandas.docker.client.DockerClient;
31 import org.mandas.docker.client.exceptions.DockerException;
32 import org.mandas.docker.client.messages.Container;
33 import org.mandas.docker.client.messages.ContainerInfo;
34 import org.mandas.docker.client.messages.Image;
35 import org.mandas.docker.client.messages.ImageInfo;
36 import org.mandas.docker.client.messages.ImageSearchResult;
37 import org.mandas.docker.client.messages.Info;
3838
3939 /**
4040 * Factory for mocked {@link IDockerConnection}
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2222 import org.mockito.ArgumentMatchers;
2323 import org.mockito.Mockito;
2424
25 import com.spotify.docker.client.DockerClient;
26 import com.spotify.docker.client.exceptions.DockerCertificateException;
25 import org.mandas.docker.client.DockerClient;
26 import org.mandas.docker.client.exceptions.DockerCertificateException;
2727
2828 /**
2929 * Factory for mocked {@link IDockerConnection}
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2323 import org.mockito.Mockito;
2424
2525 import com.google.common.collect.ImmutableList;
26 import com.spotify.docker.client.messages.Image;
26 import org.mandas.docker.client.messages.Image;
2727
2828 /**
2929 * A factory for mock {@link Image}s.
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1818
1919 import com.google.common.collect.ImmutableList;
2020 import com.google.common.collect.ImmutableSet;
21 import com.spotify.docker.client.messages.ContainerConfig;
22 import com.spotify.docker.client.messages.ImageInfo;
21 import org.mandas.docker.client.messages.ContainerConfig;
22 import org.mandas.docker.client.messages.ImageInfo;
2323
2424 /**
2525 * A factory for mock {@link ImageInfo}s.
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1414
1515 import org.mockito.Mockito;
1616
17 import com.spotify.docker.client.messages.ImageSearchResult;
17 import org.mandas.docker.client.messages.ImageSearchResult;
1818
1919 /**
2020 * Factory for mocked {@link ImageSearchResult} instances.
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4646 import org.junit.Rule;
4747 import org.junit.Test;
4848
49 import com.spotify.docker.client.DockerClient;
49 import org.mandas.docker.client.DockerClient;
5050
5151 /**
5252 * Testing the {@link DockerContainersView}
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
5757 import org.junit.runner.RunWith;
5858 import org.mockito.Mockito;
5959
60 import com.spotify.docker.client.DockerClient;
61 import com.spotify.docker.client.exceptions.DockerException;
60 import org.mandas.docker.client.DockerClient;
61 import org.mandas.docker.client.exceptions.DockerException;
6262
6363 /**
6464 * Testing the {@link DockerExplorerView} {@link Viewer}
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4848 import org.junit.Rule;
4949 import org.junit.Test;
5050
51 import com.spotify.docker.client.DockerClient;
52 import com.spotify.docker.client.messages.Container;
53 import com.spotify.docker.client.messages.Image;
51 import org.mandas.docker.client.DockerClient;
52 import org.mandas.docker.client.messages.Container;
53 import org.mandas.docker.client.messages.Image;
5454
5555 /**
5656 * Testing the {@link DockerImageHierarchyView} call from the
6060
6161 private SWTWorkbenchBot bot = new SWTWorkbenchBot();
6262 private SWTBotView dockerExplorerViewBot;
63 private DockerExplorerView dockerExplorerView;
6463
6564 @ClassRule
6665 public static CloseWelcomePageRule closeWelcomePage = new CloseWelcomePageRule(
8685 }
8786 });
8887 this.dockerExplorerViewBot = bot.viewById(DockerExplorerView.VIEW_ID);
89 this.dockerExplorerView = (DockerExplorerView) (dockerExplorerViewBot.getViewReference().getView(true));
9088 // make sure that the Docker Image Hierarchy view is closed
9189 this.bot.views().stream().filter(v -> v.getReference().getId().equals(DockerImageHierarchyView.VIEW_ID))
9290 .forEach(v -> v.close());
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4545 import org.junit.Rule;
4646 import org.junit.Test;
4747
48 import com.spotify.docker.client.DockerClient;
48 import org.mandas.docker.client.DockerClient;
4949
5050 /**
5151 * Testing the {@link DockerImagesView} using {@link SWTBot}.
00 /*******************************************************************************
1 * Copyright (c) 2015, 2019 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1616
1717 import java.io.File;
1818 import java.io.IOException;
19 import java.util.ArrayList;
1920 import java.util.concurrent.TimeUnit;
2021
2122 import org.eclipse.core.resources.IResource;
7071 import org.mockito.ArgumentMatchers;
7172 import org.mockito.Mockito;
7273
73 import com.spotify.docker.client.DockerClient;
74 import org.mandas.docker.client.DockerClient;
7475
7576 /**
7677 * Testing the {@link EditDockerConnection} {@link Wizard}
147148 final IDockerHostConfig hostConfig = MockDockerHostConfigFactory.publishAllPorts(true).networkMode(networkMode)
148149 .build();
149150 final ILaunchConfiguration runImageLaunchConfiguration = LaunchConfigurationUtils
150 .createRunImageLaunchConfiguration(image, containerConfig, hostConfig, "some_container", false);
151 .createRunImageLaunchConfiguration(image, containerConfig, hostConfig, new ArrayList<String>(),
152 "some_container", false);
151153 return runImageLaunchConfiguration.getName();
152154 }
153155
385387 @Test
386388 public void shouldRefreshDockerExplorerViewWhenConnectionNameChanged() {
387389 // given
388 final IDockerConnection connection = configureTCPConnection("Test");
390 configureTCPConnection("Test");
389391 final SWTBotTreeItem connectionTreeItem = SWTUtils.getTreeItem(dockerExplorer.bot(), "Test");
390392 assertThat(connectionTreeItem).isNotNull();
391393 // when
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3434 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.DockerConnectionManagerUtils;
3535 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.MenuAssertion;
3636 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTUtils;
37 import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerView;
3837 import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
3938 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
4039 import org.junit.After;
4645 import org.mockito.ArgumentMatchers;
4746 import org.mockito.Mockito;
4847
49 import com.spotify.docker.client.DockerClient;
50 import com.spotify.docker.client.exceptions.DockerException;
48 import org.mandas.docker.client.DockerClient;
49 import org.mandas.docker.client.exceptions.DockerException;
5150
5251 /**
5352 * Testing the {@link ImagePull} wizard
5554 public class ImagePullSWTBotTest {
5655
5756 private SWTWorkbenchBot bot = new SWTWorkbenchBot();
58 private DockerExplorerView dockerExplorerView;
5957 private SWTBotView dockerExplorerViewBot;
6058
6159 @ClassRule
7371 @Before
7472 public void lookupDockerExplorerView() {
7573 this.dockerExplorerViewBot = bot.viewById("org.eclipse.linuxtools.docker.ui.dockerExplorerView");
76 this.dockerExplorerView = (DockerExplorerView) (dockerExplorerViewBot.getViewReference().getView(true));
7774 this.dockerExplorerViewBot.show();
7875 this.dockerExplorerViewBot.setFocus();
7976 this.defaultRegistryAccountStorageManager = RegistryAccountManager.getInstance().getStorageManager();
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4545 import org.mockito.ArgumentMatchers;
4646 import org.mockito.Mockito;
4747
48 import com.spotify.docker.client.DockerClient;
49 import com.spotify.docker.client.ProgressHandler;
50 import com.spotify.docker.client.exceptions.DockerException;
48 import org.mandas.docker.client.DockerClient;
49 import org.mandas.docker.client.ProgressHandler;
50 import org.mandas.docker.client.exceptions.DockerException;
5151
5252 /**
5353 * Testing the {@link ImagePush} wizard
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat.
1 * Copyright (c) 2015, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1414
1515 import static org.assertj.core.api.Assertions.assertThat;
1616
17 import java.util.ArrayList;
1718 import java.util.Arrays;
1819 import java.util.concurrent.TimeUnit;
1920
4243 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.CloseWelcomePageRule;
4344 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.DockerConnectionManagerUtils;
4445 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTUtils;
45 import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerView;
4646 import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
4747 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
4848 import org.eclipse.swtbot.swt.finder.waits.Conditions;
5454 import org.mockito.ArgumentMatchers;
5555 import org.mockito.Mockito;
5656
57 import com.spotify.docker.client.DockerClient;
58 import com.spotify.docker.client.exceptions.DockerException;
59 import com.spotify.docker.client.messages.Container;
60 import com.spotify.docker.client.messages.ContainerCreation;
61 import com.spotify.docker.client.messages.ContainerInfo;
62 import com.spotify.docker.client.messages.Image;
63 import com.spotify.docker.client.messages.ImageInfo;
57 import org.mandas.docker.client.DockerClient;
58 import org.mandas.docker.client.exceptions.DockerException;
59 import org.mandas.docker.client.messages.Container;
60 import org.mandas.docker.client.messages.ContainerCreation;
61 import org.mandas.docker.client.messages.ContainerInfo;
62 import org.mandas.docker.client.messages.Image;
63 import org.mandas.docker.client.messages.ImageInfo;
6464
6565 /**
6666 * Testing the {@link ImageRun} wizard
6868 public class ImageRunSWTBotTest {
6969
7070 private SWTWorkbenchBot bot = new SWTWorkbenchBot();
71 private DockerExplorerView dockerExplorerView;
7271 private SWTBotView dockerExplorerViewBot;
7372
7473 private String configureRunImageLaunchConfiguration(final IDockerConnection connection, final String networkMode) {
7776 final IDockerHostConfig hostConfig = MockDockerHostConfigFactory.publishAllPorts(true).networkMode(networkMode)
7877 .build();
7978 final ILaunchConfiguration runImageLaunchConfiguration = LaunchConfigurationUtils
80 .createRunImageLaunchConfiguration(image, containerConfig, hostConfig, "some_container", false);
79 .createRunImageLaunchConfiguration(image, containerConfig, hostConfig, new ArrayList<String>(),
80 "some_container", false);
8181 return runImageLaunchConfiguration.getName();
8282 }
8383
9494 @Before
9595 public void lookupDockerExplorerView() {
9696 dockerExplorerViewBot = bot.viewById("org.eclipse.linuxtools.docker.ui.dockerExplorerView");
97 dockerExplorerView = (DockerExplorerView) (dockerExplorerViewBot.getViewReference().getView(true));
9897 dockerExplorerViewBot.show();
9998 dockerExplorerViewBot.setFocus();
10099 }
00 /*******************************************************************************
1 * Copyright (c) 2016, 2018 Red Hat.
1 * Copyright (c) 2016, 2020 Red Hat.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2525 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.CloseWelcomePageRule;
2626 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.DockerConnectionManagerUtils;
2727 import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTUtils;
28 import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerView;
2928 import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
3029 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
3130 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
3534 import org.junit.Rule;
3635 import org.junit.Test;
3736
38 import com.spotify.docker.client.DockerClient;
37 import org.mandas.docker.client.DockerClient;
3938
4039 /**
4140 * Testing the {@link ImageSearch} wizard.
4342 public class ImageSearchSWTBotTest {
4443
4544 private SWTWorkbenchBot bot = new SWTWorkbenchBot();
46 private DockerExplorerView dockerExplorerView;
4745 private SWTBotView dockerExplorerViewBot;
4846
4947 @ClassRule
5957 @Before
6058 public void lookupDockerExplorerView() {
6159 dockerExplorerViewBot = bot.viewById("org.eclipse.linuxtools.docker.ui.dockerExplorerView");
62 dockerExplorerView = (DockerExplorerView) (dockerExplorerViewBot.getViewReference().getView(true));
6360 dockerExplorerViewBot.show();
6461 dockerExplorerViewBot.setFocus();
6562 }
00 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat Inc.
1 * Copyright (c) 2015, 2020 Red Hat Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
5454 import org.junit.Test;
5555 import org.junit.runner.RunWith;
5656
57 import com.spotify.docker.client.DockerClient;
57 import org.mandas.docker.client.DockerClient;
5858
5959 /**
6060 * Testing the {@link NewDockerConnection} {@link Wizard}
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.jdt.docker.launcher;singleton:=true
44 Bundle-Version: 1.0.0.qualifier
55 Bundle-Vendor: %Bundle-Vendor
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Bundle-ActivationPolicy: lazy
88 Require-Bundle: org.eclipse.debug.core,
99 org.eclipse.debug.ui,
1616 org.eclipse.osgi,
1717 org.eclipse.linuxtools.docker.ui,
1818 org.eclipse.linuxtools.docker.core,
19 com.spotify.docker.client,
20 org.eclipse.core.runtime,
21 javax.xml.bind;bundle-version="2.2.0"
19 org.mandas.docker-client,
20 org.eclipse.core.runtime
21 Import-Package: javax.xml.bind;version="2.3.3",
22 javax.annotation;version="1.3.5"
2223 Automatic-Module-Name: org.eclipse.linuxtools.jdt.docker.launcher
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.docker</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.jdt.docker.launcher</artifactId>
99 <version>1.0.0-SNAPSHOT</version>
00 /*******************************************************************************
1 * Copyright (c) 2017, 2018 Red Hat Inc. and others.
1 * Copyright (c) 2017, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1212 package org.eclipse.linuxtools.jdt.docker.launcher;
1313
1414 import java.io.File;
15 import java.io.IOException;
1516 import java.nio.ByteBuffer;
1617
1718 import org.eclipse.linuxtools.docker.core.DockerException;
2223 import org.eclipse.linuxtools.internal.docker.core.DockerHostConfig;
2324 import org.osgi.framework.Version;
2425
25 import com.spotify.docker.client.DockerClient;
26 import com.spotify.docker.client.DockerClient.ExecCreateParam;
27 import com.spotify.docker.client.LogStream;
28 import com.spotify.docker.client.messages.ExecCreation;
26 import org.mandas.docker.client.DockerClient;
27 import org.mandas.docker.client.DockerClient.ExecCreateParam;
28 import org.mandas.docker.client.LogStream;
29 import org.mandas.docker.client.messages.ExecCreation;
2930
3031 public class ImageQuery {
3132
7475 } catch (Exception e) {
7576 e.printStackTrace();
7677 } finally {
77 stream.close();
78 try {
79 stream.close();
80 } catch (IOException e) {
81 }
7882 }
7983 return null;
8084 }
11 <feature
22 id="org.eclipse.linuxtools.jdt.docker.launcher.feature"
33 label="%featureName"
4 version="4.4.0.qualifier"
4 version="5.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1313 <parent>
1414 <groupId>org.eclipse.linuxtools</groupId>
1515 <artifactId>org.eclipse.linuxtools.docker</artifactId>
16 <version>4.4.0</version>
16 <version>5.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.jdt.docker.launcher.feature</artifactId>
20 <version>4.4.0-SNAPSHOT</version>
20 <version>5.1.0-SNAPSHOT</version>
2121 <packaging>eclipse-feature</packaging>
2222
2323 <name>Linux Tools JDT Docker Launch Feature</name>
22 <modelVersion>4.0.0</modelVersion>
33 <groupId>org.eclipse.linuxtools</groupId>
44 <artifactId>org.eclipse.linuxtools.docker</artifactId>
5 <version>4.4.0</version>
5 <version>5.1.0</version>
66 <packaging>pom</packaging>
77
88 <parent>
99 <groupId>org.eclipse.linuxtools</groupId>
1010 <artifactId>linuxtools-parent</artifactId>
11 <version>7.4.0</version>
11 <version>8.1.0</version>
1212 </parent>
1313
1414 <properties>
2424 <modules>
2525 <module>org.eclipse.linuxtools.docker.core</module>
2626 <module>org.eclipse.linuxtools.docker.ui</module>
27 <module>org.eclipse.linuxtools.docker.editor</module>
2827 <module>org.eclipse.linuxtools.docker.tests.hamcrest-wrap</module>
2928 <module>org.eclipse.linuxtools.docker.ui.tests</module>
3029 <module>org.eclipse.linuxtools.docker.docs</module>
3231 <module>org.eclipse.linuxtools.docker.reddeer</module>
3332 <module>org.eclipse.linuxtools.docker.integration.tests</module>
3433 <module>org.eclipse.linuxtools.docker.tests-feature</module>
34 <module>org.eclipse.linuxtools.docker.editor.ls</module>
35 <module>org.eclipse.linuxtools.docker.editor.ls-feature</module>
36 <module>org.eclipse.linuxtools.docker.editor.ls.tests</module>
3537 <module>org.eclipse.linuxtools.jdt.docker.launcher</module>
3638 <module>org.eclipse.linuxtools.jdt.docker.launcher-feature</module>
3739 </modules>
7981 <dependency>
8082 <groupId>org.eclipse.tycho.extras</groupId>
8183 <artifactId>tycho-sourceref-jgit</artifactId>
82 <version>${tycho-extras-version}</version>
84 <version>${tycho-version}</version>
8385 </dependency>
8486 </dependencies>
8587 </plugin>
11 <feature
22 id="org.eclipse.linuxtools.gcov"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-gcov-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gcov</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gcov</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools GCov Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
2727 sp_cleanup.never_use_parentheses_in_expressions=true
2828 sp_cleanup.on_save_use_additional_actions=true
2929 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
3031 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3132 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3233 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3435 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3536 sp_cleanup.remove_private_constructors=true
3637 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
3739 sp_cleanup.remove_redundant_type_arguments=true
3840 sp_cleanup.remove_trailing_whitespaces=true
3941 sp_cleanup.remove_trailing_whitespaces_all=true
4042 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
4144 sp_cleanup.remove_unnecessary_casts=true
4245 sp_cleanup.remove_unnecessary_nls_tags=false
4346 sp_cleanup.remove_unused_imports=true
4952 sp_cleanup.sort_members=false
5053 sp_cleanup.sort_members_all=false
5154 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
5256 sp_cleanup.use_blocks=false
5357 sp_cleanup.use_blocks_only_for_return_and_throw=false
5458 sp_cleanup.use_lambda=true
5761 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
5862 sp_cleanup.use_this_for_non_static_method_access=false
5963 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
22 Bundle-Name: %bundleName
33 Bundle-SymbolicName: org.eclipse.linuxtools.gcov.core;singleton:=true
44 Bundle-Version: 6.2.0.qualifier
5 Bundle-Activator: org.eclipse.linuxtools.internal.gcov.Activator
65 Bundle-Vendor: %bundleProvider
76 Require-Bundle: org.eclipse.ui,
87 org.eclipse.core.runtime,
1817 org.eclipse.linuxtools.dataviewers.charts,
1918 org.eclipse.ui.editors;bundle-version="3.8.0"
2019 Bundle-ActivationPolicy: lazy
21 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
20 Bundle-RequiredExecutionEnvironment: JavaSE-11
2221 Bundle-Localization: plugin
2322 Export-Package:
2423 org.eclipse.linuxtools.internal.gcov.parser;x-friends:="org.eclipse.linuxtools.gcov.launch",
1414 <parent>
1515 <artifactId>linuxtools-gcov-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gcov</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gcov.core</artifactId>
+0
-50
gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/Activator.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.gcov;
13
14 import org.eclipse.ui.plugin.AbstractUIPlugin;
15 import org.osgi.framework.BundleContext;
16
17 /**
18 * The activator class controls the plug-in life cycle
19 * @since 4.2
20 */
21 public class Activator extends AbstractUIPlugin {
22
23 // The plug-in ID
24 public static final String PLUGIN_ID = "org.eclipse.linuxtools.gcov.core"; //$NON-NLS-1$
25
26 // The shared instance
27 private static Activator plugin;
28
29 @Override
30 public void start(BundleContext context) throws Exception {
31 super.start(context);
32 plugin = this;
33 }
34
35 @Override
36 public void stop(BundleContext context) throws Exception {
37 plugin = null;
38 super.stop(context);
39 }
40
41 /**
42 * Returns the shared instance
43 *
44 * @return the shared instance
45 */
46 public static Activator getDefault() {
47 return plugin;
48 }
49 }
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.gcov;
13
14 /**
15 * The activator class controls the plug-in life cycle
16 * @since 4.2
17 */
18 public class Constants {
19
20 // The plug-in ID
21 public static final String PLUGIN_ID = "org.eclipse.linuxtools.gcov.core"; //$NON-NLS-1$
22
23 }
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
1 * Copyright (c) 2009, 2020 STMicroelectronics and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1616 import java.io.File;
1717 import java.io.IOException;
1818 import java.io.InputStreamReader;
19
1920 import org.eclipse.cdt.core.model.CModelException;
2021 import org.eclipse.cdt.core.model.CoreModel;
2122 import org.eclipse.cdt.core.model.IBinary;
3132 import org.eclipse.jface.dialogs.MessageDialog;
3233 import org.eclipse.jface.window.Window;
3334 import org.eclipse.linuxtools.binutils.utils.STSymbolManager;
34 import org.eclipse.linuxtools.internal.gcov.Activator;
3535 import org.eclipse.linuxtools.internal.gcov.dialog.OpenGCDialog;
3636 import org.eclipse.linuxtools.internal.gcov.view.CovView;
3737 import org.eclipse.linuxtools.internal.gcov.view.annotatedsource.GcovAnnotationModelTracker;
3939 import org.eclipse.swt.widgets.Shell;
4040 import org.eclipse.ui.IEditorLauncher;
4141 import org.eclipse.ui.PlatformUI;
42 import org.osgi.framework.FrameworkUtil;
4243
4344 /**
4445 * Action performed when user clicks on a gcda/gcno file
104105 return;
105106 }
106107
107 IDialogSettings ds = Activator.getDefault().getDialogSettings();
108 IDialogSettings ds = PlatformUI.getDialogSettingsProvider(FrameworkUtil.getBundle(OpenGCAction.class))
109 .getDialogSettings();
108110 IDialogSettings defaultMapping = ds.getSection(OpenGCDialog.class.getName());
109111 if (defaultMapping == null) {
110112 defaultMapping = ds.addNewSection(OpenGCDialog.class.getName());
112114 String defaultBinary = defaultMapping.get(file.toOSString());
113115 if (defaultBinary == null || defaultBinary.isEmpty() || !exists(defaultBinary)) {
114116 //FIXME EK-LINUXTOOLS: defaultBinary = getDefaultBinary(file);
115 defaultBinary =
116 STSymbolManager.sharedInstance.findOneAndOnlyBinary(file).getLocation().toOSString();
117 IResource bin_resource = STSymbolManager.sharedInstance.findOneAndOnlyBinary(file);
118 if (bin_resource != null) {
119 defaultBinary = bin_resource.getLocation().toOSString();
120 } else {
121 defaultBinary = ""; //$NON-NLS-1$
122 }
117123 }
118124
119125 OpenGCDialog d = new OpenGCDialog(shell, defaultBinary, file);
127133 t.start();
128134 }
129135
130 private void displayCoverage(IPath file, String binaryPath, File gcda, boolean isCompleteCoverageResultWanted)
136 private void displayCoverage(IPath file, String binaryPath, File gcda, boolean isCompleteCoverageResultWanted)
131137 {
132138 //FIXME EK-LINUXTOOLS: IProject project = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(file).getProject();
133139 IProject project = STSymbolManager.sharedInstance.getProjectFromFile(file);
134140 //FIXME EK-LINUXTOOLS: Need check for null and correct action
135
141
136142 GcovAnnotationModelTracker.getInstance().addProject(project, new Path(binaryPath));
137143 PlatformUI.getWorkbench().getDisplay().syncExec(() -> {
138144 GcovAnnotationModelTracker.getInstance().annotateAllCEditors();
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1212 package org.eclipse.linuxtools.internal.gcov.action;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.jface.viewers.ColumnViewer;
1617 import org.eclipse.jface.viewers.IContentProvider;
1718 import org.eclipse.jface.viewers.TreeViewer;
18 import org.eclipse.linuxtools.internal.gcov.Activator;
19 import org.eclipse.ui.plugin.AbstractUIPlugin;
19 import org.eclipse.linuxtools.internal.gcov.Constants;
2020
21 /**
22 * This action changes the content provider
23 */
2124
22 /**
23 * This action changes the content provider
24 */
25 public class SwitchContentProviderAction extends Action {
2526
26 public class SwitchContentProviderAction extends Action {
27 private final ColumnViewer viewer;
28 private final IContentProvider provider;
2729
28 private final ColumnViewer viewer;
29 private final IContentProvider provider;
30 public SwitchContentProviderAction(String name, String iconPath, ColumnViewer viewer, IContentProvider provider) {
31 super(name, AS_RADIO_BUTTON);
32 this.setImageDescriptor(ResourceLocator.imageDescriptorFromBundle(Constants.PLUGIN_ID, iconPath).get());
33 this.setToolTipText(name);
34 this.viewer = viewer;
35 this.provider = provider;
36 }
3037
31 public SwitchContentProviderAction(String name, String iconPath, ColumnViewer viewer, IContentProvider provider) {
32 super(name, AS_RADIO_BUTTON);
33 this.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, iconPath));
34 this.setToolTipText(name);
35 this.viewer = viewer;
36 this.provider = provider;
37 }
38
39 @Override
40 public void run() {
41 viewer.getControl().setRedraw(false);
42 viewer.setContentProvider(provider);
43 ((TreeViewer)viewer).expandToLevel(2);
44 viewer.getControl().setRedraw(true);
45 }
46 }
38 @Override
39 public void run() {
40 viewer.getControl().setRedraw(false);
41 viewer.setContentProvider(provider);
42 ((TreeViewer) viewer).expandToLevel(2);
43 viewer.getControl().setRedraw(true);
44 }
45 }
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
1 * Copyright (c) 2009, 2020 STMicroelectronics and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3030 import org.eclipse.jface.dialogs.IDialogSettings;
3131 import org.eclipse.jface.dialogs.MessageDialog;
3232 import org.eclipse.linuxtools.binutils.utils.STSymbolManager;
33 import org.eclipse.linuxtools.internal.gcov.Activator;
33 import org.eclipse.linuxtools.internal.gcov.Constants;
3434 import org.eclipse.osgi.util.NLS;
3535 import org.eclipse.swt.SWT;
3636 import org.eclipse.swt.events.ModifyEvent;
5151 import org.eclipse.ui.model.WorkbenchContentProvider;
5252 import org.eclipse.ui.model.WorkbenchLabelProvider;
5353 import org.eclipse.ui.views.navigator.ResourceComparator;
54 import org.osgi.framework.FrameworkUtil;
5455
5556 /**
5657 * This dialog box is opened when user clicks on a gcno/gcda file. it allows the user to choose the binary file who
237238 dialog.setInitialSelection(c.getProject());
238239 dialog.setValidator(selection -> {
239240 if (selection.length != 1) {
240 return new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
241 return new Status(IStatus.ERROR, Constants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
241242 }
242243 if (!(selection[0] instanceof IFile)) {
243 return new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
244 return new Status(IStatus.ERROR, Constants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
244245 }
245 return new Status(IStatus.OK, Activator.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
246 return new Status(IStatus.OK, Constants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
246247 });
247248 if (dialog.open() == IDialogConstants.OK_ID) {
248249 IResource resource = (IResource) dialog.getFirstResult();
273274
274275 @Override
275276 protected void okPressed() {
276 IDialogSettings ds = Activator.getDefault().getDialogSettings();
277 IDialogSettings ds = PlatformUI.getDialogSettingsProvider(FrameworkUtil.getBundle(OpenGCDialog.class))
278 .getDialogSettings();
277279 IDialogSettings defaultMapping = ds.getSection(OpenGCDialog.class.getName());
278280 if (defaultMapping == null) {
279281 defaultMapping = ds.addNewSection(OpenGCDialog.class.getName());
4141 import org.eclipse.jface.dialogs.MessageDialog;
4242 import org.eclipse.linuxtools.binutils.utils.STStrings;
4343 import org.eclipse.linuxtools.binutils.utils.STSymbolManager;
44 import org.eclipse.linuxtools.internal.gcov.Activator;
44 import org.eclipse.linuxtools.internal.gcov.Constants;
4545 import org.eclipse.linuxtools.internal.gcov.model.CovFileTreeElement;
4646 import org.eclipse.linuxtools.internal.gcov.model.CovFolderTreeElement;
4747 import org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement;
5252 import org.eclipse.swt.widgets.FileDialog;
5353 import org.eclipse.swt.widgets.Shell;
5454 import org.eclipse.ui.PlatformUI;
55 import org.osgi.framework.FrameworkUtil;
5556
5657 /**
5758 * @author Xavier Raynaud <xavier.raynaud@st.com>
157158 }
158159 if (noRcrd.getFnctns().isEmpty()) {
159160 String message = NLS.bind(Messages.CovManager_No_Funcs_Error, gcnoPath);
160 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
161 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
161162 throw new CoreException(status);
162163 }
163164 daRcrd = new GcdaRecordsParser(noRcrd.getFnctns());
419420 Messages.CovManager_No_Strings_Windows_Error);
420421 });
421422 } else {
422 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR,
423 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, IStatus.ERROR,
423424 Messages.CovManager_Retrieval_Error, new IOException());
424 Activator.getDefault().getLog().log(status);
425 Platform.getLog(FrameworkUtil.getBundle(CovManager.class)).log(status);
425426 }
426427 return l;
427428 }
2020 import org.eclipse.core.runtime.CoreException;
2121 import org.eclipse.core.runtime.IStatus;
2222 import org.eclipse.core.runtime.Status;
23 import org.eclipse.linuxtools.internal.gcov.Activator;
23 import org.eclipse.linuxtools.internal.gcov.Constants;
2424 import org.eclipse.linuxtools.internal.gcov.utils.BEDataInputStream;
2525 import org.eclipse.linuxtools.internal.gcov.utils.LEDataInputStream;
2626 import org.eclipse.linuxtools.internal.gcov.utils.MasksGenerator;
7070 stream = new LEDataInputStream((DataInputStream) stream);
7171 } else {
7272 String message = NLS.bind(Messages.GcdaRecordsParser_magic_num_error, magic);
73 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
73 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
7474 throw new CoreException(status);
7575 }
7676 }
109109 if (f.getCheksum() != fnctnChksm) {
110110 String message = NLS.bind(Messages.GcdaRecordsParser_checksum_error, new Object[] {
111111 currentFnctn.getName(), fnctnId });
112 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
112 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
113113 throw new CoreException(status);
114114 }
115115
131131 if (!fnctnFound) {
132132 currentFnctn = null;
133133 String message = NLS.bind(Messages.GcdaRecordsParser_func_not_found, fnctnId);
134 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
134 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
135135 throw new CoreException(status);
136136 }
137137
142142 case GCOV_COUNTER_ARCS: {
143143 if (currentFnctn == null) {
144144 String message = Messages.GcdaRecordsParser_func_counter_error;
145 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
145 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
146146 throw new CoreException(status);
147147 }
148148
149149 ArrayList<Block> fnctnBlcks = currentFnctn.getFunctionBlocks();
150150 if (fnctnBlcks.isEmpty()) {
151151 String message = Messages.GcdaRecordsParser_func_block_empty;
152 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
152 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
153153 throw new CoreException(status);
154154 }
155155
2121 import org.eclipse.core.runtime.CoreException;
2222 import org.eclipse.core.runtime.IStatus;
2323 import org.eclipse.core.runtime.Status;
24 import org.eclipse.linuxtools.internal.gcov.Activator;
24 import org.eclipse.linuxtools.internal.gcov.Constants;
2525 import org.eclipse.linuxtools.internal.gcov.utils.BEDataInputStream;
2626 import org.eclipse.linuxtools.internal.gcov.utils.GcovStringReader;
2727 import org.eclipse.linuxtools.internal.gcov.utils.LEDataInputStream;
8080 stream = new LEDataInputStream((DataInputStream) stream);
8181 } else {
8282 String message = NLS.bind(Messages.GcnoRecordsParser_magic_num_error, magic);
83 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
83 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, message);
8484 throw new CoreException(status);
8585 }
8686 }
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2424 import org.eclipse.core.runtime.CoreException;
2525 import org.eclipse.core.runtime.IStatus;
2626 import org.eclipse.core.runtime.Path;
27 import org.eclipse.core.runtime.Platform;
2728 import org.eclipse.core.runtime.Status;
2829 import org.eclipse.jface.action.Action;
2930 import org.eclipse.jface.action.IAction;
3738 import org.eclipse.linuxtools.dataviewers.abstractviewers.TreeColumnViewerFilter;
3839 import org.eclipse.linuxtools.dataviewers.actions.STExportToCSVAction;
3940 import org.eclipse.linuxtools.dataviewers.charts.actions.ChartAction;
40 import org.eclipse.linuxtools.internal.gcov.Activator;
41 import org.eclipse.linuxtools.internal.gcov.Constants;
4142 import org.eclipse.linuxtools.internal.gcov.action.SwitchContentProviderAction;
4243 import org.eclipse.linuxtools.internal.gcov.parser.CovManager;
4344 import org.eclipse.linuxtools.internal.gcov.parser.SourceFile;
5455 import org.eclipse.ui.IWorkbenchWindow;
5556 import org.eclipse.ui.PartInitException;
5657 import org.eclipse.ui.PlatformUI;
58 import org.osgi.framework.FrameworkUtil;
5759
5860 /**
5961 * @author Xavier Raynaud <xavier.raynaud@st.com>
8385 manager.add(fileAction);
8486 manager.add(functionAction);
8587 manager.add(new Separator());
86 manager.add(new ChartAction(getViewSite().getShell(), getSTViewer()));
88 manager.add(new ChartAction(getViewSite().getShell(), getSTViewer()));
8789 }
8890
8991 @Override
206208
207209 public static void reportError(Exception ex) {
208210 final String message = NLS.bind(Messages.CovView_error_message, ex.getMessage());
209 Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, message, ex);
210
211 Activator.getDefault().getLog().log(status);
211 Status status = new Status(IStatus.ERROR, Constants.PLUGIN_ID, IStatus.ERROR, message, ex);
212
213 Platform.getLog(FrameworkUtil.getBundle(CovView.class)).log(status);
212214 PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
213215 Shell s = PlatformUI.getWorkbench().getDisplay().getActiveShell();
214216 MessageDialog.openError(s, Messages.CovView_parsing_error, message);
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
1 * Copyright (c) 2009, 2019 STMicroelectronics and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313
1414 import org.eclipse.core.resources.IFile;
1515 import org.eclipse.core.resources.IProject;
16 import org.eclipse.core.resources.IWorkspaceRoot;
17 import org.eclipse.core.resources.ResourcesPlugin;
1816 import org.eclipse.core.runtime.IPath;
1917 import org.eclipse.core.runtime.Path;
2018 import org.eclipse.jface.dialogs.IDialogSettings;
3230 import org.eclipse.linuxtools.internal.gcov.view.annotatedsource.OpenSourceFileAction;
3331 import org.eclipse.swt.SWT;
3432 import org.eclipse.swt.widgets.Composite;
33 import org.eclipse.ui.PlatformUI;
34 import org.osgi.framework.FrameworkUtil;
3535
3636
3737
6969
7070 @Override
7171 public IDialogSettings getDialogSettings() {
72 return org.eclipse.linuxtools.internal.gcov.Activator.getDefault().getDialogSettings();
72 return PlatformUI.getDialogSettingsProvider(FrameworkUtil.getBundle(CovViewer.class)).getDialogSettings();
7373 }
7474
7575 @Override
9393 CovManager cvm = (CovManager) this.getInput();
9494 SourceFile sourceFile = cvm.getSourceFile(sourceLoc);
9595 if (sourceFile != null) {
96 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
9796 String binaryLoc = cvm.getBinaryPath();
9897 IPath binaryPath = new Path(binaryLoc);
9998 //FIXME EK-LINUXTOOLS: IFile binary = root.getFileForLocation(binaryPath);
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2222 import org.eclipse.core.runtime.IPath;
2323 import org.eclipse.core.runtime.IStatus;
2424 import org.eclipse.core.runtime.Path;
25 import org.eclipse.core.runtime.Platform;
2526 import org.eclipse.core.runtime.Status;
2627 import org.eclipse.jface.text.BadLocationException;
2728 import org.eclipse.jface.text.IDocument;
2829 import org.eclipse.linuxtools.binutils.link2source.STLink2SourceSupport;
29 import org.eclipse.linuxtools.internal.gcov.Activator;
30 import org.eclipse.linuxtools.internal.gcov.Constants;
3031 import org.eclipse.linuxtools.internal.gcov.parser.SourceFile;
3132 import org.eclipse.ui.IEditorInput;
3233 import org.eclipse.ui.IEditorPart;
3839 import org.eclipse.ui.ide.IDE;
3940 import org.eclipse.ui.texteditor.IDocumentProvider;
4041 import org.eclipse.ui.texteditor.ITextEditor;
42 import org.osgi.framework.FrameworkUtil;
4143
4244 public final class OpenSourceFileAction {
4345
9597 try {
9698 page.openEditor(new STAnnotatedSourceNotFoundEditorInput(project, sourceFile, realLocation,
9799 lineNumber), STAnnotatedSourceNotFoundEditor.ID, true);
98 } catch (PartInitException e) {
99 Status s = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR,
100 Messages.OpenSourceFileAction_open_error, e);
101 Activator.getDefault().getLog().log(s);
102 }
100 } catch (PartInitException e) {
101 Status s = new Status(IStatus.ERROR, Constants.PLUGIN_ID, IStatus.ERROR,
102 Messages.OpenSourceFileAction_open_error, e);
103 Platform.getLog(FrameworkUtil.getBundle(OpenSourceFileAction.class)).log(s);
104 }
103105 } else {
104106 try {
105107 IEditorPart editor = IDE.openEditorOnFileStore(page, fs);
115117 IWorkbenchPage p = editor.getSite().getPage();
116118 p.activate(editor);
117119 }
118 } catch (PartInitException e) {
119 Status s = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR,
120 Messages.OpenSourceFileAction_open_error, e);
121 Activator.getDefault().getLog().log(s);
122 }
120 } catch (PartInitException e) {
121 Status s = new Status(IStatus.ERROR, Constants.PLUGIN_ID, IStatus.ERROR,
122 Messages.OpenSourceFileAction_open_error, e);
123 Platform.getLog(FrameworkUtil.getBundle(OpenSourceFileAction.class)).log(s);
124 }
123125 }
124
126
125127 }
126128 });
127129 }
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.gcov</groupId>
2121 <artifactId>linuxtools-gcov-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.gcov.docs</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
22 Bundle-Name: %bundleName
33 Bundle-SymbolicName: org.eclipse.linuxtools.gcov.launch;singleton:=true
44 Bundle-Version: 1.2.0.qualifier
5 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
5 Bundle-RequiredExecutionEnvironment: JavaSE-11
66 Bundle-Localization: plugin
77 Require-Bundle: org.eclipse.linuxtools.profiling.launch;bundle-version="1.2.0",
88 org.eclipse.core.runtime;bundle-version="3.8.0",
1414 <parent>
1515 <artifactId>linuxtools-gcov-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gcov</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gcov.launch</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.ui.navigator.resources,
1111 org.eclipse.ui.navigator
1212 Bundle-ActivationPolicy: lazy
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Bundle-Localization: plugin
1515 Fragment-Host: org.eclipse.linuxtools.gcov.core
1616 Automatic-Module-Name: org.eclipse.linuxtools.gcov.test
1414 <parent>
1515 <artifactId>linuxtools-gcov-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gcov</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gcov.test</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.gcov</groupId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
1414 org.eclipse.linuxtools.binutils,
1515 org.eclipse.linuxtools.dataviewers.charts
1616 Bundle-ActivationPolicy: lazy
17 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
17 Bundle-RequiredExecutionEnvironment: JavaSE-11
1818 Bundle-Localization: plugin
1919 Export-Package:
2020 org.eclipse.linuxtools.internal.gprof.view;x-friends:="org.eclipse.linuxtools.gprof.launch"
1414 <parent>
1515 <artifactId>linuxtools-gprof-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gprof</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gprof</artifactId>
1212 package org.eclipse.linuxtools.internal.gprof;
1313
1414 import org.eclipse.jface.resource.ImageDescriptor;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.ui.plugin.AbstractUIPlugin;
1617 import org.osgi.framework.BundleContext;
1718
5556 * @return the image descriptor
5657 */
5758 public static ImageDescriptor getImageDescriptor(String path) {
58 return imageDescriptorFromPlugin(PLUGIN_ID, path);
59 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
5960 }
6061 }
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
1 * Copyright (c) 2009, 2019 STMicroelectronics and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2323 import java.util.Date;
2424 import java.util.HashMap;
2525
26 import org.eclipse.cdt.core.IAddressFactory;
2627 import org.eclipse.cdt.core.IBinaryParser.IBinaryObject;
2728 import org.eclipse.cdt.core.IBinaryParser.ISymbol;
2829 import org.eclipse.core.resources.IProject;
29 import org.eclipse.core.runtime.Platform;
3030 import org.eclipse.linuxtools.binutils.utils.STSymbolManager;
3131 import org.eclipse.linuxtools.internal.gprof.Messages;
3232 import org.eclipse.linuxtools.internal.gprof.utils.LEDataInputStream;
8686 this.ps = ps;
8787 this.project = project;
8888 program.getBinaryParser().getFormat();
89 IAddressFactory factory = program.getAddressFactory();
90 int addrSize = 4;
91 if (factory != null) {
92 addrSize = factory.getMax().getSize();
93 }
8994 String cpu = program.getCPU();
90 if (Platform.ARCH_X86_64.equals(cpu) || "amd64".equals(cpu) || "aarch64".equals(cpu) || "ppc64".equals(cpu)) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
91 histo = new HistogramDecoder64(this);
92 callGraph = new CallGraphDecoder64(this);
93 _32_bit_platform = false;
95 if (addrSize > 4 || cpu.endsWith("64")) { //$NON-NLS-1$
96 histo = new HistogramDecoder64(this);
97 callGraph = new CallGraphDecoder64(this);
98 _32_bit_platform = false;
9499 } else {
95 _32_bit_platform = true;
96 histo = new HistogramDecoder(this);
97 callGraph = new CallGraphDecoder(this);
100 _32_bit_platform = true;
101 histo = new HistogramDecoder(this);
102 callGraph = new CallGraphDecoder(this);
98103 }
99104 }
100105
131131 manager.add(new Separator());
132132 manager.add(switchSampleTime);
133133 manager.add(new Separator());
134 manager.add(new ChartAction(getViewSite().getShell(), getSTViewer()));
134 manager.add(new ChartAction(getViewSite().getShell(), getSTViewer()));
135135 }
136136
137137 @Override
11 <feature
22 id="org.eclipse.linuxtools.gprof.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%provider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-gprof-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gprof</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gprof.feature</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools GProf Integration Feature</name>
2525
1313 <parent>
1414 <artifactId>linuxtools-gprof-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.gprof</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.gprof.docs</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9698 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9799 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98100 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
101 org.eclipse.jdt.core.compiler.release=enabled
102 org.eclipse.jdt.core.compiler.source=11
22 Bundle-Name: %bundleName
33 Bundle-SymbolicName: org.eclipse.linuxtools.gprof.launch;singleton:=true
44 Bundle-Version: 1.2.0.qualifier
5 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
5 Bundle-RequiredExecutionEnvironment: JavaSE-11
66 Bundle-Localization: plugin
77 Require-Bundle: org.eclipse.linuxtools.profiling.launch;bundle-version="1.2.0",
88 org.eclipse.core.runtime;bundle-version="3.8.0",
1414 <parent>
1515 <artifactId>linuxtools-gprof-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gprof</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gprof.launch</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.gprof.test
44 Bundle-Version: 5.1.0.qualifier
55 Bundle-Vendor: %bundleProvider
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Require-Bundle: org.junit;bundle-version="4.10.0",
88 org.eclipse.linuxtools.gprof.launch;bundle-version="1.0.0",
99 org.eclipse.linuxtools.profiling.tests;bundle-version="1.0.0",
1414 <parent>
1515 <artifactId>linuxtools-gprof-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.gprof</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.gprof.test</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.gprof</groupId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
88 org.eclipse.core.runtime,
99 org.eclipse.help;bundle-version="3.6.0",
1010 org.eclipse.core.filesystem;bundle-version="1.4.100"
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-ActivationPolicy: lazy
1313 Automatic-Module-Name: org.eclipse.linuxtools.javadocs
1414 <parent>
1515 <artifactId>linuxtools-javadocs-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.javadocs</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.javadocs</artifactId>
11 <feature
22 id="org.eclipse.linuxtools.javadocs.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 license-feature="org.eclipse.license"
66 license-feature-version="0.0.0"
77 provider-name="%provider">
1414 <parent>
1515 <artifactId>linuxtools-javadocs-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.javadocs</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.javadocs.feature</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
2322 <name>Linux Tools Javadocs Feature</name>
23 <version>8.1.0-SNAPSHOT</version>
2424
2525 <build>
2626 <plugins>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.javadocs.tests
44 Bundle-Version: 1.0.0.qualifier
55 Fragment-Host: org.eclipse.linuxtools.javadocs
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Require-Bundle: org.junit;bundle-version="4.11.0",
88 org.eclipse.core.resources;bundle-version="3.9.1"
99 Automatic-Module-Name: org.eclipse.linuxtools.javadocs.tests
1414 <parent>
1515 <artifactId>linuxtools-javadocs-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.javadocs</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.javadocs.tests</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.javadocs</groupId>
11 <feature
22 id="org.eclipse.linuxtools.man"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%provider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.man</groupId>
2121 <artifactId>linuxtools-man-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.man</artifactId>
2626 <packaging>eclipse-feature</packaging>
27 <version>7.4.0-SNAPSHOT</version>
27 <version>8.1.0-SNAPSHOT</version>
2828
2929 <name>Linux Tools Man Feature (Incubation)</name>
3030
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
1616 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1717 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1818 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
19 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
19 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
2020 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
21 org.eclipse.jdt.core.compiler.compliance=1.8
21 org.eclipse.jdt.core.compiler.compliance=11
2222 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
2323 org.eclipse.jdt.core.compiler.debug.localVariable=generate
2424 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
3333 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
3434 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
3535 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
36 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
3637 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3738 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3839 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8889 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8990 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
9091 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
92 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
9193 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
9294 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
9395 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
119121 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
120122 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
121123 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
122 org.eclipse.jdt.core.compiler.source=1.8
124 org.eclipse.jdt.core.compiler.release=enabled
125 org.eclipse.jdt.core.compiler.source=11
123126 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
127 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
124128 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
125129 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
126130 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
127131 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
128132 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
129133 org.eclipse.jdt.core.formatter.alignment_for_assignment=0
130 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
134 org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
131135 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
132136 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
133137 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
134138 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
139 org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
135140 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
141 org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
136142 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
137143 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
138144 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
145 org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
139146 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
140147 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
141148 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
211218 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
212219 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
213220 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
221 org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
214222 org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
215223 org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
216224 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
217225 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
218 org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
226 org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
219227 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
220228 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
221229 org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
245253 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
246254 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
247255 org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
256 org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
257 org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
248258 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
249259 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
250260 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
268278 org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
269279 org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
270280 org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
281 org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
271282 org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
283 org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
284 org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
272285 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
286 org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
273287 org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
274288 org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
275289 org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
276 org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
290 org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
277291 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
278292 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
279293 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
319333 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
320334 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
321335 org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
336 org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
337 org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
322338 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
323339 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
324340 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
354370 org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
355371 org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
356372 org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
373 org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
357374 org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
358375 org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
376 org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
377 org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
359378 org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
360379 org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
361380 org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
380399 org.eclipse.jdt.core.formatter.tabulation.char=tab
381400 org.eclipse.jdt.core.formatter.tabulation.size=4
382401 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
383 org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
402 org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
403 org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
404 org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
405 org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
406 org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
66 org.eclipse.core.runtime,
77 org.eclipse.jface.text,
88 com.jcraft.jsch
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Export-Package: org.eclipse.linuxtools.internal.man.parser;x-friends:="org.eclipse.linuxtools.man.help",
1111 org.eclipse.linuxtools.man.parser,
1212 org.eclipse.linuxtools.man.views
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.man</groupId>
2121 <artifactId>linuxtools-man-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.man.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
1515 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
1616 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1717 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
18 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
18 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1919 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
20 org.eclipse.jdt.core.compiler.compliance=1.8
20 org.eclipse.jdt.core.compiler.compliance=11
2121 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
2222 org.eclipse.jdt.core.compiler.debug.localVariable=generate
2323 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
3232 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
3333 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
3434 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
35 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
3536 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3637 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3738 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8788 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8889 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8990 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
91 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
9092 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
9193 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
9294 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
118120 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
119121 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
120122 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
121 org.eclipse.jdt.core.compiler.source=1.8
123 org.eclipse.jdt.core.compiler.release=enabled
124 org.eclipse.jdt.core.compiler.source=11
122125 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
126 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
123127 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
124128 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
125129 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
126130 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
127131 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
128132 org.eclipse.jdt.core.formatter.alignment_for_assignment=0
129 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
133 org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
130134 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
131135 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
132136 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
133137 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
138 org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
134139 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
140 org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
135141 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
136142 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
137143 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
144 org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
138145 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
139146 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
140147 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
210217 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
211218 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
212219 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
220 org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
213221 org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
214222 org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
215223 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
216224 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
217 org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
225 org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
218226 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
219227 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
220228 org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
244252 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
245253 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
246254 org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
255 org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
256 org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
247257 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
248258 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
249259 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
267277 org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
268278 org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
269279 org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
280 org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
270281 org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
282 org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
283 org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
271284 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
285 org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
272286 org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
273287 org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
274288 org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
275 org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
289 org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
276290 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
277291 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
278292 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
318332 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
319333 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
320334 org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
335 org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
336 org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
321337 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
322338 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
323339 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
353369 org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
354370 org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
355371 org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
372 org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
356373 org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
357374 org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
375 org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
376 org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
358377 org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
359378 org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
360379 org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
379398 org.eclipse.jdt.core.formatter.tabulation.char=tab
380399 org.eclipse.jdt.core.formatter.tabulation.size=4
381400 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
382 org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
401 org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
402 org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
403 org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
404 org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
405 org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
0 #Wed Dec 09 21:56:11 EET 2009
10 eclipse.preferences.version=1
21 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
32 formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
1312 sp_cleanup.add_missing_methods=false
1413 sp_cleanup.add_missing_nls_tags=false
1514 sp_cleanup.add_missing_override_annotations=true
15 sp_cleanup.add_missing_override_annotations_interface_methods=true
1616 sp_cleanup.add_serial_version_id=false
1717 sp_cleanup.always_use_blocks=true
1818 sp_cleanup.always_use_parentheses_in_expressions=false
1919 sp_cleanup.always_use_this_for_non_static_field_access=false
2020 sp_cleanup.always_use_this_for_non_static_method_access=false
21 sp_cleanup.convert_to_enhanced_for_loop=false
21 sp_cleanup.convert_functional_interfaces=true
22 sp_cleanup.convert_to_enhanced_for_loop=true
23 sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
2224 sp_cleanup.correct_indentation=false
2325 sp_cleanup.format_source_code=true
2426 sp_cleanup.format_source_code_changes_only=false
27 sp_cleanup.insert_inferred_type_arguments=false
28 sp_cleanup.lazy_logical_operator=false
2529 sp_cleanup.make_local_variable_final=false
2630 sp_cleanup.make_parameters_final=false
2731 sp_cleanup.make_private_fields_final=true
2832 sp_cleanup.make_type_abstract_if_missing_method=false
2933 sp_cleanup.make_variable_declarations_final=false
34 sp_cleanup.merge_conditional_blocks=false
3035 sp_cleanup.never_use_blocks=false
3136 sp_cleanup.never_use_parentheses_in_expressions=true
37 sp_cleanup.number_suffix=false
38 sp_cleanup.objects_equals=false
3239 sp_cleanup.on_save_use_additional_actions=true
3340 sp_cleanup.organize_imports=true
41 sp_cleanup.push_down_negation=false
3442 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3543 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3644 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3745 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3846 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3947 sp_cleanup.remove_private_constructors=true
48 sp_cleanup.remove_redundant_modifiers=true
49 sp_cleanup.remove_redundant_semicolons=true
50 sp_cleanup.remove_redundant_type_arguments=true
4051 sp_cleanup.remove_trailing_whitespaces=false
4152 sp_cleanup.remove_trailing_whitespaces_all=true
4253 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
54 sp_cleanup.remove_unnecessary_array_creation=true
4355 sp_cleanup.remove_unnecessary_casts=true
4456 sp_cleanup.remove_unnecessary_nls_tags=true
4557 sp_cleanup.remove_unused_imports=true
4860 sp_cleanup.remove_unused_private_members=false
4961 sp_cleanup.remove_unused_private_methods=true
5062 sp_cleanup.remove_unused_private_types=true
63 sp_cleanup.simplify_lambda_expression_and_method_ref=true
5164 sp_cleanup.sort_members=false
5265 sp_cleanup.sort_members_all=false
66 sp_cleanup.use_anonymous_class_creation=false
67 sp_cleanup.use_autoboxing=false
5368 sp_cleanup.use_blocks=false
5469 sp_cleanup.use_blocks_only_for_return_and_throw=false
70 sp_cleanup.use_directly_map_method=true
71 sp_cleanup.use_lambda=true
5572 sp_cleanup.use_parentheses_in_expressions=false
5673 sp_cleanup.use_this_for_non_static_field_access=false
5774 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
5875 sp_cleanup.use_this_for_non_static_method_access=false
5976 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
77 sp_cleanup.use_unboxing=false
78 sp_cleanup.use_var=false
66 org.eclipse.help,
77 org.eclipse.help.base,
88 org.eclipse.linuxtools.man.core;bundle-version="1.3.0"
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Bundle-Vendor: %Bundle-Vendor
1111 Automatic-Module-Name: org.eclipse.linuxtools.man.help
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.man</groupId>
2121 <artifactId>linuxtools-man-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.man.help</artifactId>
5656
5757 private void generateSections() {
5858 // Filter to make sure we only get manual section directories
59 DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
59 DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<>() {
6060 private final Pattern p = Pattern.compile("^man\\d[xp]?"); //$NON-NLS-1$
6161
6262 @Override
1919 <parent>
2020 <groupId>org.eclipse.linuxtools</groupId>
2121 <artifactId>linuxtools-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <groupId>org.eclipse.linuxtools.man</groupId>
+0
-20
oprofile/eclipse-oprofile.metainfo.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2015, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <component type="addon">
11 <id>eclipse-oprofile</id>
12 <metadata_license>CC-BY-SA-3.0</metadata_license>
13 <project_license>EPL-2.0</project_license>
14 <extends>eclipse.desktop</extends>
15 <name>Oprofile</name>
16 <summary>Linux Tools Eclipse plug-ins for Oprofile profiling tool</summary>
17 <url type="homepage">http://www.eclipse.org/linuxtools/projectPages/oprofile/</url>
18 <updatecontact>rgrunber@redhat.com</updatecontact>
19 </component>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile-feature/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-17
oprofile/org.eclipse.linuxtools.oprofile-feature/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile-feature</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.pde.FeatureBuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 </buildSpec>
13 <natures>
14 <nature>org.eclipse.pde.FeatureNature</nature>
15 </natures>
16 </projectDescription>
+0
-6
oprofile/org.eclipse.linuxtools.oprofile-feature/build.properties less more
0 bin.includes = feature.xml,\
1 feature.properties,\
2 p2.inf
3 src.includes = feature.properties,\
4 feature.xml,\
5 ChangeLog
+0
-16
oprofile/org.eclipse.linuxtools.oprofile-feature/feature.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2008 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Red Hat, Inc. - initial API and implementation
11 #********************************************************************************
12 featureName=OProfile Integration
13 description=Plugins to bring OProfile-based profiling into the workbench.
14 provider=Eclipse Linux Tools
15 copyright=Copyright 2008, 2010 Red Hat, Inc.
+0
-73
oprofile/org.eclipse.linuxtools.oprofile-feature/feature.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <feature
2 id="org.eclipse.linuxtools.oprofile.feature"
3 label="%featureName"
4 version="7.4.0.qualifier"
5 provider-name="%provider"
6 os="linux"
7 license-feature="org.eclipse.license"
8 license-feature-version="0.0.0">
9
10 <description>
11 %description
12 </description>
13
14 <copyright>
15 %copyright
16 </copyright>
17
18 <license url="%licenseURL">
19 %license
20 </license>
21
22 <url>
23 <update label="Linux Tools Update Site" url="http://download.eclipse.org/linuxtools/update"/>
24 </url>
25
26 <requires>
27 <import plugin="org.eclipse.core.runtime" version="3.4.0" match="greaterOrEqual"/>
28 <import plugin="org.eclipse.ui" version="3.4.0" match="greaterOrEqual"/>
29 <import plugin="org.eclipse.cdt.core"/>
30 <import plugin="org.eclipse.cdt.debug.core"/>
31 <import plugin="org.eclipse.cdt.launch"/>
32 <import plugin="org.eclipse.core.resources"/>
33 <import plugin="org.eclipse.debug.core"/>
34 <import plugin="org.eclipse.debug.ui"/>
35 <import plugin="org.eclipse.linuxtools.profiling.launch"/>
36 <import plugin="org.eclipse.ui.ide"/>
37 <import plugin="org.eclipse.jface.text"/>
38 <import plugin="org.eclipse.linuxtools.profiling.ui"/>
39 <import feature="org.eclipse.linuxtools.profiling" version="0.1.0" match="greaterOrEqual"/>
40 <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
41 <import plugin="org.eclipse.linuxtools.oprofile.core" version="0.1.0" match="greaterOrEqual"/>
42 <import plugin="org.eclipse.help"/>
43 </requires>
44
45 <plugin
46 id="org.eclipse.linuxtools.oprofile.core"
47 download-size="0"
48 install-size="0"
49 version="0.0.0"/>
50
51 <plugin
52 id="org.eclipse.linuxtools.oprofile.launch"
53 download-size="0"
54 install-size="0"
55 version="0.0.0"
56 unpack="false"/>
57
58 <plugin
59 id="org.eclipse.linuxtools.oprofile.ui"
60 download-size="0"
61 install-size="0"
62 version="0.0.0"
63 unpack="false"/>
64
65 <plugin
66 id="org.eclipse.linuxtools.oprofile.doc"
67 download-size="0"
68 install-size="0"
69 version="0.0.0"
70 unpack="false"/>
71
72 </feature>
+0
-3
oprofile/org.eclipse.linuxtools.oprofile-feature/p2.inf less more
0 instructions.configure=\
1 org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/linuxtools/update,type:0,name:Linux Tools,enabled:false); \
2 org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/linuxtools/update,type:1,name:Linux Tools,enabled:false);
+0
-64
oprofile/org.eclipse.linuxtools.oprofile-feature/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.feature</artifactId>
21 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
23
24 <name>Linux Tools OProfile Integration Feature</name>
25
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.eclipse.tycho.extras</groupId>
30 <artifactId>tycho-source-feature-plugin</artifactId>
31 <executions>
32 <execution>
33 <id>source-feature</id>
34 <phase>package</phase>
35 <goals>
36 <goal>source-feature</goal>
37 </goals>
38 <configuration>
39 <excludes>
40 <plugin id="org.eclipse.linuxtools.oprofile.doc"/>
41 </excludes>
42 </configuration>
43 </execution>
44 </executions>
45 </plugin>
46 <plugin>
47 <groupId>org.eclipse.tycho</groupId>
48 <artifactId>tycho-p2-plugin</artifactId>
49 <version>${tycho-version}</version>
50 <executions>
51 <execution>
52 <id>attached-p2-metadata</id>
53 <phase>package</phase>
54 <goals>
55 <goal>p2-metadata</goal>
56 </goals>
57 </execution>
58 </executions>
59 </plugin>
60 </plugins>
61 </build>
62
63 </project>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.core/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.core/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 oprofile-core.jar
5 target
6 natives/linux/scripts/opcontrol
+0
-34
oprofile/org.eclipse.linuxtools.oprofile.core/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.core</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 <buildCommand>
23 <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
24 <arguments>
25 </arguments>
26 </buildCommand>
27 </buildSpec>
28 <natures>
29 <nature>org.eclipse.pde.PluginNature</nature>
30 <nature>org.eclipse.jdt.core.javanature</nature>
31 <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
32 </natures>
33 </projectDescription>
+0
-109
oprofile/org.eclipse.linuxtools.oprofile.core/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
5 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
6 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
7 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
8 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
9 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
10 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
13 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
15 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
16 org.eclipse.jdt.core.compiler.debug.localVariable=generate
17 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
18 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
19 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
20 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
21 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
22 org.eclipse.jdt.core.compiler.problem.deadCode=warning
23 org.eclipse.jdt.core.compiler.problem.deprecation=warning
24 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
25 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
26 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
27 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
29 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
30 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
31 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
32 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
33 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
34 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
35 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
36 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
37 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
38 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
39 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
40 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
41 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
42 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
43 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
44 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
45 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
46 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
47 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
48 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
49 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
50 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
51 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
52 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
53 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
54 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
55 org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
56 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
57 org.eclipse.jdt.core.compiler.problem.nullReference=warning
58 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
59 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
60 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
61 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
62 org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
63 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
64 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
65 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
66 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
67 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
68 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
69 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
70 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
71 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
72 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
73 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
74 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
75 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
76 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
77 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
78 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
79 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
80 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
81 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
82 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
83 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
84 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
85 org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
86 org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
87 org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
88 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
89 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
90 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
92 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
93 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
94 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
95 org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
96 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
97 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
98 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
99 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
100 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
101 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
102 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
103 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
104 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
105 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
+0
-60
oprofile/org.eclipse.linuxtools.oprofile.core/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=false
16 sp_cleanup.convert_to_enhanced_for_loop=false
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=false
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
31 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
32 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
34 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
35 sp_cleanup.remove_private_constructors=true
36 sp_cleanup.remove_redundant_type_arguments=false
37 sp_cleanup.remove_trailing_whitespaces=false
38 sp_cleanup.remove_trailing_whitespaces_all=true
39 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
40 sp_cleanup.remove_unnecessary_casts=true
41 sp_cleanup.remove_unnecessary_nls_tags=false
42 sp_cleanup.remove_unused_imports=true
43 sp_cleanup.remove_unused_local_variables=false
44 sp_cleanup.remove_unused_private_fields=true
45 sp_cleanup.remove_unused_private_members=false
46 sp_cleanup.remove_unused_private_methods=true
47 sp_cleanup.remove_unused_private_types=true
48 sp_cleanup.sort_members=false
49 sp_cleanup.sort_members_all=false
50 sp_cleanup.use_anonymous_class_creation=false
51 sp_cleanup.use_blocks=false
52 sp_cleanup.use_blocks_only_for_return_and_throw=false
53 sp_cleanup.use_lambda=false
54 sp_cleanup.use_parentheses_in_expressions=false
55 sp_cleanup.use_this_for_non_static_field_access=false
56 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
57 sp_cleanup.use_this_for_non_static_method_access=false
58 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
59 sp_cleanup.use_type_arguments=false
+0
-26
oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core;singleton:=true
4 Bundle-Version: 3.0.0.qualifier
5 Bundle-Activator: org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin
6 Bundle-Vendor: %bundleProvider
7 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
8 org.eclipse.ui;bundle-version="3.4.0",
9 org.eclipse.linuxtools.tools.launch.core,
10 org.eclipse.linuxtools.profiling.launch;bundle-version="0.9.0",
11 org.eclipse.core.filesystem;bundle-version="1.3.100"
12 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-ClassPath: .
14 Bundle-ActivationPolicy: lazy
15 Export-Package: org.eclipse.linuxtools.internal.oprofile.core,org.ecli
16 pse.linuxtools.internal.oprofile.core.daemon,org.eclipse.linuxtools.i
17 nternal.oprofile.core.linux,org.eclipse.linuxtools.internal.oprofile.
18 core.model,org.eclipse.linuxtools.internal.oprofile.core.opxml,org.ec
19 lipse.linuxtools.internal.oprofile.core.opxml.checkevent,org.eclipse.
20 linuxtools.internal.oprofile.core.opxml.info,org.eclipse.linuxtools.i
21 nternal.oprofile.core.opxml.modeldata,org.eclipse.linuxtools.internal
22 .oprofile.core.opxml.sessions
23 Bundle-Localization: plugin
24 Import-Package: org.eclipse.core.resources
25 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.core
+0
-2
oprofile/org.eclipse.linuxtools.oprofile.core/META-INF/p2.inf less more
0 instructions.install=\
1 org.eclipse.equinox.p2.touchpoint.natives.checkAndPromptNativePackage(distro:fedora,package:oprofile);
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.core/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.core/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.properties,\
4 about.html
5 src.includes = about.html
6 individualSourceBundles=true
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.core/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2008, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Core Plug-in
13 bundleProvider=Eclipse Linux Tools
+0
-26
oprofile/org.eclipse.linuxtools.oprofile.core/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.core</artifactId>
21 <version>3.0.0-SNAPSHOT</version>
22 <packaging>eclipse-plugin</packaging>
23
24 <name>Linux Tools OProfile Core Plug-in</name>
25 </project>
+0
-72
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/IOpxmlProvider.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core;
14
15 import java.util.ArrayList;
16
17 import org.eclipse.jface.operation.IRunnableWithProgress;
18 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
19 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
20 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
21
22 /**
23 * Interface for the core to utilize opxml. Platform plugins should
24 * define/register an OpxmlProvider for the core to use.
25 */
26 public interface IOpxmlProvider {
27
28 /**
29 * Returns an <code>IRunnableWithProgress</code> that fetches generic
30 * information from opxml
31 *
32 * @param info <code>OpInfo</code> object for results
33 * @return <code>IRunnableWithProgress</code> that may be run by the caller
34 */
35 IRunnableWithProgress info(OpInfo info);
36
37 /**
38 * Returns an <code>IRunnableWithProgress</code> that fetches samples for the
39 * given <code>OpModelSession</code>
40 *
41 * @param eventName the event for which to fetch samples
42 * @param sessionName the session for which to fetch samples
43 * @param image the image being profiled to be returned to the caller
44 * @return <code>IRunnableWithProgress</code> that may be run by the caller
45 */
46 IRunnableWithProgress modelData(String eventName, String sessionName, OpModelImage image);
47
48 /**
49 * Returns an <code>IRunnableWithProgress</code> that checks the validity of the
50 * given event, unit mask, and counter combination
51 *
52 * @param ctr the counter
53 * @param event the String event name
54 * @param um the integer unit mask
55 * @param eventValid a size one array to hold the return result (see
56 * <code>CheckEventsProcessor</code>)
57 * @return <code>IRunnableWithProgress</code> that may be run by the caller
58 */
59 IRunnableWithProgress checkEvents(int ctr, String event, int um, int[] eventValid);
60
61 /**
62 * Returns an <code>IRunnableWithProgress</code> that fetches the list of
63 * sessions
64 *
65 * @param info the <code>OpInfo</code> for oprofile
66 * @param sessionList an <code>ArrayList</code> in which to return the list of
67 * sessions
68 * @return <code>IRunnableWithProgress</code> that may be run by the caller
69 */
70 IRunnableWithProgress sessions(ArrayList<OpModelSession> sessionList);
71 }
+0
-302
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/Oprofile.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core;
15
16 import java.io.IOException;
17 import java.lang.reflect.InvocationTargetException;
18 import java.util.ArrayList;
19
20 import org.eclipse.core.filesystem.IFileStore;
21 import org.eclipse.core.resources.IProject;
22 import org.eclipse.core.runtime.CoreException;
23 import org.eclipse.jface.operation.IRunnableWithProgress;
24 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
25 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
26 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
27 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
28 import org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventsProcessor;
29 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
30 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
31 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
32
33 /**
34 * Common class wrapper for all things Oprofile.
35 */
36 public class Oprofile {
37 // Ugh. Need to know whether the module is loaded without running oprofile
38 // commands...
39 private static final String[] OPROFILE_CPU_TYPE_FILES = { "/dev/oprofile/cpu_type", //$NON-NLS-1$
40 "/proc/sys/dev/oprofile/cpu_type" //$NON-NLS-1$
41 };
42
43 /**
44 * Oprofile information
45 */
46 private static OpInfo info;
47
48 /**
49 * Make sure that oprofile is ready to go
50 */
51 static {
52 initializeOprofileModule();
53 }
54
55 /**
56 * Initialize the oprofile module
57 *
58 * This function will check if the kernel module is loaded. If it is not, it
59 * will attempt to load it (which will cause the system to prompt the user for
60 * root access).
61 */
62 static private void initializeOprofileModule() {
63 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY) || isKernelModuleLoaded()) {
64 initializeOprofileCore();
65 }
66 }
67
68 // This requires more inside knowledge about Oprofile than one would like,
69 // but it is the only way of knowing whether the module is loaded (and we can
70 // succesfully call into the oprofile wrapper library without causing it to
71 // print out
72 // a lot of warnings).
73 /**
74 * Check whether oprofile kernel module is loaded
75 *
76 * @return true if the module is loaded, otherwise false
77 */
78 private static boolean isKernelModuleLoaded() {
79 IRemoteFileProxy proxy = null;
80 try {
81 proxy = RemoteProxyManager.getInstance().getFileProxy(Oprofile.OprofileProject.getProject());
82 } catch (CoreException e) {
83 e.printStackTrace();
84 }
85
86 for (int i = 0; i < OPROFILE_CPU_TYPE_FILES.length; ++i) {
87 IFileStore f = proxy.getResource(OPROFILE_CPU_TYPE_FILES[i]);
88 if (f.fetchInfo().exists()) {
89 return true;
90 }
91 }
92 return false;
93 }
94
95 /**
96 * Initializes static data for oprofile.
97 */
98 private static void initializeOprofileCore() {
99 info = OpInfo.getInfo();
100
101 if (info == null) {
102 throw new ExceptionInInitializerError(OprofileProperties.getString("fatal.opinfoNotParsed")); //$NON-NLS-1$
103 }
104 }
105
106 /**
107 * Queries oprofile for the number of counters on the current CPU. Used only in
108 * launch config tabs.
109 *
110 * @return the number of counters
111 */
112 public static int getNumberOfCounters() {
113 // If operf is not found, set no counters
114 try {
115 Process p = RuntimeProcessFactory.getFactory().exec(new String[] { "operf", "--version" }, //$NON-NLS-1$ //$NON-NLS-2$
116 OprofileProject.getProject());
117 if (p == null) {
118 return 0;
119 }
120 } catch (IOException e) {
121 return 0;
122 }
123 return info.getNrCounters();
124 }
125
126 /**
127 * Returns the CPU speed of the current configuration.
128 *
129 * @return the cpu speed in MHz
130 */
131 public static double getCpuFrequency() {
132 return info.getCPUSpeed();
133 }
134
135 /**
136 * Get all the events that may be collected on the given counter.
137 *
138 * @param num the counter number
139 * @return an array of all valid events -- NEVER RETURNS NULL!
140 */
141 public static OpEvent[] getEvents(int num) {
142 return info.getEvents(num);
143 }
144
145 /**
146 * Returns the default location of the opcontrol samples directory or the
147 * project directory if the profiler is operf.
148 *
149 * @return the default samples directory
150 */
151 public static String getDefaultSamplesDirectory() {
152 return info.getDefault(OpInfo.DEFAULT_SAMPLE_DIR);
153 }
154
155 /**
156 * Returns the oprofile daemon log file.
157 *
158 * @return the log file (absolute pathname)
159 */
160 public static String getLogFile() {
161 return info.getDefault(OpInfo.DEFAULT_LOG_FILE);
162 }
163
164 /**
165 * Returns whether or not oprofile is in timer mode.
166 *
167 * @return true if oprofile is in timer mode, false otherwise
168 */
169 public static boolean getTimerMode() {
170 return info.getTimerMode();
171 }
172
173 /**
174 * Checks the requested counter, event, and unit mask for validity.
175 *
176 * @param ctr the counter
177 * @param event the event name
178 * @param um the unit mask
179 * @return whether the requested event is valid
180 */
181 public static Boolean checkEvent(int ctr, String event, int um) {
182 int[] validResult = new int[1];
183 try {
184 IRunnableWithProgress opxml = OprofileCorePlugin.getDefault().getOpxmlProvider().checkEvents(ctr, event, um,
185 validResult);
186 opxml.run(null);
187 } catch (InvocationTargetException | InterruptedException e) {
188 }
189
190 return (validResult[0] == CheckEventsProcessor.EVENT_OK);
191 }
192
193 /**
194 * Returns a list of all the session collected on the system, as well as the
195 * event under each of them.
196 *
197 * @since 3.0
198 * @returns a list of all collected events
199 */
200 public static OpModelSession[] getSessions() {
201 OpModelSession[] events = null;
202
203 ArrayList<OpModelSession> sessionList = new ArrayList<>();
204 try {
205 IRunnableWithProgress opxml = OprofileCorePlugin.getDefault().getOpxmlProvider().sessions(sessionList);
206 opxml.run(null);
207 events = new OpModelSession[sessionList.size()];
208 sessionList.toArray(events);
209 } catch (InvocationTargetException | InterruptedException e) {
210 }
211 return events;
212 }
213
214 /**
215 * Return a list of all the Samples in the given session.
216 *
217 * @param session the session for which to get samples
218 * @param shell the composite shell to use for the progress dialog
219 */
220 public static OpModelImage getModelData(String eventName, String sessionName) {
221 OpModelImage image = new OpModelImage();
222
223 final IRunnableWithProgress opxml;
224 try {
225 opxml = OprofileCorePlugin.getDefault().getOpxmlProvider().modelData(eventName, sessionName, image);
226 opxml.run(null);
227 } catch (InvocationTargetException | InterruptedException e) {
228 }
229
230 return image;
231 }
232
233 /**
234 * Check if oprofile kernel module is loaded and update Oprofile's information.
235 *
236 * @since 1.1
237 */
238 public static void updateInfo() {
239 info = OpInfo.getInfo();
240 }
241
242 // Oprofile class has a static initializer and the code inside it needs to know
243 // which project
244 // is being profiled in order to get the path for the Linux Tools' binaries set
245 // for that project.
246 // For this reason the project property has to be set outside the Oprofile class
247 /**
248 * OProfileProject class to set/get which project is being profiled
249 *
250 * @since 1.1
251 */
252 public static class OprofileProject {
253 private static IProject project;
254 public final static String OPERF_BINARY = "operf"; //$NON-NLS-1$
255 public final static String OCOUNT_BINARY = "ocount"; //$NON-NLS-1$
256 private static String binary = OPERF_BINARY;
257 public final static String OPERF_DATA = "oprofile_data"; //$NON-NLS-1$
258
259 /**
260 * Set the project to be profiled
261 *
262 * @param project
263 */
264 public static void setProject(IProject project) {
265 OprofileProject.project = project;
266
267 }
268
269 /**
270 * Get the project to be profiled
271 *
272 * @return project
273 */
274 public static IProject getProject() {
275 return project;
276 }
277
278 /**
279 * Set the profiling binary to be used (operf or opcontrol)
280 *
281 * @param binary
282 * @since 2.1
283 */
284 public static void setProfilingBinary(String binary) {
285 OprofileProject.binary = binary;
286
287 }
288
289 /**
290 * Get the profiling binary (operf or opcontrol)
291 *
292 * @return binary
293 * @since 2.1
294 */
295 public static String getProfilingBinary() {
296 return binary;
297 }
298
299 }
300
301 }
+0
-162
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/OprofileCorePlugin.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core;
15
16 import java.io.IOException;
17 import java.net.URL;
18
19 import org.eclipse.core.runtime.CoreException;
20 import org.eclipse.core.runtime.FileLocator;
21 import org.eclipse.core.runtime.IStatus;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.core.runtime.Platform;
24 import org.eclipse.core.runtime.Plugin;
25 import org.eclipse.core.runtime.Status;
26 import org.eclipse.jface.dialogs.ErrorDialog;
27 import org.eclipse.linuxtools.internal.oprofile.core.linux.LinuxOpxmlProvider;
28 import org.eclipse.swt.widgets.Display;
29 import org.osgi.framework.Bundle;
30 import org.osgi.framework.BundleContext;
31
32 /**
33 * The main plugin class to be used in the desktop.
34 */
35 public class OprofileCorePlugin extends Plugin {
36 private static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.core"; //$NON-NLS-1$
37
38 // The shared instance.
39 private static OprofileCorePlugin plugin;
40
41 public static final String DEBUG_PRINT_PREFIX = "DEBUG: "; //$NON-NLS-1$
42
43 /**
44 * The constructor.
45 */
46 public OprofileCorePlugin() {
47 plugin = this;
48 }
49
50 /**
51 * This method is called when the plug-in is stopped
52 */
53 @Override
54 public void stop(BundleContext context) throws Exception {
55 super.stop(context);
56 plugin = null;
57 }
58
59 /**
60 * Returns the shared instance.
61 */
62 public static OprofileCorePlugin getDefault() {
63 return plugin;
64 }
65
66 /**
67 * Returns the unique id of this plugin. Should match plugin.xml!
68 */
69 public static String getId() {
70 return PLUGIN_ID;
71 }
72
73 /**
74 * Returns the OpxmlProvider registered with the plugin or throws an exception
75 *
76 * @return the OpxmlProvider
77 */
78 public IOpxmlProvider getOpxmlProvider() {
79 return new LinuxOpxmlProvider();
80 }
81
82 /**
83 * Creates an error status object
84 *
85 * @param errorClassString A string of the error class
86 * @param e The type of exception
87 * @return the status object of the error
88 */
89 public static IStatus createErrorStatus(String errorClassString, Exception e) {
90 String statusMessage = OprofileProperties.getString(errorClassString + ".error.statusMessage"); //$NON-NLS-1$
91
92 if (e == null) {
93 return new Status(IStatus.ERROR, getId(), IStatus.OK, statusMessage, null);
94 } else {
95 return new Status(IStatus.ERROR, getId(), IStatus.OK, statusMessage, e);
96 }
97 }
98
99 /**
100 * Shows an error Dialog
101 *
102 * @param errorClassString A string of the error class
103 * @param ex The type of exception
104 */
105 public static void showErrorDialog(String errorClassString, CoreException ex) {
106 final IStatus status;
107 final String dialogTitle = OprofileProperties.getString(errorClassString + ".error.dialog.title"); //$NON-NLS-1$
108 final String errorMessage = OprofileProperties.getString(errorClassString + ".error.dialog.message"); //$NON-NLS-1$
109
110 if (ex == null) {
111 status = createErrorStatus(errorClassString, null);
112 } else {
113 status = ex.getStatus();
114 }
115
116 // needs to be run in the ui thread otherwise swt throws invalid thread access
117 Display.getDefault().syncExec(() -> ErrorDialog.openError(null, dialogTitle, errorMessage, status));
118
119 }
120
121 /**
122 *
123 * @return {@code true} when platform was started in debug mode ({@code -debug}
124 * switch) and
125 * {@code org.eclipse.linuxtools.internal.oprofile.core/debug} is set in
126 * some .options file either in $HOME/.options or $(pwd)/.options.
127 */
128 public static boolean isDebugMode() {
129 return Platform.inDebugMode() && Platform.getDebugOption(OprofileCorePlugin.getId() + "/debug") != null; //$NON-NLS-1$
130 }
131
132 /**
133 * Log a string message with the given severity in the error log.
134 *
135 * @param severity the severity of this exception
136 * @param msg the string message to be logged
137 */
138 public static void log(int severity, String msg) {
139 plugin.getLog().log(new Status(severity, PLUGIN_ID, IStatus.OK, msg, null));
140 }
141
142 /**
143 * Returns the location of the plugin by checking the path of the bundle's
144 * locationURL.
145 *
146 * @return An absolute path representing the location of this plugin
147 */
148 public String getPluginLocation() {
149 Bundle bundle = getBundle();
150
151 URL locationUrl = FileLocator.find(bundle, new Path("/"), null); //$NON-NLS-1$
152 URL fileUrl = null;
153 try {
154 fileUrl = FileLocator.toFileURL(locationUrl);
155 } catch (IOException e) {
156 e.printStackTrace();
157 }
158 return fileUrl.getFile();
159 }
160
161 }
+0
-33
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/OprofileProperties.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.oprofile.core;
14
15 import java.util.MissingResourceException;
16 import java.util.ResourceBundle;
17
18 public class OprofileProperties {
19 private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.oprofile.core.oprofile"; //$NON-NLS-1$
20 private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
21
22 private OprofileProperties() {
23 }
24
25 public static String getString(String key) {
26 try {
27 return RESOURCE_BUNDLE.getString(key);
28 } catch (MissingResourceException e) {
29 return '!' + key + '!';
30 }
31 }
32 }
+0
-112
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/daemon/OpEvent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.daemon;
15
16 /**
17 * A class which represents an Oprofile event
18 */
19 public class OpEvent {
20 /**
21 * The Oprofile event name, i.e., "CPU_CLK_UNHALTED"
22 */
23 private String name;
24
25 /**
26 * A description of the event
27 */
28 private String description;
29
30 /**
31 * Unit masks for this event type
32 */
33 private OpUnitMask unitMask;
34
35 /**
36 * Minimum count
37 */
38 private int minCount;
39
40 /**
41 * Sets the unit mask for this event. Only called from XML parsers.
42 *
43 * @param mask the new unit mask
44 */
45 public void setUnitMask(OpUnitMask mask) {
46 unitMask = mask;
47 }
48
49 /**
50 * Sets the name of this event. Only called from XML parsers.
51 *
52 * @param text the name
53 */
54 public void setText(String text) {
55 name = text;
56 }
57
58 /**
59 * Sets the description of this oprofile event. Only called from XML parsers.
60 *
61 * @param text the description
62 */
63 public void setTextDescription(String text) {
64 description = text;
65 }
66
67 /**
68 * Sets the minimum count for this event. Only called from XML parsers.
69 *
70 * @param min the minimum count
71 */
72 public void setMinCount(int min) {
73 minCount = min;
74 }
75
76 /**
77 * Returns the unit mask corresponding to this event.
78 *
79 * @return the unit mask
80 */
81 public OpUnitMask getUnitMask() {
82 return unitMask;
83 }
84
85 /**
86 * Returns the name of this oprofile event.
87 *
88 * @return the name
89 */
90 public String getText() {
91 return name;
92 }
93
94 /**
95 * Returns the description of this oprofile event.
96 *
97 * @return the description
98 */
99 public String getTextDescription() {
100 return description;
101 }
102
103 /**
104 * Returns the minimum count allowed for this event.
105 *
106 * @return the minimum count
107 */
108 public int getMinCount() {
109 return minCount;
110 }
111 }
+0
-233
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/daemon/OpInfo.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.daemon;
15
16 import java.util.Arrays;
17 import java.util.Comparator;
18 import java.util.HashMap;
19
20 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
21 import org.eclipse.linuxtools.internal.oprofile.core.linux.LinuxOpxmlProvider.OpInfoRunner;
22 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.DefaultsProcessor;
23
24 /**
25 * A class to hold generic information about Oprofile.
26 */
27 public class OpInfo {
28 // Oprofile defaults
29 public static final String DEFAULT_SAMPLE_DIR = DefaultsProcessor.SAMPLE_DIR;
30 public static final String DEFAULT_LOCK_FILE = DefaultsProcessor.LOCK_FILE;
31 public static final String DEFAULT_LOG_FILE = DefaultsProcessor.LOG_FILE;
32 public static final String DEFAULT_DUMP_STATUS = DefaultsProcessor.DUMP_STATUS;
33
34 /**
35 * A comparator class used when sorting events (sorting by event name)
36 */
37 private static class SortEventComparator implements Comparator<OpEvent> {
38 @Override
39 public int compare(OpEvent o1, OpEvent o2) {
40 return o1.getText().compareTo(o2.getText());
41 }
42 }
43
44 /**
45 * A comparator class used when searching events (searching by event name)
46 */
47 private static class SearchEventComparator implements Comparator<Object> {
48 @Override
49 public int compare(Object a, Object b) {
50 String astr, bstr;
51 if (a instanceof String) {
52 astr = (String) a;
53 bstr = ((OpEvent) b).getText();
54 } else {
55 astr = ((OpEvent) a).getText();
56 bstr = (String) b;
57 }
58 return astr.compareTo(bstr);
59 }
60 }
61
62 /**
63 * The number of counters supported by this configuration
64 */
65 private int nrCounters;
66
67 /**
68 * A HashMap of Oprofile defaults
69 */
70 private HashMap<String, String> defaults;
71
72 /**
73 * The permanent list of events indexed by counter
74 */
75 private OpEvent[][] eventList;
76
77 /**
78 * The CPU frequency of this CPU in MHz
79 */
80 private double cpuSpeed;
81
82 /**
83 * Whether or not oprofile is running in timer mode
84 */
85 private boolean timerMode;
86
87 /**
88 * Return all of Oprofile's generic information.
89 *
90 * @return a class containing the information
91 */
92 public static OpInfo getInfo() {
93 // Run opmxl and get the static information
94 OpInfo info = new OpInfo();
95
96 OpInfoRunner opxml = (OpInfoRunner) OprofileCorePlugin.getDefault().getOpxmlProvider().info(info);
97 boolean ret = opxml.run0(null);
98 if (!ret) {
99 info = null;
100 }
101
102 return info;
103 }
104
105 /**
106 * Sets the number of counters allowed by Oprofile. This method is called after
107 * this object is contstructed, while opxml is run (the first tag output is
108 * num-counters). Only called from XML parsers.
109 *
110 * @param ctrs the number of counters
111 */
112 public void setNrCounters(int ctrs) {
113 nrCounters = ctrs;
114
115 // Allocate room for event lists for the counters
116 eventList = new OpEvent[nrCounters][];
117 }
118
119 /**
120 * Set the CPU frequency (in MHz). Only called from the XML parsers.
121 *
122 * @param freq the frequency
123 */
124 public void setCPUSpeed(double freq) {
125 cpuSpeed = freq;
126 }
127
128 /**
129 * Sets the defaults associated with this configuration of Oprofile. Only called
130 * from XML parsers.
131 *
132 * @param map the <code>HashMap</code> containing the defaults
133 */
134 public void setDefaults(HashMap<String, String> map) {
135 defaults = map;
136 }
137
138 /**
139 * Adds the events of the counter counterNum into the list of all events. Note
140 * they are sorted here. Only called from XML parsers.
141 *
142 * @param counterNum the counter with the events
143 * @param events an array of OpEvent events belonging to this counter
144 */
145 public void setEvents(int counterNum, OpEvent[] events) {
146 if (counterNum < eventList.length) {
147 eventList[counterNum] = events;
148 Arrays.sort(eventList[counterNum], new SortEventComparator());
149 }
150 }
151
152 /**
153 * Sets whether or not oprofile is operating in timer mode. Only called from XML
154 * parsers.
155 *
156 * @param timerMode true if oprofile is in timer mode, false if not
157 */
158 public void setTimerMode(boolean timerMode) {
159 this.timerMode = timerMode;
160 }
161
162 /**
163 * Returns the number of counters allowed by Oprofile
164 *
165 * @return the number of counters
166 */
167 public int getNrCounters() {
168 return nrCounters;
169 }
170
171 /**
172 * Returns the CPU's speed in MHz
173 *
174 * @return the speed
175 */
176 public double getCPUSpeed() {
177 return cpuSpeed;
178 }
179
180 /**
181 * Returns the requested default. Valid defaults are
182 * <code>DEFAULT_DUMP_STATUS</code>, <code>DEFAULT_LOCK_FILE</code>,
183 * <code>DEFAULT_LOG_FILE</code>, and <code>DEFAULT_SAMPLE_DIR</code>.
184 *
185 * @param what which default to return
186 * @return the requested default or <code>null</code> if not known
187 */
188 public String getDefault(String what) {
189 return defaults.get(what);
190 }
191
192 /**
193 * Returns an array of events valid for the given counter number.
194 *
195 * @param num the counter number
196 * @return an array of valid events
197 */
198 public OpEvent[] getEvents(int num) {
199 if (num >= 0 && num < eventList.length) {
200 return eventList[num];
201 }
202
203 return new OpEvent[0];
204 }
205
206 /**
207 * Returns whether or not oprofile is operating in timer mode.
208 *
209 * @return a boolean, true if in timer mode, false if not
210 */
211 public boolean getTimerMode() {
212 return timerMode;
213 }
214
215 /**
216 * Searches the for the event with the given name
217 *
218 * @param name the name of the event (e.g., CPU_CLK_UNHALTED)
219 * @return the event or <code>null</code> if not found
220 */
221 public OpEvent findEvent(String name) {
222 // Search through all counters
223 for (int counter = 0; counter < getNrCounters(); ++counter) {
224 int idx = Arrays.binarySearch(getEvents(counter), name, new SearchEventComparator());
225 if (idx >= 0) {
226 return eventList[counter][idx];
227 }
228 }
229
230 return null;
231 }
232 }
+0
-321
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/daemon/OpUnitMask.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2019 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.daemon;
15
16 import java.util.HashSet;
17 import java.util.Set;
18
19 /**
20 * A class representing the unit mask that may be associated with oprofile
21 * events. Note that since this class was originally written, oprofile unit
22 * masks have changed -- a single unit mask may affect several bits at once.
23 * Hence, instead of a certain bit being flipped, the specific bits to be
24 * changed are determined by the particular mask's index
25 */
26 public class OpUnitMask {
27 /**
28 * A class which describes an individual unit mask value. Used in XML parsing.
29 */
30 public static class MaskInfo {
31 /**
32 * The integer value of the mask.
33 */
34 public int value;
35
36 /**
37 * The name of the mask.
38 */
39 public String name;
40
41 /**
42 * A description of the mask.
43 */
44 public String description;
45 }
46
47 public static final int SET_DEFAULT_MASK = -1;
48
49 /**
50 * Invalid mask type.
51 */
52 public static final int INVALID = -1;
53
54 /**
55 * The mask is mandatory. It must be used.
56 */
57 public static final int MANDATORY = 1;
58
59 /**
60 * The mask is exclusive. Only one of its mask values may be used.
61 */
62 public static final int EXCLUSIVE = 2;
63
64 /**
65 * The mask is a bitmask. Any combination of its values may be used.
66 */
67 public static final int BITMASK = 3;
68
69 /**
70 * The current value of this unitmask
71 */
72 private int mask;
73
74 /**
75 * The current name of this unitmask (EXCLUSIVE-only)
76 */
77 private String maskName = ""; //$NON-NLS-1$
78
79 /**
80 * The default mask provided by the oprofile library
81 */
82 private int defaultMask;
83
84 /**
85 * The type of this unitmask
86 */
87 private int maskType;
88
89 /**
90 * Descriptions of the bits of this mask
91 */
92 private String[] maskOptionDescriptions = new String[0];
93
94 /**
95 * mask values -- now bit masks have distinct values (eg: an all of the above)
96 */
97
98 private int[] maskOptionValues;
99
100 /**
101 * Name of the bit mask
102 */
103
104 private String[] maskOptionNames = new String[0];
105
106 /**
107 * Set of non-unique mask values (EXCLUSIVE type only) Some platforms allow
108 * multiple masks of same value and these need to be identified additionally by
109 * their name
110 */
111 Set<Integer> nonUniqueValues = new HashSet<>();
112
113 /**
114 * Set the descriptions and values for this unitmask's mask options. Only used
115 * from the XML parsers.
116 *
117 * @param masks a list of all the mask options
118 */
119 public void setMaskDescriptions(MaskInfo[] masks) {
120 maskOptionDescriptions = new String[masks.length];
121 maskOptionValues = new int[masks.length];
122 maskOptionNames = new String[masks.length];
123
124 Set<Integer> values = new HashSet<>();
125
126 for (int i = 0; i < masks.length; ++i) {
127 Integer val = Integer.valueOf(masks[i].value);
128 if (values.contains(Integer.valueOf(val))) {
129 nonUniqueValues.add(Integer.valueOf(val));
130 }
131 values.add(Integer.valueOf(val));
132 maskOptionDescriptions[i] = masks[i].description;
133 maskOptionValues[i] = masks[i].value;
134 maskOptionNames[i] = masks[i].name;
135 }
136 }
137
138 /**
139 * Sets the default value for this unitmask, and initializes the current
140 * unitmask value to this default. Only used from the XML parsers.
141 *
142 * @param theDefault the default value
143 */
144 public void setDefault(int theDefault) {
145 defaultMask = theDefault;
146 setDefaultMaskValue();
147 }
148
149 /**
150 * Sets the unitmask type. Only used from the XML parsers.
151 *
152 * @param type the type
153 */
154 public void setType(int type) {
155 maskType = type;
156 }
157
158 /**
159 * Returns the integer value of this unitmask, suitable for passing to oprofile.
160 *
161 * @return the integer value
162 */
163 public int getMaskValue() {
164 return mask;
165 }
166
167 /**
168 * Returns the unitmask name if this is a non-unique bitmask (EXCLUSIVE-only),
169 * otherwise returns null.
170 */
171 public String getMaskName() {
172 if (nonUniqueValues.contains(Integer.valueOf(mask))) {
173 return maskName;
174 }
175 return null;
176 }
177
178 /**
179 * Tests whether a particular mask is set in the unitmask value, based on the
180 * value of the mask option at the given index.
181 *
182 * @param index the index of the mask option to check
183 * @return whether the given mask option's value is set
184 */
185 public boolean isMaskSetFromIndex(int index) {
186 boolean result = false;
187
188 if (index >= 0 && index < maskOptionValues.length) {
189 switch (maskType) {
190 case EXCLUSIVE:
191 result = (mask == maskOptionValues[index]
192 && (maskName.isEmpty() || maskName.equals(maskOptionNames[index])));
193 break;
194
195 case BITMASK:
196 result = ((mask & maskOptionValues[index]) != 0);
197 break;
198
199 default:
200 result = false;
201 }
202 }
203
204 return result;
205 }
206
207 /**
208 * Sets the absolute unitmask value.
209 *
210 * @param newValue the new value of this unitmask
211 */
212 public void setMaskValue(int newValue) {
213 if (newValue == SET_DEFAULT_MASK) {
214 mask = defaultMask;
215 } else {
216 mask = newValue;
217 }
218 }
219
220 /**
221 * Sets the unitmask name.
222 *
223 * @param newName the name of this unitmask
224 */
225 public void setMaskName(String newName) {
226 maskName = newName;
227 }
228
229 /**
230 * Sets the bits of the given mask option's value in the unitmask value.
231 *
232 * @param index the index of the mask option to set
233 */
234 public void setMaskFromIndex(int index) {
235 // mandatory masks only use the default value
236 if (index >= 0 && index < maskOptionValues.length) {
237 if (maskType == BITMASK)
238 mask |= maskOptionValues[index];
239 else if (maskType == EXCLUSIVE) {
240 mask = maskOptionValues[index];
241 maskName = maskOptionNames[index];
242 }
243 }
244 }
245
246 /**
247 * Returns the value of the mask based on the unitmask index.
248 *
249 * @param index the index of the mask option
250 * @return the mask option's value
251 */
252 public int getMaskFromIndex(int index) {
253 // mandatory masks only use the default value
254 if (maskType == BITMASK) {
255 if (index >= 0 && index < maskOptionValues.length) {
256 return maskOptionValues[index];
257 }
258 } else if (maskType == EXCLUSIVE) {
259 if (index >= 0 && index < maskOptionValues.length) {
260 return maskOptionValues[index];
261 }
262 } else if (maskType == MANDATORY) {
263 return defaultMask;
264 }
265
266 // type invalid or unknown, or out of bounds
267 return -1;
268 }
269
270 /**
271 * Unset the bits of the given mask option's value in the unitmask value.
272 *
273 * @param index the index of the mask option to set
274 */
275 public void unSetMaskFromIndex(int index) {
276 if (index >= 0 && index < maskOptionValues.length && maskType == BITMASK) {
277 mask = mask & ~maskOptionValues[index];
278 }
279 }
280
281 /**
282 * Sets the current unitmask value to the default mask value.
283 */
284 public void setDefaultMaskValue() {
285 mask = defaultMask;
286 }
287
288 /**
289 * Returns a description of the requested mask option.
290 *
291 * @param num the mask option index
292 * @return the description
293 */
294 public String getText(int num) {
295 if (num >= 0 && num < maskOptionDescriptions.length) {
296 return maskOptionDescriptions[num];
297 }
298
299 return null;
300 }
301
302 /**
303 * Returns the number of mask options in this unitmask.
304 *
305 * @return the number of mask options
306 */
307 public int getNumMasks() {
308 return maskOptionDescriptions.length;
309 }
310
311 /**
312 * Returns the mask type for this unit mask.
313 *
314 * @return <code>BITMASK</code>, <code>EXCLUSIVE</code>, or
315 * <code>MANDATORY</code>
316 */
317 public int getType() {
318 return maskType;
319 }
320 }
+0
-135
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/daemon/OprofileDaemonEvent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.daemon;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
17
18 /**
19 * This class represents an event used to configure the OProfile daemon.
20 */
21 public class OprofileDaemonEvent {
22 public static final int COUNT_UNINITIALIZED = 0;
23 public static final int COUNT_INVALID = -1;
24
25 /**
26 * The event to collect on this counter
27 */
28 private OpEvent event;
29
30 /**
31 * Boolean variable to enable/disable Profile kernel
32 */
33 private boolean profileKernel;
34
35 /**
36 * Boolean variable to enable/disable Profile userspace
37 */
38 private boolean profileUser;
39
40 /**
41 * Reset counter value
42 */
43 private int count;
44
45 public OprofileDaemonEvent() {
46 profileKernel = true;
47 profileUser = true;
48 count = COUNT_UNINITIALIZED;
49 event = null;
50 }
51
52 /**
53 * Set the event to collect
54 *
55 * @param event the OProfile event
56 */
57 public void setEvent(OpEvent event) {
58 this.event = event;
59 }
60
61 /**
62 * Get the event to collect
63 *
64 * @returns the OProfile event
65 */
66 public OpEvent getEvent() {
67 return event;
68 }
69
70 /**
71 * Set whether to profile the kernel
72 *
73 * @param profileKernel whether to enable kernel profiling
74 */
75 public void setProfileKernel(boolean profileKernel) {
76 this.profileKernel = profileKernel;
77 }
78
79 /**
80 * Get whether to profile the kernel
81 *
82 * @return whether to profile the kernel
83 */
84 public boolean getProfileKernel() {
85 return profileKernel;
86 }
87
88 /**
89 * Set whether to profile userspace
90 *
91 * @param profileUser whether to profile userspace
92 */
93 public void setProfileUser(boolean profileUser) {
94 this.profileUser = profileUser;
95 }
96
97 /**
98 * Get whether to profile userspace
99 *
100 * @return whether to profile userspace
101 */
102 public boolean getProfileUser() {
103 return profileUser;
104 }
105
106 /**
107 * Set the reset count
108 *
109 * @param count the new count
110 */
111 public void setResetCount(int count) {
112 this.count = count;
113 }
114
115 /**
116 * Get the reset count
117 *
118 * @return the reset count
119 */
120 public int getResetCount() {
121 // FIXME: This isn't quite in the right place...
122 if (count == COUNT_UNINITIALIZED) {
123 // This is what Oprofile does in oprof_start.cpp:
124 double speed = Oprofile.getCpuFrequency();
125 if (speed == 0.0) {
126 count = event.getMinCount() * 30;
127 } else {
128 count = (int) speed * 20;
129 }
130 }
131
132 return count;
133 }
134 }
+0
-129
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/daemon/OprofileDaemonOptions.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.daemon;
14
15 /**
16 * This class represents the global launch options for the OProfile daemon.
17 */
18 public class OprofileDaemonOptions {
19 /**
20 * Kernel image file
21 */
22 private String kernelImageFile;
23
24 /**
25 * How to separate profiles (mask)
26 */
27 private int separateProfiles;
28
29 /**
30 * The image to profile
31 */
32 private String binaryImage;
33
34 /**
35 * How many calls down to profile
36 */
37 private int callgraphDepth;
38
39 /**
40 * Sample separation options. Determines how oprofiled will group samples for
41 * binaries which isn't the main binary being profiled.
42 *
43 * Currently only properly support: -none: ignore all other binaries -library:
44 * include shared library samples -kernel: include kernel module samples (which
45 * implicitly includes library)
46 *
47 * the others probably wouldn't show nicely in the view
48 */
49 public static final int SEPARATE_NONE = 0;
50 public static final int SEPARATE_LIBRARY = 1;
51 public static final int SEPARATE_KERNEL = 2;
52 public static final int SEPARATE_THREAD = 4;
53 public static final int SEPARATE_CPU = 8;
54
55 /**
56 * Constructor
57 */
58 public OprofileDaemonOptions() {
59 // defaults
60 kernelImageFile = ""; //$NON-NLS-1$
61 separateProfiles = SEPARATE_NONE;
62 binaryImage = ""; //$NON-NLS-1$
63 callgraphDepth = 0;
64 }
65
66 /**
67 * Get the kernel image file
68 *
69 * @return the kernel image file
70 */
71 public String getKernelImageFile() {
72 return kernelImageFile;
73 }
74
75 /**
76 * Set the kernel image file
77 *
78 * @param image the kernel image
79 */
80 public void setKernelImageFile(String image) {
81 kernelImageFile = image;
82 }
83
84 /**
85 * Get daemon profile separation mask
86 *
87 * @return mask of options
88 */
89 public int getSeparateProfilesMask() {
90 return separateProfiles;
91 }
92
93 /**
94 * Set daemon profile separation mask
95 *
96 * @param mask the new separation mask
97 */
98 public void setSeparateProfilesMask(int mask) {
99 separateProfiles = mask;
100 }
101
102 /**
103 * Get the path to the binary image being profiled.
104 *
105 * @return full path to the binary
106 */
107 public String getBinaryImage() {
108 return binaryImage;
109 }
110
111 /**
112 * Sets the path of the binary image to profile.
113 *
114 * @param image full path to the binary
115 */
116 public void setBinaryImage(String image) {
117 this.binaryImage = image;
118 }
119
120 /**
121 * Get the call depth value.
122 *
123 * @return integer amount of calls down to profile
124 */
125 public int getCallgraphDepth() {
126 return callgraphDepth;
127 }
128 }
+0
-99
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/linux/LinuxOpxmlProvider.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.linux;
14
15 import java.util.ArrayList;
16
17 import org.eclipse.core.runtime.IProgressMonitor;
18 import org.eclipse.jface.operation.IRunnableWithProgress;
19 import org.eclipse.linuxtools.internal.oprofile.core.IOpxmlProvider;
20 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
21 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
22 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
23 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlConstants;
24 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
25 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionsProcessor;
26
27 /**
28 * A class which implements the IOpxmlProvider interface for running opxml.
29 */
30 public class LinuxOpxmlProvider implements IOpxmlProvider {
31
32 @Override
33 public IRunnableWithProgress info(final OpInfo info) {
34 return new OpInfoRunner(info);
35 }
36
37 // public because it is used in OpInfo.java:getInfo()
38 public class OpInfoRunner implements IRunnableWithProgress {
39 private boolean b;
40 private final OpInfo info;
41
42 public OpInfoRunner(OpInfo info) {
43 this.info = info;
44 }
45
46 public boolean run0(IProgressMonitor monitor) {
47 run(monitor);
48 return b;
49 }
50
51 @Override
52 public void run(IProgressMonitor monitor) {
53 OpxmlRunner runner = new OpxmlRunner();
54 String[] args = new String[] { OpxmlConstants.OPXML_INFO };
55 b = runner.run(args, info);
56 }
57 }
58
59 @Override
60 public IRunnableWithProgress modelData(final String eventName, final String sessionName, final OpModelImage image) {
61 return monitor -> {
62 OpxmlRunner runner = new OpxmlRunner();
63
64 String[] args = new String[] { OpxmlConstants.OPXML_MODELDATA, eventName, sessionName };
65
66 ModelDataProcessor.CallData data = new ModelDataProcessor.CallData(image);
67 runner.run(args, data);
68 };
69 }
70
71 @Override
72 public IRunnableWithProgress checkEvents(final int ctr, final String event, final int um, final int[] eventValid) {
73 return monitor -> {
74 OpxmlRunner runner = new OpxmlRunner();
75 String[] args = new String[] { OpxmlConstants.CHECKEVENTS_TAG, Integer.toString(ctr), event,
76 Integer.toString(um) };
77
78 runner.run(args, eventValid);
79 };
80 }
81
82 /**
83 * return list of session collected on this system as well as events under each
84 * of them.
85 *
86 * @since 3.0
87 */
88 @Override
89 public IRunnableWithProgress sessions(final ArrayList<OpModelSession> sessionList) {
90 return monitor -> {
91 OpxmlRunner runner = new OpxmlRunner();
92 String[] args = new String[] { OpxmlConstants.OPXML_SESSIONS, };
93
94 SessionsProcessor.SessionInfo sinfo = new SessionsProcessor.SessionInfo(sessionList);
95 runner.run(args, sinfo);
96 };
97 }
98 }
+0
-348
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/linux/OpxmlRunner.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.linux;
14
15 import java.io.BufferedReader;
16 import java.io.BufferedWriter;
17 import java.io.ByteArrayInputStream;
18 import java.io.File;
19 import java.io.FileReader;
20 import java.io.FileWriter;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.InputStreamReader;
24 import java.nio.charset.StandardCharsets;
25 import java.util.ArrayList;
26 import java.util.Collections;
27
28 import javax.xml.parsers.DocumentBuilder;
29 import javax.xml.parsers.DocumentBuilderFactory;
30 import javax.xml.parsers.ParserConfigurationException;
31 import javax.xml.parsers.SAXParserFactory;
32
33 import org.eclipse.core.runtime.CoreException;
34 import org.eclipse.core.runtime.IPath;
35 import org.eclipse.core.runtime.IStatus;
36 import org.eclipse.core.runtime.Status;
37 import org.eclipse.jface.dialogs.ErrorDialog;
38 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
39 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
40 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
41 import org.eclipse.linuxtools.internal.oprofile.core.OprofileProperties;
42 import org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter;
43 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
44 import org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventAdapter;
45 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter;
46 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataAdapter;
47 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager;
48 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
49 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
50 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
51 import org.eclipse.osgi.util.NLS;
52 import org.eclipse.swt.widgets.Display;
53 import org.w3c.dom.Document;
54 import org.w3c.dom.Element;
55 import org.w3c.dom.NodeList;
56 import org.xml.sax.InputSource;
57 import org.xml.sax.SAXException;
58 import org.xml.sax.XMLReader;
59
60 /**
61 * This class will run opxml.
62 *
63 * opxml is a small program which acts as a textual interface between Oprofile
64 * and BFD and the oprofile plugins.
65 */
66 public class OpxmlRunner {
67
68 /**
69 * Runs opxml with the given arguments.
70 *
71 * @param args the arguments to pass to opxml
72 * @param callData any callData to pass to the processor
73 * @return boolean indicating the success/failure of opxml
74 */
75 public boolean run(String[] args, Object callData) {
76 XMLReader reader = null;
77 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(callData);
78
79 // Create XMLReader
80 SAXParserFactory factory = SAXParserFactory.newInstance();
81 try {
82 reader = factory.newSAXParser().getXMLReader();
83 } catch (Exception e) {
84 e.printStackTrace();
85 return false;
86 }
87
88 // Set content/error handlers
89 reader.setContentHandler(handler);
90 reader.setErrorHandler(handler);
91
92 // Check for timer support
93 InfoAdapter.checkTimerSupport();
94
95 // Run opxml
96 try {
97 File file = constructFile(args);
98
99 // handle the opxml_session file
100 if (args[0].equals(SessionManager.SESSIONS)) {
101 SessionManager sessManNew = new SessionManager(SessionManager.SESSION_LOCATION);
102 populateWithCurrentSession(sessManNew);
103 sessManNew.write();
104 FileReader fr = new FileReader(file);
105 reader.parse(new InputSource(fr));
106 // file has not been saved
107 } else if (!file.exists()) {
108 AbstractDataAdapter aea;
109 if (args[0].equals(CheckEventAdapter.CHECK_EVENTS)) {
110 aea = new CheckEventAdapter(args[1], args[2], args[3]);
111 aea.process();
112 BufferedReader bi = new BufferedReader(new InputStreamReader(aea.getInputStream()));
113 reader.parse(new InputSource(bi));
114 } else if (args[0].equals(InfoAdapter.INFO)) {
115 aea = new InfoAdapter();
116 aea.process();
117 BufferedReader bi = new BufferedReader(new InputStreamReader(aea.getInputStream()));
118 reader.parse(new InputSource(bi));
119 } else if (args[0].equals(ModelDataAdapter.MODEL_DATA)) {
120 // this should only happen initially when the current
121 // session
122 // has not been generated
123 if (!handleModelData(args)) {
124 return false;
125 }
126 FileReader fr = new FileReader(file);
127 reader.parse(new InputSource(fr));
128 } else {
129 throw new RuntimeException("Unrecognized argument encountered"); //$NON-NLS-1$
130 }
131 } else {
132 // always regenerate the 'current' session file
133 if (args.length == 3 && args[0].equals(SessionManager.MODEL_DATA)
134 && args[2].equals(SessionManager.CURRENT)) {
135 if (!handleModelData(args)) {
136 return false;
137 }
138 }
139 FileReader fr = new FileReader(file);
140 reader.parse(new InputSource(fr));
141 }
142
143 return true;
144 } catch (SAXException e) {
145 e.printStackTrace();
146 OprofileCorePlugin.showErrorDialog("opxmlSAXParseException", null); //$NON-NLS-1$
147 } catch (IOException e) {
148 e.printStackTrace();
149 OprofileCorePlugin.showErrorDialog("opxmlParse", null); //$NON-NLS-1$
150 }
151 return false;
152 }
153
154 private File saveOpxmlToFile(BufferedReader bi, String[] args) {
155 String fileName = ""; //$NON-NLS-1$
156 for (String arg : args) {
157 fileName += arg;
158 }
159 File file = new File(SessionManager.OPXML_PREFIX + fileName);
160 String line;
161 try {
162 file.createNewFile();
163 try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
164 while ((line = bi.readLine()) != null) {
165 bw.write(line + "\n"); //$NON-NLS-1$
166 }
167 bi.close();
168 }
169 } catch (IOException e) {
170 e.printStackTrace();
171 }
172 return file;
173 }
174
175 private File constructFile(String[] args) {
176 String fileName = ""; //$NON-NLS-1$
177 for (int i = 0; i < args.length; i++) {
178 fileName += args[i];
179 }
180 return new File(SessionManager.OPXML_PREFIX + fileName);
181 }
182
183 private boolean handleModelData(String[] args) {
184 ArrayList<String> cmd = new ArrayList<>();
185 cmd.add("-Xdg"); //$NON-NLS-1$
186 if (!InfoAdapter.hasTimerSupport()) {
187 cmd.add("event:" + args[1]); //$NON-NLS-1$
188 }
189 String[] a = {};
190 InputStream is = runOpReport(cmd.toArray(a));
191
192 if (is == null) {
193 return false;
194 }
195 ModelDataAdapter mda = new ModelDataAdapter(is);
196 if (!mda.isParseable()) {
197 return false;
198 }
199 mda.process();
200 BufferedReader bi = new BufferedReader(new InputStreamReader(mda.getInputStream()));
201 saveOpxmlToFile(bi, args);
202 return true;
203 }
204
205 /**
206 * Add the current session to the session manager for each event that it was
207 * profiled under.
208 *
209 * @param session the session manager to populate
210 */
211 private void populateWithCurrentSession(SessionManager session) {
212 session.removeAllCurrentSessions();
213 String[] eventName = getEventNames();
214 if (eventName != null) {
215 for (int i = 0; i < eventName.length; i++) {
216 session.addSession(SessionManager.CURRENT, eventName[i]);
217 }
218 }
219 }
220
221 private String[] getEventNames() {
222 String[] ret = null;
223 try {
224 String cmd[] = { "-X", "-d" }; //$NON-NLS-1$ //$NON-NLS-2$
225 InputStream is = runOpReport(cmd);
226
227 if (is != null) {
228 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
229 DocumentBuilder builder;
230 builder = factory.newDocumentBuilder();
231 Document doc = builder.parse(is);
232 Element root = (Element) doc.getElementsByTagName(ModelDataAdapter.PROFILE).item(0);
233
234 String eventOrTimerSetup;
235 String eventOrTimerName;
236
237 // Determine if we are in timer-mode or not as the XML will vary
238 if (!InfoAdapter.hasTimerSupport()) {
239 eventOrTimerSetup = ModelDataAdapter.EVENT_SETUP;
240 eventOrTimerName = ModelDataAdapter.EVENT_NAME;
241 } else {
242 eventOrTimerSetup = ModelDataAdapter.TIMER_SETUP;
243 eventOrTimerName = ModelDataAdapter.RTC_INTERRUPTS;
244 }
245
246 Element setupTag = (Element) root.getElementsByTagName(ModelDataAdapter.SETUP).item(0);
247 NodeList eventSetupList = setupTag.getElementsByTagName(eventOrTimerSetup);
248
249 // get the event names for the current session
250 ret = new String[eventSetupList.getLength()];
251 for (int i = 0; i < eventSetupList.getLength(); i++) {
252 Element elm = (Element) eventSetupList.item(i);
253 ret[i] = elm.getAttribute(eventOrTimerName);
254 }
255 }
256 } catch (IOException e) {
257 e.printStackTrace();
258 OprofileCorePlugin.showErrorDialog("opxmlParse", null); //$NON-NLS-1$
259 } catch (ParserConfigurationException e) {
260 e.printStackTrace();
261 } catch (SAXException e) {
262 e.printStackTrace();
263 OprofileCorePlugin.showErrorDialog("opxmlSAXParseException", null); //$NON-NLS-1$
264 }
265 return ret;
266 }
267
268 /**
269 * Run opreport with specified arguments <code>args</code> and return
270 * InputStream to output of report for parsing.
271 *
272 * @param args arguments to run with opreport
273 * @return InputStream to output of report
274 */
275 private InputStream runOpReport(String[] args) {
276
277 ArrayList<String> cmd = new ArrayList<>();
278 cmd.add("opreport"); //$NON-NLS-1$
279 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY)) {
280 /*
281 * The session-dir parameter is relative to project's working dir, which might
282 * be local or remote. So it should use the proxy manager to determine working
283 * dir.
284 */
285 String workingDir = ""; //$NON-NLS-1$
286 RemoteProxyManager proxy = RemoteProxyManager.getInstance();
287 try {
288 IRemoteFileProxy rfile = proxy.getFileProxy(Oprofile.OprofileProject.getProject());
289 workingDir = rfile.getWorkingDir().getPath();
290 } catch (CoreException e) {
291 e.printStackTrace();
292 return null;
293 }
294 cmd.add(1, "--session-dir=" + workingDir + IPath.SEPARATOR + "oprofile_data"); //$NON-NLS-1$ //$NON-NLS-2$
295 }
296 Collections.addAll(cmd, args);
297 Process p = null;
298 try {
299 p = RuntimeProcessFactory.getFactory().exec(cmd.toArray(new String[0]),
300 Oprofile.OprofileProject.getProject());
301
302 StringBuilder output = new StringBuilder();
303 StringBuilder errorOutput = new StringBuilder();
304 String s = null;
305 try (BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
306 BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()))) {
307 // Read output of opreport. We need to do this, since this might
308 // cause the plug-in to hang. See Eclipse bug 341621 for more
309 // info.
310 // FIXME: Both of those while loops should really be done in two
311 // separate
312 // threads, so that we avoid this very problem when the error
313 // input
314 // stream buffer fills up.
315 while ((s = stdInput.readLine()) != null) {
316 output.append(s + System.getProperty("line.separator")); //$NON-NLS-1$
317 }
318 while ((s = stdError.readLine()) != null) {
319 errorOutput.append(s + System.getProperty("line.separator")); //$NON-NLS-1$
320 }
321 if (!errorOutput.toString().trim().equals("")) { //$NON-NLS-1$
322 // needs to be run in the ui thread otherwise swt throws invalid thread access
323 final String dialogTitle = NLS.bind(OprofileProperties.getString("process.log.stderr.dialog.title"), //$NON-NLS-1$
324 "opreport"); //$NON-NLS-1$
325 final String errorMessage = NLS.bind(OprofileProperties.getString("process.log.stderr"), //$NON-NLS-1$
326 "opreport", errorOutput.toString().trim()); //$NON-NLS-1$
327 Display.getDefault().asyncExec(() -> ErrorDialog.openError(null, dialogTitle, errorMessage,
328 new Status(IStatus.ERROR, OprofileCorePlugin.getId(), IStatus.OK, errorMessage, null)));
329 }
330 } catch (IOException e) {
331 e.printStackTrace();
332 }
333
334 if (p.waitFor() == 0) {
335 // convert the string to inputstream to pass to builder.parse
336 return new ByteArrayInputStream(output.toString().getBytes(StandardCharsets.UTF_8));
337 }
338 } catch (IOException e1) {
339 e1.printStackTrace();
340 OprofileCorePlugin.showErrorDialog("opxmlParse", null); //$NON-NLS-1$
341 } catch (InterruptedException e) {
342 e.printStackTrace();
343 }
344
345 return null;
346 }
347 }
+0
-78
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelEvent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.model;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
17
18 /**
19 * A class which represents the event collected in a given session.
20 */
21 public class OpModelEvent {
22 private String eventName;
23 private String printTabs = ""; // for nice output //$NON-NLS-1$
24 private OpModelImage image;
25 private OpModelSession parentSession;
26
27 public OpModelEvent(OpModelSession parentSession, String name) {
28 this.parentSession = parentSession;
29 this.eventName = name;
30 }
31
32 public String getName() {
33 return eventName;
34 }
35
36 public OpModelSession getSession() {
37 return parentSession;
38 }
39
40 // populate all images & dependent images
41 public void refreshModel() {
42 image = getNewImage();
43 }
44
45 public OpModelImage getImage() {
46 return image;
47 }
48
49 protected OpModelImage getNewImage() {
50 return Oprofile.getModelData(this.eventName, parentSession.getName());
51 }
52
53 public int getCount() {
54 if (image == null) {
55 return 0;
56 } else {
57 return image.getCount();
58 }
59 }
60
61 public String toString(String tabs) {
62 printTabs = tabs;
63 String s = toString();
64 printTabs = ""; //$NON-NLS-1$
65 return s;
66 }
67
68 @Override
69 public String toString() {
70 String s = eventName + "\n"; //$NON-NLS-1$
71 if (image != null) {
72 s += printTabs + "Image: "; //$NON-NLS-1$
73 s += image.toString(printTabs + "\t"); //$NON-NLS-1$
74 }
75 return s;
76 }
77 }
+0
-146
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelImage.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.model;
14
15 /**
16 * A class which represents an image (executables, libraries, modules) profile
17 * by OProfile.
18 */
19 public class OpModelImage {
20 public static final int IMAGE_PARSE_ERROR = -1;
21
22 // The count of all samples from this image
23 private int count;
24
25 // the count for all dependent images -- needed?
26 private int depcount;
27
28 // The name of this image (the full path, where applicable)
29 private String name;
30
31 // The symbols profiled in this image
32 private OpModelSymbol[] symbols;
33
34 // Any dependent images on this image (usually shared libs, kernel modules)
35 private OpModelImage[] dependents;
36
37 private String printTabs = ""; // for nice output //$NON-NLS-1$
38
39 public OpModelImage() {
40 name = ""; //$NON-NLS-1$
41 count = 0;
42 depcount = 0;
43 symbols = null;
44 dependents = null;
45 }
46
47 public int getCount() {
48 return count;
49 }
50
51 public int getDepCount() {
52 return depcount;
53 }
54
55 public String getName() {
56 return name;
57 }
58
59 public OpModelSymbol[] getSymbols() {
60 return symbols;
61 }
62
63 public OpModelImage[] getDependents() {
64 return dependents;
65 }
66
67 public boolean hasDependents() {
68 return (dependents == null || dependents.length == 0 ? false : true);
69 }
70
71 /**
72 * This method is not meant to be called publicly, used only from the XML
73 * processors
74 *
75 * @param count
76 */
77 public void setCount(int count) {
78 this.count = count;
79 }
80
81 /**
82 * This method is not meant to be called publicly, used only from the XML
83 * processors
84 *
85 * @param depcount
86 */
87 public void setDepCount(int depcount) {
88 this.depcount = depcount;
89 }
90
91 /**
92 * This method is not meant to be called publicly, used only from the XML
93 * processors
94 *
95 * @param name
96 */
97 public void setName(String name) {
98 this.name = name;
99 }
100
101 /**
102 * This method is not meant to be called publicly, used only from the XML
103 * processors
104 *
105 * @param symbols
106 */
107 public void setSymbols(OpModelSymbol[] symbols) {
108 this.symbols = symbols;
109 }
110
111 /**
112 * This method is not meant to be called publicly, used only from the XML
113 * processors
114 *
115 * @param dependents
116 */
117 public void setDependents(OpModelImage[] dependents) {
118 this.dependents = dependents;
119 }
120
121 public String toString(String tabs) {
122 printTabs = tabs;
123 String s = toString();
124 printTabs = ""; //$NON-NLS-1$
125 return s;
126 }
127
128 @Override
129 public String toString() {
130 String s = name + ", Count: " + count + (depcount != 0 ? ", Dependent Count: " + depcount + "\n" : "\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
131 if (symbols != null) {
132 for (int i = 0; i < symbols.length; i++) {
133 s += printTabs + "Symbols: "; //$NON-NLS-1$
134 s += symbols[i].toString(printTabs + "\t"); //$NON-NLS-1$
135 }
136 }
137 if (dependents != null) {
138 for (int i = 0; i < dependents.length; i++) {
139 s += printTabs + "Dependent Image: "; //$NON-NLS-1$
140 s += dependents[i].toString(printTabs + "\t"); //$NON-NLS-1$
141 }
142 }
143 return s;
144 }
145 }
+0
-84
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelRoot.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.oprofile.core.model;
14
15 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
16
17 /**
18 * A root node for the data model. Only one instance exists at any time,
19 * although the contents will change. On instantiation the events and sessions
20 * are gathered.
21 *
22 * Note that this data model does not map 1:1 to the oprofile data model. This
23 * model is for use in profiling one application compiled with debug info, from
24 * within eclipse.
25 */
26
27 public class OpModelRoot {
28 // single instance
29 private static OpModelRoot modelRoot = new OpModelRoot();
30
31 private OpModelSession[] session;
32
33 protected OpModelRoot() {
34 session = null;
35 }
36
37 public static OpModelRoot getDefault() {
38 return modelRoot;
39 }
40
41 public void refreshModel() {
42 // TODO-performance/interactivity: some persistence for events/sessions
43 // that dont change from run to run (non default sessions)
44
45 session = getNewSessions();
46 if (session != null) {
47 for (int i = 0; i < session.length; i++) {
48 if (session[i] != null)
49 session[i].refreshModel();
50 }
51 }
52 }
53
54 /**
55 * return list of session collected on this system as well as events under each
56 * of them.
57 *
58 * @return collected sessions list
59 * @since 3.0
60 */
61 protected OpModelSession[] getNewSessions() {
62 // launch `opxml sessions`, gather up events & the sessions under them
63 return Oprofile.getSessions();
64 }
65
66 public OpModelSession[] getSessions() {
67 return session;
68 }
69
70 @Override
71 public String toString() {
72 String s = ""; //$NON-NLS-1$
73 if (session != null) {
74 for (int i = 0; i < session.length; i++) {
75 if (session[i] != null) {
76 s += "Session: "; //$NON-NLS-1$
77 s += session[i].toString("\t"); //$NON-NLS-1$
78 }
79 }
80 }
81 return s;
82 }
83 }
+0
-58
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelSample.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.model;
15
16 /**
17 * Represents an OProfile sample.
18 */
19 public class OpModelSample {
20 private int count;
21 private int line;
22 private String file;
23
24 public OpModelSample() {
25 count = 0;
26 line = 0;
27 }
28
29 public void setCount(int count) {
30 this.count = count;
31 }
32
33 public void setLine(int line) {
34 this.line = line;
35 }
36
37 public void setFilePath(String file) {
38 this.file = file;
39 }
40
41 public int getCount() {
42 return count;
43 }
44
45 public int getLine() {
46 return line;
47 }
48
49 public String getFilePath() {
50 return file;
51 }
52
53 @Override
54 public String toString() {
55 return "Line #: " + line + ", Count: " + count + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
56 }
57 }
+0
-74
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelSession.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.oprofile.core.model;
14
15 /**
16 * This class represents oprofile sessions. Sessions contain an image of the
17 * profiled binary.
18 */
19 public class OpModelSession {
20 private static final String DEFAULT_SESSION_STRING = "current"; //$NON-NLS-1$
21
22 private String name;
23 private String printTabs = ""; // for nice output //$NON-NLS-1$
24 private OpModelEvent[] events;
25
26 public OpModelSession(String name) {
27 this.name = name;
28 }
29
30 public String getName() {
31 return name;
32 }
33
34 public OpModelEvent[] getEvents() {
35 return events;
36 }
37
38 public void setEvents(OpModelEvent[] events) {
39 this.events = events;
40 }
41
42 public boolean isDefaultSession() {
43 return name.equals(DEFAULT_SESSION_STRING);
44 }
45
46 public void refreshModel() {
47 if (events != null) {
48 for (int i = 0; i < events.length; i++) {
49 events[i].refreshModel();
50 }
51 }
52 }
53
54 public String toString(String tabs) {
55 printTabs = tabs;
56 String s = toString();
57 printTabs = ""; //$NON-NLS-1$
58 return s;
59 }
60
61 @Override
62 public String toString() {
63 String s = name + "\n"; //$NON-NLS-1$
64 if (events != null) {
65 for (int i = 0; i < events.length; i++) {
66 s += printTabs + "Event: "; //$NON-NLS-1$
67 s += events[i].toString(printTabs + "\t"); //$NON-NLS-1$
68 }
69 }
70 return s;
71
72 }
73 }
+0
-94
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/model/OpModelSymbol.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.oprofile.core.model;
14
15 /**
16 * This class represents a debugging symbol, the symbol output from opxml. If a
17 * symbol exists, it must have samples (which are OpModelSamples), although
18 * those samples may or may not have complete debug info.
19 */
20 public class OpModelSymbol {
21 private String name;
22 private String file;
23 private int line;
24 private int count;
25 private OpModelSample[] samples;
26 private String printTabs = ""; // for nice output //$NON-NLS-1$
27
28 public OpModelSymbol() {
29 name = ""; //$NON-NLS-1$
30 file = ""; //$NON-NLS-1$
31 count = 0;
32 samples = null;
33 }
34
35 public void setName(String name) {
36 this.name = name;
37 }
38
39 public void setFilePath(String file) {
40 this.file = file;
41 }
42
43 public void setLine(int line) {
44 this.line = line;
45 }
46
47 public void setCount(int count) {
48 this.count = count;
49 }
50
51 public void setSamples(OpModelSample[] samples) {
52 this.samples = samples;
53 }
54
55 public String getName() {
56 return name;
57 }
58
59 public String getFilePath() {
60 return file;
61 }
62
63 public int getLine() {
64 return line;
65 }
66
67 public int getCount() {
68 return count;
69 }
70
71 public OpModelSample[] getSamples() {
72 return samples;
73 }
74
75 public String toString(String tabs) {
76 printTabs = tabs;
77 String s = toString();
78 printTabs = ""; //$NON-NLS-1$
79 return s;
80 }
81
82 @Override
83 public String toString() {
84 String s = name + ", File: " + file + ", Count: " + count + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
85 if (samples != null) {
86 for (int i = 0; i < samples.length; i++) {
87 s += printTabs + "Sample: "; //$NON-NLS-1$
88 s += samples[i].toString();
89 }
90 }
91 return s;
92 }
93 }
+0
-42
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/oprofile.properties less more
0 ######################################################################
1 # Copyright (c) 2004, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Keith Seitz <keiths@redhat.com> - Initial implementation
11 # Kent Sebastian <ksebasti@redhat.com>
12 ######################################################################
13 getSamples.caption=Reading samples for session \"{0}\"...
14 getSamples.caption.default-session=Reading samples for session \"Default\"...
15
16 process.log.stderr.dialog.title=Unexpected {0} error output
17 process.log.stderr={0} process error output: {1}
18 process.log.stdout={0} process output: {1}
19
20 ophelpRun.error.statusMessage=Error during run of ophelp
21
22 opxmlParse.error.statusMessage=An unexpected error occurred with parsing the output. Please file a bug at http://bugs.eclipse.org/bugs.
23 opxmlParse.error.dialog.title=Error with XML parsing
24 opxmlParse.error.dialog.message=An error occurred with parsing the XML output from OProfile.
25
26 opxmlSAXParseException.error.statusMessage=The XML output could not be read, most likely a fatal error.
27 opxmlSAXParseException.error.dialog.title=Error with XML parsing
28 opxmlSAXParseException.error.dialog.message=An error occurred with parsing the XML output from OProfile.
29
30 ophelpInputStream.error.dialog.title=Error with ophelp run
31 ophelpInputStream.error.dialog.message=An error occurred when collecting the output from ophelp. Check if Oprofile is properly installed and try again.
32
33 fatal.opinfoNotParsed=Fatal error: core OProfile information failed to parse. Please fix the issue and restart Eclipse.
34
35 ui.annotate.no.sessions.error.statusMessage=There are no sessions to annotate. Please profile a binary.
36 ui.annotate.no.sessions.error.dialog.title=Annotation Error
37 ui.annotate.no.sessions.error.dialog.message=Error annotating
38
39 countersNotFound.error.dialog.message=Could not get Oprofile counters information. Check if Oprofile is properly installed and try again.
40 countersNotFound.error.dialog.title=Oprofile counters
41 countersNotFound.error.statusMessage=Error getting counters.
+0
-83
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/AbstractDataAdapter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc. and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml;
13
14 import java.io.ByteArrayInputStream;
15 import java.io.InputStream;
16 import java.io.StringWriter;
17 import java.nio.charset.StandardCharsets;
18
19 import javax.xml.transform.Result;
20 import javax.xml.transform.Source;
21 import javax.xml.transform.Transformer;
22 import javax.xml.transform.TransformerException;
23 import javax.xml.transform.TransformerFactory;
24 import javax.xml.transform.dom.DOMSource;
25 import javax.xml.transform.stream.StreamResult;
26
27 import org.w3c.dom.Document;
28
29 public abstract class AbstractDataAdapter {
30
31 /**
32 * @return a Document representing the newly created XML data.
33 */
34 public abstract Document getDocument();
35
36 /**
37 * parse the XML data modifying it as necessary to produce the necessary XML
38 * output.
39 */
40 public abstract void process();
41
42 /**
43 * @return an InputStream to the newly created XML data.
44 */
45 public InputStream getInputStream() {
46 InputStream inp = null;
47 Source source = new DOMSource(getDocument());
48 StringWriter stw = new StringWriter();
49 Result result = new StreamResult(stw);
50 TransformerFactory factory = TransformerFactory.newInstance();
51 Transformer xformer;
52 try {
53 xformer = factory.newTransformer();
54 xformer.setOutputProperty("indent", "yes"); //$NON-NLS-1$ //$NON-NLS-2$
55 xformer.transform(source, result);
56 inp = new ByteArrayInputStream(stw.toString().getBytes(StandardCharsets.UTF_8));
57 } catch (TransformerException e) {
58 e.printStackTrace();
59 }
60 return inp;
61 }
62
63 @Override
64 public String toString() {
65 String ret = null;
66 Source source = new DOMSource(getDocument());
67 StringWriter stw = new StringWriter();
68 Result result = new StreamResult(stw);
69 TransformerFactory factory = TransformerFactory.newInstance();
70 Transformer xformer;
71 try {
72 xformer = factory.newTransformer();
73 xformer.setOutputProperty("indent", "yes"); //$NON-NLS-1$ //$NON-NLS-2$
74 xformer.transform(source, result);
75 ret = stw.toString();
76 } catch (TransformerException e) {
77 e.printStackTrace();
78 }
79 return ret;
80 }
81
82 }
+0
-256
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/EventIdCache.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml;
13
14 import java.io.BufferedReader;
15 import java.io.IOException;
16 import java.io.InputStream;
17 import java.io.InputStreamReader;
18 import java.util.HashMap;
19
20 import javax.xml.parsers.DocumentBuilder;
21 import javax.xml.parsers.DocumentBuilderFactory;
22 import javax.xml.parsers.ParserConfigurationException;
23
24 import org.eclipse.core.filesystem.EFS;
25 import org.eclipse.core.filesystem.IFileStore;
26 import org.eclipse.core.resources.IProject;
27 import org.eclipse.core.runtime.CoreException;
28 import org.eclipse.core.runtime.NullProgressMonitor;
29 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
30 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter;
31 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
32 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
33 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
34 import org.w3c.dom.Document;
35 import org.w3c.dom.Element;
36 import org.w3c.dom.NodeList;
37 import org.xml.sax.SAXException;
38
39 /**
40 * Caches the event data used by the CheckEventAdapter. The performance
41 * improvement is targeted at the first time a call with the given arguments is
42 * made. The first given call to check-event will take roughly O(n), and all
43 * other calls whether they be new or recurring take O(1). Note that recurring
44 * calls are handled by an entirely different cache. This particular class
45 * simply parses the XML from ophelp -X and stores it.
46 */
47 public class EventIdCache {
48
49 private static final String HELP_EVENTS = "help_events"; //$NON-NLS-1$
50 private static final String HEADER = "header"; //$NON-NLS-1$
51 private static final String SCHEMA = "schemaversion"; //$NON-NLS-1$
52 private static final String CATEGORY = "category"; //$NON-NLS-1$
53 private static final String OPHELP = "ophelp"; //$NON-NLS-1$
54 private static final String EVENT = "event"; //$NON-NLS-1$
55 private static final String EVENT_NAME = "event_name"; //$NON-NLS-1$
56
57 private static final String LOCAL = "local"; //$NON-NLS-1$
58
59 private Document eventDoc; // the document to hold the xml from ophelp
60 private Element eventRoot; // the root corresponding to the xml from ophelp
61 // name - the name of the event
62 // Element - the DOM node
63 private HashMap<String, Element> nameMap;
64
65 // Map containing the caches for remote machines
66 private static HashMap<String, EventIdCache> cacheMap;
67
68 public static EventIdCache getInstance() {
69
70 if (cacheMap == null) {
71 cacheMap = new HashMap<>();
72 }
73
74 IProject project = Oprofile.OprofileProject.getProject();
75 EventIdCache newCache = new EventIdCache();
76 if (project != null) {
77 EventIdCache eventIdCache = cacheMap.get(project.getLocationURI().getHost());
78 if (eventIdCache == null) {
79 cacheMap.put(project.getLocationURI().getHost(), newCache);
80 } else {
81 return eventIdCache;
82 }
83 } else {
84 // If no project associated we should launch locally
85 EventIdCache eventIdCache = cacheMap.get(LOCAL);
86 if (eventIdCache == null) {
87 cacheMap.put(LOCAL, newCache);
88 } else {
89 return eventIdCache;
90 }
91 }
92
93 return newCache;
94 }
95
96 /**
97 * @param id the id corresponding to an event
98 * @return the DOM Element corresponding to the event tag
99 */
100 public Element getElementWithName(String name) {
101 IProject project = Oprofile.OprofileProject.getProject();
102 EventIdCache eventIdCache;
103 if (project != null) {
104 eventIdCache = cacheMap.get(project.getLocationURI().getHost());
105 } else {
106 eventIdCache = cacheMap.get(LOCAL);
107 }
108
109 if (eventIdCache.nameMap == null) {
110 readXML(eventIdCache);
111 buildCache(eventIdCache);
112 }
113 return eventIdCache.nameMap.get(name) != null ? (Element) eventIdCache.nameMap.get(name) : null;
114
115 }
116
117 /**
118 * Build the cache
119 */
120 private void buildCache(EventIdCache eventId) {
121 eventId.nameMap = new HashMap<>();
122 NodeList eventList = eventId.eventRoot.getElementsByTagName(EVENT);
123 for (int i = 0; i < eventList.getLength(); i++) {
124 Element elem = (Element) eventList.item(i);
125 String eventName = elem.getAttribute(EVENT_NAME);
126 eventId.nameMap.put(eventName, elem);
127 }
128 }
129
130 /**
131 * Read the XML from ophelp
132 */
133 private void readXML(EventIdCache eventId) {
134 if (eventId.eventRoot != null) {
135 return;
136 }
137
138 try {
139 Process p = RuntimeProcessFactory.getFactory().exec(OPHELP + ' ' + "-X", //$NON-NLS-1$
140 Oprofile.OprofileProject.getProject());
141
142 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
143 DocumentBuilder builder;
144 try {
145 builder = factory.newDocumentBuilder();
146 try {
147 eventId.eventDoc = builder.parse(p.getInputStream());
148 Element elem = (Element) eventId.eventDoc.getElementsByTagName(HELP_EVENTS).item(0);
149 eventId.eventRoot = elem;
150 } catch (IOException | SAXException e) {
151 }
152 } catch (ParserConfigurationException e1) {
153 e1.printStackTrace();
154 }
155
156 } catch (IOException e) {
157 e.printStackTrace();
158 }
159 }
160
161 /**
162 * Get the unit mask type. Schema Version 1.1 and newer of ophelp XML will list
163 * the unit mask type as an attribute. Older version will not so we default to
164 * file lookups.
165 *
166 * @param name the name of the event
167 * @return the type of unit mask. This can be either mandatory, exclusive,
168 * bitmask, or null if none could be found.
169 */
170 public String getUnitMaskType(String name) {
171 IProject project = Oprofile.OprofileProject.getProject();
172 EventIdCache eventIdCache;
173 if (project != null) {
174 eventIdCache = cacheMap.get(project.getLocationURI().getHost());
175 } else {
176 eventIdCache = cacheMap.get(LOCAL);
177 }
178
179 if (eventIdCache.eventRoot == null) {
180 readXML(eventIdCache);
181 buildCache(eventIdCache);
182 }
183
184 Element header = (Element) eventIdCache.eventRoot.getElementsByTagName(HEADER).item(0);
185
186 double schemaVersion = 0;
187
188 if (!eventIdCache.eventRoot.getAttribute(SCHEMA).isEmpty()) {
189 schemaVersion = Double.parseDouble(eventIdCache.eventRoot.getAttribute(SCHEMA));
190 } else {
191 schemaVersion = Double.parseDouble(header.getAttribute(SCHEMA));
192 }
193
194 String unitMaskType = null;
195 IRemoteFileProxy proxy = null;
196 try {
197 proxy = RemoteProxyManager.getInstance().getFileProxy(Oprofile.OprofileProject.getProject());
198 } catch (CoreException e) {
199 e.printStackTrace();
200 }
201
202 // Schema Version > 1.0 has the unit mask type within the XML
203 if (schemaVersion > 1.0) {
204 Element event = getElementWithName(name);
205 Element unitMaskTag = (Element) event.getElementsByTagName(InfoAdapter.UNIT_MASKS).item(0);
206 return unitMaskTag.getAttribute(CATEGORY);
207 } else {
208 IFileStore fileStore = proxy.getResource(InfoAdapter.CPUTYPE);
209 try (InputStream fileInputStream = fileStore.openInputStream(EFS.NONE, new NullProgressMonitor());
210 BufferedReader bi = new BufferedReader(new InputStreamReader(fileInputStream))) {
211
212 String cpuType = bi.readLine();
213 IFileStore opArchEvents = proxy.getResource(InfoAdapter.OP_SHARE + cpuType + "/" + InfoAdapter.EVENTS); //$NON-NLS-1$
214 IFileStore opArchUnitMasks = proxy
215 .getResource(InfoAdapter.OP_SHARE + cpuType + "/" + InfoAdapter.UNIT_MASKS); //$NON-NLS-1$
216
217 try (InputStream inputStreamEvents = opArchEvents.openInputStream(EFS.NONE, new NullProgressMonitor());
218 BufferedReader eventReader = new BufferedReader(new InputStreamReader(inputStreamEvents))) {
219 String line;
220 while ((line = eventReader.readLine()) != null) {
221 // find the line with the event name
222 if (line.contains("name:" + name + ' ')) { //$NON-NLS-1$
223 int start = line.indexOf("um:") + 3; //$NON-NLS-1$
224 int end = line.indexOf(' ', start);
225 // grab the string that references the unit mask type
226 String um = line.substring(start, end);
227 try (InputStream inputStreamMasks = opArchUnitMasks.openInputStream(EFS.NONE,
228 new NullProgressMonitor());
229 BufferedReader unitMaskReader = new BufferedReader(
230 new InputStreamReader(inputStreamMasks))) {
231 while ((line = unitMaskReader.readLine()) != null) {
232 if (line.contains("name:" + um + ' ')) { //$NON-NLS-1$
233 start = line.indexOf("type:") + 5; //$NON-NLS-1$
234 end = line.indexOf(' ', start);
235 unitMaskType = line.substring(start, end);
236 return unitMaskType;
237 }
238 }
239 }
240 }
241 }
242 }
243 } catch (IOException | CoreException e) {
244 }
245 }
246 return unitMaskType;
247 }
248
249 /**
250 * @since 3.0
251 */
252 public void setCacheDoc(Element oldRoot) {
253 eventRoot = oldRoot;
254 }
255 }
+0
-192
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/OprofileSAXHandler.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml;
13
14 import java.lang.reflect.InvocationTargetException;
15 import java.util.HashMap;
16 import java.util.Stack;
17
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventsProcessor;
19 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.OpInfoProcessor;
20 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
21 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionsProcessor;
22 import org.xml.sax.Attributes;
23 import org.xml.sax.helpers.DefaultHandler;
24
25 /**
26 * The SAX handler class that is used to parse the output of opxml.
27 *
28 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
29 */
30 public class OprofileSAXHandler extends DefaultHandler {
31 // The only allowed instance of this class
32 private static OprofileSAXHandler instance = null;
33
34 // A Map of all the XML processors for opxml
35 private static HashMap<String, Class<?>> processors = new HashMap<>();
36
37 // The current processor being used to parse the document
38 private XMLProcessor processor = null;
39 private Object callData;
40
41 /*
42 * A stack of XML processors. This allows processors to invoke sub-processors
43 * for handling nested tags more efficiently.
44 */
45 private Stack<XMLProcessor> processorStack = new Stack<>();
46
47 // Introduced for fix of Eclipse BZ#343025
48 // As per SAX spec, SAX parsers are allowed to split character data into as many
49 // chunks as
50 // they please, and they can split the text at whichever boundaries they want.
51 // In order to
52 // handle this properly, it is needed to accumulate the text returned in each
53 // call
54 // until it recieves a callback that isn't characters.
55 private StringBuilder charactersBuffer;
56
57 // A convenience class for specifying XMLProcessors
58 private static class ProcessorItem {
59 public String tagName;
60 public Class<?> handlerClass;
61
62 public ProcessorItem(String name, Class<?> cls) {
63 tagName = name;
64 handlerClass = cls;
65 }
66 }
67
68 // The list of all "root" XML tags and their handler classes
69 private static final ProcessorItem[] handlerList = {
70 new ProcessorItem(OpxmlConstants.INFO_TAG, OpInfoProcessor.class),
71 new ProcessorItem(OpxmlConstants.CHECKEVENTS_TAG, CheckEventsProcessor.class),
72 new ProcessorItem(OpxmlConstants.MODELDATA_TAG, ModelDataProcessor.class),
73 new ProcessorItem(OpxmlConstants.SESSIONS_TAG, SessionsProcessor.class) };
74
75 /**
76 * Returns an instance of the handler. This must be used to access the parser!
77 *
78 * @return a handler instance
79 */
80 public static OprofileSAXHandler getInstance(Object callData) {
81 if (instance == null) {
82 instance = new OprofileSAXHandler();
83
84 // Initialize processor map
85 for (int i = 0; i < handlerList.length; ++i) {
86 processors.put(handlerList[i].tagName, handlerList[i].handlerClass);
87 }
88 }
89
90 // Set calldata into handler
91 instance.setCallData(callData);
92 return instance;
93 }
94
95 /**
96 * Sets the calldata for the processor.
97 *
98 * @param callData the calldata to pass to the processor
99 */
100 private void setCallData(Object callData) {
101 this.callData = callData;
102 }
103
104 /**
105 * Returns the processor for a given request type.
106 *
107 * @param type the name of the processor
108 * @return the requested processor or null
109 */
110 private static XMLProcessor getProcessor(String type) {
111 XMLProcessor processor = null;
112
113 Class<?> handlerClass = processors.get(type);
114 if (handlerClass != null) {
115 try {
116 processor = (XMLProcessor) handlerClass.getDeclaredConstructor().newInstance();
117 } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
118 | InvocationTargetException | NoSuchMethodException | SecurityException e) {
119 }
120 }
121
122 return processor;
123 }
124
125 @Override
126 public void startDocument() {
127 // Reset processor
128 processor = null;
129 }
130
131 @Override
132 public void endDocument() {
133 }
134
135 @Override
136 public void startElement(String uri, String lName, String qName, Attributes attrs) {
137 if (processor == null) {
138 // Get processor for this event type
139 processor = getProcessor(qName);
140 processor.reset(callData);
141 }
142
143 // If we already have a processor, so let it deal with this new element.
144 // Allow the processor to deal with it's own tag as well: this way it can
145 // grab attributes from it.
146 processor.startElement(qName, attrs, callData);
147
148 // Clean up the characters buffer
149 charactersBuffer = new StringBuilder();
150 }
151
152 @Override
153 public void endElement(String uri, String name, String qName) {
154 // Set the accumulated characters
155 processor.characters(charactersBuffer.toString(), callData);
156 processor.endElement(qName, callData);
157 }
158
159 @Override
160 public void characters(char ch[], int start, int length) {
161 // Ignore characters which are only whitespace
162 String str = new String(ch, start, length).trim();
163 if (str.length() > 0 && processor != null)
164 // Append the character to the buffer.
165 charactersBuffer.append(str);
166 }
167
168 /**
169 * Pushes the current XMLProcessor onto the stack and installs the given
170 * processor as the document's parser/handler.
171 *
172 * @param proc the processor to continue parsing the document
173 */
174 public void push(XMLProcessor proc) {
175 processorStack.add(processor);
176 processor = proc;
177 processor.reset(callData);
178 }
179
180 /**
181 * Removes the current XMLProcessor and installs the previous processor. NOTE:
182 * This assumes that endElement caused the pop, so it calls endElement in the
183 * parent processor.
184 *
185 * @param tag the XML tag to pass to the parent processor
186 */
187 public void pop(String tag) {
188 processor = processorStack.pop();
189 processor.endElement(tag, callData);
190 }
191 }
+0
-45
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/OpxmlConstants.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> - change samples to model-data
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.opxml;
14
15 /**
16 * A class of constants for communications with the opxml wrapper program.
17 *
18 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler
19 */
20 public class OpxmlConstants {
21 /**
22 * Request static oprofile information (num counters, defaults, event lists)
23 */
24 public static final String OPXML_INFO = "info"; //$NON-NLS-1$
25 public static final String INFO_TAG = OPXML_INFO;
26
27 /**
28 * Request model data for a session
29 */
30 public static final String OPXML_MODELDATA = "model-data"; //$NON-NLS-1$
31 public static final String MODELDATA_TAG = OPXML_MODELDATA;
32
33 /**
34 * Request event validity check
35 */
36 public static final String OPXML_CHECKEVENTS = "check-events"; //$NON-NLS-1$
37 public static final String CHECKEVENTS_TAG = OPXML_CHECKEVENTS;
38
39 /**
40 * Request session list
41 */
42 public static final String OPXML_SESSIONS = "sessions"; //$NON-NLS-1$
43 public static final String SESSIONS_TAG = OPXML_SESSIONS;
44 }
+0
-92
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/XMLProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml;
13
14 import org.xml.sax.Attributes;
15
16 /**
17 * A class which (minimally) parses XML documents. This class provides only
18 * basic support for collecting information from XML documents. It is intended
19 * to be subclassed, providing only common functionality for all parser classes.
20 *
21 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
22 */
23 public class XMLProcessor {
24 // The characters in the current tag
25 protected String characters;
26
27 /**
28 * This method is called whenever the SAXHandler is about to invoke the
29 * processor for the first time on a given document.
30 *
31 * @param callData call data for the processor (usually the result is stored
32 * here)
33 */
34 public void reset(Object callData) {
35 }
36
37 /**
38 * This method is called whenever a new tag is seen in the document. By default,
39 * this process will clear the characters collected for the tag. Processors will
40 * typically call this baseclass method to setup for collecting new character
41 * information for a tag.
42 *
43 * @param name the name of the tag
44 * @param attrs the tag's attributes
45 * @param callData call data for the processor (usually the result is stored
46 * here)
47 */
48 public void startElement(String name, Attributes attrs, Object callData) {
49 characters = ""; //$NON-NLS-1$
50 }
51
52 /**
53 * This method is called whenever the closing tag for an element is seen in the
54 * document.
55 *
56 * @param name the element which is ending
57 * @param callData call data for the processor (usually the result is stored
58 * here)
59 */
60 public void endElement(String name, Object callData) {
61 }
62
63 /**
64 * This method is called whenever characters are seen in the document that are
65 * not in a markup tag.
66 *
67 * @param chars the characters read
68 * @param callData call data for the processor (usually the result is stored
69 * here)
70 */
71 public void characters(String chars, Object callData) {
72 characters = chars;
73 }
74
75 /**
76 * This method is called on attribute strings and does the reverse of
77 * valid_string in xmlfmt.cc in opxml.
78 *
79 * @param source source attribute string
80 * @return the source string with escaped characters translated back to their
81 * single character counterpart
82 */
83 public String validString(String source) {
84 final String chars_long[] = { "&amp;", "&quot;", "&apos;", "&lt;", "&gt;" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
85 final String chars[] = { "&", "\"", "'", "<", ">" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
86 for (int i = 0; i < chars_long.length; i++) {
87 source.replaceAll(chars_long[i], chars[i]);
88 }
89 return source;
90 }
91 }
+0
-131
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/checkevent/CheckEventAdapter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent;
13
14 import java.util.TreeSet;
15
16 import javax.xml.parsers.DocumentBuilder;
17 import javax.xml.parsers.DocumentBuilderFactory;
18 import javax.xml.parsers.ParserConfigurationException;
19
20 import org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter;
21 import org.eclipse.linuxtools.internal.oprofile.core.opxml.EventIdCache;
22 import org.w3c.dom.Document;
23 import org.w3c.dom.Element;
24 import org.w3c.dom.NodeList;
25
26 /**
27 * This class takes the XML that is output from various checks for and uses that
28 * data to modify it into the format expected by the SAX parser.
29 */
30 public class CheckEventAdapter extends AbstractDataAdapter {
31
32 public static final String CHECK_EVENTS = "check-events"; //$NON-NLS-1$
33 public static final String RESULT = "result"; //$NON-NLS-1$
34 public static final String UNIT_MASKS = "unit_masks"; //$NON-NLS-1$
35 public static final String UNIT_MASK = "unit_mask"; //$NON-NLS-1$
36 public static final String MASK = "mask"; //$NON-NLS-1$
37
38 private Element event; // the element corresponding to the event id
39 private String eventName; // the id corresponding to the event
40 private String unitMask; // the unit mask for the event
41 private Document resultDoc; // the document to hold the generated xml
42 private String returnCode; // the return code to be used in the generated xml
43
44 public CheckEventAdapter(String ctr, String event, String umask) {
45 eventName = event;
46 unitMask = umask;
47
48 this.event = EventIdCache.getInstance().getElementWithName(eventName);
49 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
50 DocumentBuilder builder;
51 try {
52 builder = factory.newDocumentBuilder();
53 resultDoc = builder.newDocument();
54 } catch (ParserConfigurationException e1) {
55 e1.printStackTrace();
56 }
57 }
58
59 @Override
60 public void process() {
61 setReturnCode();
62 createXML();
63 }
64
65 private void setReturnCode() {
66 if (!isValidUnitMask()) {
67 returnCode = "invalid-um"; //$NON-NLS-1$
68 return;
69 }
70
71 returnCode = "ok"; //$NON-NLS-1$
72 }
73
74 /**
75 * Check if the unit mask being used is acceptable for this event
76 *
77 * @return true if the unit mask is recognized by the event and false otherwise.
78 */
79 private boolean isValidUnitMask() {
80 TreeSet<Integer> bitMaskSet = new TreeSet<>();
81 Element unitMasksTag = (Element) event.getElementsByTagName(UNIT_MASKS).item(0);
82
83 if (unitMasksTag == null) {
84 return true;
85 }
86
87 NodeList unitMasksList = unitMasksTag.getElementsByTagName(UNIT_MASK);
88
89 // type:exclusive unit mask support
90 for (int i = 0; i < unitMasksList.getLength(); i++) {
91 Element unitMaskElem = (Element) unitMasksList.item(i);
92 String val = unitMaskElem.getAttribute(MASK);
93 if (val.equals(unitMask)) {
94 return true;
95 }
96 bitMaskSet.add(Integer.parseInt(val));
97 }
98
99 // type:bitmask unit mask support
100 String unitMaskType = EventIdCache.getInstance().getUnitMaskType(eventName);
101 if ("bitmask".equals(unitMaskType)) { //$NON-NLS-1$
102 int tmpVal = Integer.parseInt(unitMask);
103 int count = 0;
104 while (tmpVal != 0) {
105 if (tmpVal % 2 != 0 && !bitMaskSet.contains((int) Math.pow(2, count))) {
106 return false;
107 }
108 tmpVal = tmpVal / 2;
109 count++;
110 }
111 return true;
112 }
113
114 return false;
115 }
116
117 private void createXML() {
118 Element resultRoot = resultDoc.createElement(CHECK_EVENTS);
119 Element resultTag = resultDoc.createElement(RESULT);
120 resultTag.setTextContent(returnCode);
121 resultRoot.appendChild(resultTag);
122 resultDoc.appendChild(resultRoot);
123 }
124
125 @Override
126 public Document getDocument() {
127 return resultDoc;
128 }
129
130 }
+0
-58
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/checkevent/CheckEventsProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent;
14
15 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
16
17 /**
18 * XML handler class for opxml's "check-events".
19 *
20 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
21 */
22 public class CheckEventsProcessor extends XMLProcessor {
23 public static final int INVALID_UNKNOWN = 0; // unexpected error
24 public static final int EVENT_OK = 1; // valid
25 public static final int INVALID_UMASK = 3; // invalid unit mask value
26 public static final int INVALID_COUNTER = 4; // invalid event for given counter number
27
28 private static final String RESULT_TAG = "result"; //$NON-NLS-1$
29 private static final String CHECK_EVENTS_TAG = "check-events"; //$NON-NLS-1$
30
31 private static final String EVENT_OK_STR = "ok"; //$NON-NLS-1$
32 private static final String INVALID_UMASK_STR = "invalid-um"; //$NON-NLS-1$
33 private static final String INVALID_COUNTER_STR = "invalid-counter"; //$NON-NLS-1$
34
35 private int result;
36
37 @Override
38 public void reset(Object callData) {
39 result = INVALID_UNKNOWN;
40 }
41
42 @Override
43 public void endElement(String name, Object callData) {
44 if (name.equals(RESULT_TAG)) {
45 if (characters.equals(EVENT_OK_STR)) {
46 result = EVENT_OK;
47 } else if (characters.equals(INVALID_UMASK_STR)) {
48 result = INVALID_UMASK;
49 } else if (characters.equals(INVALID_COUNTER_STR)) {
50 result = INVALID_COUNTER;
51 }
52 } else if (name.equals(CHECK_EVENTS_TAG)) {
53 int[] r = (int[]) callData;
54 r[0] = result;
55 }
56 }
57 }
+0
-49
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/info/DefaultsProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.info;
13
14 import java.util.HashMap;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
17 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
19
20 /**
21 * XML handler class for opxml's "defaults".
22 *
23 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
24 */
25 public class DefaultsProcessor extends XMLProcessor {
26 // XML tags reconize by this processor (public)
27 public static final String SAMPLE_DIR = "sample-dir"; //$NON-NLS-1$
28 public static final String LOCK_FILE = "lock-file"; //$NON-NLS-1$
29 public static final String LOG_FILE = "log-file"; //$NON-NLS-1$
30 public static final String DUMP_STATUS = "dump-status"; //$NON-NLS-1$
31 protected HashMap<String, String> map = new HashMap<>();
32
33 @Override
34 public void reset(Object callData) {
35 map.clear();
36 }
37
38 @Override
39 public void endElement(String name, Object callData) {
40 if (name.equals(OpInfoProcessor.DEFAULTS_TAG)) {
41 OpInfo info = (OpInfo) callData;
42 info.setDefaults(map);
43 OprofileSAXHandler.getInstance(callData).pop(name);
44 } else {
45 map.put(name, characters);
46 }
47 }
48 }
+0
-230
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/info/EventListProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.opxml.info;
14
15 import java.util.ArrayList;
16
17 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
18 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask;
19 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
20 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
21 import org.xml.sax.Attributes;
22
23 /**
24 * XML handler class for opxml's "event-list".
25 *
26 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
27 */
28 public class EventListProcessor extends XMLProcessor {
29 // The current event being constructed
30 private OpEvent currentEvent;
31 private int counter;
32 private ArrayList<OpEvent> currentEventList;
33
34 // An XML processor for reading the unit mask information for an event
35 private UnitMaskProcessor umProcessor;
36
37 // XML elements recognized by this processor
38 private static final String EVENT_TAG = "event"; //$NON-NLS-1$
39 private static final String UNIT_MASK_TAG = "unit-mask"; //$NON-NLS-1$
40 private static final String NAME_TAG = "name"; //$NON-NLS-1$
41 private static final String VALUE_TAG = "value"; //$NON-NLS-1$
42 private static final String DESCRIPTION_TAG = "description"; //$NON-NLS-1$
43 private static final String MASK_TAG = "mask"; //$NON-NLS-1$
44 private static final String MINIMUM_COUNT_TAG = "minimum"; //$NON-NLS-1$
45 private static final String ATTR_EVENT_LIST_COUNTER = "counter"; //$NON-NLS-1$
46
47 // This is a special processor which is used to deal with a single mask value
48 private static class MaskProcessor extends XMLProcessor {
49 private OpUnitMask.MaskInfo info;
50
51 @Override
52 public void reset(Object callData) {
53 info = new OpUnitMask.MaskInfo();
54 }
55
56 @Override
57 public void endElement(String name, Object callData) {
58 if (name.equals(VALUE_TAG)) {
59 // Set mask's value
60 info.value = Integer.parseInt(characters);
61 } else if (name.equals(DESCRIPTION_TAG)) {
62 info.description = characters;
63 } else if (name.equals(NAME_TAG)) {
64 info.name = characters;
65 } else if (name.equals(MASK_TAG)) {
66 // Pop and pass mask tag to previous processor (UnitMaskProcessor)
67 OprofileSAXHandler.getInstance(callData).pop(MASK_TAG);
68 }
69 }
70
71 /**
72 * Returns the information that has been collected about a mask.
73 *
74 * @return the mask information
75 */
76 public OpUnitMask.MaskInfo getResult() {
77 return info;
78 }
79 }
80
81 // This is a special processor to handle unit mask information
82 private class UnitMaskProcessor extends XMLProcessor {
83 // An ArrayList to hold all the valid masks for a unit mask.
84 private ArrayList<OpUnitMask.MaskInfo> masks;
85
86 // The unit mask being constructed
87 private OpUnitMask unitMask;
88
89 // An XML processor for each individual mask value.
90 private MaskProcessor maskProcessor;
91
92 // XML elements recognized by this processor
93 private static final String MASK_TYPE_TAG = "type"; //$NON-NLS-1$
94 private static final String MASK_DEFAULT_TAG = "default"; //$NON-NLS-1$
95 private static final String MASK_TYPE_BITMASK = "bitmask"; //$NON-NLS-1$
96 private static final String MASK_TYPE_MANDATORY = "mandatory"; //$NON-NLS-1$
97 private static final String MASK_TYPE_EXCLUSIVE = "exclusive"; //$NON-NLS-1$
98
99 /**
100 * Constructor for UnitMaskProcessor. Initializes internal state.
101 */
102 public UnitMaskProcessor() {
103 super();
104 maskProcessor = new MaskProcessor();
105 masks = new ArrayList<>();
106 }
107
108 @Override
109 public void reset(Object callData) {
110 unitMask = new OpUnitMask();
111 masks.clear();
112 }
113
114 @Override
115 public void startElement(String name, Attributes attrs, Object callData) {
116 if (name.equals(MASK_TAG)) {
117 // Tell SAX handler to use the mask processor
118 OprofileSAXHandler.getInstance(callData).push(maskProcessor);
119 } else {
120 super.startElement(name, attrs, callData);
121 }
122 }
123
124 @Override
125 public void endElement(String name, Object callData) {
126 if (name.equals(MASK_TYPE_TAG)) {
127 // Set the mask type
128 unitMask.setType(getTypeFromString(characters));
129 } else if (name.equals(MASK_DEFAULT_TAG)) {
130 // Set the default mask
131 unitMask.setDefault(Integer.parseInt(characters));
132 } else if (name.equals(MASK_TAG)) {
133 // Add this mask description to the list of all masks
134 masks.add(maskProcessor.getResult());
135 } else if (name.equals(UNIT_MASK_TAG)) {
136 // All done. Add the known masks to the unit mask
137 OpUnitMask.MaskInfo[] descs = new OpUnitMask.MaskInfo[masks.size()];
138 masks.toArray(descs);
139 unitMask.setMaskDescriptions(descs);
140
141 // Pop this processor and pass _UNIT_MASK_TAG to previoius processor
142 OprofileSAXHandler.getInstance(callData).pop(UNIT_MASK_TAG);
143 }
144 }
145
146 /**
147 * Returns the constructed unit mask.
148 *
149 * @return the unit mask
150 */
151 public OpUnitMask getResult() {
152 return unitMask;
153 }
154
155 // Converts a string representing a mask type into an integer
156 private int getTypeFromString(String string) {
157 if (string.equals(MASK_TYPE_MANDATORY)) {
158 return OpUnitMask.MANDATORY;
159 } else if (string.equals(MASK_TYPE_BITMASK)) {
160 return OpUnitMask.BITMASK;
161 } else if (string.equals(MASK_TYPE_EXCLUSIVE)) {
162 return OpUnitMask.EXCLUSIVE;
163 }
164
165 return -1;
166 }
167 }
168
169 /**
170 * Constructor for EventListProcessor. Initializes internal state.
171 */
172 public EventListProcessor() {
173 super();
174 umProcessor = new UnitMaskProcessor();
175 }
176
177 @Override
178 public void reset(Object callData) {
179 currentEventList = new ArrayList<>();
180 }
181
182 @Override
183 public void startElement(String name, Attributes attrs, Object callData) {
184 if (name.equals(EVENT_TAG)) {
185 // new event
186 currentEvent = new OpEvent();
187 } else if (name.equals(UNIT_MASK_TAG)) {
188 // Tell the SAX handler to use the unit mask processor
189 OprofileSAXHandler.getInstance(callData).push(umProcessor);
190 } else if (name.equals(OpInfoProcessor.EVENT_LIST_TAG)) {
191 // Our start tag: grab the counter number from the attributes
192 counter = Integer.parseInt(attrs.getValue(ATTR_EVENT_LIST_COUNTER));
193 } else {
194 super.startElement(name, attrs, callData);
195 }
196 }
197
198 @Override
199 public void endElement(String name, Object callData) {
200 if (name.equals(EVENT_TAG)) {
201 // Finished constructing an event. Add it to the list.
202 currentEventList.add(currentEvent);
203 } else if (name.equals(UNIT_MASK_TAG)) {
204 // Set the event's unit mask
205 currentEvent.setUnitMask(umProcessor.getResult());
206 } else if (name.equals(NAME_TAG)) {
207 // Set event's name
208 currentEvent.setText(characters);
209 } else if (name.equals(DESCRIPTION_TAG)) {
210 // Set event's description
211 currentEvent.setTextDescription(characters);
212 } else if (name.equals(MINIMUM_COUNT_TAG)) {
213 // Set event's minimum count
214 currentEvent.setMinCount(Integer.parseInt(characters));
215 } else if (name.equals(OpInfoProcessor.EVENT_LIST_TAG)) {
216 OprofileSAXHandler.getInstance(callData).pop(name);
217 }
218 }
219
220 public int getCounterNum() {
221 return counter;
222 }
223
224 public OpEvent[] getEvents() {
225 OpEvent[] events = new OpEvent[currentEventList.size()];
226 currentEventList.toArray(events);
227 return events;
228 }
229 }
+0
-470
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/info/InfoAdapter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.info;
13
14 import java.io.BufferedReader;
15 import java.io.FileNotFoundException;
16 import java.io.IOException;
17 import java.io.InputStream;
18 import java.io.InputStreamReader;
19
20 import javax.xml.parsers.DocumentBuilder;
21 import javax.xml.parsers.DocumentBuilderFactory;
22 import javax.xml.parsers.ParserConfigurationException;
23
24 import org.eclipse.core.filesystem.EFS;
25 import org.eclipse.core.filesystem.IFileStore;
26 import org.eclipse.core.runtime.CoreException;
27 import org.eclipse.core.runtime.NullProgressMonitor;
28 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
29 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
30 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
31 import org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter;
32 import org.eclipse.linuxtools.internal.oprofile.core.opxml.EventIdCache;
33 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
34 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
35 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
36 import org.w3c.dom.Document;
37 import org.w3c.dom.Element;
38 import org.w3c.dom.NodeList;
39 import org.xml.sax.SAXException;
40
41 /**
42 * This class takes the XML that is output from 'ophelp -X' for and uses that
43 * data to modify it into the format expected by the SAX parser.
44 */
45 public class InfoAdapter extends AbstractDataAdapter {
46
47 public static final String HELP_EVENTS = "help_events"; //$NON-NLS-1$
48 public static final String INFO = "info"; //$NON-NLS-1$
49
50 public static final String DEFAULTS = "defaults"; //$NON-NLS-1$
51 public static final String NUM_COUNTERS = "num-counters"; //$NON-NLS-1$
52 public static final String CPU_FREQUENCY = "cpu-frequency"; //$NON-NLS-1$
53 public static final String TIMER_MODE = "timer-mode"; //$NON-NLS-1$
54 public static final String TIMER = "timer"; //$NON-NLS-1$
55
56 public static final String EVENT_LIST = "event-list"; //$NON-NLS-1$
57 public static final String COUNTER = "counter"; //$NON-NLS-1$
58
59 public static final String EVENT = "event"; //$NON-NLS-1$
60 public static final String EVENT_NAME = "event_name"; //$NON-NLS-1$
61 public static final String NAME = "name"; //$NON-NLS-1$
62 public static final String DESC = "desc"; //$NON-NLS-1$
63 public static final String DESCRIPTION = "description"; //$NON-NLS-1$
64 public static final String MIN_COUNT = "min_count"; //$NON-NLS-1$
65 public static final String MINIMUM = "minimum"; //$NON-NLS-1$
66 public static final String VALUE = "value"; //$NON-NLS-1$
67
68 public static final String UNIT_MASKS = "unit_masks"; //$NON-NLS-1$
69 public static final String UNITMASK = "unit-mask"; //$NON-NLS-1$
70 public static final String DEFAULT = "default"; //$NON-NLS-1$
71 public static final String TYPE = "type"; //$NON-NLS-1$
72
73 public static final String UNIT_MASK = "unit_mask"; //$NON-NLS-1$
74 public static final String MASK = "mask"; //$NON-NLS-1$
75
76 public static final String SAMPLE_DIR = "sample-dir"; //$NON-NLS-1$
77 public static final String LOCK_FILE = "lock-file"; //$NON-NLS-1$
78 public static final String LOG_FILE = "log-file"; //$NON-NLS-1$
79 public static final String DUMP_STATUS = "dump-status"; //$NON-NLS-1$
80
81 public static final String CPUINFO = "/proc/cpuinfo"; //$NON-NLS-1$
82 public static String DEV_OPROFILE = "/dev/oprofile/"; //$NON-NLS-1$
83 public static String CPUTYPE = DEV_OPROFILE + "cpu_type"; //$NON-NLS-1$
84 public static final String OP_SHARE = "/usr/share/oprofile/"; //$NON-NLS-1$
85 public static final String EVENTS = "events"; //$NON-NLS-1$
86
87 public static final String SAMPLE_DIR_VAL = "/var/lib/oprofile/samples/"; //$NON-NLS-1$
88 public static final String LOCK_FILE_VAL = "/var/lib/oprofile/lock"; //$NON-NLS-1$
89 public static final String LOG_FILE_VAL = "/var/lib/oprofile/samples/oprofiled.log"; //$NON-NLS-1$
90 public static final String DUMP_STATUS_VAL = "/var/lib/oprofile/complete_dump"; //$NON-NLS-1$
91
92 private Document newDoc; // the document we intend to build
93 private Element oldRoot; // the root of the document with data from ophelp
94 private Element newRoot; // the root of the document we intent to build
95 private static IRemoteFileProxy proxy;
96
97 private static boolean hasTimerSupport;
98
99 public InfoAdapter() {
100 try {
101 if (hasTimerSupport()) {
102 // In timer mode, we have no relevant XML generated by ophelp
103 createDOM(null);
104 } else {
105 Process p = RuntimeProcessFactory.getFactory().exec("ophelp -X", Oprofile.OprofileProject.getProject()); //$NON-NLS-1$
106 if (p != null) {
107 InputStream is = p.getInputStream();
108 createDOM(is);
109 } else {
110 createDOM(null);
111 }
112 }
113 } catch (IOException e) {
114 createDOM(null);
115 }
116 }
117
118 /**
119 * @since 1.1
120 */
121 public InfoAdapter(IFileStore resourceFile) {
122 InputStream inputStream = null;
123 try {
124 inputStream = resourceFile.openInputStream(EFS.NONE, new NullProgressMonitor());
125 createDOM(inputStream);
126 setEventIdCacheDoc(oldRoot);
127 } catch (CoreException e) {
128 e.printStackTrace();
129 }
130 }
131
132 /**
133 * Set up the DOM for later manipulation
134 *
135 * @param is the InpuStream resulting from running the ophelp command. This will
136 * be passed in as null for timer mode.
137 */
138 private void createDOM(InputStream is) {
139 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
140 DocumentBuilder builder;
141 try {
142 builder = factory.newDocumentBuilder();
143 if (is != null) {
144 try {
145 Document oldDoc = builder.parse(is);
146 Element elem = (Element) oldDoc.getElementsByTagName(HELP_EVENTS).item(0);
147 oldRoot = elem;
148 } catch (SAXException | IOException e) {
149 e.printStackTrace();
150 CoreException opcontrolException = new CoreException(
151 OprofileCorePlugin.createErrorStatus("ophelpRun", null)); //$NON-NLS-1$
152 OprofileCorePlugin.showErrorDialog("opxmlSAXParseException", opcontrolException); //$NON-NLS-1$
153 }
154 } else {
155 CoreException opcontrolException = new CoreException(
156 OprofileCorePlugin.createErrorStatus("ophelpRun", null)); //$NON-NLS-1$
157 OprofileCorePlugin.showErrorDialog("ophelpInputStream", opcontrolException); //$NON-NLS-1$
158 }
159
160 newDoc = builder.newDocument();
161 try {
162 newRoot = newDoc.createElement(INFO);
163 newDoc.appendChild(newRoot);
164 } catch (Exception e) {
165 e.printStackTrace();
166 }
167 } catch (ParserConfigurationException e1) {
168 e1.printStackTrace();
169 }
170 }
171
172 @Override
173 public void process() {
174 if (getNrCounters() == -1) {
175 Element numCountersTag = newDoc.createElement(NUM_COUNTERS);
176 numCountersTag.setTextContent("error"); //$NON-NLS-1$
177 newRoot.appendChild(numCountersTag);
178 return;
179 }
180 createHeaders();
181 if (!hasTimerSupport() && oldRoot != null) {
182 createXML();
183 }
184 }
185
186 private void createHeaders() {
187 // number of counters
188 String numCounters = String.valueOf(getNrCounters());
189 Element numCountersTag = newDoc.createElement(NUM_COUNTERS);
190 numCountersTag.setTextContent(String.valueOf(numCounters));
191 newRoot.appendChild(numCountersTag);
192
193 // cpu frequency
194 int cpuFreq = getCPUFrequency();
195 Element cpuFreqTag = newDoc.createElement(CPU_FREQUENCY);
196 cpuFreqTag.setTextContent(String.valueOf(cpuFreq));
197 newRoot.appendChild(cpuFreqTag);
198
199 // file defaults
200 Element defaultsTag = newDoc.createElement(DEFAULTS);
201
202 Element sampleDirTag = newDoc.createElement(SAMPLE_DIR);
203 sampleDirTag.setTextContent(SAMPLE_DIR_VAL);
204 defaultsTag.appendChild(sampleDirTag);
205
206 Element lockFileTag = newDoc.createElement(LOCK_FILE);
207 lockFileTag.setTextContent(LOCK_FILE_VAL);
208 defaultsTag.appendChild(lockFileTag);
209
210 Element logFileTag = newDoc.createElement(LOG_FILE);
211 logFileTag.setTextContent(LOG_FILE_VAL);
212 defaultsTag.appendChild(logFileTag);
213
214 Element dumpStatusTag = newDoc.createElement(DUMP_STATUS);
215 dumpStatusTag.setTextContent(DUMP_STATUS_VAL);
216 defaultsTag.appendChild(dumpStatusTag);
217
218 newRoot.appendChild(defaultsTag);
219
220 // timer mode
221 Element timerModeTag = newDoc.createElement(TIMER_MODE);
222 timerModeTag.setTextContent(String.valueOf(hasTimerSupport()));
223 newRoot.appendChild(timerModeTag);
224 }
225
226 /**
227 * @since 3.0
228 */
229 public static void setOprofileDir(String dir) {
230 DEV_OPROFILE = dir;
231 CPUTYPE = DEV_OPROFILE + "cpu_type"; //$NON-NLS-1$
232 }
233
234 /**
235 * Determine whether the cpu supports timer mode
236 *
237 * @return true if it is true, and false otherwise
238 */
239 public static boolean hasTimerSupport() {
240 return hasTimerSupport;
241 }
242
243 /**
244 * Set whether the cpu supports timer mode
245 */
246 public static void checkTimerSupport() {
247
248 try {
249 proxy = RemoteProxyManager.getInstance().getFileProxy(Oprofile.OprofileProject.getProject());
250 IFileStore fileStore = proxy.getResource(CPUTYPE);
251 if (fileStore.fetchInfo().exists()) {
252 try (InputStream is = fileStore.openInputStream(EFS.NONE, new NullProgressMonitor());
253 BufferedReader bi = new BufferedReader(new InputStreamReader(is))) {
254 String cpuType = bi.readLine();
255 if (cpuType.equals(TIMER)) {
256 hasTimerSupport = true;
257 } else {
258 hasTimerSupport = false;
259 }
260 }
261 }
262 } catch (FileNotFoundException e) {
263 hasTimerSupport = true;
264 } catch (IOException e) {
265 hasTimerSupport = true;
266 e.printStackTrace();
267 } catch (CoreException e) {
268 e.printStackTrace();
269 }
270 }
271
272 /**
273 * Get the system's cpu frequency
274 *
275 * @return the system's cpu frequency
276 */
277 private int getCPUFrequency() {
278 int val = 0;
279 try {
280 proxy = RemoteProxyManager.getInstance().getFileProxy(Oprofile.OprofileProject.getProject());
281 IFileStore fileStore = proxy.getResource(CPUINFO);
282 if (fileStore.fetchInfo().exists()) {
283 InputStream is = fileStore.openInputStream(EFS.NONE, new NullProgressMonitor());
284 try (BufferedReader bi = new BufferedReader(new InputStreamReader(is))) {
285 String line;
286 while ((line = bi.readLine()) != null) {
287 int index = line.indexOf(':');
288 if (index != -1) {
289 String substr;
290
291 // x86/ia64/x86_64
292 if (line.startsWith("cpu MHz")) { //$NON-NLS-1$
293 substr = line.substring(index + 1).trim();
294 return (int) Double.parseDouble(substr);
295 // ppc/pc64
296 } else if (line.startsWith("clock")) { //$NON-NLS-1$
297 int MHzLoc = line.indexOf("MHz"); //$NON-NLS-1$
298 substr = line.substring(index + 1, MHzLoc);
299 return (int) Double.parseDouble(substr);
300 // alpha
301 } else if (line.startsWith("cycle frequency [Hz]")) { //$NON-NLS-1$
302 substr = line.substring(index + 1).trim();
303 return (int) (Double.parseDouble(substr) / 1E6);
304 // sparc64
305 } else if (line.startsWith("Cpu0ClkTck")) { //$NON-NLS-1$
306 substr = line.substring(index + 1).trim();
307 return (int) (Double.parseDouble(substr) / 1E6);
308 }
309 }
310 }
311 } catch (IOException | NumberFormatException e) {
312 e.printStackTrace();
313 }
314 }
315 } catch (CoreException e) {
316 e.printStackTrace();
317 }
318
319 return val;
320 }
321
322 /**
323 * Get the number of counters for the system
324 *
325 * @return the number of counters for the system
326 */
327 private int getNrCounters() {
328 /*
329 * TODO: Originally the number of counters for a given arch were hard-coded in a
330 * list. This method may not be entirely correct, although much simpler.
331 */
332
333 /*
334 * Returning 1 for operf since it multiplexes the events through the counters
335 * and it is not possible to read data from opcontrol /dev dir if the opcontrol
336 * module was not initialized. TODO: Make possible to select more than one event
337 * in a tab.
338 */
339 if ((OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY))
340 || (OprofileProject.getProfilingBinary().equals(OprofileProject.OCOUNT_BINARY))) {
341 return 1;
342 }
343 try {
344 proxy = RemoteProxyManager.getInstance().getFileProxy(Oprofile.OprofileProject.getProject());
345 } catch (CoreException e) {
346 e.printStackTrace();
347 }
348 final int MAXCPUS = Integer.MAX_VALUE;
349 for (int i = 0; i < MAXCPUS; i++) {
350 IFileStore fileStore = proxy.getResource(DEV_OPROFILE + i);
351 if (!fileStore.fetchInfo().exists()) {
352 return i;
353 }
354 }
355 return -1;
356 }
357
358 private void createXML() {
359
360 NodeList eventList = oldRoot.getElementsByTagName(EVENT);
361 Element newEventList = newDoc.createElement(EVENT_LIST);
362
363 for (int i = 0; i < eventList.getLength(); i++) {
364 // get the event data
365 Element event = (Element) eventList.item(i);
366 String name = event.getAttribute(EVENT_NAME);
367 String desc = event.getAttribute(DESC);
368 String min_count = event.getAttribute(MIN_COUNT);
369
370 // create the data for the new event
371 Element newEventTag = newDoc.createElement(EVENT);
372 Element nameTag = newDoc.createElement(NAME);
373 nameTag.setTextContent(name);
374 Element descTag = newDoc.createElement(DESCRIPTION);
375 descTag.setTextContent(desc);
376 Element minimumTag = newDoc.createElement(MINIMUM);
377 minimumTag.setTextContent(min_count);
378
379 newEventTag.appendChild(nameTag);
380 newEventTag.appendChild(descTag);
381 newEventTag.appendChild(minimumTag);
382
383 Element unitMaskTag = (Element) event.getElementsByTagName(UNIT_MASKS).item(0);
384
385 // check if there are any unit masks for this event
386 if (unitMaskTag != null) {
387 String defaultVal = unitMaskTag.getAttribute(DEFAULT);
388
389 // Get the unit mask type (compatible with 1.0 and 1.1 ophelp
390 // xml schemas)
391 String type = EventIdCache.getInstance().getUnitMaskType(name);
392
393 Element newUnitMaskTag = newDoc.createElement(UNITMASK);
394 Element typeTag = newDoc.createElement(TYPE);
395 typeTag.setTextContent(type);
396 Element defaultValTag = newDoc.createElement(DEFAULT);
397 defaultValTag.setTextContent(defaultVal);
398
399 newUnitMaskTag.appendChild(typeTag);
400 newUnitMaskTag.appendChild(defaultValTag);
401 newEventTag.appendChild(newUnitMaskTag);
402
403 NodeList unitMaskList = unitMaskTag.getElementsByTagName(UNIT_MASK);
404 for (int j = 0; j < unitMaskList.getLength(); j++) {
405 Element unitMask = (Element) unitMaskList.item(j);
406 String maskVal = unitMask.getAttribute(MASK);
407 String maskDesc = unitMask.getAttribute(DESC);
408 String maskName = unitMask.getAttribute(NAME);
409
410 Element newMask = newDoc.createElement(MASK);
411 Element newVal = newDoc.createElement(VALUE);
412 newVal.setTextContent(maskVal);
413 Element newDesc = newDoc.createElement(DESCRIPTION);
414 newDesc.setTextContent(maskDesc);
415 Element newName = newDoc.createElement(NAME);
416 newName.setTextContent(maskName);
417
418 newMask.appendChild(newVal);
419 newMask.appendChild(newDesc);
420 newUnitMaskTag.appendChild(newMask);
421 }
422 // not unit mask for this event
423 } else {
424 String defaultVal = "0"; //$NON-NLS-1$
425 String type = "mandatory"; //$NON-NLS-1$
426
427 Element newUnitMaskTag = newDoc.createElement(UNITMASK);
428 Element typeTag = newDoc.createElement(TYPE);
429 typeTag.setTextContent(type);
430 Element defaultValTag = newDoc.createElement(DEFAULT);
431 defaultValTag.setTextContent(defaultVal);
432
433 newUnitMaskTag.appendChild(typeTag);
434 newUnitMaskTag.appendChild(defaultValTag);
435 newEventTag.appendChild(newUnitMaskTag);
436
437 Element newMask = newDoc.createElement(MASK);
438 Element newVal = newDoc.createElement(VALUE);
439 newVal.setTextContent("0"); //$NON-NLS-1$
440 Element newDesc = newDoc.createElement(DESCRIPTION);
441 newDesc.setTextContent("No unit mask"); //$NON-NLS-1$
442
443 newMask.appendChild(newVal);
444 newMask.appendChild(newDesc);
445 newUnitMaskTag.appendChild(newMask);
446 }
447
448 newEventList.appendChild(newEventTag);
449 }
450
451 for (int i = 0; i < getNrCounters(); i++) {
452 Element eventListTag = (Element) newEventList.cloneNode(true);
453 eventListTag.setAttribute(COUNTER, String.valueOf(i));
454 newRoot.appendChild(eventListTag);
455 }
456 }
457
458 @Override
459 public Document getDocument() {
460 return newDoc;
461 }
462
463 /**
464 * @since 3.0
465 */
466 private void setEventIdCacheDoc(Element elem) {
467 EventIdCache.getInstance().setCacheDoc(elem);
468 }
469 }
+0
-78
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/info/OpInfoProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.core.opxml.info;
14
15 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
16 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
17 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
18 import org.xml.sax.Attributes;
19
20 /**
21 * Opxml processor for the "info" command.
22 *
23 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
24 */
25 public class OpInfoProcessor extends XMLProcessor {
26 // Other XMLProcessors used by this processor
27 private DefaultsProcessor defaultsProc;
28 private EventListProcessor eventListProc;
29
30 // XML tags processed by this processor
31 public static final String NUM_COUNTERS_TAG = "num-counters"; //$NON-NLS-1$
32 public static final String DEFAULTS_TAG = "defaults"; //$NON-NLS-1$
33 public static final String EVENT_LIST_TAG = "event-list"; //$NON-NLS-1$
34 public static final String CPU_FREQUENCY_TAG = "cpu-frequency"; //$NON-NLS-1$
35 public static final String TIMER_MODE = "timer-mode"; //$NON-NLS-1$
36
37 public OpInfoProcessor() {
38 defaultsProc = new DefaultsProcessor();
39 eventListProc = new EventListProcessor();
40 }
41
42 @Override
43 public void startElement(String name, Attributes attrs, Object callData) {
44 if (name.equals(DEFAULTS_TAG)) {
45 OprofileSAXHandler.getInstance(callData).push(defaultsProc);
46 } else if (name.equals(EVENT_LIST_TAG)) {
47 OprofileSAXHandler.getInstance(callData).push(eventListProc);
48 eventListProc.startElement(name, attrs, callData);
49 } else {
50 super.startElement(name, attrs, callData);
51 }
52 }
53
54 @Override
55 public void endElement(String name, Object callData) {
56 if (name.equals(CPU_FREQUENCY_TAG)) {
57 double speed = Double.parseDouble(characters);
58 OpInfo info = (OpInfo) callData;
59 info.setCPUSpeed(speed);
60 } else if (name.equals(TIMER_MODE)) {
61 boolean timerMode = Boolean.parseBoolean(characters);
62 OpInfo info = (OpInfo) callData;
63 info.setTimerMode(timerMode);
64 } else if (name.equals(NUM_COUNTERS_TAG)) {
65 int numCounters = 0;
66 try {
67 numCounters = Integer.parseInt(characters);
68 } catch (NumberFormatException nfe) {
69 }
70 OpInfo info = (OpInfo) callData;
71 info.setNrCounters(numCounters);
72 } else if (name.equals(EVENT_LIST_TAG)) {
73 OpInfo info = (OpInfo) callData;
74 info.setEvents(eventListProc.getCounterNum(), eventListProc.getEvents());
75 }
76 }
77 }
+0
-82
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/modeldata/DependentProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata;
13
14 import java.util.ArrayList;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
17 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
19 import org.xml.sax.Attributes;
20
21 /**
22 * XML handler class for dependent images (<image> tags under <dependent>)
23 */
24 public class DependentProcessor extends XMLProcessor {
25 // XML tags parsed by this processor
26 private static final String IMAGE_TAG = "image"; //$NON-NLS-1$
27 private static final String SYMBOLS_TAG = "symbols"; //$NON-NLS-1$
28 private static final String DEPENDENT_TAG = "dependent"; //$NON-NLS-1$
29
30 // attribute tags
31 private static final String ATTR_IMAGENAME = "name"; //$NON-NLS-1$
32 private static final String ATTR_COUNT = "count"; //$NON-NLS-1$
33
34 /**
35 * the current image being constructed
36 */
37 private OpModelImage image;
38 /**
39 * a list of all the dependent images
40 */
41 private ArrayList<OpModelImage> imageList;
42 /**
43 * processor used for symbols of an image
44 */
45 private SymbolsProcessor _symbolsProcessor = new SymbolsProcessor();
46
47 @Override
48 public void reset(Object callData) {
49 image = new OpModelImage();
50 imageList = new ArrayList<>();
51 }
52
53 @Override
54 public void startElement(String name, Attributes attrs, Object callData) {
55 if (name.equals(IMAGE_TAG)) {
56 image.setName(validString(attrs.getValue(ATTR_IMAGENAME)));
57 image.setCount(Integer.parseInt(attrs.getValue(ATTR_COUNT)));
58 } else if (name.equals(SYMBOLS_TAG)) {
59 OprofileSAXHandler.getInstance(callData).push(_symbolsProcessor);
60 }
61 }
62
63 @Override
64 public void endElement(String name, Object callData) {
65 if (name.equals(IMAGE_TAG)) {
66 imageList.add(image);
67 image = new OpModelImage();
68 } else if (name.equals(SYMBOLS_TAG)) {
69 image.setSymbols(_symbolsProcessor.getSymbols());
70 } else if (name.equals(DEPENDENT_TAG)) {
71 OprofileSAXHandler.getInstance(callData).pop(DEPENDENT_TAG);
72 }
73 }
74
75 public OpModelImage[] getImages() {
76 OpModelImage[] images = new OpModelImage[imageList.size()];
77 imageList.toArray(images);
78 return images;
79 }
80
81 }
+0
-380
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/modeldata/ModelDataAdapter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata;
13
14 import java.io.IOException;
15 import java.io.InputStream;
16 import java.util.ArrayList;
17 import java.util.Comparator;
18 import java.util.HashMap;
19 import java.util.TreeSet;
20
21 import javax.xml.parsers.DocumentBuilder;
22 import javax.xml.parsers.DocumentBuilderFactory;
23 import javax.xml.parsers.ParserConfigurationException;
24
25 import org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter;
27 import org.w3c.dom.Document;
28 import org.w3c.dom.Element;
29 import org.w3c.dom.NodeList;
30 import org.xml.sax.SAXException;
31
32 /**
33 * This class takes the XML that is output from 'opreport -X --details' for the
34 * current session, and uses that data to modify it into the format expected by
35 * the SAX parser.
36 */
37 public class ModelDataAdapter extends AbstractDataAdapter {
38
39 public final static String ID = "id"; //$NON-NLS-1$
40 public final static String IDREF = "idref"; //$NON-NLS-1$
41 public final static String NAME = "name"; //$NON-NLS-1$
42 public final static String COUNT = "count"; //$NON-NLS-1$
43 public final static String SAMPLE = "sample"; //$NON-NLS-1$
44 public final static String LINE = "line"; //$NON-NLS-1$
45
46 public final static String SYMBOL_DATA = "symboldata"; //$NON-NLS-1$
47 public final static String SYMBOL_DETAILS = "symboldetails"; //$NON-NLS-1$
48 public final static String SYMBOL = "symbol"; //$NON-NLS-1$
49
50 public final static String FILE = "file"; //$NON-NLS-1$
51
52 public final static String SETUP = "setup"; //$NON-NLS-1$
53 public final static String EVENT_SETUP = "eventsetup"; //$NON-NLS-1$
54 public final static String TIMER_SETUP = "timersetup"; //$NON-NLS-1$
55 public final static String SETUP_COUNT = "setupcount"; //$NON-NLS-1$
56 public final static String EVENT_NAME = "eventname"; //$NON-NLS-1$
57 public final static String RTC_INTERRUPTS = "rtcinterrupts"; //$NON-NLS-1$
58
59 public final static String PROFILE = "profile"; //$NON-NLS-1$
60 public final static String MODEL_DATA = "model-data"; //$NON-NLS-1$
61
62 public final static String MODULE = "module"; //$NON-NLS-1$
63 public final static String DEPENDENT = "dependent"; //$NON-NLS-1$
64
65 public final static String BINARY = "binary"; //$NON-NLS-1$
66 public final static String IMAGE = "image"; //$NON-NLS-1$
67
68 public final static String SYMBOLS = "symbols"; //$NON-NLS-1$
69 public final static String SYMBOL_TABLE = "symboltable"; //$NON-NLS-1$
70 public final static String DETAIL_TABLE = "detailtable"; //$NON-NLS-1$
71
72 public final static String DETAIL_DATA = "detaildata"; //$NON-NLS-1$
73
74 private boolean isParseable;
75 private Document newDoc; // the document we intend to build
76 private Element oldRoot; // the root of the document with data from opreport
77 private Element newRoot; // the root of the document we intent to build
78
79 /**
80 * Constructor to the ModelAdapter class
81 *
82 * @param is The input stream to be parsed
83 */
84 public ModelDataAdapter(InputStream is) {
85 isParseable = true;
86 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
87 DocumentBuilder builder;
88 try {
89 builder = factory.newDocumentBuilder();
90 try {
91 Document oldDoc = builder.parse(is);
92 Element elem = (Element) oldDoc.getElementsByTagName(PROFILE).item(0);
93 oldRoot = elem;
94
95 newDoc = builder.newDocument();
96 newRoot = newDoc.createElement(MODEL_DATA);
97 newDoc.appendChild(newRoot);
98 } catch (IOException e) {
99 isParseable = false;
100 } catch (SAXException e) {
101 isParseable = false;
102 }
103 } catch (ParserConfigurationException e1) {
104 e1.printStackTrace();
105 }
106 }
107
108 @Override
109 public void process() {
110 createXML();
111 }
112
113 private void createXML() {
114
115 // get the binary name and the image count
116 Element oldImage = (Element) oldRoot.getElementsByTagName(BINARY).item(0);
117 Element newImage = newDoc.createElement(IMAGE);
118
119 String binName = oldImage.getAttribute(NAME);
120 newImage.setAttribute(NAME, binName);
121
122 Element countTag = (Element) oldImage.getElementsByTagName(COUNT).item(0);
123 String imageCount = countTag.getTextContent().trim();
124 newImage.setAttribute(COUNT, imageCount);
125
126 // There is no setup count in timer mode
127 if (!InfoAdapter.hasTimerSupport()) {
128 // get the count that was used to profile
129 Element setupTag = (Element) oldRoot.getElementsByTagName(SETUP).item(0);
130 Element eventSetupTag = (Element) setupTag.getElementsByTagName(EVENT_SETUP).item(0);
131 String setupcount = eventSetupTag.getAttribute(SETUP_COUNT);
132 newImage.setAttribute(SETUP_COUNT, setupcount);
133 }
134
135 // these elements contain the data needed to populate the new symbol table
136 Element oldSymbolTableTag = (Element) oldRoot.getElementsByTagName(SYMBOL_TABLE).item(0);
137 NodeList oldSymbolDataList = oldSymbolTableTag.getElementsByTagName(SYMBOL_DATA);
138
139 Element oldDetailTableTag = (Element) oldRoot.getElementsByTagName(DETAIL_TABLE).item(0);
140 NodeList oldDetailTableList = oldDetailTableTag.getElementsByTagName(SYMBOL_DETAILS);
141
142 // parse the data into HashMaps for O(1) lookup time, as opposed to O(n).
143 HashMap<String, HashMap<String, String>> oldSymbolDataListMap = parseDataList(oldSymbolDataList);
144 HashMap<String, NodeList> oldDetailTableListMap = parseDetailTable(oldDetailTableList);
145
146 // An ArrayList to hold the binary and other modules
147 ArrayList<Element> oldImageList = new ArrayList<>();
148 // The first element is the original binary!
149 oldImageList.add(oldImage);
150
151 NodeList oldModuleList = oldImage.getElementsByTagName(MODULE);
152 // Set up the dependent tag for any modules run by this binary
153 Element dependentTag = newDoc.createElement(DEPENDENT);
154 if (oldModuleList.getLength() > 0) {
155 dependentTag.setAttribute(COUNT, "0"); //$NON-NLS-1$
156
157 for (int t = 0; t < oldModuleList.getLength(); t++) {
158 oldImageList.add((Element) oldModuleList.item(t));
159 }
160 }
161
162 // iterate through all (binary/modules)
163 for (Element oldImg : oldImageList) {
164 Element newImg;
165 if (oldImg.getTagName().equals(BINARY)) {
166 newImg = newImage;
167 } else {
168 newImg = newDoc.createElement(IMAGE);
169
170 String imgName = oldImg.getAttribute(NAME);
171 newImg.setAttribute(NAME, imgName);
172
173 Element modCountTag = (Element) oldImg.getElementsByTagName(COUNT).item(0);
174 String imgCount = modCountTag.getTextContent().trim();
175 newImg.setAttribute(COUNT, imgCount);
176 }
177
178 Element newSymbolsTag = newDoc.createElement(SYMBOLS);
179
180 // these elements contain the data needed to populate the new symbol table
181 NodeList oldSymbolList = oldImg.getElementsByTagName(SYMBOL);
182
183 // iterate through all symbols
184 for (int i = 0; i < oldSymbolList.getLength(); i++) {
185 Element oldSymbol = (Element) oldSymbolList.item(i);
186
187 /**
188 * The original binary is a parent for all symbols We only want library function
189 * calls under their respective modules, and not under the original binary as
190 * well.
191 */
192 if (!oldSymbol.getParentNode().isSameNode(oldImg)) {
193 continue;
194 }
195
196 Element newSymbol = newDoc.createElement(SYMBOL);
197 String idref = oldSymbol.getAttribute(IDREF);
198 String symbolCount = ((Element) oldSymbol.getElementsByTagName(COUNT).item(0)).getTextContent().trim();
199 newSymbol.setAttribute(COUNT, symbolCount);
200
201 // get the symboltable entry corresponding to the id of this symbol
202 HashMap<String, String> symbolData = oldSymbolDataListMap.get(idref);
203 newSymbol.setAttribute(NAME, symbolData.get(NAME));
204 newSymbol.setAttribute(FILE, symbolData.get(FILE));
205 newSymbol.setAttribute(LINE, symbolData.get(LINE));
206
207 // get the symboldetails entry corresponding to the id of this symbol
208 NodeList detailDataList = oldDetailTableListMap.get(idref);
209
210 // go through the detail data of each symbol's details
211 HashMap<String, Element> tmp = new HashMap<>();
212 // temporary place to store the elements for sorting
213 TreeSet<Element> sorted = new TreeSet<>(SAMPLE_COUNT_ORDER);
214 for (int l = 0; l < detailDataList.getLength(); l++) {
215
216 Element detailData = (Element) detailDataList.item(l);
217 String sampleFile = detailData.getAttribute(FILE);
218 String sampleLine = detailData.getAttribute(LINE);
219
220 // The sample has a line number but no file
221 // This means that the file is the same as the symbol (parent)
222 if (sampleFile.equals("") && !sampleLine.isEmpty()) { //$NON-NLS-1$ $NON-NLS-2$
223 sampleFile = symbolData.get(FILE);
224 } else {
225 if (sampleFile.equals("")) { //$NON-NLS-1$
226 sampleFile = "??"; //$NON-NLS-1$
227 }
228 if (sampleLine.equals("")) { //$NON-NLS-1$
229 sampleLine = "0"; //$NON-NLS-1$
230 }
231 }
232 Element detailDataCount = (Element) detailData.getElementsByTagName(COUNT).item(0);
233 String count = detailDataCount.getTextContent().trim();
234
235 // if a sample at this line already exists then increase count for that line.
236 if (tmp.containsKey(sampleLine)) {
237 Element elem = (Element) tmp.get(sampleLine).getElementsByTagName(COUNT).item(0);
238 int val = Integer.parseInt(elem.getTextContent().trim()) + Integer.parseInt(count);
239 elem.setTextContent(String.valueOf(val));
240 } else {
241 Element sampleTag = newDoc.createElement(SAMPLE);
242
243 Element fileTag = newDoc.createElement(FILE);
244 fileTag.setTextContent(sampleFile);
245
246 Element lineTag = newDoc.createElement(LINE);
247 lineTag.setTextContent(sampleLine);
248
249 Element sampleCountTag = newDoc.createElement(COUNT);
250 sampleCountTag.setTextContent(count);
251
252 sampleTag.appendChild(fileTag);
253 sampleTag.appendChild(lineTag);
254 sampleTag.appendChild(sampleCountTag);
255
256 tmp.put(sampleLine, sampleTag);
257 }
258 }
259
260 // add the elements to the sorter
261 for (Element elem : tmp.values()) {
262 sorted.add(elem);
263 }
264
265 // append the elements in sorted order
266 for (Element e : sorted) {
267 newSymbol.appendChild(e);
268 }
269
270 newSymbolsTag.appendChild(newSymbol);
271 }
272
273 newImg.appendChild(newSymbolsTag);
274 // If this is a module, attach it to the dependent tag
275 if (oldImg.getTagName().equals(MODULE)) {
276 dependentTag.appendChild(newImg);
277 int currVal = Integer.parseInt(dependentTag.getAttribute(COUNT));
278 int val = Integer.parseInt(newImg.getAttribute(COUNT));
279 dependentTag.setAttribute(COUNT, String.valueOf(currVal + val));
280 } else {
281 newRoot.appendChild(newImg);
282 }
283 }
284
285 if (oldModuleList.getLength() > 0) {
286 newImage.appendChild(dependentTag);
287 }
288
289 }
290
291 /**
292 *
293 * @param oldDetailTableList the list of 'symboldetails' tags within detailtable
294 * @return a HashMap where the key is a function id and the value is a NodeList
295 * containing a list of the 'detaildata' tags that contain sample
296 * information.
297 */
298 private HashMap<String, NodeList> parseDetailTable(NodeList oldDetailTableList) {
299 HashMap<String, NodeList> ret = new HashMap<>();
300 for (int i = 0; i < oldDetailTableList.getLength(); i++) {
301 Element symbolDetails = (Element) oldDetailTableList.item(i);
302 String id = symbolDetails.getAttribute(ID);
303 NodeList detailDataList = symbolDetails.getElementsByTagName(DETAIL_DATA);
304 ret.put(id, detailDataList);
305 }
306 return ret;
307 }
308
309 /**
310 *
311 * @param oldSymbolDataList the list of 'symboldata' tags within symboltable
312 * @return a Hashmap where the key is a function id and the value is a HashMap
313 * with various parameters of data
314 */
315 private HashMap<String, HashMap<String, String>> parseDataList(NodeList oldSymbolDataList) {
316 HashMap<String, HashMap<String, String>> ret = new HashMap<>();
317 for (int j = 0; j < oldSymbolDataList.getLength(); j++) {
318 HashMap<String, String> tmp = new HashMap<>();
319 Element symbolData = (Element) oldSymbolDataList.item(j);
320 String id = symbolData.getAttribute(ID);
321 String name = symbolData.getAttribute(NAME);
322 String file = symbolData.getAttribute(FILE);
323 if (file.equals("")) { //$NON-NLS-1$
324 file = "??"; //$NON-NLS-1$
325 }
326 String line = symbolData.getAttribute(LINE);
327 if (line.equals("")) { //$NON-NLS-1$
328 line = "0"; //$NON-NLS-1$
329 }
330 tmp.put(NAME, name);
331 tmp.put(FILE, file);
332 tmp.put(LINE, line);
333 ret.put(id, tmp);
334 }
335 return ret;
336 }
337
338 @Override
339 public Document getDocument() {
340 return newDoc;
341 }
342
343 /**
344 * Helper class to sort the samples of a given symbol in descending order from
345 * largest to smallest
346 */
347 private static final Comparator<Element> SAMPLE_COUNT_ORDER = new Comparator<Element>() {
348 @Override
349 public int compare(Element a, Element b) {
350 // sort from largest to smallest count in descending order
351 // items with the same count are sorted by line number from smallest
352 // to largest in descending order
353 Element a_countTag = (Element) a.getElementsByTagName(COUNT).item(0);
354 Element b_countTag = (Element) b.getElementsByTagName(COUNT).item(0);
355 Element a_LineTag = (Element) a.getElementsByTagName(LINE).item(0);
356 Element b_LineTag = (Element) b.getElementsByTagName(LINE).item(0);
357
358 Integer a_count = Integer.parseInt(a_countTag.getTextContent().trim());
359 Integer b_count = Integer.parseInt(b_countTag.getTextContent().trim());
360 Integer a_line = Integer.parseInt(a_LineTag.getTextContent().trim());
361 Integer b_line = Integer.parseInt(b_LineTag.getTextContent().trim());
362
363 if (a_count.compareTo(b_count) == 0) {
364 return a_line.compareTo(b_line);
365 }
366 return -a_count.compareTo(b_count);
367 }
368 };
369
370 /**
371 * Returns if parseable
372 *
373 * @return isParseable boolean variable
374 */
375 public boolean isParseable() {
376 return isParseable;
377 }
378
379 }
+0
-98
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/modeldata/ModelDataProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
17 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
19 import org.xml.sax.Attributes;
20
21 /**
22 * A processor for `opxml samples`.
23 */
24 public class ModelDataProcessor extends XMLProcessor {
25 // The resulting image compiled by the processor to be used by the caller.
26 public static class CallData {
27 public OpModelImage opModelImage;
28
29 public CallData(OpModelImage im) {
30 opModelImage = im;
31 }
32 }
33
34 // XML tags parsed by this processor
35 private static final String IMAGE_TAG = "image"; //$NON-NLS-1$
36 private static final String SYMBOLS_TAG = "symbols"; //$NON-NLS-1$
37 private static final String DEPENDENT_TAG = "dependent"; //$NON-NLS-1$
38
39 // attribute tags
40 private static final String ATTR_IMAGENAME = "name"; //$NON-NLS-1$
41 private static final String ATTR_COUNT = "count"; //$NON-NLS-1$
42 private static final String ATTR_DEPCOUNT = "count"; //$NON-NLS-1$
43
44 // the current image being constructed
45 private OpModelImage image;
46 private int imgSeen; // for ensuring image singleton-ness
47
48 // processors used for symbols and dependent images
49 private SymbolsProcessor _symbolsProcessor = new SymbolsProcessor();
50 private DependentProcessor _dependentProcessor = new DependentProcessor();
51
52 @Override
53 public void reset(Object callData) {
54 image = ((CallData) callData).opModelImage;
55 imgSeen = 0;
56 }
57
58 @Override
59 public void startElement(String name, Attributes attrs, Object callData) {
60 if (name.equals(IMAGE_TAG)) {
61 if (imgSeen == 0) {
62 image.setName(validString(attrs.getValue(ATTR_IMAGENAME)));
63 image.setCount(Integer.parseInt(attrs.getValue(ATTR_COUNT)));
64 }
65
66 imgSeen++;
67 } else if (name.equals(SYMBOLS_TAG)) {
68 OprofileSAXHandler.getInstance(callData).push(_symbolsProcessor);
69 } else if (name.equals(DEPENDENT_TAG)) {
70 image.setDepCount(Integer.parseInt(attrs.getValue(ATTR_DEPCOUNT)));
71 OprofileSAXHandler.getInstance(callData).push(_dependentProcessor);
72 } else {
73 super.startElement(name, attrs, callData);
74 }
75 }
76
77 @Override
78 public void endElement(String name, Object callData) {
79 if (name.equals(IMAGE_TAG)) {
80 if (imgSeen > 1) {
81 // should only ever be one image, otherwise oprofile was run
82 // outside of eclipse and the ui would not handle it properly
83 image.setCount(OpModelImage.IMAGE_PARSE_ERROR);
84 image.setDepCount(0);
85 image.setDependents(null);
86 image.setSymbols(null);
87 image.setName(""); //$NON-NLS-1$
88 }
89 } else if (name.equals(SYMBOLS_TAG)) {
90 image.setSymbols(_symbolsProcessor.getSymbols());
91 } else if (name.equals(DEPENDENT_TAG)) {
92 image.setDependents(_dependentProcessor.getImages());
93 } else {
94 super.endElement(name, callData);
95 }
96 }
97 }
+0
-71
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/modeldata/SamplesProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 * - Note: the original SamplesProcessor class was removed, this is a new
12 * implementation
13 *******************************************************************************/
14 package org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata;
15
16 import java.util.ArrayList;
17
18 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSample;
19 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
20 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
21
22 /**
23 * XML handler class for <sample> tags (individual samples).
24 */
25 public class SamplesProcessor extends XMLProcessor {
26 // XML tags parsed by this processor
27 private static final String SAMPLE_TAG = "sample"; //$NON-NLS-1$
28 private static final String COUNT_TAG = "count"; //$NON-NLS-1$
29 private static final String LINE_TAG = "line"; //$NON-NLS-1$
30 private static final String SYMBOL_TAG = "symbol"; //$NON-NLS-1$
31 private static final String FILE_TAG = "file"; //$NON-NLS-1$
32
33 // the current sample being constructed
34 private OpModelSample sample;
35 // a list of all samples (for this symbol)
36 private ArrayList<OpModelSample> sampleList;
37
38 @Override
39 public void reset(Object callData) {
40 sample = new OpModelSample();
41 sampleList = new ArrayList<>();
42 }
43
44 @Override
45 public void endElement(String name, Object callData) {
46 if (name.equals(COUNT_TAG)) {
47 sample.setCount(Integer.parseInt(characters));
48 } else if (name.equals(LINE_TAG)) {
49 sample.setLine(Integer.parseInt(characters));
50 } else if (name.equals(FILE_TAG)) {
51 sample.setFilePath(characters);
52 } else if (name.equals(SAMPLE_TAG)) {
53 sampleList.add(sample);
54 sample = new OpModelSample();
55 } else if (name.equals(SYMBOL_TAG)) {
56 OprofileSAXHandler.getInstance(callData).pop(SYMBOL_TAG);
57 }
58 }
59
60 /**
61 * Return oprofile samples
62 *
63 * @return samples An array of oprofile samples
64 */
65 public OpModelSample[] getSamples() {
66 OpModelSample[] samples = new OpModelSample[sampleList.size()];
67 sampleList.toArray(samples);
68 return samples;
69 }
70 }
+0
-89
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/modeldata/SymbolsProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata;
13
14 import java.util.ArrayList;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSymbol;
17 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
19 import org.xml.sax.Attributes;
20
21 /**
22 * A processor for the <symbols> tag from `opxml samples ..`
23 */
24 public class SymbolsProcessor extends XMLProcessor {
25 // XML tags parsed by this processor
26 private static final String SYMBOLS_TAG = "symbols"; //$NON-NLS-1$
27 private static final String SYMBOL_TAG = "symbol"; //$NON-NLS-1$
28 private static final String SAMPLE_TAG = "sample"; //$NON-NLS-1$
29
30 // attribute tags
31 private static final String ATTR_NAME = "name"; //$NON-NLS-1$
32 private static final String ATTR_FILE = "file"; //$NON-NLS-1$
33 private static final String ATTR_COUNT = "count"; //$NON-NLS-1$
34 private static final String ATTR_LINE = "line"; //$NON-NLS-1$
35
36 /**
37 * The current symbol being constructed
38 */
39 private OpModelSymbol symbol;
40 // all the symbols in this <symbols> tag, to be returned to the calling
41 // ModelDataProcessor
42 private ArrayList<OpModelSymbol> symbols;
43
44 /**
45 * The processor used for individual samples
46 */
47 private SamplesProcessor samplesProcessor = new SamplesProcessor();
48
49 @Override
50 public void reset(Object callData) {
51 symbol = new OpModelSymbol();
52 symbols = new ArrayList<>();
53 }
54
55 @Override
56 public void startElement(String name, Attributes attrs, Object callData) {
57 if (name.equals(SYMBOL_TAG)) {
58 symbol.setName(validString(attrs.getValue(ATTR_NAME)));
59 symbol.setCount(Integer.parseInt(attrs.getValue(ATTR_COUNT)));
60 symbol.setFilePath(validString(attrs.getValue(ATTR_FILE)));
61 symbol.setLine(Integer.parseInt(attrs.getValue(ATTR_LINE)));
62 } else if (name.equals(SAMPLE_TAG)) {
63 OprofileSAXHandler.getInstance(callData).push(samplesProcessor);
64 }
65 }
66
67 @Override
68 public void endElement(String name, Object callData) {
69 if (name.equals(SYMBOL_TAG)) {
70 symbol.setSamples(samplesProcessor.getSamples());
71 symbols.add(symbol);
72 symbol = new OpModelSymbol();
73 } else if (name.equals(SYMBOLS_TAG)) {
74 OprofileSAXHandler.getInstance(callData).pop(SYMBOLS_TAG);
75 }
76 }
77
78 /**
79 * Return all parsed samples
80 *
81 * @return s the parsed symbols
82 */
83 public OpModelSymbol[] getSymbols() {
84 OpModelSymbol[] s = new OpModelSymbol[symbols.size()];
85 symbols.toArray(s);
86 return s;
87 }
88 }
+0
-301
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/sessions/SessionManager.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions;
13
14 import java.io.File;
15 import java.io.FileInputStream;
16 import java.io.FileNotFoundException;
17 import java.io.IOException;
18 import java.io.InputStream;
19 import java.util.ArrayList;
20
21 import javax.xml.parsers.DocumentBuilder;
22 import javax.xml.parsers.DocumentBuilderFactory;
23 import javax.xml.parsers.ParserConfigurationException;
24 import javax.xml.transform.Result;
25 import javax.xml.transform.Source;
26 import javax.xml.transform.Transformer;
27 import javax.xml.transform.TransformerException;
28 import javax.xml.transform.TransformerFactory;
29 import javax.xml.transform.dom.DOMSource;
30 import javax.xml.transform.stream.StreamResult;
31
32 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
33 import org.w3c.dom.Document;
34 import org.w3c.dom.Element;
35 import org.w3c.dom.NodeList;
36 import org.xml.sax.SAXException;
37
38 /**
39 * This class manipulates the XML data output from the command 'opxml sessions'
40 */
41 public class SessionManager {
42 public final static String PLUGIN_LOC = OprofileCorePlugin.getDefault().getStateLocation().toOSString();
43 public final static String SESSIONS = "sessions"; //$NON-NLS-1$
44 public final static String EVENT = "event"; //$NON-NLS-1$
45 public final static String SESSION = "session"; //$NON-NLS-1$
46 public final static String NAME = "name"; //$NON-NLS-1$
47 public final static String CURRENT = "current"; //$NON-NLS-1$
48 public final static String OPXML_PREFIX = PLUGIN_LOC + "/opxml_"; //$NON-NLS-1$
49 public final static String SESSION_LOCATION = OPXML_PREFIX + SESSIONS;
50 public final static String MODEL_DATA = "model-data"; //$NON-NLS-1$
51
52 public Document doc;
53 public Element root;
54 public String absfilePath;
55
56 public SessionManager(String filePath) {
57 this(new File(filePath));
58 absfilePath = filePath;
59 write();
60 }
61
62 /**
63 * Session manager class constructor to manipulate the XML data
64 *
65 * @param file the xml file
66 */
67 public SessionManager(File file) {
68 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
69 DocumentBuilder builder;
70 try {
71 builder = factory.newDocumentBuilder();
72 if (!file.exists()) {
73 file.createNewFile();
74 doc = builder.newDocument();
75 root = doc.createElement(SESSIONS);
76 doc.appendChild(root);
77 } else {
78 InputStream is = new FileInputStream(file);
79 doc = builder.parse(is);
80 Element elem = (Element) doc.getElementsByTagName(SESSIONS).item(0);
81 root = elem;
82 }
83 } catch (ParserConfigurationException | SAXException | IOException e) {
84 e.printStackTrace();
85 }
86 }
87
88 /**
89 * Add a session to the specified event element if it does not exist.
90 *
91 * @param sessionName the name of the session
92 * @param eventName the name of the event
93 */
94 public void addSession(String sessionName, String eventName) {
95 Element event = null;
96 Element session = find(root, SESSION, NAME, sessionName);
97 if (session == null) {
98 session = doc.createElement(SESSION);
99 session.setAttribute(NAME, sessionName);
100 root.appendChild(session);
101 } else {
102 event = find(session, EVENT, NAME, eventName);
103 }
104
105 if (event == null) {
106 event = doc.createElement(EVENT);
107 event.setAttribute(NAME, eventName);
108 session.appendChild(event);
109 }
110 }
111
112 /**
113 * Check if a session exists
114 *
115 * @param sessionName the name of the session
116 * @return true if the session exists, otherwise false
117 */
118 public boolean existsSession(String sessionName) {
119 return find(root, SESSION, NAME, sessionName) != null ? true : false;
120 }
121
122 /**
123 * Find an element in the XML
124 *
125 * @param elem the element to look under
126 * @param tagName the name of the tag
127 * @param attName the name of the attribute
128 * @param attVal the name of the attribute value
129 * @return the element that matches the search, or null if none is found.
130 */
131 private Element find(Element elem, String tagName, String attName, String attVal) {
132 NodeList list = elem.getElementsByTagName(tagName);
133 for (int i = 0; i < list.getLength(); i++) {
134 if (list.item(i) instanceof Element) {
135 Element e = (Element) list.item(i);
136 if (e.getAttribute(attName).equals(attVal)) {
137 return e;
138 }
139 }
140 }
141 return null;
142 }
143
144 /**
145 * Remove all sessions under any event that have the name 'current'
146 */
147 public void removeAllCurrentSessions() {
148 NodeList sessionList = root.getElementsByTagName(SESSION);
149 for (int i = 0; i < sessionList.getLength(); i++) {
150 Element session = (Element) sessionList.item(i);
151 String sessionName = session.getAttribute(NAME);
152 if (CURRENT.equals(sessionName)) {
153 NodeList eventList = session.getElementsByTagName(EVENT);
154 for (int j = 0; j < eventList.getLength(); j++) {
155 Element event = (Element) eventList.item(j);
156 String eventName = event.getAttribute(NAME);
157 session.removeChild(event);
158 File file = new File(SessionManager.OPXML_PREFIX + SessionManager.MODEL_DATA + eventName
159 + SessionManager.CURRENT);
160 file.delete();
161 if (sessionList.getLength() == 0) {
162 root.removeChild(session);
163 }
164 }
165 }
166 }
167 }
168
169 /**
170 * Remove a session named sessionName that is under eventName if it exists.
171 *
172 * @param sessionName
173 * @param eventName
174 */
175 public void removeSession(String sessionName, String eventName) {
176 NodeList list = root.getElementsByTagName(SESSION);
177 for (int i = 0; i < list.getLength(); i++) {
178
179 if (list.item(i) instanceof Element) {
180 Element session = (Element) list.item(i);
181 if (session.getAttribute(NAME).equals(sessionName)) {
182 Element event = find((Element) list.item(i), EVENT, NAME, eventName);
183 if (event != null) {
184 removeSessionHelper(sessionName, event);
185 }
186 }
187 }
188 }
189 }
190
191 /**
192 * remove event elem for given session sessionName , also remove session if
193 * there is no event under it.
194 *
195 * @param sessionName
196 * @param elem
197 *
198 */
199 private void removeSessionHelper(String sessionName, Element elem) {
200 NodeList list = root.getElementsByTagName(SESSION);
201 for (int i = 0; i < list.getLength(); i++) {
202 if (list.item(i) instanceof Element) {
203 Element e = (Element) list.item(i);
204 if (e.getAttribute(NAME).equals(sessionName)) {
205 NodeList events = e.getElementsByTagName(EVENT);
206 for (int j = 0; j < events.getLength(); j++) {
207 Element event = (Element) events.item(j);
208 if (event.getAttribute(NAME).equals(elem.getAttribute(NAME))) {
209 e.removeChild(event);
210 }
211 if (events.getLength() == 0) {
212 root.removeChild(e);
213 }
214 }
215 }
216 }
217 }
218 }
219
220 /**
221 * Return a list of the events run with the given session
222 *
223 * @param sessionName the name of the session
224 * @return A String ArrayList of event names that were run with the given
225 * session.
226 */
227 public ArrayList<String> getSessionEvents(String sessionName) {
228 ArrayList<String> ret = new ArrayList<>();
229 NodeList eventList = root.getElementsByTagName(SESSION);
230
231 for (int i = 0; i < eventList.getLength(); i++) {
232 if (eventList.item(i) instanceof Element) {
233 Element event = ((Element) eventList.item(i));
234 if (event.getAttribute(NAME).equals(sessionName)) {
235
236 NodeList sessionList = event.getElementsByTagName(EVENT);
237 for (int j = 0; j < sessionList.getLength(); j++) {
238 if (sessionList.item(j) instanceof Element) {
239 Element session = ((Element) sessionList.item(j));
240 ret.add(session.getAttribute(NAME));
241 }
242 }
243 }
244 }
245 }
246 return ret;
247 }
248
249 /**
250 * Write back to the same file, that the data was loaded from.
251 */
252 public void write() {
253 writeToFile(absfilePath);
254 }
255
256 /**
257 * Write the contents of the given Document to a file.
258 */
259 private void writeToFile(String filePath) {
260 Source source = new DOMSource(doc);
261 Result result = new StreamResult(new File(filePath));
262 TransformerFactory factory = TransformerFactory.newInstance();
263 Transformer xformer;
264 try {
265 xformer = factory.newTransformer();
266 xformer.transform(source, result);
267 } catch (TransformerException e) {
268 e.printStackTrace();
269 }
270 }
271
272 public static void saveSession(String name) {
273 SessionManager sessMan;
274 try {
275 sessMan = new SessionManager(SessionManager.SESSION_LOCATION);
276 for (String event : sessMan.getSessionEvents(SessionManager.CURRENT)) {
277 sessMan.addSession(name, event);
278 String oldFile = SessionManager.OPXML_PREFIX + SessionManager.MODEL_DATA + event
279 + SessionManager.CURRENT;
280 String newFile = SessionManager.OPXML_PREFIX + SessionManager.MODEL_DATA + event + name;
281 Process p = Runtime.getRuntime().exec("cp " + oldFile + " " + newFile); //$NON-NLS-1$ //$NON-NLS-2$
282 p.waitFor();
283 }
284 sessMan.write();
285 } catch (FileNotFoundException e) {
286 // intentionally blank
287 // during a save, the session file will exist
288 } catch (IOException | InterruptedException e) {
289 e.printStackTrace();
290 }
291 }
292
293 public static void deleteSession(String sessionName, String eventName) {
294 File file = new File(SessionManager.OPXML_PREFIX + SessionManager.MODEL_DATA + eventName + sessionName);
295 file.delete();
296 SessionManager sessMan = new SessionManager(SessionManager.SESSION_LOCATION);
297 sessMan.removeSession(sessionName, eventName);
298 sessMan.write();
299 }
300 }
+0
-95
oprofile/org.eclipse.linuxtools.oprofile.core/src/org/eclipse/linuxtools/internal/oprofile/core/opxml/sessions/SessionsProcessor.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions;
13
14 import java.util.ArrayList;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
17 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
18 import org.eclipse.linuxtools.internal.oprofile.core.opxml.XMLProcessor;
19 import org.xml.sax.Attributes;
20
21 /**
22 * A processor for sessions.
23 *
24 * @see org.eclipse.linuxtools.internal.oprofile.core.opxml.OpxmlRunner
25 */
26 public class SessionsProcessor extends XMLProcessor {
27 public static class SessionInfo {
28 /**
29 * A list of Session as well as Events under each of them
30 */
31 public ArrayList<OpModelSession> list;
32
33 public SessionInfo(ArrayList<OpModelSession> session) {
34 this.list = session;
35 }
36 }
37
38 // XML tags recognized by this processor
39 public static final String SESSION_TAG = "session"; //$NON-NLS-1$
40 private static final String SESSION_NAME_ATTR = "name"; //$NON-NLS-1$
41 public static final String SAMPLE_COUNT_TAG = "count"; //$NON-NLS-1$
42 public static final String EVENT_TAG = "event"; //$NON-NLS-1$
43 private static final String EVENT_NAME_ATTR = "name"; //$NON-NLS-1$
44
45 /**
46 * The current session being constructed
47 */
48 private OpModelSession currentSession;
49
50 /**
51 * The current event being constructed
52 */
53 private OpModelEvent currentEvent;
54
55 /**
56 * A list of all sessions
57 */
58 private ArrayList<OpModelEvent> eventList;
59
60 @Override
61 public void startElement(String name, Attributes attrs, Object callData) {
62 if (name.equals(SESSION_TAG)) {
63 String sessionName = validString(attrs.getValue(SESSION_NAME_ATTR));
64 currentSession = new OpModelSession(sessionName);
65 eventList = new ArrayList<>();
66 } else if (name.equals(EVENT_TAG)) {
67 String eventName = attrs.getValue(EVENT_NAME_ATTR);
68 currentEvent = new OpModelEvent(currentSession, eventName);
69 } else {
70 super.startElement(name, attrs, callData);
71 }
72 }
73
74 @Override
75 public void endElement(String name, Object callData) {
76 if (name.equals(SESSION_TAG)) {
77 // Got end of session -- save in session list
78 OpModelEvent[] s = new OpModelEvent[eventList.size()];
79 eventList.toArray(s);
80 currentSession.setEvents(s);
81 SessionInfo info = (SessionInfo) callData;
82 info.list.add(currentSession);
83 currentSession = null;
84 eventList = null;
85 } else if (name.equals(EVENT_TAG)) {
86 // Got end of event -- save session list into current OpModelEvent and
87 // save current event into call data
88 eventList.add(currentEvent);
89 currentEvent = null;
90 } else {
91 super.endElement(name, callData);
92 }
93 }
94 }
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.core.tests/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.core.tests/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-28
oprofile/org.eclipse.linuxtools.oprofile.core.tests/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.core.tests</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
+0
-99
oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
12 org.eclipse.jdt.core.compiler.debug.localVariable=generate
13 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
14 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
15 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
16 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
17 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
18 org.eclipse.jdt.core.compiler.problem.deadCode=warning
19 org.eclipse.jdt.core.compiler.problem.deprecation=warning
20 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
21 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
22 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
23 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
25 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
26 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
27 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
28 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
29 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
30 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
31 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
32 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
33 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
34 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
35 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
36 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
37 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
38 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
39 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
40 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
41 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
42 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
43 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
44 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
45 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
46 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
47 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
48 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
49 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
50 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
51 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
52 org.eclipse.jdt.core.compiler.problem.nullReference=warning
53 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
54 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
55 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
56 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
57 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
58 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
59 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
60 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
61 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
62 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
63 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=error
64 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
65 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
66 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
68 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
69 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
70 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
71 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
72 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
73 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
74 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
75 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
76 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
77 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
78 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
79 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
80 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
81 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
82 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
83 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
84 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
85 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
86 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
87 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
88 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
89 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
90 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
92 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
93 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
94 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
95 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
96 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
97 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.core.tests/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=false
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_to_enhanced_for_loop=false
16 sp_cleanup.correct_indentation=false
17 sp_cleanup.format_source_code=false
18 sp_cleanup.format_source_code_changes_only=false
19 sp_cleanup.make_local_variable_final=false
20 sp_cleanup.make_parameters_final=false
21 sp_cleanup.make_private_fields_final=true
22 sp_cleanup.make_type_abstract_if_missing_method=false
23 sp_cleanup.make_variable_declarations_final=false
24 sp_cleanup.never_use_blocks=false
25 sp_cleanup.never_use_parentheses_in_expressions=true
26 sp_cleanup.on_save_use_additional_actions=true
27 sp_cleanup.organize_imports=true
28 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
29 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
33 sp_cleanup.remove_private_constructors=true
34 sp_cleanup.remove_trailing_whitespaces=true
35 sp_cleanup.remove_trailing_whitespaces_all=true
36 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
37 sp_cleanup.remove_unnecessary_casts=false
38 sp_cleanup.remove_unnecessary_nls_tags=false
39 sp_cleanup.remove_unused_imports=false
40 sp_cleanup.remove_unused_local_variables=false
41 sp_cleanup.remove_unused_private_fields=true
42 sp_cleanup.remove_unused_private_members=false
43 sp_cleanup.remove_unused_private_methods=true
44 sp_cleanup.remove_unused_private_types=true
45 sp_cleanup.sort_members=false
46 sp_cleanup.sort_members_all=false
47 sp_cleanup.use_blocks=false
48 sp_cleanup.use_blocks_only_for_return_and_throw=false
49 sp_cleanup.use_parentheses_in_expressions=false
50 sp_cleanup.use_this_for_non_static_field_access=false
51 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
52 sp_cleanup.use_this_for_non_static_method_access=false
53 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+0
-13
oprofile/org.eclipse.linuxtools.oprofile.core.tests/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.core.tests
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Require-Bundle: org.junit;bundle-version="4.10.0"
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-ActivationPolicy: lazy
9 Fragment-Host: org.eclipse.linuxtools.oprofile.core
10 Import-Package: org.eclipse.linuxtools.oprofile.tests
11 Bundle-Localization: plugin
12 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.core.tests
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.core.tests/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-8
oprofile/org.eclipse.linuxtools.oprofile.core.tests/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 resources/,\
4 plugin.properties
5 src.includes = resources/,\
6 about.html
7 individualSourceBundles=true
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.core.tests/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2009, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Core Tests Plug-in
13 bundleProvider=Eclipse Linux Tools
+0
-44
oprofile/org.eclipse.linuxtools.oprofile.core.tests/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.core.tests</artifactId>
21 <version>1.0.0-SNAPSHOT</version>
22 <packaging>eclipse-test-plugin</packaging>
23
24 <name>Linux Tools OProfile Core Tests Plug-in</name>
25
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.eclipse.tycho</groupId>
30 <artifactId>tycho-surefire-plugin</artifactId>
31 <version>${tycho-version}</version>
32 <configuration>
33 <useUIHarness>true</useUIHarness>
34 <useUIThread>false</useUIThread>
35 <product>org.eclipse.platform.ide</product>
36 <testSuite>org.eclipse.linuxtools.oprofile.core.tests</testSuite>
37 <testClass>org.eclipse.linuxtools.oprofile.core.tests.AllCoreTests</testClass>
38 </configuration>
39 </plugin>
40 </plugins>
41 </build>
42
43 </project>
+0
-1
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/dev/oprofile/0/event less more
0 0
+0
-1
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/dev/oprofile/1/event less more
0 0
+0
-1
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/dev/oprofile/cpu_type less more
0 i386/arch_perfmon
+0
-4
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_counter.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <check-events>
2 <result>invalid-counter</result>
3 </check-events>
+0
-4
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_invalid_umask.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <check-events>
2 <result>invalid-um</result>
3 </check-events>
+0
-4
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_check-event_ok.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <check-events>
2 <result>ok</result>
3 </check-events>
+0
-140
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <info>
2 <num-counters>2</num-counters>
3 <cpu-frequency>800</cpu-frequency>
4 <defaults>
5 <sample-dir>/var/lib/oprofile/samples/</sample-dir>
6 <lock-file>/var/lib/oprofile/lock</lock-file>
7 <log-file>/var/lib/oprofile/samples/oprofiled.log</log-file>
8 <dump-status>/var/lib/oprofile/complete_dump</dump-status>
9 </defaults>
10 <timer-mode>true</timer-mode>
11 <event-list counter="0">
12 <event>
13 <name>CPU_CLK_UNHALTED</name>
14 <description>Clock cycles when not halted</description>
15 <value>60</value>
16 <minimum>6000</minimum>
17 <unit-mask>
18 <type>exclusive</type>
19 <default>0</default>
20 <mask>
21 <value>0</value>
22 <description>Unhalted core cycles</description>
23 </mask>
24 <mask>
25 <value>1</value>
26 <description>Unhalted bus cycles</description>
27 </mask>
28 <mask>
29 <value>2</value>
30 <description>Unhalted bus cycles of this core while the other core is halted</description>
31 </mask>
32 </unit-mask>
33 </event>
34 <event>
35 <name>INST_RETIRED_ANY_P</name>
36 <description>number of instructions retired</description>
37 <value>192</value>
38 <minimum>6000</minimum>
39 <unit-mask>
40 <type>mandatory</type>
41 <default>0</default>
42 <mask>
43 <value>0</value>
44 <description>No unit mask</description>
45 </mask>
46 </unit-mask>
47 </event>
48 <event>
49 <name>DTLB_MISSES</name>
50 <description>DTLB miss events</description>
51 <value>8</value>
52 <minimum>500</minimum>
53 <unit-mask>
54 <type>bitmask</type>
55 <default>15</default>
56 <mask>
57 <value>1</value>
58 <description>ANY Memory accesses that missed the DTLB.</description>
59 </mask>
60 <mask>
61 <value>2</value>
62 <description>MISS_LD DTLB misses due to load operations.</description>
63 </mask>
64 <mask>
65 <value>4</value>
66 <description>L0_MISS_LD L0 DTLB misses due to load operations.</description>
67 </mask>
68 <mask>
69 <value>8</value>
70 <description>MISS_ST TLB misses due to store operations.</description>
71 </mask>
72 </unit-mask>
73 </event>
74 </event-list>
75 <event-list counter="1">
76 <event>
77 <name>L2_M_LINES_IN</name>
78 <description>number of modified lines allocated in L2</description>
79 <value>37</value>
80 <minimum>500</minimum>
81 <unit-mask>
82 <type>exclusive</type>
83 <default>64</default>
84 <mask>
85 <value>192</value>
86 <description>All cores</description>
87 </mask>
88 <mask>
89 <value>64</value>
90 <description>This core</description>
91 </mask>
92 </unit-mask>
93 </event>
94 <event>
95 <name>L2_LINES_OUT</name>
96 <description>number of recovered lines from L2</description>
97 <value>38</value>
98 <minimum>500</minimum>
99 <unit-mask>
100 <type>bitmask</type>
101 <default>112</default>
102 <mask>
103 <value>192</value>
104 <description>core: all cores</description>
105 </mask>
106 <mask>
107 <value>64</value>
108 <description>core: this core</description>
109 </mask>
110 <mask>
111 <value>48</value>
112 <description>prefetch: all inclusive</description>
113 </mask>
114 <mask>
115 <value>16</value>
116 <description>prefetch: Hardware prefetch only</description>
117 </mask>
118 <mask>
119 <value>0</value>
120 <description>prefetch: exclude hardware prefetch</description>
121 </mask>
122 </unit-mask>
123 </event>
124 <event>
125 <name>EIST_TRANS_ALL</name>
126 <description>Intel(tm) Enhanced SpeedStep(r) Technology transitions</description>
127 <value>58</value>
128 <minimum>500</minimum>
129 <unit-mask>
130 <type>notavalidtype</type>
131 <default>1</default>
132 <mask>
133 <value>1</value>
134 <description>No unit mask</description>
135 </mask>
136 </unit-mask>
137 </event>
138 </event-list>
139 </info>
+0
-4
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_0ctrs.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <info>
2 <num-counters>error</num-counters>
3 </info>
+0
-5048
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_pre_parse_expected.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <info>
2 <num-counters>2</num-counters>
3 <cpu-frequency>1995</cpu-frequency>
4 <defaults>
5 <sample-dir>/var/lib/oprofile/samples/</sample-dir>
6 <lock-file>/var/lib/oprofile/lock</lock-file>
7 <log-file>/var/lib/oprofile/samples/oprofiled.log</log-file>
8 <dump-status>/var/lib/oprofile/complete_dump</dump-status>
9 </defaults>
10 <timer-mode>false</timer-mode>
11 <event-list counter="0">
12 <event>
13 <name>CPU_CLK_UNHALTED</name>
14 <description>Clock cycles when not halted</description>
15 <value>60</value>
16 <minimum>6000</minimum>
17 <unit-mask>
18 <type>exclusive</type>
19 <default>0</default>
20 <mask>
21 <value>0</value>
22 <description>Unhalted core cycles</description>
23 </mask>
24 <mask>
25 <value>1</value>
26 <description>Unhalted bus cycles</description>
27 </mask>
28 <mask>
29 <value>2</value>
30 <description>Unhalted bus cycles of this core while the other core is halted</description>
31 </mask>
32 </unit-mask>
33 </event>
34 <event>
35 <name>INST_RETIRED_ANY_P</name>
36 <description>number of instructions retired</description>
37 <value>192</value>
38 <minimum>6000</minimum>
39 <unit-mask>
40 <type>mandatory</type>
41 <default>0</default>
42 <mask>
43 <value>0</value>
44 <description>No unit mask</description>
45 </mask>
46 </unit-mask>
47 </event>
48 <event>
49 <name>L2_RQSTS</name>
50 <description>number of L2 cache requests</description>
51 <value>46</value>
52 <minimum>500</minimum>
53 <unit-mask>
54 <type>bitmask</type>
55 <default>127</default>
56 <mask>
57 <value>192</value>
58 <description>core: all cores</description>
59 </mask>
60 <mask>
61 <value>64</value>
62 <description>core: this core</description>
63 </mask>
64 <mask>
65 <value>48</value>
66 <description>prefetch: all inclusive</description>
67 </mask>
68 <mask>
69 <value>16</value>
70 <description>prefetch: Hardware prefetch only</description>
71 </mask>
72 <mask>
73 <value>0</value>
74 <description>prefetch: exclude hardware prefetch</description>
75 </mask>
76 <mask>
77 <value>8</value>
78 <description>(M)ESI: Modified</description>
79 </mask>
80 <mask>
81 <value>4</value>
82 <description>M(E)SI: Exclusive</description>
83 </mask>
84 <mask>
85 <value>2</value>
86 <description>ME(S)I: Shared</description>
87 </mask>
88 <mask>
89 <value>1</value>
90 <description>MES(I): Invalid</description>
91 </mask>
92 </unit-mask>
93 </event>
94 <event>
95 <name>LLC_MISSES</name>
96 <description>L2 cache demand requests from this core that missed the L2</description>
97 <value>46</value>
98 <minimum>6000</minimum>
99 <unit-mask>
100 <type>mandatory</type>
101 <default>65</default>
102 <mask>
103 <value>65</value>
104 <description>No unit mask</description>
105 </mask>
106 </unit-mask>
107 </event>
108 <event>
109 <name>LLC_REFS</name>
110 <description>L2 cache demand requests from this core</description>
111 <value>46</value>
112 <minimum>6000</minimum>
113 <unit-mask>
114 <type>mandatory</type>
115 <default>79</default>
116 <mask>
117 <value>79</value>
118 <description>No unit mask</description>
119 </mask>
120 </unit-mask>
121 </event>
122 <event>
123 <name>LOAD_BLOCK</name>
124 <description>events pertaining to loads</description>
125 <value>3</value>
126 <minimum>500</minimum>
127 <unit-mask>
128 <type>bitmask</type>
129 <default>62</default>
130 <mask>
131 <value>2</value>
132 <description>STA Loads blocked by a preceding store with unknown address.</description>
133 </mask>
134 <mask>
135 <value>4</value>
136 <description>STD Loads blocked by a preceding store with unknown data.</description>
137 </mask>
138 <mask>
139 <value>8</value>
140 <description>OVERLAP_STORE Loads that partially overlap an earlier store, or 4K aliased with a previous store.</description>
141 </mask>
142 <mask>
143 <value>16</value>
144 <description>UNTIL_RETIRE Loads blocked until retirement.</description>
145 </mask>
146 <mask>
147 <value>32</value>
148 <description>L1D Loads blocked by the L1 data cache.</description>
149 </mask>
150 </unit-mask>
151 </event>
152 <event>
153 <name>STORE_BLOCK</name>
154 <description>events pertaining to stores</description>
155 <value>4</value>
156 <minimum>500</minimum>
157 <unit-mask>
158 <type>bitmask</type>
159 <default>11</default>
160 <mask>
161 <value>1</value>
162 <description>SB_DRAIN_CYCLES Cycles while stores are blocked due to store buffer drain.</description>
163 </mask>
164 <mask>
165 <value>2</value>
166 <description>ORDER Cycles while store is waiting for a preceding store to be globally observed.</description>
167 </mask>
168 <mask>
169 <value>8</value>
170 <description>NOOP A store is blocked due to a conflict with an external or internal snoop.</description>
171 </mask>
172 </unit-mask>
173 </event>
174 <event>
175 <name>MISALIGN_MEM_REF</name>
176 <description>number of misaligned data memory references</description>
177 <value>5</value>
178 <minimum>500</minimum>
179 <unit-mask>
180 <type>mandatory</type>
181 <default>0</default>
182 <mask>
183 <value>0</value>
184 <description>No unit mask</description>
185 </mask>
186 </unit-mask>
187 </event>
188 <event>
189 <name>SEGMENT_REG_LOADS</name>
190 <description>number of segment register loads</description>
191 <value>6</value>
192 <minimum>500</minimum>
193 <unit-mask>
194 <type>mandatory</type>
195 <default>0</default>
196 <mask>
197 <value>0</value>
198 <description>No unit mask</description>
199 </mask>
200 </unit-mask>
201 </event>
202 <event>
203 <name>SSE_PRE_EXEC</name>
204 <description>number of SSE pre-fetch/weakly ordered insns retired</description>
205 <value>7</value>
206 <minimum>500</minimum>
207 <unit-mask>
208 <type>exclusive</type>
209 <default>0</default>
210 <mask>
211 <value>0</value>
212 <description>prefetch NTA instructions executed.</description>
213 </mask>
214 <mask>
215 <value>1</value>
216 <description>prefetch T1 instructions executed.</description>
217 </mask>
218 <mask>
219 <value>2</value>
220 <description>prefetch T1 and T2 instructions executed.</description>
221 </mask>
222 <mask>
223 <value>3</value>
224 <description>SSE weakly-ordered stores</description>
225 </mask>
226 </unit-mask>
227 </event>
228 <event>
229 <name>DTLB_MISSES</name>
230 <description>DTLB miss events</description>
231 <value>8</value>
232 <minimum>500</minimum>
233 <unit-mask>
234 <type>bitmask</type>
235 <default>15</default>
236 <mask>
237 <value>1</value>
238 <description>ANY Memory accesses that missed the DTLB.</description>
239 </mask>
240 <mask>
241 <value>2</value>
242 <description>MISS_LD DTLB misses due to load operations.</description>
243 </mask>
244 <mask>
245 <value>4</value>
246 <description>L0_MISS_LD L0 DTLB misses due to load operations.</description>
247 </mask>
248 <mask>
249 <value>8</value>
250 <description>MISS_ST TLB misses due to store operations.</description>
251 </mask>
252 </unit-mask>
253 </event>
254 <event>
255 <name>MEMORY_DISAMBIGUATION</name>
256 <description>Memory disambiguation reset cycles.</description>
257 <value>9</value>
258 <minimum>1000</minimum>
259 <unit-mask>
260 <type>exclusive</type>
261 <default>1</default>
262 <mask>
263 <value>1</value>
264 <description>RESET Memory disambiguation reset cycles.</description>
265 </mask>
266 <mask>
267 <value>2</value>
268 <description>SUCCESS Number of loads that were successfully disambiguated.</description>
269 </mask>
270 </unit-mask>
271 </event>
272 <event>
273 <name>PAGE_WALKS</name>
274 <description>Page table walk events</description>
275 <value>12</value>
276 <minimum>500</minimum>
277 <unit-mask>
278 <type>exclusive</type>
279 <default>2</default>
280 <mask>
281 <value>1</value>
282 <description>COUNT Number of page-walks executed.</description>
283 </mask>
284 <mask>
285 <value>2</value>
286 <description>CYCLES Duration of page-walks in core cycles.</description>
287 </mask>
288 </unit-mask>
289 </event>
290 <event>
291 <name>FLOPS</name>
292 <description>number of FP computational micro-ops executed</description>
293 <value>16</value>
294 <minimum>3000</minimum>
295 <unit-mask>
296 <type>mandatory</type>
297 <default>0</default>
298 <mask>
299 <value>0</value>
300 <description>No unit mask</description>
301 </mask>
302 </unit-mask>
303 </event>
304 <event>
305 <name>FP_ASSIST</name>
306 <description>number of FP assists</description>
307 <value>17</value>
308 <minimum>500</minimum>
309 <unit-mask>
310 <type>mandatory</type>
311 <default>0</default>
312 <mask>
313 <value>0</value>
314 <description>No unit mask</description>
315 </mask>
316 </unit-mask>
317 </event>
318 <event>
319 <name>MUL</name>
320 <description>number of multiplies</description>
321 <value>18</value>
322 <minimum>1000</minimum>
323 <unit-mask>
324 <type>mandatory</type>
325 <default>0</default>
326 <mask>
327 <value>0</value>
328 <description>No unit mask</description>
329 </mask>
330 </unit-mask>
331 </event>
332 <event>
333 <name>DIV</name>
334 <description>number of divides</description>
335 <value>19</value>
336 <minimum>500</minimum>
337 <unit-mask>
338 <type>mandatory</type>
339 <default>0</default>
340 <mask>
341 <value>0</value>
342 <description>No unit mask</description>
343 </mask>
344 </unit-mask>
345 </event>
346 <event>
347 <name>CYCLES_DIV_BUSY</name>
348 <description>cycles divider is busy</description>
349 <value>20</value>
350 <minimum>1000</minimum>
351 <unit-mask>
352 <type>mandatory</type>
353 <default>0</default>
354 <mask>
355 <value>0</value>
356 <description>No unit mask</description>
357 </mask>
358 </unit-mask>
359 </event>
360 <event>
361 <name>IDLE_DURING_DIV</name>
362 <description>cycles divider is busy and all other execution units are idle.</description>
363 <value>24</value>
364 <minimum>1000</minimum>
365 <unit-mask>
366 <type>mandatory</type>
367 <default>0</default>
368 <mask>
369 <value>0</value>
370 <description>No unit mask</description>
371 </mask>
372 </unit-mask>
373 </event>
374 <event>
375 <name>DELAYED_BYPASS</name>
376 <description>Delayed bypass events</description>
377 <value>25</value>
378 <minimum>1000</minimum>
379 <unit-mask>
380 <type>exclusive</type>
381 <default>0</default>
382 <mask>
383 <value>0</value>
384 <description>FP Delayed bypass to FP operation.</description>
385 </mask>
386 <mask>
387 <value>1</value>
388 <description>SIMD Delayed bypass to SIMD operation.</description>
389 </mask>
390 <mask>
391 <value>2</value>
392 <description>LOAD Delayed bypass to load operation.</description>
393 </mask>
394 </unit-mask>
395 </event>
396 <event>
397 <name>L2_ADS</name>
398 <description>Cycles the L2 address bus is in use.</description>
399 <value>33</value>
400 <minimum>500</minimum>
401 <unit-mask>
402 <type>exclusive</type>
403 <default>64</default>
404 <mask>
405 <value>192</value>
406 <description>All cores</description>
407 </mask>
408 <mask>
409 <value>64</value>
410 <description>This core</description>
411 </mask>
412 </unit-mask>
413 </event>
414 <event>
415 <name>L2_DBUS_BUSY_RD</name>
416 <description>Cycles the L2 transfers data to the core.</description>
417 <value>35</value>
418 <minimum>500</minimum>
419 <unit-mask>
420 <type>exclusive</type>
421 <default>64</default>
422 <mask>
423 <value>192</value>
424 <description>All cores</description>
425 </mask>
426 <mask>
427 <value>64</value>
428 <description>This core</description>
429 </mask>
430 </unit-mask>
431 </event>
432 <event>
433 <name>L2_LINES_IN</name>
434 <description>number of allocated lines in L2</description>
435 <value>36</value>
436 <minimum>500</minimum>
437 <unit-mask>
438 <type>bitmask</type>
439 <default>112</default>
440 <mask>
441 <value>192</value>
442 <description>core: all cores</description>
443 </mask>
444 <mask>
445 <value>64</value>
446 <description>core: this core</description>
447 </mask>
448 <mask>
449 <value>48</value>
450 <description>prefetch: all inclusive</description>
451 </mask>
452 <mask>
453 <value>16</value>
454 <description>prefetch: Hardware prefetch only</description>
455 </mask>
456 <mask>
457 <value>0</value>
458 <description>prefetch: exclude hardware prefetch</description>
459 </mask>
460 </unit-mask>
461 </event>
462 <event>
463 <name>L2_M_LINES_IN</name>
464 <description>number of modified lines allocated in L2</description>
465 <value>37</value>
466 <minimum>500</minimum>
467 <unit-mask>
468 <type>exclusive</type>
469 <default>64</default>
470 <mask>
471 <value>192</value>
472 <description>All cores</description>
473 </mask>
474 <mask>
475 <value>64</value>
476 <description>This core</description>
477 </mask>
478 </unit-mask>
479 </event>
480 <event>
481 <name>L2_LINES_OUT</name>
482 <description>number of recovered lines from L2</description>
483 <value>38</value>
484 <minimum>500</minimum>
485 <unit-mask>
486 <type>bitmask</type>
487 <default>112</default>
488 <mask>
489 <value>192</value>
490 <description>core: all cores</description>
491 </mask>
492 <mask>
493 <value>64</value>
494 <description>core: this core</description>
495 </mask>
496 <mask>
497 <value>48</value>
498 <description>prefetch: all inclusive</description>
499 </mask>
500 <mask>
501 <value>16</value>
502 <description>prefetch: Hardware prefetch only</description>
503 </mask>
504 <mask>
505 <value>0</value>
506 <description>prefetch: exclude hardware prefetch</description>
507 </mask>
508 </unit-mask>
509 </event>
510 <event>
511 <name>L2_M_LINES_OUT</name>
512 <description>number of modified lines removed from L2</description>
513 <value>39</value>
514 <minimum>500</minimum>
515 <unit-mask>
516 <type>bitmask</type>
517 <default>112</default>
518 <mask>
519 <value>192</value>
520 <description>core: all cores</description>
521 </mask>
522 <mask>
523 <value>64</value>
524 <description>core: this core</description>
525 </mask>
526 <mask>
527 <value>48</value>
528 <description>prefetch: all inclusive</description>
529 </mask>
530 <mask>
531 <value>16</value>
532 <description>prefetch: Hardware prefetch only</description>
533 </mask>
534 <mask>
535 <value>0</value>
536 <description>prefetch: exclude hardware prefetch</description>
537 </mask>
538 </unit-mask>
539 </event>
540 <event>
541 <name>L2_IFETCH</name>
542 <description>number of L2 cacheable instruction fetches</description>
543 <value>40</value>
544 <minimum>500</minimum>
545 <unit-mask>
546 <type>bitmask</type>
547 <default>79</default>
548 <mask>
549 <value>192</value>
550 <description>core: all cores</description>
551 </mask>
552 <mask>
553 <value>64</value>
554 <description>core: this core</description>
555 </mask>
556 <mask>
557 <value>8</value>
558 <description>(M)ESI: Modified</description>
559 </mask>
560 <mask>
561 <value>4</value>
562 <description>M(E)SI: Exclusive</description>
563 </mask>
564 <mask>
565 <value>2</value>
566 <description>ME(S)I: Shared</description>
567 </mask>
568 <mask>
569 <value>1</value>
570 <description>MES(I): Invalid</description>
571 </mask>
572 </unit-mask>
573 </event>
574 <event>
575 <name>L2_LD</name>
576 <description>number of L2 data loads</description>
577 <value>41</value>
578 <minimum>500</minimum>
579 <unit-mask>
580 <type>bitmask</type>
581 <default>127</default>
582 <mask>
583 <value>192</value>
584 <description>core: all cores</description>
585 </mask>
586 <mask>
587 <value>64</value>
588 <description>core: this core</description>
589 </mask>
590 <mask>
591 <value>48</value>
592 <description>prefetch: all inclusive</description>
593 </mask>
594 <mask>
595 <value>16</value>
596 <description>prefetch: Hardware prefetch only</description>
597 </mask>
598 <mask>
599 <value>0</value>
600 <description>prefetch: exclude hardware prefetch</description>
601 </mask>
602 <mask>
603 <value>8</value>
604 <description>(M)ESI: Modified</description>
605 </mask>
606 <mask>
607 <value>4</value>
608 <description>M(E)SI: Exclusive</description>
609 </mask>
610 <mask>
611 <value>2</value>
612 <description>ME(S)I: Shared</description>
613 </mask>
614 <mask>
615 <value>1</value>
616 <description>MES(I): Invalid</description>
617 </mask>
618 </unit-mask>
619 </event>
620 <event>
621 <name>L2_ST</name>
622 <description>number of L2 data stores</description>
623 <value>42</value>
624 <minimum>500</minimum>
625 <unit-mask>
626 <type>bitmask</type>
627 <default>79</default>
628 <mask>
629 <value>192</value>
630 <description>core: all cores</description>
631 </mask>
632 <mask>
633 <value>64</value>
634 <description>core: this core</description>
635 </mask>
636 <mask>
637 <value>8</value>
638 <description>(M)ESI: Modified</description>
639 </mask>
640 <mask>
641 <value>4</value>
642 <description>M(E)SI: Exclusive</description>
643 </mask>
644 <mask>
645 <value>2</value>
646 <description>ME(S)I: Shared</description>
647 </mask>
648 <mask>
649 <value>1</value>
650 <description>MES(I): Invalid</description>
651 </mask>
652 </unit-mask>
653 </event>
654 <event>
655 <name>L2_LOCK</name>
656 <description>number of locked L2 data accesses</description>
657 <value>43</value>
658 <minimum>500</minimum>
659 <unit-mask>
660 <type>bitmask</type>
661 <default>79</default>
662 <mask>
663 <value>192</value>
664 <description>core: all cores</description>
665 </mask>
666 <mask>
667 <value>64</value>
668 <description>core: this core</description>
669 </mask>
670 <mask>
671 <value>8</value>
672 <description>(M)ESI: Modified</description>
673 </mask>
674 <mask>
675 <value>4</value>
676 <description>M(E)SI: Exclusive</description>
677 </mask>
678 <mask>
679 <value>2</value>
680 <description>ME(S)I: Shared</description>
681 </mask>
682 <mask>
683 <value>1</value>
684 <description>MES(I): Invalid</description>
685 </mask>
686 </unit-mask>
687 </event>
688 <event>
689 <name>L2_REJECT_BUSQ</name>
690 <description>Rejected L2 cache requests</description>
691 <value>48</value>
692 <minimum>500</minimum>
693 <unit-mask>
694 <type>bitmask</type>
695 <default>127</default>
696 <mask>
697 <value>192</value>
698 <description>core: all cores</description>
699 </mask>
700 <mask>
701 <value>64</value>
702 <description>core: this core</description>
703 </mask>
704 <mask>
705 <value>48</value>
706 <description>prefetch: all inclusive</description>
707 </mask>
708 <mask>
709 <value>16</value>
710 <description>prefetch: Hardware prefetch only</description>
711 </mask>
712 <mask>
713 <value>0</value>
714 <description>prefetch: exclude hardware prefetch</description>
715 </mask>
716 <mask>
717 <value>8</value>
718 <description>(M)ESI: Modified</description>
719 </mask>
720 <mask>
721 <value>4</value>
722 <description>M(E)SI: Exclusive</description>
723 </mask>
724 <mask>
725 <value>2</value>
726 <description>ME(S)I: Shared</description>
727 </mask>
728 <mask>
729 <value>1</value>
730 <description>MES(I): Invalid</description>
731 </mask>
732 </unit-mask>
733 </event>
734 <event>
735 <name>L2_NO_REQ</name>
736 <description>Cycles no L2 cache requests are pending</description>
737 <value>50</value>
738 <minimum>500</minimum>
739 <unit-mask>
740 <type>exclusive</type>
741 <default>64</default>
742 <mask>
743 <value>192</value>
744 <description>All cores</description>
745 </mask>
746 <mask>
747 <value>64</value>
748 <description>This core</description>
749 </mask>
750 </unit-mask>
751 </event>
752 <event>
753 <name>EIST_TRANS_ALL</name>
754 <description>Intel(tm) Enhanced SpeedStep(r) Technology transitions</description>
755 <value>58</value>
756 <minimum>500</minimum>
757 <unit-mask>
758 <type>mandatory</type>
759 <default>0</default>
760 <mask>
761 <value>0</value>
762 <description>No unit mask</description>
763 </mask>
764 </unit-mask>
765 </event>
766 <event>
767 <name>THERMAL_TRIP</name>
768 <description>Number of thermal trips</description>
769 <value>59</value>
770 <minimum>500</minimum>
771 <unit-mask>
772 <type>mandatory</type>
773 <default>192</default>
774 <mask>
775 <value>192</value>
776 <description>No unit mask</description>
777 </mask>
778 </unit-mask>
779 </event>
780 <event>
781 <name>L1D_CACHE_LD</name>
782 <description>L1 cacheable data read operations</description>
783 <value>64</value>
784 <minimum>500</minimum>
785 <unit-mask>
786 <type>bitmask</type>
787 <default>15</default>
788 <mask>
789 <value>8</value>
790 <description>(M)ESI: Modified</description>
791 </mask>
792 <mask>
793 <value>4</value>
794 <description>M(E)SI: Exclusive</description>
795 </mask>
796 <mask>
797 <value>2</value>
798 <description>ME(S)I: Shared</description>
799 </mask>
800 <mask>
801 <value>1</value>
802 <description>MES(I): Invalid</description>
803 </mask>
804 </unit-mask>
805 </event>
806 <event>
807 <name>L1D_CACHE_ST</name>
808 <description>L1 cacheable data write operations</description>
809 <value>65</value>
810 <minimum>500</minimum>
811 <unit-mask>
812 <type>bitmask</type>
813 <default>15</default>
814 <mask>
815 <value>8</value>
816 <description>(M)ESI: Modified</description>
817 </mask>
818 <mask>
819 <value>4</value>
820 <description>M(E)SI: Exclusive</description>
821 </mask>
822 <mask>
823 <value>2</value>
824 <description>ME(S)I: Shared</description>
825 </mask>
826 <mask>
827 <value>1</value>
828 <description>MES(I): Invalid</description>
829 </mask>
830 </unit-mask>
831 </event>
832 <event>
833 <name>L1D_CACHE_LOCK</name>
834 <description>L1 cacheable lock read operations</description>
835 <value>66</value>
836 <minimum>500</minimum>
837 <unit-mask>
838 <type>bitmask</type>
839 <default>15</default>
840 <mask>
841 <value>8</value>
842 <description>(M)ESI: Modified</description>
843 </mask>
844 <mask>
845 <value>4</value>
846 <description>M(E)SI: Exclusive</description>
847 </mask>
848 <mask>
849 <value>2</value>
850 <description>ME(S)I: Shared</description>
851 </mask>
852 <mask>
853 <value>1</value>
854 <description>MES(I): Invalid</description>
855 </mask>
856 </unit-mask>
857 </event>
858 <event>
859 <name>L1D_CACHE_LOCK_DURATION</name>
860 <description>Duration of L1 data cacheable locked operations</description>
861 <value>66</value>
862 <minimum>500</minimum>
863 <unit-mask>
864 <type>mandatory</type>
865 <default>16</default>
866 <mask>
867 <value>16</value>
868 <description>No unit mask</description>
869 </mask>
870 </unit-mask>
871 </event>
872 <event>
873 <name>L1D_ALL_REF</name>
874 <description>All references to the L1 data cache</description>
875 <value>67</value>
876 <minimum>500</minimum>
877 <unit-mask>
878 <type>mandatory</type>
879 <default>16</default>
880 <mask>
881 <value>16</value>
882 <description>No unit mask</description>
883 </mask>
884 </unit-mask>
885 </event>
886 <event>
887 <name>L1D_ALL_CACHE_REF</name>
888 <description>L1 data cacheable reads and writes</description>
889 <value>67</value>
890 <minimum>500</minimum>
891 <unit-mask>
892 <type>mandatory</type>
893 <default>2</default>
894 <mask>
895 <value>2</value>
896 <description>No unit mask</description>
897 </mask>
898 </unit-mask>
899 </event>
900 <event>
901 <name>L1D_REPL</name>
902 <description>Cache lines allocated in the L1 data cache</description>
903 <value>69</value>
904 <minimum>500</minimum>
905 <unit-mask>
906 <type>mandatory</type>
907 <default>15</default>
908 <mask>
909 <value>15</value>
910 <description>No unit mask</description>
911 </mask>
912 </unit-mask>
913 </event>
914 <event>
915 <name>L1D_M_REPL</name>
916 <description>Modified cache lines allocated in the L1 data cache</description>
917 <value>70</value>
918 <minimum>500</minimum>
919 <unit-mask>
920 <type>mandatory</type>
921 <default>0</default>
922 <mask>
923 <value>0</value>
924 <description>No unit mask</description>
925 </mask>
926 </unit-mask>
927 </event>
928 <event>
929 <name>L1D_M_EVICT</name>
930 <description>Modified cache lines evicted from the L1 data cache</description>
931 <value>71</value>
932 <minimum>500</minimum>
933 <unit-mask>
934 <type>mandatory</type>
935 <default>0</default>
936 <mask>
937 <value>0</value>
938 <description>No unit mask</description>
939 </mask>
940 </unit-mask>
941 </event>
942 <event>
943 <name>L1D_PEND_MISS</name>
944 <description>Total number of outstanding L1 data cache misses at any cycle</description>
945 <value>72</value>
946 <minimum>500</minimum>
947 <unit-mask>
948 <type>mandatory</type>
949 <default>0</default>
950 <mask>
951 <value>0</value>
952 <description>No unit mask</description>
953 </mask>
954 </unit-mask>
955 </event>
956 <event>
957 <name>L1D_SPLIT</name>
958 <description>Cache line split load/stores</description>
959 <value>73</value>
960 <minimum>500</minimum>
961 <unit-mask>
962 <type>exclusive</type>
963 <default>1</default>
964 <mask>
965 <value>1</value>
966 <description>split loads</description>
967 </mask>
968 <mask>
969 <value>2</value>
970 <description>split stores</description>
971 </mask>
972 </unit-mask>
973 </event>
974 <event>
975 <name>SSE_PREF_MISS</name>
976 <description>SSE instructions that missed all caches</description>
977 <value>75</value>
978 <minimum>500</minimum>
979 <unit-mask>
980 <type>exclusive</type>
981 <default>0</default>
982 <mask>
983 <value>0</value>
984 <description>PREFETCHNTA</description>
985 </mask>
986 <mask>
987 <value>1</value>
988 <description>PREFETCHT0</description>
989 </mask>
990 <mask>
991 <value>2</value>
992 <description>PREFETCHT1/PREFETCHT2</description>
993 </mask>
994 </unit-mask>
995 </event>
996 <event>
997 <name>LOAD_HIT_PRE</name>
998 <description>Load operations conflicting with a software prefetch to the same address</description>
999 <value>76</value>
1000 <minimum>500</minimum>
1001 <unit-mask>
1002 <type>mandatory</type>
1003 <default>0</default>
1004 <mask>
1005 <value>0</value>
1006 <description>No unit mask</description>
1007 </mask>
1008 </unit-mask>
1009 </event>
1010 <event>
1011 <name>L1D_PREFETCH</name>
1012 <description>L1 data cache prefetch requests</description>
1013 <value>78</value>
1014 <minimum>500</minimum>
1015 <unit-mask>
1016 <type>mandatory</type>
1017 <default>16</default>
1018 <mask>
1019 <value>16</value>
1020 <description>No unit mask</description>
1021 </mask>
1022 </unit-mask>
1023 </event>
1024 <event>
1025 <name>BUS_REQ_OUTSTANDING</name>
1026 <description>Outstanding cacheable data read bus requests duration</description>
1027 <value>96</value>
1028 <minimum>500</minimum>
1029 <unit-mask>
1030 <type>bitmask</type>
1031 <default>64</default>
1032 <mask>
1033 <value>192</value>
1034 <description>core: all cores</description>
1035 </mask>
1036 <mask>
1037 <value>64</value>
1038 <description>core: this core</description>
1039 </mask>
1040 <mask>
1041 <value>0</value>
1042 <description>bus: this agent</description>
1043 </mask>
1044 <mask>
1045 <value>32</value>
1046 <description>bus: include all agents</description>
1047 </mask>
1048 </unit-mask>
1049 </event>
1050 <event>
1051 <name>BUS_BNR_DRV</name>
1052 <description>Number of Bus Not Ready signals asserted</description>
1053 <value>97</value>
1054 <minimum>500</minimum>
1055 <unit-mask>
1056 <type>exclusive</type>
1057 <default>0</default>
1058 <mask>
1059 <value>0</value>
1060 <description>this agent</description>
1061 </mask>
1062 <mask>
1063 <value>32</value>
1064 <description>include all agents</description>
1065 </mask>
1066 </unit-mask>
1067 </event>
1068 <event>
1069 <name>BUS_DRDY_CLOCKS</name>
1070 <description>Bus cycles when data is sent on the bus</description>
1071 <value>98</value>
1072 <minimum>500</minimum>
1073 <unit-mask>
1074 <type>exclusive</type>
1075 <default>0</default>
1076 <mask>
1077 <value>0</value>
1078 <description>this agent</description>
1079 </mask>
1080 <mask>
1081 <value>32</value>
1082 <description>include all agents</description>
1083 </mask>
1084 </unit-mask>
1085 </event>
1086 <event>
1087 <name>BUS_LOCK_CLOCKS</name>
1088 <description>Bus cycles when a LOCK signal is asserted</description>
1089 <value>99</value>
1090 <minimum>500</minimum>
1091 <unit-mask>
1092 <type>bitmask</type>
1093 <default>64</default>
1094 <mask>
1095 <value>192</value>
1096 <description>core: all cores</description>
1097 </mask>
1098 <mask>
1099 <value>64</value>
1100 <description>core: this core</description>
1101 </mask>
1102 <mask>
1103 <value>0</value>
1104 <description>bus: this agent</description>
1105 </mask>
1106 <mask>
1107 <value>32</value>
1108 <description>bus: include all agents</description>
1109 </mask>
1110 </unit-mask>
1111 </event>
1112 <event>
1113 <name>BUS_DATA_RCV</name>
1114 <description>Bus cycles while processor receives data</description>
1115 <value>100</value>
1116 <minimum>500</minimum>
1117 <unit-mask>
1118 <type>bitmask</type>
1119 <default>64</default>
1120 <mask>
1121 <value>192</value>
1122 <description>core: all cores</description>
1123 </mask>
1124 <mask>
1125 <value>64</value>
1126 <description>core: this core</description>
1127 </mask>
1128 <mask>
1129 <value>0</value>
1130 <description>bus: this agent</description>
1131 </mask>
1132 <mask>
1133 <value>32</value>
1134 <description>bus: include all agents</description>
1135 </mask>
1136 </unit-mask>
1137 </event>
1138 <event>
1139 <name>BUS_TRAN_BRD</name>
1140 <description>Burst read bus transactions</description>
1141 <value>101</value>
1142 <minimum>500</minimum>
1143 <unit-mask>
1144 <type>bitmask</type>
1145 <default>64</default>
1146 <mask>
1147 <value>192</value>
1148 <description>core: all cores</description>
1149 </mask>
1150 <mask>
1151 <value>64</value>
1152 <description>core: this core</description>
1153 </mask>
1154 <mask>
1155 <value>0</value>
1156 <description>bus: this agent</description>
1157 </mask>
1158 <mask>
1159 <value>32</value>
1160 <description>bus: include all agents</description>
1161 </mask>
1162 </unit-mask>
1163 </event>
1164 <event>
1165 <name>BUS_TRAN_RFO</name>
1166 <description>number of completed read for ownership transactions</description>
1167 <value>102</value>
1168 <minimum>500</minimum>
1169 <unit-mask>
1170 <type>bitmask</type>
1171 <default>64</default>
1172 <mask>
1173 <value>192</value>
1174 <description>core: all cores</description>
1175 </mask>
1176 <mask>
1177 <value>64</value>
1178 <description>core: this core</description>
1179 </mask>
1180 <mask>
1181 <value>0</value>
1182 <description>bus: this agent</description>
1183 </mask>
1184 <mask>
1185 <value>32</value>
1186 <description>bus: include all agents</description>
1187 </mask>
1188 </unit-mask>
1189 </event>
1190 <event>
1191 <name>BUS_TRAN_WB</name>
1192 <description>number of explicit writeback bus transactions</description>
1193 <value>103</value>
1194 <minimum>500</minimum>
1195 <unit-mask>
1196 <type>bitmask</type>
1197 <default>64</default>
1198 <mask>
1199 <value>192</value>
1200 <description>core: all cores</description>
1201 </mask>
1202 <mask>
1203 <value>64</value>
1204 <description>core: this core</description>
1205 </mask>
1206 <mask>
1207 <value>0</value>
1208 <description>bus: this agent</description>
1209 </mask>
1210 <mask>
1211 <value>32</value>
1212 <description>bus: include all agents</description>
1213 </mask>
1214 </unit-mask>
1215 </event>
1216 <event>
1217 <name>BUS_TRAN_IFETCH</name>
1218 <description>number of instruction fetch transactions</description>
1219 <value>104</value>
1220 <minimum>500</minimum>
1221 <unit-mask>
1222 <type>bitmask</type>
1223 <default>64</default>
1224 <mask>
1225 <value>192</value>
1226 <description>core: all cores</description>
1227 </mask>
1228 <mask>
1229 <value>64</value>
1230 <description>core: this core</description>
1231 </mask>
1232 <mask>
1233 <value>0</value>
1234 <description>bus: this agent</description>
1235 </mask>
1236 <mask>
1237 <value>32</value>
1238 <description>bus: include all agents</description>
1239 </mask>
1240 </unit-mask>
1241 </event>
1242 <event>
1243 <name>BUS_TRAN_INVAL</name>
1244 <description>number of invalidate transactions</description>
1245 <value>105</value>
1246 <minimum>500</minimum>
1247 <unit-mask>
1248 <type>bitmask</type>
1249 <default>64</default>
1250 <mask>
1251 <value>192</value>
1252 <description>core: all cores</description>
1253 </mask>
1254 <mask>
1255 <value>64</value>
1256 <description>core: this core</description>
1257 </mask>
1258 <mask>
1259 <value>0</value>
1260 <description>bus: this agent</description>
1261 </mask>
1262 <mask>
1263 <value>32</value>
1264 <description>bus: include all agents</description>
1265 </mask>
1266 </unit-mask>
1267 </event>
1268 <event>
1269 <name>BUS_TRAN_PWR</name>
1270 <description>number of partial write bus transactions</description>
1271 <value>106</value>
1272 <minimum>500</minimum>
1273 <unit-mask>
1274 <type>bitmask</type>
1275 <default>64</default>
1276 <mask>
1277 <value>192</value>
1278 <description>core: all cores</description>
1279 </mask>
1280 <mask>
1281 <value>64</value>
1282 <description>core: this core</description>
1283 </mask>
1284 <mask>
1285 <value>0</value>
1286 <description>bus: this agent</description>
1287 </mask>
1288 <mask>
1289 <value>32</value>
1290 <description>bus: include all agents</description>
1291 </mask>
1292 </unit-mask>
1293 </event>
1294 <event>
1295 <name>BUS_TRANS_P</name>
1296 <description>number of partial bus transactions</description>
1297 <value>107</value>
1298 <minimum>500</minimum>
1299 <unit-mask>
1300 <type>bitmask</type>
1301 <default>64</default>
1302 <mask>
1303 <value>192</value>
1304 <description>core: all cores</description>
1305 </mask>
1306 <mask>
1307 <value>64</value>
1308 <description>core: this core</description>
1309 </mask>
1310 <mask>
1311 <value>0</value>
1312 <description>bus: this agent</description>
1313 </mask>
1314 <mask>
1315 <value>32</value>
1316 <description>bus: include all agents</description>
1317 </mask>
1318 </unit-mask>
1319 </event>
1320 <event>
1321 <name>BUS_TRANS_IO</name>
1322 <description>number of I/O bus transactions</description>
1323 <value>108</value>
1324 <minimum>500</minimum>
1325 <unit-mask>
1326 <type>bitmask</type>
1327 <default>64</default>
1328 <mask>
1329 <value>192</value>
1330 <description>core: all cores</description>
1331 </mask>
1332 <mask>
1333 <value>64</value>
1334 <description>core: this core</description>
1335 </mask>
1336 <mask>
1337 <value>0</value>
1338 <description>bus: this agent</description>
1339 </mask>
1340 <mask>
1341 <value>32</value>
1342 <description>bus: include all agents</description>
1343 </mask>
1344 </unit-mask>
1345 </event>
1346 <event>
1347 <name>BUS_TRANS_DEF</name>
1348 <description>number of completed defer transactions</description>
1349 <value>109</value>
1350 <minimum>500</minimum>
1351 <unit-mask>
1352 <type>bitmask</type>
1353 <default>64</default>
1354 <mask>
1355 <value>192</value>
1356 <description>core: all cores</description>
1357 </mask>
1358 <mask>
1359 <value>64</value>
1360 <description>core: this core</description>
1361 </mask>
1362 <mask>
1363 <value>0</value>
1364 <description>bus: this agent</description>
1365 </mask>
1366 <mask>
1367 <value>32</value>
1368 <description>bus: include all agents</description>
1369 </mask>
1370 </unit-mask>
1371 </event>
1372 <event>
1373 <name>BUS_TRAN_BURST</name>
1374 <description>number of completed burst transactions</description>
1375 <value>110</value>
1376 <minimum>500</minimum>
1377 <unit-mask>
1378 <type>bitmask</type>
1379 <default>64</default>
1380 <mask>
1381 <value>192</value>
1382 <description>core: all cores</description>
1383 </mask>
1384 <mask>
1385 <value>64</value>
1386 <description>core: this core</description>
1387 </mask>
1388 <mask>
1389 <value>0</value>
1390 <description>bus: this agent</description>
1391 </mask>
1392 <mask>
1393 <value>32</value>
1394 <description>bus: include all agents</description>
1395 </mask>
1396 </unit-mask>
1397 </event>
1398 <event>
1399 <name>BUS_TRAN_MEM</name>
1400 <description>number of completed memory transactions</description>
1401 <value>111</value>
1402 <minimum>500</minimum>
1403 <unit-mask>
1404 <type>bitmask</type>
1405 <default>64</default>
1406 <mask>
1407 <value>192</value>
1408 <description>core: all cores</description>
1409 </mask>
1410 <mask>
1411 <value>64</value>
1412 <description>core: this core</description>
1413 </mask>
1414 <mask>
1415 <value>0</value>
1416 <description>bus: this agent</description>
1417 </mask>
1418 <mask>
1419 <value>32</value>
1420 <description>bus: include all agents</description>
1421 </mask>
1422 </unit-mask>
1423 </event>
1424 <event>
1425 <name>BUS_TRAN_ANY</name>
1426 <description>number of any completed bus transactions</description>
1427 <value>112</value>
1428 <minimum>500</minimum>
1429 <unit-mask>
1430 <type>bitmask</type>
1431 <default>64</default>
1432 <mask>
1433 <value>192</value>
1434 <description>core: all cores</description>
1435 </mask>
1436 <mask>
1437 <value>64</value>
1438 <description>core: this core</description>
1439 </mask>
1440 <mask>
1441 <value>0</value>
1442 <description>bus: this agent</description>
1443 </mask>
1444 <mask>
1445 <value>32</value>
1446 <description>bus: include all agents</description>
1447 </mask>
1448 </unit-mask>
1449 </event>
1450 <event>
1451 <name>EXT_SNOOP</name>
1452 <description>External snoops</description>
1453 <value>119</value>
1454 <minimum>500</minimum>
1455 <unit-mask>
1456 <type>bitmask</type>
1457 <default>11</default>
1458 <mask>
1459 <value>0</value>
1460 <description>bus: this agent</description>
1461 </mask>
1462 <mask>
1463 <value>32</value>
1464 <description>bus: include all agents</description>
1465 </mask>
1466 <mask>
1467 <value>8</value>
1468 <description>snoop: HITM snoops</description>
1469 </mask>
1470 <mask>
1471 <value>2</value>
1472 <description>snoop: HIT snoops</description>
1473 </mask>
1474 <mask>
1475 <value>1</value>
1476 <description>snoop: CLEAN snoops</description>
1477 </mask>
1478 </unit-mask>
1479 </event>
1480 <event>
1481 <name>CMP_SNOOP</name>
1482 <description>L1 data cache is snooped by other core</description>
1483 <value>120</value>
1484 <minimum>500</minimum>
1485 <unit-mask>
1486 <type>bitmask</type>
1487 <default>64</default>
1488 <mask>
1489 <value>192</value>
1490 <description>core: all cores</description>
1491 </mask>
1492 <mask>
1493 <value>64</value>
1494 <description>core: this core</description>
1495 </mask>
1496 <mask>
1497 <value>1</value>
1498 <description>snoop: CMP2I snoops</description>
1499 </mask>
1500 <mask>
1501 <value>2</value>
1502 <description>snoop: CMP2S snoops</description>
1503 </mask>
1504 </unit-mask>
1505 </event>
1506 <event>
1507 <name>BUS_HIT_DRV</name>
1508 <description>HIT signal asserted</description>
1509 <value>122</value>
1510 <minimum>500</minimum>
1511 <unit-mask>
1512 <type>exclusive</type>
1513 <default>0</default>
1514 <mask>
1515 <value>0</value>
1516 <description>this agent</description>
1517 </mask>
1518 <mask>
1519 <value>32</value>
1520 <description>include all agents</description>
1521 </mask>
1522 </unit-mask>
1523 </event>
1524 <event>
1525 <name>BUS_HITM_DRV</name>
1526 <description>HITM signal asserted</description>
1527 <value>123</value>
1528 <minimum>500</minimum>
1529 <unit-mask>
1530 <type>exclusive</type>
1531 <default>0</default>
1532 <mask>
1533 <value>0</value>
1534 <description>this agent</description>
1535 </mask>
1536 <mask>
1537 <value>32</value>
1538 <description>include all agents</description>
1539 </mask>
1540 </unit-mask>
1541 </event>
1542 <event>
1543 <name>BUSQ_EMPTY</name>
1544 <description>Bus queue is empty</description>
1545 <value>125</value>
1546 <minimum>500</minimum>
1547 <unit-mask>
1548 <type>exclusive</type>
1549 <default>64</default>
1550 <mask>
1551 <value>192</value>
1552 <description>All cores</description>
1553 </mask>
1554 <mask>
1555 <value>64</value>
1556 <description>This core</description>
1557 </mask>
1558 </unit-mask>
1559 </event>
1560 <event>
1561 <name>SNOOP_STALL_DRV</name>
1562 <description>Bus stalled for snoops</description>
1563 <value>126</value>
1564 <minimum>500</minimum>
1565 <unit-mask>
1566 <type>bitmask</type>
1567 <default>64</default>
1568 <mask>
1569 <value>192</value>
1570 <description>core: all cores</description>
1571 </mask>
1572 <mask>
1573 <value>64</value>
1574 <description>core: this core</description>
1575 </mask>
1576 <mask>
1577 <value>0</value>
1578 <description>bus: this agent</description>
1579 </mask>
1580 <mask>
1581 <value>32</value>
1582 <description>bus: include all agents</description>
1583 </mask>
1584 </unit-mask>
1585 </event>
1586 <event>
1587 <name>BUS_IO_WAIT</name>
1588 <description>IO requests waiting in the bus queue</description>
1589 <value>127</value>
1590 <minimum>500</minimum>
1591 <unit-mask>
1592 <type>exclusive</type>
1593 <default>64</default>
1594 <mask>
1595 <value>192</value>
1596 <description>All cores</description>
1597 </mask>
1598 <mask>
1599 <value>64</value>
1600 <description>This core</description>
1601 </mask>
1602 </unit-mask>
1603 </event>
1604 <event>
1605 <name>L1I_READS</name>
1606 <description>number of instruction fetches</description>
1607 <value>128</value>
1608 <minimum>500</minimum>
1609 <unit-mask>
1610 <type>mandatory</type>
1611 <default>0</default>
1612 <mask>
1613 <value>0</value>
1614 <description>No unit mask</description>
1615 </mask>
1616 </unit-mask>
1617 </event>
1618 <event>
1619 <name>L1I_MISSES</name>
1620 <description>number of instruction fetch misses</description>
1621 <value>129</value>
1622 <minimum>500</minimum>
1623 <unit-mask>
1624 <type>mandatory</type>
1625 <default>0</default>
1626 <mask>
1627 <value>0</value>
1628 <description>No unit mask</description>
1629 </mask>
1630 </unit-mask>
1631 </event>
1632 <event>
1633 <name>ITLB</name>
1634 <description>number of ITLB misses</description>
1635 <value>130</value>
1636 <minimum>500</minimum>
1637 <unit-mask>
1638 <type>bitmask</type>
1639 <default>18</default>
1640 <mask>
1641 <value>2</value>
1642 <description>ITLB small page misses</description>
1643 </mask>
1644 <mask>
1645 <value>16</value>
1646 <description>ITLB large page misses</description>
1647 </mask>
1648 <mask>
1649 <value>64</value>
1650 <description>ITLB flushes</description>
1651 </mask>
1652 </unit-mask>
1653 </event>
1654 <event>
1655 <name>INST_QUEUE_FULL</name>
1656 <description>cycles during which the instruction queue is full</description>
1657 <value>131</value>
1658 <minimum>500</minimum>
1659 <unit-mask>
1660 <type>mandatory</type>
1661 <default>2</default>
1662 <mask>
1663 <value>2</value>
1664 <description>No unit mask</description>
1665 </mask>
1666 </unit-mask>
1667 </event>
1668 <event>
1669 <name>IFU_MEM_STALL</name>
1670 <description>cycles instruction fetch pipe is stalled</description>
1671 <value>134</value>
1672 <minimum>500</minimum>
1673 <unit-mask>
1674 <type>mandatory</type>
1675 <default>0</default>
1676 <mask>
1677 <value>0</value>
1678 <description>No unit mask</description>
1679 </mask>
1680 </unit-mask>
1681 </event>
1682 <event>
1683 <name>ILD_STALL</name>
1684 <description>cycles instruction length decoder is stalled</description>
1685 <value>135</value>
1686 <minimum>500</minimum>
1687 <unit-mask>
1688 <type>mandatory</type>
1689 <default>0</default>
1690 <mask>
1691 <value>0</value>
1692 <description>No unit mask</description>
1693 </mask>
1694 </unit-mask>
1695 </event>
1696 <event>
1697 <name>BR_INST_EXEC</name>
1698 <description>Branch instructions executed (not necessarily retired)</description>
1699 <value>136</value>
1700 <minimum>3000</minimum>
1701 <unit-mask>
1702 <type>mandatory</type>
1703 <default>0</default>
1704 <mask>
1705 <value>0</value>
1706 <description>No unit mask</description>
1707 </mask>
1708 </unit-mask>
1709 </event>
1710 <event>
1711 <name>BR_MISSP_EXEC</name>
1712 <description>Branch instructions executed that were mispredicted at execution</description>
1713 <value>137</value>
1714 <minimum>3000</minimum>
1715 <unit-mask>
1716 <type>mandatory</type>
1717 <default>0</default>
1718 <mask>
1719 <value>0</value>
1720 <description>No unit mask</description>
1721 </mask>
1722 </unit-mask>
1723 </event>
1724 <event>
1725 <name>BR_BAC_MISSP_EXEC</name>
1726 <description>Branch instructions executed that were mispredicted at Front End (BAC)</description>
1727 <value>138</value>
1728 <minimum>3000</minimum>
1729 <unit-mask>
1730 <type>mandatory</type>
1731 <default>0</default>
1732 <mask>
1733 <value>0</value>
1734 <description>No unit mask</description>
1735 </mask>
1736 </unit-mask>
1737 </event>
1738 <event>
1739 <name>BR_CND_EXEC</name>
1740 <description>Conditional Branch instructions executed</description>
1741 <value>139</value>
1742 <minimum>3000</minimum>
1743 <unit-mask>
1744 <type>mandatory</type>
1745 <default>0</default>
1746 <mask>
1747 <value>0</value>
1748 <description>No unit mask</description>
1749 </mask>
1750 </unit-mask>
1751 </event>
1752 <event>
1753 <name>BR_CND_MISSP_EXEC</name>
1754 <description>Conditional Branch instructions executed that were mispredicted</description>
1755 <value>140</value>
1756 <minimum>3000</minimum>
1757 <unit-mask>
1758 <type>mandatory</type>
1759 <default>0</default>
1760 <mask>
1761 <value>0</value>
1762 <description>No unit mask</description>
1763 </mask>
1764 </unit-mask>
1765 </event>
1766 <event>
1767 <name>BR_IND_EXEC</name>
1768 <description>Indirect Branch instructions executed</description>
1769 <value>141</value>
1770 <minimum>3000</minimum>
1771 <unit-mask>
1772 <type>mandatory</type>
1773 <default>0</default>
1774 <mask>
1775 <value>0</value>
1776 <description>No unit mask</description>
1777 </mask>
1778 </unit-mask>
1779 </event>
1780 <event>
1781 <name>BR_IND_MISSP_EXEC</name>
1782 <description>Indirect Branch instructions executed that were mispredicted</description>
1783 <value>142</value>
1784 <minimum>3000</minimum>
1785 <unit-mask>
1786 <type>mandatory</type>
1787 <default>0</default>
1788 <mask>
1789 <value>0</value>
1790 <description>No unit mask</description>
1791 </mask>
1792 </unit-mask>
1793 </event>
1794 <event>
1795 <name>BR_RET_EXEC</name>
1796 <description>Return Branch instructions executed</description>
1797 <value>143</value>
1798 <minimum>3000</minimum>
1799 <unit-mask>
1800 <type>mandatory</type>
1801 <default>0</default>
1802 <mask>
1803 <value>0</value>
1804 <description>No unit mask</description>
1805 </mask>
1806 </unit-mask>
1807 </event>
1808 <event>
1809 <name>BR_RET_MISSP_EXEC</name>
1810 <description>Return Branch instructions executed that were mispredicted at Execution</description>
1811 <value>144</value>
1812 <minimum>3000</minimum>
1813 <unit-mask>
1814 <type>mandatory</type>
1815 <default>0</default>
1816 <mask>
1817 <value>0</value>
1818 <description>No unit mask</description>
1819 </mask>
1820 </unit-mask>
1821 </event>
1822 <event>
1823 <name>BR_RET_BAC_MISSP_EXEC</name>
1824 <description>Branch instructions executed that were mispredicted at Front End (BAC)</description>
1825 <value>145</value>
1826 <minimum>3000</minimum>
1827 <unit-mask>
1828 <type>mandatory</type>
1829 <default>0</default>
1830 <mask>
1831 <value>0</value>
1832 <description>No unit mask</description>
1833 </mask>
1834 </unit-mask>
1835 </event>
1836 <event>
1837 <name>BR_CALL_EXEC</name>
1838 <description>CALL instruction executed</description>
1839 <value>146</value>
1840 <minimum>3000</minimum>
1841 <unit-mask>
1842 <type>mandatory</type>
1843 <default>0</default>
1844 <mask>
1845 <value>0</value>
1846 <description>No unit mask</description>
1847 </mask>
1848 </unit-mask>
1849 </event>
1850 <event>
1851 <name>BR_CALL_MISSP_EXEC</name>
1852 <description>CALL instruction executed and miss predicted</description>
1853 <value>147</value>
1854 <minimum>3000</minimum>
1855 <unit-mask>
1856 <type>mandatory</type>
1857 <default>0</default>
1858 <mask>
1859 <value>0</value>
1860 <description>No unit mask</description>
1861 </mask>
1862 </unit-mask>
1863 </event>
1864 <event>
1865 <name>BR_IND_CALL_EXEC</name>
1866 <description>Indirect CALL instruction executed</description>
1867 <value>148</value>
1868 <minimum>3000</minimum>
1869 <unit-mask>
1870 <type>mandatory</type>
1871 <default>0</default>
1872 <mask>
1873 <value>0</value>
1874 <description>No unit mask</description>
1875 </mask>
1876 </unit-mask>
1877 </event>
1878 <event>
1879 <name>BR_TKN_BUBBLE_1</name>
1880 <description>Branch predicted taken with bubble 1</description>
1881 <value>151</value>
1882 <minimum>3000</minimum>
1883 <unit-mask>
1884 <type>mandatory</type>
1885 <default>0</default>
1886 <mask>
1887 <value>0</value>
1888 <description>No unit mask</description>
1889 </mask>
1890 </unit-mask>
1891 </event>
1892 <event>
1893 <name>BR_TKN_BUBBLE_2</name>
1894 <description>Branch predicted taken with bubble 2</description>
1895 <value>152</value>
1896 <minimum>3000</minimum>
1897 <unit-mask>
1898 <type>mandatory</type>
1899 <default>0</default>
1900 <mask>
1901 <value>0</value>
1902 <description>No unit mask</description>
1903 </mask>
1904 </unit-mask>
1905 </event>
1906 <event>
1907 <name>RS_UOPS_DISPATCHED</name>
1908 <description>Micro-ops dispatched for execution</description>
1909 <value>160</value>
1910 <minimum>1000</minimum>
1911 <unit-mask>
1912 <type>mandatory</type>
1913 <default>0</default>
1914 <mask>
1915 <value>0</value>
1916 <description>No unit mask</description>
1917 </mask>
1918 </unit-mask>
1919 </event>
1920 <event>
1921 <name>RS_UOPS_DISPATCHED_NONE</name>
1922 <description>No Micro-ops dispatched for execution</description>
1923 <value>25165984</value>
1924 <minimum>1000</minimum>
1925 <unit-mask>
1926 <type>mandatory</type>
1927 <default>0</default>
1928 <mask>
1929 <value>0</value>
1930 <description>No unit mask</description>
1931 </mask>
1932 </unit-mask>
1933 </event>
1934 <event>
1935 <name>MACRO_INSTS</name>
1936 <description>instructions decoded</description>
1937 <value>170</value>
1938 <minimum>500</minimum>
1939 <unit-mask>
1940 <type>bitmask</type>
1941 <default>9</default>
1942 <mask>
1943 <value>1</value>
1944 <description>Instructions decoded</description>
1945 </mask>
1946 <mask>
1947 <value>8</value>
1948 <description>CISC Instructions decoded</description>
1949 </mask>
1950 </unit-mask>
1951 </event>
1952 <event>
1953 <name>ESP</name>
1954 <description>ESP register events</description>
1955 <value>171</value>
1956 <minimum>500</minimum>
1957 <unit-mask>
1958 <type>bitmask</type>
1959 <default>1</default>
1960 <mask>
1961 <value>1</value>
1962 <description>ESP register content synchronizations</description>
1963 </mask>
1964 <mask>
1965 <value>2</value>
1966 <description>ESP register automatic additions</description>
1967 </mask>
1968 </unit-mask>
1969 </event>
1970 <event>
1971 <name>SIMD_UOPS_EXEC</name>
1972 <description>SIMD micro-ops executed (excluding stores)</description>
1973 <value>176</value>
1974 <minimum>500</minimum>
1975 <unit-mask>
1976 <type>mandatory</type>
1977 <default>0</default>
1978 <mask>
1979 <value>0</value>
1980 <description>No unit mask</description>
1981 </mask>
1982 </unit-mask>
1983 </event>
1984 <event>
1985 <name>SIMD_SAT_UOP_EXEC</name>
1986 <description>number of SIMD saturating instructions executed</description>
1987 <value>177</value>
1988 <minimum>3000</minimum>
1989 <unit-mask>
1990 <type>mandatory</type>
1991 <default>0</default>
1992 <mask>
1993 <value>0</value>
1994 <description>No unit mask</description>
1995 </mask>
1996 </unit-mask>
1997 </event>
1998 <event>
1999 <name>SIMD_UOP_TYPE_EXEC</name>
2000 <description>number of SIMD packing instructions</description>
2001 <value>179</value>
2002 <minimum>3000</minimum>
2003 <unit-mask>
2004 <type>bitmask</type>
2005 <default>63</default>
2006 <mask>
2007 <value>1</value>
2008 <description>SIMD packed multiplies</description>
2009 </mask>
2010 <mask>
2011 <value>2</value>
2012 <description>SIMD packed shifts</description>
2013 </mask>
2014 <mask>
2015 <value>4</value>
2016 <description>SIMD pack operations</description>
2017 </mask>
2018 <mask>
2019 <value>8</value>
2020 <description>SIMD unpack operations</description>
2021 </mask>
2022 <mask>
2023 <value>16</value>
2024 <description>SIMD packed logical</description>
2025 </mask>
2026 <mask>
2027 <value>32</value>
2028 <description>SIMD packed arithmetic</description>
2029 </mask>
2030 <mask>
2031 <value>63</value>
2032 <description>all of the above</description>
2033 </mask>
2034 </unit-mask>
2035 </event>
2036 <event>
2037 <name>INST_RETIRED</name>
2038 <description>number of instructions retired</description>
2039 <value>192</value>
2040 <minimum>6000</minimum>
2041 <unit-mask>
2042 <type>bitmask</type>
2043 <default>0</default>
2044 <mask>
2045 <value>0</value>
2046 <description>Any</description>
2047 </mask>
2048 <mask>
2049 <value>1</value>
2050 <description>Loads</description>
2051 </mask>
2052 <mask>
2053 <value>2</value>
2054 <description>Stores</description>
2055 </mask>
2056 <mask>
2057 <value>4</value>
2058 <description>Other</description>
2059 </mask>
2060 </unit-mask>
2061 </event>
2062 <event>
2063 <name>X87_OPS_RETIRED</name>
2064 <description>number of computational FP operations retired</description>
2065 <value>193</value>
2066 <minimum>500</minimum>
2067 <unit-mask>
2068 <type>exclusive</type>
2069 <default>254</default>
2070 <mask>
2071 <value>1</value>
2072 <description>FXCH instructions retired</description>
2073 </mask>
2074 <mask>
2075 <value>254</value>
2076 <description>Retired floating-point computational operations (precise)</description>
2077 </mask>
2078 </unit-mask>
2079 </event>
2080 <event>
2081 <name>UOPS_RETIRED</name>
2082 <description>number of UOPs retired</description>
2083 <value>194</value>
2084 <minimum>6000</minimum>
2085 <unit-mask>
2086 <type>bitmask</type>
2087 <default>15</default>
2088 <mask>
2089 <value>1</value>
2090 <description>Fused load+op or load+indirect branch retired</description>
2091 </mask>
2092 <mask>
2093 <value>2</value>
2094 <description>Fused store address + data retired</description>
2095 </mask>
2096 <mask>
2097 <value>4</value>
2098 <description>Retired instruction pairs fused into one micro-op</description>
2099 </mask>
2100 <mask>
2101 <value>7</value>
2102 <description>Fused micro-ops retired</description>
2103 </mask>
2104 <mask>
2105 <value>8</value>
2106 <description>Non-fused micro-ops retired</description>
2107 </mask>
2108 <mask>
2109 <value>15</value>
2110 <description>Micro-ops retired</description>
2111 </mask>
2112 </unit-mask>
2113 </event>
2114 <event>
2115 <name>MACHINE_NUKES_SMC</name>
2116 <description>number of pipeline flushing events</description>
2117 <value>195</value>
2118 <minimum>500</minimum>
2119 <unit-mask>
2120 <type>bitmask</type>
2121 <default>5</default>
2122 <mask>
2123 <value>1</value>
2124 <description>Self-Modifying Code detected</description>
2125 </mask>
2126 <mask>
2127 <value>4</value>
2128 <description>Execution pipeline restart due to memory ordering conflict or memory disambiguation misprediction</description>
2129 </mask>
2130 </unit-mask>
2131 </event>
2132 <event>
2133 <name>BR_INST_RETIRED</name>
2134 <description>number of branch instructions retired</description>
2135 <value>196</value>
2136 <minimum>500</minimum>
2137 <unit-mask>
2138 <type>bitmask</type>
2139 <default>10</default>
2140 <mask>
2141 <value>1</value>
2142 <description>predicted not-taken</description>
2143 </mask>
2144 <mask>
2145 <value>2</value>
2146 <description>mispredicted not-taken</description>
2147 </mask>
2148 <mask>
2149 <value>4</value>
2150 <description>predicted taken</description>
2151 </mask>
2152 <mask>
2153 <value>8</value>
2154 <description>mispredicted taken</description>
2155 </mask>
2156 </unit-mask>
2157 </event>
2158 <event>
2159 <name>BR_MISS_PRED_RETIRED</name>
2160 <description>number of mispredicted branches retired (precise)</description>
2161 <value>197</value>
2162 <minimum>500</minimum>
2163 <unit-mask>
2164 <type>mandatory</type>
2165 <default>0</default>
2166 <mask>
2167 <value>0</value>
2168 <description>No unit mask</description>
2169 </mask>
2170 </unit-mask>
2171 </event>
2172 <event>
2173 <name>CYCLES_INT_MASKED</name>
2174 <description>cycles interrupts are disabled</description>
2175 <value>198</value>
2176 <minimum>500</minimum>
2177 <unit-mask>
2178 <type>exclusive</type>
2179 <default>2</default>
2180 <mask>
2181 <value>1</value>
2182 <description>Interrupts disabled</description>
2183 </mask>
2184 <mask>
2185 <value>2</value>
2186 <description>Interrupts pending and disabled</description>
2187 </mask>
2188 </unit-mask>
2189 </event>
2190 <event>
2191 <name>SIMD_INST_RETIRED</name>
2192 <description>SSE/SSE2 instructions retired</description>
2193 <value>199</value>
2194 <minimum>500</minimum>
2195 <unit-mask>
2196 <type>bitmask</type>
2197 <default>31</default>
2198 <mask>
2199 <value>1</value>
2200 <description>Retired SSE packed-single instructions</description>
2201 </mask>
2202 <mask>
2203 <value>2</value>
2204 <description>Retired SSE scalar-single instructions</description>
2205 </mask>
2206 <mask>
2207 <value>4</value>
2208 <description>Retired SSE2 packed-double instructions</description>
2209 </mask>
2210 <mask>
2211 <value>8</value>
2212 <description>Retired SSE2 scalar-double instructions</description>
2213 </mask>
2214 <mask>
2215 <value>16</value>
2216 <description>Retired SSE2 vector integer instructions</description>
2217 </mask>
2218 <mask>
2219 <value>31</value>
2220 <description>Retired Streaming SIMD instructions (precise event)</description>
2221 </mask>
2222 </unit-mask>
2223 </event>
2224 <event>
2225 <name>HW_INT_RCV</name>
2226 <description>number of hardware interrupts received</description>
2227 <value>200</value>
2228 <minimum>500</minimum>
2229 <unit-mask>
2230 <type>mandatory</type>
2231 <default>0</default>
2232 <mask>
2233 <value>0</value>
2234 <description>No unit mask</description>
2235 </mask>
2236 </unit-mask>
2237 </event>
2238 <event>
2239 <name>ITLB_MISS_RETIRED</name>
2240 <description>Retired instructions that missed the ITLB</description>
2241 <value>201</value>
2242 <minimum>500</minimum>
2243 <unit-mask>
2244 <type>mandatory</type>
2245 <default>0</default>
2246 <mask>
2247 <value>0</value>
2248 <description>No unit mask</description>
2249 </mask>
2250 </unit-mask>
2251 </event>
2252 <event>
2253 <name>SIMD_COMP_INST_RETIRED</name>
2254 <description>Retired computational SSE/SSE2 instructions</description>
2255 <value>202</value>
2256 <minimum>500</minimum>
2257 <unit-mask>
2258 <type>bitmask</type>
2259 <default>15</default>
2260 <mask>
2261 <value>1</value>
2262 <description>Retired computational SSE packed-single instructions</description>
2263 </mask>
2264 <mask>
2265 <value>2</value>
2266 <description>Retired computational SSE scalar-single instructions</description>
2267 </mask>
2268 <mask>
2269 <value>4</value>
2270 <description>Retired computational SSE2 packed-double instructions</description>
2271 </mask>
2272 <mask>
2273 <value>8</value>
2274 <description>Retired computational SSE2 scalar-double instructions</description>
2275 </mask>
2276 </unit-mask>
2277 </event>
2278 <event>
2279 <name>MEM_LOAD_RETIRED</name>
2280 <description>Retired loads</description>
2281 <value>203</value>
2282 <minimum>500</minimum>
2283 <unit-mask>
2284 <type>exclusive</type>
2285 <default>1</default>
2286 <mask>
2287 <value>1</value>
2288 <description>Retired loads that miss the L1 data cache (precise event)</description>
2289 </mask>
2290 <mask>
2291 <value>2</value>
2292 <description>L1 data cache line missed by retired loads (precise event)</description>
2293 </mask>
2294 <mask>
2295 <value>4</value>
2296 <description>Retired loads that miss the L2 cache (precise event)</description>
2297 </mask>
2298 <mask>
2299 <value>8</value>
2300 <description>L2 cache line missed by retired loads (precise event)</description>
2301 </mask>
2302 <mask>
2303 <value>16</value>
2304 <description>Retired loads that miss the DTLB (precise event)</description>
2305 </mask>
2306 </unit-mask>
2307 </event>
2308 <event>
2309 <name>FP_MMX_TRANS</name>
2310 <description>MMX-floating point transitions</description>
2311 <value>204</value>
2312 <minimum>3000</minimum>
2313 <unit-mask>
2314 <type>bitmask</type>
2315 <default>3</default>
2316 <mask>
2317 <value>1</value>
2318 <description>float-&gt;MMX transitions</description>
2319 </mask>
2320 <mask>
2321 <value>2</value>
2322 <description>MMX-&gt;float transitions</description>
2323 </mask>
2324 </unit-mask>
2325 </event>
2326 <event>
2327 <name>MMX_ASSIST</name>
2328 <description>number of EMMS instructions executed</description>
2329 <value>205</value>
2330 <minimum>500</minimum>
2331 <unit-mask>
2332 <type>mandatory</type>
2333 <default>0</default>
2334 <mask>
2335 <value>0</value>
2336 <description>No unit mask</description>
2337 </mask>
2338 </unit-mask>
2339 </event>
2340 <event>
2341 <name>SIMD_INSTR_RET</name>
2342 <description>number of SIMD instructions retired</description>
2343 <value>206</value>
2344 <minimum>500</minimum>
2345 <unit-mask>
2346 <type>mandatory</type>
2347 <default>0</default>
2348 <mask>
2349 <value>0</value>
2350 <description>No unit mask</description>
2351 </mask>
2352 </unit-mask>
2353 </event>
2354 <event>
2355 <name>SIMD_SAT_INSTR_RET</name>
2356 <description>number of saturated arithmetic instructions retired</description>
2357 <value>207</value>
2358 <minimum>500</minimum>
2359 <unit-mask>
2360 <type>mandatory</type>
2361 <default>0</default>
2362 <mask>
2363 <value>0</value>
2364 <description>No unit mask</description>
2365 </mask>
2366 </unit-mask>
2367 </event>
2368 <event>
2369 <name>RAT_STALLS</name>
2370 <description>Partial register stall cycles</description>
2371 <value>210</value>
2372 <minimum>6000</minimum>
2373 <unit-mask>
2374 <type>bitmask</type>
2375 <default>15</default>
2376 <mask>
2377 <value>1</value>
2378 <description>ROB read port</description>
2379 </mask>
2380 <mask>
2381 <value>2</value>
2382 <description>Partial register</description>
2383 </mask>
2384 <mask>
2385 <value>4</value>
2386 <description>Flag</description>
2387 </mask>
2388 <mask>
2389 <value>8</value>
2390 <description>FPU status word</description>
2391 </mask>
2392 <mask>
2393 <value>15</value>
2394 <description>All RAT</description>
2395 </mask>
2396 </unit-mask>
2397 </event>
2398 <event>
2399 <name>SEG_RENAME_STALLS</name>
2400 <description>Segment rename stalls</description>
2401 <value>212</value>
2402 <minimum>500</minimum>
2403 <unit-mask>
2404 <type>bitmask</type>
2405 <default>15</default>
2406 <mask>
2407 <value>1</value>
2408 <description>ES</description>
2409 </mask>
2410 <mask>
2411 <value>2</value>
2412 <description>DS</description>
2413 </mask>
2414 <mask>
2415 <value>4</value>
2416 <description>FS</description>
2417 </mask>
2418 <mask>
2419 <value>8</value>
2420 <description>GS</description>
2421 </mask>
2422 </unit-mask>
2423 </event>
2424 <event>
2425 <name>SEG_RENAMES</name>
2426 <description>Segment renames</description>
2427 <value>213</value>
2428 <minimum>500</minimum>
2429 <unit-mask>
2430 <type>bitmask</type>
2431 <default>15</default>
2432 <mask>
2433 <value>1</value>
2434 <description>ES</description>
2435 </mask>
2436 <mask>
2437 <value>2</value>
2438 <description>DS</description>
2439 </mask>
2440 <mask>
2441 <value>4</value>
2442 <description>FS</description>
2443 </mask>
2444 <mask>
2445 <value>8</value>
2446 <description>GS</description>
2447 </mask>
2448 </unit-mask>
2449 </event>
2450 <event>
2451 <name>RESOURCE_STALLS</name>
2452 <description>Cycles during which resource stalls occur</description>
2453 <value>220</value>
2454 <minimum>3000</minimum>
2455 <unit-mask>
2456 <type>bitmask</type>
2457 <default>15</default>
2458 <mask>
2459 <value>1</value>
2460 <description>when the ROB is full</description>
2461 </mask>
2462 <mask>
2463 <value>2</value>
2464 <description>during which the RS is full</description>
2465 </mask>
2466 <mask>
2467 <value>4</value>
2468 <description>during which the pipeline has exceeded the load or store limit or is waiting to commit all stores</description>
2469 </mask>
2470 <mask>
2471 <value>8</value>
2472 <description>due to FPU control word write</description>
2473 </mask>
2474 <mask>
2475 <value>16</value>
2476 <description>due to branch misprediction</description>
2477 </mask>
2478 </unit-mask>
2479 </event>
2480 <event>
2481 <name>BR_INST_DECODED</name>
2482 <description>number of branch instructions decoded</description>
2483 <value>224</value>
2484 <minimum>500</minimum>
2485 <unit-mask>
2486 <type>mandatory</type>
2487 <default>0</default>
2488 <mask>
2489 <value>0</value>
2490 <description>No unit mask</description>
2491 </mask>
2492 </unit-mask>
2493 </event>
2494 <event>
2495 <name>BR_BOGUS</name>
2496 <description>number of bogus branches</description>
2497 <value>228</value>
2498 <minimum>500</minimum>
2499 <unit-mask>
2500 <type>mandatory</type>
2501 <default>0</default>
2502 <mask>
2503 <value>0</value>
2504 <description>No unit mask</description>
2505 </mask>
2506 </unit-mask>
2507 </event>
2508 <event>
2509 <name>BACLEARS</name>
2510 <description>number of times BACLEAR is asserted</description>
2511 <value>230</value>
2512 <minimum>500</minimum>
2513 <unit-mask>
2514 <type>mandatory</type>
2515 <default>0</default>
2516 <mask>
2517 <value>0</value>
2518 <description>No unit mask</description>
2519 </mask>
2520 </unit-mask>
2521 </event>
2522 <event>
2523 <name>PREF_RQSTS_UP</name>
2524 <description>Number of upward prefetches issued</description>
2525 <value>240</value>
2526 <minimum>3000</minimum>
2527 <unit-mask>
2528 <type>mandatory</type>
2529 <default>0</default>
2530 <mask>
2531 <value>0</value>
2532 <description>No unit mask</description>
2533 </mask>
2534 </unit-mask>
2535 </event>
2536 <event>
2537 <name>PREF_RQSTS_DN</name>
2538 <description>Number of downward prefetches issued</description>
2539 <value>248</value>
2540 <minimum>3000</minimum>
2541 <unit-mask>
2542 <type>mandatory</type>
2543 <default>0</default>
2544 <mask>
2545 <value>0</value>
2546 <description>No unit mask</description>
2547 </mask>
2548 </unit-mask>
2549 </event>
2550 </event-list>
2551 <event-list counter="1">
2552 <event>
2553 <name>CPU_CLK_UNHALTED</name>
2554 <description>Clock cycles when not halted</description>
2555 <value>60</value>
2556 <minimum>6000</minimum>
2557 <unit-mask>
2558 <type>exclusive</type>
2559 <default>0</default>
2560 <mask>
2561 <value>0</value>
2562 <description>Unhalted core cycles</description>
2563 </mask>
2564 <mask>
2565 <value>1</value>
2566 <description>Unhalted bus cycles</description>
2567 </mask>
2568 <mask>
2569 <value>2</value>
2570 <description>Unhalted bus cycles of this core while the other core is halted</description>
2571 </mask>
2572 </unit-mask>
2573 </event>
2574 <event>
2575 <name>INST_RETIRED_ANY_P</name>
2576 <description>number of instructions retired</description>
2577 <value>192</value>
2578 <minimum>6000</minimum>
2579 <unit-mask>
2580 <type>mandatory</type>
2581 <default>0</default>
2582 <mask>
2583 <value>0</value>
2584 <description>No unit mask</description>
2585 </mask>
2586 </unit-mask>
2587 </event>
2588 <event>
2589 <name>L2_RQSTS</name>
2590 <description>number of L2 cache requests</description>
2591 <value>46</value>
2592 <minimum>500</minimum>
2593 <unit-mask>
2594 <type>bitmask</type>
2595 <default>127</default>
2596 <mask>
2597 <value>192</value>
2598 <description>core: all cores</description>
2599 </mask>
2600 <mask>
2601 <value>64</value>
2602 <description>core: this core</description>
2603 </mask>
2604 <mask>
2605 <value>48</value>
2606 <description>prefetch: all inclusive</description>
2607 </mask>
2608 <mask>
2609 <value>16</value>
2610 <description>prefetch: Hardware prefetch only</description>
2611 </mask>
2612 <mask>
2613 <value>0</value>
2614 <description>prefetch: exclude hardware prefetch</description>
2615 </mask>
2616 <mask>
2617 <value>8</value>
2618 <description>(M)ESI: Modified</description>
2619 </mask>
2620 <mask>
2621 <value>4</value>
2622 <description>M(E)SI: Exclusive</description>
2623 </mask>
2624 <mask>
2625 <value>2</value>
2626 <description>ME(S)I: Shared</description>
2627 </mask>
2628 <mask>
2629 <value>1</value>
2630 <description>MES(I): Invalid</description>
2631 </mask>
2632 </unit-mask>
2633 </event>
2634 <event>
2635 <name>LLC_MISSES</name>
2636 <description>L2 cache demand requests from this core that missed the L2</description>
2637 <value>46</value>
2638 <minimum>6000</minimum>
2639 <unit-mask>
2640 <type>mandatory</type>
2641 <default>65</default>
2642 <mask>
2643 <value>65</value>
2644 <description>No unit mask</description>
2645 </mask>
2646 </unit-mask>
2647 </event>
2648 <event>
2649 <name>LLC_REFS</name>
2650 <description>L2 cache demand requests from this core</description>
2651 <value>46</value>
2652 <minimum>6000</minimum>
2653 <unit-mask>
2654 <type>mandatory</type>
2655 <default>79</default>
2656 <mask>
2657 <value>79</value>
2658 <description>No unit mask</description>
2659 </mask>
2660 </unit-mask>
2661 </event>
2662 <event>
2663 <name>LOAD_BLOCK</name>
2664 <description>events pertaining to loads</description>
2665 <value>3</value>
2666 <minimum>500</minimum>
2667 <unit-mask>
2668 <type>bitmask</type>
2669 <default>62</default>
2670 <mask>
2671 <value>2</value>
2672 <description>STA Loads blocked by a preceding store with unknown address.</description>
2673 </mask>
2674 <mask>
2675 <value>4</value>
2676 <description>STD Loads blocked by a preceding store with unknown data.</description>
2677 </mask>
2678 <mask>
2679 <value>8</value>
2680 <description>OVERLAP_STORE Loads that partially overlap an earlier store, or 4K aliased with a previous store.</description>
2681 </mask>
2682 <mask>
2683 <value>16</value>
2684 <description>UNTIL_RETIRE Loads blocked until retirement.</description>
2685 </mask>
2686 <mask>
2687 <value>32</value>
2688 <description>L1D Loads blocked by the L1 data cache.</description>
2689 </mask>
2690 </unit-mask>
2691 </event>
2692 <event>
2693 <name>STORE_BLOCK</name>
2694 <description>events pertaining to stores</description>
2695 <value>4</value>
2696 <minimum>500</minimum>
2697 <unit-mask>
2698 <type>bitmask</type>
2699 <default>11</default>
2700 <mask>
2701 <value>1</value>
2702 <description>SB_DRAIN_CYCLES Cycles while stores are blocked due to store buffer drain.</description>
2703 </mask>
2704 <mask>
2705 <value>2</value>
2706 <description>ORDER Cycles while store is waiting for a preceding store to be globally observed.</description>
2707 </mask>
2708 <mask>
2709 <value>8</value>
2710 <description>NOOP A store is blocked due to a conflict with an external or internal snoop.</description>
2711 </mask>
2712 </unit-mask>
2713 </event>
2714 <event>
2715 <name>MISALIGN_MEM_REF</name>
2716 <description>number of misaligned data memory references</description>
2717 <value>5</value>
2718 <minimum>500</minimum>
2719 <unit-mask>
2720 <type>mandatory</type>
2721 <default>0</default>
2722 <mask>
2723 <value>0</value>
2724 <description>No unit mask</description>
2725 </mask>
2726 </unit-mask>
2727 </event>
2728 <event>
2729 <name>SEGMENT_REG_LOADS</name>
2730 <description>number of segment register loads</description>
2731 <value>6</value>
2732 <minimum>500</minimum>
2733 <unit-mask>
2734 <type>mandatory</type>
2735 <default>0</default>
2736 <mask>
2737 <value>0</value>
2738 <description>No unit mask</description>
2739 </mask>
2740 </unit-mask>
2741 </event>
2742 <event>
2743 <name>SSE_PRE_EXEC</name>
2744 <description>number of SSE pre-fetch/weakly ordered insns retired</description>
2745 <value>7</value>
2746 <minimum>500</minimum>
2747 <unit-mask>
2748 <type>exclusive</type>
2749 <default>0</default>
2750 <mask>
2751 <value>0</value>
2752 <description>prefetch NTA instructions executed.</description>
2753 </mask>
2754 <mask>
2755 <value>1</value>
2756 <description>prefetch T1 instructions executed.</description>
2757 </mask>
2758 <mask>
2759 <value>2</value>
2760 <description>prefetch T1 and T2 instructions executed.</description>
2761 </mask>
2762 <mask>
2763 <value>3</value>
2764 <description>SSE weakly-ordered stores</description>
2765 </mask>
2766 </unit-mask>
2767 </event>
2768 <event>
2769 <name>DTLB_MISSES</name>
2770 <description>DTLB miss events</description>
2771 <value>8</value>
2772 <minimum>500</minimum>
2773 <unit-mask>
2774 <type>bitmask</type>
2775 <default>15</default>
2776 <mask>
2777 <value>1</value>
2778 <description>ANY Memory accesses that missed the DTLB.</description>
2779 </mask>
2780 <mask>
2781 <value>2</value>
2782 <description>MISS_LD DTLB misses due to load operations.</description>
2783 </mask>
2784 <mask>
2785 <value>4</value>
2786 <description>L0_MISS_LD L0 DTLB misses due to load operations.</description>
2787 </mask>
2788 <mask>
2789 <value>8</value>
2790 <description>MISS_ST TLB misses due to store operations.</description>
2791 </mask>
2792 </unit-mask>
2793 </event>
2794 <event>
2795 <name>MEMORY_DISAMBIGUATION</name>
2796 <description>Memory disambiguation reset cycles.</description>
2797 <value>9</value>
2798 <minimum>1000</minimum>
2799 <unit-mask>
2800 <type>exclusive</type>
2801 <default>1</default>
2802 <mask>
2803 <value>1</value>
2804 <description>RESET Memory disambiguation reset cycles.</description>
2805 </mask>
2806 <mask>
2807 <value>2</value>
2808 <description>SUCCESS Number of loads that were successfully disambiguated.</description>
2809 </mask>
2810 </unit-mask>
2811 </event>
2812 <event>
2813 <name>PAGE_WALKS</name>
2814 <description>Page table walk events</description>
2815 <value>12</value>
2816 <minimum>500</minimum>
2817 <unit-mask>
2818 <type>exclusive</type>
2819 <default>2</default>
2820 <mask>
2821 <value>1</value>
2822 <description>COUNT Number of page-walks executed.</description>
2823 </mask>
2824 <mask>
2825 <value>2</value>
2826 <description>CYCLES Duration of page-walks in core cycles.</description>
2827 </mask>
2828 </unit-mask>
2829 </event>
2830 <event>
2831 <name>FLOPS</name>
2832 <description>number of FP computational micro-ops executed</description>
2833 <value>16</value>
2834 <minimum>3000</minimum>
2835 <unit-mask>
2836 <type>mandatory</type>
2837 <default>0</default>
2838 <mask>
2839 <value>0</value>
2840 <description>No unit mask</description>
2841 </mask>
2842 </unit-mask>
2843 </event>
2844 <event>
2845 <name>FP_ASSIST</name>
2846 <description>number of FP assists</description>
2847 <value>17</value>
2848 <minimum>500</minimum>
2849 <unit-mask>
2850 <type>mandatory</type>
2851 <default>0</default>
2852 <mask>
2853 <value>0</value>
2854 <description>No unit mask</description>
2855 </mask>
2856 </unit-mask>
2857 </event>
2858 <event>
2859 <name>MUL</name>
2860 <description>number of multiplies</description>
2861 <value>18</value>
2862 <minimum>1000</minimum>
2863 <unit-mask>
2864 <type>mandatory</type>
2865 <default>0</default>
2866 <mask>
2867 <value>0</value>
2868 <description>No unit mask</description>
2869 </mask>
2870 </unit-mask>
2871 </event>
2872 <event>
2873 <name>DIV</name>
2874 <description>number of divides</description>
2875 <value>19</value>
2876 <minimum>500</minimum>
2877 <unit-mask>
2878 <type>mandatory</type>
2879 <default>0</default>
2880 <mask>
2881 <value>0</value>
2882 <description>No unit mask</description>
2883 </mask>
2884 </unit-mask>
2885 </event>
2886 <event>
2887 <name>CYCLES_DIV_BUSY</name>
2888 <description>cycles divider is busy</description>
2889 <value>20</value>
2890 <minimum>1000</minimum>
2891 <unit-mask>
2892 <type>mandatory</type>
2893 <default>0</default>
2894 <mask>
2895 <value>0</value>
2896 <description>No unit mask</description>
2897 </mask>
2898 </unit-mask>
2899 </event>
2900 <event>
2901 <name>IDLE_DURING_DIV</name>
2902 <description>cycles divider is busy and all other execution units are idle.</description>
2903 <value>24</value>
2904 <minimum>1000</minimum>
2905 <unit-mask>
2906 <type>mandatory</type>
2907 <default>0</default>
2908 <mask>
2909 <value>0</value>
2910 <description>No unit mask</description>
2911 </mask>
2912 </unit-mask>
2913 </event>
2914 <event>
2915 <name>DELAYED_BYPASS</name>
2916 <description>Delayed bypass events</description>
2917 <value>25</value>
2918 <minimum>1000</minimum>
2919 <unit-mask>
2920 <type>exclusive</type>
2921 <default>0</default>
2922 <mask>
2923 <value>0</value>
2924 <description>FP Delayed bypass to FP operation.</description>
2925 </mask>
2926 <mask>
2927 <value>1</value>
2928 <description>SIMD Delayed bypass to SIMD operation.</description>
2929 </mask>
2930 <mask>
2931 <value>2</value>
2932 <description>LOAD Delayed bypass to load operation.</description>
2933 </mask>
2934 </unit-mask>
2935 </event>
2936 <event>
2937 <name>L2_ADS</name>
2938 <description>Cycles the L2 address bus is in use.</description>
2939 <value>33</value>
2940 <minimum>500</minimum>
2941 <unit-mask>
2942 <type>exclusive</type>
2943 <default>64</default>
2944 <mask>
2945 <value>192</value>
2946 <description>All cores</description>
2947 </mask>
2948 <mask>
2949 <value>64</value>
2950 <description>This core</description>
2951 </mask>
2952 </unit-mask>
2953 </event>
2954 <event>
2955 <name>L2_DBUS_BUSY_RD</name>
2956 <description>Cycles the L2 transfers data to the core.</description>
2957 <value>35</value>
2958 <minimum>500</minimum>
2959 <unit-mask>
2960 <type>exclusive</type>
2961 <default>64</default>
2962 <mask>
2963 <value>192</value>
2964 <description>All cores</description>
2965 </mask>
2966 <mask>
2967 <value>64</value>
2968 <description>This core</description>
2969 </mask>
2970 </unit-mask>
2971 </event>
2972 <event>
2973 <name>L2_LINES_IN</name>
2974 <description>number of allocated lines in L2</description>
2975 <value>36</value>
2976 <minimum>500</minimum>
2977 <unit-mask>
2978 <type>bitmask</type>
2979 <default>112</default>
2980 <mask>
2981 <value>192</value>
2982 <description>core: all cores</description>
2983 </mask>
2984 <mask>
2985 <value>64</value>
2986 <description>core: this core</description>
2987 </mask>
2988 <mask>
2989 <value>48</value>
2990 <description>prefetch: all inclusive</description>
2991 </mask>
2992 <mask>
2993 <value>16</value>
2994 <description>prefetch: Hardware prefetch only</description>
2995 </mask>
2996 <mask>
2997 <value>0</value>
2998 <description>prefetch: exclude hardware prefetch</description>
2999 </mask>
3000 </unit-mask>
3001 </event>
3002 <event>
3003 <name>L2_M_LINES_IN</name>
3004 <description>number of modified lines allocated in L2</description>
3005 <value>37</value>
3006 <minimum>500</minimum>
3007 <unit-mask>
3008 <type>exclusive</type>
3009 <default>64</default>
3010 <mask>
3011 <value>192</value>
3012 <description>All cores</description>
3013 </mask>
3014 <mask>
3015 <value>64</value>
3016 <description>This core</description>
3017 </mask>
3018 </unit-mask>
3019 </event>
3020 <event>
3021 <name>L2_LINES_OUT</name>
3022 <description>number of recovered lines from L2</description>
3023 <value>38</value>
3024 <minimum>500</minimum>
3025 <unit-mask>
3026 <type>bitmask</type>
3027 <default>112</default>
3028 <mask>
3029 <value>192</value>
3030 <description>core: all cores</description>
3031 </mask>
3032 <mask>
3033 <value>64</value>
3034 <description>core: this core</description>
3035 </mask>
3036 <mask>
3037 <value>48</value>
3038 <description>prefetch: all inclusive</description>
3039 </mask>
3040 <mask>
3041 <value>16</value>
3042 <description>prefetch: Hardware prefetch only</description>
3043 </mask>
3044 <mask>
3045 <value>0</value>
3046 <description>prefetch: exclude hardware prefetch</description>
3047 </mask>
3048 </unit-mask>
3049 </event>
3050 <event>
3051 <name>L2_M_LINES_OUT</name>
3052 <description>number of modified lines removed from L2</description>
3053 <value>39</value>
3054 <minimum>500</minimum>
3055 <unit-mask>
3056 <type>bitmask</type>
3057 <default>112</default>
3058 <mask>
3059 <value>192</value>
3060 <description>core: all cores</description>
3061 </mask>
3062 <mask>
3063 <value>64</value>
3064 <description>core: this core</description>
3065 </mask>
3066 <mask>
3067 <value>48</value>
3068 <description>prefetch: all inclusive</description>
3069 </mask>
3070 <mask>
3071 <value>16</value>
3072 <description>prefetch: Hardware prefetch only</description>
3073 </mask>
3074 <mask>
3075 <value>0</value>
3076 <description>prefetch: exclude hardware prefetch</description>
3077 </mask>
3078 </unit-mask>
3079 </event>
3080 <event>
3081 <name>L2_IFETCH</name>
3082 <description>number of L2 cacheable instruction fetches</description>
3083 <value>40</value>
3084 <minimum>500</minimum>
3085 <unit-mask>
3086 <type>bitmask</type>
3087 <default>79</default>
3088 <mask>
3089 <value>192</value>
3090 <description>core: all cores</description>
3091 </mask>
3092 <mask>
3093 <value>64</value>
3094 <description>core: this core</description>
3095 </mask>
3096 <mask>
3097 <value>8</value>
3098 <description>(M)ESI: Modified</description>
3099 </mask>
3100 <mask>
3101 <value>4</value>
3102 <description>M(E)SI: Exclusive</description>
3103 </mask>
3104 <mask>
3105 <value>2</value>
3106 <description>ME(S)I: Shared</description>
3107 </mask>
3108 <mask>
3109 <value>1</value>
3110 <description>MES(I): Invalid</description>
3111 </mask>
3112 </unit-mask>
3113 </event>
3114 <event>
3115 <name>L2_LD</name>
3116 <description>number of L2 data loads</description>
3117 <value>41</value>
3118 <minimum>500</minimum>
3119 <unit-mask>
3120 <type>bitmask</type>
3121 <default>127</default>
3122 <mask>
3123 <value>192</value>
3124 <description>core: all cores</description>
3125 </mask>
3126 <mask>
3127 <value>64</value>
3128 <description>core: this core</description>
3129 </mask>
3130 <mask>
3131 <value>48</value>
3132 <description>prefetch: all inclusive</description>
3133 </mask>
3134 <mask>
3135 <value>16</value>
3136 <description>prefetch: Hardware prefetch only</description>
3137 </mask>
3138 <mask>
3139 <value>0</value>
3140 <description>prefetch: exclude hardware prefetch</description>
3141 </mask>
3142 <mask>
3143 <value>8</value>
3144 <description>(M)ESI: Modified</description>
3145 </mask>
3146 <mask>
3147 <value>4</value>
3148 <description>M(E)SI: Exclusive</description>
3149 </mask>
3150 <mask>
3151 <value>2</value>
3152 <description>ME(S)I: Shared</description>
3153 </mask>
3154 <mask>
3155 <value>1</value>
3156 <description>MES(I): Invalid</description>
3157 </mask>
3158 </unit-mask>
3159 </event>
3160 <event>
3161 <name>L2_ST</name>
3162 <description>number of L2 data stores</description>
3163 <value>42</value>
3164 <minimum>500</minimum>
3165 <unit-mask>
3166 <type>bitmask</type>
3167 <default>79</default>
3168 <mask>
3169 <value>192</value>
3170 <description>core: all cores</description>
3171 </mask>
3172 <mask>
3173 <value>64</value>
3174 <description>core: this core</description>
3175 </mask>
3176 <mask>
3177 <value>8</value>
3178 <description>(M)ESI: Modified</description>
3179 </mask>
3180 <mask>
3181 <value>4</value>
3182 <description>M(E)SI: Exclusive</description>
3183 </mask>
3184 <mask>
3185 <value>2</value>
3186 <description>ME(S)I: Shared</description>
3187 </mask>
3188 <mask>
3189 <value>1</value>
3190 <description>MES(I): Invalid</description>
3191 </mask>
3192 </unit-mask>
3193 </event>
3194 <event>
3195 <name>L2_LOCK</name>
3196 <description>number of locked L2 data accesses</description>
3197 <value>43</value>
3198 <minimum>500</minimum>
3199 <unit-mask>
3200 <type>bitmask</type>
3201 <default>79</default>
3202 <mask>
3203 <value>192</value>
3204 <description>core: all cores</description>
3205 </mask>
3206 <mask>
3207 <value>64</value>
3208 <description>core: this core</description>
3209 </mask>
3210 <mask>
3211 <value>8</value>
3212 <description>(M)ESI: Modified</description>
3213 </mask>
3214 <mask>
3215 <value>4</value>
3216 <description>M(E)SI: Exclusive</description>
3217 </mask>
3218 <mask>
3219 <value>2</value>
3220 <description>ME(S)I: Shared</description>
3221 </mask>
3222 <mask>
3223 <value>1</value>
3224 <description>MES(I): Invalid</description>
3225 </mask>
3226 </unit-mask>
3227 </event>
3228 <event>
3229 <name>L2_REJECT_BUSQ</name>
3230 <description>Rejected L2 cache requests</description>
3231 <value>48</value>
3232 <minimum>500</minimum>
3233 <unit-mask>
3234 <type>bitmask</type>
3235 <default>127</default>
3236 <mask>
3237 <value>192</value>
3238 <description>core: all cores</description>
3239 </mask>
3240 <mask>
3241 <value>64</value>
3242 <description>core: this core</description>
3243 </mask>
3244 <mask>
3245 <value>48</value>
3246 <description>prefetch: all inclusive</description>
3247 </mask>
3248 <mask>
3249 <value>16</value>
3250 <description>prefetch: Hardware prefetch only</description>
3251 </mask>
3252 <mask>
3253 <value>0</value>
3254 <description>prefetch: exclude hardware prefetch</description>
3255 </mask>
3256 <mask>
3257 <value>8</value>
3258 <description>(M)ESI: Modified</description>
3259 </mask>
3260 <mask>
3261 <value>4</value>
3262 <description>M(E)SI: Exclusive</description>
3263 </mask>
3264 <mask>
3265 <value>2</value>
3266 <description>ME(S)I: Shared</description>
3267 </mask>
3268 <mask>
3269 <value>1</value>
3270 <description>MES(I): Invalid</description>
3271 </mask>
3272 </unit-mask>
3273 </event>
3274 <event>
3275 <name>L2_NO_REQ</name>
3276 <description>Cycles no L2 cache requests are pending</description>
3277 <value>50</value>
3278 <minimum>500</minimum>
3279 <unit-mask>
3280 <type>exclusive</type>
3281 <default>64</default>
3282 <mask>
3283 <value>192</value>
3284 <description>All cores</description>
3285 </mask>
3286 <mask>
3287 <value>64</value>
3288 <description>This core</description>
3289 </mask>
3290 </unit-mask>
3291 </event>
3292 <event>
3293 <name>EIST_TRANS_ALL</name>
3294 <description>Intel(tm) Enhanced SpeedStep(r) Technology transitions</description>
3295 <value>58</value>
3296 <minimum>500</minimum>
3297 <unit-mask>
3298 <type>mandatory</type>
3299 <default>0</default>
3300 <mask>
3301 <value>0</value>
3302 <description>No unit mask</description>
3303 </mask>
3304 </unit-mask>
3305 </event>
3306 <event>
3307 <name>THERMAL_TRIP</name>
3308 <description>Number of thermal trips</description>
3309 <value>59</value>
3310 <minimum>500</minimum>
3311 <unit-mask>
3312 <type>mandatory</type>
3313 <default>192</default>
3314 <mask>
3315 <value>192</value>
3316 <description>No unit mask</description>
3317 </mask>
3318 </unit-mask>
3319 </event>
3320 <event>
3321 <name>L1D_CACHE_LD</name>
3322 <description>L1 cacheable data read operations</description>
3323 <value>64</value>
3324 <minimum>500</minimum>
3325 <unit-mask>
3326 <type>bitmask</type>
3327 <default>15</default>
3328 <mask>
3329 <value>8</value>
3330 <description>(M)ESI: Modified</description>
3331 </mask>
3332 <mask>
3333 <value>4</value>
3334 <description>M(E)SI: Exclusive</description>
3335 </mask>
3336 <mask>
3337 <value>2</value>
3338 <description>ME(S)I: Shared</description>
3339 </mask>
3340 <mask>
3341 <value>1</value>
3342 <description>MES(I): Invalid</description>
3343 </mask>
3344 </unit-mask>
3345 </event>
3346 <event>
3347 <name>L1D_CACHE_ST</name>
3348 <description>L1 cacheable data write operations</description>
3349 <value>65</value>
3350 <minimum>500</minimum>
3351 <unit-mask>
3352 <type>bitmask</type>
3353 <default>15</default>
3354 <mask>
3355 <value>8</value>
3356 <description>(M)ESI: Modified</description>
3357 </mask>
3358 <mask>
3359 <value>4</value>
3360 <description>M(E)SI: Exclusive</description>
3361 </mask>
3362 <mask>
3363 <value>2</value>
3364 <description>ME(S)I: Shared</description>
3365 </mask>
3366 <mask>
3367 <value>1</value>
3368 <description>MES(I): Invalid</description>
3369 </mask>
3370 </unit-mask>
3371 </event>
3372 <event>
3373 <name>L1D_CACHE_LOCK</name>
3374 <description>L1 cacheable lock read operations</description>
3375 <value>66</value>
3376 <minimum>500</minimum>
3377 <unit-mask>
3378 <type>bitmask</type>
3379 <default>15</default>
3380 <mask>
3381 <value>8</value>
3382 <description>(M)ESI: Modified</description>
3383 </mask>
3384 <mask>
3385 <value>4</value>
3386 <description>M(E)SI: Exclusive</description>
3387 </mask>
3388 <mask>
3389 <value>2</value>
3390 <description>ME(S)I: Shared</description>
3391 </mask>
3392 <mask>
3393 <value>1</value>
3394 <description>MES(I): Invalid</description>
3395 </mask>
3396 </unit-mask>
3397 </event>
3398 <event>
3399 <name>L1D_CACHE_LOCK_DURATION</name>
3400 <description>Duration of L1 data cacheable locked operations</description>
3401 <value>66</value>
3402 <minimum>500</minimum>
3403 <unit-mask>
3404 <type>mandatory</type>
3405 <default>16</default>
3406 <mask>
3407 <value>16</value>
3408 <description>No unit mask</description>
3409 </mask>
3410 </unit-mask>
3411 </event>
3412 <event>
3413 <name>L1D_ALL_REF</name>
3414 <description>All references to the L1 data cache</description>
3415 <value>67</value>
3416 <minimum>500</minimum>
3417 <unit-mask>
3418 <type>mandatory</type>
3419 <default>16</default>
3420 <mask>
3421 <value>16</value>
3422 <description>No unit mask</description>
3423 </mask>
3424 </unit-mask>
3425 </event>
3426 <event>
3427 <name>L1D_ALL_CACHE_REF</name>
3428 <description>L1 data cacheable reads and writes</description>
3429 <value>67</value>
3430 <minimum>500</minimum>
3431 <unit-mask>
3432 <type>mandatory</type>
3433 <default>2</default>
3434 <mask>
3435 <value>2</value>
3436 <description>No unit mask</description>
3437 </mask>
3438 </unit-mask>
3439 </event>
3440 <event>
3441 <name>L1D_REPL</name>
3442 <description>Cache lines allocated in the L1 data cache</description>
3443 <value>69</value>
3444 <minimum>500</minimum>
3445 <unit-mask>
3446 <type>mandatory</type>
3447 <default>15</default>
3448 <mask>
3449 <value>15</value>
3450 <description>No unit mask</description>
3451 </mask>
3452 </unit-mask>
3453 </event>
3454 <event>
3455 <name>L1D_M_REPL</name>
3456 <description>Modified cache lines allocated in the L1 data cache</description>
3457 <value>70</value>
3458 <minimum>500</minimum>
3459 <unit-mask>
3460 <type>mandatory</type>
3461 <default>0</default>
3462 <mask>
3463 <value>0</value>
3464 <description>No unit mask</description>
3465 </mask>
3466 </unit-mask>
3467 </event>
3468 <event>
3469 <name>L1D_M_EVICT</name>
3470 <description>Modified cache lines evicted from the L1 data cache</description>
3471 <value>71</value>
3472 <minimum>500</minimum>
3473 <unit-mask>
3474 <type>mandatory</type>
3475 <default>0</default>
3476 <mask>
3477 <value>0</value>
3478 <description>No unit mask</description>
3479 </mask>
3480 </unit-mask>
3481 </event>
3482 <event>
3483 <name>L1D_PEND_MISS</name>
3484 <description>Total number of outstanding L1 data cache misses at any cycle</description>
3485 <value>72</value>
3486 <minimum>500</minimum>
3487 <unit-mask>
3488 <type>mandatory</type>
3489 <default>0</default>
3490 <mask>
3491 <value>0</value>
3492 <description>No unit mask</description>
3493 </mask>
3494 </unit-mask>
3495 </event>
3496 <event>
3497 <name>L1D_SPLIT</name>
3498 <description>Cache line split load/stores</description>
3499 <value>73</value>
3500 <minimum>500</minimum>
3501 <unit-mask>
3502 <type>exclusive</type>
3503 <default>1</default>
3504 <mask>
3505 <value>1</value>
3506 <description>split loads</description>
3507 </mask>
3508 <mask>
3509 <value>2</value>
3510 <description>split stores</description>
3511 </mask>
3512 </unit-mask>
3513 </event>
3514 <event>
3515 <name>SSE_PREF_MISS</name>
3516 <description>SSE instructions that missed all caches</description>
3517 <value>75</value>
3518 <minimum>500</minimum>
3519 <unit-mask>
3520 <type>exclusive</type>
3521 <default>0</default>
3522 <mask>
3523 <value>0</value>
3524 <description>PREFETCHNTA</description>
3525 </mask>
3526 <mask>
3527 <value>1</value>
3528 <description>PREFETCHT0</description>
3529 </mask>
3530 <mask>
3531 <value>2</value>
3532 <description>PREFETCHT1/PREFETCHT2</description>
3533 </mask>
3534 </unit-mask>
3535 </event>
3536 <event>
3537 <name>LOAD_HIT_PRE</name>
3538 <description>Load operations conflicting with a software prefetch to the same address</description>
3539 <value>76</value>
3540 <minimum>500</minimum>
3541 <unit-mask>
3542 <type>mandatory</type>
3543 <default>0</default>
3544 <mask>
3545 <value>0</value>
3546 <description>No unit mask</description>
3547 </mask>
3548 </unit-mask>
3549 </event>
3550 <event>
3551 <name>L1D_PREFETCH</name>
3552 <description>L1 data cache prefetch requests</description>
3553 <value>78</value>
3554 <minimum>500</minimum>
3555 <unit-mask>
3556 <type>mandatory</type>
3557 <default>16</default>
3558 <mask>
3559 <value>16</value>
3560 <description>No unit mask</description>
3561 </mask>
3562 </unit-mask>
3563 </event>
3564 <event>
3565 <name>BUS_REQ_OUTSTANDING</name>
3566 <description>Outstanding cacheable data read bus requests duration</description>
3567 <value>96</value>
3568 <minimum>500</minimum>
3569 <unit-mask>
3570 <type>bitmask</type>
3571 <default>64</default>
3572 <mask>
3573 <value>192</value>
3574 <description>core: all cores</description>
3575 </mask>
3576 <mask>
3577 <value>64</value>
3578 <description>core: this core</description>
3579 </mask>
3580 <mask>
3581 <value>0</value>
3582 <description>bus: this agent</description>
3583 </mask>
3584 <mask>
3585 <value>32</value>
3586 <description>bus: include all agents</description>
3587 </mask>
3588 </unit-mask>
3589 </event>
3590 <event>
3591 <name>BUS_BNR_DRV</name>
3592 <description>Number of Bus Not Ready signals asserted</description>
3593 <value>97</value>
3594 <minimum>500</minimum>
3595 <unit-mask>
3596 <type>exclusive</type>
3597 <default>0</default>
3598 <mask>
3599 <value>0</value>
3600 <description>this agent</description>
3601 </mask>
3602 <mask>
3603 <value>32</value>
3604 <description>include all agents</description>
3605 </mask>
3606 </unit-mask>
3607 </event>
3608 <event>
3609 <name>BUS_DRDY_CLOCKS</name>
3610 <description>Bus cycles when data is sent on the bus</description>
3611 <value>98</value>
3612 <minimum>500</minimum>
3613 <unit-mask>
3614 <type>exclusive</type>
3615 <default>0</default>
3616 <mask>
3617 <value>0</value>
3618 <description>this agent</description>
3619 </mask>
3620 <mask>
3621 <value>32</value>
3622 <description>include all agents</description>
3623 </mask>
3624 </unit-mask>
3625 </event>
3626 <event>
3627 <name>BUS_LOCK_CLOCKS</name>
3628 <description>Bus cycles when a LOCK signal is asserted</description>
3629 <value>99</value>
3630 <minimum>500</minimum>
3631 <unit-mask>
3632 <type>bitmask</type>
3633 <default>64</default>
3634 <mask>
3635 <value>192</value>
3636 <description>core: all cores</description>
3637 </mask>
3638 <mask>
3639 <value>64</value>
3640 <description>core: this core</description>
3641 </mask>
3642 <mask>
3643 <value>0</value>
3644 <description>bus: this agent</description>
3645 </mask>
3646 <mask>
3647 <value>32</value>
3648 <description>bus: include all agents</description>
3649 </mask>
3650 </unit-mask>
3651 </event>
3652 <event>
3653 <name>BUS_DATA_RCV</name>
3654 <description>Bus cycles while processor receives data</description>
3655 <value>100</value>
3656 <minimum>500</minimum>
3657 <unit-mask>
3658 <type>bitmask</type>
3659 <default>64</default>
3660 <mask>
3661 <value>192</value>
3662 <description>core: all cores</description>
3663 </mask>
3664 <mask>
3665 <value>64</value>
3666 <description>core: this core</description>
3667 </mask>
3668 <mask>
3669 <value>0</value>
3670 <description>bus: this agent</description>
3671 </mask>
3672 <mask>
3673 <value>32</value>
3674 <description>bus: include all agents</description>
3675 </mask>
3676 </unit-mask>
3677 </event>
3678 <event>
3679 <name>BUS_TRAN_BRD</name>
3680 <description>Burst read bus transactions</description>
3681 <value>101</value>
3682 <minimum>500</minimum>
3683 <unit-mask>
3684 <type>bitmask</type>
3685 <default>64</default>
3686 <mask>
3687 <value>192</value>
3688 <description>core: all cores</description>
3689 </mask>
3690 <mask>
3691 <value>64</value>
3692 <description>core: this core</description>
3693 </mask>
3694 <mask>
3695 <value>0</value>
3696 <description>bus: this agent</description>
3697 </mask>
3698 <mask>
3699 <value>32</value>
3700 <description>bus: include all agents</description>
3701 </mask>
3702 </unit-mask>
3703 </event>
3704 <event>
3705 <name>BUS_TRAN_RFO</name>
3706 <description>number of completed read for ownership transactions</description>
3707 <value>102</value>
3708 <minimum>500</minimum>
3709 <unit-mask>
3710 <type>bitmask</type>
3711 <default>64</default>
3712 <mask>
3713 <value>192</value>
3714 <description>core: all cores</description>
3715 </mask>
3716 <mask>
3717 <value>64</value>
3718 <description>core: this core</description>
3719 </mask>
3720 <mask>
3721 <value>0</value>
3722 <description>bus: this agent</description>
3723 </mask>
3724 <mask>
3725 <value>32</value>
3726 <description>bus: include all agents</description>
3727 </mask>
3728 </unit-mask>
3729 </event>
3730 <event>
3731 <name>BUS_TRAN_WB</name>
3732 <description>number of explicit writeback bus transactions</description>
3733 <value>103</value>
3734 <minimum>500</minimum>
3735 <unit-mask>
3736 <type>bitmask</type>
3737 <default>64</default>
3738 <mask>
3739 <value>192</value>
3740 <description>core: all cores</description>
3741 </mask>
3742 <mask>
3743 <value>64</value>
3744 <description>core: this core</description>
3745 </mask>
3746 <mask>
3747 <value>0</value>
3748 <description>bus: this agent</description>
3749 </mask>
3750 <mask>
3751 <value>32</value>
3752 <description>bus: include all agents</description>
3753 </mask>
3754 </unit-mask>
3755 </event>
3756 <event>
3757 <name>BUS_TRAN_IFETCH</name>
3758 <description>number of instruction fetch transactions</description>
3759 <value>104</value>
3760 <minimum>500</minimum>
3761 <unit-mask>
3762 <type>bitmask</type>
3763 <default>64</default>
3764 <mask>
3765 <value>192</value>
3766 <description>core: all cores</description>
3767 </mask>
3768 <mask>
3769 <value>64</value>
3770 <description>core: this core</description>
3771 </mask>
3772 <mask>
3773 <value>0</value>
3774 <description>bus: this agent</description>
3775 </mask>
3776 <mask>
3777 <value>32</value>
3778 <description>bus: include all agents</description>
3779 </mask>
3780 </unit-mask>
3781 </event>
3782 <event>
3783 <name>BUS_TRAN_INVAL</name>
3784 <description>number of invalidate transactions</description>
3785 <value>105</value>
3786 <minimum>500</minimum>
3787 <unit-mask>
3788 <type>bitmask</type>
3789 <default>64</default>
3790 <mask>
3791 <value>192</value>
3792 <description>core: all cores</description>
3793 </mask>
3794 <mask>
3795 <value>64</value>
3796 <description>core: this core</description>
3797 </mask>
3798 <mask>
3799 <value>0</value>
3800 <description>bus: this agent</description>
3801 </mask>
3802 <mask>
3803 <value>32</value>
3804 <description>bus: include all agents</description>
3805 </mask>
3806 </unit-mask>
3807 </event>
3808 <event>
3809 <name>BUS_TRAN_PWR</name>
3810 <description>number of partial write bus transactions</description>
3811 <value>106</value>
3812 <minimum>500</minimum>
3813 <unit-mask>
3814 <type>bitmask</type>
3815 <default>64</default>
3816 <mask>
3817 <value>192</value>
3818 <description>core: all cores</description>
3819 </mask>
3820 <mask>
3821 <value>64</value>
3822 <description>core: this core</description>
3823 </mask>
3824 <mask>
3825 <value>0</value>
3826 <description>bus: this agent</description>
3827 </mask>
3828 <mask>
3829 <value>32</value>
3830 <description>bus: include all agents</description>
3831 </mask>
3832 </unit-mask>
3833 </event>
3834 <event>
3835 <name>BUS_TRANS_P</name>
3836 <description>number of partial bus transactions</description>
3837 <value>107</value>
3838 <minimum>500</minimum>
3839 <unit-mask>
3840 <type>bitmask</type>
3841 <default>64</default>
3842 <mask>
3843 <value>192</value>
3844 <description>core: all cores</description>
3845 </mask>
3846 <mask>
3847 <value>64</value>
3848 <description>core: this core</description>
3849 </mask>
3850 <mask>
3851 <value>0</value>
3852 <description>bus: this agent</description>
3853 </mask>
3854 <mask>
3855 <value>32</value>
3856 <description>bus: include all agents</description>
3857 </mask>
3858 </unit-mask>
3859 </event>
3860 <event>
3861 <name>BUS_TRANS_IO</name>
3862 <description>number of I/O bus transactions</description>
3863 <value>108</value>
3864 <minimum>500</minimum>
3865 <unit-mask>
3866 <type>bitmask</type>
3867 <default>64</default>
3868 <mask>
3869 <value>192</value>
3870 <description>core: all cores</description>
3871 </mask>
3872 <mask>
3873 <value>64</value>
3874 <description>core: this core</description>
3875 </mask>
3876 <mask>
3877 <value>0</value>
3878 <description>bus: this agent</description>
3879 </mask>
3880 <mask>
3881 <value>32</value>
3882 <description>bus: include all agents</description>
3883 </mask>
3884 </unit-mask>
3885 </event>
3886 <event>
3887 <name>BUS_TRANS_DEF</name>
3888 <description>number of completed defer transactions</description>
3889 <value>109</value>
3890 <minimum>500</minimum>
3891 <unit-mask>
3892 <type>bitmask</type>
3893 <default>64</default>
3894 <mask>
3895 <value>192</value>
3896 <description>core: all cores</description>
3897 </mask>
3898 <mask>
3899 <value>64</value>
3900 <description>core: this core</description>
3901 </mask>
3902 <mask>
3903 <value>0</value>
3904 <description>bus: this agent</description>
3905 </mask>
3906 <mask>
3907 <value>32</value>
3908 <description>bus: include all agents</description>
3909 </mask>
3910 </unit-mask>
3911 </event>
3912 <event>
3913 <name>BUS_TRAN_BURST</name>
3914 <description>number of completed burst transactions</description>
3915 <value>110</value>
3916 <minimum>500</minimum>
3917 <unit-mask>
3918 <type>bitmask</type>
3919 <default>64</default>
3920 <mask>
3921 <value>192</value>
3922 <description>core: all cores</description>
3923 </mask>
3924 <mask>
3925 <value>64</value>
3926 <description>core: this core</description>
3927 </mask>
3928 <mask>
3929 <value>0</value>
3930 <description>bus: this agent</description>
3931 </mask>
3932 <mask>
3933 <value>32</value>
3934 <description>bus: include all agents</description>
3935 </mask>
3936 </unit-mask>
3937 </event>
3938 <event>
3939 <name>BUS_TRAN_MEM</name>
3940 <description>number of completed memory transactions</description>
3941 <value>111</value>
3942 <minimum>500</minimum>
3943 <unit-mask>
3944 <type>bitmask</type>
3945 <default>64</default>
3946 <mask>
3947 <value>192</value>
3948 <description>core: all cores</description>
3949 </mask>
3950 <mask>
3951 <value>64</value>
3952 <description>core: this core</description>
3953 </mask>
3954 <mask>
3955 <value>0</value>
3956 <description>bus: this agent</description>
3957 </mask>
3958 <mask>
3959 <value>32</value>
3960 <description>bus: include all agents</description>
3961 </mask>
3962 </unit-mask>
3963 </event>
3964 <event>
3965 <name>BUS_TRAN_ANY</name>
3966 <description>number of any completed bus transactions</description>
3967 <value>112</value>
3968 <minimum>500</minimum>
3969 <unit-mask>
3970 <type>bitmask</type>
3971 <default>64</default>
3972 <mask>
3973 <value>192</value>
3974 <description>core: all cores</description>
3975 </mask>
3976 <mask>
3977 <value>64</value>
3978 <description>core: this core</description>
3979 </mask>
3980 <mask>
3981 <value>0</value>
3982 <description>bus: this agent</description>
3983 </mask>
3984 <mask>
3985 <value>32</value>
3986 <description>bus: include all agents</description>
3987 </mask>
3988 </unit-mask>
3989 </event>
3990 <event>
3991 <name>EXT_SNOOP</name>
3992 <description>External snoops</description>
3993 <value>119</value>
3994 <minimum>500</minimum>
3995 <unit-mask>
3996 <type>bitmask</type>
3997 <default>11</default>
3998 <mask>
3999 <value>0</value>
4000 <description>bus: this agent</description>
4001 </mask>
4002 <mask>
4003 <value>32</value>
4004 <description>bus: include all agents</description>
4005 </mask>
4006 <mask>
4007 <value>8</value>
4008 <description>snoop: HITM snoops</description>
4009 </mask>
4010 <mask>
4011 <value>2</value>
4012 <description>snoop: HIT snoops</description>
4013 </mask>
4014 <mask>
4015 <value>1</value>
4016 <description>snoop: CLEAN snoops</description>
4017 </mask>
4018 </unit-mask>
4019 </event>
4020 <event>
4021 <name>CMP_SNOOP</name>
4022 <description>L1 data cache is snooped by other core</description>
4023 <value>120</value>
4024 <minimum>500</minimum>
4025 <unit-mask>
4026 <type>bitmask</type>
4027 <default>64</default>
4028 <mask>
4029 <value>192</value>
4030 <description>core: all cores</description>
4031 </mask>
4032 <mask>
4033 <value>64</value>
4034 <description>core: this core</description>
4035 </mask>
4036 <mask>
4037 <value>1</value>
4038 <description>snoop: CMP2I snoops</description>
4039 </mask>
4040 <mask>
4041 <value>2</value>
4042 <description>snoop: CMP2S snoops</description>
4043 </mask>
4044 </unit-mask>
4045 </event>
4046 <event>
4047 <name>BUS_HIT_DRV</name>
4048 <description>HIT signal asserted</description>
4049 <value>122</value>
4050 <minimum>500</minimum>
4051 <unit-mask>
4052 <type>exclusive</type>
4053 <default>0</default>
4054 <mask>
4055 <value>0</value>
4056 <description>this agent</description>
4057 </mask>
4058 <mask>
4059 <value>32</value>
4060 <description>include all agents</description>
4061 </mask>
4062 </unit-mask>
4063 </event>
4064 <event>
4065 <name>BUS_HITM_DRV</name>
4066 <description>HITM signal asserted</description>
4067 <value>123</value>
4068 <minimum>500</minimum>
4069 <unit-mask>
4070 <type>exclusive</type>
4071 <default>0</default>
4072 <mask>
4073 <value>0</value>
4074 <description>this agent</description>
4075 </mask>
4076 <mask>
4077 <value>32</value>
4078 <description>include all agents</description>
4079 </mask>
4080 </unit-mask>
4081 </event>
4082 <event>
4083 <name>BUSQ_EMPTY</name>
4084 <description>Bus queue is empty</description>
4085 <value>125</value>
4086 <minimum>500</minimum>
4087 <unit-mask>
4088 <type>exclusive</type>
4089 <default>64</default>
4090 <mask>
4091 <value>192</value>
4092 <description>All cores</description>
4093 </mask>
4094 <mask>
4095 <value>64</value>
4096 <description>This core</description>
4097 </mask>
4098 </unit-mask>
4099 </event>
4100 <event>
4101 <name>SNOOP_STALL_DRV</name>
4102 <description>Bus stalled for snoops</description>
4103 <value>126</value>
4104 <minimum>500</minimum>
4105 <unit-mask>
4106 <type>bitmask</type>
4107 <default>64</default>
4108 <mask>
4109 <value>192</value>
4110 <description>core: all cores</description>
4111 </mask>
4112 <mask>
4113 <value>64</value>
4114 <description>core: this core</description>
4115 </mask>
4116 <mask>
4117 <value>0</value>
4118 <description>bus: this agent</description>
4119 </mask>
4120 <mask>
4121 <value>32</value>
4122 <description>bus: include all agents</description>
4123 </mask>
4124 </unit-mask>
4125 </event>
4126 <event>
4127 <name>BUS_IO_WAIT</name>
4128 <description>IO requests waiting in the bus queue</description>
4129 <value>127</value>
4130 <minimum>500</minimum>
4131 <unit-mask>
4132 <type>exclusive</type>
4133 <default>64</default>
4134 <mask>
4135 <value>192</value>
4136 <description>All cores</description>
4137 </mask>
4138 <mask>
4139 <value>64</value>
4140 <description>This core</description>
4141 </mask>
4142 </unit-mask>
4143 </event>
4144 <event>
4145 <name>L1I_READS</name>
4146 <description>number of instruction fetches</description>
4147 <value>128</value>
4148 <minimum>500</minimum>
4149 <unit-mask>
4150 <type>mandatory</type>
4151 <default>0</default>
4152 <mask>
4153 <value>0</value>
4154 <description>No unit mask</description>
4155 </mask>
4156 </unit-mask>
4157 </event>
4158 <event>
4159 <name>L1I_MISSES</name>
4160 <description>number of instruction fetch misses</description>
4161 <value>129</value>
4162 <minimum>500</minimum>
4163 <unit-mask>
4164 <type>mandatory</type>
4165 <default>0</default>
4166 <mask>
4167 <value>0</value>
4168 <description>No unit mask</description>
4169 </mask>
4170 </unit-mask>
4171 </event>
4172 <event>
4173 <name>ITLB</name>
4174 <description>number of ITLB misses</description>
4175 <value>130</value>
4176 <minimum>500</minimum>
4177 <unit-mask>
4178 <type>bitmask</type>
4179 <default>18</default>
4180 <mask>
4181 <value>2</value>
4182 <description>ITLB small page misses</description>
4183 </mask>
4184 <mask>
4185 <value>16</value>
4186 <description>ITLB large page misses</description>
4187 </mask>
4188 <mask>
4189 <value>64</value>
4190 <description>ITLB flushes</description>
4191 </mask>
4192 </unit-mask>
4193 </event>
4194 <event>
4195 <name>INST_QUEUE_FULL</name>
4196 <description>cycles during which the instruction queue is full</description>
4197 <value>131</value>
4198 <minimum>500</minimum>
4199 <unit-mask>
4200 <type>mandatory</type>
4201 <default>2</default>
4202 <mask>
4203 <value>2</value>
4204 <description>No unit mask</description>
4205 </mask>
4206 </unit-mask>
4207 </event>
4208 <event>
4209 <name>IFU_MEM_STALL</name>
4210 <description>cycles instruction fetch pipe is stalled</description>
4211 <value>134</value>
4212 <minimum>500</minimum>
4213 <unit-mask>
4214 <type>mandatory</type>
4215 <default>0</default>
4216 <mask>
4217 <value>0</value>
4218 <description>No unit mask</description>
4219 </mask>
4220 </unit-mask>
4221 </event>
4222 <event>
4223 <name>ILD_STALL</name>
4224 <description>cycles instruction length decoder is stalled</description>
4225 <value>135</value>
4226 <minimum>500</minimum>
4227 <unit-mask>
4228 <type>mandatory</type>
4229 <default>0</default>
4230 <mask>
4231 <value>0</value>
4232 <description>No unit mask</description>
4233 </mask>
4234 </unit-mask>
4235 </event>
4236 <event>
4237 <name>BR_INST_EXEC</name>
4238 <description>Branch instructions executed (not necessarily retired)</description>
4239 <value>136</value>
4240 <minimum>3000</minimum>
4241 <unit-mask>
4242 <type>mandatory</type>
4243 <default>0</default>
4244 <mask>
4245 <value>0</value>
4246 <description>No unit mask</description>
4247 </mask>
4248 </unit-mask>
4249 </event>
4250 <event>
4251 <name>BR_MISSP_EXEC</name>
4252 <description>Branch instructions executed that were mispredicted at execution</description>
4253 <value>137</value>
4254 <minimum>3000</minimum>
4255 <unit-mask>
4256 <type>mandatory</type>
4257 <default>0</default>
4258 <mask>
4259 <value>0</value>
4260 <description>No unit mask</description>
4261 </mask>
4262 </unit-mask>
4263 </event>
4264 <event>
4265 <name>BR_BAC_MISSP_EXEC</name>
4266 <description>Branch instructions executed that were mispredicted at Front End (BAC)</description>
4267 <value>138</value>
4268 <minimum>3000</minimum>
4269 <unit-mask>
4270 <type>mandatory</type>
4271 <default>0</default>
4272 <mask>
4273 <value>0</value>
4274 <description>No unit mask</description>
4275 </mask>
4276 </unit-mask>
4277 </event>
4278 <event>
4279 <name>BR_CND_EXEC</name>
4280 <description>Conditional Branch instructions executed</description>
4281 <value>139</value>
4282 <minimum>3000</minimum>
4283 <unit-mask>
4284 <type>mandatory</type>
4285 <default>0</default>
4286 <mask>
4287 <value>0</value>
4288 <description>No unit mask</description>
4289 </mask>
4290 </unit-mask>
4291 </event>
4292 <event>
4293 <name>BR_CND_MISSP_EXEC</name>
4294 <description>Conditional Branch instructions executed that were mispredicted</description>
4295 <value>140</value>
4296 <minimum>3000</minimum>
4297 <unit-mask>
4298 <type>mandatory</type>
4299 <default>0</default>
4300 <mask>
4301 <value>0</value>
4302 <description>No unit mask</description>
4303 </mask>
4304 </unit-mask>
4305 </event>
4306 <event>
4307 <name>BR_IND_EXEC</name>
4308 <description>Indirect Branch instructions executed</description>
4309 <value>141</value>
4310 <minimum>3000</minimum>
4311 <unit-mask>
4312 <type>mandatory</type>
4313 <default>0</default>
4314 <mask>
4315 <value>0</value>
4316 <description>No unit mask</description>
4317 </mask>
4318 </unit-mask>
4319 </event>
4320 <event>
4321 <name>BR_IND_MISSP_EXEC</name>
4322 <description>Indirect Branch instructions executed that were mispredicted</description>
4323 <value>142</value>
4324 <minimum>3000</minimum>
4325 <unit-mask>
4326 <type>mandatory</type>
4327 <default>0</default>
4328 <mask>
4329 <value>0</value>
4330 <description>No unit mask</description>
4331 </mask>
4332 </unit-mask>
4333 </event>
4334 <event>
4335 <name>BR_RET_EXEC</name>
4336 <description>Return Branch instructions executed</description>
4337 <value>143</value>
4338 <minimum>3000</minimum>
4339 <unit-mask>
4340 <type>mandatory</type>
4341 <default>0</default>
4342 <mask>
4343 <value>0</value>
4344 <description>No unit mask</description>
4345 </mask>
4346 </unit-mask>
4347 </event>
4348 <event>
4349 <name>BR_RET_MISSP_EXEC</name>
4350 <description>Return Branch instructions executed that were mispredicted at Execution</description>
4351 <value>144</value>
4352 <minimum>3000</minimum>
4353 <unit-mask>
4354 <type>mandatory</type>
4355 <default>0</default>
4356 <mask>
4357 <value>0</value>
4358 <description>No unit mask</description>
4359 </mask>
4360 </unit-mask>
4361 </event>
4362 <event>
4363 <name>BR_RET_BAC_MISSP_EXEC</name>
4364 <description>Branch instructions executed that were mispredicted at Front End (BAC)</description>
4365 <value>145</value>
4366 <minimum>3000</minimum>
4367 <unit-mask>
4368 <type>mandatory</type>
4369 <default>0</default>
4370 <mask>
4371 <value>0</value>
4372 <description>No unit mask</description>
4373 </mask>
4374 </unit-mask>
4375 </event>
4376 <event>
4377 <name>BR_CALL_EXEC</name>
4378 <description>CALL instruction executed</description>
4379 <value>146</value>
4380 <minimum>3000</minimum>
4381 <unit-mask>
4382 <type>mandatory</type>
4383 <default>0</default>
4384 <mask>
4385 <value>0</value>
4386 <description>No unit mask</description>
4387 </mask>
4388 </unit-mask>
4389 </event>
4390 <event>
4391 <name>BR_CALL_MISSP_EXEC</name>
4392 <description>CALL instruction executed and miss predicted</description>
4393 <value>147</value>
4394 <minimum>3000</minimum>
4395 <unit-mask>
4396 <type>mandatory</type>
4397 <default>0</default>
4398 <mask>
4399 <value>0</value>
4400 <description>No unit mask</description>
4401 </mask>
4402 </unit-mask>
4403 </event>
4404 <event>
4405 <name>BR_IND_CALL_EXEC</name>
4406 <description>Indirect CALL instruction executed</description>
4407 <value>148</value>
4408 <minimum>3000</minimum>
4409 <unit-mask>
4410 <type>mandatory</type>
4411 <default>0</default>
4412 <mask>
4413 <value>0</value>
4414 <description>No unit mask</description>
4415 </mask>
4416 </unit-mask>
4417 </event>
4418 <event>
4419 <name>BR_TKN_BUBBLE_1</name>
4420 <description>Branch predicted taken with bubble 1</description>
4421 <value>151</value>
4422 <minimum>3000</minimum>
4423 <unit-mask>
4424 <type>mandatory</type>
4425 <default>0</default>
4426 <mask>
4427 <value>0</value>
4428 <description>No unit mask</description>
4429 </mask>
4430 </unit-mask>
4431 </event>
4432 <event>
4433 <name>BR_TKN_BUBBLE_2</name>
4434 <description>Branch predicted taken with bubble 2</description>
4435 <value>152</value>
4436 <minimum>3000</minimum>
4437 <unit-mask>
4438 <type>mandatory</type>
4439 <default>0</default>
4440 <mask>
4441 <value>0</value>
4442 <description>No unit mask</description>
4443 </mask>
4444 </unit-mask>
4445 </event>
4446 <event>
4447 <name>RS_UOPS_DISPATCHED</name>
4448 <description>Micro-ops dispatched for execution</description>
4449 <value>160</value>
4450 <minimum>1000</minimum>
4451 <unit-mask>
4452 <type>mandatory</type>
4453 <default>0</default>
4454 <mask>
4455 <value>0</value>
4456 <description>No unit mask</description>
4457 </mask>
4458 </unit-mask>
4459 </event>
4460 <event>
4461 <name>RS_UOPS_DISPATCHED_NONE</name>
4462 <description>No Micro-ops dispatched for execution</description>
4463 <value>25165984</value>
4464 <minimum>1000</minimum>
4465 <unit-mask>
4466 <type>mandatory</type>
4467 <default>0</default>
4468 <mask>
4469 <value>0</value>
4470 <description>No unit mask</description>
4471 </mask>
4472 </unit-mask>
4473 </event>
4474 <event>
4475 <name>MACRO_INSTS</name>
4476 <description>instructions decoded</description>
4477 <value>170</value>
4478 <minimum>500</minimum>
4479 <unit-mask>
4480 <type>bitmask</type>
4481 <default>9</default>
4482 <mask>
4483 <value>1</value>
4484 <description>Instructions decoded</description>
4485 </mask>
4486 <mask>
4487 <value>8</value>
4488 <description>CISC Instructions decoded</description>
4489 </mask>
4490 </unit-mask>
4491 </event>
4492 <event>
4493 <name>ESP</name>
4494 <description>ESP register events</description>
4495 <value>171</value>
4496 <minimum>500</minimum>
4497 <unit-mask>
4498 <type>bitmask</type>
4499 <default>1</default>
4500 <mask>
4501 <value>1</value>
4502 <description>ESP register content synchronizations</description>
4503 </mask>
4504 <mask>
4505 <value>2</value>
4506 <description>ESP register automatic additions</description>
4507 </mask>
4508 </unit-mask>
4509 </event>
4510 <event>
4511 <name>SIMD_UOPS_EXEC</name>
4512 <description>SIMD micro-ops executed (excluding stores)</description>
4513 <value>176</value>
4514 <minimum>500</minimum>
4515 <unit-mask>
4516 <type>mandatory</type>
4517 <default>0</default>
4518 <mask>
4519 <value>0</value>
4520 <description>No unit mask</description>
4521 </mask>
4522 </unit-mask>
4523 </event>
4524 <event>
4525 <name>SIMD_SAT_UOP_EXEC</name>
4526 <description>number of SIMD saturating instructions executed</description>
4527 <value>177</value>
4528 <minimum>3000</minimum>
4529 <unit-mask>
4530 <type>mandatory</type>
4531 <default>0</default>
4532 <mask>
4533 <value>0</value>
4534 <description>No unit mask</description>
4535 </mask>
4536 </unit-mask>
4537 </event>
4538 <event>
4539 <name>SIMD_UOP_TYPE_EXEC</name>
4540 <description>number of SIMD packing instructions</description>
4541 <value>179</value>
4542 <minimum>3000</minimum>
4543 <unit-mask>
4544 <type>bitmask</type>
4545 <default>63</default>
4546 <mask>
4547 <value>1</value>
4548 <description>SIMD packed multiplies</description>
4549 </mask>
4550 <mask>
4551 <value>2</value>
4552 <description>SIMD packed shifts</description>
4553 </mask>
4554 <mask>
4555 <value>4</value>
4556 <description>SIMD pack operations</description>
4557 </mask>
4558 <mask>
4559 <value>8</value>
4560 <description>SIMD unpack operations</description>
4561 </mask>
4562 <mask>
4563 <value>16</value>
4564 <description>SIMD packed logical</description>
4565 </mask>
4566 <mask>
4567 <value>32</value>
4568 <description>SIMD packed arithmetic</description>
4569 </mask>
4570 <mask>
4571 <value>63</value>
4572 <description>all of the above</description>
4573 </mask>
4574 </unit-mask>
4575 </event>
4576 <event>
4577 <name>INST_RETIRED</name>
4578 <description>number of instructions retired</description>
4579 <value>192</value>
4580 <minimum>6000</minimum>
4581 <unit-mask>
4582 <type>bitmask</type>
4583 <default>0</default>
4584 <mask>
4585 <value>0</value>
4586 <description>Any</description>
4587 </mask>
4588 <mask>
4589 <value>1</value>
4590 <description>Loads</description>
4591 </mask>
4592 <mask>
4593 <value>2</value>
4594 <description>Stores</description>
4595 </mask>
4596 <mask>
4597 <value>4</value>
4598 <description>Other</description>
4599 </mask>
4600 </unit-mask>
4601 </event>
4602 <event>
4603 <name>X87_OPS_RETIRED</name>
4604 <description>number of computational FP operations retired</description>
4605 <value>193</value>
4606 <minimum>500</minimum>
4607 <unit-mask>
4608 <type>exclusive</type>
4609 <default>254</default>
4610 <mask>
4611 <value>1</value>
4612 <description>FXCH instructions retired</description>
4613 </mask>
4614 <mask>
4615 <value>254</value>
4616 <description>Retired floating-point computational operations (precise)</description>
4617 </mask>
4618 </unit-mask>
4619 </event>
4620 <event>
4621 <name>UOPS_RETIRED</name>
4622 <description>number of UOPs retired</description>
4623 <value>194</value>
4624 <minimum>6000</minimum>
4625 <unit-mask>
4626 <type>bitmask</type>
4627 <default>15</default>
4628 <mask>
4629 <value>1</value>
4630 <description>Fused load+op or load+indirect branch retired</description>
4631 </mask>
4632 <mask>
4633 <value>2</value>
4634 <description>Fused store address + data retired</description>
4635 </mask>
4636 <mask>
4637 <value>4</value>
4638 <description>Retired instruction pairs fused into one micro-op</description>
4639 </mask>
4640 <mask>
4641 <value>7</value>
4642 <description>Fused micro-ops retired</description>
4643 </mask>
4644 <mask>
4645 <value>8</value>
4646 <description>Non-fused micro-ops retired</description>
4647 </mask>
4648 <mask>
4649 <value>15</value>
4650 <description>Micro-ops retired</description>
4651 </mask>
4652 </unit-mask>
4653 </event>
4654 <event>
4655 <name>MACHINE_NUKES_SMC</name>
4656 <description>number of pipeline flushing events</description>
4657 <value>195</value>
4658 <minimum>500</minimum>
4659 <unit-mask>
4660 <type>bitmask</type>
4661 <default>5</default>
4662 <mask>
4663 <value>1</value>
4664 <description>Self-Modifying Code detected</description>
4665 </mask>
4666 <mask>
4667 <value>4</value>
4668 <description>Execution pipeline restart due to memory ordering conflict or memory disambiguation misprediction</description>
4669 </mask>
4670 </unit-mask>
4671 </event>
4672 <event>
4673 <name>BR_INST_RETIRED</name>
4674 <description>number of branch instructions retired</description>
4675 <value>196</value>
4676 <minimum>500</minimum>
4677 <unit-mask>
4678 <type>bitmask</type>
4679 <default>10</default>
4680 <mask>
4681 <value>1</value>
4682 <description>predicted not-taken</description>
4683 </mask>
4684 <mask>
4685 <value>2</value>
4686 <description>mispredicted not-taken</description>
4687 </mask>
4688 <mask>
4689 <value>4</value>
4690 <description>predicted taken</description>
4691 </mask>
4692 <mask>
4693 <value>8</value>
4694 <description>mispredicted taken</description>
4695 </mask>
4696 </unit-mask>
4697 </event>
4698 <event>
4699 <name>BR_MISS_PRED_RETIRED</name>
4700 <description>number of mispredicted branches retired (precise)</description>
4701 <value>197</value>
4702 <minimum>500</minimum>
4703 <unit-mask>
4704 <type>mandatory</type>
4705 <default>0</default>
4706 <mask>
4707 <value>0</value>
4708 <description>No unit mask</description>
4709 </mask>
4710 </unit-mask>
4711 </event>
4712 <event>
4713 <name>CYCLES_INT_MASKED</name>
4714 <description>cycles interrupts are disabled</description>
4715 <value>198</value>
4716 <minimum>500</minimum>
4717 <unit-mask>
4718 <type>exclusive</type>
4719 <default>2</default>
4720 <mask>
4721 <value>1</value>
4722 <description>Interrupts disabled</description>
4723 </mask>
4724 <mask>
4725 <value>2</value>
4726 <description>Interrupts pending and disabled</description>
4727 </mask>
4728 </unit-mask>
4729 </event>
4730 <event>
4731 <name>SIMD_INST_RETIRED</name>
4732 <description>SSE/SSE2 instructions retired</description>
4733 <value>199</value>
4734 <minimum>500</minimum>
4735 <unit-mask>
4736 <type>bitmask</type>
4737 <default>31</default>
4738 <mask>
4739 <value>1</value>
4740 <description>Retired SSE packed-single instructions</description>
4741 </mask>
4742 <mask>
4743 <value>2</value>
4744 <description>Retired SSE scalar-single instructions</description>
4745 </mask>
4746 <mask>
4747 <value>4</value>
4748 <description>Retired SSE2 packed-double instructions</description>
4749 </mask>
4750 <mask>
4751 <value>8</value>
4752 <description>Retired SSE2 scalar-double instructions</description>
4753 </mask>
4754 <mask>
4755 <value>16</value>
4756 <description>Retired SSE2 vector integer instructions</description>
4757 </mask>
4758 <mask>
4759 <value>31</value>
4760 <description>Retired Streaming SIMD instructions (precise event)</description>
4761 </mask>
4762 </unit-mask>
4763 </event>
4764 <event>
4765 <name>HW_INT_RCV</name>
4766 <description>number of hardware interrupts received</description>
4767 <value>200</value>
4768 <minimum>500</minimum>
4769 <unit-mask>
4770 <type>mandatory</type>
4771 <default>0</default>
4772 <mask>
4773 <value>0</value>
4774 <description>No unit mask</description>
4775 </mask>
4776 </unit-mask>
4777 </event>
4778 <event>
4779 <name>SIMD_COMP_INST_RETIRED</name>
4780 <description>Retired computational SSE/SSE2 instructions</description>
4781 <value>202</value>
4782 <minimum>500</minimum>
4783 <unit-mask>
4784 <type>bitmask</type>
4785 <default>15</default>
4786 <mask>
4787 <value>1</value>
4788 <description>Retired computational SSE packed-single instructions</description>
4789 </mask>
4790 <mask>
4791 <value>2</value>
4792 <description>Retired computational SSE scalar-single instructions</description>
4793 </mask>
4794 <mask>
4795 <value>4</value>
4796 <description>Retired computational SSE2 packed-double instructions</description>
4797 </mask>
4798 <mask>
4799 <value>8</value>
4800 <description>Retired computational SSE2 scalar-double instructions</description>
4801 </mask>
4802 </unit-mask>
4803 </event>
4804 <event>
4805 <name>FP_MMX_TRANS</name>
4806 <description>MMX-floating point transitions</description>
4807 <value>204</value>
4808 <minimum>3000</minimum>
4809 <unit-mask>
4810 <type>bitmask</type>
4811 <default>3</default>
4812 <mask>
4813 <value>1</value>
4814 <description>float-&gt;MMX transitions</description>
4815 </mask>
4816 <mask>
4817 <value>2</value>
4818 <description>MMX-&gt;float transitions</description>
4819 </mask>
4820 </unit-mask>
4821 </event>
4822 <event>
4823 <name>MMX_ASSIST</name>
4824 <description>number of EMMS instructions executed</description>
4825 <value>205</value>
4826 <minimum>500</minimum>
4827 <unit-mask>
4828 <type>mandatory</type>
4829 <default>0</default>
4830 <mask>
4831 <value>0</value>
4832 <description>No unit mask</description>
4833 </mask>
4834 </unit-mask>
4835 </event>
4836 <event>
4837 <name>SIMD_INSTR_RET</name>
4838 <description>number of SIMD instructions retired</description>
4839 <value>206</value>
4840 <minimum>500</minimum>
4841 <unit-mask>
4842 <type>mandatory</type>
4843 <default>0</default>
4844 <mask>
4845 <value>0</value>
4846 <description>No unit mask</description>
4847 </mask>
4848 </unit-mask>
4849 </event>
4850 <event>
4851 <name>SIMD_SAT_INSTR_RET</name>
4852 <description>number of saturated arithmetic instructions retired</description>
4853 <value>207</value>
4854 <minimum>500</minimum>
4855 <unit-mask>
4856 <type>mandatory</type>
4857 <default>0</default>
4858 <mask>
4859 <value>0</value>
4860 <description>No unit mask</description>
4861 </mask>
4862 </unit-mask>
4863 </event>
4864 <event>
4865 <name>RAT_STALLS</name>
4866 <description>Partial register stall cycles</description>
4867 <value>210</value>
4868 <minimum>6000</minimum>
4869 <unit-mask>
4870 <type>bitmask</type>
4871 <default>15</default>
4872 <mask>
4873 <value>1</value>
4874 <description>ROB read port</description>
4875 </mask>
4876 <mask>
4877 <value>2</value>
4878 <description>Partial register</description>
4879 </mask>
4880 <mask>
4881 <value>4</value>
4882 <description>Flag</description>
4883 </mask>
4884 <mask>
4885 <value>8</value>
4886 <description>FPU status word</description>
4887 </mask>
4888 <mask>
4889 <value>15</value>
4890 <description>All RAT</description>
4891 </mask>
4892 </unit-mask>
4893 </event>
4894 <event>
4895 <name>SEG_RENAME_STALLS</name>
4896 <description>Segment rename stalls</description>
4897 <value>212</value>
4898 <minimum>500</minimum>
4899 <unit-mask>
4900 <type>bitmask</type>
4901 <default>15</default>
4902 <mask>
4903 <value>1</value>
4904 <description>ES</description>
4905 </mask>
4906 <mask>
4907 <value>2</value>
4908 <description>DS</description>
4909 </mask>
4910 <mask>
4911 <value>4</value>
4912 <description>FS</description>
4913 </mask>
4914 <mask>
4915 <value>8</value>
4916 <description>GS</description>
4917 </mask>
4918 </unit-mask>
4919 </event>
4920 <event>
4921 <name>SEG_RENAMES</name>
4922 <description>Segment renames</description>
4923 <value>213</value>
4924 <minimum>500</minimum>
4925 <unit-mask>
4926 <type>bitmask</type>
4927 <default>15</default>
4928 <mask>
4929 <value>1</value>
4930 <description>ES</description>
4931 </mask>
4932 <mask>
4933 <value>2</value>
4934 <description>DS</description>
4935 </mask>
4936 <mask>
4937 <value>4</value>
4938 <description>FS</description>
4939 </mask>
4940 <mask>
4941 <value>8</value>
4942 <description>GS</description>
4943 </mask>
4944 </unit-mask>
4945 </event>
4946 <event>
4947 <name>RESOURCE_STALLS</name>
4948 <description>Cycles during which resource stalls occur</description>
4949 <value>220</value>
4950 <minimum>3000</minimum>
4951 <unit-mask>
4952 <type>bitmask</type>
4953 <default>15</default>
4954 <mask>
4955 <value>1</value>
4956 <description>when the ROB is full</description>
4957 </mask>
4958 <mask>
4959 <value>2</value>
4960 <description>during which the RS is full</description>
4961 </mask>
4962 <mask>
4963 <value>4</value>
4964 <description>during which the pipeline has exceeded the load or store limit or is waiting to commit all stores</description>
4965 </mask>
4966 <mask>
4967 <value>8</value>
4968 <description>due to FPU control word write</description>
4969 </mask>
4970 <mask>
4971 <value>16</value>
4972 <description>due to branch misprediction</description>
4973 </mask>
4974 </unit-mask>
4975 </event>
4976 <event>
4977 <name>BR_INST_DECODED</name>
4978 <description>number of branch instructions decoded</description>
4979 <value>224</value>
4980 <minimum>500</minimum>
4981 <unit-mask>
4982 <type>mandatory</type>
4983 <default>0</default>
4984 <mask>
4985 <value>0</value>
4986 <description>No unit mask</description>
4987 </mask>
4988 </unit-mask>
4989 </event>
4990 <event>
4991 <name>BR_BOGUS</name>
4992 <description>number of bogus branches</description>
4993 <value>228</value>
4994 <minimum>500</minimum>
4995 <unit-mask>
4996 <type>mandatory</type>
4997 <default>0</default>
4998 <mask>
4999 <value>0</value>
5000 <description>No unit mask</description>
5001 </mask>
5002 </unit-mask>
5003 </event>
5004 <event>
5005 <name>BACLEARS</name>
5006 <description>number of times BACLEAR is asserted</description>
5007 <value>230</value>
5008 <minimum>500</minimum>
5009 <unit-mask>
5010 <type>mandatory</type>
5011 <default>0</default>
5012 <mask>
5013 <value>0</value>
5014 <description>No unit mask</description>
5015 </mask>
5016 </unit-mask>
5017 </event>
5018 <event>
5019 <name>PREF_RQSTS_UP</name>
5020 <description>Number of upward prefetches issued</description>
5021 <value>240</value>
5022 <minimum>3000</minimum>
5023 <unit-mask>
5024 <type>mandatory</type>
5025 <default>0</default>
5026 <mask>
5027 <value>0</value>
5028 <description>No unit mask</description>
5029 </mask>
5030 </unit-mask>
5031 </event>
5032 <event>
5033 <name>PREF_RQSTS_DN</name>
5034 <description>Number of downward prefetches issued</description>
5035 <value>248</value>
5036 <minimum>3000</minimum>
5037 <unit-mask>
5038 <type>mandatory</type>
5039 <default>0</default>
5040 <mask>
5041 <value>0</value>
5042 <description>No unit mask</description>
5043 </mask>
5044 </unit-mask>
5045 </event>
5046 </event-list>
5047 </info>
+0
-638
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_info_pre_parse_raw.xml less more
0 <help_events>
1 <header title="oprofile: available events for CPU type &quot;Core 2&quot;
2
3 " schemaversion="1.0" doc="See Intel Architecture Developer's Manual Volume 3B, Appendix A and
4 Intel Architecture Optimization Reference Manual (730795-001)
5
6 "/>
7 <event event_name="CPU_CLK_UNHALTED" desc="Clock cycles when not halted" counter_mask="3" min_count="6000">
8 <unit_masks default="0">
9 <unit_mask mask="0" desc="Unhalted core cycles"/>
10 <unit_mask mask="1" desc="Unhalted bus cycles"/>
11 <unit_mask mask="2" desc="Unhalted bus cycles of this core while the other core is halted"/>
12 </unit_masks>
13 </event>
14 <event event_name="INST_RETIRED_ANY_P" desc="number of instructions retired" counter_mask="3" min_count="6000"/>
15 <event event_name="L2_RQSTS" desc="number of L2 cache requests" counter_mask="3" min_count="500">
16 <unit_masks default="127">
17 <unit_mask mask="192" desc="core: all cores"/>
18 <unit_mask mask="64" desc="core: this core"/>
19 <unit_mask mask="48" desc="prefetch: all inclusive"/>
20 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
21 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
22 <unit_mask mask="8" desc="(M)ESI: Modified"/>
23 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
24 <unit_mask mask="2" desc="ME(S)I: Shared"/>
25 <unit_mask mask="1" desc="MES(I): Invalid"/>
26 </unit_masks>
27 </event>
28 <event event_name="LLC_MISSES" desc="L2 cache demand requests from this core that missed the L2" counter_mask="3" min_count="6000">
29 <unit_masks default="65">
30 <unit_mask mask="65" desc="No unit mask"/>
31 </unit_masks>
32 </event>
33 <event event_name="LLC_REFS" desc="L2 cache demand requests from this core" counter_mask="3" min_count="6000">
34 <unit_masks default="79">
35 <unit_mask mask="79" desc="No unit mask"/>
36 </unit_masks>
37 </event>
38 <event event_name="LOAD_BLOCK" desc="events pertaining to loads" counter_mask="3" min_count="500">
39 <unit_masks default="62">
40 <unit_mask mask="2" desc="STA Loads blocked by a preceding store with unknown address."/>
41 <unit_mask mask="4" desc="STD Loads blocked by a preceding store with unknown data."/>
42 <unit_mask mask="8" desc="OVERLAP_STORE Loads that partially overlap an earlier store, or 4K aliased with a previous store."/>
43 <unit_mask mask="16" desc="UNTIL_RETIRE Loads blocked until retirement."/>
44 <unit_mask mask="32" desc="L1D Loads blocked by the L1 data cache."/>
45 </unit_masks>
46 </event>
47 <event event_name="STORE_BLOCK" desc="events pertaining to stores" counter_mask="3" min_count="500">
48 <unit_masks default="11">
49 <unit_mask mask="1" desc="SB_DRAIN_CYCLES Cycles while stores are blocked due to store buffer drain."/>
50 <unit_mask mask="2" desc="ORDER Cycles while store is waiting for a preceding store to be globally observed."/>
51 <unit_mask mask="8" desc="NOOP A store is blocked due to a conflict with an external or internal snoop."/>
52 </unit_masks>
53 </event>
54 <event event_name="MISALIGN_MEM_REF" desc="number of misaligned data memory references" counter_mask="3" min_count="500"/>
55 <event event_name="SEGMENT_REG_LOADS" desc="number of segment register loads" counter_mask="3" min_count="500"/>
56 <event event_name="SSE_PRE_EXEC" desc="number of SSE pre-fetch/weakly ordered insns retired" counter_mask="3" min_count="500">
57 <unit_masks default="0">
58 <unit_mask mask="0" desc="prefetch NTA instructions executed."/>
59 <unit_mask mask="1" desc="prefetch T1 instructions executed."/>
60 <unit_mask mask="2" desc="prefetch T1 and T2 instructions executed."/>
61 <unit_mask mask="3" desc="SSE weakly-ordered stores"/>
62 </unit_masks>
63 </event>
64 <event event_name="DTLB_MISSES" desc="DTLB miss events" counter_mask="3" min_count="500">
65 <unit_masks default="15">
66 <unit_mask mask="1" desc="ANY Memory accesses that missed the DTLB."/>
67 <unit_mask mask="2" desc="MISS_LD DTLB misses due to load operations."/>
68 <unit_mask mask="4" desc="L0_MISS_LD L0 DTLB misses due to load operations."/>
69 <unit_mask mask="8" desc="MISS_ST TLB misses due to store operations."/>
70 </unit_masks>
71 </event>
72 <event event_name="MEMORY_DISAMBIGUATION" desc="Memory disambiguation reset cycles." counter_mask="3" min_count="1000">
73 <unit_masks default="1">
74 <unit_mask mask="1" desc="RESET Memory disambiguation reset cycles."/>
75 <unit_mask mask="2" desc="SUCCESS Number of loads that were successfully disambiguated."/>
76 </unit_masks>
77 </event>
78 <event event_name="PAGE_WALKS" desc="Page table walk events" counter_mask="3" min_count="500">
79 <unit_masks default="2">
80 <unit_mask mask="1" desc="COUNT Number of page-walks executed."/>
81 <unit_mask mask="2" desc="CYCLES Duration of page-walks in core cycles."/>
82 </unit_masks>
83 </event>
84 <event event_name="FLOPS" desc="number of FP computational micro-ops executed" counter_mask="3" min_count="3000"/>
85 <event event_name="FP_ASSIST" desc="number of FP assists" counter_mask="3" min_count="500"/>
86 <event event_name="MUL" desc="number of multiplies" counter_mask="3" min_count="1000"/>
87 <event event_name="DIV" desc="number of divides" counter_mask="3" min_count="500"/>
88 <event event_name="CYCLES_DIV_BUSY" desc="cycles divider is busy" counter_mask="3" min_count="1000"/>
89 <event event_name="IDLE_DURING_DIV" desc="cycles divider is busy and all other execution units are idle." counter_mask="3" min_count="1000"/>
90 <event event_name="DELAYED_BYPASS" desc="Delayed bypass events" counter_mask="3" min_count="1000">
91 <unit_masks default="0">
92 <unit_mask mask="0" desc="FP Delayed bypass to FP operation."/>
93 <unit_mask mask="1" desc="SIMD Delayed bypass to SIMD operation."/>
94 <unit_mask mask="2" desc="LOAD Delayed bypass to load operation."/>
95 </unit_masks>
96 </event>
97 <event event_name="L2_ADS" desc="Cycles the L2 address bus is in use." counter_mask="3" min_count="500">
98 <unit_masks default="64">
99 <unit_mask mask="192" desc="All cores"/>
100 <unit_mask mask="64" desc="This core"/>
101 </unit_masks>
102 </event>
103 <event event_name="L2_DBUS_BUSY_RD" desc="Cycles the L2 transfers data to the core." counter_mask="3" min_count="500">
104 <unit_masks default="64">
105 <unit_mask mask="192" desc="All cores"/>
106 <unit_mask mask="64" desc="This core"/>
107 </unit_masks>
108 </event>
109 <event event_name="L2_LINES_IN" desc="number of allocated lines in L2" counter_mask="3" min_count="500">
110 <unit_masks default="112">
111 <unit_mask mask="192" desc="core: all cores"/>
112 <unit_mask mask="64" desc="core: this core"/>
113 <unit_mask mask="48" desc="prefetch: all inclusive"/>
114 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
115 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
116 </unit_masks>
117 </event>
118 <event event_name="L2_M_LINES_IN" desc="number of modified lines allocated in L2" counter_mask="3" min_count="500">
119 <unit_masks default="64">
120 <unit_mask mask="192" desc="All cores"/>
121 <unit_mask mask="64" desc="This core"/>
122 </unit_masks>
123 </event>
124 <event event_name="L2_LINES_OUT" desc="number of recovered lines from L2" counter_mask="3" min_count="500">
125 <unit_masks default="112">
126 <unit_mask mask="192" desc="core: all cores"/>
127 <unit_mask mask="64" desc="core: this core"/>
128 <unit_mask mask="48" desc="prefetch: all inclusive"/>
129 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
130 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
131 </unit_masks>
132 </event>
133 <event event_name="L2_M_LINES_OUT" desc="number of modified lines removed from L2" counter_mask="3" min_count="500">
134 <unit_masks default="112">
135 <unit_mask mask="192" desc="core: all cores"/>
136 <unit_mask mask="64" desc="core: this core"/>
137 <unit_mask mask="48" desc="prefetch: all inclusive"/>
138 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
139 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
140 </unit_masks>
141 </event>
142 <event event_name="L2_IFETCH" desc="number of L2 cacheable instruction fetches" counter_mask="3" min_count="500">
143 <unit_masks default="79">
144 <unit_mask mask="192" desc="core: all cores"/>
145 <unit_mask mask="64" desc="core: this core"/>
146 <unit_mask mask="8" desc="(M)ESI: Modified"/>
147 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
148 <unit_mask mask="2" desc="ME(S)I: Shared"/>
149 <unit_mask mask="1" desc="MES(I): Invalid"/>
150 </unit_masks>
151 </event>
152 <event event_name="L2_LD" desc="number of L2 data loads" counter_mask="3" min_count="500">
153 <unit_masks default="127">
154 <unit_mask mask="192" desc="core: all cores"/>
155 <unit_mask mask="64" desc="core: this core"/>
156 <unit_mask mask="48" desc="prefetch: all inclusive"/>
157 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
158 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
159 <unit_mask mask="8" desc="(M)ESI: Modified"/>
160 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
161 <unit_mask mask="2" desc="ME(S)I: Shared"/>
162 <unit_mask mask="1" desc="MES(I): Invalid"/>
163 </unit_masks>
164 </event>
165 <event event_name="L2_ST" desc="number of L2 data stores" counter_mask="3" min_count="500">
166 <unit_masks default="79">
167 <unit_mask mask="192" desc="core: all cores"/>
168 <unit_mask mask="64" desc="core: this core"/>
169 <unit_mask mask="8" desc="(M)ESI: Modified"/>
170 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
171 <unit_mask mask="2" desc="ME(S)I: Shared"/>
172 <unit_mask mask="1" desc="MES(I): Invalid"/>
173 </unit_masks>
174 </event>
175 <event event_name="L2_LOCK" desc="number of locked L2 data accesses" counter_mask="3" min_count="500">
176 <unit_masks default="79">
177 <unit_mask mask="192" desc="core: all cores"/>
178 <unit_mask mask="64" desc="core: this core"/>
179 <unit_mask mask="8" desc="(M)ESI: Modified"/>
180 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
181 <unit_mask mask="2" desc="ME(S)I: Shared"/>
182 <unit_mask mask="1" desc="MES(I): Invalid"/>
183 </unit_masks>
184 </event>
185 <event event_name="L2_REJECT_BUSQ" desc="Rejected L2 cache requests" counter_mask="3" min_count="500">
186 <unit_masks default="127">
187 <unit_mask mask="192" desc="core: all cores"/>
188 <unit_mask mask="64" desc="core: this core"/>
189 <unit_mask mask="48" desc="prefetch: all inclusive"/>
190 <unit_mask mask="16" desc="prefetch: Hardware prefetch only"/>
191 <unit_mask mask="0" desc="prefetch: exclude hardware prefetch"/>
192 <unit_mask mask="8" desc="(M)ESI: Modified"/>
193 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
194 <unit_mask mask="2" desc="ME(S)I: Shared"/>
195 <unit_mask mask="1" desc="MES(I): Invalid"/>
196 </unit_masks>
197 </event>
198 <event event_name="L2_NO_REQ" desc="Cycles no L2 cache requests are pending" counter_mask="3" min_count="500">
199 <unit_masks default="64">
200 <unit_mask mask="192" desc="All cores"/>
201 <unit_mask mask="64" desc="This core"/>
202 </unit_masks>
203 </event>
204 <event event_name="EIST_TRANS_ALL" desc="Intel(tm) Enhanced SpeedStep(r) Technology transitions" counter_mask="3" min_count="500"/>
205 <event event_name="THERMAL_TRIP" desc="Number of thermal trips" counter_mask="3" min_count="500">
206 <unit_masks default="192">
207 <unit_mask mask="192" desc="No unit mask"/>
208 </unit_masks>
209 </event>
210 <event event_name="L1D_CACHE_LD" desc="L1 cacheable data read operations" counter_mask="3" min_count="500">
211 <unit_masks default="15">
212 <unit_mask mask="8" desc="(M)ESI: Modified"/>
213 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
214 <unit_mask mask="2" desc="ME(S)I: Shared"/>
215 <unit_mask mask="1" desc="MES(I): Invalid"/>
216 </unit_masks>
217 </event>
218 <event event_name="L1D_CACHE_ST" desc="L1 cacheable data write operations" counter_mask="3" min_count="500">
219 <unit_masks default="15">
220 <unit_mask mask="8" desc="(M)ESI: Modified"/>
221 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
222 <unit_mask mask="2" desc="ME(S)I: Shared"/>
223 <unit_mask mask="1" desc="MES(I): Invalid"/>
224 </unit_masks>
225 </event>
226 <event event_name="L1D_CACHE_LOCK" desc="L1 cacheable lock read operations" counter_mask="3" min_count="500">
227 <unit_masks default="15">
228 <unit_mask mask="8" desc="(M)ESI: Modified"/>
229 <unit_mask mask="4" desc="M(E)SI: Exclusive"/>
230 <unit_mask mask="2" desc="ME(S)I: Shared"/>
231 <unit_mask mask="1" desc="MES(I): Invalid"/>
232 </unit_masks>
233 </event>
234 <event event_name="L1D_CACHE_LOCK_DURATION" desc="Duration of L1 data cacheable locked operations" counter_mask="3" min_count="500">
235 <unit_masks default="16">
236 <unit_mask mask="16" desc="No unit mask"/>
237 </unit_masks>
238 </event>
239 <event event_name="L1D_ALL_REF" desc="All references to the L1 data cache" counter_mask="3" min_count="500">
240 <unit_masks default="16">
241 <unit_mask mask="16" desc="No unit mask"/>
242 </unit_masks>
243 </event>
244 <event event_name="L1D_ALL_CACHE_REF" desc="L1 data cacheable reads and writes" counter_mask="3" min_count="500">
245 <unit_masks default="2">
246 <unit_mask mask="2" desc="No unit mask"/>
247 </unit_masks>
248 </event>
249 <event event_name="L1D_REPL" desc="Cache lines allocated in the L1 data cache" counter_mask="3" min_count="500">
250 <unit_masks default="15">
251 <unit_mask mask="15" desc="No unit mask"/>
252 </unit_masks>
253 </event>
254 <event event_name="L1D_M_REPL" desc="Modified cache lines allocated in the L1 data cache" counter_mask="3" min_count="500"/>
255 <event event_name="L1D_M_EVICT" desc="Modified cache lines evicted from the L1 data cache" counter_mask="3" min_count="500"/>
256 <event event_name="L1D_PEND_MISS" desc="Total number of outstanding L1 data cache misses at any cycle" counter_mask="3" min_count="500"/>
257 <event event_name="L1D_SPLIT" desc="Cache line split load/stores" counter_mask="3" min_count="500">
258 <unit_masks default="1">
259 <unit_mask mask="1" desc="split loads"/>
260 <unit_mask mask="2" desc="split stores"/>
261 </unit_masks>
262 </event>
263 <event event_name="SSE_PREF_MISS" desc="SSE instructions that missed all caches" counter_mask="3" min_count="500">
264 <unit_masks default="0">
265 <unit_mask mask="0" desc="PREFETCHNTA"/>
266 <unit_mask mask="1" desc="PREFETCHT0"/>
267 <unit_mask mask="2" desc="PREFETCHT1/PREFETCHT2"/>
268 </unit_masks>
269 </event>
270 <event event_name="LOAD_HIT_PRE" desc="Load operations conflicting with a software prefetch to the same address" counter_mask="3" min_count="500"/>
271 <event event_name="L1D_PREFETCH" desc="L1 data cache prefetch requests" counter_mask="3" min_count="500">
272 <unit_masks default="16">
273 <unit_mask mask="16" desc="No unit mask"/>
274 </unit_masks>
275 </event>
276 <event event_name="BUS_REQ_OUTSTANDING" desc="Outstanding cacheable data read bus requests duration" counter_mask="3" min_count="500">
277 <unit_masks default="64">
278 <unit_mask mask="192" desc="core: all cores"/>
279 <unit_mask mask="64" desc="core: this core"/>
280 <unit_mask mask="0" desc="bus: this agent"/>
281 <unit_mask mask="32" desc="bus: include all agents"/>
282 </unit_masks>
283 </event>
284 <event event_name="BUS_BNR_DRV" desc="Number of Bus Not Ready signals asserted" counter_mask="3" min_count="500">
285 <unit_masks default="0">
286 <unit_mask mask="0" desc="this agent"/>
287 <unit_mask mask="32" desc="include all agents"/>
288 </unit_masks>
289 </event>
290 <event event_name="BUS_DRDY_CLOCKS" desc="Bus cycles when data is sent on the bus" counter_mask="3" min_count="500">
291 <unit_masks default="0">
292 <unit_mask mask="0" desc="this agent"/>
293 <unit_mask mask="32" desc="include all agents"/>
294 </unit_masks>
295 </event>
296 <event event_name="BUS_LOCK_CLOCKS" desc="Bus cycles when a LOCK signal is asserted" counter_mask="3" min_count="500">
297 <unit_masks default="64">
298 <unit_mask mask="192" desc="core: all cores"/>
299 <unit_mask mask="64" desc="core: this core"/>
300 <unit_mask mask="0" desc="bus: this agent"/>
301 <unit_mask mask="32" desc="bus: include all agents"/>
302 </unit_masks>
303 </event>
304 <event event_name="BUS_DATA_RCV" desc="Bus cycles while processor receives data" counter_mask="3" min_count="500">
305 <unit_masks default="64">
306 <unit_mask mask="192" desc="core: all cores"/>
307 <unit_mask mask="64" desc="core: this core"/>
308 <unit_mask mask="0" desc="bus: this agent"/>
309 <unit_mask mask="32" desc="bus: include all agents"/>
310 </unit_masks>
311 </event>
312 <event event_name="BUS_TRAN_BRD" desc="Burst read bus transactions" counter_mask="3" min_count="500">
313 <unit_masks default="64">
314 <unit_mask mask="192" desc="core: all cores"/>
315 <unit_mask mask="64" desc="core: this core"/>
316 <unit_mask mask="0" desc="bus: this agent"/>
317 <unit_mask mask="32" desc="bus: include all agents"/>
318 </unit_masks>
319 </event>
320 <event event_name="BUS_TRAN_RFO" desc="number of completed read for ownership transactions" counter_mask="3" min_count="500">
321 <unit_masks default="64">
322 <unit_mask mask="192" desc="core: all cores"/>
323 <unit_mask mask="64" desc="core: this core"/>
324 <unit_mask mask="0" desc="bus: this agent"/>
325 <unit_mask mask="32" desc="bus: include all agents"/>
326 </unit_masks>
327 </event>
328 <event event_name="BUS_TRAN_WB" desc="number of explicit writeback bus transactions" counter_mask="3" min_count="500">
329 <unit_masks default="64">
330 <unit_mask mask="192" desc="core: all cores"/>
331 <unit_mask mask="64" desc="core: this core"/>
332 <unit_mask mask="0" desc="bus: this agent"/>
333 <unit_mask mask="32" desc="bus: include all agents"/>
334 </unit_masks>
335 </event>
336 <event event_name="BUS_TRAN_IFETCH" desc="number of instruction fetch transactions" counter_mask="3" min_count="500">
337 <unit_masks default="64">
338 <unit_mask mask="192" desc="core: all cores"/>
339 <unit_mask mask="64" desc="core: this core"/>
340 <unit_mask mask="0" desc="bus: this agent"/>
341 <unit_mask mask="32" desc="bus: include all agents"/>
342 </unit_masks>
343 </event>
344 <event event_name="BUS_TRAN_INVAL" desc="number of invalidate transactions" counter_mask="3" min_count="500">
345 <unit_masks default="64">
346 <unit_mask mask="192" desc="core: all cores"/>
347 <unit_mask mask="64" desc="core: this core"/>
348 <unit_mask mask="0" desc="bus: this agent"/>
349 <unit_mask mask="32" desc="bus: include all agents"/>
350 </unit_masks>
351 </event>
352 <event event_name="BUS_TRAN_PWR" desc="number of partial write bus transactions" counter_mask="3" min_count="500">
353 <unit_masks default="64">
354 <unit_mask mask="192" desc="core: all cores"/>
355 <unit_mask mask="64" desc="core: this core"/>
356 <unit_mask mask="0" desc="bus: this agent"/>
357 <unit_mask mask="32" desc="bus: include all agents"/>
358 </unit_masks>
359 </event>
360 <event event_name="BUS_TRANS_P" desc="number of partial bus transactions" counter_mask="3" min_count="500">
361 <unit_masks default="64">
362 <unit_mask mask="192" desc="core: all cores"/>
363 <unit_mask mask="64" desc="core: this core"/>
364 <unit_mask mask="0" desc="bus: this agent"/>
365 <unit_mask mask="32" desc="bus: include all agents"/>
366 </unit_masks>
367 </event>
368 <event event_name="BUS_TRANS_IO" desc="number of I/O bus transactions" counter_mask="3" min_count="500">
369 <unit_masks default="64">
370 <unit_mask mask="192" desc="core: all cores"/>
371 <unit_mask mask="64" desc="core: this core"/>
372 <unit_mask mask="0" desc="bus: this agent"/>
373 <unit_mask mask="32" desc="bus: include all agents"/>
374 </unit_masks>
375 </event>
376 <event event_name="BUS_TRANS_DEF" desc="number of completed defer transactions" counter_mask="3" min_count="500">
377 <unit_masks default="64">
378 <unit_mask mask="192" desc="core: all cores"/>
379 <unit_mask mask="64" desc="core: this core"/>
380 <unit_mask mask="0" desc="bus: this agent"/>
381 <unit_mask mask="32" desc="bus: include all agents"/>
382 </unit_masks>
383 </event>
384 <event event_name="BUS_TRAN_BURST" desc="number of completed burst transactions" counter_mask="3" min_count="500">
385 <unit_masks default="64">
386 <unit_mask mask="192" desc="core: all cores"/>
387 <unit_mask mask="64" desc="core: this core"/>
388 <unit_mask mask="0" desc="bus: this agent"/>
389 <unit_mask mask="32" desc="bus: include all agents"/>
390 </unit_masks>
391 </event>
392 <event event_name="BUS_TRAN_MEM" desc="number of completed memory transactions" counter_mask="3" min_count="500">
393 <unit_masks default="64">
394 <unit_mask mask="192" desc="core: all cores"/>
395 <unit_mask mask="64" desc="core: this core"/>
396 <unit_mask mask="0" desc="bus: this agent"/>
397 <unit_mask mask="32" desc="bus: include all agents"/>
398 </unit_masks>
399 </event>
400 <event event_name="BUS_TRAN_ANY" desc="number of any completed bus transactions" counter_mask="3" min_count="500">
401 <unit_masks default="64">
402 <unit_mask mask="192" desc="core: all cores"/>
403 <unit_mask mask="64" desc="core: this core"/>
404 <unit_mask mask="0" desc="bus: this agent"/>
405 <unit_mask mask="32" desc="bus: include all agents"/>
406 </unit_masks>
407 </event>
408 <event event_name="EXT_SNOOP" desc="External snoops" counter_mask="3" min_count="500">
409 <unit_masks default="11">
410 <unit_mask mask="0" desc="bus: this agent"/>
411 <unit_mask mask="32" desc="bus: include all agents"/>
412 <unit_mask mask="8" desc="snoop: HITM snoops"/>
413 <unit_mask mask="2" desc="snoop: HIT snoops"/>
414 <unit_mask mask="1" desc="snoop: CLEAN snoops"/>
415 </unit_masks>
416 </event>
417 <event event_name="CMP_SNOOP" desc="L1 data cache is snooped by other core" counter_mask="3" min_count="500">
418 <unit_masks default="64">
419 <unit_mask mask="192" desc="core: all cores"/>
420 <unit_mask mask="64" desc="core: this core"/>
421 <unit_mask mask="1" desc="snoop: CMP2I snoops"/>
422 <unit_mask mask="2" desc="snoop: CMP2S snoops"/>
423 </unit_masks>
424 </event>
425 <event event_name="BUS_HIT_DRV" desc="HIT signal asserted" counter_mask="3" min_count="500">
426 <unit_masks default="0">
427 <unit_mask mask="0" desc="this agent"/>
428 <unit_mask mask="32" desc="include all agents"/>
429 </unit_masks>
430 </event>
431 <event event_name="BUS_HITM_DRV" desc="HITM signal asserted" counter_mask="3" min_count="500">
432 <unit_masks default="0">
433 <unit_mask mask="0" desc="this agent"/>
434 <unit_mask mask="32" desc="include all agents"/>
435 </unit_masks>
436 </event>
437 <event event_name="BUSQ_EMPTY" desc="Bus queue is empty" counter_mask="3" min_count="500">
438 <unit_masks default="64">
439 <unit_mask mask="192" desc="All cores"/>
440 <unit_mask mask="64" desc="This core"/>
441 </unit_masks>
442 </event>
443 <event event_name="SNOOP_STALL_DRV" desc="Bus stalled for snoops" counter_mask="3" min_count="500">
444 <unit_masks default="64">
445 <unit_mask mask="192" desc="core: all cores"/>
446 <unit_mask mask="64" desc="core: this core"/>
447 <unit_mask mask="0" desc="bus: this agent"/>
448 <unit_mask mask="32" desc="bus: include all agents"/>
449 </unit_masks>
450 </event>
451 <event event_name="BUS_IO_WAIT" desc="IO requests waiting in the bus queue" counter_mask="3" min_count="500">
452 <unit_masks default="64">
453 <unit_mask mask="192" desc="All cores"/>
454 <unit_mask mask="64" desc="This core"/>
455 </unit_masks>
456 </event>
457 <event event_name="L1I_READS" desc="number of instruction fetches" counter_mask="3" min_count="500"/>
458 <event event_name="L1I_MISSES" desc="number of instruction fetch misses" counter_mask="3" min_count="500"/>
459 <event event_name="ITLB" desc="number of ITLB misses" counter_mask="3" min_count="500">
460 <unit_masks default="18">
461 <unit_mask mask="2" desc="ITLB small page misses"/>
462 <unit_mask mask="16" desc="ITLB large page misses"/>
463 <unit_mask mask="64" desc="ITLB flushes"/>
464 </unit_masks>
465 </event>
466 <event event_name="INST_QUEUE_FULL" desc="cycles during which the instruction queue is full" counter_mask="3" min_count="500">
467 <unit_masks default="2">
468 <unit_mask mask="2" desc="No unit mask"/>
469 </unit_masks>
470 </event>
471 <event event_name="IFU_MEM_STALL" desc="cycles instruction fetch pipe is stalled" counter_mask="3" min_count="500"/>
472 <event event_name="ILD_STALL" desc="cycles instruction length decoder is stalled" counter_mask="3" min_count="500"/>
473 <event event_name="BR_INST_EXEC" desc="Branch instructions executed (not necessarily retired)" counter_mask="3" min_count="3000"/>
474 <event event_name="BR_MISSP_EXEC" desc="Branch instructions executed that were mispredicted at execution" counter_mask="3" min_count="3000"/>
475 <event event_name="BR_BAC_MISSP_EXEC" desc="Branch instructions executed that were mispredicted at Front End (BAC)" counter_mask="3" min_count="3000"/>
476 <event event_name="BR_CND_EXEC" desc="Conditional Branch instructions executed" counter_mask="3" min_count="3000"/>
477 <event event_name="BR_CND_MISSP_EXEC" desc="Conditional Branch instructions executed that were mispredicted" counter_mask="3" min_count="3000"/>
478 <event event_name="BR_IND_EXEC" desc="Indirect Branch instructions executed" counter_mask="3" min_count="3000"/>
479 <event event_name="BR_IND_MISSP_EXEC" desc="Indirect Branch instructions executed that were mispredicted" counter_mask="3" min_count="3000"/>
480 <event event_name="BR_RET_EXEC" desc="Return Branch instructions executed" counter_mask="3" min_count="3000"/>
481 <event event_name="BR_RET_MISSP_EXEC" desc="Return Branch instructions executed that were mispredicted at Execution" counter_mask="3" min_count="3000"/>
482 <event event_name="BR_RET_BAC_MISSP_EXEC" desc="Branch instructions executed that were mispredicted at Front End (BAC)" counter_mask="3" min_count="3000"/>
483 <event event_name="BR_CALL_EXEC" desc="CALL instruction executed" counter_mask="3" min_count="3000"/>
484 <event event_name="BR_CALL_MISSP_EXEC" desc="CALL instruction executed and miss predicted" counter_mask="3" min_count="3000"/>
485 <event event_name="BR_IND_CALL_EXEC" desc="Indirect CALL instruction executed" counter_mask="3" min_count="3000"/>
486 <event event_name="BR_TKN_BUBBLE_1" desc="Branch predicted taken with bubble 1" counter_mask="3" min_count="3000"/>
487 <event event_name="BR_TKN_BUBBLE_2" desc="Branch predicted taken with bubble 2" counter_mask="3" min_count="3000"/>
488 <event event_name="RS_UOPS_DISPATCHED" desc="Micro-ops dispatched for execution" counter_mask="3" min_count="1000"/>
489 <event event_name="RS_UOPS_DISPATCHED_NONE" desc="No Micro-ops dispatched for execution" counter_mask="3" min_count="1000"/>
490 <event event_name="MACRO_INSTS" desc="instructions decoded" counter_mask="3" min_count="500">
491 <unit_masks default="9">
492 <unit_mask mask="1" desc="Instructions decoded"/>
493 <unit_mask mask="8" desc="CISC Instructions decoded"/>
494 </unit_masks>
495 </event>
496 <event event_name="ESP" desc="ESP register events" counter_mask="3" min_count="500">
497 <unit_masks default="1">
498 <unit_mask mask="1" desc="ESP register content synchronizations"/>
499 <unit_mask mask="2" desc="ESP register automatic additions"/>
500 </unit_masks>
501 </event>
502 <event event_name="SIMD_UOPS_EXEC" desc="SIMD micro-ops executed (excluding stores)" counter_mask="3" min_count="500"/>
503 <event event_name="SIMD_SAT_UOP_EXEC" desc="number of SIMD saturating instructions executed" counter_mask="3" min_count="3000"/>
504 <event event_name="SIMD_UOP_TYPE_EXEC" desc="number of SIMD packing instructions" counter_mask="3" min_count="3000">
505 <unit_masks default="63">
506 <unit_mask mask="1" desc="SIMD packed multiplies"/>
507 <unit_mask mask="2" desc="SIMD packed shifts"/>
508 <unit_mask mask="4" desc="SIMD pack operations"/>
509 <unit_mask mask="8" desc="SIMD unpack operations"/>
510 <unit_mask mask="16" desc="SIMD packed logical"/>
511 <unit_mask mask="32" desc="SIMD packed arithmetic"/>
512 <unit_mask mask="63" desc="all of the above"/>
513 </unit_masks>
514 </event>
515 <event event_name="INST_RETIRED" desc="number of instructions retired" counter_mask="3" min_count="6000">
516 <unit_masks default="0">
517 <unit_mask mask="0" desc="Any"/>
518 <unit_mask mask="1" desc="Loads"/>
519 <unit_mask mask="2" desc="Stores"/>
520 <unit_mask mask="4" desc="Other"/>
521 </unit_masks>
522 </event>
523 <event event_name="X87_OPS_RETIRED" desc="number of computational FP operations retired" counter_mask="3" min_count="500">
524 <unit_masks default="254">
525 <unit_mask mask="1" desc="FXCH instructions retired"/>
526 <unit_mask mask="254" desc="Retired floating-point computational operations (precise)"/>
527 </unit_masks>
528 </event>
529 <event event_name="UOPS_RETIRED" desc="number of UOPs retired" counter_mask="3" min_count="6000">
530 <unit_masks default="15">
531 <unit_mask mask="1" desc="Fused load+op or load+indirect branch retired"/>
532 <unit_mask mask="2" desc="Fused store address + data retired"/>
533 <unit_mask mask="4" desc="Retired instruction pairs fused into one micro-op"/>
534 <unit_mask mask="7" desc="Fused micro-ops retired"/>
535 <unit_mask mask="8" desc="Non-fused micro-ops retired"/>
536 <unit_mask mask="15" desc="Micro-ops retired"/>
537 </unit_masks>
538 </event>
539 <event event_name="MACHINE_NUKES_SMC" desc="number of pipeline flushing events" counter_mask="3" min_count="500">
540 <unit_masks default="5">
541 <unit_mask mask="1" desc="Self-Modifying Code detected"/>
542 <unit_mask mask="4" desc="Execution pipeline restart due to memory ordering conflict or memory disambiguation misprediction"/>
543 </unit_masks>
544 </event>
545 <event event_name="BR_INST_RETIRED" desc="number of branch instructions retired" counter_mask="3" min_count="500">
546 <unit_masks default="10">
547 <unit_mask mask="1" desc="predicted not-taken"/>
548 <unit_mask mask="2" desc="mispredicted not-taken"/>
549 <unit_mask mask="4" desc="predicted taken"/>
550 <unit_mask mask="8" desc="mispredicted taken"/>
551 </unit_masks>
552 </event>
553 <event event_name="BR_MISS_PRED_RETIRED" desc="number of mispredicted branches retired (precise)" counter_mask="3" min_count="500"/>
554 <event event_name="CYCLES_INT_MASKED" desc="cycles interrupts are disabled" counter_mask="3" min_count="500">
555 <unit_masks default="2">
556 <unit_mask mask="1" desc="Interrupts disabled"/>
557 <unit_mask mask="2" desc="Interrupts pending and disabled"/>
558 </unit_masks>
559 </event>
560 <event event_name="SIMD_INST_RETIRED" desc="SSE/SSE2 instructions retired" counter_mask="3" min_count="500">
561 <unit_masks default="31">
562 <unit_mask mask="1" desc="Retired SSE packed-single instructions"/>
563 <unit_mask mask="2" desc="Retired SSE scalar-single instructions"/>
564 <unit_mask mask="4" desc="Retired SSE2 packed-double instructions"/>
565 <unit_mask mask="8" desc="Retired SSE2 scalar-double instructions"/>
566 <unit_mask mask="16" desc="Retired SSE2 vector integer instructions"/>
567 <unit_mask mask="31" desc="Retired Streaming SIMD instructions (precise event)"/>
568 </unit_masks>
569 </event>
570 <event event_name="HW_INT_RCV" desc="number of hardware interrupts received" counter_mask="3" min_count="500"/>
571 <event event_name="ITLB_MISS_RETIRED" desc="Retired instructions that missed the ITLB" counter_mask="1" min_count="500"/>
572 <event event_name="SIMD_COMP_INST_RETIRED" desc="Retired computational SSE/SSE2 instructions" counter_mask="3" min_count="500">
573 <unit_masks default="15">
574 <unit_mask mask="1" desc="Retired computational SSE packed-single instructions"/>
575 <unit_mask mask="2" desc="Retired computational SSE scalar-single instructions"/>
576 <unit_mask mask="4" desc="Retired computational SSE2 packed-double instructions"/>
577 <unit_mask mask="8" desc="Retired computational SSE2 scalar-double instructions"/>
578 </unit_masks>
579 </event>
580 <event event_name="MEM_LOAD_RETIRED" desc="Retired loads" counter_mask="1" min_count="500">
581 <unit_masks default="1">
582 <unit_mask mask="1" desc="Retired loads that miss the L1 data cache (precise event)"/>
583 <unit_mask mask="2" desc="L1 data cache line missed by retired loads (precise event)"/>
584 <unit_mask mask="4" desc="Retired loads that miss the L2 cache (precise event)"/>
585 <unit_mask mask="8" desc="L2 cache line missed by retired loads (precise event)"/>
586 <unit_mask mask="16" desc="Retired loads that miss the DTLB (precise event)"/>
587 </unit_masks>
588 </event>
589 <event event_name="FP_MMX_TRANS" desc="MMX-floating point transitions" counter_mask="3" min_count="3000">
590 <unit_masks default="3">
591 <unit_mask mask="1" desc="float-&gt;MMX transitions"/>
592 <unit_mask mask="2" desc="MMX-&gt;float transitions"/>
593 </unit_masks>
594 </event>
595 <event event_name="MMX_ASSIST" desc="number of EMMS instructions executed" counter_mask="3" min_count="500"/>
596 <event event_name="SIMD_INSTR_RET" desc="number of SIMD instructions retired" counter_mask="3" min_count="500"/>
597 <event event_name="SIMD_SAT_INSTR_RET" desc="number of saturated arithmetic instructions retired" counter_mask="3" min_count="500"/>
598 <event event_name="RAT_STALLS" desc="Partial register stall cycles" counter_mask="3" min_count="6000">
599 <unit_masks default="15">
600 <unit_mask mask="1" desc="ROB read port"/>
601 <unit_mask mask="2" desc="Partial register"/>
602 <unit_mask mask="4" desc="Flag"/>
603 <unit_mask mask="8" desc="FPU status word"/>
604 <unit_mask mask="15" desc="All RAT"/>
605 </unit_masks>
606 </event>
607 <event event_name="SEG_RENAME_STALLS" desc="Segment rename stalls" counter_mask="3" min_count="500">
608 <unit_masks default="15">
609 <unit_mask mask="1" desc="ES"/>
610 <unit_mask mask="2" desc="DS"/>
611 <unit_mask mask="4" desc="FS"/>
612 <unit_mask mask="8" desc="GS"/>
613 </unit_masks>
614 </event>
615 <event event_name="SEG_RENAMES" desc="Segment renames" counter_mask="3" min_count="500">
616 <unit_masks default="15">
617 <unit_mask mask="1" desc="ES"/>
618 <unit_mask mask="2" desc="DS"/>
619 <unit_mask mask="4" desc="FS"/>
620 <unit_mask mask="8" desc="GS"/>
621 </unit_masks>
622 </event>
623 <event event_name="RESOURCE_STALLS" desc="Cycles during which resource stalls occur" counter_mask="3" min_count="3000">
624 <unit_masks default="15">
625 <unit_mask mask="1" desc="when the ROB is full"/>
626 <unit_mask mask="2" desc="during which the RS is full"/>
627 <unit_mask mask="4" desc="during which the pipeline has exceeded the load or store limit or is waiting to commit all stores"/>
628 <unit_mask mask="8" desc="due to FPU control word write"/>
629 <unit_mask mask="16" desc="due to branch misprediction"/>
630 </unit_masks>
631 </event>
632 <event event_name="BR_INST_DECODED" desc="number of branch instructions decoded" counter_mask="3" min_count="500"/>
633 <event event_name="BR_BOGUS" desc="number of bogus branches" counter_mask="3" min_count="500"/>
634 <event event_name="BACLEARS" desc="number of times BACLEAR is asserted" counter_mask="3" min_count="500"/>
635 <event event_name="PREF_RQSTS_UP" desc="Number of upward prefetches issued" counter_mask="3" min_count="3000"/>
636 <event event_name="PREF_RQSTS_DN" desc="Number of downward prefetches issued" counter_mask="3" min_count="3000"/>
637 </help_events>
+0
-88
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/test/path/for/image" count="205000">
3 <symbols>
4 <symbol name="TestFunction1(int)" file="/test/path/for/src/image.cpp" line="1" count="180000">
5 <sample>
6 <count>130000</count>
7 <file>/test/path/for/src/image.cpp</file>
8 <line>42</line>
9 </sample>
10 <sample>
11 <count>40000</count>
12 <file>/test/path/for/src/image.cpp</file>
13 <line>36</line>
14 </sample>
15 <sample>
16 <count>9999</count>
17 <file>/test/path/for/src/image.cpp</file>
18 <line>31</line>
19 </sample>
20 <sample>
21 <count>1</count>
22 <file>/test/path/for/src/image.cpp</file>
23 <line>39</line>
24 </sample>
25 </symbol>
26 <symbol name="TestFunction2(int, int)" file="/test/path/for/src/image2.cpp" line="50" count="20000">
27 <sample>
28 <count>19998</count>
29 <file>/test/path/for/src/image2.cpp</file>
30 <line>94</line>
31 </sample>
32 <sample>
33 <count>1</count>
34 <file>/test/path/for/src/image2.cpp</file>
35 <line>12</line>
36 </sample>
37 <sample>
38 <count>1</count>
39 <file>/test/path/for/src/image2.cpp</file>
40 <line>55</line>
41 </sample>
42 </symbol>
43 </symbols>
44 <dependent count="5000">
45 <image name="/no-vmlinux" count="4400">
46 </image>
47 <image name="/lib64/ld-2.9.so" count="300">
48 <symbols>
49 <symbol name="do_lookup_x" file="dl-lookup.c" line="0" count="299">
50 <sample>
51 <count>299</count>
52 <file>dl-lookup.c</file>
53 <line>0</line>
54 </sample>
55 </symbol>
56 <symbol name="_dl_unload_cache" file="rawmemchr.c" line="0" count="1">
57 <sample>
58 <count>1</count>
59 <file>rawmemchr.c</file>
60 <line>0</line>
61 </sample>
62 </symbol>
63 </symbols>
64 </image>
65 <image name="/usr/lib64/libstdc++.so.6.0.10" count="160">
66 </image>
67 <image name="/lib64/libc-2.9.so" count="140">
68 <symbols>
69 <symbol name="_IO_new_file_seekoff" file="" line="0" count="100">
70 <sample>
71 <count>100</count>
72 <file></file>
73 <line>0</line>
74 </sample>
75 </symbol>
76 <symbol name="bool std::operator!=&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, char const*)" file="" line="0" count="40">
77 <sample>
78 <count>40</count>
79 <file></file>
80 <line>0</line>
81 </sample>
82 </symbol>
83 </symbols>
84 </image>
85 </dependent>
86 </image>
87 </model-data>
+0
-403
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_expected.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/home/rgrunber/runtime-EclipseApplication/archer/gdb/gdb" count="176">
3 <symbols>
4 <symbol name="d_demangle" file="??" count="26">
5 <sample>
6 <count>26</count>
7 <line>0</line>
8 </sample>
9 </symbol>
10 <symbol name="gnu_special" file="??" count="9">
11 <sample>
12 <count>9</count>
13 <line>0</line>
14 </sample>
15 </symbol>
16 <symbol name="htab_hash_string" file="??" count="9">
17 <sample>
18 <count>9</count>
19 <line>0</line>
20 </sample>
21 </symbol>
22 <symbol name="add_minsym_to_hash_table" file="??" count="7">
23 <sample>
24 <count>7</count>
25 <line>0</line>
26 </sample>
27 </symbol>
28 <symbol name="bfd_elf_string_from_elf_section" file="??" count="7">
29 <sample>
30 <count>7</count>
31 <line>0</line>
32 </sample>
33 </symbol>
34 <symbol name="internal_cplus_demangle" file="??" count="7">
35 <sample>
36 <count>7</count>
37 <line>0</line>
38 </sample>
39 </symbol>
40 <symbol name="bfd_elf32_swap_symbol_in" file="??" count="6">
41 <sample>
42 <count>6</count>
43 <line>0</line>
44 </sample>
45 </symbol>
46 <symbol name="eq_demangled_name_entry" file="??" count="6">
47 <sample>
48 <count>6</count>
49 <line>0</line>
50 </sample>
51 </symbol>
52 <symbol name="find_methods" file="??" count="6">
53 <sample>
54 <count>6</count>
55 <line>0</line>
56 </sample>
57 </symbol>
58 <symbol name="prim_record_minimal_symbol_full" file="??" count="6">
59 <sample>
60 <count>6</count>
61 <line>0</line>
62 </sample>
63 </symbol>
64 <symbol name="symbol_set_names" file="??" count="6">
65 <sample>
66 <count>6</count>
67 <line>0</line>
68 </sample>
69 </symbol>
70 <symbol name="bfd_elf32_slurp_symbol_table" file="??" count="5">
71 <sample>
72 <count>5</count>
73 <line>0</line>
74 </sample>
75 </symbol>
76 <symbol name="cplus_demangle" file="??" count="4">
77 <sample>
78 <count>4</count>
79 <line>0</line>
80 </sample>
81 </symbol>
82 <symbol name="htab_find_slot_with_hash" file="??" count="4">
83 <sample>
84 <count>4</count>
85 <line>0</line>
86 </sample>
87 </symbol>
88 <symbol name="compare_minimal_symbols" file="??" count="3">
89 <sample>
90 <count>3</count>
91 <line>0</line>
92 </sample>
93 </symbol>
94 <symbol name="d_demangle_callback" file="??" count="3">
95 <sample>
96 <count>3</count>
97 <line>0</line>
98 </sample>
99 </symbol>
100 <symbol name="elf_symtab_read" file="??" count="3">
101 <sample>
102 <count>3</count>
103 <line>0</line>
104 </sample>
105 </symbol>
106 <symbol name="obsavestring" file="??" count="3">
107 <sample>
108 <count>3</count>
109 <line>0</line>
110 </sample>
111 </symbol>
112 <symbol name="bfd_bread" file="??" count="2">
113 <sample>
114 <count>2</count>
115 <line>0</line>
116 </sample>
117 </symbol>
118 <symbol name="bfd_getl16" file="??" count="2">
119 <sample>
120 <count>2</count>
121 <line>0</line>
122 </sample>
123 </symbol>
124 <symbol name="bfd_section_from_elf_index" file="??" count="2">
125 <sample>
126 <count>2</count>
127 <line>0</line>
128 </sample>
129 </symbol>
130 <symbol name="find_pc_partial_function" file="??" count="2">
131 <sample>
132 <count>2</count>
133 <line>0</line>
134 </sample>
135 </symbol>
136 <symbol name="get_objfile_arch" file="??" count="2">
137 <sample>
138 <count>2</count>
139 <line>0</line>
140 </sample>
141 </symbol>
142 <symbol name="htab_expand" file="??" count="2">
143 <sample>
144 <count>2</count>
145 <line>0</line>
146 </sample>
147 </symbol>
148 <symbol name="regcache_raw_supply" file="??" count="2">
149 <sample>
150 <count>2</count>
151 <line>0</line>
152 </sample>
153 </symbol>
154 <symbol name="symbol_init_language_specific" file="??" count="2">
155 <sample>
156 <count>2</count>
157 <line>0</line>
158 </sample>
159 </symbol>
160 <symbol name="_initialize_mi_cmds" file="??" count="1">
161 <sample>
162 <count>1</count>
163 <line>0</line>
164 </sample>
165 </symbol>
166 <symbol name="add_cmd" file="??" count="1">
167 <sample>
168 <count>1</count>
169 <line>0</line>
170 </sample>
171 </symbol>
172 <symbol name="allocate_bp_location" file="??" count="1">
173 <sample>
174 <count>1</count>
175 <line>0</line>
176 </sample>
177 </symbol>
178 <symbol name="bfd_elf32_object_p" file="??" count="1">
179 <sample>
180 <count>1</count>
181 <line>0</line>
182 </sample>
183 </symbol>
184 <symbol name="bfd_getl32" file="??" count="1">
185 <sample>
186 <count>1</count>
187 <line>0</line>
188 </sample>
189 </symbol>
190 <symbol name="bfd_section_hash_newfunc" file="??" count="1">
191 <sample>
192 <count>1</count>
193 <line>0</line>
194 </sample>
195 </symbol>
196 <symbol name="build_minimal_symbol_hash_tables" file="??" count="1">
197 <sample>
198 <count>1</count>
199 <line>0</line>
200 </sample>
201 </symbol>
202 <symbol name="core_addr_identity" file="??" count="1">
203 <sample>
204 <count>1</count>
205 <line>0</line>
206 </sample>
207 </symbol>
208 <symbol name="cpname_lex" file="??" count="1">
209 <sample>
210 <count>1</count>
211 <line>0</line>
212 </sample>
213 </symbol>
214 <symbol name="dwarf2_frame_cache" file="??" count="1">
215 <sample>
216 <count>1</count>
217 <line>0</line>
218 </sample>
219 </symbol>
220 <symbol name="exceptions_state_mc_action_iter_1" file="??" count="1">
221 <sample>
222 <count>1</count>
223 <line>0</line>
224 </sample>
225 </symbol>
226 <symbol name="find_and_open_source" file="??" count="1">
227 <sample>
228 <count>1</count>
229 <line>0</line>
230 </sample>
231 </symbol>
232 <symbol name="find_charset_names" file="??" count="1">
233 <sample>
234 <count>1</count>
235 <line>0</line>
236 </sample>
237 </symbol>
238 <symbol name="find_function_start_sal" file="??" count="1">
239 <sample>
240 <count>1</count>
241 <line>0</line>
242 </sample>
243 </symbol>
244 <symbol name="find_pc_section" file="??" count="1">
245 <sample>
246 <count>1</count>
247 <line>0</line>
248 </sample>
249 </symbol>
250 <symbol name="forget_types" file="??" count="1">
251 <sample>
252 <count>1</count>
253 <line>0</line>
254 </sample>
255 </symbol>
256 <symbol name="gdbarch_has_global_breakpoints" file="??" count="1">
257 <sample>
258 <count>1</count>
259 <line>0</line>
260 </sample>
261 </symbol>
262 <symbol name="gdbarch_smash_text_address" file="??" count="1">
263 <sample>
264 <count>1</count>
265 <line>0</line>
266 </sample>
267 </symbol>
268 <symbol name="hex_string" file="??" count="1">
269 <sample>
270 <count>1</count>
271 <line>0</line>
272 </sample>
273 </symbol>
274 <symbol name="htab_find_slot" file="??" count="1">
275 <sample>
276 <count>1</count>
277 <line>0</line>
278 </sample>
279 </symbol>
280 <symbol name="htab_find_with_hash" file="??" count="1">
281 <sample>
282 <count>1</count>
283 <line>0</line>
284 </sample>
285 </symbol>
286 <symbol name="linux_nat_wait" file="??" count="1">
287 <sample>
288 <count>1</count>
289 <line>0</line>
290 </sample>
291 </symbol>
292 <symbol name="linux_nat_xfer_partial" file="??" count="1">
293 <sample>
294 <count>1</count>
295 <line>0</line>
296 </sample>
297 </symbol>
298 <symbol name="lookup_minimal_symbol_by_pc_section_1" file="??" count="1">
299 <sample>
300 <count>1</count>
301 <line>0</line>
302 </sample>
303 </symbol>
304 <symbol name="lookup_minimal_symbol_text" file="??" count="1">
305 <sample>
306 <count>1</count>
307 <line>0</line>
308 </sample>
309 </symbol>
310 <symbol name="make_cleanup" file="??" count="1">
311 <sample>
312 <count>1</count>
313 <line>0</line>
314 </sample>
315 </symbol>
316 <symbol name="objc_demangle" file="??" count="1">
317 <sample>
318 <count>1</count>
319 <line>0</line>
320 </sample>
321 </symbol>
322 <symbol name="prefixify_expression" file="??" count="1">
323 <sample>
324 <count>1</count>
325 <line>0</line>
326 </sample>
327 </symbol>
328 <symbol name="process_next_line" file="??" count="1">
329 <sample>
330 <count>1</count>
331 <line>0</line>
332 </sample>
333 </symbol>
334 <symbol name="qsort_cmp" file="??" count="1">
335 <sample>
336 <count>1</count>
337 <line>0</line>
338 </sample>
339 </symbol>
340 <symbol name="read_psymtabs_with_filename" file="??" count="1">
341 <sample>
342 <count>1</count>
343 <line>0</line>
344 </sample>
345 </symbol>
346 <symbol name="symbol_natural_name" file="??" count="1">
347 <sample>
348 <count>1</count>
349 <line>0</line>
350 </sample>
351 </symbol>
352 <symbol name="symbol_set_demangled_name" file="??" count="1">
353 <sample>
354 <count>1</count>
355 <line>0</line>
356 </sample>
357 </symbol>
358 <symbol name="target_read_memory" file="??" count="1">
359 <sample>
360 <count>1</count>
361 <line>0</line>
362 </sample>
363 </symbol>
364 <symbol name="target_xfer_partial" file="??" count="1">
365 <sample>
366 <count>1</count>
367 <line>0</line>
368 </sample>
369 </symbol>
370 <symbol name="tdesc_gdb_type" file="??" count="1">
371 <sample>
372 <count>1</count>
373 <line>0</line>
374 </sample>
375 </symbol>
376 <symbol name="tilde_expand" file="??" count="1">
377 <sample>
378 <count>1</count>
379 <line>0</line>
380 </sample>
381 </symbol>
382 <symbol name="update_global_location_list" file="??" count="1">
383 <sample>
384 <count>1</count>
385 <line>0</line>
386 </sample>
387 </symbol>
388 <symbol name="update_solib_list" file="??" count="1">
389 <sample>
390 <count>1</count>
391 <line>0</line>
392 </sample>
393 </symbol>
394 <symbol name="xmalloc" file="??" count="1">
395 <sample>
396 <count>1</count>
397 <line>0</line>
398 </sample>
399 </symbol>
400 </symbols>
401 </image>
402 </model-data>
+0
-239
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_multiple_image.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/no-vmlinux" count="6844">
3 </image>
4 <image name="/bin/grep" count="2">
5 </image>
6 <image name="/bin/gawk" count="8">
7 </image>
8 <image name="/bin/bash" count="142">
9 </image>
10 <image name="/lib64/libgobject-2.0.so.0.1800.3" count="61">
11 </image>
12 <image name="/lib64/libgio-2.0.so.0.1800.3" count="2">
13 </image>
14 <image name="/lib64/libdl-2.9.so" count="2">
15 <symbols>
16 <symbol name="__do_global_dtors_aux" file="crtstuff.c" count="2" line="0">
17 <sample>
18 <count>2</count>
19 <line>0</line>
20 </sample>
21 </symbol>
22 </symbols>
23 </image>
24 <image name="/lib64/ld-2.9.so" count="36">
25 <symbols>
26 <symbol name="_dl_start" file="rtld.c" count="1" line="0">
27 <sample>
28 <count>1</count>
29 <line>0</line>
30 </sample>
31 </symbol>
32 <symbol name="dl_main" file="rtld.c" count="3" line="0">
33 <sample>
34 <count>3</count>
35 <file>rtld.c</file>
36 <line>0</line>
37 </sample>
38 </symbol>
39 <symbol name="init_tls" file="rtld.c" count="1" line="0">
40 <sample>
41 <count>1</count>
42 <file>rtld.c</file>
43 <line>0</line>
44 </sample>
45 </symbol>
46 <symbol name="open_verify" file="dl-load.c" count="2" line="0">
47 <sample>
48 <count>2</count>
49 <file>dl-load.c</file>
50 <line>0</line>
51 </sample>
52 </symbol>
53 <symbol name="_dl_setup_hash" file="rawmemchr.c" count="1" line="0">
54 <sample>
55 <count>1</count>
56 <file>rawmemchr.c</file>
57 <line>0</line>
58 </sample>
59 </symbol>
60 <symbol name="_dl_init_internal" file="rawmemchr.c" count="1" line="0">
61 <sample>
62 <count>1</count>
63 <file>rawmemchr.c</file>
64 <line>0</line>
65 </sample>
66 </symbol>
67 <symbol name="_dl_important_hwcaps" file="rawmemchr.c" count="2" line="0">
68 <sample>
69 <count>2</count>
70 <file>rawmemchr.c</file>
71 <line>0</line>
72 </sample>
73 </symbol>
74 <symbol name="munmap" file="rawmemchr.c" count="1" line="0">
75 <sample>
76 <count>1</count>
77 <file>rawmemchr.c</file>
78 <line>0</line>
79 </sample>
80 </symbol>
81 <symbol name="_dl_load_cache_lookup" file="rawmemchr.c" count="1" line="0">
82 <sample>
83 <count>1</count>
84 <file>rawmemchr.c</file>
85 <line>0</line>
86 </sample>
87 </symbol>
88 <symbol name="_dl_fini" file="rawmemchr.c" count="2" line="0">
89 <sample>
90 <count>2</count>
91 <file>rawmemchr.c</file>
92 <line>0</line>
93 </sample>
94 </symbol>
95 <symbol name="__GI_memset" file="rawmemchr.c" count="1" line="0">
96 <sample>
97 <count>1</count>
98 <file>rawmemchr.c</file>
99 <line>0</line>
100 </sample>
101 </symbol>
102 <symbol name="_dl_init_paths" file="rawmemchr.c" count="3" line="0">
103 <sample>
104 <count>3</count>
105 <file>rawmemchr.c</file>
106 <line>0</line>
107 </sample>
108 </symbol>
109 <symbol name="__brk" file="rawmemchr.c" count="1" line="0">
110 <sample>
111 <count>1</count>
112 <file>rawmemchr.c</file>
113 <line>0</line>
114 </sample>
115 </symbol>
116 <symbol name="_dl_name_match_p" file="rawmemchr.c" count="1" line="0">
117 <sample>
118 <count>1</count>
119 <file>rawmemchr.c</file>
120 <line>0</line>
121 </sample>
122 </symbol>
123 <symbol name="index" file="rawmemchr.c" count="2" line="0">
124 <sample>
125 <count>2</count>
126 <file>rawmemchr.c</file>
127 <line>0</line>
128 </sample>
129 </symbol>
130 <symbol name="_dl_resolve_conflicts" file="rawmemchr.c" count="1" line="0">
131 <sample>
132 <count>1</count>
133 <file>rawmemchr.c</file>
134 <line>0</line>
135 </sample>
136 </symbol>
137 <symbol name="_dl_cache_libcmp" file="rawmemchr.c" count="2" line="0">
138 <sample>
139 <count>2</count>
140 <file>rawmemchr.c</file>
141 <line>0</line>
142 </sample>
143 </symbol>
144 <symbol name="strcmp" file="rawmemchr.c" count="2" line="0">
145 <sample>
146 <count>2</count>
147 <file>rawmemchr.c</file>
148 <line>0</line>
149 </sample>
150 </symbol>
151 <symbol name="_dl_start_user" file="rawmemchr.c" count="1" line="0">
152 <sample>
153 <count>1</count>
154 <file>rawmemchr.c</file>
155 <line>0</line>
156 </sample>
157 </symbol>
158 <symbol name="strlen" file="rawmemchr.c" count="1" line="0">
159 <sample>
160 <count>1</count>
161 <file>rawmemchr.c</file>
162 <line>0</line>
163 </sample>
164 </symbol>
165 <symbol name="_dl_sort_fini" file="rawmemchr.c" count="1" line="0">
166 <sample>
167 <count>1</count>
168 <file>rawmemchr.c</file>
169 <line>0</line>
170 </sample>
171 </symbol>
172 <symbol name="_dl_map_object_deps" file="rawmemchr.c" count="4" line="0">
173 <sample>
174 <count>4</count>
175 <file>rawmemchr.c</file>
176 <line>0</line>
177 </sample>
178 </symbol>
179 <symbol name="__libc_memalign" file="" count="1" line="0">
180 <sample>
181 <count>1</count>
182 <file></file>
183 <line>0</line>
184 </sample>
185 </symbol>
186 </symbols>
187 </image>
188 <image name="/lib64/libdbus-1.so.3.4.0" count="10">
189 </image>
190 <image name="/lib64/libfuse.so.2.7.4" count="1">
191 </image>
192 <image name="/lib64/libm-2.9.so" count="2">
193 <symbols>
194 <symbol name="__dubsin" file="interp.c" count="2" line="0">
195 <sample>
196 <count>2</count>
197 <line>0</line>
198 </sample>
199 </symbol>
200 </symbols>
201 </image>
202 <image name="/lib64/libglib-2.0.so.0.1800.3" count="107">
203 </image>
204 <image name="/lib64/libgthread-2.0.so.0.1800.3" count="3">
205 </image>
206 <image name="/usr/bin/which" count="1">
207 </image>
208 <image name="/usr/bin/compiz" count="21">
209 </image>
210 <image name="/usr/bin/Xorg" count="154">
211 <dependent count="6">
212 <image name="[vdso]" count="6">
213 </image>
214 </dependent>
215 </image>
216 <image name="/usr/bin/ophelp" count="11">
217 </image>
218 <image name="/usr/bin/qemu-kvm" count="142">
219 <dependent count="1">
220 <image name="[vdso]" count="1">
221 </image>
222 </dependent>
223 </image>
224 <image name="/usr/bin/oprofiled" count="26">
225 </image>
226 <image name="/usr/sbin/libvirtd" count="3">
227 </image>
228 <image name="/usr/libexec/multiload-applet-2" count="1">
229 </image>
230 <image name="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/libjvm.so" count="7">
231 </image>
232 <image name="/usr/lib64/libgtk-x11-2.0.so.0.1400.5" count="22">
233 </image>
234 <image name="/usr/lib64/libpangocairo-1.0.so.0.2203.0" count="4">
235 </image>
236 <image name="/usr/lib64/libXrender.so.1.3.0" count="2">
237 </image>
238 </model-data>
+0
-1175
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_model-data_raw.xml less more
0 <?xml version="1.0" ?>
1 <profile schemaversion="3.0" cputype="i386"
2 processor="core_2"
3 mhz="1995.00"
4 title="opreport -X --details event:CPU_CLK_UNHALTED ">
5 <options session="event:CPU_CLK_UNHALTED" details="true"/>
6 <setup>
7 <eventsetup id="0" eventname="CPU_CLK_UNHALTED" unitmask="0" setupcount="100000"/>
8 </setup>
9
10 <binary name="/home/rgrunber/runtime-EclipseApplication/archer/gdb/gdb">
11 <count>
12 176</count>
13 <symbol idref="0" detaillo="0" detailhi="11">
14 <count>
15 26</count>
16 </symbol>
17 <symbol idref="1" detaillo="0" detailhi="5">
18 <count>
19 9</count>
20 </symbol>
21 <symbol idref="2" detaillo="0" detailhi="5">
22 <count>
23 9</count>
24 </symbol>
25 <symbol idref="3" detaillo="0" detailhi="4">
26 <count>
27 7</count>
28 </symbol>
29 <symbol idref="4" detaillo="0" detailhi="6">
30 <count>
31 7</count>
32 </symbol>
33 <symbol idref="5" detaillo="0" detailhi="5">
34 <count>
35 7</count>
36 </symbol>
37 <symbol idref="6" detaillo="0" detailhi="4">
38 <count>
39 6</count>
40 </symbol>
41 <symbol idref="7" detaillo="0" detailhi="3">
42 <count>
43 6</count>
44 </symbol>
45 <symbol idref="8" detaillo="0" detailhi="2">
46 <count>
47 6</count>
48 </symbol>
49 <symbol idref="9" detaillo="0" detailhi="4">
50 <count>
51 6</count>
52 </symbol>
53 <symbol idref="10" detaillo="0" detailhi="5">
54 <count>
55 6</count>
56 </symbol>
57 <symbol idref="11" detaillo="0" detailhi="4">
58 <count>
59 5</count>
60 </symbol>
61 <symbol idref="12" detaillo="0" detailhi="2">
62 <count>
63 4</count>
64 </symbol>
65 <symbol idref="13" detaillo="0" detailhi="1">
66 <count>
67 4</count>
68 </symbol>
69 <symbol idref="14" detaillo="0" detailhi="2">
70 <count>
71 3</count>
72 </symbol>
73 <symbol idref="15" detaillo="0" detailhi="1">
74 <count>
75 3</count>
76 </symbol>
77 <symbol idref="16" detaillo="0" detailhi="2">
78 <count>
79 3</count>
80 </symbol>
81 <symbol idref="17" detaillo="0" detailhi="1">
82 <count>
83 3</count>
84 </symbol>
85 <symbol idref="18" detaillo="0" detailhi="1">
86 <count>
87 2</count>
88 </symbol>
89 <symbol idref="19" detaillo="0" detailhi="1">
90 <count>
91 2</count>
92 </symbol>
93 <symbol idref="20" detaillo="0" detailhi="0">
94 <count>
95 2</count>
96 </symbol>
97 <symbol idref="21" detaillo="0" detailhi="1">
98 <count>
99 2</count>
100 </symbol>
101 <symbol idref="22" detaillo="0" detailhi="1">
102 <count>
103 2</count>
104 </symbol>
105 <symbol idref="23" detaillo="0" detailhi="1">
106 <count>
107 2</count>
108 </symbol>
109 <symbol idref="24" detaillo="0" detailhi="1">
110 <count>
111 2</count>
112 </symbol>
113 <symbol idref="25" detaillo="0" detailhi="1">
114 <count>
115 2</count>
116 </symbol>
117 <symbol idref="26" detaillo="0" detailhi="0">
118 <count>
119 1</count>
120 </symbol>
121 <symbol idref="27" detaillo="0" detailhi="0">
122 <count>
123 1</count>
124 </symbol>
125 <symbol idref="28" detaillo="0" detailhi="0">
126 <count>
127 1</count>
128 </symbol>
129 <symbol idref="29" detaillo="0" detailhi="0">
130 <count>
131 1</count>
132 </symbol>
133 <symbol idref="30" detaillo="0" detailhi="0">
134 <count>
135 1</count>
136 </symbol>
137 <symbol idref="31" detaillo="0" detailhi="0">
138 <count>
139 1</count>
140 </symbol>
141 <symbol idref="32" detaillo="0" detailhi="0">
142 <count>
143 1</count>
144 </symbol>
145 <symbol idref="33" detaillo="0" detailhi="0">
146 <count>
147 1</count>
148 </symbol>
149 <symbol idref="34" detaillo="0" detailhi="0">
150 <count>
151 1</count>
152 </symbol>
153 <symbol idref="35" detaillo="0" detailhi="0">
154 <count>
155 1</count>
156 </symbol>
157 <symbol idref="36" detaillo="0" detailhi="0">
158 <count>
159 1</count>
160 </symbol>
161 <symbol idref="37" detaillo="0" detailhi="0">
162 <count>
163 1</count>
164 </symbol>
165 <symbol idref="38" detaillo="0" detailhi="0">
166 <count>
167 1</count>
168 </symbol>
169 <symbol idref="39" detaillo="0" detailhi="0">
170 <count>
171 1</count>
172 </symbol>
173 <symbol idref="40" detaillo="0" detailhi="0">
174 <count>
175 1</count>
176 </symbol>
177 <symbol idref="41" detaillo="0" detailhi="0">
178 <count>
179 1</count>
180 </symbol>
181 <symbol idref="42" detaillo="0" detailhi="0">
182 <count>
183 1</count>
184 </symbol>
185 <symbol idref="43" detaillo="0" detailhi="0">
186 <count>
187 1</count>
188 </symbol>
189 <symbol idref="44" detaillo="0" detailhi="0">
190 <count>
191 1</count>
192 </symbol>
193 <symbol idref="45" detaillo="0" detailhi="0">
194 <count>
195 1</count>
196 </symbol>
197 <symbol idref="46" detaillo="0" detailhi="0">
198 <count>
199 1</count>
200 </symbol>
201 <symbol idref="47" detaillo="0" detailhi="0">
202 <count>
203 1</count>
204 </symbol>
205 <symbol idref="48" detaillo="0" detailhi="0">
206 <count>
207 1</count>
208 </symbol>
209 <symbol idref="49" detaillo="0" detailhi="0">
210 <count>
211 1</count>
212 </symbol>
213 <symbol idref="50" detaillo="0" detailhi="0">
214 <count>
215 1</count>
216 </symbol>
217 <symbol idref="51" detaillo="0" detailhi="0">
218 <count>
219 1</count>
220 </symbol>
221 <symbol idref="52" detaillo="0" detailhi="0">
222 <count>
223 1</count>
224 </symbol>
225 <symbol idref="53" detaillo="0" detailhi="0">
226 <count>
227 1</count>
228 </symbol>
229 <symbol idref="54" detaillo="0" detailhi="0">
230 <count>
231 1</count>
232 </symbol>
233 <symbol idref="55" detaillo="0" detailhi="0">
234 <count>
235 1</count>
236 </symbol>
237 <symbol idref="56" detaillo="0" detailhi="0">
238 <count>
239 1</count>
240 </symbol>
241 <symbol idref="57" detaillo="0" detailhi="0">
242 <count>
243 1</count>
244 </symbol>
245 <symbol idref="58" detaillo="0" detailhi="0">
246 <count>
247 1</count>
248 </symbol>
249 <symbol idref="59" detaillo="0" detailhi="0">
250 <count>
251 1</count>
252 </symbol>
253 <symbol idref="60" detaillo="0" detailhi="0">
254 <count>
255 1</count>
256 </symbol>
257 <symbol idref="61" detaillo="0" detailhi="0">
258 <count>
259 1</count>
260 </symbol>
261 <symbol idref="62" detaillo="0" detailhi="0">
262 <count>
263 1</count>
264 </symbol>
265 <symbol idref="63" detaillo="0" detailhi="0">
266 <count>
267 1</count>
268 </symbol>
269 <symbol idref="64" detaillo="0" detailhi="0">
270 <count>
271 1</count>
272 </symbol>
273 <symbol idref="65" detaillo="0" detailhi="0">
274 <count>
275 1</count>
276 </symbol>
277 </binary>
278 <symboltable>
279 <symboldata id="0" name="d_demangle" startingaddr="081b6710"/>
280 <symboldata id="1" name="gnu_special" startingaddr="08292fe0"/>
281 <symboldata id="2" name="htab_hash_string" startingaddr="08299e60"/>
282 <symboldata id="3" name="add_minsym_to_hash_table" startingaddr="08051e70"/>
283 <symboldata id="4" name="bfd_elf_string_from_elf_section" startingaddr="082523a0"/>
284 <symboldata id="5" name="internal_cplus_demangle" startingaddr="0828f4e0"/>
285 <symboldata id="6" name="bfd_elf32_swap_symbol_in" startingaddr="08245720"/>
286 <symboldata id="7" name="eq_demangled_name_entry" startingaddr="08119ef0"/>
287 <symboldata id="8" name="find_methods" startingaddr="081b9210"/>
288 <symboldata id="9" name="prim_record_minimal_symbol_full" startingaddr="080528c0"/>
289 <symboldata id="10" name="symbol_set_names" startingaddr="0811e9a0"/>
290 <symboldata id="11" name="bfd_elf32_slurp_symbol_table" startingaddr="08247200"/>
291 <symboldata id="12" name="cplus_demangle" startingaddr="0828fb80"/>
292 <symboldata id="13" name="htab_find_slot_with_hash" startingaddr="0829a6b0"/>
293 <symboldata id="14" name="compare_minimal_symbols" startingaddr="08051f10"/>
294 <symboldata id="15" name="d_demangle_callback" startingaddr="082979a0"/>
295 <symboldata id="16" name="elf_symtab_read" startingaddr="080d6430"/>
296 <symboldata id="17" name="obsavestring" startingaddr="08124690"/>
297 <symboldata id="18" name="bfd_bread" startingaddr="0822cf20"/>
298 <symboldata id="19" name="bfd_getl16" startingaddr="082319c0"/>
299 <symboldata id="20" name="bfd_section_from_elf_index" startingaddr="08248ac0"/>
300 <symboldata id="21" name="find_pc_partial_function" startingaddr="080e23a0"/>
301 <symboldata id="22" name="get_objfile_arch" startingaddr="0804e9c0"/>
302 <symboldata id="23" name="htab_expand" startingaddr="0829a430"/>
303 <symboldata id="24" name="regcache_raw_supply" startingaddr="080f6bd0"/>
304 <symboldata id="25" name="symbol_init_language_specific" startingaddr="0811ef90"/>
305 <symboldata id="26" name="_initialize_mi_cmds" startingaddr="080c3230"/>
306 <symboldata id="27" name="add_cmd" startingaddr="080bada0"/>
307 <symboldata id="28" name="allocate_bp_location" startingaddr="080e74b0"/>
308 <symboldata id="29" name="bfd_elf32_object_p" startingaddr="08247bb0"/>
309 <symboldata id="30" name="bfd_getl32" startingaddr="08231a90"/>
310 <symboldata id="31" name="bfd_section_hash_newfunc" startingaddr="08234570"/>
311 <symboldata id="32" name="build_minimal_symbol_hash_tables" startingaddr="08052c80"/>
312 <symboldata id="33" name="core_addr_identity" startingaddr="08159a80"/>
313 <symboldata id="34" name="cpname_lex" startingaddr="080d7930"/>
314 <symboldata id="35" name="dwarf2_frame_cache" startingaddr="081a1d30"/>
315 <symboldata id="36" name="exceptions_state_mc_action_iter_1" startingaddr="08146080"/>
316 <symboldata id="37" name="find_and_open_source" startingaddr="080fc770"/>
317 <symboldata id="38" name="find_charset_names" startingaddr="080f9910"/>
318 <symboldata id="39" name="find_function_start_sal" startingaddr="0811c7c0"/>
319 <symboldata id="40" name="find_pc_section" startingaddr="0804f550"/>
320 <symboldata id="41" name="forget_types" startingaddr="0828e8f0"/>
321 <symboldata id="42" name="gdbarch_has_global_breakpoints" startingaddr="08151110"/>
322 <symboldata id="43" name="gdbarch_smash_text_address" startingaddr="08153650"/>
323 <symboldata id="44" name="hex_string" startingaddr="080584e0"/>
324 <symboldata id="45" name="htab_find_slot" startingaddr="0829a920"/>
325 <symboldata id="46" name="htab_find_with_hash" startingaddr="08299c60"/>
326 <symboldata id="47" name="linux_nat_wait" startingaddr="080936b0"/>
327 <symboldata id="48" name="linux_nat_xfer_partial" startingaddr="0808e2c0"/>
328 <symboldata id="49" name="lookup_minimal_symbol_by_pc_section_1" startingaddr="080523a0"/>
329 <symboldata id="50" name="lookup_minimal_symbol_text" startingaddr="080521c0"/>
330 <symboldata id="51" name="make_cleanup" startingaddr="08059c50"/>
331 <symboldata id="52" name="objc_demangle" startingaddr="081b9bf0"/>
332 <symboldata id="53" name="prefixify_expression" startingaddr="0816d860"/>
333 <symboldata id="54" name="process_next_line" startingaddr="080bbf70"/>
334 <symboldata id="55" name="qsort_cmp" startingaddr="0804ed20"/>
335 <symboldata id="56" name="read_psymtabs_with_filename" startingaddr="081207f0"/>
336 <symboldata id="57" name="symbol_natural_name" startingaddr="0811d140"/>
337 <symboldata id="58" name="symbol_set_demangled_name" startingaddr="0811e880"/>
338 <symboldata id="59" name="target_read_memory" startingaddr="08169560"/>
339 <symboldata id="60" name="target_xfer_partial" startingaddr="08168120"/>
340 <symboldata id="61" name="tdesc_gdb_type" startingaddr="081e99e0"/>
341 <symboldata id="62" name="tilde_expand" startingaddr="082249b0"/>
342 <symboldata id="63" name="update_global_location_list" startingaddr="080ee430"/>
343 <symboldata id="64" name="update_solib_list" startingaddr="08063670"/>
344 <symboldata id="65" name="xmalloc" startingaddr="08058f80"/>
345 </symboltable>
346 <detailtable>
347 <symboldetails id="0">
348 <detaildata id="0" vmaoffset="081b6718">
349 <count class="">
350 1</count>
351 </detaildata>
352 <detaildata id="1" vmaoffset="081b6734">
353 <count class="">
354 4</count>
355 </detaildata>
356 <detaildata id="2" vmaoffset="081b677a">
357 <count class="">
358 1</count>
359 </detaildata>
360 <detaildata id="3" vmaoffset="081b683d">
361 <count class="">
362 1</count>
363 </detaildata>
364 <detaildata id="4" vmaoffset="081b6846">
365 <count class="">
366 3</count>
367 </detaildata>
368 <detaildata id="5" vmaoffset="081b6858">
369 <count class="">
370 1</count>
371 </detaildata>
372 <detaildata id="6" vmaoffset="081b685a">
373 <count class="">
374 3</count>
375 </detaildata>
376 <detaildata id="7" vmaoffset="081b686e">
377 <count class="">
378 2</count>
379 </detaildata>
380 <detaildata id="8" vmaoffset="081b6880">
381 <count class="">
382 1</count>
383 </detaildata>
384 <detaildata id="9" vmaoffset="081b6882">
385 <count class="">
386 5</count>
387 </detaildata>
388 <detaildata id="10" vmaoffset="081b6896">
389 <count class="">
390 3</count>
391 </detaildata>
392 <detaildata id="11" vmaoffset="081b69e3">
393 <count class="">
394 1</count>
395 </detaildata>
396 </symboldetails>
397 <symboldetails id="1">
398 <detaildata id="0" vmaoffset="08293009">
399 <count class="">
400 1</count>
401 </detaildata>
402 <detaildata id="1" vmaoffset="0829300b">
403 <count class="">
404 3</count>
405 </detaildata>
406 <detaildata id="2" vmaoffset="0829301f">
407 <count class="">
408 2</count>
409 </detaildata>
410 <detaildata id="3" vmaoffset="08293080">
411 <count class="">
412 1</count>
413 </detaildata>
414 <detaildata id="4" vmaoffset="08293088">
415 <count class="">
416 1</count>
417 </detaildata>
418 <detaildata id="5" vmaoffset="08293093">
419 <count class="">
420 1</count>
421 </detaildata>
422 </symboldetails>
423 <symboldetails id="2">
424 <detaildata id="0" vmaoffset="08299e61">
425 <count class="">
426 1</count>
427 </detaildata>
428 <detaildata id="1" vmaoffset="08299e6b">
429 <count class="">
430 2</count>
431 </detaildata>
432 <detaildata id="2" vmaoffset="08299e78">
433 <count class="">
434 1</count>
435 </detaildata>
436 <detaildata id="3" vmaoffset="08299e7b">
437 <count class="">
438 2</count>
439 </detaildata>
440 <detaildata id="4" vmaoffset="08299e82">
441 <count class="">
442 2</count>
443 </detaildata>
444 <detaildata id="5" vmaoffset="08299e8d">
445 <count class="">
446 1</count>
447 </detaildata>
448 </symboldetails>
449 <symboldetails id="3">
450 <detaildata id="0" vmaoffset="08051e91">
451 <count class="">
452 1</count>
453 </detaildata>
454 <detaildata id="1" vmaoffset="08051e98">
455 <count class="">
456 1</count>
457 </detaildata>
458 <detaildata id="2" vmaoffset="08051e9b">
459 <count class="">
460 1</count>
461 </detaildata>
462 <detaildata id="3" vmaoffset="08051ea5">
463 <count class="">
464 3</count>
465 </detaildata>
466 <detaildata id="4" vmaoffset="08051ebb">
467 <count class="">
468 1</count>
469 </detaildata>
470 </symboldetails>
471 <symboldetails id="4">
472 <detaildata id="0" vmaoffset="082523a0">
473 <count class="">
474 1</count>
475 </detaildata>
476 <detaildata id="1" vmaoffset="082523a8">
477 <count class="">
478 1</count>
479 </detaildata>
480 <detaildata id="2" vmaoffset="082523b7">
481 <count class="">
482 1</count>
483 </detaildata>
484 <detaildata id="3" vmaoffset="082523d0">
485 <count class="">
486 1</count>
487 </detaildata>
488 <detaildata id="4" vmaoffset="082523f2">
489 <count class="">
490 1</count>
491 </detaildata>
492 <detaildata id="5" vmaoffset="08252406">
493 <count class="">
494 1</count>
495 </detaildata>
496 <detaildata id="6" vmaoffset="0825240a">
497 <count class="">
498 1</count>
499 </detaildata>
500 </symboldetails>
501 <symboldetails id="5">
502 <detaildata id="0" vmaoffset="0828f555">
503 <count class="">
504 1</count>
505 </detaildata>
506 <detaildata id="1" vmaoffset="0828f5a6">
507 <count class="">
508 2</count>
509 </detaildata>
510 <detaildata id="2" vmaoffset="0828f5c0">
511 <count class="">
512 1</count>
513 </detaildata>
514 <detaildata id="3" vmaoffset="0828f62a">
515 <count class="">
516 1</count>
517 </detaildata>
518 <detaildata id="4" vmaoffset="0828f746">
519 <count class="">
520 1</count>
521 </detaildata>
522 <detaildata id="5" vmaoffset="0828f8d9">
523 <count class="">
524 1</count>
525 </detaildata>
526 </symboldetails>
527 <symboldetails id="6">
528 <detaildata id="0" vmaoffset="08245720">
529 <count class="">
530 1</count>
531 </detaildata>
532 <detaildata id="1" vmaoffset="08245735">
533 <count class="">
534 2</count>
535 </detaildata>
536 <detaildata id="2" vmaoffset="08245770">
537 <count class="">
538 1</count>
539 </detaildata>
540 <detaildata id="3" vmaoffset="0824578d">
541 <count class="">
542 1</count>
543 </detaildata>
544 <detaildata id="4" vmaoffset="082457c4">
545 <count class="">
546 1</count>
547 </detaildata>
548 </symboldetails>
549 <symboldetails id="7">
550 <detaildata id="0" vmaoffset="08119ef1">
551 <count class="">
552 3</count>
553 </detaildata>
554 <detaildata id="1" vmaoffset="08119ef6">
555 <count class="">
556 1</count>
557 </detaildata>
558 <detaildata id="2" vmaoffset="08119f04">
559 <count class="">
560 1</count>
561 </detaildata>
562 <detaildata id="3" vmaoffset="08119f0c">
563 <count class="">
564 1</count>
565 </detaildata>
566 </symboldetails>
567 <symboldetails id="8">
568 <detaildata id="0" vmaoffset="081b92d0">
569 <count class="">
570 1</count>
571 </detaildata>
572 <detaildata id="1" vmaoffset="081b92ec">
573 <count class="">
574 4</count>
575 </detaildata>
576 <detaildata id="2" vmaoffset="081b9303">
577 <count class="">
578 1</count>
579 </detaildata>
580 </symboldetails>
581 <symboldetails id="9">
582 <detaildata id="0" vmaoffset="0805290c">
583 <count class="">
584 1</count>
585 </detaildata>
586 <detaildata id="1" vmaoffset="0805297a">
587 <count class="">
588 2</count>
589 </detaildata>
590 <detaildata id="2" vmaoffset="080529b1">
591 <count class="">
592 1</count>
593 </detaildata>
594 <detaildata id="3" vmaoffset="080529ed">
595 <count class="">
596 1</count>
597 </detaildata>
598 <detaildata id="4" vmaoffset="08052a08">
599 <count class="">
600 1</count>
601 </detaildata>
602 </symboldetails>
603 <symboldetails id="10">
604 <detaildata id="0" vmaoffset="0811eb7c">
605 <count class="">
606 1</count>
607 </detaildata>
608 <detaildata id="1" vmaoffset="0811ec36">
609 <count class="">
610 1</count>
611 </detaildata>
612 <detaildata id="2" vmaoffset="0811eca6">
613 <count class="">
614 1</count>
615 </detaildata>
616 <detaildata id="3" vmaoffset="0811ed34">
617 <count class="">
618 1</count>
619 </detaildata>
620 <detaildata id="4" vmaoffset="0811ed61">
621 <count class="">
622 1</count>
623 </detaildata>
624 <detaildata id="5" vmaoffset="0811ed64">
625 <count class="">
626 1</count>
627 </detaildata>
628 </symboldetails>
629 <symboldetails id="11">
630 <detaildata id="0" vmaoffset="08247485">
631 <count class="">
632 1</count>
633 </detaildata>
634 <detaildata id="1" vmaoffset="082475ae">
635 <count class="">
636 1</count>
637 </detaildata>
638 <detaildata id="2" vmaoffset="082475b2">
639 <count class="">
640 1</count>
641 </detaildata>
642 <detaildata id="3" vmaoffset="082475cf">
643 <count class="">
644 1</count>
645 </detaildata>
646 <detaildata id="4" vmaoffset="08247657">
647 <count class="">
648 1</count>
649 </detaildata>
650 </symboldetails>
651 <symboldetails id="12">
652 <detaildata id="0" vmaoffset="0828fbb6">
653 <count class="">
654 2</count>
655 </detaildata>
656 <detaildata id="1" vmaoffset="0828fbc7">
657 <count class="">
658 1</count>
659 </detaildata>
660 <detaildata id="2" vmaoffset="0828fc2d">
661 <count class="">
662 1</count>
663 </detaildata>
664 </symboldetails>
665 <symboldetails id="13">
666 <detaildata id="0" vmaoffset="0829a6e3">
667 <count class="">
668 2</count>
669 </detaildata>
670 <detaildata id="1" vmaoffset="0829a718">
671 <count class="">
672 2</count>
673 </detaildata>
674 </symboldetails>
675 <symboldetails id="14">
676 <detaildata id="0" vmaoffset="08051f10">
677 <count class="">
678 1</count>
679 </detaildata>
680 <detaildata id="1" vmaoffset="08051f19">
681 <count class="">
682 1</count>
683 </detaildata>
684 <detaildata id="2" vmaoffset="08051f46">
685 <count class="">
686 1</count>
687 </detaildata>
688 </symboldetails>
689 <symboldetails id="15">
690 <detaildata id="0" vmaoffset="082979c8">
691 <count class="">
692 2</count>
693 </detaildata>
694 <detaildata id="1" vmaoffset="08297acd">
695 <count class="">
696 1</count>
697 </detaildata>
698 </symboldetails>
699 <symboldetails id="16">
700 <detaildata id="0" vmaoffset="080d6629">
701 <count class="">
702 1</count>
703 </detaildata>
704 <detaildata id="1" vmaoffset="080d66a4">
705 <count class="">
706 1</count>
707 </detaildata>
708 <detaildata id="2" vmaoffset="080d67cd">
709 <count class="">
710 1</count>
711 </detaildata>
712 </symboldetails>
713 <symboldetails id="17">
714 <detaildata id="0" vmaoffset="081246d8">
715 <count class="">
716 2</count>
717 </detaildata>
718 <detaildata id="1" vmaoffset="081246f3">
719 <count class="">
720 1</count>
721 </detaildata>
722 </symboldetails>
723 <symboldetails id="18">
724 <detaildata id="0" vmaoffset="0822cf21">
725 <count class="">
726 1</count>
727 </detaildata>
728 <detaildata id="1" vmaoffset="0822cf35">
729 <count class="">
730 1</count>
731 </detaildata>
732 </symboldetails>
733 <symboldetails id="19">
734 <detaildata id="0" vmaoffset="082319c0">
735 <count class="">
736 1</count>
737 </detaildata>
738 <detaildata id="1" vmaoffset="082319d1">
739 <count class="">
740 1</count>
741 </detaildata>
742 </symboldetails>
743 <symboldetails id="20">
744 <detaildata id="0" vmaoffset="08248ad6">
745 <count class="">
746 2</count>
747 </detaildata>
748 </symboldetails>
749 <symboldetails id="21">
750 <detaildata id="0" vmaoffset="080e23a1">
751 <count class="">
752 1</count>
753 </detaildata>
754 <detaildata id="1" vmaoffset="080e2502">
755 <count class="">
756 1</count>
757 </detaildata>
758 </symboldetails>
759 <symboldetails id="22">
760 <detaildata id="0" vmaoffset="0804e9c0">
761 <count class="">
762 1</count>
763 </detaildata>
764 <detaildata id="1" vmaoffset="0804e9c6">
765 <count class="">
766 1</count>
767 </detaildata>
768 </symboldetails>
769 <symboldetails id="23">
770 <detaildata id="0" vmaoffset="0829a541">
771 <count class="">
772 1</count>
773 </detaildata>
774 <detaildata id="1" vmaoffset="0829a568">
775 <count class="">
776 1</count>
777 </detaildata>
778 </symboldetails>
779 <symboldetails id="24">
780 <detaildata id="0" vmaoffset="080f6bf9">
781 <count class="">
782 1</count>
783 </detaildata>
784 <detaildata id="1" vmaoffset="080f6c3b">
785 <count class="">
786 1</count>
787 </detaildata>
788 </symboldetails>
789 <symboldetails id="25">
790 <detaildata id="0" vmaoffset="0811ef90">
791 <count class="">
792 1</count>
793 </detaildata>
794 <detaildata id="1" vmaoffset="0811efa1">
795 <count class="">
796 1</count>
797 </detaildata>
798 </symboldetails>
799 <symboldetails id="26">
800 <detaildata id="0" vmaoffset="080c3230">
801 <count class="">
802 1</count>
803 </detaildata>
804 </symboldetails>
805 <symboldetails id="27">
806 <detaildata id="0" vmaoffset="080baf11">
807 <count class="">
808 1</count>
809 </detaildata>
810 </symboldetails>
811 <symboldetails id="28">
812 <detaildata id="0" vmaoffset="080e74d5">
813 <count class="">
814 1</count>
815 </detaildata>
816 </symboldetails>
817 <symboldetails id="29">
818 <detaildata id="0" vmaoffset="08247fa4">
819 <count class="">
820 1</count>
821 </detaildata>
822 </symboldetails>
823 <symboldetails id="30">
824 <detaildata id="0" vmaoffset="08231a90">
825 <count class="">
826 1</count>
827 </detaildata>
828 </symboldetails>
829 <symboldetails id="31">
830 <detaildata id="0" vmaoffset="082345ab">
831 <count class="">
832 1</count>
833 </detaildata>
834 </symboldetails>
835 <symboldetails id="32">
836 <detaildata id="0" vmaoffset="08052c9b">
837 <count class="">
838 1</count>
839 </detaildata>
840 </symboldetails>
841 <symboldetails id="33">
842 <detaildata id="0" vmaoffset="08159a87">
843 <count class="">
844 1</count>
845 </detaildata>
846 </symboldetails>
847 <symboldetails id="34">
848 <detaildata id="0" vmaoffset="080d8487">
849 <count class="">
850 1</count>
851 </detaildata>
852 </symboldetails>
853 <symboldetails id="35">
854 <detaildata id="0" vmaoffset="081a205c">
855 <count class="">
856 1</count>
857 </detaildata>
858 </symboldetails>
859 <symboldetails id="36">
860 <detaildata id="0" vmaoffset="08146081">
861 <count class="">
862 1</count>
863 </detaildata>
864 </symboldetails>
865 <symboldetails id="37">
866 <detaildata id="0" vmaoffset="080fc7c2">
867 <count class="">
868 1</count>
869 </detaildata>
870 </symboldetails>
871 <symboldetails id="38">
872 <detaildata id="0" vmaoffset="080f9b7b">
873 <count class="">
874 1</count>
875 </detaildata>
876 </symboldetails>
877 <symboldetails id="39">
878 <detaildata id="0" vmaoffset="0811c876">
879 <count class="">
880 1</count>
881 </detaildata>
882 </symboldetails>
883 <symboldetails id="40">
884 <detaildata id="0" vmaoffset="0804f551">
885 <count class="">
886 1</count>
887 </detaildata>
888 </symboldetails>
889 <symboldetails id="41">
890 <detaildata id="0" vmaoffset="0828e8f7">
891 <count class="">
892 1</count>
893 </detaildata>
894 </symboldetails>
895 <symboldetails id="42">
896 <detaildata id="0" vmaoffset="08151111">
897 <count class="">
898 1</count>
899 </detaildata>
900 </symboldetails>
901 <symboldetails id="43">
902 <detaildata id="0" vmaoffset="08153650">
903 <count class="">
904 1</count>
905 </detaildata>
906 </symboldetails>
907 <symboldetails id="44">
908 <detaildata id="0" vmaoffset="08058550">
909 <count class="">
910 1</count>
911 </detaildata>
912 </symboldetails>
913 <symboldetails id="45">
914 <detaildata id="0" vmaoffset="0829a926">
915 <count class="">
916 1</count>
917 </detaildata>
918 </symboldetails>
919 <symboldetails id="46">
920 <detaildata id="0" vmaoffset="08299d55">
921 <count class="">
922 1</count>
923 </detaildata>
924 </symboldetails>
925 <symboldetails id="47">
926 <detaildata id="0" vmaoffset="080939f9">
927 <count class="">
928 1</count>
929 </detaildata>
930 </symboldetails>
931 <symboldetails id="48">
932 <detaildata id="0" vmaoffset="0808e43a">
933 <count class="">
934 1</count>
935 </detaildata>
936 </symboldetails>
937 <symboldetails id="49">
938 <detaildata id="0" vmaoffset="08052535">
939 <count class="">
940 1</count>
941 </detaildata>
942 </symboldetails>
943 <symboldetails id="50">
944 <detaildata id="0" vmaoffset="08052282">
945 <count class="">
946 1</count>
947 </detaildata>
948 </symboldetails>
949 <symboldetails id="51">
950 <detaildata id="0" vmaoffset="08059c50">
951 <count class="">
952 1</count>
953 </detaildata>
954 </symboldetails>
955 <symboldetails id="52">
956 <detaildata id="0" vmaoffset="081b9bfc">
957 <count class="">
958 1</count>
959 </detaildata>
960 </symboldetails>
961 <symboldetails id="53">
962 <detaildata id="0" vmaoffset="0816d881">
963 <count class="">
964 1</count>
965 </detaildata>
966 </symboldetails>
967 <symboldetails id="54">
968 <detaildata id="0" vmaoffset="080bc25e">
969 <count class="">
970 1</count>
971 </detaildata>
972 </symboldetails>
973 <symboldetails id="55">
974 <detaildata id="0" vmaoffset="0804ed5d">
975 <count class="">
976 1</count>
977 </detaildata>
978 </symboldetails>
979 <symboldetails id="56">
980 <detaildata id="0" vmaoffset="08120812">
981 <count class="">
982 1</count>
983 </detaildata>
984 </symboldetails>
985 <symboldetails id="57">
986 <detaildata id="0" vmaoffset="0811d15e">
987 <count class="">
988 1</count>
989 </detaildata>
990 </symboldetails>
991 <symboldetails id="58">
992 <detaildata id="0" vmaoffset="0811e88c">
993 <count class="">
994 1</count>
995 </detaildata>
996 </symboldetails>
997 <symboldetails id="59">
998 <detaildata id="0" vmaoffset="081695c1">
999 <count class="">
1000 1</count>
1001 </detaildata>
1002 </symboldetails>
1003 <symboldetails id="60">
1004 <detaildata id="0" vmaoffset="081685fb">
1005 <count class="">
1006 1</count>
1007 </detaildata>
1008 </symboldetails>
1009 <symboldetails id="61">
1010 <detaildata id="0" vmaoffset="081e99f7">
1011 <count class="">
1012 1</count>
1013 </detaildata>
1014 </symboldetails>
1015 <symboldetails id="62">
1016 <detaildata id="0" vmaoffset="08224a47">
1017 <count class="">
1018 1</count>
1019 </detaildata>
1020 </symboldetails>
1021 <symboldetails id="63">
1022 <detaildata id="0" vmaoffset="080ee8e5">
1023 <count class="">
1024 1</count>
1025 </detaildata>
1026 </symboldetails>
1027 <symboldetails id="64">
1028 <detaildata id="0" vmaoffset="08063775">
1029 <count class="">
1030 1</count>
1031 </detaildata>
1032 </symboldetails>
1033 <symboldetails id="65">
1034 <detaildata id="0" vmaoffset="08058f9c">
1035 <count class="">
1036 1</count>
1037 </detaildata>
1038 </symboldetails>
1039 </detailtable>
1040 <bytestable>
1041 <bytes id="0">
1042 5531C089E557565383EC6C8B5D0885DB0F8403010000BFC00E3108B90700000089DEF3A60F846E0100008D45BCC7442410806E0508C744240C808F0508C744240800000000C744240400000000890424E8674CE9FF803B5F0F845A010000BFCE0E3108B90800000089DEF3A60F85B60000008D730831DB8D55BC89F0E87FF7FFFF85C00F840F0200008B45C88D50013955CC0F8248010000C600288B45C883C00180FB018945C80F84530100008D50023955CC0F82AF010000C600298B45C8C64001008B4DC483C00239C80F84B70100008B55D48B5DC001D0F7D221D08B55CC89C629DE8945C889D729DF39FE0F8FBD00000089C28955C4890C24E870660E008D55BCC7442404000000008914248945B4E88653E9FF8B45B483C46C5B5E5F5DC38DB42600000000BFD70E3108B90700000089DEF3A60F8494000000BFDF0E3108B90700000089DEF3A60F8480000000BFE70E3108B90A00000089DEF3A60F8454010000BFF20E3108B90A00000089DEF3A60F8440010000BFFD0E3108B90D00000089DEF3A60F85440100008D730D31DBE9E1FEFFFF6690C70424C70E3108E8CC650E0083C46C5B5E5F5DC38D7426008955C8E93DFFFFFF807B01440F859CFEFFFF8D7302BB01000000E9A8FEFFFF908D730731DBE99DFEFFFF8DB6000000008D45BC890424C744240401000000E8D94CE9FF8B45C8E99DFEFFFF908D742600803E460F85A4FEFFFF83C601EB1E669066C7002C208345C8028D55BC89F0E8EDF6FFFFBB0200000085C0746C0FB6063C5A0F849100000084C00F848900000080FB0174D58B45C88D50023955CC73C18D55BCC744240402000000891424E86A4CE9FF8B45C8EBA9908D45BC890424C744240402000000E8514CE9FF8B45C8E936FEFFFF908D742600804DE402E940FEFFFF8DB426000000008D7DBCC744240400000000893C24E8F151E9FF31C0E967FEFFFF8DB6000000008D730A31DBE9B5FDFFFF8DB6000000008B45C8E9DDFDFFFF8D55BCC744240400000000891424E8B951E9FF31C0E92FFEFFFF909090909090</bytes>
1043 <bytes id="1">
1044 5589E557565383EC7C8B1A89459C8955A4894DA0803B5F0F8493000000BFD0F93708B90800000089DEF3A60F8487010000BFD9F93708B90300000089DEF3A6755F0FB64303BEDDF937083C690F94C23C660F85F10100008B55A48D430489020FB643043C510F84350300003C740F84FD0200003C4B0F84250300008B4DA08B55A48B459CE8A7DAFFFF89C385DB74138B55A48B028038000F84DB0300008D760031DB83C47C89D85B5E5F5DC38D7426008D43018945940FB67301C70424083C3A0889F20FBEFA897C2404E89D81DBFF85C0740A807B025F0F84AB03000089F03C5F0F847901000089F280FA760F8446020000897C2404C7042401FA3708E86A81DBFF85C00F8413FFFFFFC7442404083C3A08891C24E8328DDBFF85C08945980F84F8FEFFFF8B45948B55A489020FB643013C510F84170300003C740F84870200003C4B0F84070300008B45A4E80FB1FFFF85C089C30F8845FFFFFF8B45A48B10891424895590E81187DBFF8B559039C30F8F2AFFFFFF83FB0A7E1ABF18F93708B90800000089D6F3A6750A807A094E0F84B60300008B45A089D989DEE88FB9FFFF8B45A403308930BB01000000E94A0200008DB6000000008B55A483C308891A89D0E899B0FFFF83F8FF89C60F84CEFEFFFF8B45A48B1083C20189108B459CE81CC3FFFF85C089C30F84B2FEFFFFF7DE897424088D75B6C7442404F4053808893424E8B57DDBFF8B45A089F2E83FBDFFFF8B45A089DAE835BDFFFF891C24E88983DBFF8B55A48B1A891C24E84C86DBFF01C38B45A48918BB01000000E961FEFFFF8DB4260000000084D20F8450FEFFFFBEF1F93708E9FDFDFFFF8DB600000000807B02760F8588FEFFFF807B03740F85A9FDFFFF807B045F0F859FFDFFFF8B45A48D730589306690BB0100000089DF8B5DA48DB6000000000FB60684C00F84940200003C510F84450200003C740F84F50100003C4B0F84350200000FB6C0F6840080253808040F8544020000C7442404083C3A08893424E8408CDBFF8945A48B4DA489F28B45A0E844B8FFFF8B75A403338933C7442404083C3A08893424E8498BDBFF85C0742639C60F8591FDFFFF8B459CBA06CC2B08F60004B8ED142E080F45D08B45A0E826BCFFFF8303018B33E964FFFFFF8D742600807B02740F85B0FDFFFF0FBE4303C70424083C3A0889442404E8167FDBFF85C00F84BFFCFFFF8B55A48D73048932E91DFFFFFF908D7426008B4DA08B55A48B459CC744240801000000C744240401000000C7042400000000E82BCEFFFF89C3E9EFFCFFFF8D7426008B4DA08B55A48B459CC744240401000000C7042400000000E883D3FFFF89C3E9C7FCFFFF8D7426008B4DA08B55A48B459CC744240801000000C744240401000000C7042400000000E8D3CDFFFF89C385DB0F84ABFCFFFF8B55A48B323B75980F859BFCFFFF8B45A483C601BA06CC2B0889308B459CF60004B8ED142E080F45D08B45A0E828BBFFFF8B55A48B3A893C24E84784DBFF89FA89C689C18B45A0E8EDB6FFFF8B45A40130E955FCFFFF8D76008B4DA08B55A48B459CC744240401000000C7042400000000E8D3D2FFFF89C3E97BFFFFFF8D7426008B45A089F2E8CEBAFFFFE91BFCFFFF908B45A483C3038B559C8918BB0100000083422C01E901FCFFFF8DB426000000008B4DA089DA8B459CC744240801000000C744240401000000C7042400000000E8F4CCFFFF89C78B33C7442404083C3A08893424E86C89DBFF85FF0F851BFEFFFF89FBE9B3FBFFFF908B4DA089DA8B459CC744240401000000C7042400000000E834D2FFFF89C7EBBE89D8E849ADFFFF8B338934248945A4E85883DBFF3945A40F8EB2FDFFFFBF01000000E9BCFDFFFF8B45A0BA3AF9370889FBE80ABAFFFFE957FBFFFF0FB642083A420A0F853DFCFFFF0FBEC089442404C70424083C3A08E8017DDBFF8B559085C00F841FFCFFFF8B45A0BA9AF9370889DEE8CBB9FFFF8B55A403328932C7442404083C3A08893424E8B088DBFF894598E904FCFFFF8DB6000000008DBF00000000</bytes>
1045 <bytes id="2">
1046 5531C089E58B4D080FB61184D2741D83C1018DB6000000006BC0430FB6D28D44108F0FB61183C10184D275EC5DC36690</bytes>
1047 <bytes id="3">
1048 5589E556538B5D088B432085C074095B5E5DC3908D7426008B1331C931F60FB60284C0743A8D76006BC9430FBEC083C2018D4C018F0FB60284C075EC89C8BA6F452101F7E289C829D0D1E801C2C1EA0A69D2F707000029D18D348D000000008B4D0C01F18B0189432089195B5E5DC390</bytes>
1049 <bytes id="4">
1050 55B812C42B0889E583EC68895DF48B5D108975F88B7508897DFC8B7D0C85DB750F8B5DF48B75F88B7DFC89EC5DC366908B86A00000008B504085D2750B31C0EBE08DB4260000000039785876F08D0CBA8B018B50308945C485D20F849F0000008B45C48B481839CB730A8B55C489D8034230EBAD8B86A00000008B15E02E3A088B403C8955E039C774628B55C48B128955E48B55E48944240489342489542408E85BFFFFFF89C78B45C48B4818894DD4C744240805000000C7442404ECF53608C7042471632B08E89091DFFF8B4DD4897C2410895C240889742404894C240C890424FF55E031C0E935FFFFFF8B55C4BFABED36088B1239DA8955E47595EBAE89C28B40108B52148945D88B45C48955DC8B40188945E083C00183F8017646894DD489442404893424E8230DFEFF8B4DD485C08945E474288B45D88B55DC894DD4C744240C000000008944240489542408893424E8F8B0FDFF8B4DD485C074168B09894DC48B45C4C740300000000031C0E9ACFEFFFF8B55E08B45E4894DD48974240889542404890424E8F2A9FDFF8B4DD43945E0742AE82598FDFF8B4DD483F801740FC7042411000000E821A2FDFF8B4DD48B11C74218000000008955C4EBA48B45E48B55E0C60410008B018B55E4895030E989FEFFFF89F68DBC2700000000</bytes>
1051 <bytes id="5">
1052 5589E583EC68895DF489C385D28975F8897DFC8B40288B4B2C8B7B308955D48945C48B4338894DC8897DCCC7432C000000008945D0C7432800000000C7433800000000C7433C000000008955C0752931C08B55C48B7DCC8B4DC88953288B55D0897B30894B2C8953388B5DF48B75F88B7DFC89EC5DC36690803A0074D2C745E000000000C745DC00000000C745D800000000F703000300000F85420100008914248955BCE8D3C2DBFF8B55BC83F8068945B40F86A8010000BF11F93708B90600000089D6F3A60F848C020000BF9D292B08B90600000089D6F3A60F8478020000837DB40A0F8676010000BF18F93708B90800000089D6F3A60F85620100000FBE4208C70424083C3A088955BC89442404E857BCDBFF8B55BC85C00F84430400000FB6003A420A0F84D50300008D7426008B55C0908D742600C74424045F000000891424E824BCDBFF85C089C6745C8078015F8D500175E180385F7526B95F00000031D2EB088D76000FB64C100183C20180F95F74F383FA027E088D7402FE85F674288B533085D20F84430100000FB6160FB6C2F6840080253808040F850F02000080FA740F8406020000837B2802740831F6837B2C0275618B55D48D45D8E88DF8FFFF8B75D4893424E8AEC1DBFF8D14068955D4BE01000000EB1F908D7426008D55D489D88D4DD8E81339000085C089C60F84960400008B55D4803A000F85950000008B432883F8020F84A1000000837B2C020F841F010000837B3C010F844D01000089D8E836F2FFFF85F675128D45D8E89AF1FFFF31C0E914FEFFFF8D76008D45D8B901000000BA12C42B08E8DEF3FFFF8B45D8E9F7FDFFFF8DB600000000F703003800000F84C4FEFFFFBF21F93708B90700000089D6F3A60F853801000083C2078955C08955D4C7432C02000000E99BFEFFFF8D76008D55D489D88D4DD8E85B2F000089C6E957FFFFFF8D742600BA229B2C088D45D8E853F7FFFFC7432800000000E95AFFFFFF8DB426000000003975C00F84080100008B03F6C408740A807E02700F8450010000F6C42074140FB646023C740F848E0000003C700F84E50100003975C00F845F010000807E02000F8494FEFFFF8D55D489D88D4DD8893424E83AFBFFFF89C685F60F84D3FEFFFFE9C2FEFFFF8D7600BA409B2C088D45D8E8CBF6FFFFC7432C00000000E9D2FEFFFF8DB4260000000083C2068955C08955D4C7433C01000000E9C3FDFFFF8D7600BA49F937088D45D8E893F6FFFFC7433C00000000E99AFEFFFF807E036D0F8570FFFFFF8B55C0891424E8DEBFDBFF8D4DD8890C248D55D489C189D8E8B01D00008B55D4E91CFEFFFFBF29F93708B90700000089D6F3A60F8564FDFFFF83C2078955C08955D4C7432802000000E94FFDFFFF8B7DC08B4DC00FB6570283C1020FB6C20FB784008025380889C783E704751880FA51741380FA74740E80FA4B740980FA480F85C1FEFFFF8B03F6C41C740885FF0F8544010000F6C43C750483432801894DD489CAE99AFDFFFF807E03740F85A6FEFFFF8B7DC031C083C9FF8D55D4F2AE8D45D889042489D8F7D183E901E8FD1C00008B55D4E969FDFFFF8B7DC00FB657020FB6C2F6840080253808040F8589FEFFFF80FA740F8480FEFFFFF703003C00000F8503010000803E5F750E8B45C083C00180385F74F88945C08B45C0C74424045EDA3008890424E8EEC0DBFF85C00F84E4FCFFFF807802000F84DAFCFFFF8904248D55D489D88D4DD8E880F9FFFF89C6E941FEFFFF900FB646033C730F849FFEFFFF3C740F8507FEFFFFE992FEFFFF0FB642093C4474353C490F851FFCFFFF83C20B89D88955D48D4DD8C74328020000008D55D4E8D535000085C00F857DFEFFFF8B4DD4894DC0E9F2FBFFFF83C20B89D88955D48D4DD8C7432C020000008D55D4E8A835000085C00F8550FEFFFF8B55D48955C0E9C5FBFFFF8D45D4894DD4E8EAE7FFFF8B55D48D45D8E8CFF4FFFF8B55D431C083C9FF89D7F2AEF7D18D540AFF8955D4E939FCFFFFC744240808000000C744240431F93708893C24E849C3DBFF85C00F85DDFEFFFF89F883C0088945E40FB657088D7DE484D2743089F8E88BE7FFFF83F8FF0F84BAFEFFFF0345E48945E40FB61080FA5F75DE8078015F75DC8D50028955E40FB65002EBCC8B45D489F789DE8D50088955D40FB6400884C074668D45D4E845E7FFFF83F8FF89C3744E8B55D48914248955BCE84CBDDBFF8B55BC39C37F3989D98D45D8E81FF3FFFF035DD4895DD40FB6033C5F75C1807B015F75BFBA06CC2B088D45D8E8AFF3FFFF8B45D48D50028955D40FB64002EB9F89F389FEE91FFEFFFFBA3AF9370889F38D45D8E8C8F3FFFFE923FDFFFF8B55D48955C0E906FAFFFF908DB42600000000</bytes>
1053 <bytes id="6">
1054 5589E557565383EC2C8B7D088B750C8B5D148B47088B90A80100000FB69280010000893424C0EA078855E4FF504C0FB655E484D2894308745F8B47088D5604891424FF505089038B47088D5608891424FF504C8943040FB6460C88430C0FB6460D83C60E88430D8B4708893424FF50583DFFFF0000894310742E3DFFFE0000BA0100000076082D0000010089431083C42C89D05B5E5F5DC38B47088D5604891424FF504C8903EB9F8B451031D285C074DD8B55108B4708891424FF504CBA0100000089431083C42C89D05B5E5F5DC390</bytes>
1055 <bytes id="7">
1056 5589E583EC188B450C8B00894424048B45088B00890424E89020F3FFC985C00F94C00FB6C0C38D76008DBC2700000000</bytes>
1057 <bytes id="8">
1058 5589E557565383EC6C8945C08B4514894DB48855BFC645E70085C0C745E000000000C745DC00000000C745D8000000000F84360400008B7D1885FF0F84E70300008B75C0C745C40000000085F6740C8B55C08B42048B400C8945C4A1B0D63B08C745B000000000C745B8000000008B782085FF0F84190100008DB42600000000A158703B08893C2489442404E89F59E9FF85C08945CC740A8B1885DB0F84E60000008B9F80000000C745C8000000008B0B85C90F84FA000000897DD4EB3D6690A158D63B0885C07402FFD0891C24E85D3EF6FF85C089C674150FB6003C2B74043C2D750A807E015B0F842201000083C3288B3B85FF0F84B50000008B75D4893424E8AA56E9FF8B157CD63B0885D28945D08B7B0474AAE8C5DEE9FFEBA38D76008B4F3C8B473889CA29C283FA030F8E850200008B573483C00489473839D00F849E0200008B5F4401D8F7D321D889CB89C62B5F302B773089473839DE0F8F4E02000089C18B75C8A158703B08894F3489328954240889442404893C24E81F59E9FF8DB426000000008B3F85FF0F85EEFEFFFF8B5DB88B75188B4D148B45B08919890683C46C5B5E5F5DC38DB6000000008B7DD48B75CC85F60F8462FFFFFF8B45CC8B55C8391074C0C744240805000000C7442404AACA2A08C7042400000000E80822E9FFC7442410CF123108C744240C08153108C744240401050000C704249512310889442408E8E4ECE9FF8D7426008B45D0897C2404C7442408E0DD3B08890424E8D9A3F9FF89C78B45C085C074408B55C43B3A0F82B3FEFFFF3B7A040F83AAFEFFFFEB2A66908D041285D2B9000400000F44C1A350703B0889442404A154703B08890424E8B5FAE9FFA354703B08893424E8D423E9FF8B1550703B0883C00139D073C3A154703B0889742404890424E86624E9FF8D45D8894424108D45E789442404A154703B088D55DC8D4DE08954240C894C2408890424E881F9FFFF85C00F8427FEFFFF8345C801807DBF00740D0FB645BF3845E70F8510FEFFFF8B4DB485C974228B45E085C00F84FEFDFFFF8B55B489442404891424E88D2AE9FF85C00F85E7FDFFFF8B550885D274228B45DC85C00F84D5FDFFFF8B4D0889442404890C24E8642AE9FF85C00F85BEFDFFFF8B450C85C074228B45D885C00F84ACFDFFFF894424048B450C890424E83B2AE9FF85C00F8595FDFFFF893C24E84F91F2FF85C089C70F8480000000890424E8BD3BF6FF893424894424048945ACE80A2AE9FF8B55AC85C0757A837D100074138B55B08B4D108B75B88D04918B108914B189388345B8018345B001E93FFDFFFF90894F38E9ACFDFFFF8D472C890424C744240404000000E80120E9FF8B47388B57348B4F3C83C00439D08947380F8562FDFFFF804F5402E959FDFFFF837D100074098B4DB88B7510891C8E8345B801E9EBFCFFFF8974240889542404C7042434193108E8F91AEAFF837D100074DD8B45B88B5510891C82EBD2C744240805000000C7442404AACA2A08C7042400000000E8A81FE9FFC7442410C0123108C744240C08153108C744240489040000C704249512310889442408E884EAE9FFC744240805000000C7442404AACA2A08C7042400000000E8641FE9FFC7442410B1C82E08C744240C08153108C744240488040000C704249512310889442408E840EAE9FF</bytes>
1059 <bytes id="9">
1060 5589E557565383EC3C8B5D20837D18060F84320100008B45080FB6108B4D248B412085C00F84560100008B40080FBE40180FBED239C20F8434010000837D18060F84BA0100008B359C3F3A0883FE7F0F844B0100008B3D983F3A088D04B6C1E0038945E48D04078D50048945E08914248955DCC744240400000000E850C60C008B4DE48B55DCC6443910018B4D24891424894C24108B4D10894C240C8B4D0C894C24088B4D08894C2404E831C00C008B551485DB8B45E08950088B551C8B4DE4C74014000000006689543912742C8B55248B82744000008B927840000039D0720EEB17908D74260083C00C39D0730B391875F58D14B68944D7148D04B60FB65D188D14C78D4A10806111FC8D4204C7421800000000C7422400000000C74228000000008B552483059C3F3A08018305A03F3A08018382884000000188591083C43C5B5E5F5DC366908B4D080FB61180FA670F85C5FEFFFF8B7508BF8AD52A08B90E000000F3A6756C31C0EBD28D74260083450801836D0C01E9BFFEFFFF8D7600A1B0D63B088B401C85C0740B8B402085C00F8593FEFFFF31C0E993FEFFFF6690C7442404DC13000031F6C7042401000000E84A640000C7059C3F3A080000000089C7A1983F3A088907893D983F3A08E987FEFFFF8B4508C744240498D52A088855DC890424E8F294FFFF0FB655DC85C00F8526FEFFFF31C0E941FFFFFF8D76008B7508BFA7D52A08B90E000000F3A60F8531FEFFFF31C0E922FFFFFF8D742600</bytes>
1061 <bytes id="10">
1062 5589E557565383EC6C8B75088B55108B5D180FB6460C3C0B0F84AA0000008B4B6485C90F845F0400003C060F84DF0100008B4D0C89D7803C11000F8530010000894DC8C745CC000000008D45E0C744240801000000894424048B4364894DE0894DBC890424E816BF17008B4DBC89C28B0085C00F84370100008B55CC03108916807804007522895C2408893424C744240400000000E846FEFFFF8D65F45B5E5F5DC38DB60000000083C004895C240889342489442404E825FEFFFF8D65F45B5E5F5DC3908D7426008B7D1485FF0F84D50000008B4B3C8D7A018B4338894DD029C139CF0F8FE703000001F88B7B3489433839F8897DD40F842C0400008B4B4401C8F7D121C88B4DD089C72B7B30894338897DD089CF2B7B30397DD00F8F4701000089C18B45D4894B348B4D0C8955B8890689542408894C2404890424E82BCDF2FF8B068B55B8C6041000893424C744240800000000C744240400000000E87EFDFFFF8D65F45B5E5F5DC38DB6000000008D421F83E0F029C48B450C8D4C242783E1F0890C24894DBC8954240889442404E8D7CCF2FF8B4DBCC6043900E99FFEFFFF8DB426000000008B450C8906EB9B900FB6460C84C00F85B4000000C6460C018B45C88955B8894DBCC744240400000000890424E877B009008B55B88B4DBC85C08945C40F84F9010000C6460C058B45C48955B8894DBC890424E8BDCCF2FF8B4DBC8B55B88945C8E9AF0000008D76008D422783E0F029C48D4C242783E1F08D4108C70123234A418D7A08C74104564124248945C88B450C895424088955B8894DBC894424048B45C8890424E81BCCF2FF8B55B88B4DBCC6440A0800C745CC08000000E9E2FDFFFF894B38E9B3FEFFFF3C010F8448FFFFFF3C050F8440FFFFFFC645C4003C030F84EC000000807DC4000F85E20000003C060F84F60200003C010F840A0100003C040F8402010000C745C800000000C745C4000000003B4D0C0F85330100008B451485C00F85280100008B7DC88B433883C705897DC88B7B3C897DD029C7397DC80F8F4B0200008B7B340345C839F8894338897DD40F84C20200008B7B4401F8F7D721F88B7DD0894338897DC089C72B7B30897DD08B7DC02B7B30397DD00F8FEE0100008945C08B45D48B7DC08902897B3489088B7DC485FF0F84B30100008B4DC48955B8894C24048B0283C004890424E810CCF2FF8B7DC4893C24E87981F3FF8B55B88B02E908FDFFFF8DB426000000008B45C88955B8894DBCC74424040B000000890424E84F0E17008B55B88B4DBC85C08945C40F8433020000C6460C03E943FEFFFF908D7426008B45C88955B8894DBCC744240400000000890424E8A77909008B55B88B4DBC85C08945C40F84D4FEFFFFC6460C04E90BFEFFFF0FB6460C3C010F9445C4E992FEFFFF8DB6000000008B45C88D7C38068B4338897DC08B7B3C897DD029C7397DC00F8F520100008B7B340345C039F88945D48943380F84A20100008B45D40343448945B48B4344F7D02145B48B45B48943382B43308945C08B45D02B43303945C00F8FB20000008B45B48945D08B45D0893A8955B88943348B45C88D4407058907894C24048B028B00890424E8ECCAF2FF8B55B8E9B2FEFFFF8955B8C7442414806E0508C7442410C08E0508C744240C00000000C7442408F09E1108C744240460E81108C7042400010000E851B417008B55B88943640FB6460CE95BFBFFFF66908D432C8904248955B8897C2404E85AC7F2FF8B4B3C8B43388B55B8894DD0E9F6FBFFFF908D7426008B02C64004008B02E974FBFFFF8D76008B45D0894338E949FFFFFF908D7426008B45C0894338E90AFEFFFF908D742600804B5402E9CBFBFFFF8DB426000000008B45C88955B8894DBC894424048D432C890424E8ECC6F2FF8B7B3C8B43388B4DBC8B55B8897DD0E989FDFFFF8D7426008B45C08955B8894DBC894424048D432C890424E8BCC6F2FF8B7B3C8B43388B4DBC8B55B8897DD0E982FEFFFF8B45C88955B8894DBCC744240407000000890424E8330C17008B55B88B4DBC85C08945C47424C6460C06E92BFCFFFF804B5402E935FDFFFF804B5402E955FEFFFF0FB6460CE9B8FCFFFF0FB6460CE9B7FCFFFF89F68DBC2700000000</bytes>
1063 <bytes id="11">
1064 5589E557565383EC6C8B4D108B5D0C85C90F85C90000008B550831F68B82A000000083C0648945D48B55088B4DD48B42088B79188B80A8010000C1EF0485FF8945C80F851401000031F631C9C745D000000000C745CC000000008B45C88B503085D274198B45CC894DB0897C2408894424048B4508890424FFD28B4DB085DB742585F67E1B8B55CC31C08DB60000000089148383C00183C23439F075F38D1CB3C703000000008B5DD085DB74118B55D0894DB0891424E8D142E0FF8B4DB085C974108B45D43948307408890C24E8BA42E0FF83C46C89F05B5E5F5DC38D7426008B4D088B81A00000008B904C0200008DB0000100008BB8500200008D88680100008975D431F685D20F45F185FF75418B905402000085D20F840BFFFFFF8BB8C402000085FF0F85FDFEFFFF8B4508C744240400000000890424E842B2000085C00F85E2FEFFFF83CEFFEB87908D7426008B88C002000085C975B5EBCF8B45D48B5508C744241800000000C744241400000000C744241000000000C744240C00000000897C240889442404891424E89E3D000085C089C174AE6BC734894DB0894424048B4508890424E813BFFEFF8B4DB085C08945CC0F844703000085F674598B5618D1EA39FA8955D00F848D0200008B45088B35E02E3A088B50048975C4C744240805000000C744240464EA36088955ACC7042471632B08E8FF41E0FF8B75D08B55AC897C240C8974240889542404890424FF55C48B4DB0C745D000000000C745C4000000008D04BF31F68D04818D51148945C08955BC8B45BC3945C08B55CC0F8614FEFFFF897DBC8B7D0889C6895DB489D3894DB866908B168D43188953188B56048950048B56088950088B560C89500C8B5610893B8950108B55D4C744240C0000000089742408893C2489542404E87BC700008943048B068943088B461085C00F851B010000C74310C02F3A08F647344274098B43108B401C2943080FB6460C89C2C0EA0480FA010F84310100000F830D010000834B0C010FB6460C669083E00F83F80A7710FF248500EB3608814B0C0401000066908B551085D27407814B0C008000008B45C485C074228B55C48D45E689442408893C2489542404E86D1400000FB745E68345C402668943308B4DC88B412C85C07409895C2404893C24FFD083C61483C3343975C00F8707FFFFFF89DA8B4DB889D68B5DB42B75CC897D088B7DBCC1FE0269F6C54EECC4E9E8FCFFFF814B0C00004000E97AFFFFFF814B0C00001000E96EFFFFFF814B0C00000800E962FFFFFF814B0C00000400E956FFFFFF814B0C04400000E94AFFFFFF834B0C08E941FFFFFF814B0C00000100E935FFFFFF83F8F10F848400000083F8F275618B4604C74310002F3A08894308E9CCFEFFFF80FA02743A80FA0A0F85EFFEFFFF814B0C000080000FB6460CE9DFFEFFFF8B561083FAF20F84D3FEFFFF85D20F84CBFEFFFF834B0C020FB6460CE9BEFEFFFF814B0C800000000FB6460CE9AEFEFFFF89442404893C24E882140000B980303A0885C00F44C1894310E95FFEFFFFC7431080303A08E953FEFFFFC744240C000000008B56148B4610894DB0895424088B550889442404891424E8705FFEFF8B4DB085C0757B8B4618894DB0890424E8DBAEFEFF8B4DB085C08945D074428B46188B5508894424048B45D0894DB089542408890424E86558FEFF8B4DB03B461875288B45D08B75D0C745C40000000083C00285F60F4445C48945C4E945FDFFFF837E1800751B31C0EBB7837DD00074118B55D0894DB0891424E88D3EE0FF8B4DB08B75D4394E300F8438FCFFFF890C2483CEFFE8733EE0FFE9B4FBFFFF6690</bytes>
1065 <bytes id="12">
1066 5589E581EC98000000833D043C3A08FF895DF48B55088975F88B5D0C897DFC0F84B30000008D759431C0B91500000089F766F7C304FFF3AB89D8895D9474398B4D94F6C5417548F6C104756C6685C90F88A300000089F0E804F9FFFF89C789F0E8EBEDFFFF89F88B5DF48B75F88B7DFC89EC5DC38D742600A1043C3A082504FF000009D88945948B4D94F6C54174B889142489558489442404E8428000008B558485C089C775BE8B4D94F6C5407498EBB48DB42600000000891424895584E8FD7F00008B558485C089C775998B4D94E978FFFFFF8D742600891424E820D200008B5DF48B75F889C789F88B7DFC89EC5DC38DB42600000000895C2404891424E8ECE7FFFF8B5DF48B75F889C789F88B7DFC89EC5DC38D7426008DBC2700000000</bytes>
1067 <bytes id="13">
1068 5589E557565383EC4C8B7508837D14018B46108945E00F846C0100008B4E388B451089CFC1E704894DDC8D8FE0203808F761048B490C8945D08B45108955D429D0D1E88D1C108B5510D3EB0FAF9FE02038088B7E0C83461C0129DA89D38D14950000000001D78B0785C00F84DF00000083F80174238B4D0C8955CC890424894C2404FF56048B55CC85C00F85B00000008B463831FF8945DC8B55DC8B4510C1E20489D181C1E02038088955D0F761088B490C8945C08B45108955C48B55C483C0018945DC8B451029D0D1E801D0D3E88B4DD08B91E020380883EA020FAFC28B56202945DC8D742600035DDC83C20189562089D82B45E0395DE00F46D88D049D000000008945E403460C8B0885C9744983F901741C8B550C890C2489542404FF560485C0755389F88B562089C7EBBA669085FF0F45C789C7EBAF8DB426000000008B7E0C01D783C44C89F85B5E5F5DC331FF8DB426000000008B451485C0745185FF7459836E180189F8C7070000000083C44C5B5E5F5DC3908B7DE4037E0C83C44C5B5E89F85F5DC38D14408B4614C1E00239C20F8783FEFFFF89F0E8E0FBFFFF85C0740C8B56108955E0E96DFEFFFF9031FF83C44C89F85B5E5F5DC38D3C9D0000000083461401037E0CE976FFFFFF90</bytes>
1069 <bytes id="14">
1070 5589E583EC088B450C8B55088B4804394A04721C77228B128B0085D20F95C185C0751D31C084C9740C8DB42600000000B8FFFFFFFFC9C390B801000000C9C39084C974F489450C895508C9E93CA0FFFF</bytes>
1071 <bytes id="15">
1072 5589E557565389C383EC6C8955A4894DA080385F0F842E010000BF18F93708B90800000089DEF3A6752E0FB643083C5F74083C2E0F85FE0000000FB643093C490F94C20F859F010000807B0A5F0F84A5010000908D74260031F631C0F645A4100F84C7000000891C2489E7E84C3EDBFF895DB4895DC0C745C800000000C745D400000000C745DC000000008D14038955B88B55A48945D8C745E000000000C745E4000000008955BC8D1400C1E0028955CC8D141083C01E8D14951E00000083E0F083E2F029D48D54241F29C48D44241F83E2F083E0F083FE018955C48945D00F84D300000073798D45B4890424E85EC7FFFF89C3F645A401740C8B45C08038000F85D200000085DB0F84CA0000008B45088944240C8B45A0895C2404894424088B55A4891424E865FDFFFF89FC8D65F45B5E5F5DC38D76003C240F8518FFFFFFE9F5FEFFFF8D76008078015ABE010000000F85C3FEFFFFE90AFFFFFF8D74260083FE03778283C30B895DC0891C24E8493DDBFF89DA89C18D45B4E841C0FFFF31D283FE020F95C283C23CC704240000000089C18D45B4E8A5BFFFFF8B75C089342489C3E8143DDBFF01C68975C0E942FFFFFF8DB6000000008D45B4C744240401000000890424E8D5DEFFFF89C3E922FFFFFF8DB60000000031C089FCE94CFFFFFF8DB426000000003C440F8568FEFFFFE954FEFFFF8D760089D6C1E61FC1FE1F83C603E95EFEFFFF908DB42600000000</bytes>
1073 <bytes id="16">
1074 5589E557565383EC6C8B7D088955D8894DE48945E0890424E87385F7FF8B55E08B4DE485C98945D08B45E08B804C4000008945CC8B42208B40748945C00F8EED00000083C22C31DB8955B8C745C412C42B08C745BC00000000C745D400000000EB128DB60000000083C301395DE40F8EBC0000008B349F8B460485C074EA80380074E58B4DE08B41208B500889742404890424FF921801000085C00F85970000008B56108B420883F8FF0F84270500008B4DE0837DD8018B895C4000008B0481894DB48945DC0F849C0000008B460CF6C4400F84B00000008B4DD485C9740F8B4DCC8B55D48B41208942048951208B560483C3018914248955ACE82D53F7FF8B4DB88B55AC894C240889142489442404E84BE10400395DE48975BCC745D4000000008945C40F8F49FFFFFF908D74260083C46C5B5E5F5DC38B45D0890424E84D94070085C00F841DFFFFFF8B55E08B4DD08974240889542404890C24E84FAD0700E902FFFFFF669081FAC02F3A080F849C0100008B45C085C00F85E9FEFFFFE948FFFFFF8D742600F6C4010F85D7FEFFFFA8830F84CFFEFFFF8B4A1C894DC88B4E08014DC881FA80303A080F841F0200008B4A14894DA48B4DC8034DDCF745A400040000894DB48B4DC80F444DB4F645A410894DC80F8494010000A8820F84BA0100008B4E04C745B001000000894DB48B45B48955AC890424E82E52F7FF8B4DE08B55AC894C240C8B4DC8895424088B55B0890C248B4D0C8954240489C28B45B4E84AFDFFFF85C08945DC0F8437FEFFFF837DD80289F00F84DB01000085C074098B401C8B55DC8942148B4DDC8B45C48B55D0894118894C240889742404891424E87AC80700837DB0010F85F8FDFFFF837DD8020F85EEFDFFFF8B4E04890C24894DB4E8A451F7FF83F8040F8ED7FDFFFF8D50FC8B45B4C744240493992C088955AC01D0890424E8C058F7FF8B55AC85C00F85B1FDFFFF8B45E08B4DC88944240C8B4610890C24B901000000C744240405000000894424088B45B4E890FCFFFF85C00F8480FDFFFF8B4DDC8B51148B4DD08950148B55C48950188944240889742404890C24E8D6C70700E959FDFFFF90F6460C080F845AFEFFFF8B4E088B55E085C98B4220894DDC0F843AFDFFFF8B506485D20F842FFDFFFF895DC889CB8B4DB48DB42600000000F642140174128B421C39C3720B03422439C30F828A0100008B520C85D275E18B5DC8E9F9FCFFFFF645A4010F84EFFCFFFFA8820F849F000000F645A4020F84170100008B4604C745B0020000008945B4E953FEFFFF8B4E04894DB40FB60980F92E884DDC7409A801741280F924750D8B45B48078014C0F84A4FCFFFFC745B006000000E920FEFFFF837DD8020F84FE0000008B4628050001000083F8020F87DB0000008B0485B4992C0883F8048945B00F842D0300008B4E04894DB480392E0F845BFCFFFF8B45DC0145C8E9D8FDFFFF8B4614E91DFEFFFFA8010F848C0000008B4604C7042470992C088955AC894424048945B4E82B57F7FF8B55AC85C00F85090100008B4DE08B896C400000894DB0837DB0000F885D010000837DD4000F84E20100008B4DB08B45D483C104833C88000F858C0100008B56108B421C03460881FA80303A088B75DC8B55D48D34300F45C689048AE9C6FBFFFF8B4E04C745B003000000894DB4E93CFDFFFF8B4E04C745B000000000894DB4E92AFDFFFF8B4E04C745B004000000894DB4E918FDFFFF8B4604C745B0040000008945B4E906FDFFFF8B42088B5DC8894DB483F8FF8945C80F84370200008B76048955AC893424E81F4FF7FF8B55AC8B4DE0C744240405000000895424088B55B4894C240C8B4DDC8945B08B45C8030C8289F08B55B0890C248B4D0CE82EFAFFFF85C00F841EFBFFFF8B55C4895018E913FBFFFF8B45B4C7042479992C088955AC89442404E80156F7FF8B55AC85C00F854B0100008B4DE08B896840000083F9FF894DB00F85CDFEFFFFC744240805000000C744240450D52A08C7042400000000E8254CF7FFC7442404B3010000C7042466992C0889442408E81117F8FF8B4DA483E10283F90119C9F7D183C108894DB0E919FCFFFFC744240805000000C744240410CE2A08C7042400000000E8D94BF7FFC74424040A010000C7042466992C0889442408E8C516F8FF8B10894DA8C744240805000000C74424040C982C088955ACC7042400000000E89D4BF7FF8B55ACC70424E0B839088954240889442404E80AD7F7FF8B4DA8E931FEFFFF8B45E08B886C4000003988684000000F4D88684000008B807040000039C10F4CC88D148D14000000894DA88914248955ACE8CC24F8FF8B55ACC744240400000000895424088945D4890424E86E48F7FF8B4DA88B45D4837DBC0089480C0F84B90000008B55BC8B4DD48B42048901E9ABFDFFFF8B45B4C7042484992C088955AC89442404E89554F7FF8B55AC85C00F85DDFEFFFF8B4DE08B897040000083F9FF894DB00F8561FDFFFFC744240805000000C7442404A8972C08C7042400000000E8B94AF7FFC7442404B5010000C7042466992C0889442408E8A515F8FF8B46048945B4E9BAFAFFFFC744240805000000C744240410CE2A08C7042400000000E87A4AF7FFC744240430010000C7042466992C0889442408E86615F8FF8B5604C744240805000000C7442404CC972C08C70424000000008955ACE8404AF7FF8B55ACC70424E0B839088954240889442404E8ADD5F7FFE9C4FCFFFF908DB42600000000</bytes>
1075 <bytes id="17">
1076 5589E557565383EC3C8B5D108B750C8B4B108B530C8D7E0189C829D039C77F688B430801FA89530C39C2747A8B7B1801FAF7D721FA89D72B7B0489530C897DE489CF2B7B04397DE47F3689D1894B088B5D0801F3395D0874168B550889C189DF0FB61A83C201881983C10139D775F1C604300083C43C5B5E5F5DC3908D742600894B0CEBC78D7600897C2404891C24E8B86EF2FF8B530C8B43088B4B1001FA39C289530C7586804B2802EB808D742600</bytes>
1077 <bytes id="18">
1078 5589E583EC38895DF48B5D108975F88B4D0C897DFC8B838400000085C074288B400431D28B731C8B7B208945E489C801F011FA83FA00765083FF0077553B75E473508B4DE429F18B531031F631FF31C085D274218B4508894C2408C744240C00000000891C2489442404FF1283F8FF740A89C631FF01731C117B208B5DF48B75F88B7DFC89EC5DC33B45E476BA83FF0076AB8B5DF431C08B75F88B7DFC89EC5DC3EB0D90909090909090909090909090</bytes>
1079 <bytes id="19">
1080 5589E58B55085D0FB642010FB612C1E00809D0C38DB6000000008DBF00000000</bytes>
1081 <bytes id="20">
1082 5589E58B45088B550C8B88A000000031C039515876098B41408B04908B402C5DC3EB0D90909090909090909090909090</bytes>
1083 <bytes id="21">
1084 5589E557565383EC3C8B4508890424E89C1B040085C089C30F84CC0200008B4508895C2404890424E8130404003B05C4773A088945E0720C3B05C8773A080F82B40100008B55E0895C2404891424E80D04F7FF89C6A1B0D63B088B782085FF0F8406010000895DE48B5DE0EB0D8D76008B3F85FF0F84EE0000008B874040000085C074EC8B40248B55E4C744241000000000895C2408897424048954240C893C24FF503C85C074C88B5DE48B45E0895C2404890424E816FFFFFF85C00F84A900000085F60F84160200008B50048B0A3B4E040F82930000008B52048B00890DC4773A08891DCC773A088915C8773A08A3D0773A088B751085F674218B4508895C2404890424E8F601040085C00F850E010000A1C4773A088B551089028B4D0C85C9740AA1D0773A088B550C89028B5514B80100000085D274268B4508895C2404890424E8B801040085C00F85F0000000A1C8773A088B55148902B80100000083C43C5B5E5F5DC3908B5DE485DB0F843201000085F60F842A0100008B068B7E04891DCC773A08A3D0773A088B4614893DC4773A0885C075788B4E288D562885C90F8456010000895DE48D465089FB66908B7A0439FB740C8B52103B56100F84AD0000008B0889C283C02885C975E28B5DE48B0B8B53048B411C8BB25C4000008B5108034124030496A3C8773A08E902FFFFFF8DB6000000003B1DCC773A080F8540FEFFFFE9EBFEFFFF8DB4260000000001F8A3C8773A08E9D8FEFFFF8D742600A1C4773A08895C2404890424E8AF0104008B55108902E9E1FEFFFF908D742600A1C8773A08895C240483E801890424E88C0104008B551483C001890283C43CB8010000005B5E5F5DC38DB4260000000085C98B5DE40F8456FFFFFF8B138B4B048B422403421C8B895C4000008B520803049139F80F864EFFFFFF893DC8773A08E94FFEFFFF8B550C85D274098B550CC702000000008B451085C074098B4510C700000000008B7D1431C085FF0F848DFEFFFF8B5514C70200000000E97FFEFFFF8B50048B0AE9EEFDFFFF8B5508891424E8BBCEF6FF89C3E922FDFFFF8B0B8B53048B41248BB25C4000008B510803411C030496E9D0FEFFFF908DB42600000000</bytes>
1085 <bytes id="22">
1086 5589E58B45085D8B4024C3908D742600</bytes>
1087 <bytes id="23">
1088 5589E557565383EC5C8945E08B55E08B400C8B5A108945C88B72388D0C9889D08B52142B5018894DD48D041239C30F8285010000C1E20339DA0F82710100008B55E08B423085C00F848A010000C744240804000000895C24048B522C891424FFD089C231C085D20F84340100008B4DE08B41182941148B45C889510C895910897138C74118000000008945E4EB1266908345E4048B55E43955D40F86EA0000008B55E48B1283FA018955DC76E38B4DE0891424FF118B55E08945D88B4238C1E0048D98E02038088B80E02038088B4B0C8945D08B45D8F76304894DCC8945C08B45D88955C48B55C429D0D1E88D04028B55D8D3E88B4DE00FAF45D08B491029C28B45E08955B4894DB08B700C8D3C968B0F85C9746083F9010F84FD0000008B45D8F763088B7DD80FB64DCC8B5DD88945C08B45B429D7D1EF01D783C301D3EF8B4DD08955C48B55B083E9020FAFF929FBEB0F8DB60000000083F9010F84BA00000001D889C129D139C20F46C18D3C868B0F85C975E38345E4048B45DC8B55E43955D489070F8716FFFFFF8B4DE08B412885C0745C8B55C8891424FFD0B80100000083C45C5B5E5F5DC38DB4260000000083FB200F8686FEFFFFE882FBFFFF8B55E089C6C1E0048B98E02038088B423085C00F8576FEFFFF8B55E0C744240404000000891C24FF522489C2E974FEFFFF908B4DE0B8010000008B513485D274A28B45C8894424048B412C890424FFD283C45CB8010000005B5E5F5DC3E80C09DBFF</bytes>
1089 <bytes id="24">
1090 5589E583EC38895DF48B5D088975F88B4D10897DFC8B750C85DB0F84EE00000085F678628B033B70047D5B8B7B1085FF0F85940000008B781C8B40208B53080314B785C98B04B0742789442408894C2404891424E8E34BF5FF8B430CC60430018B5DF48B75F88B7DFC89EC5DC38D760089442408C744240400000000891424E8E846F5FFEBD3C744240805000000C7442404AACA2A08C7042400000000E88A49F5FFC7442410007A2D08C744240C487F2D08C744240474030000C70424E57D2D0889442408E86614F6FFC744240805000000C7442404AACA2A08C7042400000000E84649F5FFC7442410F07D2D08C744240C487F2D08C744240475030000C70424E57D2D0889442408E82214F6FFC744240805000000C7442404AACA2A08C7042400000000E80249F5FFC7442410D47D2D08C744240C487F2D08C744240473030000C70424E57D2D0889442408E8DE13F6FF8DB426000000008DBC2700000000</bytes>
1091 <bytes id="25">
1092 5589E583EC188B550C8B4D0889D088510C8D50FD80FA0176173C0674133C05740F3C07740BC7410800000000C9C36690C744240800000000C744240400000000890C24E8A8F8FFFFC9C38DB600000000</bytes>
1093 <bytes id="26">
1094 5589E5575383EC10C704248C030000E83C5DF9FFB9E300000089C2A348733A0889D731C0F3ABA180D5390885C0741FBB80D539088D742600E8E3FEFFFF8B1085D27530891883C3108B0385C075EAC70520DB3B0800000000C70524DB3B0800000000C70528DB3B080000000083C4105B5F5DC38B1BC744240805000000C7442404D8572C08C7042400000000E83B83F8FF895C240CC7442404D1000000C70424FE572C0889442408E8234EF9FF8D7600</bytes>
1095 <bytes id="27">
1096 5589E557565383EC2C8B75088B7D18C7042474000000E8C5E1F9FF89FA89C38D482C8D4064894424088D4330894424048D436089042489F0E8B3FEFFFF85C089436C740E8D7426008958688B407085C075F68B432C85C074038958608B436085C0740389582C8B433085C074038958648B436485C074038958308B1785D2741D8B4204897424048955E0890424E86A11F9FF8B55E085C00F88B30000008913891F8B450CBA30970B088973048B7510C7431400000000C743200000000089430831C085F60F45C289430C8B4510C7432800000000C7433400000000C74338000000008943108B4514C74344009C1108C7432400000000C7433C0000000089431889D8C6434000C6434100C7434800000000C7434C00000000C7435000000000C7435400000000C7435800000000C7435C00000000C7436800000000C743700000000083C42C5B5E5F5DC38DB600000000895DE489D3EB16908B470489742404890424E89510F9FF85C07F0889FB8B3B85FF75E589DA8B5DE4893B891AE920FFFFFFEB0D90909090909090909090909090</bytes>
1097 <bytes id="28">
1098 5589E583EC18C7042478000000895DF889C3897DFCE8B61AF7FFB91E00000089C231C089D7F3AB895A08C6421101837B04187634C744240805000000C74424047A642D08C7042400000000E8FC40F6FFC744240403150000C7042465612D0889442408E8E80BF7FF8B4304FF2485806D2D088DB6000000008B5DF889D08B7DFCC742040200000089EC5DC3908D7426008B5DF889D08B7DFCC742040300000089EC5DC3908D7426008B5DF889D08B7DFCC742040100000089EC5DC3908D7426008B5DF889D08B7DFCC742040000000089EC5DC38DB6000000008DBC2700000000</bytes>
1099 <bytes id="29">
1100 5589E557565381EC2C0100008B5D088DBD6CFFFFFFC78500FFFFFF00000000C744240434000000895C2408893C24E83D53FEFF83F8340F851402000080BD6CFFFFFF7F742BC7042403000000E86F4BFEFF8B8500FFFFFF31F685C00F85CF01000081C42C01000089F05B5E5F5DC3669080BD6DFFFFFF4575CC80BD6EFFFFFF4C75C380BD6FFFFFFF4675BA80BD72FFFFFF0175B180BD70FFFFFF0175A80FB68571FFFFFF3C010F84BC0100003C0275958B43088B700C85F6758B8D8500FFFFFF89442404891C24E87447FEFF85C074818B7308891C24FF567885C00F8470FFFFFF8B93A000000089D889D18995F4FEFFFF899500FFFFFF89FAE8E2E0FFFF8B8DF4FEFFFF0FB749246683F90466898DF0FEFFFF0F842CFFFFFF8B95F4FEFFFF8B421885C0750A6683F9010F8415FFFFFF8B8DF4FEFFFF83793428740B8B493885C90F85FEFEFFFF85C075118B85F4FEFFFF8B503885D20F85E9FEFFFF8B43088B80A80100008985ECFEFFFF89C28B805C01000080780A200F85C8FEFFFF8B8DF4FEFFFF8B42040FB7792639F80F84EE0000008B925401000085D2740839D70F84DC0000008B8DECFEFFFF8B915801000085D2740839D70F84C400000085C00F8581FEFFFFA1E8313A088B1085D27516E9AC0000008D74260083C0048B1085D20F849B000000837A040575ED8B92A80100008B8A5C01000080790A2075DB3B7A040F843FFEFFFF8B8A5401000085C9740839CF0F842DFEFFFF8B925801000085D274B639D775B2E91AFEFFFF908D7426008D8500FFFFFF89442404891C24E86E45FEFF81C42C01000089F05B5E5F5DC390E85B3FFEFF83F8010F85E7FDFFFF6690E9ECFDFFFF8D76008B430883780C010F8445FEFFFFE9CBFDFFFF8DB6000000006683BDF0FEFFFF020F84720200006683BDF0FEFFFF030F84CC0300008B85F4FEFFFF8B403085C07407814B34000100008B95ECFEFFFFC7442408000000008B02891C2489442404E8343DFEFF85C00F85540100008B8DECFEFFFF8B790485FF0F856CFDFFFF8B85F4FEFFFF8B781885FF0F851A0200008B95F4FEFFFF8B423885C00F856E0300008B95F4FEFFFF8B7A3C85FF0F852DFDFFFF8BBBA00000008B8DF4FEFFFF8B413085C00F85F5050000C74744000000008B8DF4FEFFFF8B793C85FF745D8B511885D274568B83A00000008B405883F801763189B5F0FEFFFFBF0100000089C68D7600897C2404891C24E8DCD1000085C00F84D5FCFFFF83C70139FE77E58BB5F0FEFFFF891C24E88FBA000085C00F84ACFCFFFF8DB426000000008B95ECFEFFFF8B422885C0740D891C24FFD085C00F848BFCFFFF8B8DF4FEFFFF8B4110891C2489442404E8813EFEFF8B7B6485FF7515E90D010000908D7426008B7F0C85FF0F84FD0000008B87880000008B500483FA04740583FA0975E28B402085C074DB89442404891C24E8FF0A000085C074CBF640152074C5814F1400200000EBBC8D7426008B85ECFEFFFF8B480485C90F84ACFEFFFF8B95F4FEFFFF8B40080FB67A0739C70F8497FEFFFF85C00F85EFFBFFFF8B15E8313A088B0285C07513E97EFEFFFF9083C2048B0285C00F8470FEFFFF39C674EF8378040575E98B48083B4E0875E18B480C3B4E0C75D98B80A80100003B780875CE8B8DF4FEFFFF0FB74926394804898DE8FEFFFF0F8492FBFFFF8B885401000085C9898DF0FEFFFF740C398DE8FEFFFF0F8476FBFFFF8B805801000085C0748F3985E8FEFFFF7587E95FFBFFFF66908D8500FFFFFF89442404891C24E89642FEFFE962FBFFFF90834B3402E993FDFFFF8DB4260000000089FAC1FA1FC744240C00000000897C240489542408891C24E81355FEFF85C00F851CFBFFFF8D4DA0895C2408C744240428000000898DF0FEFFFF890C24E81E4EFEFF83F8280F85F6FAFFFF8B95F0FEFFFF89D88D8D38FFFFFFE8D2D6FFFF8B85F4FEFFFF8B503885D275178B8550FFFFFF8B95F4FEFFFF85C08942380F84B3FAFFFF8B8DF4FEFFFF81793CFFFF00000F844A0400008B85F4FEFFFF817830FFFF00000F84450400008B8DF4FEFFFF8B413883F8010F84AB0000003DC44EEC040F8770FAFFFF8D04808D44C7D83B41180F8660FAFFFF89C2C1FA1FC744240C000000008944240489542408891C24E83E54FEFF85C00F8547FAFFFF8B8DF0FEFFFF895C2408C744240428000000890C24E84C4DFEFF83F8280F8524FAFFFF8B95F4FEFFFFC744240C000000008B4218891C2483C02889C1C1F91F89442404894C2408E8EA53FEFF85C00F8498FCFFFFE9EEF9FFFF908D742600834B34408D742600E927FCFFFF6BC034891C2489442404E8BCAFFEFF85C089C70F84C3F9FFFF8B8DF4FEFFFF8B4938898DE8FEFFFF8B83A00000008948588B93A000000089C8C1E00289442404891C248995E0FEFFFFE87DAFFEFF8B95E0FEFFFF8942408B83A00000008B404085C00F8474F9FFFF8B8538FFFFFF89078B853CFFFFFF8947048B8540FFFFFF8947088B8544FFFFFF89470C8B8548FFFFFF8947108B854CFFFFFF8947148B8550FFFFFF8947188B8554FFFFFF89471C8B8558FFFFFF8947208B855CFFFFFF8947248B8560FFFFFF8947288B8564FFFFFF89472C8B8568FFFFFF8947308B8DE8FEFFFF85C9743189B5F0FEFFFF8BB5E8FEFFFF89F931C0908D7426008B93A00000008B5240890C8283C00183C13439C677EA8BB5F0FEFFFF8B95F4FEFFFF8B423883F8010F8607010000B80100000083C7348D4DA089B5E4FEFFFF89C6898DF0FEFFFF908B85F0FEFFFF895C2408C744240428000000890424E89E4BFEFF83F8280F8576F8FFFF8B95F0FEFFFF89D889F9E856D4FFFF8B471C3985E8FEFFFF77298B95ECFEFFFF837A043E0F8740F8FFFF8B5204FF24952CEB3608902D00FF000083F8010F8727F8FFFF8B4708A8400F85E70000008B570483FA040F84DB00000083FA090F84D20000008B571885D27443A802743F837F040874398B8DECFEFFFF31D28B470C2B47101B57148B4910C744240C0000000089042489542404894C2408E8F52B060009C27409816334FFFEFFFF66908B95F4FEFFFF83C60183C7348B423839F00F8719FFFFFF8BB5E4FEFFFF85C00F845AFAFFFF8B8DF4FEFFFF8BBBA00000008B413C3B47580F8259FAFFFFA1E02E3A08C7413C000000008B7B04C744240805000000C7442404A0EA36088985F0FEFFFFC7042471632B08E85631E0FF897C2404890424FF95F0FEFFFF8BBBA0000000E910FAFFFF66908B95E8FEFFFF3B57200F871FFFFFFFE921F7FFFFC1E00589442404891C24E80DADFEFF8947448B83A00000008B484485C90F840AF7FFFF8B85F4FEFFFFC744240C000000008B4014C744240800000000891C2489442404E8D450FEFF85C00F85DDF6FFFF8B95F4FEFFFF8B83A00000008B52308B404485D20F84A8F9FFFF89B5F0FEFFFF31FF89C6EB098DB60000000083C6208D4DC8895C2408C744240420000000890C24E8B649FEFF83F8200F858EF6FFFF8D45C883C7018974240889442404891C24E847D4FFFF8B95F4FEFFFF397A3077BC8BB5F0FEFFFFE947F9FFFF8B8554FFFFFF89413CE9A8FBFFFF8B8558FFFFFF85C00F84ADFBFFFF8B95F4FEFFFF894230E99FFBFFFF90909090909090</bytes>
1101 <bytes id="30">
1102 5589E58B5508530FB642010FB64A020FB61A0FB65203C1E008C1E11009C809D8C1E21809D05B5DC3908DB42600000000</bytes>
1103 <bytes id="31">
1104 5589E583EC188B5508895DF88B5D0C897DFC85D2743A8B4510891424895C240489442408E85717000085C089C2740E8D580CB92900000031C089DFF3AB8B5DF889D08B7DFC89EC5DC38DB42600000000C7442404B0000000891C24E8B016000085C089C275B0EBD5908DB42600000000</bytes>
1105 <bytes id="32">
1106 5589E557565389C383EC2C31C08D7600C784838800000000000000C78483642000000000000083C0013DF707000075E08BBB840000008BB38000000085FF7E478D8388000000895DE489C3EB068D760083C628C7462000000000895C2404893424E88AF1FFFFC7462400000000893424E84BBB0C003B0674078B462485C0740F83EF0185FF7FC983C42C5B5E5F5DC3893424E829BB0C00890424E801FFFFFF89C1B86F452101F7E189C829D0D1E88D0402C1E80A69C0F707000029C189C88B4DE405180800008B54810489562489748104EBAD8DB6000000008DBC2700000000</bytes>
1107 <bytes id="33">
1108 5589E58B450C5DC3908DB42600000000</bytes>
1109 <bytes id="34">
1110 5589E557565383EC2CA11C763A088945E489C18B55E4890D20763A080FB6023C7E0FBED0766283FA240F85290500008B55E431DB8D74260083C3010FBE041A8D0C1A0FB6F0F68436802538088C75E983F85F74E483F82474DF8D43FD83F80D890D1C763A080F86250800008B45E489DAE87BFCFFFFBA04010000A3D8DB3B08E9CC0000008D7426000FB6D8FF249D009C2C088DB6000000008B75E48B4DE40FB65E0183C10180FB2E0F84CE0A000083EB3080FB090F87C600000083FA2D89C10F844307000083FA308B5DE40F84CF0400000FB60B31FF31D231F68845E0EB1F9085FF751E80F945740580F9657514BA01000000BE0100000083C3010FB60B85D274DE85F6750980F92E0F84A105000085D20F84B90400000FB643FF3C4574083C650F85A904000080F92B740A80F92D900F859A040000BA01000000EBBB8D76008B45E483C001A31C763A08908D7426008D65F489D05B5E5F5DC38DB6000000008B5DE48B4DE40FB6430183C1013C3D0F84730600003C260F84A60A00008D7600890D1C763A0889D08D65F45B5E5F5DC38B45E48B5DE483C001807B013D0F84E5050000908D742600A31C763A088D65F489D05B5E5F5DC3908B1528763A0885D20F84240A0000BA0D010000EB838D76008B45E48B4DE483C0018079013D75C989C8BA2A01000083C002A31C763A08C705D8DB3B08A40D2B08E953FFFFFF8D76008B4DE483C101890D1C763A08894DE4E9FFFDFFFF8D74260031D2E931FFFFFF908B75E48B4DE40FB6460183C1013C3D0F84730500003C7C0F8543FFFFFF8B45E4BA28010000C705D8DB3B08BE0D2B0883C002A31C763A08E9F4FEFFFF8D7426008B45E48B75E483C001807E013D0F8535FFFFFF89F0BA2201000083C002A31C763A08C705D8DB3B08C10D2B08E9BFFEFFFF8DB426000000008B75E4BF0C9A2C08B915000000F3A60F8593FEFFFF8B45E4BA1500000083C015A31C763A08B80C9A2C08E829FAFFFFBA04010000A3D8DB3B08E97AFEFFFF66908B5DE48B4DE40FB6430183C1013C3D0F84DB0400003C2B0F858BFEFFFF8B45E4BA31010000C705D8DB3B084227310883C002A31C763A08E93CFEFFFF8D7426008B45E48B75E483C001807E013D0F857DFEFFFF89F0BA2201000083C002A31C763A08C705D8DB3B089B0D2B08E907FEFFFF8DB426000000008B45E48B5DE483C001A31C763A080FBE530189D883C002A31C763A0883FA5C0F843709000083FA270F84B20400000FB61083C001A31C763A0880FA270F84A80900008B0D28763A0885C90F8526FEFFFFA120763A08BA0D010000C70528763A08F1992C08A324763A08E992FDFFFF66908B4DE48B5DE483C101894DE00FB65B0180FB3D885DDC0F848C030000807DDC2D0F841E080000807DDC3E0F84CB0800008B75E4BF229A2C08B904000000F3A60F856B0900008B45E4BA2701000083C004A31C763A08E936FDFFFF8DB6000000008B4DE483C101E955FDFFFF908D7426008B75E48B4DE40FB6460183C1013C3E0F84550700003C3D0F8533FDFFFF8B45E4BA2C010000C705D8DB3B08B50D2B0883C002A31C763A08E9E4FCFFFF8D7426008B45E48B4DE483C0018079013D0F8525FDFFFF89C8BA2B01000083C002A31C763A08C705D8DB3B08A70D2B08E9AFFCFFFF8DB426000000008B45E48B4DE483C0018079013D0F85EDFCFFFF89C8BA2201000083C002A31C763A08C705D8DB3B089E0D2B08E977FCFFFF8DB426000000008B5DE48B4DE40FB6430183C1013C3C0F84CD0600003C3D0F8583FCFFFF8B45E4BA2D010000C705D8DB3B08AE0D2B0883C002A31C763A08E934FCFFFF8D7426008B45E48B5DE483C001807B013A0F8575FCFFFF89D8BA0B01000083C002A31C763A08C705D8DB3B0806CC2B08E9FFFBFFFF8DB4260000000083FA5F0F84CEFAFFFF81E2FF000000F6841280253808880F85BAFAFFFFA128763A0885C00F8544FCFFFF890D24763A08BA0D010000C70528763A087D9A2C08E9B4FBFFFF8D7426000FB6530180FA58740980FA780F85A50200008B5DE4BF010000008B55E483C3020FB64A02E90DFBFFFF8DB426000000000FB6C9F68409802538088C0F8517FBFFFF0FB645E089D92B4DE43C2D0F84260200008B45E489CFC745DC350000008945E085D20F85CF00000085F60F85C700000085FFC745E4000000000F8E220600008B4DE08D47FF31F6C745E40000000001F90FB651FF8D780180FA4C740580FA6C757E89C783C60183E90183E80185FF7FE085F60F84E905000083FE010F842F060000B8419A2C08E8C4F6FFFF89C6B84A9A2C08E8B8F6FFFF8B55E485D289FA0F44F08B45E0E866F6FFFF89F289C18B45DCE8CAF6FFFFBA02010000A3D8DB3B08891D1C763A08E9A5FAFFFF908D74260066BE0100E93FFAFFFF8DB4260000000080FA55740580FA75758789C78345E401E972FFFFFF8D76008B55E00FB6443AFF0FB680802738083C660F84230600003C6C0F842F0600000FB6D0F6841280253808040F85580500003C2E0F84500500008D411F8B75E483E0F029C48D5C241B83E3F0894C2408894DD889742404891C24E8A737F7FF8B4DD8C6040B008B0D28763A0885C90F857CFAFFFFA120763A08BA0D010000C70528763A08549A2C08A324763A08E9E8F9FFFF8B45E4BA22010000C705D8DB3B08980D2B0883C002A31C763A08E9C9F9FFFF9089D8BA2201000083C002A31C763A08C705D8DB3B08A10D2B08E9AAF9FFFF669089F0BA2201000083C002A31C763A08C705D8DB3B08BB0D2B08E98AF9FFFF669089D8BA2201000083C002A31C763A08C705D8DB3B08910D2B08E96AF9FFFF669089D8BA2201000083C002A31C763A08C705D8DB3B08B80D2B08E94AF9FFFF66908B5DE483C301E9BEF8FFFF908D7426008B45E48D79FFC745DC3600000083C0018945E0E9D1FDFFFF8B1D28763A0885DB0F8588F9FFFF890D24763A0866BA0D01C70528763A08D8992C08E9F9F8FFFF80FA54741C80FA74741780FA64741231FF80FA448B5DE40F8562F8FFFF8D7426008B5DE431FF8B75E483C3020FB64E02E94AF8FFFF8D742600FF2485FC9D2C088B75E4B910000000BFC5DF2D08BA12010000F3A60F97C10F92C038C10F85B2F7FFFFE992F8FFFF8B75E4BF8F9A2C08B918000000F3A60F85CD0500008B45E4BA2601000083C018A31C763A08E968F8FFFF8B75E4B90B000000BFA89A2C08BA11010000F3A60F97C10F92C038C10F8561F7FFFFE941F8FFFF8B75E4BFB49A2C08B91A000000F3A60F85A30500008B45E4BA25010000C705D8DB3B081100000083C01AA31C763A08E90DF8FFFF8B75E4BFE89A2C08B90D000000F3A60F85B00500008B45E4BA25010000C705D8DB3B080C00000083C00DA31C763A08E9D9F7FFFF8B75E4BF969B2C08B911000000F3A60F85070400008B45E4BA25010000C705D8DB3B081000000083C011A31C763A08E9A5F7FFFF8B75E4BF6B9B2C08B913000000F3A60F85FA0300008B45E4BA25010000C705D8DB3B081300000083C013A31C763A08E971F7FFFF8B75E4BF229B2C08B91D000000F3A60F85560500008B45E48B5DE4C705D8DB3B083C00000083C01DA31C763A080FB6531D89C384D20F84B60600008DB6000000000FB6CAF68409802538088C750F80FA5F740A80FA24740580FA2E750A83C3010FB61384D275DA89DA29C2E8A1F2FFFFBA25010000891D1C763A08A3D8DB3B08E9ECF6FFFF8B75E4B904000000BF21883008BA1E010000F3A60F97C10F92C038C10F84CAF6FFFF8B75E4B904000000BF7F9B2C08B21BF3A60F97C10F92C038C10F84ABF6FFFF8B75E4C744240804000000C7442404B19B2C08893424E8EC39F7FFBA2001000085C00F8483F6FFFFC744240804000000C7442404849B2C08893424E8C739F7FFBA0801000085C00F845EF6FFFFC744240804000000C74424043C9A2C08893424E8A239F7FFBA1501000085C00F8439F6FFFFC744240804000000C74424048D642C08893424E87D39F7FFBA2301000085C00F852FF5FFFFE90FF6FFFF8DB426000000008B75E4BF899B2C08B908000000F3A60F85610400008B45E4BA25010000C705D8DB3B080A00000083C008A31C763A08E9D4F5FFFF807E022E0F85FAF5FFFF89F0BA1C01000083C003A31C763A08E9B6F5FFFF89F083C002807E023D0F844D010000A31C763A08BA2E010000C705D8DB3B08ABCB2A08E98EF5FFFF89D883C002807B023D0F8409010000A31C763A08BA2F010000C705D8DB3B08B10D2B08E966F5FFFF890D24763A08BA0D010000C70528763A08639A2C08E94CF5FFFF8B45E4BA30010000C705D8DB3B086186320883C002A31C763A08E92DF5FFFF8B45E4BA29010000C705D8DB3B08AA0D2B0883C002A31C763A08E90EF5FFFFB87A492B08E8E4F0FFFF89C6B883492B08E8D8F0FFFFE91BFAFFFF8D7600B82C9A2C08E8C6F0FFFF89C68B45E089FAE87AF0FFFF89F289C18B45DCE8DEF0FFFFBA03010000A3D8DB3B08E90FFAFFFFB8339A2C08E895F0FFFF89C6B83C9A2C08E889F0FFFFE9CCF9FFFFE84FF2FFFFA11C763A08E9C3F6FFFF8B45E4BA33010000C705D8DB3B0813052B0883C002A31C763A08E976F4FFFF83C001BA22010000A31C763A08C705D8DB3B08AD0D2B08E95AF4FFFF83C001BA22010000A31C763A08C705D8DB3B08B40D2B08E93EF4FFFFB857272B0883EF01E811F0FFFF89C6E946FFFFFFB8279A2C0883EF01E8FDEFFFFF89C6E932FFFFFF89C28B45E42B55E4E8A9EFFFFF89C3B8B19B2C08E8DDEFFFFF89D989C2B835000000E8FFEFFFFFBA02010000A3D8DB3B08E9E0F3FFFF0FB65DDC83EB3080FB090F863AF3FFFF8B75E0BA2D00000089351C763A08E9BDF3FFFF8B75E4B907000000BF1A9B2C08BA21010000F3A60F97C10F92C038C10F85B6F2FFFFE996F3FFFF8B75E4B905000000BF9B642C08BA24010000F3A60F97C10F92C038C10F8474F3FFFF8B4DE4C744240805000000C7442404B3F93708890C24E8B536F7FFBA0601000085C00F844CF3FFFF8B75E4C744240805000000C744240424112C08893424E88D36F7FFBA0701000085C00F8424F3FFFFC744240805000000C744240457272B08893424E86836F7FFBA1F01000085C00F84FFF2FFFFC744240805000000C7442404BF9B2C08893424E84336F7FFBA1601000085C00F84DAF2FFFFC744240805000000C7442404CD432E08893424E81E36F7FFBA1801000085C00F85D0F1FFFFE9B0F2FFFF8B75E4B90C000000BF9CDF2D08BA13010000F3A60F97C10F92C038C10F85A9F1FFFFE989F2FFFF8B75E4C744240818000000C7442404CF9A2C08893424E8CA35F7FF85C00F8581F1FFFF89F0BA2501000083C018A31C763A08C705D8DB3B0814000000E948F2FFFF8B45E4C744240810000000C7442404F69A2C08890424E88935F7FF85C00F85250100008B45E4BA25010000C705D8DB3B080E00000083C010A31C763A08E906F2FFFF8B75E4C74424081C000000C7442404409B2C08893424E84735F7FF85C00F852101000089F083C01CA31C763A0889C3C705D8DB3B083D0000000FB6561C84D20F84410100000FB6CAF68409802538088C751380FA5F740E80FA24740980FA2E0F8597FAFFFF83C3010FB61384D275D6E988FAFFFF8B75E4C744240815000000C7442404929B2C08893424E8D334F7FF85C0751E89F0BA2501000083C015A31C763A08C705D8DB3B080F000000E955F1FFFF8B45E4C744240803000000C744240422BD3108890424E89634F7FFBA0E01000085C00F842DF1FFFF8B55E4C744240803000000C744240483492B08891424E86E34F7FFBA1701000085C00F8520F0FFFFE900F1FFFF8B55E4C744240812000000C7442404079B2C08891424E84134F7FF85C075688B45E4BA25010000C705D8DB3B080D00000083C012A31C763A08E9C2F0FFFF8B45E4C74424080B000000C74424049C9A2C08890424E80334F7FF85C00F85EA0000008B45E4BA25010000C705D8DB3B080900000083C00BA31C763A08E980F0FFFF31D2E973F9FFFF8B4DE4C744240808000000C7442404FBE22E08890C24E8BA33F7FFBA1001000085C00F8451F0FFFF8B75E4C744240808000000C7442404BE153808893424E89233F7FFBA1D01000085C00F8429F0FFFFC744240808000000C74424048E883008893424E86D33F7FFBA0A01000085C00F8404F0FFFFC744240808000000C74424047F6F3008893424E84833F7FFBA0C01000085C00F84DFEFFFFFC744240808000000C7442404DDF83708893424E82333F7FFBA1901000085C00F85D5EEFFFFE9B5EFFFFF8B55E4C744240806000000C744240489CA2B08891424E8F632F7FFBA0F01000085C00F848DEFFFFF8B4DE4C744240806000000C74424045D9B2C08890C24E8CE32F7FFBA0501000085C00F8465EFFFFF8B75E4C744240806000000C74424046D883008893424E8A632F7FFBA1401000085C00F843DEFFFFFC744240806000000C7442404649B2C08893424E88132F7FFBA0901000085C00F8418EFFFFFC744240806000000C74424042C9A2C08893424E85C32F7FFBA1A01000085C00F850EEEFFFFE9EEEEFFFF8DB426000000008DBC2700000000</bytes>
1111 <bytes id="35">
1112 5589E557565383EC7C8904248955D48945E4E8C9C1EBFF8945DC890424E85E46FBFF89C38B45DC890424E8D145FBFF8B55D48B3285F68975E0740D8B45E083C47C5B5E5F5DC366908D1C18895DD8C7042428000000E866B8EBFF8945E08D049BC1E002890424E855B8EBFF8B4DE0894108C704246C000000E8D371EBFFB91B00000089C389C789F0F3AB895C2404C70424E0F41908E8867EEBFF8B55E48914248945C4E808C3EBFF8B55E083C2248943248D4324E8F7ECFFFF85C08945D00F84140500008B4DD08B75E08B018B50148B481889534C894B508B500C8B4810895354894B588B501C8B48208B403489535C894B608946208B4324890424E8BFA5F7FF85C00F845F0400008B4038890424E8EC80F7FF85C074688B55D08B128955CC0FB6423A3C010F84590400003C0375558B75CCBF50D53008B9050000008B762C8975C8F3A675288B45C8C74424042B0000008955C083C005890424E8BC93EAFF8B55C085C0751E8B75D08B368975CCC74368010000008B55CCEB0A908D7426008B45D08B108B4A288B7DE48B52248B45D0895C2404893C24E8D3F0FFFF8B038943288B430489432C8B43088943308B430C8943348B43108943388B431489433C8B43188943408B431C8943448B432089434889D8E8C7EEFFFF8943288B45D08B48108B500C895C2404893C24E87FF0FFFF8B431883F8010F844303000083F8027436C744240805000000C74424040FD63008C7042400000000E8AE96EAFFC7442404E2030000C704240CD5300889442408E89A61EBFF66908B7DE48B53108B4B148B431C897C24088B7DE0C744241000000000C744240C000000008B7724897424048B7720893424E883FCFFFF89078B4DD831FF31F685C97E47895DD08B5DDC8B45E089FA83C714035008A18C673B08891C248955C089442404E811D7FAFF8B4DE48B55C08974240483C601891C24894C240C89542408FF103975D87FC28B5DD08B730485F68975E40F8EA600000031C031F6895DE489C3EB2E8DB6000000008B4DE08D04BF8B51088B44821085C00F84B30100008D76008B7DE483C60183C3148B470439F07E688B7DDC89742404893C24E8693DFBFF3945D889C77EDA85C078D68B55E48B0201D88B501085D274B08B55E08D3CBF897DD0C1E7028B4DD0897DCC8B388B5208893C8A8B4DCC8B7804897C11048B7808897C11088B780C897C110C8B401089441110EB8D908D74260089FB8945E48B4DD885C90F8EE300000031C031D28945A48955A0895DDCEB15908345A0018B75D88345A4143975A00F84BC0000008B45E08B5DA40358088B4B108D71F783FE0177D88B55DC8B7DDC8B75DC8B45E48B128B7F608B765C8945B08955C889C2C1FA1F39D78975D0897DCC8955B4774C720439C673468B55D08B7DC88D34928D34B78B7E1085FF743383FF05742E83F9090F84AC0100008B0E8B45E089480C8B4E048948108B4E088948148B4E0C8948188B4E1089481CE960FFFFFF83F9090F84D70000008B45E08B55D0C7401C0300000089500C8B4DCC8948108B5DDC8B5B04895DE4E933FFFFFF8D76008B5DDC8B75E48B435C89F7C1FF1F397B607716720439F073108B138D0480837C8210010F841F0100008B45C4890424E82C4EEBFF8B4DE08B55D4890AE99AFBFFFF8DB426000000008B55E48B4DDC8B4224890C2489442404E87363EBFF897C24048B7DDC893C248945C0E8D13AFBFFC744240805000000C7442404D0D43008C704240000000089C7E8DF93EAFF8B55C0897C2408C70424E0B839088954240C89442404E8481FEBFFE9EBFDFFFF8D76008B55D089138B4DCC894B048B5DE08B7DDC8B75A48B4B088B7F04C744311003000000897DE4E956FEFFFF8DB6000000008B43108B55E489442404891424E80EF9FFFF8B73688B4DE085F68901741A2B43088901E907FDFFFF8B7DD08B17E913FCFFFF8DB6000000008B75E00343088906E9EAFCFFFFC74364010000000FB6423A3C010F8594FBFFFFC74368010000000FB6423AE984FBFFFF8B7DE0C7470401000000E9D2FEFFFF8B0E890B8B4E04894B048B4E08894B088B4E0C894B0C8B4E10894B10E9B8FDFFFFC744240805000000C7442404AACA2A08C7042400000000E8D892EAFFC744241003D63008C744240CBAD73008C7442404B9030000C704240CD5300889442408E8B45DEBFF8D742600</bytes>
1113 <bytes id="36">
1114 55B80100000089E583EC08C9E9BFFBFFFFEB0D90909090909090909090909090</bytes>
1115 <bytes id="37">
1116 5589E583EC48A144DC3B08895DF48B5D10897DFC8B7D088975F88945E48B0385C07455E8B8FAFFFF85C089C674328B03890424E8D8A6F5FF8933893424C744240400000000E852E9F4FF85C089C6781889F08B5DF48B75F88B7DFC89EC5DC3908B33EBD68D7426008B03890424E89EA6F5FFC703000000008B750C85F6744E8B450CE859FAFFFF85C089C6741389442404C70424806E0508E843D4F5FF89750C8B1544DC3B08C7442404DBB12D088914248955E0E863F2F4FF8B55E085C089C6740B3B45E474798078FF3A7473803F2F0F84F20000008B45E4895C2410C744240C00000000897C2408C744240402000000890424E8D7FAFFFF85C089C60F894DFFFFFF893C24E8D5E2190039C70F843DFFFFFF894424088B45E4895C2410C744240C00000000C744240402000000890424E89AFAFFFF89C6E913FFFFFF8D76000FB6460584C074043C3A75818914248955E0E895EFF4FF89C18B450C894DDC890424E885EFF4FF8B4DDC8B55E029D68D44012083E0F029C48D44242383E0F089742408895424048945E4890424E8AAE9F4FF8B55E48B450C01F283C6058914248955E089442404E8F0EFF4FF8B55E0033544DC3B0889142489742404E83BF3F4FFE907FFFFFF669089F8E811F9FFFF85C089C60F84FDFEFFFF8944240489F7C70424806E0508E8F5D2F5FFE9E6FEFFFF</bytes>
1117 <bytes id="38">
1118 5589E557565381EC5C040000E88F59040089C6890424E8155B0400C744240849372E08C7442404F6812D08893424E8AD590400C744240849372E08C7442404FF812D08893424E895590400C744240800000000C744240406822D08C7042402000000E8A92D1A00C745D406822D08C745D80C822D08C745DC000000008934248985C4FBFFFFE8C65704008D55E48954241CC744241800000000C744241400000000C744240806822D08C74424040A000000894424108D45D48944240C8B85C4FBFFFF890424E836211A0085C074598B85C4FBFFFF890424E8741B1A00893424E86C580400A170783A0885C0742F8B3031D231DB85F6741F908B449008890424E86CD4F5FFA170783A0885C0740F83C301391889DA77E2C7000000000081C45C0400005B5E5F5DC38B85C4FBFFFFC744240400000000890424E8431E1A0089B5BCFBFFFF8985C0FBFFFF8DB426000000008B85C0FBFFFF890424E88E1EF5FF85C00F855B0100008B85C0FBFFFFC744240400040000894424088D85D4FBFFFF890424E88618F5FF85C089C60F8431010000890424E8B41DF5FF83F80389C77EB1B80F822D0831DB669089442404893424E8C81FF5FF85C0759883C3018B049D14AF2D0885C075E28D47FE80BC05D4FBFFFF2F8D57FF0F848801000089D0C68405D4FBFFFF000FB695D4FBFFFF8D85D4FBFFFF80FA200F85830000008D9DD4FBFFFF83C3010FB61380FA2074F589D8EB119080FA2C740F83C3010FB61380FA20740484D275EC39D80F8424FFFFFFC603008895B8FBFFFF890424E833331A000FB695B8FBFFFF89C6A170783A0885C074498B78048B0839CF744039F90F83590100008D790184D28938897488080F84DFFEFFFF0FB653018D430180FA20740B89C3EB9F8DB4260000000083C0010FB61080FA2074F589C3EB89908895B8FBFFFFC744240401000000890424E8B2770C000FB695B8FBFFFFA370783A088B088B7804EB978D45E08BB5BCFBFFFF894424088B85C4FBFFFFC744240401000000890424E82C1B1A0085C00F84E2FDFFFF8B45E0A87F0F85D7FDFFFF0FB6C485C00F85CCFDFFFF8B85C4FBFFFF890424E840191A00893424E838560400A170783A0885C074258B48048B1039D1741C39D176478D4A018908C74490080000000081C45C0400005B5E5F5DC3C744240401000000890424E80A770C00A370783A088B108B4804EBC883EF0380BC3DD4FBFFFF2F0F44C7E967FEFFFFC744240805000000C7442404AACA2A08C7042400000000E85B19F5FFC74424104C082B08C744240CFCAE2D08C744240479030000C70424EC812D0889442408E837E4F5FFC744240805000000C7442404AACA2A08C7042400000000E81719F5FFC74424104C082B08C744240CFCAE2D08C74424045D030000C70424EC812D0889442408E8F3E3F5FF8D7600</bytes>
1119 <bytes id="39">
1120 5589E5565383EC508B750CC7442404000000008B5D08893424E872F2FFFF8D45B8C744240C000000008B5610895424088B56048B1289042489542404E84FF5FFFF8B45B88945D88B45BC83EC048945DC8B45C08945E08B45C48945E48B45C88945E88B45CC8945EC8B45D08945F08B45D48945F48B46048B003945E873358B15B0D63B088945E88B4610C745DC00000000C745E400000000C745EC00000000C745F000000000C745F4000000008955D88945E08B4D1085C9740B8D45D8890424E89BFBFFFF8B45D889038B45DC8943048B45E08943088B45E489430C8B45E88943108B45EC8943148B45F08943188B45F489431C8D65F889D85B5E5DC2040090</bytes>
1121 <bytes id="40">
1122 5589E557565381ECAC0000008B4508890424E859490D0085C08945BC74128B45BC81C4AC0000005B5E5F5DC38D742600A1B0D63B08E826FEFFFF8B308945B085F60F85890000008B75B08B460485C074348B7DB0C744241070EB0408C744240C040000008B5708894424048D450889042489542408E812BBFFFF85C074A08B008945BCEB998B4E0885C97492C744240805000000C7442404AACA2A08C7042400000000E804C0FFFFC7442410F0CD2A08C744240C27CF2A08C744240440050000C70424C5CA2A0889442408E8E08A0000A1B0D63B088945DCE883FDFFFF8B1885DB0F84FB0400008B55B08B4204890424E83B7800008B4DDC8B712085F6745BC745A80000000031DB8B86744000008BBE7840000039F873358B56208955E466908B108B4A2085C9740E3B4A1C74098B4DE4F6413508740F8B521481E20004000083FA0183D30083C00C39F872D38B3685F675B585DB895DA8751F8B5DB0C7430400000000C74308000000008B5DB0C70300000000E9CEFEFFFF8B45A8C1E002890424E8A99800008B75DC8B5E208945B88945A485DB745531F68DB426000000008B83744000003B837840000073388B7B208DB426000000008B108B4A2085C9740B3B4A1C7406F6473508740FF642150475098B55B88904B283C60183C00C3B837840000072D28B1B85DB75B48B7DA88B45B8C744240C20ED0408C744240804000000897C2404890424E85EB9FFFF83EF01897DD00F84BF0300008B55B831C0C745D4010000008955DCEB21908D7426008B5DDC8B55D4890B8B45E48345D4018345DC043945D00F8E9E0000008B5DB88B0C8383C0018B1C838945E48B79048B318B43048B975C400000897DD88945E08B805C4000008955848B56088B7D848945908B149703561C8B338B76088B04B08B3303461C39C275988B7DD88B877C4000003945E0740F8B55E03BBA7C4000000F857BFFFFFF8B75D88B7DE03BBE80400000740C3BB7804000000F855703000085C08B45DC0F45D98B4DE48B55D4891883C101894DE4E94EFFFFFF3945A88955C00F8F630200008B45A8D1F83B45C00F8FAA0300008B4DC0C745B400000000C745E40000000083E901894DAC908D7426008B7DAC397DE40F8DE60100008B75B88B5DE48B7DB48D1C9E8B03895DC48904BE8B45E483C0013945C08945DC0F8EB10100008B038B55DC8B0C968B308B40048B5E1C8945D0895DE08B985C4000008B46088B7DE08B148301D7897DD48B398B49048B47088B995C4000008B1C83035F1C395DD48B46240F87F90100000345E001D08B55B88945E08B45E4395DE08D4482088945D80F86490100008B55D0EB66908B4DC48B5DD88B118B0B8B328B52048B7E1C8B9A5C400000897DD08B7E088B3CBB897DE4037DD0897DD48B398B49048B5F088B815C4000008B1C988B4624035F1C395DD48945E00F87880100008B45D00345E00345E48345D80439C38945E00F83DE0000008B42248955A0894D9C8945E48B472401D8894424048B45E4890424E8CB8B0000895C24048B5DE4891C248945D0E8B98B00008B3F8B4D9C897D948B7DE08B49048945CC891C24897C2404894DC8E8998B00008B4DE4890C2489C38B45D489442404E8858B00008B55A08B368B5204C74424080500000089C7C744240470CD2A088955A0C7042400000000E8F8BBFFFF8B4DD08B55A0895C2414897C2410894C24248B4DCC8954240C8974240889442404894C24208B4DC8C70424E0B83908894C241C8B4D94894C2418E83D4700008345DC018B5DDC395DC00F8FBDFEFFFF8B75DC8345B4018975E4E90EFEFFFF8B45E43945C07E1D39F80F85480100008B4DB88B55E48B5DB48B049189049983C301895DB48B75B43975A87F3D0F85AD0100008B45B08B55A48B4DB4895004894808E912FCFFFF3945D00F85D40100008B7DB88B75D08B55C08B04B789049783C2018955C0E97AFDFFFF8B7DB889F0C1E00289442404893C24E8509400008945A4EBB0C744240805000000C7442404AACA2A08C7042400000000E8FBBAFFFFC74424103ECB2A08C744240C7ACF2A08C7442404B1040000C70424C5CA2A0889442408E8D7850000C745C000000000EB80C744240805000000C7442404AACA2A08C7042400000000E8AEBAFFFFC7442410B8CC2A08C744240C37CF2A08C7442404EB040000C70424C5CA2A0889442408E88A850000C744240805000000C7442404AACA2A08C7042400000000E86ABAFFFFC7442410F4CC2A08C744240C64CF2A08C744240454040000C70424C5CA2A0889442408E846850000C744240805000000C7442404AACA2A08C7042400000000E826BAFFFFC74424101ACB2A08C744240C7ACF2A08C7442404D8040000C70424C5CA2A0889442408E802850000C744240805000000C7442404AACA2A08C7042400000000E8E2B9FFFFC74424102CCB2A08C744240C4ACF2A08C744240495040000C70424C5CA2A0889442408E8BE840000C744240805000000C7442404AACA2A08C7042400000000E89EB9FFFFC744241057CB2A08C744240C37CF2A08C74424040E050000C70424C5CA2A0889442408E87A840000C744240805000000C7442404AACA2A08C7042400000000E85AB9FFFFC74424101ACB2A08C744240C4ACF2A08C744240490040000C70424C5CA2A0889442408E8368400008DB600000000</bytes>
1123 <bytes id="41">
1124 5589E55689C65383EC108B56208D1C95FCFFFFFFEB04669089CB85D27E2A8B460483EA018956208D4BFC8B041885C074E7890424E863CCDBFF8B4604C7041800000000EBC58D760083C4105B5E5DC390</bytes>
1125 <bytes id="42">
1126 5589E55383EC248B5D0885DB742A833DD07D3A08017E15A1A4CF3B08C74424043CEA2E08890424E8648FF0FF8B831402000083C4245B5DC3C744240805000000C7442404AACA2A08C7042400000000E898A4EFFFC7442410AF232F08C744240C442D2F08C7442404420E0000C704247D232F0889442408E8746FF0FF8D742600</bytes>
1127 <bytes id="43">
1128 5589E583EC28895DF88B5D088975FC8B750C85DB743F8B835C01000085C07479833DD07D3A08017E1BA1A4CF3B08C7442404C0F62E08890424E8126AF0FF8B835C01000089750C8B75FC895D088B5DF889EC5DFFE0C744240805000000C7442404AACA2A08C7042400000000E83B7FEFFFC7442410AF232F08C744240C43382F08C7442404A10A0000C704247D232F0889442408E8174AF0FFC744240805000000C7442404AACA2A08C7042400000000E8F77EEFFFC74424109CF62E08C744240C43382F08C7442404A20A0000C704247D232F0889442408E8D349F0FF8D7600</bytes>
1129 <bytes id="44">
1130 5589E55383EC148B1D28403A088B45088B550C83C30183FB0F891D28403A087E4FC70528403A080000000031DB8954240481C340403A08C744240808000000890424E899FDFFFF891C24C7442408B3572E08C7442404320000008944240CE8FDFCFFFF89D883C4145B5DC3908D7426006BDB32EBB88D7426008DBC2700000000</bytes>
1131 <bytes id="45">
1132 5589E583EC18895DF88B5D088975FC8B750C893424FF138B551089742404891C248954240C89442408E862FDFFFF8B5DF88B75FC89EC5DC3908DB42600000000</bytes>
1133 <bytes id="46">
1134 5589E557565383EC4C8B75088B461083461C018945C48B4638C1E0048D90E02038088B80E02038088B4A0C8955E08945DC8B4510F762048B4510894DD80FB64DD88955D429D0D1E88D1C108B4510D3EB8B560C0FAF5DDC8955D029D88B3C8289C385FF0F84B700000083FF0174398B4D0C893C24894C2404FF560485C00F859D0000008B4638C1E0048D90E02038088B80E02038088B4A0C8955E08945DC8B460C894DD88945D08B4DE08B45108B7D10F761080FB64DD88B451029D7D1EF01D783C001D3EF8B4DDC8955E48B55C483E9020FAFF98B4E2029F88945E08B45D090035DE083C101894E2089DF29D739DA0F46DF8B3C9885FF742783FF0174E28B450C8955CC893C2489442404FF56048B55CC85C0750B8B4E208B460CEBC38D760083C44C89F85B5E5F5DC38DB600000000</bytes>
1135 <bytes id="47">
1136 5589E557565381ECEC0000008B1D84513A0885DB0F8506100000FF1508DF3B0885C00F85E80F00008B0D70793A0885C90F85A20F00008B45108B15404E3A08C745E4000000008945D08B451485D28945D48B45188945D80F855B0F0000A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8D4FC090085C00F857C0E0000B8E04E3A08E802A3FFFFA1BCDC3B088944240CA1C0DC3B0889442410A1C4DC3B08894424148B45D08904248B45D4894424048B45D889442408E84EFC090085C00F84EE0D0000C78540FFFFFFFFFFFFFFC78548FFFFFF0000000066908B45D0C745E400000000C744241000000000C744240C10A808088904248B45D4894424048B45D889442408E870B2FFFF85C00F84E011000083BD40FFFFFFFF0F845B0500008B45D08904248B45D4894424048B45D889442408E8B2FB090085C00F848A0B00008B1D84513A0885DB0F858C0A00008B45D08B55D48B4DD8E8AE8DFFFF85C089C30F84EC1600008B0D84513A0885C9740B8B501C85D20F85EF0C00008B45D0837B0C018904248B45D419D2F7D281E200000080899548FFFFFF894424048B45D889442408E842FB0900898540FFFFFF8B431C85C0750D83BBB40000000B0F84080B00008B731085F60F8514050000FF1508DF3B0885C00F847F0400008B8548FFFFFF8B752083C80183E6010F448548FFFFFF85DB89B53CFFFFFF898548FFFFFF0F85C90100008B8D48FFFFFF8D55E48B8540FFFFFFE84195FFFF85C089C70F8E27030000398540FFFFFF0F85A8140000A184513A0885C00F855E0300008D8570FFFFFF8B75E4890424897C2404E869FA09008B9574FFFFFF8B8570FFFFFF8B8D78FFFFFF83EC04E89F8CFFFF89F281E2FF00000083FA7F899544FFFFFF89C30F845E03000085C00F84A6030000893424FF15C8CE390885C00F852D03000089F083E07F740D83C001D0F884C00F8E900000008B038904248B4304894424048B430889442408E811FA0900E8BC75FFFF83F8017E6E8B038904248B4304894424048B430889442408E8EFF9090089C78B038904248B4304894424048B430889442408E8E5F9090039C70F84550900008B0D84513A0885C90F852F0700008B038904248B4304894424048B430889442408E8A7F90900E85275FFFF83F8010F8F910A00008B038904248B4304894424048B430889442408E881F90900E82C75FFFF83F8017E158B038B53048B4B08E8AA90FFFF85C00F84BA0E00008B431085C0740D83BD44FFFFFF7F0F84DE0400008B83B000000085C0740D83BD44FFFFFF7F0F84B705000089731C8B45D0C745E4000000008904248B45D4894424048B45D889442408E884F9090085C00F85FC030000FF1508DF3B0885C08D7426000F848A0200008B431C3C7F8945E4C7431C000000000F85E70600000FB6C4890424E89AF20D0089C68B038904248B4304894424048B430889442408E8C0F80900890424E83819FDFF85C00F84E41300008B532085D20F858D0600008B402C85C00F8582060000893424E8E2F5090085C00F8572060000893424E8F2F5090085C00F8562060000893424E802F6090083F8010F8551060000E8A4430600A1944F3A088B7B208B4030898544FFFFFF8B038904248B4304894424048B430889442408E84BF809008D55B889142489442404E80CF809008B45B883EC04894424048B45BC897C241089742414894424088B45C08944240CA1944F3A08890424FF9544FFFFFF8B3D84513A0885FF745885F6BFDBD92B080F85BF0500008B038904248B4304894424048B430889442408E8AF3C0D008B4B20BA14732B08897C2410C7442404188C2B0885C9B920732B080F45D18944240CA1A4CF3B0889542408890424E8AC64FCFFC7431400000000E990FBFFFF83BD40FFFFFFFF0F842B0500008B9D3CFFFFFF85DB0F84A0FCFFFF8B0D404E3A088B7D1C85C9C7070B0000000F849D0D0000A1A4CF3B08C74424046B762B08890424E85964FCFFE9830D00008D7426008B45E4E858A0FFFF897C2408C74424043C762B088944240CA1A4CF3B08890424E82B64FCFFE978FCFFFF8DB60000000089D8E84990FFFF89D8E8729FFFFFE9C0FCFFFF908D74260085C00F847C0F000089F10FB6C53D850000000F84330F000083F8050F8589FCFFFF89F0C1F81085C00F847CFCFFFF8B3D84513A0885FF0F852A0F000031C989F289D8E831E8FFFF85C00F845BFCFFFF9083BD40FFFFFFFFC745E4000000000F85BFFBFFFF818D48FFFFFF00000080E9B0FBFFFF908D742600E8EB3CFDFFE977FBFFFF8DB600000000E83B3CFDFFE96CFDFFFF8DB6000000008B45D0C744241000000000C744240C90A708088904248B45D4894424048B45D889442408E8D7ACFFFFC78548FFFFFF0100008085C089C30F84130600008B3D84513A0885FF740B8B701C85F60F85CE0900008B7310C78548FFFFFF0100008085F60F84ECFAFFFFE834410600A1944F3A088B73208B78308B038904248B4304894424048B430889442408E8E1F509008D4DAC890C2489442404E8A2F509008B45AC83EC04894424048B45B0C74424140000000089742410894424088B45B48944240CA1944F3A08890424FFD78B3D84513A0885FF0F85BE0400008B4B18C743140000000085C90F84301100008B431C8945E4C7431C00000000C744240400000000891C24E8E7F1FFFF8B731C85F674308B1584513A0885D20F85BA0800008B038904248B4304894424048B430889442408E83AF5090089F10FB6D5E8908AFFFF8B45E489431CE908FAFFFF908D7426008B038904248B4304894424048B430889442408E8F8F4090089C68B45D08904248B45D4894424048B45D889442408E8DDF4090039C60F84C9FBFFFF8B731885F60F84CA1000008B0D84513A0885C90F85D40500008B431C3C7F0F840C06000089C283E27F0F85B60400008B3D84513A0885FF0F85C3040000C7431401000000C743100000000081C3B400000089442404891C24E8083A0D00E99EF9FFFF8D760089F20FB6C683F8130F8514FBFFFF8B3D84513A0885FF0F85D20D0000C7431000000000E8883F0600A1944F3A088B7B208B70308B038904248B4304894424048B430889442408E835F409008D4D88890C2489442404E8F6F309008B458883EC04894424048B458CC744241400000000897C2410894424088B45908944240CA1944F3A08890424FFD68B3584513A0885F60F850C0D00008B5318C743140000000085D20F8520FDFFFFC744240805000000C7442404AACA2A08C7042400000000E81876FBFFC744241004762B08C744240C6A8F2B08C7442404770C0000C70424C75E2B0889442408E8F440FCFF8D74260089F20FB6C683F8020F853BFAFFFF8B3D84513A0885FF0F85600C0000C783B000000000000000E8953E0600A1944F3A088B7B208B70308B038904248B4304894424048B430889442408E842F309008D4D94890C2489442404E803F309008B459483EC04894424048B4598C744241400000000897C2410894424088B459C8944240CA1944F3A08890424FFD68B3584513A0885F60F85970B00008B7B18C743140000000085FF0F852DFCFFFFC744240805000000C7442404AACA2A08C7042400000000E82575FBFFC744241004762B08C744240C6A8F2B08C7442404950C0000C70424C75E2B0889442408E80140FCFF908B038904248B4304894424048B430889442408E858370D00C74424045A762B0889442408A1A4CF3B08890424E86F5FFCFFE99BF8FFFF669081AD48FFFFFF000000800F8973F7FFFF8BB53CFFFFFF85F60F851C0C0000C7042420523A08E8CA7EFBFFE954F7FFFF90893424E8EC75FBFF89C7E932FAFFFF908B3D70793A0885FF751083FE020F84B908000089D8E80E98FFFF8B3584513A08C743140100000085F60F85C90600008B0D70793A0885C90F84EB050000C74318000000008B45E4890424FF15C8CE390885C00F852802000083BBB40000000B0F84660200008B83B40000008B4D1C8B3D404E3A0889018B83B800000085FF8941048B83BC0000008941088B83C000000089410CC783B40000000B0000000F854D020000B8E04E3A08E8FB66FFFF8B7D1C8B0783F8020F8585060000C783C8000000FFFFFFFF8B7B088B73048B1BFF1508DF3B0885C00F8535010000FF1508DF3B0885C07415C744240400000000C7042420D31408FF1510DF3B088B5508897A0889D0897204891A8D65F45B5E5F5DC204008DB426000000008B45D08904248B45D4894424048B45D889442408E8C7350D00C7442404388A2B0889442408A1A4CF3B08890424E8DE5DFCFFE93DF5FFFF908B038904248B4304894424048B430889442408E890350D008B7320B920732B08BA14732B08C74424045C8A2B0885F60F45D18944240CA1A4CF3B0889542408890424E8915DFCFFE9F6FAFFFF8D7426008B038DBD7CFFFFFFC74314010000008904248B4304894424048B430889442408E853F00900893C2489442404E827F009008B857CFFFFFF83EC048904248B4580C744241000000000C744240C30360908894424048B458489442408E8B8A6FFFFE946F6FFFF8D760031DBE9FCF4FFFF908B451C83380B66900F845A060000E83567FFFFE9B3FEFFFF83C201D0FA84D20F8E0EF5FFFF8B3D84513A0885FF0F843DFBFFFF8B038904248B4304894424048B430889442408E8CDEF0900C7442404F08B2B0889442408A1483C3A08890424E89076FBFF8B431CE904FBFFFF8D742600A184513A0885C00F84CBFDFFFF8B038904248B4304894424048B430889442408E853340D00C74424049B762B0889442408A1A4CF3B08890424E86A5CFCFF83BBB40000000B0F859AFDFFFF8B45E48B751C89442404893424E8CB340D008B3D404E3A0885FF0F84B8FDFFFF908D742600A1A4CF3B08C7442404B2762B08890424E8235CFCFFE999FDFFFF8DB60000000089D8E8518CFFFF83BD40FFFFFFFFC745E4000000000F8518F4FFFFE954F8FFFF8B038B731C8904248B4304894424048B430889442408E8DDEE09008974240CC7442404708B2B0889442408A1483C3A08890424E89C75FBFF8B431C3C7F0F85F4F9FFFF0FB6D483FA130F843A0500008B1570793A0885D2740D83BBB40000000B0F8473060000C7431401000000E9A1F3FFFF8DB6000000008B008904248B4304894424048B430889442408E838330D0089C68B431CE86E97FFFF8974240CC74424040C8A2B0889442408A1A4CF3B08890424E8415BFCFFE9CDF2FFFF8D7426008B45D08904248B45D4894424048B45D889442408E87FEE090085C00F85F1F1FFFF8B45D08904248B45D4894424048B45D889442408E8FEED0900898540FFFFFFE9D7F1FFFF8D7600A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8C1ED090089C3A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8A0ED09008D55A0891424C744240C00000000895C240889442404E845ED09008B45A083EC048944240C8B45A4894424108B45A889442414A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E80E040B00A184DC3B088B1588DC3B088B0D8CDC3B08E8D890FFFFC7401801000000E9D0F0FFFF8D742600A1A4CF3B08C7442404DC752B08890424E8235AFCFFE98BF0FFFF8DB6000000008D451089442410A1BCDC3B08C744240C30E80808890424A1C0DC3B0889442404A1C4DC3B0889442408E87AA3FFFFE92BF0FFFF908D742600E8BB63FFFFE90EF0FFFF8DB6000000008B45108904248B4514894424048B451889442408E887310D00C7442404C6752B0889442408A1A4CF3B08890424E89E59FCFFE9C3EFFFFF9089F0E8A195FFFF89C68B038904248B4304894424048B430889442408E847310D008974240CC744240410762B0889442408A1A4CF3B08890424E85A59FCFF8B731CE900F7FFFF66908B008904248B4304894424048B430889442408E808310D0089C68B431CE83E95FFFF8974240CC74424040C8A2B0889442408A1A4CF3B08890424E81159FCFFC78548FFFFFF01000080E9DAF0FFFF6690A1BCDC3B08C744241000000000C744240C80C90808890424A1C0DC3B0889442404A1C4DC3B0889442408E861A2FFFFA1BCDC3B08C744241000000000C744240C20300908890424A1C0DC3B0889442404A1C4DC3B0889442408E832A2FFFF83BD40FFFFFFFF0F84E6020000A1BCDC3B08895C2410C744240CE0E70808890424A1C0DC3B0889442404A1C4DC3B0889442408E8FAA1FFFFA1BCDC3B08C744241000000000C744240CE0A60808890424A1C0DC3B0889442404A1C4DC3B0889442408E8CBA1FFFFE952F9FFFF8DB6000000008B038904248B4304894424048B430889442408E8E82F0D0089C68B45E4E81E94FFFF8974240CC74424043C8C2B0889442408A1A4CF3B08890424E8F157FCFFE9F3F8FFFF8D74260085C00F8473F9FFFF8B038904248B4304894424048B430889442408E828BCFFFF8983C8000000E95AF9FFFF908D7426008B038904248B4304894424048B430889442408E890EA0900894424048D8564FFFFFF890424E85EEA09008B1584513A0883EC0485D20F859801000089D8E8B687FFFF8B8564FFFFFFC744241000000000C744240CC0A708088904248B8568FFFFFF894424048B856CFFFFFF89442408E8D4A0FFFF85C00F8584F3FFFFC744240805000000C7442404AACA2A08C7042400000000E87C6CFBFFC7442410A88A2B08C744240C6A8F2B08C7442404580C0000C70424C75E2B0889442408E85837FCFF8B451CC7000B000000A1404E3A0885C07415A1A4CF3B08C7442404E8752B08890424E8D156FCFFB8E04E3A08E8475FFFFF8B3DC4DC3B088B35C0DC3B088B1DBCDC3B08E955F8FFFFA1BCDC3B088944240CA1C0DC3B0889442410A1C4DC3B08894424148B45108904248B4514894424048B451889442408E89CE9090085C00F8527F8FFFFE965F9FFFFC7431401000000C7431000000000E977EEFFFFC7042402000000E8D0E6090085C00F8533F7FFFF8B45D08904248B45D4894424048B45D889442408E81FE909008D55C489142489442404E8F0E809008B45C483EC048904248B45C8C744241000000000C744240C20A70808894424048B45CC89442408E8849FFFFFC783B000000000000000E9D7F6FFFF8B038904248B4304894424048B430889442408E89D2D0D00C74424045A762B0889442408A1A4CF3B08890424E8B455FCFFE932FEFFFF8B45D0C745E000000000898564FFFFFF8B45D4898568FFFFFF8B45D889856CFFFFFF8B45E489431C8B8564FFFFFFC744241000000000C744240CF0A708088904248B8568FFFFFF894424048B856CFFFFFF89442408E8E59EFFFF85C0898548FFFFFF0F84850200008B1584513A0885D20F85DD0100008B9548FFFFFF8B421C89D38945E4C7431C00000000E98AFCFFFF890424FF15C8CE390885C00F847CF9FFFF89D8E8579BFFFF85C00F846DF9FFFFA184513A08C7431C0000000085C00F8459F9FFFF89E789DEB903000000F3A5E8DBE70900C7442404A08B2B0889442408A1483C3A08890424E89E6EFBFFE92BF9FFFF31D289D8E83486FFFFBE7F05000085C00F8449EDFFFFE9EAF0FFFFA1A4CF3B0889742408C7442404808A2B08890424E88954FCFFE9B8F0FFFFC704240C000000E85843FCFF8B15CCD73B088938895008897004A3CCD73B08E9A8F0FFFF8B038904248B4304894424048B430889442408E8182C0D008B4B20BA14732B08C74424044C8B2B0885C9B920732B080F45D18944240CA1A4CF3B0889542408890424E81954FCFFE91DF4FFFF8B038904248B4304894424048B430889442408E8CC2B0D00C7442404288B2B0889442408A1A4CF3B08890424E8E353FCFFE96AF3FFFF8B038904248B4304894424048B430889442408E8962B0D008B4B20BA14732B08C7442404048B2B0885C9B920732B080F45D18944240CA1A4CF3B0889542408890424E89753FCFFE9A8F2FFFF8B038904248B4304894424048B430889442408E84A2B0D00C7442404DC8A2B0889442408A1A4CF3B08890424E86153FCFFE9F8F1FFFF89E789C6B903000000F3A5E81C2B0D00C74424047F762B0889442408A1A4CF3B08890424E83353FCFFE9F5FDFFFF8B751C833D404E3A0800C7060B0000000F8447FCFFFFE9A5EEFFFF83BD40FFFFFFFF0F844BEBFFFFC744240805000000C7442404AACA2A08C7042400000000E84668FBFFC744241022762B08C744240C598F2B08C7442404500D0000C70424C75E2B0889442408E82233FCFF8D45E0B903000000894424108D8564FFFFFF89E7C744240C30C5080889C6898534FFFFFFF3A5E8279CFFFFDB45E0DD9D48FFFFFFE8656FFBFF833D84513A0800898554FFFFFFDB8554FFFFFFDC8D48FFFFFFD9BD52FFFFFF0FB78552FFFFFFD80D14912B08B40C66898550FFFFFFD9AD50FFFFFFDB9D54FFFFFFD9AD52FFFFFF8B9554FFFFFF8955DC74258B45E083F8017E1D89442408A1A4CF3B088954240CC74424045C8C2B08890424E81252FCFF8D45DC8BB534FFFFFFB9030000008944241089E7C744240CA0C40808F3A5E87F9BFFFF85C0898548FFFFFF0F84B6FCFFFFE9A3FCFFFFC744240805000000C7442404AACA2A08C7042400000000E81C67FBFFC7442410F7722B08C744240C598F2B08C7442404F60D0000C70424C75E2B0889442408E8F831FCFFC744240805000000C7442404AACA2A08C7042400000000E8D866FBFFC74424108BB62A08C744240C598F2B08C7442404FA0C0000C70424C75E2B0889442408E8B431FCFFC744240805000000C7442404AACA2A08C7042400000000E89466FBFFC744241004762B08C744240C598F2B08C7442404260D0000C70424C75E2B0889442408E87031FCFFC744240805000000C7442404AACA2A08C7042400000000E85066FBFFC744241004762B08C744240C598F2B08C7442404620D0000C70424C75E2B0889442408E82C31FCFF8DB6000000008DBF00000000</bytes>
1137 <bytes id="48">
1138 5589E557565381EC6C0100008B7D0C8B45248B55288B5D1C83FF0D8B75208985D0FEFFFF8995D4FEFFFF0F846001000083FF020F84A7000000E8B26F0A008985CCFEFFFFA184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E87D500A0085C00F85C50000008B85D0FEFFFF8B95D4FEFFFF8B4D14895C24148944241C8B4510895424208B5518894C240C89742418894424088B450889542410897C2404890424A1944F3A08FF90500100008B8DCCFEFFFF890C248985C8FEFFFF8995C4FEFFFFE8658CFCFF8B95C4FEFFFF8B85C8FEFFFF8D65F45B5E5F5DC390A1A8DC3B088944240CA1ACDC3B0889442410A1B0DC3B0889442414A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8E64F0A0031D289C131C085C90F8411FFFFFFEBAD8DB600000000A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8914F0A008D95D8FEFFFF89142489442404E84F4F0A008B85D8FEFFFFA384DC3B088B85DCFEFFFF83EC04A388DC3B088B85E0FEFFFFA38CDC3B08E9E1FEFFFF8DB6000000008B4D1885C90F84C3010000A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8264F0A0085C089C70F847401000083FE000F875B01000081FB800000000F874F010000E8CECAFBFF8D9568FFFFFFC700000000008985CCFEFFFF8954240CC744240800000000897C2404C7042402420000E840CDFBFF8B8DCCFEFFFF8B1185D20F850C01000031C98D95E8FEFFFF8D8568FFFFFFE8F1FCFFFF8B85D0FEFFFF8B95D4FEFFFF01D811F283FA0077073D800000007620C785D0FEFFFF80000000299DD0FEFFFFC785D4FEFFFF0000000019B5D4FEFFFF837D140074338B95D0FEFFFF8D85E8FEFFFF8B4D148D1C18895C240489542408890C24E8B9D2FBFF8B85D0FEFFFF8B95D4FEFFFFE933FEFFFF8B95D0FEFFFF8D85E8FEFFFF8B4D188D1C18891C2489542408894C2404E886D2FBFFB9010000008D95E8FEFFFF8D8568FFFFFFE844FCFFFF8B85CCFEFFFF8D9568FFFFFFC700000000008954240CC744240800000000897C2404C7042403420000E842CCFBFF8B8DCCFEFFFF8B85D0FEFFFF8B95D4FEFFFF8339000F84B2FDFFFF8D7600B8FFFFFFFFBAFFFFFFFFE9A0FDFFFF90A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E8794D0A0089C7E966FEFFFF837D14000F8533FEFFFFC744240805000000C7442404AACA2A08C7042400000000E8B8CFFBFFC7442410CB722B08C744240C468F2B08C74424045D0F0000C70424C75E2B0889442408E8949AFCFF8D742600</bytes>
1139 <bytes id="49">
1140 5589E557565383EC6C83F9018945E419C083E0FC8955D483C00583F9018B4DD419D283E20483C2018945C885C98955CC0F84B70200008B45D431F68B400485C08945DC0F848F020000C745D8000000008B55DC8B828400000085C00F8E8F0100008B9A800000008B55E43953040F877D01000083E80131F68945E08D04808B4CC3048B45E0EB059089F989D0394DE473278D143089D7C1EF1F8D1417D1FA8D3C9239F28B7CFB0474DF3B7DE473DA394DE489D672DC8D76003945E07E3E8D50018D3492C1E603394C1E04752F8D04808D7433048D4CC354895DD0EB158D7426008B3E83C6288B1983C12839DF750A83C2013955E089D07FE88B5DD085C00F88ED00000089C28D7AFF8D04808D34C38D04BF8D0CC3895DD089D3C745E0FFFFFFFFEB258DB600000000837DE0FF756589FA895DE083EE2883EF0183EB0183E92885D20F888F000000807E1C0489FA74E48B461085C0741B8B55D4894DC489042489542404E898920C0089FA8B4DC485C074C285DB0F84B00000000FB6461C3945CC0F849A0000008B46148945B48B55B485D2749585DB0F849D0000008B45B485C00F84920000008B45B40346043945E40F82830000008B41140341043945E4737889FA83EE2883EF0183EB0183E92885D20F8971FFFFFF837DE0FF89D08B5DD075648DB4260000000085C00F89F20000008B75D88B45DC8B55D4894424048B4204890424E8F8CAFFFF85C08945DC0F84C50000008975D8E935FEFFFF908D7426000FB6411C3945C874668B56148955B4E958FFFFFF8D742600837DE0FF89DA89D08B5DD074A385C078778D04808D34C38B461485C0746A0346043945E472128B55E08D049283FAFF8D34C374848D7426008B7DD885FF0F8478FFFFFF8B55D88B42043B46040F8269FFFFFFE961FFFFFF8B46143B41148945B40F85EEFEFFFF8B56043B51040F85E2FEFFFF8B461089FA3B41100F85D4FEFFFFE976FEFFFF8D76008B55E08D04928D34C38B461485C074A0EB848DB60000000083C46C89F05B5E5F5DC36BC0288D34038B4614EBDFC744240805000000C7442404AACA2A08C7042400000000E8538FFFFFC74424107AD52A08C744240CC0D52A08C7442404E1010000C7042470D52A0889442408E82F5A0000EB0D90909090909090909090909090</bytes>
1141 <bytes id="50">
1142 5531C989E531C057565383EC2C8B5D080FB61389DE84D2743A8DB426000000006BC9430FBED283C6018D4C118F0FB61684D275EC89C8BA6F452101F7E289C829D0D1E88D0402C1E80A69C0F707000029C189C88B15B0D63B08C745E0000000008B522085D28955E40F84A80000008B750C85F60F9445DB83C02031FF8945DCEB2D8DB42600000000807DDB0075288B450C398280400000741D85FF0F94C08B55E484C08B128955E4745E85D2745A8B55E439550C75D28B45E485FF8B55DC8B7490080F94C0741BEBD58DB426000000008975E0908D74260085FF8B76200F94C075BC85F674B88B06895C2404890424E8E89CFFFF85C075E00FB6461C3C0674D03C010F44FEEBD19085FF740A83C42C89F85B5E5F5DC38B7DE0EBF1908D742600</bytes>
1143 <bytes id="51">
1144 5589E583EC188B450CC7042470433A08894424088B450889442404E8C0FEFFFFC9C38DB426000000008DBC2700000000</bytes>
1145 <bytes id="52">
1146 5589E583EC38895DF48B5D088975F8897DFC803B5F741131F689F08B5DF48B75F88B7DFC89EC5DC30FB643013C6374043C6975E3807B025F75DD31C083C9FF89DFF2AEF7D9890C24E843F3E9FF807B016989C289C60F84CA000000C6002B8D4801C6015B8D79018D43038955E4894DE089442404893C24E8A01CE9FF8B4DE08B55E48079015F750883C701803F5F74F8C74424045F000000893C248955E4E8B915E9FF8B55E485C00F849B0000008078015F8D78017479C60028C74424045F000000893C248955E4E88F15E9FF8B55E485C074758D7802C60029C640012089F829D001C3895C2404893C24E82C1CE9FFEB098DB60000000083C7010FB6073C5F74F684C0741383C7010FB60784C074093C5F75F2C6073AEBEDC6075DC6470100E9F4FEFFFFC6002D8D4801E931FFFFFFC6002089F829D08D44030289442404893C24E8D51BE9FFEBB289142431F6E83DD1E9FFE9C1FEFFFF908DB42600000000</bytes>
1147 <bytes id="53">
1148 5589E583EC28895DF48975F889C6897DFC8B780889F8C1E0048D501C83C03029C48D5C241B83E3F08954240889742404891C24E874DFEDFF89F989F289D8C7042400000000E886FEFFFF8B5DF48B75F88B7DFC89EC5DC389F68DBC2700000000</bytes>
1149 <bytes id="54">
1150 5589E557565383EC4C85C08945D48955CC894DC80F846A020000890424E8CAF8F8FF8B5DD401C3395DD473310FB643FF8D53FF3C200F851C0300008B4DD489D339D973198D7426000FB643FF8D53FF3C090F85F900000089D339D972EB8B55D489D829D083F803895DC48945D00F84FD0100008B75C885F60F841A01000039D30F8482020000803A230F8479020000837DD0040F8447020000837DD00D0F8EF3010000BF10D92B08B90E00000089D6F3A60F8411020000BF66A92E08B90800000089D6F3A60F84FD010000BFA2B62A08B90200000089D6F3A60F84E9010000837DD0050F8E87030000BFEB2D2C08B90500000089D6F3A60F841D020000BF27873208B90200000089D6F3A60F85570200008D720239F37621E85FF6F8FF8B10EB0E8DB4260000000083C60139F3760A0FBE06F64442012075EF89F2B804000000E8CBFDFFFF8B55CC8902E99A000000903C200F84FFFEFFFF8B55D40FB6023C200F85610200008B55D4EB0C908D7426000FB6023C09751183C20139D377F2E9DDFEFFFF908D7426003C2074EB8D742600E9CBFEFFFF8D76008B4DC42B4DD4894DD0C7042414000000E863CEF9FF8B55D08B4DD489C38B45CC8918C7030000000089542404890C24E8F4D8F9FF8B55CC8943048B02C7400800000000C7400C00000000C74010000000008B4D0885C9746B8D45DC89442404A130FC3908C744240806000000890424E8349F0800C744240401000000890424E830FEF8FF8B5DCC8B75088B7D0C8D7600E8039F080085C0741FE8DA9E080085C074EE897C24048B038B4004890424FFD6EBE78DB6000000008B45DC85C00F8824020000C745D4000000008B45D483C44C5B5E5F5DC38D7600BF7E6A2D08B90300000089D6F3A60F85EFFDFFFFC745D4010000008B45D483C44C5B5E5F5DC3837DD0070F8F17FEFFFF837DD0010F8F21FEFFFF837DD00A0F8424010000837DD00D0F84660100008955D4E9DBFEFFFF6690B807000000E83EFCFFFF8B55CC8902E90DFFFFFF8D742600B904000000BFF5E0300889D6F3A6C745D4020000000F97C10F92C038C10F85C8FDFFFFE95AFFFFFFC745D4030000008B45D483C44C5B5E5F5DC38D720539F37620E856F4F8FF8B10EB0D8DB60000000083C60139F3760A0FBE06F64442012075EF89F2B803000000E8C3FBFFFF8B4DCC8901E992FEFFFF3C090F84DCFCFFFF90E9F3FDFFFF8D7600837DD0078D7426000F8E27010000BF774E2C08B90800000089D6F3A60F8520FFFFFF8D720839F37620E8E6F3F8FF8B10EB0D8DB60000000083C60139F3760A0FBE06F64442012075EF89F2B805000000E853FBFFFF8B4DCC8901E922FEFFFF3C090F8497FDFFFF90E988FCFFFF8D7600BFF82D2C08B90A00000089D6F3A60F85D2FEFFFFC7042414000000E818CCF9FF8B4DCCC74004000000008901C7400801000000C70000000000C7400C00000000C7401000000000E9C5FDFFFFBF032E2C08B90D00000089D6F3A60F8586FEFFFFC7042414000000E8CCCBF9FF8B55CCC74004000000008902C7400802000000C70000000000C7400C00000000C7401000000000E979FDFFFF837DD0020F8F83FCFFFFE92BFEFFFF8B4DCC8D75DC89E78B01890424E87FAAF9FFB903000000F3A5E8639A0800837DD0060F8503FEFFFFBFF12D2C08B90600000089D6F3A60F8503FEFFFFBA12C42B08B806000000E846FAFFFF8B55CC8902E915FDFFFF8DB6000000008DBF00000000</bytes>
1151 <bytes id="55">
1152 5589E557565383EC4C8B45088B308B450C8B168B388B46048B5A088B885C4000008B1C998B4A1C8B570401CB895DE48B1F8B8A5C4000008B5B088B0C998B1F8B5B1C01D9394DE4723577453B907C400000744D3B827C400000744539D074498B0DB0D63B088B492085C9750EEB64669039CA741C8B0985C9745839C875F2B8FFFFFFFF83C44C5B5E5F5DC3908D74260083C44CB8010000005B5E5F5DC38D760031C0EBDF8D7426008B90744000008B807840000039D07713EB5C8DB60000000039D774CC83C20C39D0764B39D675F190EBACC744240805000000C7442404AACA2A08C7042400000000E8EEC7FFFFC7442410DBD92B08C744240C96CF2A08C74424043E040000C70424C5CA2A0889442408E8CA920000C744240805000000C7442404AACA2A08C7042400000000E8AAC7FFFFC7442410DBD92B08C744240C96CF2A08C74424042F040000C70424C5CA2A0889442408E8869200008DB600000000</bytes>
1153 <bytes id="56">
1154 5589E5565383EC108B45088B750C8B581485DB74238D76008B430489342489442404E885B7F2FF85C075078B4B3885C9740E8B1B85DB75E083C4105B5E5DC39089D8E839FCFFFFEBE98DB42600000000</bytes>
1155 <bytes id="57">
1156 5589E55383EC148B5D080FB6430C3C0372223C07771A891C24E882E7FFFF85C07412895D0883C4145B5DE971E7FFFF903C0B740C8B0383C4145B5DC38D742600891C24E858E7FFFF85C075D6895D0883C4145B5DE907F408008DB42600000000</bytes>
1157 <bytes id="58">
1158 5589E583EC58895DF48B5D088975F88B750C897DFC8B7D10807B0C0374128973088B5DF48B75F88B7DFC89EC5DC366908B530885D2741189328B5DF48B75F88B7DFC89EC5DC3669085FF0F84880000008B573C8B47388955E029C283FA037E548B573483C00489473839D08955D474628B57448B4DE001D0F7D221D089C22B57308947388955E089CA2B57303955E07E1F894F38894F348B4DD489CAC70100000000894B088932EB908DB4260000000089C1EBE08D472C890424C744240404000000E895CCF2FF8B4F3C8B4738894DE0EB8E804F5402EB98C744240805000000C7442404AACA2A08C7042400000000E888CCF2FFC74424106B202E08C744240C49232E08C744240461010000C7042465232E0889442408E86497F3FF8D742600</bytes>
1159 <bytes id="59">
1160 5589E5565383EC208B45088B5D10C744241400000000C744240800000000894424108B450C89DEC1FE1F895C24188944240CA1E0DD3B088974241CC744240402000000890424E875F8FFFF31D831F209C283FA0119C083C420F7D083E0055B5E5DC38DB426000000008DBC2700000000</bytes>
1161 <bytes id="60">
1162 5589E55789CF5689D65389C381EC8C0000008B4D1C8B55148B4510894DDC8B8B500100008955D48B55188945D085C98955D8894DE00F842C0700008B4D0C85C9740E8B15E4F7390885D20F845B07000083FE040F94C10F844401000083FE020F843B0100008B55D883FE03B8020000008B4DDC0F45C6897C2408894424048954241C8B55D0894C24208B4DD4891C24895424148B5508894C24188B4D0C8954240C894C2410FF55E08945E08955E48B0DE47E3A0885C975188B45E08B55E481C48C0000005B5E5F5DC38DB426000000008B55E48B45E089542404890424E8FE06EFFF8B55D88B4DDC891424894C24048945CCE8E906EFFF8B4DD0890C248945D8E8CB01EFFF8945D08B450C890424E82D02EFFF8B55088914248945B0E81F02EFFF85FFBA62242E080F44FA8B55CC8B4DB0897C24108974240C895424248B55D8894C241889442414895424208B55D08954241C8B4304C7442404D0F32F0889442408A1A4CF3B08890424E8111EEFFF8B550C8B7D0C85D20F447D0885FF0F85ED000000A1A4CF3B08C704240A00000089442404E8E8EAEEFFE91BFFFFFF8D76008B45DC0B45D8C745E000000000C745E4000000000F84F4FEFFFF8B450885C00F84FB0100008B1520793A0885D20F854D0100008B45D08945CCA1E87E3A0885C00F84EB0300008B45CC884DB0891C2489442404E8C8E0FFFF0FB64DB085C00F84C20100008B4008F64014080F84B5010000891C24E837E0FFFF8B4DDCC7442420000000008B50048954241C8B55D88B00894C24148B4D08895424108B55D4894424188B45D0890C248954240C8B550C8944240889542404E8B45AEEFF89C2C1FA1F8945E08955E4E942FEFFFF8D742600837DE4000F8C09FFFFFF0F8EC0010000A1A4CF3B0831DBC70424CE08300889442404E80931EFFF908D341FF7C60F000000751985DB7F51A1A4CF3B08C7442404AC7A2E08890424E8C41CEFFF0FB60683C301C7442404FE2C370889442408A1A4CF3B08890424E8A51CEFFF89DAC1FA1F3955E47FB30F8C98FEFFFF395DE077A8E98EFEFFFF8D7600833DE47E3A08017FA6A1A4CF3B08C744240430463108890424E86A1CEFFFE968FEFFFF908D7426008B55D0884DB08955CC891424E8FFBAFBFF89C2894424048B45D08955AC890424E83BA2FBFF0FB64DB085C00F8488FEFFFF891C24E8F7DEFFFF8B55AC89C18B02894DB08B00895424048B55D08945E0891424E849A3FBFF8B4DB08B55E0895424208B51048954241C8B118B4DDC894424088B4508C744240C00000000895424188B55D8894C24148B4D0C89042489542410894C2404E99DFEFFFF8DB6000000008B45D08945CC8B55CC884DB0891424E8ECC0FFFF8B55DC0FB64DB08945C48B40048945C88B45D80345D01355D48945E083FA008955E477078B55C839D072388B45C885C074318B55C82B55CC8955C88B55C48B421083F80274350F87BC01000085C07534C745E0FFFFFFFFC745E4FFFFFFFFE977FCFFFF8B45D88945C8EBD090837DE0000F8639FDFFFFE931FEFFFF8B550C85D275CE6690A1A8DC3B08884DB08944240CA1ACDC3B0889442410A1B0DC3B0889442414A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E80BAEFCFF85C00F8493010000C645B7008B45C8895DE089C2C1FA1F8945B88955BC8DB6000000008B55B88B4DBC8B45D0C7442408000000008954241C8B55D4894C24208B4D0889442414C744240402000000895424188B550C894C240C891C2489542410FF935001000083FA008945C80F8E990000008955A48B45C88955E48B55088B5DE08945E085D2740DA1207F3A0885C00F844C010000837DA4000F8C7AFBFFFF0F8E1E020000807DB70066900F8468FBFFFF8B4D0C85C90F845DFBFFFF8B45C48B501C85D20F854FFBFFFF83FE040F8446FBFFFFA1D8F8390885C00F8439FBFFFF8B45CC8B55C88B4D0C89442404A1FC823A088954240C894C2408890424E8D902F4FFE912FBFFFF8D7426007C0983F8000F875CFFFFFF8955AC891C24FF930C0100008B55AC85C00F8545FFFFFF8B1B85DB0F85ECFEFFFFE936FFFFFF8B55D08955CCE9EAFDFFFF83F80390743E83F8040F856DFEFFFF8B550C85D20F8462FEFFFFC744240805000000C74424049CF32F08C7042400000000E8CA2EEEFF890424E816EBEEFF8DB6000000008B450885C00F85F9FDFFFFE928FEFFFFA184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E821ACFCFF890424E899CCEFFF85C00F843EFEFFFFE8DC08F4FF0FB64DB083F8FF7435C645B701E92BFEFFFF8B55BC8B4DD48B45B8895424108B55D0894C24088B4D088944240C89542404890C24E8D345F8FFE988FEFFFF8B45C48B401C85C0750D84C974BD833DD8F839080074B4837D08000F84440100008B45CC8B55C88B4D08C74424140000000089442408A1FC823A0889542410894C240C891C2489442404E88F02F4FF89C2C1FA1F8945E08955E4837DE4000F8C1EFDFFFF0F8EEC000000837D08000F8498F9FFFF833D207F3A08000F858BF9FFFF8B45C88B4DD489C2C1FA1F895424108B55D0894C24088B4D088944240C89542404890C24E82445F8FFE95DF9FFFF8DB42600000000837DC8000F864CF9FFFFE9D3FDFFFFC744240805000000C7442404AACA2A08C7042400000000E8592DEEFFC7442410D8083008C744240C500B3008C7442404BA050000C70424806A310889442408E835F8EEFF8B55DC8B45D889542404890424E82300EFFF8B55D089142489C6E806FBEEFFC744240805000000C744240468F32F08C704240000000089C3E8F42CEEFF89742408895C2404890424E838E9EEFF837DE0000F8622FCFFFFE905FFFFFF8B450C8B4DC88B55CCC7442414010000008944240CA1FC823A08894C241089542408891C2489442404E84B01F4FF89C1C1F91F8945E0894DE4E9B7FEFFFF8D7426008DBC2700000000</bytes>
1163 <bytes id="61">
1164 5589E583EC58895DF489D38975F889C6897DFC837A040B76278B0289342489442404E819FFFFFF85C00F84F9000000908B5DF48B75F88B7DFC89EC5DC38D76008B4204FF2485607831088DB600000000893424E8A815F7FF8B8098000000EBD0893424E89815F7FF8B8094000000EBC0893424E88815F7FF8B4064EBB38D7600893424E87815F7FF8B406CEBA38D7600893424E86815F7FF8B4074EB938D7600893424E85815F7FF8B407CEB838D7600893424E84815F7FF8B8084000000E96DFFFFFF908D742600893424E83015F7FF8B4068E958FFFFFF893424E82015F7FF8B4070E948FFFFFF893424E81015F7FF8B4078E938FFFFFF893424E80015F7FF8B8080000000E925FFFFFF908D742600893424E8E814F7FF8B8088000000E90DFFFFFF908D7426008B53048D42F483F8077626895424108B03C744240898753108C7442404D3020000C704247B7731088944240CE8C7E5E6FFFF248590783108C744240804000000C744240400000000893424E8481FF7FF8B78148945E08B03890424E818330B008947088B430885C0740E8B0831D231FF85C90F85EE0200008B45E0E988FEFFFFC744240C20F73908C7442408E0773108C7442404FFFFFFFF893424E8D81FF7FFE963FEFFFFC744240C00F73908C7442408C7773108C7442404FFFFFFFF893424E8B31FF7FFE93EFEFFFFC744240CF8F63908C7442408AE773108C7442404FFFFFFFF893424E88E1FF7FFE919FEFFFF8B038B7B0C890424E87C320B00897C240889342489442404E82C22F7FF8B530885D20F84F1FDFFFF8B3285F60F84E7FDFFFF895DE431FF31F689C38B4CFA08B8000000008039000F44C8894C24088B44FA0C891C2489442404E85B18F7FF8B45E48B500885D2740983C601393289F777CA89D8E9A1FDFFFF8B530889F0E867FDFFFF8B530C89542404890424E83861F7FF8B781489C68B03890424E8E9310B0089470889F0E96FFDFFFFC744240C10F73908C7442408F5773108C7442404FFFFFFFF893424E8BF1EF7FFE94AFDFFFFC744240803000000C744240400000000893424E8C21DF7FF8B78148945E48B03890424E892310B008B55E48947088B42148B500889500C8B4B0885C974638B0131D231FF85C074598975E08DB4260000000089D6C1E6048D34318B460C85C0746189C28B45E0E8AFFCFFFF89C28B46088955D8890424E83F310B008B55D8895424088B55E489442404891424E8B913F7FF8B4B0885C9740983C701393989FA77B18B530C8B5B108B45E409D30F8498FCFFFF8B75E489561089F0E98BFCFFFF8D76008B730C8975DC8B431009C60F843F01000083F8000F8CA30000000F8E930000008B45E08955D8894DD4890424E82712F7FF8B55D88B4DD48B80800000008945DCC1E2048D34118B4608890424E8A7300B008B55DC89542408894424048B45E4890424E81112F7FF8B4E1483C1012B4E1089C28B430C8955D8894DD48945DC8B45E0890424E84FD3F6FF8B55D88B4DD485C0744C8B45DCC1E0032B461029C889028B4204C1E10383E00709C8894204E91CFFFFFF837DDC040F8763FFFFFF8B75E08955D8894DD4893424E88A11F7FF8B4DD48B55D88B40788945DCE961FFFFFF8B46108902EBBA8975DC89DEC1E2048D1C108B45DC8B530CE85CFBFFFF8945E48B4308890424E8EE2F0B008B55E489542408894424048B45E0890424E86812F7FF8B55E48B4214F6400201740A8B55E08B4214804802018B460885C00F84B7FCFFFF83C701393889FA0F86AAFCFFFFEB9BC744240805000000C7442404AACA2A08C7042400000000E80817E6FFC74424100B783108C744240C3C7A3108C744240481020000C704247B77310889442408E8E4E1E6FF8D742600</bytes>
1165 <bytes id="62">
1166 5589E557565383EC4C8B4508C74424047E000000890424E88068E2FF85C00F84F10200008B5508891424E87D6EE2FF83C0108945CC890424E89345E3FF8945C8C745DC00000000908B7D088B15B82A3A08893C248955D4E8506EE2FF8945C00FB6073C7E0F840E02000084C00F84060200008B55D48B45C085D28945D089C3746A85C07E668B55D4C745D8000000008B128955C48B7DC485FF0F84210200008B45080345D88B75D48B5DC48945E4EB0E8B5E0483C60485DB0F8402020000891C24E8E66DE2FF895C24048944240889C78B45E4890424E85173E2FF85C075D18B55D88D7C3AFF897DD089FB8B55D00355DC3955CC8955D80F8E960100008B55088B45C80345DC895C240889542404890424E8E667E2FF8B3DBC2A3A08035D08891C24895DE0897DDCE87F6DE2FF85C08945D40F8EC6010000C745E40000000089DF803B2F0F84B40100008B75DC85F60F84CB0000008B45DC8B1885DB0F84BE00000089C6EB1066908B5E0483C60485DB0F84AA000000891C24E82E6DE2FF895C2404893C2489442408E89E72E2FF85C075D68B5DE485DB0F84B40000008B45E483C001890424E82544E3FF8B7DE4897C240889C68B45E089342489442404E83967E2FFC6043E00893424E851FCFFFF89342489C3E8036AE2FF891C24E8CB6CE2FF8B55D801C23955CC8955DC0F8EE60000008B55E08B45C80355E40345D8895C2404895508890424E84F6DE2FF891C24E8C769E2FFE92EFEFFFF8DB6000000008345E4018B55E43955D40F8E62FFFFFF8B55E08B45E48B7DE0037DE4803C022F0F8504FFFFFF8B5DE485DB0F854CFFFFFF8B4DD085C90F8541FFFFFF8B45C88B7DD8C60438008B45C883C44C5B5E5F5DC38DB42600000000C745D0000000008B55D031DB0355DC3955CC8955D80F8F6AFEFFFF8B45D08B7DCC8D7C381489F883C001894424048B45C8897DCC890424E8CC42E3FF8945C8E941FEFFFF8D7426008345D8018B7DD8397DC00F8FC4FDFFFF8B5DC0E913FEFFFF8B7DCC8D7C071489F883C001894424048B45C8897DCC890424E88A42E3FF8945C8E9F4FEFFFF8B4DD0C745E40000000085C90F858DFEFFFFE947FFFFFF8B7D0831C083C9FFF2AE894DCCF755CC8B45CC890424E8A042E3FF8945C8E908FDFFFF9090909090909090</bytes>
1167 <bytes id="63">
1168 5589E557565383EC6C8B1508783A088945B4A104783A08C70508783A0800000000C70504783A08000000008955C48945D089442404C70424806E0508E8DFB7F6FF8B0D2CDC3B0885C98945C00F848F0600008B1508783A088B411485C0740A908B0083C20185C075F78B0985C975E9891508783A08C1E202891424E8D0AAF6FF8B0D2CDC3B0885C9A304783A08741F908B511485D2740C9089108B1283C00485D275F58B0985C975E7A104783A088B1508783A08890424C744240C902D0E08C74424080400000089542404E8BCCBF5FF8B0D04783A088B1508783A08C7050C783A0800000000C70510783A0800000000894DC889CB8D049139C18945D40F839900000089C88B0985C90F848D0000008B710431FF895DBC31DBC745CC000000008955B885F675549080791200744D8B514C85D28955CC74438B71388B511C39D60F87FC05000089D129F139CB0F42D90375CC39D60F86C306000029D639F7731B83C0043B45D4731D8B0885C90F847F04000089F78B710485F674AD83C00489FE3B45D472E3895DCC8B45CC8B5DBC8B55B8893510783A08A30C783A088B4DD08B45C48D048139C18945CC0F83CE020000C1E2028B4DD0031504783A0839D38B3173288B0B8B7E1C3B791C7717E9B70100008DB426000000008B0B39791C0F83A501000083C30439D372EEC745D400000000807E12000F84250100008B4DD485C90F85220200008B46088B400483F8140F95C183F8050F95C00FB6C085C80F84B801000039D30F83B00100008B3B8B471C3B461C0F85A2010000895DC8EB296690A108783A0883C304C1E002030504783A0839C30F837F0100008B3B8B471C3B461C0F857101000089F289F8E82070FFFF85C074CC8B4608C64713008B400483E80683F80277188B47088B400483E80683F8020F87FD0400008B462489472439FE749E8B470885C0749783780801759183780C01748B807F11007485F74710FF0000FF0F8578FFFFFF8B57188B521885D20F856AFFFFFF8B400483E81583F8020F865BFFFFFF8B46348B5DC8C64712018947348B46388947388B463C89473C8B46408947408B46448947448B46488947488B464C89474C8B46508947508D74260031D28B4DD485C9753E85D274338B1570793A0885D274298B46088B400483F8140F95C231C983F8050F95C185D1741183E80683F8020F875B020000908D74260089F0E829A2FFFF8345D0048B45CC3945D00F83F80000008B1508783A08E92EFEFFFF8DB6000000008B411C895DC839F88945D40F8551FEFFFF39CE742B8B45C88B7DD4EB128D76008B083B791C0F8537FEFFFF39CE741183C00439D072EA6690E925FEFFFF8D7600C745D401000000E91DFEFFFF8D7426008B5DC889F0E81EF8FFFFBA0100000085C00F8433FFFFFF8B46088B7810C744240805000000C744240498582D08C7042400000000E8BBCDF5FF897C2404890424E803C1F6FFBA01000000E9FBFEFFFF908B460885C074068378080174088B4004E9CFFDFFFF83780C0174F2807E110074ECF74610FF0000FF75E38B4E188379180075DA8B40048D48EB83F9020F87B6FEFFFFE99DFDFFFF8B1504783A088955C88B1508783A088B5DC8C745E400000000C745E000000000C745DC000000008D049339C3C745D8000000000F83E00000008B3385F60F84D60000008B7E088B470883F8020F84AF00000085C00F84A700000083F8030F849E000000807E11000F8494000000807E10000F858A0000008B4F0483F9140F9545D483F905894DD00F95C10FB6C9894DCC0FB64DD4854DCC74688B4DD083E91583F902765D83F8040F840E010000837DD0060F84B0010000837DD0070F84BC010000837DD0080F84BD0100008B55E48D4DE485D27419A120793A0885C00F84560100008B46283B42280F844A0100008931C64613008B1508783A088DB426000000008D04950000000083C304030504783A0839C30F8220FFFFFFA154E039083DD9702D080F84DD0000003DD4702D080F84C50000008B45C0890424E81286F6FF83C46C5B5E5F5DC3E845460500C74608000000008D444003894674A1D4773A0885C0743C8B48048B1039D1743339CA0F83F60100008D4A01890889749008E976FDFFFF895DCC8B4DCC8B5DBC8B55B8893510783A08890D0C783A08E98EFBFFFFC744240401000000890424E822290D00A3D4773A088B108B4804EBB1807E12000F85E8FEFFFFC744240805000000C7442404C0582D08C7042400000000E87CCBF5FFC7442404F9240000C7042465612D0889442408E86896F6FF833D70793A08000F842EFFFFFF837DB4000F8424FFFFFFE89C65F7FF85C07515A1D0F63908890424E84B26060085C00F8406FFFFFFE8CEF6FFFFE9FCFEFFFF89F0894DB0E8DF6BFFFF8B4DB085C00F84A1FEFFFFC64613018B018B40088378080474378B1508783A08E99AFEFFFF8B55E08D4DE0E95FFEFFFF8B1508783A08E989F9FFFF8B55D88D4DD8E949FEFFFF8B55DC8D4DDCE93EFEFFFF807E120074C3837F080474BDC744240805000000C7442404F8582D08C7042400000000E8A2CAF5FFC744240413250000C7042465612D0889442408E88E95F6FF895DCC891D0C783A08893D10783A08C744240805000000C7442404AACA2A08C7042400000000E85FCAF5FFC74424105B6A2D08C744240C00722D08C7442404DE230000C7042465612D0889442408E83B95F6FFC744240805000000C7442404AACA2A08C7042400000000E81BCAF5FFC744241070582D08C744240CDC712D08C74424047A240000C7042465612D0889442408E8F794F6FFC744240805000000C7442404AACA2A08C7042400000000E8D7C9F5FFC74424104C082B08C744240C4B722D08C7442404D3240000C7042465612D0889442408E8B394F6FF895DCC891D0C783A08893D10783A08C744240805000000C7442404AACA2A08C7042400000000E884C9F5FFC7442410706A2D08C744240C00722D08C7442404E5230000C7042465612D0889442408E86094F6FF</bytes>
1169 <bytes id="64">
1170 5589E557565383EC5C8945D4A190443A0889442404A1D0F63908890424E84EC00E008B008945C0FF50148945E4E8EE20100085C00F8542020000A1B0D63B088B782C83C02C8945C485FF0F84810000008B5DE485DB0F84200100008D47088D75E4897DD089F78B75C08945C8EB2066908B55D0895C2404891424FFD085C0752B8B0385C00F84EE00000089DF89C38B462C85C075DB8D4308894424048B45C8890424E88588FEFF85C075D585DB89FE8B7DD00F84C30000008B038906891C24E8BCFEFFFF897DC48B3F85FF0F857FFFFFFF8B45E485C00F84440100008B55C489028B45E485C08945CC0F8431010000C745BC00000000C745B8000000008D7600A1B0D63B088B55CC8982080400008D45D889442404A130FC3908C744240802000000890424E816290E00C744240401000000890424E81288FEFF8B5DCC83C308E8EB280E0085C07477E8C2280E0085C074EE8B45CCE846FBFFFF85C075EB8B75BC8B55BC85F60F44D38955BC8345B801EBD78DB6000000008B7DD0893C24E88DDCFEFF8B078B55C489028B871404000085C0740AF64008080F84D10000008B870C040000890424E894AAFEFF893C24E8CCFDFFFF8B45C48B38E98AFEFFFF66908B45D885C078618B45CC890424E87EDCFEFF8B55CC8B1285D28955CC0F851EFFFFFF837DB8010F841A0100007E32C744240805000000C744240434182B08C7042400000000E8827DFEFF8B55BC895424088B55B889042489542404E89078FFFF83C45C5B5E5F5DC3C744240805000000C7442404A0172B08C7042400000000E8487DFEFF894424108B45D8894424048B45DC894424088B45E08944240CA1A0CF3B08890424E866220E00E958FFFFFF890424E849CAFEFFE922FFFFFFA1A8DC3B088944240CA1ACDC3B0889442410A1B0DC3B0889442414A184DC3B08890424A188DC3B0889442404A18CDC3B0889442408E89AFA0C0085C00F857CFDFFFFE85D150000837830000F846DFDFFFFA1B0D63B0883781C000F8563FDFFFF8B55C08D45D4C744240C06000000C744240870172B08894424048B4218890424E84F280E00E934FDFFFFC744240805000000C7442404D0172B08C7042400000000E86A7CFEFF8B55BC89542404890424E87F77FFFFE9EAFEFFFF8D76008DBC2700000000</bytes>
1171 <bytes id="65">
1172 55B80100000089E55383EC148B5D0885DB0F44D8891C24E8802BFFFF85C0740683C4145B5DC3891C24E862FEFFFF6690</bytes>
1173 </bytestable>
1174 </profile>
+0
-30
oprofile/org.eclipse.linuxtools.oprofile.core.tests/resources/test_sessions.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <sessions>
2 <!-- <event name="BR_INST_EXEC">
3 <session name="current">
4 </session>
5 </event>
6 <event name="CPU_CLK_UNHALTED">
7 <session name="saved">
8 </session>
9 </event>
10 <event name="UOPS_RETIRED">
11 <session name="current">
12 </session>
13 <session name="&quot;&lt;&gt;&amp;&apos;">
14 </session>
15 </event> -->
16 <session name="current">
17 <event name="BR_INST_EXEC"/>
18 <event name="UOPS_RETIRED"/>
19 </session>
20
21 <session name="saved">
22 <event name="CPU_CLK_UNHALTED"/>
23 </session>
24
25 <session name="&quot;&lt;&gt;&amp;&apos;">
26 <event name="UOPS_RETIRED"/>
27 </session>
28 </sessions>
29
+0
-22
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/AllCoreTests.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import org.junit.runner.RunWith;
15 import org.junit.runners.Suite;
16
17 @RunWith(Suite.class)
18 @Suite.SuiteClasses({ TestModelDataParse.class, TestModelDataPreParse.class, TestSessionsParse.class,
19 TestCheckEventsParse.class, TestCheckEventsPreParse.class, TestInfoParse.class, TestDataModel.class })
20 public class AllCoreTests {
21 }
+0
-71
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15
16 import java.io.FileReader;
17
18 import javax.xml.parsers.SAXParserFactory;
19
20 import org.eclipse.core.runtime.FileLocator;
21 import org.eclipse.core.runtime.Path;
22 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
23 import org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventsProcessor;
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.osgi.framework.FrameworkUtil;
27 import org.xml.sax.InputSource;
28 import org.xml.sax.XMLReader;
29
30 public class TestCheckEventsParse {
31 private static final String REL_PATH_TO_TEST_XML_OK = "resources/test_check-event_ok.xml"; //$NON-NLS-1$
32 private static final String REL_PATH_TO_TEST_XML_INVALID_UMASK = "resources/test_check-event_invalid_umask.xml"; //$NON-NLS-1$
33 private static final String REL_PATH_TO_TEST_XML_INVALID_COUNTER = "resources/test_check-event_invalid_counter.xml"; //$NON-NLS-1$
34 private int[] test_ok, test_invalid_umask, test_invalid_counter;
35
36 @Before
37 public void setUp() throws Exception {
38 test_ok = new int[1];
39 setUpHelper(REL_PATH_TO_TEST_XML_OK, test_ok);
40 test_invalid_umask = new int[1];
41 setUpHelper(REL_PATH_TO_TEST_XML_INVALID_UMASK, test_invalid_umask);
42 test_invalid_counter = new int[1];
43 setUpHelper(REL_PATH_TO_TEST_XML_INVALID_COUNTER, test_invalid_counter);
44 }
45
46 //helper
47 private void setUpHelper(String fileToParse, final int[] resultArray) throws Exception {
48 /* this code mostly taken from OpxmlRunner */
49 XMLReader reader = null;
50 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(resultArray);
51
52 // Create XMLReader
53 SAXParserFactory factory = SAXParserFactory.newInstance();
54 reader = factory.newSAXParser().getXMLReader();
55
56 // Set content/error handlers
57 reader.setContentHandler(handler);
58 reader.setErrorHandler(handler);
59
60 String filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(fileToParse), null)).getFile();
61 reader.parse(new InputSource(new FileReader(filePath)));
62 }
63
64 @Test
65 public void testParse() {
66 assertEquals(CheckEventsProcessor.EVENT_OK, test_ok[0]);
67 assertEquals(CheckEventsProcessor.INVALID_UMASK, test_invalid_umask[0]);
68 assertEquals(CheckEventsProcessor.INVALID_COUNTER, test_invalid_counter[0]);
69 }
70 }
+0
-179
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestCheckEventsPreParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.fail;
16
17 import java.io.BufferedReader;
18 import java.io.File;
19 import java.io.FileInputStream;
20 import java.io.FileNotFoundException;
21 import java.io.FileReader;
22 import java.io.IOException;
23 import java.net.URL;
24
25 import javax.xml.parsers.DocumentBuilder;
26 import javax.xml.parsers.DocumentBuilderFactory;
27 import javax.xml.parsers.ParserConfigurationException;
28
29 import org.eclipse.core.filesystem.EFS;
30 import org.eclipse.core.filesystem.IFileStore;
31 import org.eclipse.core.runtime.FileLocator;
32 import org.eclipse.core.runtime.Path;
33 import org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventAdapter;
34 import org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.osgi.framework.FrameworkUtil;
38 import org.w3c.dom.Document;
39 import org.w3c.dom.Element;
40 import org.xml.sax.SAXException;
41
42 /**
43 * Test cases for checking the validity of the info parsed from oprofile
44 * that is modified to mimic the format expected by the SAX parser.
45 * The oprofile module must be loaded and the driver interface must be
46 * available. ie. run opcontrol --init
47 */
48 public class TestCheckEventsPreParse {
49
50 private static final String REL_PATH_TO_CHECKEVENT_BAD_UMASK = "resources/test_check-event_invalid_umask.xml";
51 private static final String REL_PATH_TO_INFO_PRE_PARSE_RAW = "resources/test_info_pre_parse_raw.xml";
52
53 // the values are checked for validity in the order they
54 // appear here (ctr, event, umask)
55 private String ctr;
56 private String umask;
57 private CheckEventAdapter cea;
58
59 /**
60 * Set the counter, existing event and its default unit mask.
61 */
62 @Before
63 public void setUp (){
64 String devOprofileAbsFilePath = null;
65 Path devOprofilePath = new Path("resources/dev/oprofile/");
66 URL devOprofileURL = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), devOprofilePath , null);
67 try {
68 devOprofileAbsFilePath = FileLocator.toFileURL(devOprofileURL).getFile();
69 } catch (IOException e) {
70 fail("Failed to convert the resource file's path.");
71 }
72 InfoAdapter.setOprofileDir(devOprofileAbsFilePath);
73
74 File devFile = new File(InfoAdapter.DEV_OPROFILE + "0");
75 if (devFile.exists()){
76 ctr = "0";
77 }
78 File cpuFile = new File(InfoAdapter.CPUTYPE);
79
80 try (BufferedReader bi = new BufferedReader(new FileReader(cpuFile))) {
81 String cpuType = bi.readLine();
82 File opArchEvents = new File(InfoAdapter.OP_SHARE + cpuType + "/"
83 + InfoAdapter.EVENTS);
84 File opArchUnitMasks = new File(InfoAdapter.OP_SHARE + cpuType
85 + "/" + InfoAdapter.UNIT_MASKS);
86
87 try (BufferedReader eventReader = new BufferedReader(
88 new FileReader(opArchEvents))) {
89 String line;
90 while ((line = eventReader.readLine()) != null) {
91 // find the first event and use it
92 if (line.contains("name:")) {
93 int start = line.indexOf("name:") + 5;
94 int end = line.indexOf(" ", start);
95
96 // get the string that references the unit mask type
97 start = line.indexOf("um:") + 3;
98 end = line.indexOf(" ", start);
99 String um = line.substring(start, end);
100
101 try (BufferedReader unitMaskReader = new BufferedReader(
102 new FileReader(opArchUnitMasks))) {
103 while ((line = unitMaskReader.readLine()) != null) {
104 if (line.contains("name:" + um + " ")) {
105 start = line.indexOf("default:") + 8;
106 String unitMaskDef = line.substring(start);
107 // convert from hex. to dec.
108 unitMaskDef = unitMaskDef.replaceFirst(
109 "0x", "");
110 umask = String.valueOf(Integer.parseInt(
111 unitMaskDef, 16));
112 break;
113 }
114 }
115 }
116 break;
117 }
118 }
119 }
120 } catch (IOException e) {
121 }
122 }
123
124 @Test
125 public void testBadUnitMask (){
126 umask = "999";
127 assertValidity(REL_PATH_TO_CHECKEVENT_BAD_UMASK);
128 }
129
130 public void assertValidity (String path){
131 IFileStore fileStore = null;
132 String infoAbsFilePath = null;
133
134 Path infoFilePath = new Path(REL_PATH_TO_INFO_PRE_PARSE_RAW);
135 URL infoFileURL = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), infoFilePath, null);
136 try {
137 infoAbsFilePath = FileLocator.toFileURL(infoFileURL).getFile();
138 fileStore = EFS.getLocalFileSystem().getStore(new Path(infoAbsFilePath));
139 } catch (IOException e) {
140 fail("Failed to convert the resource file's path.");
141 }
142
143 InfoAdapter ia = new InfoAdapter(fileStore);
144 ia.process();
145
146 cea = new CheckEventAdapter(ctr, "CPU_CLK_UNHALTED", umask);
147 cea.process();
148 Document actualDocument = cea.getDocument();
149 Element actualRoot = (Element) actualDocument.getElementsByTagName(CheckEventAdapter.CHECK_EVENTS).item(0);
150
151 Path filePath = new Path(path);
152 URL fileURL = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), filePath, null);
153 Element expectedRoot = null;
154 try {
155 String absFilePath = FileLocator.toFileURL(fileURL).getFile();
156 File file = new File (absFilePath);
157 FileInputStream inp = new FileInputStream(file);
158 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
159 DocumentBuilder builder;
160 builder = factory.newDocumentBuilder();
161 Document expectedDocument = builder.parse(inp);
162 expectedRoot = (Element) expectedDocument.getElementsByTagName(CheckEventAdapter.CHECK_EVENTS).item(0);
163
164 } catch (FileNotFoundException e) {
165 fail("File was not found.");
166 } catch (IOException e) {
167 fail("Failed to convert the resource file's path.");
168 } catch (SAXException e) {
169 fail("Failed to parse the XML.");
170 } catch (ParserConfigurationException e) {
171 fail("Failed to create a document builder.");
172 }
173
174 Element expectedResultTag = (Element) expectedRoot.getElementsByTagName(CheckEventAdapter.RESULT).item(0);
175 Element actualResultTag = (Element) actualRoot.getElementsByTagName(CheckEventAdapter.RESULT).item(0);
176 assertEquals(expectedResultTag.getTextContent(), actualResultTag.getTextContent());
177 }
178 }
+0
-63
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestDataModel.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
17 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
18 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
19 import org.eclipse.linuxtools.oprofile.tests.TestingOpModelRoot;
20 import org.junit.Before;
21 import org.junit.Test;
22
23 public class TestDataModel {
24 private TestingOpModelRoot _testRoot;
25
26 @Before
27 public void setUp() {
28 _testRoot = new TestingOpModelRoot();
29 _testRoot.refreshModel();
30 }
31
32 @Test
33 public void testParse() {
34 OpModelSession[] sessions = _testRoot.getSessions();
35 assertEquals(3, sessions.length);
36 assertEquals(TestingOpModelRoot.NAME_E1, sessions[0].getName());
37 assertEquals(TestingOpModelRoot.NAME_E2, sessions[1].getName());
38
39 OpModelEvent[] e1_sessions = sessions[0].getEvents(), e2_sessions = sessions[1].getEvents();
40 assertEquals(1, e1_sessions.length);
41 assertEquals(4, e2_sessions.length);
42
43 assertEquals(205000, e1_sessions[0].getCount());
44 assertEquals(205000, e2_sessions[0].getCount());
45 assertEquals(200000, e2_sessions[1].getCount());
46 assertEquals(OpModelImage.IMAGE_PARSE_ERROR, e2_sessions[2].getCount());
47 assertEquals(0, e2_sessions[3].getCount());
48
49 assertEquals(TestingOpModelRoot.NAME_E1_S1, e1_sessions[0].getName());
50 assertEquals(TestingOpModelRoot.NAME_E2_S1, e2_sessions[0].getName());
51 assertEquals(TestingOpModelRoot.NAME_E2_S2, e2_sessions[1].getName());
52 assertEquals(TestingOpModelRoot.NAME_E2_S3, e2_sessions[2].getName());
53 assertEquals(TestingOpModelRoot.NAME_E2_S4, e2_sessions[3].getName());
54
55 //further image parsing is tested in the TestModelDataParse testParse
56 }
57
58 @Test
59 public void testStringOutput() {
60 assertEquals(TestingOpModelRoot.ROOT_OUTPUT, _testRoot.toString());
61 }
62 }
+0
-417
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestInfoParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertNull;
16 import static org.junit.Assert.assertTrue;
17
18 import java.io.FileReader;
19
20 import javax.xml.parsers.SAXParserFactory;
21
22 import org.eclipse.core.runtime.FileLocator;
23 import org.eclipse.core.runtime.Path;
24 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
25 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpInfo;
26 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.osgi.framework.FrameworkUtil;
31 import org.xml.sax.InputSource;
32 import org.xml.sax.XMLReader;
33
34 public class TestInfoParse {
35 private static final String REL_PATH_TO_TEST_XML = "resources/test_info.xml"; //$NON-NLS-1$
36 private static final String REL_PATH_TO_TEST_XML_0CTR = "resources/test_info_0ctrs.xml"; //$NON-NLS-1$
37
38 private OpInfo info;
39 private OpInfo info_0ctr;
40
41 @Before
42 public void setUp() throws Exception {
43 /* this code mostly taken from OpxmlRunner */
44 XMLReader reader = null;
45 info = new OpInfo();
46 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(info);
47
48 // Create XMLReader
49 SAXParserFactory factory = SAXParserFactory.newInstance();
50 reader = factory.newSAXParser().getXMLReader();
51
52 // Set content/error handlers
53 reader.setContentHandler(handler);
54 reader.setErrorHandler(handler);
55
56 String filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
57 reader.parse(new InputSource(new FileReader(filePath)));
58
59 info_0ctr = new OpInfo();
60 handler = OprofileSAXHandler.getInstance(info_0ctr);
61
62 // Set content/error handlers
63 reader.setContentHandler(handler);
64 reader.setErrorHandler(handler);
65
66 filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(REL_PATH_TO_TEST_XML_0CTR), null)).getFile();
67 reader.parse(new InputSource(new FileReader(filePath)));
68 }
69
70 @Test
71 public void testParse() {
72 assertEquals("/var/lib/oprofile/samples/", info.getDefault(OpInfo.DEFAULT_SAMPLE_DIR)); //$NON-NLS-1$
73 assertEquals("/var/lib/oprofile/lock", info.getDefault(OpInfo.DEFAULT_LOCK_FILE)); //$NON-NLS-1$
74 assertEquals("/var/lib/oprofile/samples/oprofiled.log", info.getDefault(OpInfo.DEFAULT_LOG_FILE)); //$NON-NLS-1$
75 assertEquals("/var/lib/oprofile/complete_dump", info.getDefault(OpInfo.DEFAULT_DUMP_STATUS)); //$NON-NLS-1$
76 assertTrue(info.getTimerMode());
77
78 assertEquals(800, info.getCPUSpeed(),0);
79 assertEquals(2, info.getNrCounters());
80
81 OpEvent[] ctr0_events = info.getEvents(0), ctr1_events = info.getEvents(1);
82 assertEquals(3, ctr0_events.length);
83 assertEquals(3, ctr1_events.length);
84
85 OpEvent ctr0_e1 = ctr0_events[0], ctr0_e2 = ctr0_events[1], ctr0_e3 = ctr0_events[2],
86 ctr1_e1 = ctr1_events[0], ctr1_e2 = ctr1_events[1], ctr1_e3 = ctr1_events[2];
87 //events must be ordered alphabetically
88 assertEquals(6000, ctr0_e1.getMinCount());
89 assertEquals("CPU_CLK_UNHALTED", ctr0_e1.getText()); //$NON-NLS-1$
90 assertEquals("Clock cycles when not halted", ctr0_e1.getTextDescription()); //$NON-NLS-1$
91 assertEquals(500, ctr0_e2.getMinCount());
92 assertEquals("DTLB_MISSES", ctr0_e2.getText()); //$NON-NLS-1$
93 assertEquals("DTLB miss events", ctr0_e2.getTextDescription()); //$NON-NLS-1$
94 assertEquals(6000, ctr0_e3.getMinCount());
95 assertEquals("INST_RETIRED_ANY_P", ctr0_e3.getText()); //$NON-NLS-1$
96 assertEquals("number of instructions retired", ctr0_e3.getTextDescription()); //$NON-NLS-1$
97 assertEquals(500, ctr1_e1.getMinCount());
98 assertEquals("EIST_TRANS_ALL", ctr1_e1.getText()); //$NON-NLS-1$
99 assertEquals("Intel(tm) Enhanced SpeedStep(r) Technology transitions", ctr1_e1.getTextDescription()); //$NON-NLS-1$
100 assertEquals(500, ctr1_e2.getMinCount());
101 assertEquals("L2_LINES_OUT", ctr1_e2.getText()); //$NON-NLS-1$
102 assertEquals("number of recovered lines from L2", ctr1_e2.getTextDescription()); //$NON-NLS-1$
103 assertEquals(500, ctr1_e3.getMinCount());
104 assertEquals("L2_M_LINES_IN", ctr1_e3.getText()); //$NON-NLS-1$
105 assertEquals("number of modified lines allocated in L2", ctr1_e3.getTextDescription()); //$NON-NLS-1$
106
107 OpUnitMask ctr0_e1_mask = ctr0_e1.getUnitMask(), ctr0_e2_mask = ctr0_e2.getUnitMask(),
108 ctr0_e3_mask = ctr0_e3.getUnitMask(), ctr1_e1_mask = ctr1_e1.getUnitMask(),
109 ctr1_e2_mask = ctr1_e2.getUnitMask(), ctr1_e3_mask = ctr1_e3.getUnitMask();
110
111 assertEquals(0, ctr0_e1_mask.getMaskValue());
112 assertEquals(OpUnitMask.EXCLUSIVE, ctr0_e1_mask.getType());
113 assertEquals(3, ctr0_e1_mask.getNumMasks());
114 assertEquals(0, ctr0_e1_mask.getMaskFromIndex(0));
115 assertEquals("Unhalted core cycles", ctr0_e1_mask.getText(0)); //$NON-NLS-1$
116 assertEquals(1, ctr0_e1_mask.getMaskFromIndex(1));
117 assertEquals("Unhalted bus cycles", ctr0_e1_mask.getText(1)); //$NON-NLS-1$
118 assertEquals(2, ctr0_e1_mask.getMaskFromIndex(2));
119 assertEquals("Unhalted bus cycles of this core while the other core is halted", ctr0_e1_mask.getText(2)); //$NON-NLS-1$
120
121 assertEquals(15, ctr0_e2_mask.getMaskValue());
122 assertEquals(OpUnitMask.BITMASK, ctr0_e2_mask.getType());
123 assertEquals(4, ctr0_e2_mask.getNumMasks());
124 assertEquals(1, ctr0_e2_mask.getMaskFromIndex(0));
125 assertEquals("ANY\tMemory accesses that missed the DTLB.", ctr0_e2_mask.getText(0)); //$NON-NLS-1$
126 assertEquals(2, ctr0_e2_mask.getMaskFromIndex(1));
127 assertEquals("MISS_LD\tDTLB misses due to load operations.", ctr0_e2_mask.getText(1)); //$NON-NLS-1$
128 assertEquals(4, ctr0_e2_mask.getMaskFromIndex(2));
129 assertEquals("L0_MISS_LD L0 DTLB misses due to load operations.", ctr0_e2_mask.getText(2)); //$NON-NLS-1$
130 assertEquals(8, ctr0_e2_mask.getMaskFromIndex(3));
131 assertEquals("MISS_ST\tTLB misses due to store operations.", ctr0_e2_mask.getText(3)); //$NON-NLS-1$
132
133 assertEquals(0, ctr0_e3_mask.getMaskValue());
134 assertEquals(OpUnitMask.MANDATORY, ctr0_e3_mask.getType());
135 assertEquals(1, ctr0_e3_mask.getNumMasks());
136 assertEquals(0, ctr0_e3_mask.getMaskFromIndex(0));
137 assertEquals("No unit mask", ctr0_e3_mask.getText(0)); //$NON-NLS-1$
138
139 assertEquals(1, ctr1_e1_mask.getMaskValue());
140 assertEquals(OpUnitMask.INVALID, ctr1_e1_mask.getType());
141 assertEquals(1, ctr1_e1_mask.getNumMasks());
142 assertEquals(-1, ctr1_e1_mask.getMaskFromIndex(0)); //-1 because of invalid mask type
143 assertEquals("No unit mask", ctr1_e1_mask.getText(0)); //$NON-NLS-1$
144
145 assertEquals(112, ctr1_e2_mask.getMaskValue());
146 assertEquals(OpUnitMask.BITMASK, ctr1_e2_mask.getType());
147 assertEquals(5, ctr1_e2_mask.getNumMasks());
148 assertEquals(192, ctr1_e2_mask.getMaskFromIndex(0));
149 assertEquals("core: all cores", ctr1_e2_mask.getText(0)); //$NON-NLS-1$
150 assertEquals(64, ctr1_e2_mask.getMaskFromIndex(1));
151 assertEquals("core: this core", ctr1_e2_mask.getText(1)); //$NON-NLS-1$
152 assertEquals(48, ctr1_e2_mask.getMaskFromIndex(2));
153 assertEquals("prefetch: all inclusive", ctr1_e2_mask.getText(2)); //$NON-NLS-1$
154 assertEquals(16, ctr1_e2_mask.getMaskFromIndex(3));
155 assertEquals("prefetch: Hardware prefetch only", ctr1_e2_mask.getText(3)); //$NON-NLS-1$
156 assertEquals(0, ctr1_e2_mask.getMaskFromIndex(4));
157 assertEquals("prefetch: exclude hardware prefetch", ctr1_e2_mask.getText(4)); //$NON-NLS-1$
158
159 assertEquals(64, ctr1_e3_mask.getMaskValue());
160 assertEquals(OpUnitMask.EXCLUSIVE, ctr1_e3_mask.getType());
161 assertEquals(2, ctr1_e3_mask.getNumMasks());
162 assertEquals(192, ctr1_e3_mask.getMaskFromIndex(0));
163 assertEquals("All cores", ctr1_e3_mask.getText(0)); //$NON-NLS-1$
164 assertEquals(64, ctr1_e3_mask.getMaskFromIndex(1));
165 assertEquals("This core", ctr1_e3_mask.getText(1)); //$NON-NLS-1$
166
167 assertNull(ctr0_e1_mask.getText(-1));
168
169 assertEquals(0, info_0ctr.getNrCounters());
170 }
171
172 @Test
173 public void testUnitMask() {
174 //test types of masks setting/unsetting
175 OpUnitMask mask_bit1 = info.getEvents(0)[1].getUnitMask(),
176 // mask_bit2 = info.getEvents(1)[1].getUnitMask(),
177 mask_exl = info.getEvents(0)[0].getUnitMask(),
178 mask_mand = info.getEvents(0)[2].getUnitMask(),
179 mask_invalid = info.getEvents(1)[0].getUnitMask();
180
181 //bitmask 1 test -- bitmasks all mutually exclusive
182 assertEquals(15, mask_bit1.getMaskValue());
183 mask_bit1.setMaskValue(0);
184 mask_bit1.setMaskFromIndex(0);
185 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
186 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
187 assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
188 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
189 assertEquals(1, mask_bit1.getMaskValue());
190
191 mask_bit1.setMaskFromIndex(1);
192 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
193 assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
194 assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
195 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
196 assertEquals(3, mask_bit1.getMaskValue());
197
198 mask_bit1.setMaskFromIndex(2);
199 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
200 assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
201 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
202 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
203 assertEquals(7, mask_bit1.getMaskValue());
204
205 mask_bit1.setMaskFromIndex(3);
206 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
207 assertEquals(true, mask_bit1.isMaskSetFromIndex(1));
208 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
209 assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
210 assertEquals(15, mask_bit1.getMaskValue());
211
212 mask_bit1.unSetMaskFromIndex(1);
213 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
214 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
215 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
216 assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
217
218 mask_bit1.unSetMaskFromIndex(2);
219 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
220 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
221 assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
222 assertEquals(true, mask_bit1.isMaskSetFromIndex(3));
223
224 mask_bit1.unSetMaskFromIndex(3);
225 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
226 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
227 assertEquals(false, mask_bit1.isMaskSetFromIndex(2));
228 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
229
230 mask_bit1.setMaskFromIndex(2);
231 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
232 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
233 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
234 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
235 assertEquals(5, mask_bit1.getMaskValue());
236
237 mask_bit1.unSetMaskFromIndex(1);
238 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
239 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
240 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
241 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
242
243 mask_bit1.unSetMaskFromIndex(3);
244 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
245 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
246 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
247 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
248 assertEquals(5, mask_bit1.getMaskValue());
249
250 mask_bit1.setMaskFromIndex(2);
251 assertEquals(true, mask_bit1.isMaskSetFromIndex(0));
252 assertEquals(false, mask_bit1.isMaskSetFromIndex(1));
253 assertEquals(true, mask_bit1.isMaskSetFromIndex(2));
254 assertEquals(false, mask_bit1.isMaskSetFromIndex(3));
255 assertEquals(5, mask_bit1.getMaskValue());
256
257 mask_bit1.setMaskValue(OpUnitMask.SET_DEFAULT_MASK);
258 assertEquals(15, mask_bit1.getMaskValue());
259
260 //bitmask 2 test -- bitmasks overlap
261 /* bug related to overlapping bitmasks eclipse bz 261917 */
262 // assertEquals(112, mask_bit2.getMaskValue());
263 // mask_bit2.setMaskValue(0);
264 // mask_bit2.setMaskFromIndex(0);
265 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
266 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
267 // assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
268 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
269 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
270 //// assertEquals(192, mask_bit2.getMaskValue());
271 //
272 // mask_bit2.setMaskFromIndex(1);
273 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
274 // assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
275 // assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
276 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
277 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
278 //// assertEquals(3, mask_bit2.getMaskValue());
279 //
280 // mask_bit2.setMaskFromIndex(2);
281 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
282 // assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
283 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
284 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
285 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
286 //// assertEquals(7, mask_bit2.getMaskValue());
287 //
288 // mask_bit2.setMaskFromIndex(3);
289 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
290 // assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
291 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
292 // assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
293 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
294 //// assertEquals(15, mask_bit2.getMaskValue());
295 //
296 // mask_bit2.setMaskFromIndex(4);
297 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
298 // assertEquals(true, mask_bit2.isMaskSetFromIndex(1));
299 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
300 // assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
301 // assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
302 //// assertEquals(15, mask_bit2.getMaskValue());
303 //
304 // mask_bit2.unSetMaskFromIndex(1);
305 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
306 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
307 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
308 // assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
309 // assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
310 //
311 // mask_bit2.unSetMaskFromIndex(2);
312 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
313 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
314 // assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
315 // assertEquals(true, mask_bit2.isMaskSetFromIndex(3));
316 // assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
317 //
318 // mask_bit2.unSetMaskFromIndex(3);
319 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
320 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
321 // assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
322 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
323 // assertEquals(true, mask_bit2.isMaskSetFromIndex(4));
324 //
325 // mask_bit2.unSetMaskFromIndex(4);
326 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
327 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
328 // assertEquals(false, mask_bit2.isMaskSetFromIndex(2));
329 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
330 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
331 //
332 // mask_bit2.setMaskFromIndex(2);
333 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
334 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
335 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
336 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
337 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
338 //// assertEquals(5, mask_bit2.getMaskValue());
339 //
340 // mask_bit2.unSetMaskFromIndex(1);
341 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
342 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
343 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
344 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
345 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
346 //
347 // mask_bit2.unSetMaskFromIndex(3);
348 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
349 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
350 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
351 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
352 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
353 //// assertEquals(5, mask_bit2.getMaskValue());
354 //
355 // mask_bit2.setMaskFromIndex(2);
356 // assertEquals(true, mask_bit2.isMaskSetFromIndex(0));
357 // assertEquals(false, mask_bit2.isMaskSetFromIndex(1));
358 // assertEquals(true, mask_bit2.isMaskSetFromIndex(2));
359 // assertEquals(false, mask_bit2.isMaskSetFromIndex(3));
360 // assertEquals(false, mask_bit2.isMaskSetFromIndex(4));
361 //// assertEquals(5, mask_bit2.getMaskValue());
362 //
363 // mask_bit2.setMaskValue(OpUnitMask.SET_DEFAULT_MASK);
364 // assertEquals(112, mask_bit2.getMaskValue());
365
366
367 //exclusive test
368 assertEquals(0, mask_exl.getMaskValue());
369 assertEquals(true, mask_exl.isMaskSetFromIndex(0));
370 assertEquals(false, mask_exl.isMaskSetFromIndex(1));
371 assertEquals(false, mask_exl.isMaskSetFromIndex(2));
372 mask_exl.setMaskFromIndex(1);
373 assertEquals(false, mask_exl.isMaskSetFromIndex(0));
374 assertEquals(1, mask_exl.getMaskValue());
375 mask_exl.unSetMaskFromIndex(1);
376 assertEquals(1, mask_exl.getMaskValue());
377 mask_exl.setMaskFromIndex(2);
378 assertEquals(2, mask_exl.getMaskValue());
379 mask_exl.setDefaultMaskValue();
380 assertEquals(0, mask_exl.getMaskValue());
381
382
383 //mandatory test
384 assertEquals(0, mask_mand.getMaskValue());
385 assertEquals(false, mask_mand.isMaskSetFromIndex(0));
386 mask_mand.setMaskFromIndex(0);
387 assertEquals(0, mask_mand.getMaskValue());
388 mask_mand.unSetMaskFromIndex(0);
389 assertEquals(0, mask_mand.getMaskValue());
390 mask_mand.setMaskValue(10);
391 mask_mand.setDefaultMaskValue();
392 assertEquals(0, mask_mand.getMaskValue());
393
394 //invalid test
395 assertEquals(1, mask_invalid.getMaskValue());
396 assertEquals(false, mask_invalid.isMaskSetFromIndex(0));
397 mask_invalid.setMaskFromIndex(0);
398 assertEquals(1, mask_invalid.getMaskValue());
399 mask_invalid.unSetMaskFromIndex(0);
400 assertEquals(1, mask_invalid.getMaskValue());
401 mask_invalid.setMaskValue(0);
402 mask_invalid.setDefaultMaskValue();
403 assertEquals(1, mask_invalid.getMaskValue());
404 }
405
406 @Test
407 public void testInfo() {
408 OpEvent[] result = info.getEvents(-1);
409 assertEquals(0, result.length);
410
411 assertNull(info.findEvent("doesnt exist")); //$NON-NLS-1$
412
413 OpEvent event = info.findEvent("CPU_CLK_UNHALTED"); //$NON-NLS-1$
414 assertEquals("CPU_CLK_UNHALTED", event.getText()); //$NON-NLS-1$
415 }
416 }
+0
-184
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertNull;
16
17 import java.io.FileReader;
18
19 import javax.xml.parsers.SAXParserFactory;
20
21 import org.eclipse.core.runtime.FileLocator;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
24 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSample;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSymbol;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.osgi.framework.FrameworkUtil;
31 import org.xml.sax.InputSource;
32 import org.xml.sax.XMLReader;
33
34 public class TestModelDataParse {
35 private static final String REL_PATH_TO_TEST_XML = "resources/test_model-data.xml"; //$NON-NLS-1$
36 private static final String REL_PATH_TO_TEST_XML_MULTI_IMAGE = "resources/test_model-data_multiple_image.xml"; //$NON-NLS-1$
37 private static final String IMAGE_OUTPUT = "/test/path/for/image, Count: 205000, Dependent Count: 5000\nSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\tSample: Line #: 42, Count: 130000\n\tSample: Line #: 36, Count: 40000\n\tSample: Line #: 31, Count: 9999\n\tSample: Line #: 39, Count: 1\nSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\tSample: Line #: 94, Count: 19998\n\tSample: Line #: 12, Count: 1\n\tSample: Line #: 55, Count: 1\nDependent Image: /no-vmlinux, Count: 4400\nDependent Image: /lib64/ld-2.9.so, Count: 300\n\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\tSample: Line #: 0, Count: 299\n\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\tSample: Line #: 0, Count: 1\nDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\nDependent Image: /lib64/libc-2.9.so, Count: 140\n\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\tSample: Line #: 0, Count: 100\n\tSymbols: bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*), File: , Count: 40\n\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
38 private static final String IMAGE_OUTPUT_WITHTAB = "/test/path/for/image, Count: 205000, Dependent Count: 5000\n\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\tSample: Line #: 42, Count: 130000\n\t\tSample: Line #: 36, Count: 40000\n\t\tSample: Line #: 31, Count: 9999\n\t\tSample: Line #: 39, Count: 1\n\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\tSample: Line #: 94, Count: 19998\n\t\tSample: Line #: 12, Count: 1\n\t\tSample: Line #: 55, Count: 1\n\tDependent Image: /no-vmlinux, Count: 4400\n\tDependent Image: /lib64/ld-2.9.so, Count: 300\n\t\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\t\tSample: Line #: 0, Count: 299\n\t\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\t\tSample: Line #: 0, Count: 1\n\tDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\n\tDependent Image: /lib64/libc-2.9.so, Count: 140\n\t\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\t\tSample: Line #: 0, Count: 100\n\t\tSymbols: bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*), File: , Count: 40\n\t\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
39
40 private OpModelImage parsedImage;
41 private OpModelImage parsedErrorImage;
42
43 @Before
44 public void setUp() throws Exception {
45 /* this code mostly taken from OpxmlRunner */
46 XMLReader reader = null;
47 parsedImage = new OpModelImage();
48 ModelDataProcessor.CallData image = new ModelDataProcessor.CallData(parsedImage);
49 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(image);
50
51 // Create XMLReader
52 SAXParserFactory factory = SAXParserFactory.newInstance();
53 reader = factory.newSAXParser().getXMLReader();
54
55 // Set content/error handlers
56 reader.setContentHandler(handler);
57 reader.setErrorHandler(handler);
58
59 String filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
60 reader.parse(new InputSource(new FileReader(filePath)));
61
62 //2nd test image
63 parsedErrorImage = new OpModelImage();
64 ModelDataProcessor.CallData errorImage = new ModelDataProcessor.CallData(parsedErrorImage);
65 handler = OprofileSAXHandler.getInstance(errorImage);
66
67 // Set content/error handlers
68 reader.setContentHandler(handler);
69 reader.setErrorHandler(handler);
70
71 filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(REL_PATH_TO_TEST_XML_MULTI_IMAGE), null)).getFile();
72 reader.parse(new InputSource(new FileReader(filePath)));
73 }
74
75 @Test
76 public void testParse() {
77 //test attributes
78 assertEquals("/test/path/for/image", parsedImage.getName()); //$NON-NLS-1$
79 assertEquals(205000, parsedImage.getCount());
80
81 //test symbols
82 OpModelSymbol[] symbols = parsedImage.getSymbols();
83 assertEquals(2, symbols.length);
84 OpModelSymbol sym1 = symbols[0], sym2 = symbols[1];
85 assertEquals("TestFunction1(int)", sym1.getName()); //$NON-NLS-1$
86 assertEquals("/test/path/for/src/image.cpp", sym1.getFilePath()); //$NON-NLS-1$
87 assertEquals(180000, sym1.getCount());
88 assertEquals("TestFunction2(int, int)", sym2.getName()); //$NON-NLS-1$
89 assertEquals("/test/path/for/src/image2.cpp", sym2.getFilePath()); //$NON-NLS-1$
90 assertEquals(20000, sym2.getCount());
91
92 //test samples
93 OpModelSample[] sym1_spls = sym1.getSamples(), sym2_spls = sym2.getSamples();
94 assertEquals(4, sym1_spls.length);
95 assertEquals(3, sym2_spls.length);
96 OpModelSample sym1_spl1 = sym1_spls[0], sym1_spl2 = sym1_spls[1], sym1_spl3 = sym1_spls[2], sym1_spl4 = sym1_spls[3];
97 OpModelSample sym2_spl1 = sym2_spls[0], sym2_spl2 = sym2_spls[1], sym2_spl3 = sym2_spls[2];
98 assertEquals(130000, sym1_spl1.getCount());
99 assertEquals(42, sym1_spl1.getLine());
100 assertEquals(40000, sym1_spl2.getCount());
101 assertEquals(36, sym1_spl2.getLine());
102 assertEquals(9999, sym1_spl3.getCount());
103 assertEquals(31, sym1_spl3.getLine());
104 assertEquals(1, sym1_spl4.getCount());
105 assertEquals(39, sym1_spl4.getLine());
106 assertEquals(19998, sym2_spl1.getCount());
107 assertEquals(94, sym2_spl1.getLine());
108 assertEquals(1, sym2_spl2.getCount());
109 assertEquals(12, sym2_spl2.getLine());
110 assertEquals(1, sym2_spl3.getCount());
111 assertEquals(55, sym2_spl3.getLine());
112
113 //test dependent images
114 assertEquals(true, parsedImage.hasDependents());
115 assertEquals(5000, parsedImage.getDepCount());
116 OpModelImage[] deps = parsedImage.getDependents();
117 assertEquals(4, deps.length);
118 OpModelImage dep1 = deps[0], dep2 = deps[1], dep3 = deps[2], dep4 = deps[3];
119
120 assertEquals(false, dep1.hasDependents());
121 assertEquals("/no-vmlinux", dep1.getName()); //$NON-NLS-1$
122 assertEquals(4400, dep1.getCount());
123
124 assertEquals(false, dep2.hasDependents());
125 OpModelSymbol[] dep2_syms = dep2.getSymbols();
126 assertEquals(2, dep2_syms.length);
127 OpModelSymbol dep2_sym1 = dep2_syms[0], dep2_sym2 = dep2_syms[1];
128 OpModelSample[] dep2_sym1_spls = dep2_sym1.getSamples(), dep2_sym2_spls = dep2_sym2.getSamples();
129 assertEquals(1, dep2_sym1_spls.length);
130 assertEquals(1, dep2_sym2_spls.length);
131 OpModelSample dep2_sym1_spl1 = dep2_sym1_spls[0], dep2_sym2_spl1 = dep2_sym2_spls[0];
132 assertEquals("/lib64/ld-2.9.so", dep2.getName()); //$NON-NLS-1$
133 assertEquals(300, dep2.getCount());
134 assertEquals("do_lookup_x", dep2_sym1.getName()); //$NON-NLS-1$
135 assertEquals("dl-lookup.c", dep2_sym1.getFilePath()); //$NON-NLS-1$
136 assertEquals(299, dep2_sym1.getCount());
137 assertEquals(299, dep2_sym1_spl1.getCount());
138 assertEquals(0, dep2_sym1_spl1.getLine());
139 assertEquals("_dl_unload_cache", dep2_sym2.getName()); //$NON-NLS-1$
140 assertEquals("rawmemchr.c", dep2_sym2.getFilePath()); //$NON-NLS-1$
141 assertEquals(1, dep2_sym2.getCount());
142 assertEquals(1, dep2_sym2_spl1.getCount());
143 assertEquals(0, dep2_sym2_spl1.getLine());
144
145 assertEquals(false, dep3.hasDependents());
146 assertEquals("/usr/lib64/libstdc++.so.6.0.10", dep3.getName()); //$NON-NLS-1$
147 assertEquals(160, dep3.getCount());
148
149 assertEquals(false, dep4.hasDependents());
150 OpModelSymbol[] dep4_syms = dep4.getSymbols();
151 assertEquals(2, dep4_syms.length);
152 OpModelSymbol dep4_sym1 = dep4_syms[0], dep4_sym2 = dep4_syms[1];
153 OpModelSample[] dep4_sym1_spls = dep4_sym1.getSamples(), dep4_sym2_spls = dep4_sym2.getSamples();
154 assertEquals(1, dep4_sym1_spls.length);
155 assertEquals(1, dep4_sym2_spls.length);
156 OpModelSample dep4_sym1_spl1 = dep4_sym1_spls[0], dep4_sym2_spl1 = dep4_sym2_spls[0];
157 assertEquals("/lib64/libc-2.9.so", dep4.getName()); //$NON-NLS-1$
158 assertEquals(140, dep4.getCount());
159 assertEquals("_IO_new_file_seekoff", dep4_sym1.getName()); //$NON-NLS-1$
160 assertEquals("", dep4_sym1.getFilePath()); //$NON-NLS-1$
161 assertEquals(100, dep4_sym1.getCount());
162 assertEquals(100, dep4_sym1_spl1.getCount());
163 assertEquals(0, dep4_sym1_spl1.getLine());
164 assertEquals("bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)", dep4_sym2.getName()); //$NON-NLS-1$
165 assertEquals("", dep4_sym2.getFilePath()); //$NON-NLS-1$
166 assertEquals(40, dep4_sym2.getCount());
167 assertEquals(40, dep4_sym2_spl1.getCount());
168 assertEquals(0, dep4_sym2_spl1.getLine());
169
170
171 assertEquals(OpModelImage.IMAGE_PARSE_ERROR, parsedErrorImage.getCount());
172 assertEquals(0, parsedErrorImage.getDepCount());
173 assertNull(parsedErrorImage.getDependents());
174 assertNull(parsedErrorImage.getSymbols());
175 assertEquals("", parsedErrorImage.getName()); //$NON-NLS-1$
176 }
177
178 @Test
179 public void testStringOutput() {
180 assertEquals(IMAGE_OUTPUT, parsedImage.toString());
181 assertEquals(IMAGE_OUTPUT_WITHTAB, parsedImage.toString("\t")); //$NON-NLS-1$
182 }
183 }
+0
-151
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestModelDataPreParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.fail;
16
17 import java.io.File;
18 import java.io.FileInputStream;
19 import java.io.FileNotFoundException;
20 import java.io.IOException;
21 import java.net.URL;
22 import java.util.ArrayList;
23
24 import javax.xml.parsers.DocumentBuilder;
25 import javax.xml.parsers.DocumentBuilderFactory;
26 import javax.xml.parsers.ParserConfigurationException;
27
28 import org.eclipse.core.runtime.FileLocator;
29 import org.eclipse.core.runtime.Path;
30 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataAdapter;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.osgi.framework.FrameworkUtil;
34 import org.w3c.dom.Document;
35 import org.w3c.dom.Element;
36 import org.w3c.dom.NodeList;
37 import org.xml.sax.SAXException;
38
39 /**
40 * Test cases for checking validity of the model data parsed from oprofile that
41 * is modified to mimic the XML format expected by the SAX parser.
42 * The oprofile module must be loaded and the driver interface must be
43 * available. ie. run opcontrol --init
44 */
45 public class TestModelDataPreParse {
46
47 private static final String REL_PATH_TO_MODEL_DATA_RAW = "resources/test_model-data_raw.xml";
48 private static final String REL_PATH_TO_MODEL_DATA_EXPECTED = "resources/test_model-data_expected.xml";
49
50 ModelDataAdapter mda;
51 Element [] rootList;
52 ArrayList<ArrayList<String>> valueList;
53
54 @Before
55 public void setUp (){
56 String absFilePath;
57 Path filePath = new Path(REL_PATH_TO_MODEL_DATA_RAW);
58 URL fileURL = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), filePath, null);
59
60 try {
61 absFilePath = FileLocator.toFileURL(fileURL).getFile();
62 File file = new File (absFilePath);
63 FileInputStream inp = new FileInputStream(file);
64 mda = new ModelDataAdapter(inp);
65 mda.process();
66 } catch (IOException e) {
67 e.printStackTrace();
68 }
69
70 mda.process();
71 Document actualDocument = mda.getDocument();
72 Element actualRoot = (Element) actualDocument.getElementsByTagName(ModelDataAdapter.MODEL_DATA).item(0);
73
74 filePath = new Path(REL_PATH_TO_MODEL_DATA_EXPECTED);
75 fileURL = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), filePath, null);
76 Element expectedRoot = null;
77
78 try {
79 absFilePath = FileLocator.toFileURL(fileURL).getFile();
80 File file = new File (absFilePath);
81 FileInputStream inp = new FileInputStream(file);
82 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
83 DocumentBuilder builder;
84 builder = factory.newDocumentBuilder();
85 Document expectedDocument = builder.parse(inp);
86 expectedRoot = (Element) expectedDocument.getElementsByTagName(ModelDataAdapter.MODEL_DATA).item(0);
87 } catch (FileNotFoundException e) {
88 fail("File was not found.");
89 } catch (IOException e) {
90 fail("Failed to convert the resource file's path.");
91 } catch (SAXException e) {
92 fail("Failed to parse the XML.");
93 } catch (ParserConfigurationException e) {
94 fail("Failed to create a document builder.");
95 }
96
97 rootList = new Element [] {expectedRoot, actualRoot};
98 valueList = new ArrayList<> ();
99
100 for (int i = 0; i < rootList.length; i++){
101 valueList.add(new ArrayList<String>());
102 }
103 }
104
105 @Test
106 public void testBasic (){
107 final String [] imageAttrs = new String [] {ModelDataAdapter.NAME, ModelDataAdapter.COUNT};
108 final String [] symbolAttrs = new String [] {ModelDataAdapter.NAME, ModelDataAdapter.FILE, ModelDataAdapter.COUNT};
109 final String [] sampleTags = new String [] {ModelDataAdapter.COUNT, ModelDataAdapter.LINE};
110
111 for (int i = 0; i < rootList.length; i++){
112 Element imageTag = (Element) rootList[i].getElementsByTagName(ModelDataAdapter.IMAGE).item(0);
113 // image name, count
114 for (int j = 0; j < imageAttrs.length; j++){
115 String attr = imageTag.getAttribute(imageAttrs[j]);
116 valueList.get(i).add(attr);
117 }
118
119 Element symbolsTag = (Element) rootList[i].getElementsByTagName(ModelDataAdapter.SYMBOLS).item(0);
120 NodeList symbolList = symbolsTag.getElementsByTagName(ModelDataAdapter.SYMBOL);
121 // go through each symbol
122 for (int j = 0; j < symbolList.getLength(); j++){
123 Element symbolTag = (Element) symbolList.item(j);
124 // symbol name, file, count
125 for (int k = 0; k < symbolAttrs.length; k++){
126 String attr = symbolTag.getAttribute(symbolAttrs[k]);
127 valueList.get(i).add(attr);
128 }
129
130 NodeList sampleList = symbolsTag.getElementsByTagName(ModelDataAdapter.SAMPLE);
131 // go through each sample
132 for (int k = 0; k < sampleList.getLength(); k++){
133 Element sampleTag = (Element) sampleList.item(k);
134
135 for (int n = 0; n < sampleTags.length; n++){
136 Element elem = (Element) sampleTag.getElementsByTagName(sampleTags[n]).item(0);
137 valueList.get(i).add(elem.getTextContent());
138 }
139 }
140 }
141 }
142 assertSameValues(valueList);
143 }
144
145 private void assertSameValues(ArrayList<ArrayList<String>> valueList) {
146 for (int i = 0; i < valueList.get(0).size(); i++){
147 assertEquals(valueList.get(0).get(i), valueList.get(1).get(i));
148 }
149 }
150 }
+0
-109
oprofile/org.eclipse.linuxtools.oprofile.core.tests/src/org/eclipse/linuxtools/oprofile/core/tests/TestSessionsParse.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.core.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertNull;
16
17 import java.io.FileReader;
18 import java.util.ArrayList;
19
20 import javax.xml.parsers.SAXParserFactory;
21
22 import org.eclipse.core.runtime.FileLocator;
23 import org.eclipse.core.runtime.Path;
24 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionsProcessor;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.osgi.framework.FrameworkUtil;
31 import org.xml.sax.InputSource;
32 import org.xml.sax.XMLReader;
33
34 public class TestSessionsParse {
35 private static final String REL_PATH_TO_TEST_XML = "resources/test_sessions.xml"; //$NON-NLS-1$
36 private static final String EVENT1_OUTPUT = "current\nEvent: BR_INST_EXEC\nEvent: UOPS_RETIRED\n"; //$NON-NLS-1$
37 private static final String EVENT1_OUTPUT_WITHTAB = "current\n\tEvent: BR_INST_EXEC\n\tEvent: UOPS_RETIRED\n"; //$NON-NLS-1$
38 private static final String EVENT2_OUTPUT = "saved\nEvent: CPU_CLK_UNHALTED\n"; //$NON-NLS-1$
39 private static final String EVENT2_OUTPUT_WITHTAB = "saved\n\tEvent: CPU_CLK_UNHALTED\n"; //$NON-NLS-1$
40 private static final String EVENT3_OUTPUT = "\"<>&'\nEvent: UOPS_RETIRED\n"; //$NON-NLS-1$
41 private static final String EVENT3_OUTPUT_WITHTAB = "\"<>&'\n\tEvent: UOPS_RETIRED\n"; //$NON-NLS-1$
42
43 private ArrayList<OpModelSession> eventList;
44
45 @Before
46 public void setUp() throws Exception {
47 /* this code mostly taken from OpxmlRunner */
48 XMLReader reader = null;
49 eventList = new ArrayList<>();
50 SessionsProcessor.SessionInfo sessioninfo = new SessionsProcessor.SessionInfo(eventList);
51 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(sessioninfo);
52
53 // Create XMLReader
54 SAXParserFactory factory = SAXParserFactory.newInstance();
55 reader = factory.newSAXParser().getXMLReader();
56
57 // Set content/error handlers
58 reader.setContentHandler(handler);
59 reader.setErrorHandler(handler);
60
61 String filePath = FileLocator.toFileURL(FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
62 reader.parse(new InputSource(new FileReader(filePath)));
63 }
64
65 @Test
66 public void testParse() {
67 assertEquals(3, eventList.size());
68 OpModelEvent evt1 = eventList.get(0).getEvents()[0], evt2 = eventList.get(1).getEvents()[0], evt3 = eventList.get(2).getEvents()[0];
69
70 assertEquals("BR_INST_EXEC", evt1.getName()); //$NON-NLS-1$
71 assertEquals("CPU_CLK_UNHALTED", evt2.getName()); //$NON-NLS-1$
72 assertEquals("UOPS_RETIRED", evt3.getName()); //$NON-NLS-1$
73
74
75 OpModelSession evt1_ss_s1 = evt1.getSession();
76 OpModelSession evt2_ss_s1 = evt2.getSession();
77 OpModelSession evt3_ss_s1 = evt3.getSession();
78
79
80 assertEquals("current", evt1_ss_s1.getName()); //$NON-NLS-1$
81 assertEquals(true, evt1_ss_s1.isDefaultSession());
82 assertNull(evt1.getImage());
83 assertEquals(0, evt1.getCount());
84 assertEquals(evt1, evt1_ss_s1.getEvents()[0]);
85
86 assertEquals("saved", evt2_ss_s1.getName()); //$NON-NLS-1$
87 assertEquals(false, evt2_ss_s1.isDefaultSession());
88 assertNull(evt2.getImage());
89 assertEquals(0, evt2.getCount());
90 assertEquals(evt2, evt2_ss_s1.getEvents()[0]);
91
92 assertEquals("\"<>&'", evt3_ss_s1.getName()); //$NON-NLS-1$
93 assertEquals(false, evt3_ss_s1.isDefaultSession());
94 assertNull(evt3.getImage());
95 assertEquals(0, evt3.getCount());
96 assertEquals(evt3, evt3_ss_s1.getEvents()[0]);
97 }
98
99 @Test
100 public void testStringOutput() {
101 assertEquals(EVENT1_OUTPUT, eventList.get(0).toString());
102 assertEquals(EVENT1_OUTPUT_WITHTAB, eventList.get(0).toString("\t")); //$NON-NLS-1$
103 assertEquals(EVENT2_OUTPUT, eventList.get(1).toString());
104 assertEquals(EVENT2_OUTPUT_WITHTAB, eventList.get(1).toString("\t")); //$NON-NLS-1$
105 assertEquals(EVENT3_OUTPUT, eventList.get(2).toString());
106 assertEquals(EVENT3_OUTPUT_WITHTAB, eventList.get(2).toString("\t")); //$NON-NLS-1$
107 }
108 }
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.doc/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-22
oprofile/org.eclipse.linuxtools.oprofile.doc/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.doc</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.pde.ManifestBuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.SchemaBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 </buildSpec>
18 <natures>
19 <nature>org.eclipse.pde.PluginNature</nature>
20 </natures>
21 </projectDescription>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.doc/.settings/org.eclipse.jdt.core.prefs less more
0 #Tue Apr 14 09:48:05 EDT 2009
1 eclipse.preferences.version=1
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
3 org.eclipse.jdt.core.compiler.compliance=1.5
4 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.5
+0
-63
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Example-Project.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Example Project</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Example Project</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Remote-OProfile.html" title="Remote OProfile">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Troubleshooting.html" title="Troubleshooting">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">Remote OProfile</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Troubleshooting</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Example_Project">Example Project</h1>
32 <p>If you wish to try the documented steps in this article with a test project, you can download the same sample project used to create the screenshots at the following link:</p>
33 <p>
34 <a href="http://wiki.eclipse.org/images/7/77/Eclipse-oprofile_testproj_factorial.zip">http://wiki.eclipse.org/images/7/77/Eclipse-oprofile_testproj_factorial.zip</a>
35 </p>
36 <p>To import the project into the Eclipse workspace, navigate to <u>File</u> &gt; <u>Import</u> &gt; <u>General</u> &gt; <u>Existing Projects into Workspace</u>. Then, choose <u>Select archive file</u> and use the <u>Browse</u> button to point to the location of the sample project on your file system.</p><hr class="navigation-separator"/>
37 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
38 <tr>
39 <td style="width: 20%" align="left">
40 <a href="Remote-OProfile.html" title="Remote OProfile">
41 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
42 </a>
43 </td>
44 <td style="width: 60%" align="center">
45 <a href="User-Guide.html" title="OProfile User Guide">
46 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
47 </a>
48 </td>
49 <td style="width: 20%" align="right">
50 <a href="Troubleshooting.html" title="Troubleshooting">
51 <img alt="Next" border="0" src="../../../images/next.gif"/>
52 </a>
53 </td>
54 </tr>
55 <tr>
56 <td style="width: 20%" align="left" valign="top">Remote OProfile</td>
57 <td style="width: 60%" align="center"></td>
58 <td style="width: 20%" align="right" valign="top">Troubleshooting</td>
59 </tr>
60 </table>
61 </body>
62 </html>
+0
-155
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Installation and Set-Up</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Installation and Set-Up</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="User-Guide.html" title="OProfile User Guide">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Launching-A-Profile.html" title="Launching A Profile">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">OProfile User Guide</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Launching A Profile</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Installation_and_Set-Up">Installation and Set-Up</h1>
32 <p>The easiest way to install the OProfile plug-in for Eclipse is through the
33 <b>
34 <i>Software Updates and Add-ons </i>
35 </b> menu. For information on how to use this menu, refer to
36 <a href="http://wiki.eclipse.org/Linux_Tools_Project/PluginInstallHelp#Installing_Updates_From_the_Linux_Tools_Update_Site">http://wiki.eclipse.org/Linux_Tools_Project/PluginInstallHelp#Installing_Updates_From_the_Linux_Tools_Update_Site</a>.
37 </p>
38 <p>Unlike most Eclipse plug-ins, the OProfile plug-in requires some configuration after installation. Note that this configuration process takes only a few simple steps, and only needs to be done once.</p>
39 <p>After the plug-in is first installed, performing a profile run with OProfile will bring up a dialog similar to the following:</p>
40 <p>
41 <img border="0" src="images/Screenshot-installscript_error_dialog.png"/>
42 </p>
43 <p>As the dialog suggests, you must run the supplied install script; this script will allow the OProfile plug-in to perform OProfile tasks as root (since OProfile cannot be run as an unprivileged user). The steps below are the same as the dialog but described in more detail.</p>
44 <p>To avoid having to perform the installation setup users can create a launch configuration for their project that uses 'operf' instead of 'opcontrol'. Simply navigate to either the Profiling/Profiling Tools launch configuration dialog and create an OProfile launch configuration. Select the OProfile
45 <a href="Profiling-Configuration.html#Global_Settings">Global Settings</a> tab, and select 'operf' from the 'Profile With' combo box. In future releases, 'operf' will become the default option.
46 </p>
47 <h2 id="Step_1_-_Locate_the_Installation_Scripts">Step 1 - Locate the Installation Scripts</h2>
48 <p>Open up a terminal and locate the
49 <i><code>natives/linux/scripts</code></i> subdirectory, which is found in the
50 <i><code>org.eclipse.linuxtools.oprofile.core</code></i> plug-in directory. The location of this plug-in directory depends on how you installed Eclipse.
51 </p>
52 <ul>
53 <li>If you are using a distro-supplied version of Eclipse and installed the plug-in via the update site, the plug-in directory will most likely be under
54 <i><code>~/.eclipse</code></i>. To find the exact location of the plug-in directory in this case, use the following command:
55 </li>
56 <li><code>find ~/.eclipse -name 'org.eclipse.linuxtools.oprofile.core_*'</code></li>
57 <li>Alternatively, if you are using an extracted tarball of Eclipse (i.e. you downloaded a
58 <i><code>.tar.gz</code></i> from
59 <a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>), then the plug-in will most likely be in the <code>plugins</code> sub-directory of where you extracted it.
60 </li>
61 <li>For example, if you extracted the tarball to <code>
62 <i>/home/ksebasti</i></code>, your Eclipse installation would be in <code>
63 <i>/home/ksebasti/eclipse</i></code>. In this case, you should use the following command to find the exact location of the plug-in directory:
64 </li>
65 <li><code>find /home/ksebasti/eclipse -name 'org.eclipse.linuxtools.oprofile.core_*'</code></li>
66 </ul>
67 <p>
68 <b>Note:</b> In both cases, the quotes (') and asterisk (*) are necessary.
69 </p>
70 <p>Sample output will look like this:</p>
71 <pre>$ find /home/ksebasti/eclipse -name 'org.eclipse.linuxtools.oprofile.core_*'
72 /home/ksebasti/eclipse/plugins/org.eclipse.linuxtools.oprofile.core_0.2.0.200904131051
73 </pre>
74 <p>Once you find the plug-in directory, navigate to its <code>
75 <i>natives/linux/scripts</i></code> subdirectory. Using our previous example:
76 </p>
77 <pre>$ cd /home/ksebasti/eclipse/plugins/org.eclipse.linuxtools.oprofile.core_0.2.0.200904131051/natives/linux/scripts
78 </pre>
79 <p>The <code>
80 <i>natives/linux/scripts</i></code> subdirectory contains the installation scripts you will need to run in order to allow OProfile to run as root.
81 </p>
82 <h2 id="Step_2_-_Choose_Which_Installation_Script_To_Run">Step 2 - Choose Which Installation Script To Run</h2>
83 <p>The
84 <i><code>natives/linux/scripts</code></i> subdirectory contains two scripts:
85 <i><code>install.sh</code></i>, and
86 <i><code>install-noconsolehelper.sh</code></i>. These scripts perform sanity checks to ensure OProfile is installed. The difference is in how root authentication with the plug-in is set up.
87 </p>
88 <ul>
89 <li>
90 <i><code>install.sh</code></i> uses PolicyKit. This is the default and recommended method for root authentication. When an OProfile task is required, you will be presented with a dialog to enter the root password. If PolicyKit is not installed on the system, it is recommended to use
91 <i><code>install-noconsolehelper.sh</code></i> instead.
92 <br/>
93 </li>
94 <li>
95 <i><code>install-noconsolehelper.sh</code></i> can be used when <code>PolicyKit</code> is not present on the system. It uses the sudo mechanism and a small wrapper script. The install script will describe the text which should be written in the
96 <i><code>sudoers</code></i> file, then run the command <code>visudo</code> to edit it.
97 <br/>
98 <b>Warning:</b> The
99 <i><code>sudoers</code></i> file is a sensitive system file and altering it in other ways may lead to system instability. Only users with enough knowledge of running a Linux system should use this method. For these reasons, this method of root authentication is discouraged. However, it may be the only option available to some users and it has been tested to work by developers and users of the plug-in.
100 </li>
101 </ul>
102 <h2 id="Step_3_-_Running_The_Install_Script">Step 3 - Running The Install Script</h2>
103 <p>Once you have selected an install script, log in as root. Assuming you are in the
104 <i><code>natives/linux/scripts</code></i> subdirectory of the plug-in directory (as in
105 <a href="#Step_1_-_Locate_the_Installation_Scripts">Step 1 - Locate the Installation Scripts</a>), run your selected install script:
106 </p>
107 <pre> # ./install.sh
108 </pre>
109 <p>Successful output will look like this:</p>
110 <pre>./install.sh
111 Eclipse-OProfile plugin install successful.
112 </pre>
113 <p>Install scripts should be run as the root user since these scripts perform some actions that require elevated privileges:
114 <i><code>install.sh</code></i> uses PolicyKit, and
115 <i><code>install-noconsolehelper.sh</code></i> runs the command <code>visudo</code>. If you wish to simply run either install script without logging in as root, use:
116 </p>
117 <pre> su -c './install.sh'
118 </pre>
119 <p>This command will run only the install script as the root user, then return control to the regular user. Note that you will still need to enter the root password to make this work. If you receive an error message, refer to the
120 <a href="Troubleshooting.html#Troubleshooting">Troubleshooting</a> section.
121 </p>
122 <h2 id="Step_4_-_Restart_Eclipse">Step 4 - Restart Eclipse</h2>
123 <p>After running the install script, restart Eclipse using <u>File</u> &gt; <u>Restart</u>. </p>
124 <p>If you need to uninstall the plug-in, run the uninstall script that corresponds to the install script used. For example, if you used
125 <i><code>install.sh</code></i>, you would run
126 <i><code>uninstall.sh</code></i> before uninstalling it from within Eclipse. These scripts are also located in the
127 <i><code>natives/linux/scripts</code></i> subdirectory of the OProfile core plug-in directory (i.e. the same directory where the install scripts are found).
128 </p><hr class="navigation-separator"/>
129 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
130 <tr>
131 <td style="width: 20%" align="left">
132 <a href="User-Guide.html" title="OProfile User Guide">
133 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
134 </a>
135 </td>
136 <td style="width: 60%" align="center">
137 <a href="User-Guide.html" title="OProfile User Guide">
138 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
139 </a>
140 </td>
141 <td style="width: 20%" align="right">
142 <a href="Launching-A-Profile.html" title="Launching A Profile">
143 <img alt="Next" border="0" src="../../../images/next.gif"/>
144 </a>
145 </td>
146 </tr>
147 <tr>
148 <td style="width: 20%" align="left" valign="top">OProfile User Guide</td>
149 <td style="width: 60%" align="center"></td>
150 <td style="width: 20%" align="right" valign="top">Launching A Profile</td>
151 </tr>
152 </table>
153 </body>
154 </html>
+0
-122
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Launching-A-Profile.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Launching A Profile</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Launching A Profile</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Installation-and-Set-Up.html" title="Installation and Set-Up">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Profiling-Configuration.html" title="Profiling Configuration">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">Installation and Set-Up</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Profiling Configuration</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Launching_A_Profile">Launching A Profile</h1>
32 <p>The purpose of the OProfile plug-in is to provide useful profile information in a user-friendly manner. To do this, it first gathers the required information. The plug-in hooks into the Eclipse and CDT's launching facilities; in doing so, profiling becomes as easy as a normal run of your program. </p>
33 <p>During a profile run, the OProfile plug-in will start, stop and perform other OProfile tasks in the background as needed, while the binary being profiled runs as normal. Currently, it is possible to start profiling when a user binary is run and stop after the binary has returned as well as the ability to start/stop profiling at arbitrary times.</p>
34 <h2 id="One-Click_Launch">One-Click Launch</h2>
35 <p>Most users are interested in profiling where a program spends the most CPU time during execution. The OProfile plug-in for Eclipse includes a
36 <i>one-click launch</i> feature which profiles this. The one-click launch sets appropriate defaults for a profile configuration using the
37 <i>execution time</i> event, and launches the profile with no further required user intervention.
38 </p>
39 <p>To use the one-click launch, right click on the
40 <i>project</i>, the
41 <i>binary</i> or in an
42 <i>open editor</i> for a source file belonging to that project. Here there are two ways to start a launch:
43 </p>
44 <p>Navigating to <u>Profiling Tools</u> and clicking <u>Profile With OProfile</u></p>
45 <p>
46 <img border="0" src="images/Oprofile_original_submenu.png"/>
47 </p>
48 <p>or navigating to <u>Profiling Tools</u>, clicking on <u>Profile Timing</u> and setting the timing tools to be Oprofile.</p>
49 <p>
50 <img border="0" src="images/Callgraph_timing_submenu.png"/>
51 </p>
52 <p>To properly set the preferences you can go to
53 <b>C/C++-&gt;Profiling-&gt;Categories-&gt;Timing</b> and set the default timing tool to be Oprofile.
54 </p>
55 <p>
56 <img border="0" src="images/Oprofile_global_prefs.png"/>
57 </p>
58 <p>Alternatively, you can set project specific preferences which override workspace preferences by using project
59 <b>Properties-&gt;C/C++ General-&gt;Profiling Categories-&gt;Timing</b>.
60 </p>
61 <p>
62 <img border="0" src="images/Oprofile_proj_prefs.png"/>
63 </p>
64 <p>You can also profile your application using Profile as...-&gt;Local C/C++ Application whereby you have set the profiling tool in the Profiler tab to be Oprofile. </p>
65 <p>
66 <img border="0" src="images/Oprofile_tab.png"/>
67 </p>
68 <h2 id="Launching_a_Customized_Profile">Launching a Customized Profile</h2>
69 <p>The OProfile plug-in allows you to configure a profile run using several available OProfile options. These options are exposed via the launch configuration in a user-friendly manner, allowing for a more complex profile. </p>
70 <p>To customize a profile, right click on the
71 <i>project</i>, the
72 <i>binary</i> or in an
73 <i>open editor</i> for a source file belonging to that project. Then, navigate to <u>Profiling Tools</u> &gt; <u>Profile Configurations...</u> to open the
74 <b>
75 <i>Profile Configurations</i>
76 </b> menu. Refer to the
77 <a href="Profiling-Configuration.html#Profiling_Configuration">Profiling Configuration</a> section for more information about configuring a profile.
78 </p>
79 <p>After configuring a profile, click the <u>Profile</u> button to launch the profile.</p>
80 <h2 id="Manual_Profile">Manual Profile</h2>
81 <p>As of the 0.3.0 release, users can profile their applications in two ways: an automatic or manual profile. Automatic is the previously described method whereby the OProfile daemon is started before the binary is launched and stopped after the binary returns. A manual profile configures the daemon with the appropriate settings, but instead a control dialog is available which the user can use to start or stop the OProfile daemon at will. Each mode has their own configuration type and icon, as to disambiguate the type of profile an entry in the profile history. A feedback list in the dialog assures the user that the operations have been received, since at times an operation may take a few seconds to complete. This feature is most useful to profile applications which halt on input, or large applications for which it is undesirable to launch and return several times. It is not recommended to use this feature to only profile when you believe your application is spending time; the statistical nature of OProfile will account for this.</p>
82 <p>
83 <img border="0" src="images/Oprofile_manual_dialog.png"/>
84 </p>
85 <p>
86 <img border="0" src="images/Oprofile_manual_shortcut.png"/>
87 </p>
88 <p>The basic workflow to run manual OProfile is</p>
89 <ol>
90 <li>Profile -&gt; Profile with OProfile (Manual)</li>
91 <li>On control dialog, hit "Start Daemon"</li>
92 <li>Run the application binary</li>
93 <li>On control dialog, hit "Refresh View" (Oprofile view should be refreshed with profiling data)</li>
94 <li>On control dialog, hit "Stop Daemon"</li>
95 </ol><hr class="navigation-separator"/>
96 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
97 <tr>
98 <td style="width: 20%" align="left">
99 <a href="Installation-and-Set-Up.html" title="Installation and Set-Up">
100 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
101 </a>
102 </td>
103 <td style="width: 60%" align="center">
104 <a href="User-Guide.html" title="OProfile User Guide">
105 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
106 </a>
107 </td>
108 <td style="width: 20%" align="right">
109 <a href="Profiling-Configuration.html" title="Profiling Configuration">
110 <img alt="Next" border="0" src="../../../images/next.gif"/>
111 </a>
112 </td>
113 </tr>
114 <tr>
115 <td style="width: 20%" align="left" valign="top">Installation and Set-Up</td>
116 <td style="width: 60%" align="center"></td>
117 <td style="width: 20%" align="right" valign="top">Profiling Configuration</td>
118 </tr>
119 </table>
120 </body>
121 </html>
+0
-148
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/OProfile-View.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - OProfile View</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">OProfile View</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Profiling-Configuration.html" title="Profiling Configuration">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Remote-OProfile.html" title="Remote OProfile">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">Profiling Configuration</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Remote OProfile</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="OProfile_View">OProfile View</h1>
32 <p>The OProfile view is the central point of interaction of the plug-in with the results of profiling.</p>
33 <p>
34 <img border="0" src="images/Screenshot-oprofile_view_full.png"/>
35 </p>
36 <p>The tree structure displayed above describes one or more profiles of one or more events in the following manner:</p>
37 <ul>
38 <li>
39 <img border="0" src="images/Icon-oprofile_event.gif"/> Events -- the name of the profiling event used by OProfile (e.g. <code>CPU_CLK_UNHALTED</code>)
40 <ul>
41 <li>
42 <img border="0" src="images/Icon-oprofile_session.gif"/> Session -- the name of the session the profile is stored in (e.g. <code>run1</code>)
43 <ul>
44 <li>
45 <img border="0" src="images/Icon-oprofile_image.gif"/> Image -- the binary being profiled (e.g.
46 <i><code>/notnfs/ksebasti/oprofile/plugin/factorial/Debug/factorial</code></i>)
47 <ul>
48 <li>
49 <img border="0" src="images/Icon-oprofile_symbol.gif"/> Symbol -- symbols gathered from the binary's debug information (e.g. <code>factorial2</code>)
50 <ul>
51 <li>
52 <img border="0" src="images/Icon-oprofile_sample.gif"/> Sample -- individual OProfile samples correlated to line numbers of source code
53 </li>
54 </ul>
55 </li>
56 <li>
57 <img border="0" src="images/Icon-oprofile_dependent.gif"/> Dependent Images -- other binaries related to the run of the program; shared libraries or kernel modules
58 <ul>
59 <li>
60 <img border="0" src="images/Icon-oprofile_image.gif"/> Image -- the dependent binary
61 <ul>
62 <li>
63 <img border="0" src="images/Icon-oprofile_symbol.gif"/> Symbol -- same as above
64 <ul>
65 <li>
66 <img border="0" src="images/Icon-oprofile_sample.gif"/> Sample -- same as above
67 </li>
68 </ul>
69 </li>
70 </ul>
71 </li>
72 </ul>
73 </li>
74 </ul>
75 </li>
76 </ul>
77 </li>
78 </ul>
79 </li>
80 </ul>
81 <p>If source code is not available, some symbols (including source file name) may be shown, but no samples. This is normally the case with programs that use shared libraries. Also, depending on the
82 <a href="Profiling-Configuration.html#Global_Settings">Global Settings</a>, a profile may have no dependent images.
83 </p>
84 <p>Note that after Eclipse is restarted, there will be no data shown in the OProfile view. Data from past profiles will still be on the system, if not touched otherwise, and can be re-read with the <u>Refresh View</u> menu action (refer to the
85 <a href="#View_Menu">View Menu</a> section for more details).
86 </p>
87 <h2 id="Features">Features</h2>
88 <p>This section describes the features of the plug-in exposed through the view.</p>
89 <h3 id="View_Tree">View Tree</h3>
90 <p>Double-clicking on a
91 <img border="0" src="images/Icon-oprofile_sample.gif"/>sample will open the source file in an editor and place the insertion point at the corresponding line in code.
92 </p>
93 <p>
94 <b>Note:</b> For this to work, the source code must be available and it must be in the correct directory (as described in the debug info of the binary).
95 </p>
96 <h3 id="View_Menu">View Menu</h3>
97 <dl>
98 <dt>Open OProfile Daemon Log</dt>
99 <dd>This will launch a dialog showing the contents of the OProfile daemon log.
100 <br/>
101 <img border="0" src="images/Screenshot-oprofiled_log_reader.png"/>
102 <br/>By default, the OProfile daemon log is in <code>
103 <i>/var/lib/oprofile/samples/oprofiled.log</i></code>
104 </dd>
105 </dl>
106 <dl>
107 <dt>Refresh View</dt>
108 <dd>This will re-read the OProfile data on the system, re-create the internal data model and re-display the profile tree. Doing so allows you to display data already on the system without launching a profile (e.g. when Eclipse first starts up).</dd>
109 </dl>
110 <dl>
111 <dt>Save Default Session</dt>
112 <dd>The default session, named <code>current</code>, is overwritten on each launch of a profile if it is not saved. If you wish to keep a profile for later viewing, this menu action will allow you to save the session to a different name.
113 <br/>Since the samples are in a system directory, this operation requires root privileges; hence, you will be prompted for the root password. The
114 <b>
115 <i>Save Session</i>
116 </b> dialog is shown below:
117 </dd>
118 </dl>
119 <p>
120 <img border="0" src="images/Screenshot-oprofile_save_session.png"/>
121 </p><hr class="navigation-separator"/>
122 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
123 <tr>
124 <td style="width: 20%" align="left">
125 <a href="Profiling-Configuration.html" title="Profiling Configuration">
126 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
127 </a>
128 </td>
129 <td style="width: 60%" align="center">
130 <a href="User-Guide.html" title="OProfile User Guide">
131 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
132 </a>
133 </td>
134 <td style="width: 20%" align="right">
135 <a href="Remote-OProfile.html" title="Remote OProfile">
136 <img alt="Next" border="0" src="../../../images/next.gif"/>
137 </a>
138 </td>
139 </tr>
140 <tr>
141 <td style="width: 20%" align="left" valign="top">Profiling Configuration</td>
142 <td style="width: 60%" align="center"></td>
143 <td style="width: 20%" align="right" valign="top">Remote OProfile</td>
144 </tr>
145 </table>
146 </body>
147 </html>
+0
-236
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Profiling Configuration</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Profiling Configuration</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Launching-A-Profile.html" title="Launching A Profile">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="OProfile-View.html" title="OProfile View">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">Launching A Profile</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">OProfile View</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Profiling_Configuration">Profiling Configuration</h1>
32 <p>OProfile has many configuration options, the amount of which can be overwhelming. For more information about these options, refer to
33 <a href="http://oprofile.sourceforge.net/doc/controlling-daemon.html">http://oprofile.sourceforge.net/doc/controlling-daemon.html</a>. The
34 <b>
35 <i>Profile Configurations</i>
36 </b> menu provided by the OProfile plug-in aims to make relevant, commonly-used OProfile configuration options easily accessible to users of all experience levels. Currently, the
37 <b>
38 <i>Profile Configurations</i>
39 </b> menu provides two configuration tabs to the standard CDT launch configuration:
40 <a href="#Global_Settings">Global Settings</a> and
41 <a href="#Event_Configuration">Event Configuration</a>.
42 </p>
43 <p>Since Linux Tools 2.1, the Oprofile plug-in supports opcontrol and operf as profiling tools. Both of them are explained as follows.</p>
44 <h2 id="Operf_vs_Opcontrol">Operf vs Opcontrol</h2>
45 <p>Legacy OProfile consists of the opcontrol shell script for configuring, starting, and stopping a profiling session. To this purpose, a kernel driver (usually built as a kernel module) is used for collecting samples, which are recorded into sample files. A disadvantage of this mode is the necessity of elevated user privileges to run opcontrol.</p>
46 <p>Operf was designed to be used in place of opcontrol for profiling. It uses the Linux Performance Events Subsystem, and therefore, does not require the use of the opcontrol daemon or any elevated privileges. The use of operf and opcontrol are mutually exclusive.</p>
47 <h2 id="Global_Settings">Global Settings</h2>
48 <p>The
49 <b>
50 <i>Global Settings</i>
51 </b> tab configures which profiling binary is going to be used (operf or opcontrol) and how the OProfile daemon gathers profiling information. Each option is described below.
52 </p>
53 <p>
54 <img border="0" src="images/Oprofile_global_config.png"/>
55 </p>
56 <dl>
57 <dt>Profile with</dt>
58 <dd>user can select opcontrol or operf as profiling tools.</dd>
59 </dl>
60 <dl>
61 <dt>Kernel Image File (optional)</dt>
62 <dd>To collect more detailed information about the operation of a program in the Linux kernel, use the <u>Browse</u> button specify the location of your running kernel's
63 <i><code>vmlinux</code></i> file. A kernel's
64 <i><code>vmlinux</code></i> file contains debugging information required by OProfile. Note that the compressed
65 <i>vmlinux</i> file, often named
66 <i><code>vmlinuz</code></i>, cannot be used for this purpose.
67 <br/> Note: For this option to have any effect, you must enable the
68 <b>
69 <i>Include dependent kernel modules</i>
70 </b> option.
71 </dd>
72 </dl>
73 <dl>
74 <dt>Include dependent shared libraries</dt>
75 <dd>This option will make OProfile include samples from shared libraries that are used by the profiled binary/program. These samples will then be aggregated in the profile results. This is performed by default when using operf.</dd>
76 </dl>
77 <dl>
78 <dt>Include dependent kernel modules</dt>
79 <dd>This option will make OProfile include samples related to running in the kernel. If the
80 <i><code>vmlinux</code></i> file is specified, the profile will include details of the specific kernel modules in use. Otherwise, kernel samples will be grouped under the name <code>no-vmlinux</code>. Operf by default separates kernel samples per application.
81 </dd>
82 </dl>
83 <p>The differences between the options are illustrated in the following OProfile view screenshot:</p>
84 <p>
85 <img border="0" src="images/Screenshot-oprofile_global_differences.png"/>
86 </p>
87 <ul>
88 <li><code>incl_library</code> was run with only the
89 <b>
90 <i>Include dependent shared libraries</i>
91 </b> checked
92 </li>
93 <li><code>incl_vmlinux</code> was run with the
94 <i><code>vmlinux</code></i> file specified; both
95 <b>
96 <i>Include dependent shared libraries</i>
97 </b> and
98 <b>
99 <i>Include dependent kernel modules</i>
100 </b> checked
101 </li>
102 <li><code>no_vmlinux</code> was run without any
103 <i><code>vmlinux</code></i> file specified; both
104 <b>
105 <i>Include dependent shared libraries</i>
106 </b> and
107 <b>
108 <i>Include dependent kernel modules</i>
109 </b> checked
110 </li>
111 <li><code>novmlinux_noseparate</code> was run with none of the options checked</li>
112 </ul>
113 <h2 id="Event_Configuration">Event Configuration</h2>
114 <p>Your system processor's hardware profiling registers often contain a large number of options. The
115 <b>
116 <i>Event Configuration</i>
117 </b> tab condenses these options to a more manageable amount.
118 </p>
119 <h3 id="Timer_Interrupt_Mode">Timer Interrupt Mode</h3>
120 <p>If your processor (or kernel) does not support the hardware profiling registers OProfile uses, OProfile will run in
121 <i>timer-interrupt mode</i>. This mode has no user-configurable events. For more information about
122 <i>timer-interrupt mode</i>, refer to
123 <a href="http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer">http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer</a>.
124 </p>
125 <p>The event configuration tab will then look like the screenshot below:</p>
126 <p>
127 <img border="0" src="images/Oprofile_event_timer.png"/>
128 </p>
129 <h3 id="Regular_Mode">Regular Mode</h3>
130 <p>If your processor (or kernel) supports hardware profiling registers, there are several configuration options available to you. The availability of these configuration options depend on your processor model or kernel version. With proper support, the
131 <b>
132 <i>Events</i>
133 </b> configuration tab will look like the following screenshot:
134 </p>
135 <p>
136 <img border="0" src="images/Oprofile_eventconfig.png"/>
137 </p>
138 <p>In
139 <i>regular mode</i>, the
140 <b>
141 <i>Events</i>
142 </b> configuration tab can contain any of the following options:
143 </p>
144 <dl>
145 <dt>Use default event</dt>
146 <dd>This option is enabled by default when creating a new profile configuration, or when a profile configuration is created through the
147 <a href="Launching-A-Profile.html#One-Click_Launch">one-click launch</a>.
148 <b>
149 <i>Use default event</i>
150 </b> is a shortcut to use an event based on processor execution time, with a reasonable value for the
151 <b>
152 <i>Count</i>
153 </b> option. Using this option will prevent you from configuring the counters any further.
154 <br/> For a list of default events for various processors, refer to
155 <a href="http://oprofile.sourceforge.net/doc/controlling.html#eventspec">http://oprofile.sourceforge.net/doc/controlling.html#eventspec</a>.
156 </dd>
157 </dl>
158 <dl>
159 <dt>Counter Tabs (
160 <b>
161 <i>Ctr 0</i>
162 </b>,
163 <b>
164 <i>Ctr 1</i>
165 </b>,
166 <b>
167 <i>Ctr 2</i>
168 </b>, and so on)
169 </dt>
170 <dd>A processor may have 1 to 8 hardware profiling registers (also called counters). Each one may be programmed separately to profile many events simultaneously. Each tabs labelled
171 <i>Ctr</i> represents one counter and exposes the same options.
172 </dd>
173 </dl>
174 <dl>
175 <dt>Enabled</dt>
176 <dd>This option (located in each counter tab) disables or enables a counter.</dd>
177 </dl>
178 <dl>
179 <dt>Event List</dt>
180 <dd>A list of the events available for profiling on a given counter.</dd>
181 </dl>
182 <dl>
183 <dt>Event Description</dt>
184 <dd>When you select an event from the events list, this field provides a short description of that event's function. OProfile provides the content for this field.</dd>
185 </dl>
186 <dl>
187 <dt>Profile Kernel and Profile user binaries</dt>
188 <dd>Instructs OProfile to profile binaries in the selected spaces. Keeping both checked is recommended (even if other
189 <a href="#Global_Settings">Global Settings</a> are not specified).
190 </dd>
191 </dl>
192 <dl>
193 <dt>Count</dt>
194 <dd>Specifies a reset count for the hardware counter. In most cases, the default value (based on the CPU clock frequency) is sufficient. Each event has a minimum value, but it is recommended to use a value many orders of magnitude larger.
195 <br/>
196 <b>WARNING</b>: if you specify a value that is too low, the profiled program may take much longer to return or your system may hang.
197 </dd>
198 </dl>
199 <dl>
200 <dt>Unit Mask</dt>
201 <dd>Many events have a
202 <i>unit mask</i> which allows further narrowing of the scope of the event. If in doubt, use the default value (specified by OProfile). There are three types of unit masks:
203 </dd>
204 </dl>
205 <ul>
206 <li>Mandatory -- no selection necessary; a single required value</li>
207 <li>Exclusive -- several possible values; a single required value</li>
208 <li>Bitmask -- several possible values; a combination of several values</li>
209 </ul><hr class="navigation-separator"/>
210 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
211 <tr>
212 <td style="width: 20%" align="left">
213 <a href="Launching-A-Profile.html" title="Launching A Profile">
214 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
215 </a>
216 </td>
217 <td style="width: 60%" align="center">
218 <a href="User-Guide.html" title="OProfile User Guide">
219 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
220 </a>
221 </td>
222 <td style="width: 20%" align="right">
223 <a href="OProfile-View.html" title="OProfile View">
224 <img alt="Next" border="0" src="../../../images/next.gif"/>
225 </a>
226 </td>
227 </tr>
228 <tr>
229 <td style="width: 20%" align="left" valign="top">Launching A Profile</td>
230 <td style="width: 60%" align="center"></td>
231 <td style="width: 20%" align="right" valign="top">OProfile View</td>
232 </tr>
233 </table>
234 </body>
235 </html>
+0
-88
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Remote-OProfile.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Remote OProfile</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Remote OProfile</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="OProfile-View.html" title="OProfile View">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Example-Project.html" title="Example Project">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">OProfile View</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Example Project</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Remote_OProfile">Remote OProfile</h1>
32 <p>The OProfile plug-in allows profiling a project stored in a remote machine. This can be particularly useful when developing an application for a different architecture. </p>
33 <h2 id="Set-up">Set-up</h2>
34 <p>The remote OProfile plug-in doesn't have installation scripts, but requires some setup in the remote machine. First, the remote machine's user must be able to run OProfile as root. For this, log in the remote machine as root and edit the /etc/sudoers file to add the following line: </p>
35 <pre>&lt;user&gt; ALL=(ALL) NOPASSWD: &lt;linux-tools-path&gt;/opcontrol
36 </pre>
37 <p>Where: </p>
38 <ul>
39 <li>
40 <b>&lt;user&gt;</b> - Remote machine's user
41 </li>
42 <li>
43 <b>&lt;linux-tools-path&gt;</b> - Path for linux tools set for the project. The default is /usr/bin. This path can be modified by right-clicking the remote project, clicking in "Properties" and choosing the "Linux Tools Path" tab.
44 </li>
45 </ul>
46 <p>Also make sure that following line is not present or commented out: </p>
47 <pre>Defaults requiretty
48 </pre>
49 <p>This is necessary for running a remote command using sudo. </p>
50 <h2 id="Launching_A_Remote_Profile">Launching A Remote Profile</h2>
51 <p>To run OProfile remotely, right-click the project and navigate to "Profiling Tools", then to "Profile Configurations". (Note: there's no One-click launch for remote OProfile). In the new window, double-click the Profile with OProfile (remote) profile configuration. </p>
52 <p>In the main tab, choose the binary that will be profiled by clicking the "Browse" button under "C/C++ executable".</p>
53 <p>
54 <img border="0" src="images/Remote-oprofile.png"/>
55 </p>
56 <p>The same
57 <a href="Profiling-Configuration.html#Event_Configuration">Event Configuration</a> Event Configuration options for regular OProfile apply for remote OProfile as well.
58 </p>
59 <p>After configuring the profile, click the Profile button to launch the profile. The same
60 <a href="OProfile-View.html#OProfile_View">OProfile View</a> as the local one will show the results.
61 </p><hr class="navigation-separator"/>
62 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
63 <tr>
64 <td style="width: 20%" align="left">
65 <a href="OProfile-View.html" title="OProfile View">
66 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
67 </a>
68 </td>
69 <td style="width: 60%" align="center">
70 <a href="User-Guide.html" title="OProfile User Guide">
71 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
72 </a>
73 </td>
74 <td style="width: 20%" align="right">
75 <a href="Example-Project.html" title="Example Project">
76 <img alt="Next" border="0" src="../../../images/next.gif"/>
77 </a>
78 </td>
79 </tr>
80 <tr>
81 <td style="width: 20%" align="left" valign="top">OProfile View</td>
82 <td style="width: 60%" align="center"></td>
83 <td style="width: 20%" align="right" valign="top">Example Project</td>
84 </tr>
85 </table>
86 </body>
87 </html>
+0
-136
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Troubleshooting</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Troubleshooting</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Example-Project.html" title="Example Project">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right">
20 <a href="Updating-This-Document.html" title="Updating This Document">
21 <img alt="Next" border="0" src="../../../images/next.gif"/>
22 </a>
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 20%" align="left" valign="top">Example Project</td>
27 <td style="width: 60%" align="center"></td>
28 <td style="width: 20%" align="right" valign="top">Updating This Document</td>
29 </tr>
30 </table><hr class="navigation-separator"/>
31 <h1 id="Troubleshooting">Troubleshooting</h1>
32 <p>Various problems and their solutions are described here. If you encounter a problem not described here, please
33 <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?assigned_to=ksebasti%40redhat.com&amp;blocked=&amp;bug_file_loc=http%3A%2F%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;comment=&amp;component=OProfile&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;dependson=&amp;description=&amp;flag_type-1=X&amp;flag_type-2=X&amp;flag_type-4=X&amp;flag_type-6=X&amp;flag_type-7=X&amp;flag_type-8=X&amp;form_name=enter_bug&amp;keywords=&amp;op_sys=Linux&amp;priority=P3&amp;product=Linux%20Tools&amp;qa_contact=&amp;rep_platform=PC&amp;short_desc=">file a bug</a>.
34 </p>
35 <h2 id="Install_Script_Errors">Install Script Errors</h2>
36 <p>This section describes different errors that could occur from running the install scripts (i.e. <code>
37 <i>install.sh</i></code> or <code>
38 <i>install-noconsolehelper.sh</i></code>)
39 </p>
40 <h3 id="Error:_script_must_be_run_as_the_root_user">Error: script must be run as the root user</h3>
41 <p>You attempted to run the script as an ordinary, non-root user. You must be the root user to run the install script, as the scripts edit files located in root-owned directories. </p>
42 <p>Solution: Run the command <code>su -</code> to become the root user, or run the script as the root user with <code>su -c './install.sh'</code>.</p>
43 <h3 id="Error:_script_must_be_run_with_pwd_in_script_dir">Error: script must be run with pwd in script dir</h3>
44 <p>Your current working directory must be the <code>
45 <i>natives/linux/scripts</i></code> subdirectory of the OProfile core plug-in; running the script relative from another location will not work.
46 </p>
47 <p>Solution: Simply follow the steps on
48 <a href="Installation-and-Set-Up.html#Step_1_-_Locate_the_Installation_Scripts">Step 1 - Locate the Installation Scripts</a> to find the <code>
49 <i>natives/linux/scripts</i></code> subdirectory of the OProfile core plug-in.
50 </p>
51 <h3 id="Error:_required_binaries_do_not_exist.2C_OProfile_not_installed.3F">Error: required binaries do not exist, OProfile not installed?</h3>
52 <p>The OProfile plug-in could not find the <code>
53 <i>oprofiled</i></code> and <code>
54 <i>opcontrol</i></code> binaries. This could mean they are not in their default directory (<code>
55 <i>/usr/bin</i></code>), or they do not exist at all.
56 </p>
57 <p>Solution: If the binaries are on your system (and in your <code>PATH</code>) but not in those directories, you can either remove these checks from the install script or create symlinks in the <code>
58 <i>/usr/bin</i></code> directory. Of course, if the binaries do not exist on your system, then install the <code>
59 <i>oprofile</i></code> package.
60 </p>
61 <h3 id="Error:_.2Fusr.2Fbin.2Fpkexec_does_not_exist">Error: /usr/bin/pkexec does not exist</h3>
62 <p>You ran the <code>
63 <i>install.sh</i></code> script, but <code>pkexec</code> which is provided by PolicyKit was not installed on your system.
64 As described in
65 <a href="Installation-and-Set-Up.html#Step_2_-_Choose_Which_Installation_Script_To_Run">Step 2 - Choose Which Installation Script To Run</a>, if <code>PolicyKit</code> is not installed, then you can use the <code>
66 <i>install-noconsolehelper.sh</i></code> script.
67 </p>
68 <p>Solution: Run the <code>
69 <i>install-noconsolehelper.sh</i></code> script instead.
70 </p>
71 <h3 id="install.sh:_line_47:_opcontrol:_Permission_denied">install.sh: line 47: opcontrol: Permission denied</h3>
72 <p>The opcontrol wrapper file could not be created. This can occur if the <code>
73 <i>natives/linux/scripts</i></code> subdirectory is located on an NFS mount; the NFS server will not allow the local root user to create files in the directory.
74 </p>
75 <p>Solution: After seeing the error mentioned run the following commands from the commandline :</p>
76 <pre>echo '#!/bin/sh' &gt; opcontrol || exit 1
77 echo 'exec pkexec /usr/bin/opcontrol ${1+"$@"}' &gt;&gt; opcontrol
78 chmod +x ./opcontrol
79 </pre>
80 <h2 id="No_Samples_From_A_Profile">No Samples From A Profile</h2>
81 <p>It is possible for a profile run of a program to return no samples, resulting in no <code>current</code> session displayed. This is not always indicative of a problem with either OProfile or the profiled program. OProfile is a system-wide profiling tool; hence, other active processes running on your system may overshadow your program. This is particularly true if the profiled program is not CPU intensive. </p>
82 <p>In addition, the
83 <i>Event</i> you choose (selected through the
84 <b>
85 <i>Events</i>
86 </b> tab, as described in
87 <a href="Profiling-Configuration.html#Regular_Mode">Regular Mode</a>) could cause a profile to return no samples; for example the event
88 <i>BR_CND_MISSP_EXEC</i> will only provide samples if a branch was mispredicted by the processor. Note also that due to the statistical nature of OProfile, profiling is neither deterministic nor consistent; two subsequent runs may output very different results. In some cases, one run can result in no samples, while another run on the same program can result in many samples. The OProfile online documentation has other useful information
89 <a href="http://oprofile.sourceforge.net/doc/results.html#no-results">here</a>.
90 </p>
91 <p>Solution: The following suggestions could help you generate more samples from a profile run:</p>
92 <ul>
93 <li>run your program with a larger input</li>
94 <li>halt or kill as many other non-essential processes as possible </li>
95 <li>reduce the
96 <i>Count</i> in the
97 <a href="Profiling-Configuration.html#Event_Configuration">Event Configuration</a> tab
98 </li>
99 <li>launch a profile several times </li>
100 </ul>
101 <p>If you are unsure whether your configuration is working correctly, try profiling the sample project in the
102 <a href="Example-Project.html#Example_Project">Example Project</a> section.
103 </p>
104 <h2 id="Log_Reader_Hangs">Log Reader Hangs</h2>
105 <p>If the OProfile daemon log file is too large, the log reader may hang and possibly cause the OProfile plug-in to crash. This occurs when the
106 <i>verbosity</i> option is set to <code>all</code>, which results in several hundred MiB of text in the log over several profile runs. If you do require all this data in the log file, do not launch the log reader. Delete or backup the log file before running the log reader again.
107 </p>
108 <h2 id="Using_PolicyKit_with_X.2FVNC">Using PolicyKit with X/VNC</h2>
109 <p>When using an X/VNC viewer, PolicyKit may open the authentication dialog in the wrong display. If using this setup, please make sure to connect your VNC viewer to the main display.</p><hr class="navigation-separator"/>
110 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
111 <tr>
112 <td style="width: 20%" align="left">
113 <a href="Example-Project.html" title="Example Project">
114 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
115 </a>
116 </td>
117 <td style="width: 60%" align="center">
118 <a href="User-Guide.html" title="OProfile User Guide">
119 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
120 </a>
121 </td>
122 <td style="width: 20%" align="right">
123 <a href="Updating-This-Document.html" title="Updating This Document">
124 <img alt="Next" border="0" src="../../../images/next.gif"/>
125 </a>
126 </td>
127 </tr>
128 <tr>
129 <td style="width: 20%" align="left" valign="top">Example Project</td>
130 <td style="width: 60%" align="center"></td>
131 <td style="width: 20%" align="right" valign="top">Updating This Document</td>
132 </tr>
133 </table>
134 </body>
135 </html>
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/Updating-This-Document.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide - Updating This Document</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">Updating This Document</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left">
14 <a href="Troubleshooting.html" title="Troubleshooting">
15 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
16 </a>
17 </td>
18 <td style="width: 60%" align="center"></td>
19 <td style="width: 20%" align="right"></td>
20 </tr>
21 <tr>
22 <td style="width: 20%" align="left" valign="top">Troubleshooting</td>
23 <td style="width: 60%" align="center"></td>
24 <td style="width: 20%" align="right" valign="top"></td>
25 </tr>
26 </table><hr class="navigation-separator"/>
27 <h1 id="Updating_This_Document">Updating This Document</h1>
28 <p>This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
29
30 <a href="http://wiki.eclipse.org/Linux_Tools_Project/OProfile/User_Guide">http://wiki.eclipse.org/Linux_Tools_Project/OProfile/User_Guide</a> .
31 </p><hr class="navigation-separator"/>
32 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
33 <tr>
34 <td style="width: 20%" align="left">
35 <a href="Troubleshooting.html" title="Troubleshooting">
36 <img alt="Previous" border="0" src="../../../images/prev.gif"/>
37 </a>
38 </td>
39 <td style="width: 60%" align="center">
40 <a href="User-Guide.html" title="OProfile User Guide">
41 <img alt="OProfile User Guide" border="0" src="../../../images/home.gif"/>
42 </a>
43 </td>
44 <td style="width: 20%" align="right"></td>
45 </tr>
46 <tr>
47 <td style="width: 20%" align="left" valign="top">Troubleshooting</td>
48 <td style="width: 60%" align="center"></td>
49 <td style="width: 20%" align="right" valign="top"></td>
50 </tr>
51 </table>
52 </body>
53 </html>
+0
-58
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/User-Guide.html less more
0 <?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4 <title>OProfile User Guide</title>
5 <link type="text/css" rel="stylesheet" href="../../../book.css"/>
6 </head>
7 <body>
8 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
9 <tr>
10 <th style="width: 100%" align="center" colspan="3">OProfile User Guide</th>
11 </tr>
12 <tr>
13 <td style="width: 20%" align="left"></td>
14 <td style="width: 60%" align="center"></td>
15 <td style="width: 20%" align="right">
16 <a href="Installation-and-Set-Up.html" title="Installation and Set-Up">
17 <img alt="Next" border="0" src="../../../images/next.gif"/>
18 </a>
19 </td>
20 </tr>
21 <tr>
22 <td style="width: 20%" align="left" valign="top"></td>
23 <td style="width: 60%" align="center"></td>
24 <td style="width: 20%" align="right" valign="top">Installation and Set-Up</td>
25 </tr>
26 </table><hr class="navigation-separator"/>
27 <h1 id="Overview">Overview</h1>
28 <p>OProfile is a system-wide Linux profiler, capable of running at low overhead. It consists of a kernel driver and a daemon for collecting raw sample data, along with a suite of tools for parsing that data into meaningful information. OProfile is generally used by developers to determine which sections of code consume the most amount of CPU time, and why.</p>
29 <p>The OProfile plug-in allows Eclipse users to seamlessly include OProfile capabilities into their development workflow, regardless of their experience in using OProfile. Users with little experience in OProfile can use the
30 <a href="Launching-A-Profile.html#One-Click_Launch">One-Click Launch</a> to run a default OProfile view. Experienced users can perform the same OProfile functions they would on the command line, but with a much richer visualization of the results.
31 </p>
32 <p>For more details on OProfile, visit the project homepage at
33 <a href="http://oprofile.sourceforge.net/news/">http://oprofile.sourceforge.net/news/</a>.
34 </p>
35 <p>
36 <b>Note : The following steps in
37 <a href="Installation-and-Set-Up.html#Installation_and_Set-Up">Installation and Set-Up</a> may not be necessary if installing the Eclipse OProfile plugin from a distribution specific package (eg. .deb, .rpm, etc.). These packages may perform the necessary setup on behalf of the user eliminating the need for steps 1-4. For example, on Fedora, the 'eclipse-oprofile' package automatically configures support for PolicyKit. These steps are also not necessary if using the operf binary for profiling instead of legacy opcontrol.
38 </b>
39 </p><hr class="navigation-separator"/>
40 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
41 <tr>
42 <td style="width: 20%" align="left"></td>
43 <td style="width: 60%" align="center"></td>
44 <td style="width: 20%" align="right">
45 <a href="Installation-and-Set-Up.html" title="Installation and Set-Up">
46 <img alt="Next" border="0" src="../../../images/next.gif"/>
47 </a>
48 </td>
49 </tr>
50 <tr>
51 <td style="width: 20%" align="left" valign="top"></td>
52 <td style="width: 60%" align="center"></td>
53 <td style="width: 20%" align="right" valign="top">Installation and Set-Up</td>
54 </tr>
55 </table>
56 </body>
57 </html>
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Callgraph_timing_submenu.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_dependent.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_event.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_image.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_sample.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_session.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Icon-oprofile_symbol.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_event_timer.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_eventconfig.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_global_config.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_global_prefs.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_manual_dialog.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_manual_shortcut.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_original_submenu.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_proj_prefs.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Oprofile_tab.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Remote-oprofile.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-global_config.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-installscript_error_dialog.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-one-click_launch.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-opcontrol_consolehelper.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofile_event_timer.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofile_eventconfig.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofile_global_differences.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofile_save_session.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofile_view_full.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-oprofiled_log_reader.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/Linux_Tools_Project/OProfile/User_Guide/images/Screenshot-remote-oprofile.png less more
Binary diff not shown
+0
-10
oprofile/org.eclipse.linuxtools.oprofile.doc/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %Bundle-Name
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.doc; singleton:=true
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-ActivationPolicy: lazy
6 Bundle-Vendor: %Bundle-Vendor
7 Require-Bundle: org.eclipse.help
8 Bundle-Localization: plugin
9 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.doc
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.doc/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-59
oprofile/org.eclipse.linuxtools.oprofile.doc/book.css less more
0 /* following font face declarations need to be removed for DBCS */
1
2
3 body, h1, h2, h3, h4, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, sans-serif; color: #000000}
4 pre { font-family: Courier, monospace}
5
6 /* end font face declarations */
7
8 /* following font size declarations should be OK for DBCS */
9 body, h1, h2, h3, h4, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 12pt; }
10 pre { font-size: 12pt}
11
12 /* end font size declarations */
13
14 body { background: #FFFFFF}
15 h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
16 h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
17 h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
18 h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }
19 h5 { font size: 13.5pt; }
20 p { font-size: 12pt; }
21 pre { margin-left: 6; font-size: 9pt }
22
23 a:link { color: #006699 }
24 a:visited { color: #996699 }
25 a:hover { color: #006699 }
26
27 ul { margin-top: 0; margin-bottom: 10 }
28 li { margin-top: 0; margin-bottom: 0 }
29 li p { margin-top: 0; margin-bottom: 0 }
30 ol { margin-top: 0; margin-bottom: 10 }
31 dl { margin-top: 0; margin-bottom: 10 }
32 dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
33 dd { margin-top: 0; margin-bottom: 0 }
34 strong { font-weight: bold}
35 em { font-style: italic}
36 var { font-style: italic}
37 div.revision { border-left-style: solid; border-left-width: thin;
38 border-left-color: #7B68EE; padding-left:5 }
39 th { font-weight: bold }
40 .hidden {
41 display: none;
42 }
43
44 /* Mike Behm's addition to the style sheet */
45 .userinput { font-family: monospace; }
46 .guitab, .important, .guibutton, .selectblue, .guimenu, .guilabel,
47 .notetitle {
48 color: #000000;
49 font-family: helvetica, arial, sans-serif;
50 font-weight: bold;
51 }
52 div.linux {display:none;}
53 .firsterm {font-style:italic;}
54
55 .typewriter {font-family:monospace;}
56 .bold {font-weight:600;}
57 .linethrough {text-decoration: line-through;}
58 .underline {text-decoration: underline;}
+0
-50
oprofile/org.eclipse.linuxtools.oprofile.doc/build-helper.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project name="org.eclipse.linuxtools.oprofile.doc" default="all">
2 <description>
3 Generate Eclipse help content for the Linux Tools OProfile user guide
4 </description>
5
6 <property name="help.doc.url.base" value="http://wiki.eclipse.org" />
7
8 <target name="all" description="Generate Eclipse help content for the Linux Tools OProfile user guide">
9 <mediawiki-to-eclipse-help wikiBaseUrl="${help.doc.url.base}" title="OProfile User Guide" formatoutput="true" dest="." templateExcludes="*eclipseproject*">
10
11 <path name="Linux_Tools_Project/OProfile/User_Guide" title="OProfile User Guide" generateToc="false" />
12 <stylesheet url="book.css" />
13 <pageAppendum>
14 = Updating This Document =
15
16 This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
17 http://wiki.eclipse.org/Linux_Tools_Project/OProfile/User_Guide .
18 </pageAppendum>
19 </mediawiki-to-eclipse-help>
20 <antcall target="test" />
21 </target>
22
23 <target name="test" description="verify that all of the HTML files are well-formed XML">
24 <echo level="info">
25 Validating help content XML and HTML files: The Eclipse help system expects well-formed XML
26
27 If validation fails it is because either:
28
29 * the userguide source code is poorly formed, or
30 * the WikiText MediaWiki parser has a bug
31
32 Problems with userguide source are usually caused by improper use of HTML markup in the MediaWiki source,
33 or inadvertently starting a line with a space character (in MediaWiki this starts a preformatted block)
34 </echo>
35
36 <!--
37 Don't bother with DTD validation: we only care if the files are well-formed.
38 We therefore provide an empty DTD
39 -->
40 <echo file="tmp/__empty.dtd" message="" />
41 <xmlvalidate lenient="true">
42 <fileset dir="Linux_Tools_Project">
43 <include name="**/*.html" />
44 </fileset>
45 <dtd publicid="-//W3C//DTD XHTML 1.0 Transitional//EN" location="${basedir}/tmp/__empty.dtd" />
46 </xmlvalidate>
47 <delete dir="tmp" />
48 </target>
49 </project>
+0
-16
oprofile/org.eclipse.linuxtools.oprofile.doc/build.properties less more
0 bin.includes = plugin.xml,\
1 META-INF/,\
2 .,\
3 doc/,\
4 toc.xml,\
5 plugin.properties,\
6 about.html,\
7 Linux_Tools_Project/,\
8 toc-doc.xml,\
9 images/,\
10 book.css
11
12 src.includes = toc.xml,\
13 doc/,\
14 about.html
15 individualSourceBundles=true
+0
-22
oprofile/org.eclipse.linuxtools.oprofile.doc/doc/notices.html less more
0 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
1 <html>
2 <head>
3
4 <meta name="copyright" content="&#169; Copyright 2009 Eclipse Linux Tools project committers and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
5
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
8 <title>Legal Notices</title>
9 </head>
10 <body>
11
12 <h3>
13 <a NAME="Notices"></a>Notices</h3>
14 <p>
15 The material in this guide is &#169; Copyright 2009 Eclipse Linux Tools project committers and others.
16 </p>
17 <p>
18 <a href="../about.html">Terms and conditions regarding the use of this guide.</a>
19 </p>
20 </body>
21 </html>
oprofile/org.eclipse.linuxtools.oprofile.doc/images/home.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/images/next.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.doc/images/prev.gif less more
Binary diff not shown
+0
-2
oprofile/org.eclipse.linuxtools.oprofile.doc/plugin.properties less more
0 Bundle-Vendor = Eclipse Linux Tools
1 Bundle-Name = OProfile Documentation
+0
-11
oprofile/org.eclipse.linuxtools.oprofile.doc/plugin.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.4"?>
2 <plugin>
3 <extension
4 id="org.eclipse.linuxtools.oprofile.doc.helpDocs"
5 name="OProfile"
6 point="org.eclipse.help.toc">
7 <toc file="toc-doc.xml" primary="true" />
8 <toc file="toc.xml" primary="false"/>
9 </extension>
10 </plugin>
+0
-46
oprofile/org.eclipse.linuxtools.oprofile.doc/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.doc</artifactId>
21 <version>1.0.0-SNAPSHOT</version>
22 <packaging>eclipse-plugin</packaging>
23
24 <name>Linux Tools OProfile Documentation Plug-in</name>
25
26 <profiles>
27 <profile>
28 <id>regenHelp</id>
29 <build>
30 <plugins>
31 <plugin>
32 <artifactId>maven-antrun-plugin</artifactId>
33 <executions>
34 <execution>
35 <id>helpdocs</id>
36 <phase>generate-resources</phase>
37 </execution>
38 </executions>
39 </plugin>
40 </plugins>
41 </build>
42 </profile>
43 </profiles>
44
45 </project>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.doc/toc-doc.xml less more
0 <?xml version='1.0' encoding='utf-8' ?>
1 <toc topic="Linux_Tools_Project/OProfile/User_Guide/User-Guide.html" label="OProfile User Guide">
2 <link toc="toc.xml" />
3 <topic href="doc/notices.html" label="Legal"> </topic>
4 </toc>
+0
-49
oprofile/org.eclipse.linuxtools.oprofile.doc/toc.xml less more
0 <?xml version='1.0' encoding='utf-8' ?>
1 <toc topic="Linux_Tools_Project/OProfile/User_Guide/User-Guide.html" label="OProfile User Guide">
2 <topic href="Linux_Tools_Project/OProfile/User_Guide/User-Guide.html" label="OProfile User Guide">
3 <topic href="Linux_Tools_Project/OProfile/User_Guide/User-Guide.html" label="Overview"></topic>
4 <topic href="Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html" label="Installation and Set-Up">
5 <topic href="Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html#Step_1_-_Locate_the_Installation_Scripts" label="Step 1 - Locate the Installation Scripts"></topic>
6 <topic href="Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html#Step_2_-_Choose_Which_Installation_Script_To_Run" label="Step 2 - Choose Which Installation Script To Run"></topic>
7 <topic href="Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html#Step_3_-_Running_The_Install_Script" label="Step 3 - Running The Install Script"></topic>
8 <topic href="Linux_Tools_Project/OProfile/User_Guide/Installation-and-Set-Up.html#Step_4_-_Restart_Eclipse" label="Step 4 - Restart Eclipse"></topic>
9 </topic>
10 <topic href="Linux_Tools_Project/OProfile/User_Guide/Launching-A-Profile.html" label="Launching A Profile">
11 <topic href="Linux_Tools_Project/OProfile/User_Guide/Launching-A-Profile.html#One-Click_Launch" label="One-Click Launch"></topic>
12 <topic href="Linux_Tools_Project/OProfile/User_Guide/Launching-A-Profile.html#Launching_a_Customized_Profile" label="Launching a Customized Profile"></topic>
13 <topic href="Linux_Tools_Project/OProfile/User_Guide/Launching-A-Profile.html#Manual_Profile" label="Manual Profile"></topic>
14 </topic>
15 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html" label="Profiling Configuration">
16 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html#Operf_vs_Opcontrol" label="Operf vs Opcontrol"></topic>
17 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html#Global_Settings" label="Global Settings"></topic>
18 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html#Event_Configuration" label="Event Configuration">
19 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html#Timer_Interrupt_Mode" label="Timer Interrupt Mode"></topic>
20 <topic href="Linux_Tools_Project/OProfile/User_Guide/Profiling-Configuration.html#Regular_Mode" label="Regular Mode"></topic>
21 </topic>
22 </topic>
23 <topic href="Linux_Tools_Project/OProfile/User_Guide/OProfile-View.html" label="OProfile View">
24 <topic href="Linux_Tools_Project/OProfile/User_Guide/OProfile-View.html#Features" label="Features">
25 <topic href="Linux_Tools_Project/OProfile/User_Guide/OProfile-View.html#View_Tree" label="View Tree"></topic>
26 <topic href="Linux_Tools_Project/OProfile/User_Guide/OProfile-View.html#View_Menu" label="View Menu"></topic>
27 </topic>
28 </topic>
29 <topic href="Linux_Tools_Project/OProfile/User_Guide/Remote-OProfile.html" label="Remote OProfile">
30 <topic href="Linux_Tools_Project/OProfile/User_Guide/Remote-OProfile.html#Set-up" label="Set-up"></topic>
31 <topic href="Linux_Tools_Project/OProfile/User_Guide/Remote-OProfile.html#Launching_A_Remote_Profile" label="Launching A Remote Profile"></topic>
32 </topic>
33 <topic href="Linux_Tools_Project/OProfile/User_Guide/Example-Project.html" label="Example Project"></topic>
34 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html" label="Troubleshooting">
35 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Install_Script_Errors" label="Install Script Errors">
36 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Error:_script_must_be_run_as_the_root_user" label="Error: script must be run as the root user"></topic>
37 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Error:_script_must_be_run_with_pwd_in_script_dir" label="Error: script must be run with pwd in script dir"></topic>
38 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Error:_required_binaries_do_not_exist.2C_OProfile_not_installed.3F" label="Error: required binaries do not exist, OProfile not installed?"></topic>
39 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Error:_.2Fusr.2Fbin.2Fpkexec_does_not_exist" label="Error: /usr/bin/pkexec does not exist"></topic>
40 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#install.sh:_line_47:_opcontrol:_Permission_denied" label="install.sh: line 47: opcontrol: Permission denied"></topic>
41 </topic>
42 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#No_Samples_From_A_Profile" label="No Samples From A Profile"></topic>
43 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Log_Reader_Hangs" label="Log Reader Hangs"></topic>
44 <topic href="Linux_Tools_Project/OProfile/User_Guide/Troubleshooting.html#Using_PolicyKit_with_X.2FVNC" label="Using PolicyKit with X/VNC"></topic>
45 </topic>
46 <topic href="Linux_Tools_Project/OProfile/User_Guide/Updating-This-Document.html" label="Updating This Document"></topic>
47 </topic>
48 </toc>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.launch/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.launch/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-34
oprofile/org.eclipse.linuxtools.oprofile.launch/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.launch</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 <buildCommand>
23 <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
24 <arguments>
25 </arguments>
26 </buildCommand>
27 </buildSpec>
28 <natures>
29 <nature>org.eclipse.pde.PluginNature</nature>
30 <nature>org.eclipse.jdt.core.javanature</nature>
31 <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
32 </natures>
33 </projectDescription>
+0
-104
oprofile/org.eclipse.linuxtools.oprofile.launch/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
5 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
6 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
7 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
8 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
9 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
10 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
13 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
15 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
16 org.eclipse.jdt.core.compiler.debug.localVariable=generate
17 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
18 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
19 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
20 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
21 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
22 org.eclipse.jdt.core.compiler.problem.deadCode=warning
23 org.eclipse.jdt.core.compiler.problem.deprecation=warning
24 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
25 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
26 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
27 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
29 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
30 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
31 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
32 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
33 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
34 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
35 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
36 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
37 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
38 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
39 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
40 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
41 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
42 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
43 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
44 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
45 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
46 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
47 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
48 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
49 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
50 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
51 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
52 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
53 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
54 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
55 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
56 org.eclipse.jdt.core.compiler.problem.nullReference=warning
57 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
58 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
59 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
60 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
61 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
62 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
63 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
64 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
65 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
66 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
67 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=error
68 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
69 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
70 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
71 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
72 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
73 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
74 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
75 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
76 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
77 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
78 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
79 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
80 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
81 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
82 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
83 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
84 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
85 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
86 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
87 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
88 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
89 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
90 org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
92 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
93 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
94 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
95 org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
96 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
97 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
98 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
99 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
100 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
101 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
102 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
103 org.eclipse.jdt.core.compiler.source=1.8
+0
-60
oprofile/org.eclipse.linuxtools.oprofile.launch/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=false
16 sp_cleanup.convert_to_enhanced_for_loop=false
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=false
19 sp_cleanup.format_source_code_changes_only=false
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
31 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
32 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
34 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
35 sp_cleanup.remove_private_constructors=true
36 sp_cleanup.remove_redundant_type_arguments=false
37 sp_cleanup.remove_trailing_whitespaces=false
38 sp_cleanup.remove_trailing_whitespaces_all=true
39 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
40 sp_cleanup.remove_unnecessary_casts=true
41 sp_cleanup.remove_unnecessary_nls_tags=false
42 sp_cleanup.remove_unused_imports=false
43 sp_cleanup.remove_unused_local_variables=false
44 sp_cleanup.remove_unused_private_fields=true
45 sp_cleanup.remove_unused_private_members=false
46 sp_cleanup.remove_unused_private_methods=true
47 sp_cleanup.remove_unused_private_types=true
48 sp_cleanup.sort_members=false
49 sp_cleanup.sort_members_all=false
50 sp_cleanup.use_anonymous_class_creation=false
51 sp_cleanup.use_blocks=false
52 sp_cleanup.use_blocks_only_for_return_and_throw=false
53 sp_cleanup.use_lambda=true
54 sp_cleanup.use_parentheses_in_expressions=false
55 sp_cleanup.use_this_for_non_static_field_access=false
56 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
57 sp_cleanup.use_this_for_non_static_method_access=false
58 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
59 sp_cleanup.use_type_arguments=false
+0
-33
oprofile/org.eclipse.linuxtools.oprofile.launch/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.launch;singleton:=true
4 Bundle-Version: 1.1.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
8 org.eclipse.linuxtools.tools.launch.core,
9 org.eclipse.linuxtools.profiling.launch;bundle-version="0.9.0",
10 org.eclipse.cdt.core;bundle-version="5.3.0",
11 org.eclipse.core.filesystem;bundle-version="1.3.100",
12 org.eclipse.ui;bundle-version="3.4.0",
13 org.eclipse.debug.ui;bundle-version="3.7.0"
14 Bundle-Activator: org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin
15 Bundle-ActivationPolicy: lazy
16 Bundle-Localization: plugin
17 Import-Package: org.eclipse.cdt.core.model,
18 org.eclipse.cdt.debug.core,
19 org.eclipse.cdt.launch,
20 org.eclipse.core.resources,
21 org.eclipse.debug.core,
22 org.eclipse.debug.ui,
23 org.eclipse.linuxtools.internal.oprofile.core,
24 org.eclipse.linuxtools.internal.oprofile.core.daemon,
25 org.eclipse.linuxtools.internal.oprofile.ui,
26 org.eclipse.linuxtools.internal.oprofile.ui.view,
27 org.eclipse.linuxtools.profiling.launch,
28 org.eclipse.ui
29 Export-Package: org.eclipse.linuxtools.internal.oprofile.launch;x-friends:="org.eclipse.linuxtools.oprofile.remote.launch",
30 org.eclipse.linuxtools.internal.oprofile.launch.configuration;x-friends:="org.eclipse.linuxtools.oprofile.remote.launch",
31 org.eclipse.linuxtools.internal.oprofile.launch.launching;x-friends:="org.eclipse.linuxtools.oprofile.remote.launch"
32 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.launch
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.launch/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-10
oprofile/org.eclipse.linuxtools.oprofile.launch/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.xml,\
4 plugin.properties,\
5 icons/,\
6 about.html
7 src.includes = about.html,\
8 icons/
9 individualSourceBundles=true
oprofile/org.eclipse.linuxtools.oprofile.launch/icons/event_tab.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.launch/icons/global_tab.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.launch/icons/profile_manual_run.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.launch/icons/profile_run.png less more
Binary diff not shown
+0
-33
oprofile/org.eclipse.linuxtools.oprofile.launch/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2008, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Red Hat, Inc. - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Launch Plug-in
13 bundleProvider=Eclipse Linux Tools
14
15 pluginName=OProfile Launch Support
16 launchconfigurationtype.label=Profile With OProfile
17 launchconfigurationtype.manual.label=Profile With OProfile (Manual)
18
19 launchgroup.label=OProfile
20 launchgroup.titile=Select a run configuration to profile with OProfile
21
22 launchmode.label=Profile
23 launchmode.launchaslabel=Profile As
24
25 launchshortcuts.label=Profile With OProfile
26
27 manual.launchconfigurationtype.label=Profile With OProfile (Manual)
28 manual.launchshortcuts.label=Profile With OProfile (Manual)
29
30 oprofileLaunchConfiguration.name.0=Oprofile
31 oprofileLaunchConfiguration.description=Hardware/Software Events Timing
32 oprofileLaunchConfiguration.information=Note: requires root password to execute OProfile commands.
+0
-80
oprofile/org.eclipse.linuxtools.oprofile.launch/plugin.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.2"?>
2 <plugin>
3 <extension
4 point="org.eclipse.debug.core.launchConfigurationTypes">
5 <launchConfigurationType
6 delegate="org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchConfigurationDelegate"
7 id="org.eclipse.linuxtools.oprofile.launch.oprofile"
8 modes="linuxtools"
9 name="%launchconfigurationtype.label"
10 public="true"
11 sourceLocatorId="org.eclipse.cdt.launch.DefaultSourceLocator"
12 sourcePathComputerId="org.eclipse.cdt.debug.core.sourcePathComputer">
13 </launchConfigurationType>
14 </extension>
15 <extension
16 point="org.eclipse.debug.ui.launchConfigurationTypeImages">
17 <launchConfigurationTypeImage
18 configTypeID="org.eclipse.linuxtools.oprofile.launch.oprofile"
19 icon="icons/profile_run.png"
20 id="org.eclipse.linuxtools.oprofile.launch.oprofileImage">
21 </launchConfigurationTypeImage>
22 </extension>
23 <extension
24 point="org.eclipse.debug.ui.launchConfigurationTabGroups">
25 <launchConfigurationTabGroup
26 class="org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileLaunchConfigurationTabGroup"
27 id="org.eclipse.linuxtools.oprofile.launch.launchConfigurationTabGroup"
28 type="org.eclipse.linuxtools.oprofile.launch.oprofile">
29 </launchConfigurationTabGroup>
30 </extension>
31 <extension
32 point="org.eclipse.debug.ui.launchShortcuts">
33 <shortcut
34 class="org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchShortcut"
35 icon="icons/profile_run.png"
36 id="org.eclipse.linuxtools.oprofile.launch.profileshortcut"
37 label="%launchshortcuts.label"
38 modes="linuxtools">
39 <contextualLaunch>
40 <enablement>
41 <!-- FIXME: this is not a proper enablement condition -->
42 <with variable="selection">
43 <count value="1"></count>
44
45 <iterate>
46 <or>
47 <instanceof value="org.eclipse.cdt.core.model.IBinary"/>
48 <instanceof value="org.eclipse.cdt.core.model.ICProject"/>
49 <test property="org.eclipse.cdt.launch.isExecutable"/>
50 <test property="org.eclipse.cdt.launch.isCProject"/>
51 <and>
52 <instanceof value="org.eclipse.ui.IFileEditorInput"/>
53 <adapt type="org.eclipse.core.resources.IResource">
54 <adapt type="org.eclipse.cdt.core.model.ICElement"/>
55 </adapt>
56 </and>
57 </or>
58 </iterate>
59
60 </with>
61 </enablement>
62 </contextualLaunch>
63 </shortcut>
64 </extension>
65 <extension
66 point="org.eclipse.linuxtools.profiling.launch.launchProvider">
67 <provider
68 delegate="org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchConfigurationDelegate"
69 description="%oprofileLaunchConfiguration.description"
70 id="org.eclipse.linuxtools.oprofile.launch.provider"
71 information="%oprofileLaunchConfiguration.information"
72 name="%oprofileLaunchConfiguration.name.0"
73 priority="2"
74 shortcut="org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchShortcut"
75 tabgroup="org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileLaunchConfigurationTabGroup"
76 type="timing">
77 </provider>
78 </extension>
79 </plugin>
+0
-26
oprofile/org.eclipse.linuxtools.oprofile.launch/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.launch</artifactId>
21 <version>1.1.0-SNAPSHOT</version>
22 <packaging>eclipse-plugin</packaging>
23
24 <name>Linux Tools OProfile Launch Plug-in</name>
25 </project>
+0
-32
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/OprofileLaunchMessages.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.launch;
13
14 import java.util.MissingResourceException;
15 import java.util.ResourceBundle;
16
17 public final class OprofileLaunchMessages {
18 private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.oprofile.launch.oprofilelaunch"; //$NON-NLS-1$
19 private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
20
21 private OprofileLaunchMessages() {
22 }
23
24 public static String getString(String key) {
25 try {
26 return RESOURCE_BUNDLE.getString(key);
27 } catch (MissingResourceException e) {
28 return '!' + key + '!';
29 }
30 }
31 }
+0
-92
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/OprofileLaunchPlugin.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.launch;
14
15 import org.eclipse.jface.resource.ImageDescriptor;
16 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.EventConfigCache;
17 import org.eclipse.ui.plugin.AbstractUIPlugin;
18 import org.osgi.framework.BundleContext;
19
20
21 /**
22 * The main plugin class to be used in the desktop.
23 */
24 public class OprofileLaunchPlugin extends AbstractUIPlugin {
25 //The shared instance.
26 private static OprofileLaunchPlugin plugin;
27 //shared cache instance for configuration
28 private static EventConfigCache eventConfigCache = null;
29
30 public static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.launch"; //$NON-NLS-1$
31
32 // The launch type ID for profiling
33 public static final String ID_LAUNCH_PROFILE = PLUGIN_ID + ".oprofile"; //$NON-NLS-1$
34
35 /* Launch Configuration attributes */
36
37 // Global options \\
38 public static final String ATTR_KERNEL_IMAGE_FILE = ID_LAUNCH_PROFILE + ".KERNEL_IMAGE"; //$NON-NLS-1$
39 public static final String ATTR_SEPARATE_SAMPLES = ID_LAUNCH_PROFILE + ".SEPARATE_SAMPLES"; //$NON-NLS-1$
40 public static final String ATTR_USE_DEFAULT_EVENT = ID_LAUNCH_PROFILE + ".USE_DEFAULT_EVENT"; //$NON-NLS-1$
41 public static final String ATTR_EXECUTIONS_NUMBER = ID_LAUNCH_PROFILE + ".EXECUTIONS_NUMBER"; //$NON-NLS-1$
42
43 /**
44 * @since 2.1
45 */
46 public static final String ATTR_OPROFILE_COMBO_TEXT = ID_LAUNCH_PROFILE + ".OPROFILE_COMBO_TEXT"; //$NON-NLS-1$
47
48 // Counter Attributes \\
49 private static final String attrCounter(int nr) { return ID_LAUNCH_PROFILE + ".COUNTER_" + nr; } //$NON-NLS-1$
50 public static final String attrConterEnabled(int nr) { return attrCounter(nr) + ".ENABLED"; } //$NON-NLS-1$
51 public static final String attrConterEvent(int nr, int ev) { return attrCounter(nr) + ".EVENT " + ev; } //$NON-NLS-1$
52 public static final String attrCounterProfileKernel(int nr) { return attrCounter(nr) + ".PROFILE_KERNEL"; } //$NON-NLS-1$
53 public static final String attrCounterProfileUser(int nr) { return attrCounter(nr) + ".PROFILE_USER"; } //$NON-NLS-1$
54 public static final String attrCounterCount(int nr) { return attrCounter(nr) + ".COUNT"; } //$NON-NLS-1$
55 public static final String attrCounterUnitMask(int nr) { return attrCounter(nr) + ".UNIT_MASK"; } //$NON-NLS-1$
56 public static final String attrCounterUnitMaskName(int nr) { return attrCounter(nr) + ".UNIT_MASK_NAME"; } //$NON-NLS-1$
57 public static final String attrNumberOfEvents(int nr) { return attrCounter(nr) + ".EVENTS"; } //$NON-NLS-1$
58
59
60 public static final String ICON_PATH = "icons/"; //$NON-NLS-1$
61 public static final String ICON_EVENT_TAB = ICON_PATH + "event_tab.gif"; //$NON-NLS-1$
62 public static final String ICON_GLOBAL_TAB = ICON_PATH + "global_tab.gif"; //$NON-NLS-1$
63
64 @Override
65 public void start(BundleContext context) throws Exception {
66 super.start(context);
67 plugin = this;
68 }
69
70 @Override
71 public void stop(BundleContext context) throws Exception {
72 super.stop(context);
73 plugin = null;
74 }
75
76 public static OprofileLaunchPlugin getDefault() {
77 return plugin;
78 }
79
80 public static ImageDescriptor getImageDescriptor(String path) {
81 return imageDescriptorFromPlugin(PLUGIN_ID, path);
82 }
83
84 public static EventConfigCache getCache() {
85 if (eventConfigCache == null) {
86 eventConfigCache = new EventConfigCache();
87 }
88
89 return eventConfigCache;
90 }
91 }
+0
-1417
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/AbstractEventConfigTab.java less more
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
13
14 import java.text.MessageFormat;
15 import java.util.ArrayList;
16 import java.util.Arrays;
17 import java.util.List;
18
19 import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
20 import org.eclipse.core.resources.IProject;
21 import org.eclipse.core.resources.ResourcesPlugin;
22 import org.eclipse.core.runtime.CoreException;
23 import org.eclipse.debug.core.ILaunchConfiguration;
24 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
25 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
26 import org.eclipse.jface.dialogs.Dialog;
27 import org.eclipse.jface.viewers.ILabelProvider;
28 import org.eclipse.jface.viewers.ILabelProviderListener;
29 import org.eclipse.jface.viewers.IStructuredContentProvider;
30 import org.eclipse.jface.viewers.LabelProvider;
31 import org.eclipse.jface.viewers.ListViewer;
32 import org.eclipse.jface.viewers.StructuredSelection;
33 import org.eclipse.jface.viewers.Viewer;
34 import org.eclipse.jface.viewers.ViewerComparator;
35 import org.eclipse.jface.viewers.ViewerFilter;
36 import org.eclipse.jface.window.IShellProvider;
37 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
38 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
39 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
40 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask;
41 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonEvent;
42 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchMessages;
43 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
44 import org.eclipse.swt.SWT;
45 import org.eclipse.swt.custom.ScrolledComposite;
46 import org.eclipse.swt.events.SelectionListener;
47 import org.eclipse.swt.graphics.Image;
48 import org.eclipse.swt.layout.GridData;
49 import org.eclipse.swt.layout.GridLayout;
50 import org.eclipse.swt.widgets.Button;
51 import org.eclipse.swt.widgets.Composite;
52 import org.eclipse.swt.widgets.Control;
53 import org.eclipse.swt.widgets.Display;
54 import org.eclipse.swt.widgets.Event;
55 import org.eclipse.swt.widgets.Label;
56 import org.eclipse.swt.widgets.Listener;
57 import org.eclipse.swt.widgets.Shell;
58 import org.eclipse.swt.widgets.TabFolder;
59 import org.eclipse.swt.widgets.TabItem;
60 import org.eclipse.swt.widgets.Text;
61
62 public abstract class AbstractEventConfigTab extends AbstractLaunchConfigurationTab {
63 protected Button defaultEventCheck;
64 protected OprofileCounter[] counters = null;
65 protected CounterSubTab[] counterSubTabs;
66 private Composite top;
67
68 /**
69 * Essentially the constructor for this tab; creates the 'default event'
70 * checkbox and an appropriate number of counter tabs.
71 * @param parent the parent composite
72 */
73 @Override
74 public void createControl(Composite parent) {
75 Composite top = new Composite(parent, SWT.NONE);
76 setControl(top);
77 top.setLayout(new GridLayout());
78 this.top = top;
79 }
80 /**
81 * @since 1.1
82 * @param top
83 */
84 private void createCounterTabs(Composite top){
85 //tabs for each of the counters
86 counters = getOprofileCounters(null);
87 TabItem[] counterTabs = new TabItem[counters.length];
88
89 // create only one counter for operf/opcontrol
90 if (counters.length > 0) {
91 counterSubTabs = new CounterSubTab[1];
92 } else {
93 counterSubTabs = new CounterSubTab[0];
94 }
95
96 TabFolder tabFolder = new TabFolder(top, SWT.NONE);
97 tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
98
99
100 // As per Roland suggestion if we decide to list all the selected events
101 // in a separate list viewer, then it makes sense to always show just one tab.
102 // This approach would make operf/opcontrol event selection more similar.
103 for (int i = 0; i < counters.length; i++) {
104 Composite c = new Composite(tabFolder, SWT.NONE);
105 CounterSubTab currentTab = new CounterSubTab(c, counters[i]);
106 counterSubTabs[i] = currentTab;
107
108 counterTabs[i] = new TabItem(tabFolder, SWT.NONE);
109 counterTabs[i].setControl(c);
110 counterTabs[i].setText(OprofileLaunchMessages.getString("tab.event.counterTab.counterText")); //$NON-NLS-1$
111 // just one tab for operf/opcontrol
112 break;
113 }
114
115 getTabFolderComposite();
116 }
117
118 /**
119 * @since 1.1
120 */
121 private Composite getTabFolderComposite(){
122 // check for length and first tab being null to prevent AIOBE
123 if(counterSubTabs.length == 0 ||counterSubTabs[0] == null){
124 return null;
125 } else {
126 Composite c = counterSubTabs[0].getTabTopContainer();
127 while(c != null && !(c instanceof TabFolder)){
128 c = c.getParent();
129 }
130 return c.getParent();
131 }
132 }
133
134 @Override
135 public void initializeFrom(ILaunchConfiguration config) {
136
137 IProject previousProject = getOprofileProject();
138 IProject project = getProject(config);
139 setOprofileProject(project);
140
141 updateOprofileInfo();
142
143 String previousHost = null;
144 if(previousProject != null){
145 if(previousProject.getLocationURI() != null){
146 previousHost = previousProject.getLocationURI().getHost();
147 }
148 }
149
150 String host;
151 if (project != null) {
152 host = project.getLocationURI().getHost();
153 } else {
154 host = null;
155 }
156
157 // Create the counter tabs if host has changed or if they haven't been created yet
158 // Check that initialization is not done for current project.
159 // Any calculation based on project doesn't work as the very first time for local project they are both null.
160 if(previousProject == null || previousHost != host || host == null || counters == null){
161 Control[] children = top.getChildren();
162
163 for (Control control : children) {
164 control.dispose();
165 }
166
167 OprofileCounter [] ctrs = getOprofileCounters(null);
168 if (getOprofileTimerMode() || (ctrs.length > 0 && ctrs[0].getValidEvents() == null)) {
169 Label timerModeLabel = new Label(top, SWT.LEFT);
170 timerModeLabel.setText(OprofileLaunchMessages.getString("tab.event.timermode.no.options")); //$NON-NLS-1$
171 } else {
172 createVerticalSpacer(top, 1);
173
174 //default event checkbox
175 defaultEventCheck = new Button(top, SWT.CHECK);
176 defaultEventCheck.setText(OprofileLaunchMessages.getString("tab.event.defaultevent.button.text")); //$NON-NLS-1$
177 defaultEventCheck.setLayoutData(new GridData());
178 defaultEventCheck
179 .addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> handleEnabledToggle()));
180 createVerticalSpacer(top, 1);
181 createCounterTabs(top);
182 }
183
184 }
185
186 if(!getOprofileTimerMode()){
187 if (counters == null) {
188 OprofileCorePlugin.showErrorDialog("countersNotFound", null); //$NON-NLS-1$
189 return;
190 }
191 for (int i = 0; i < counters.length; i++) {
192 counters[i].loadConfiguration(config);
193 }
194
195 for (CounterSubTab tab : counterSubTabs) {
196 tab.initializeTab(config);
197 tab.createEventsFilter();
198 }
199 try{
200 boolean enabledState = config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, true);
201 defaultEventCheck.setSelection(enabledState);
202 setEnabledState(!enabledState);
203 } catch (CoreException e) {
204 e.printStackTrace();
205 }
206 }
207
208 }
209
210 @Override
211 public boolean isValid(ILaunchConfiguration config) {
212 IProject project = getProject(config);
213 setOprofileProject(project);
214
215 OprofileCounter [] ctrs = getOprofileCounters(null);
216 if (ctrs.length > 0 && ctrs[0].getValidEvents() == null) {
217 return false;
218 }
219 if (getOprofileTimerMode() || counterSubTabs == null) {
220 return true; //no options to check for validity
221 } else {
222 return validateEvents(config);
223 }
224 }
225
226 /**
227 * Validate events specified in the given configuration.
228 * @param config
229 * @return
230 */
231 private boolean validateEvents(ILaunchConfiguration config) {
232 int numEnabledEvents = 0;
233 boolean valid = true;
234
235 try {
236 if (config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false)) {
237 numEnabledEvents = 1;
238 } else {
239 //This seems like an odd way to validate, but since most of the validation
240 // is done with the OprofileDaemonEvent that the counter wraps, this
241 // is the easiest way.
242 OprofileCounter[] counters = new OprofileCounter[getNumberOfOprofileCounters()];
243 for (int i = 0; i < counters.length; i++) {
244 counters[i] = getOprofileCounter(i);
245 counters[i].loadConfiguration(config);
246
247 for (CounterSubTab counterSubTab : counterSubTabs){
248 int nr = counterSubTab.counter.getNumber();
249 if(counterSubTab.enabledCheck.getSelection() && config.getAttribute(OprofileLaunchPlugin.attrNumberOfEvents(nr), 0) == 0){
250 valid = false;
251 }
252 // if target list is empty valid is false
253 // target event list item count
254 int count = counterSubTab.selectedEventList.getList().getItemCount();
255 if(count == 0)
256 {
257 valid = false;
258 }
259 }
260
261 if (counters[i].getEnabled()) {
262 ++numEnabledEvents;
263
264 for (OpEvent event : counters[i].getEvents()) {
265 if (event == null) {
266 valid = false;
267 break;
268 }
269
270 // First check min count
271 int min = event.getMinCount();
272 if (counters[i].getCount() < min) {
273 setErrorMessage(MessageFormat.format(
274 OprofileLaunchMessages.getString("tab.event.counterSettings.count.too-small"), //$NON-NLS-1$
275 min));
276 valid = false;
277 break;
278 }
279
280 // Next ask oprofile if it is valid
281 if (!checkEventSetupValidity(
282 counters[i].getNumber(), event.getText(), event.getUnitMask().getMaskValue())) {
283 Object[] args = new Object[] { event.getText() };
284 setErrorMessage(MessageFormat.format(OprofileLaunchMessages.getString("tab.event.validation.msg"), args)); //$NON-NLS-1$
285 valid = false;
286 break;
287 }
288 }
289 }
290 }
291 }
292 } catch (CoreException e) {
293 e.printStackTrace();
294 }
295
296 return (numEnabledEvents > 0 && valid);
297 }
298
299 @Override
300 public void performApply(ILaunchConfigurationWorkingCopy config) {
301 if (getOprofileTimerMode() || counterSubTabs == null) {
302 config.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, true);
303 } else {
304 config.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, defaultEventCheck.getSelection());
305 for (CounterSubTab cst : counterSubTabs) {
306 cst.performApply(config);
307 }
308 }
309 }
310
311 @Override
312 public void setDefaults(ILaunchConfigurationWorkingCopy config) {
313 boolean useDefault = true;
314 IProject project = getProject(config);
315 setOprofileProject(project);
316
317 counters = getOprofileCounters(config);
318
319 // When instantiated, the OprofileCounter will set defaults.
320 for (int i = 0; i < counters.length; i++) {
321 counters[i].saveConfiguration(config);
322 if (counters[i].getEnabled()) {
323 useDefault = false;
324 }
325 }
326
327 config.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, useDefault);
328 }
329
330 @Override
331 public String getName() {
332 return OprofileLaunchMessages.getString("tab.event.name"); //$NON-NLS-1$
333 }
334
335 @Override
336 public Image getImage() {
337 return OprofileLaunchPlugin.getImageDescriptor(OprofileLaunchPlugin.ICON_EVENT_TAB).createImage();
338 }
339
340 /**
341 * Handles the toggling of the default event check box. Not meant to be called
342 * directly.
343 */
344 private void handleEnabledToggle() {
345 setEnabledState(!defaultEventCheck.getSelection());
346 updateLaunchConfigurationDialog();
347 }
348
349 /**
350 * Sets the state of the child counter tabs' widgets.
351 * @param state true for enabled, false for disabled
352 */
353 private void setEnabledState(boolean state) {
354 for (CounterSubTab cst : counterSubTabs) {
355 cst.setEnabledState(state);
356 }
357 }
358
359 /*
360 * Extracted methods to be overridden by the test suite.
361 */
362
363 /**
364 * Returns whether the event's unit mask is valid
365 * @param counter counter number
366 * @param name event name
367 * @param maskValue unit mask value
368 * @return true if valid config, false otherwise
369 */
370 protected abstract boolean checkEventSetupValidity(int counter, String name, int maskValue);
371
372 /**
373 *
374 * @param config
375 * @return
376 * @since 1.1
377 */
378 private IProject getProject(ILaunchConfiguration config){
379 String name = null;
380 try {
381 name = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$
382 } catch (CoreException e) {
383 return null;
384 }
385 if (name.isEmpty()) {
386 return null;
387 }
388
389 return ResourcesPlugin.getWorkspace().getRoot().getProject(name);
390 }
391
392 /**
393 * Returns counter with corresponding to counter number.
394 * @param i the counter number
395 */
396 public abstract OprofileCounter getOprofileCounter(int i);
397
398 /**
399 * Returns counters in the given configuration.
400 * @param config the launch configuration
401 */
402 protected abstract OprofileCounter[] getOprofileCounters(ILaunchConfiguration config);
403
404 /**
405 * Returns the number of hardware counters the cpu has
406 * @return int number of counters
407 */
408 protected abstract int getNumberOfOprofileCounters();
409
410 /**
411 * Returns whether or not oprofile is operating in timer mode.
412 * @return true if oprofile is in timer mode, false otherwise
413 */
414 protected abstract boolean getOprofileTimerMode();
415
416 /**
417 * Returns current project to profile by Oprofile.
418 */
419 protected abstract IProject getOprofileProject();
420
421 /**
422 * Set project to profile by Oprofile.
423 * @param project the project to profile
424 */
425 protected abstract void setOprofileProject(IProject project);
426
427 /**
428 * Update generic Oprofile information.
429 */
430 protected abstract void updateOprofileInfo();
431
432 /**
433 * A sub-tab of the OprofileEventConfigTab launch configuration tab.
434 * Essentially, it is a frontend to an OprofileCounter. This is an
435 * inner class because it requires methods from the parent tab (such as
436 * updateLaunchConfigurationDialog() when a widget changes state).
437 */
438 protected class CounterSubTab {
439
440 private Button profileKernelCheck;
441 private Button profileUserCheck;
442 private Label countTextLabel;
443 private Text countText;
444 private Label eventDescLabel;
445 private Text eventDescText;
446 private UnitMaskViewer unitMaskViewer;
447 private Text eventFilterText;
448 private OprofileCounter counter;
449
450 private ScrolledComposite scrolledTop;
451 protected Composite tabTopContainer;
452 protected Button enabledCheck;
453 protected ListViewer eventList;
454
455 protected Button add;
456 protected Button addAll;
457 protected Button remove;
458 protected Button removeAll;
459 protected Button customizeBtn;
460 protected ListViewer selectedEventList;
461 protected ScrolledComposite unitmaskScrollComposite;
462 protected Composite unitMaskSubComposite ;
463 private static final int ADD = 1;
464 private static final int ADD_ALL = 2;
465 private static final int REMOVE = 3;
466 private static final int REMOVE_ALL = 4;
467 private static final int CUSTOMIZE = 5;
468 private List<OpEvent> sourceList = new ArrayList<>(0);
469 private List<OpEvent> targetList = new ArrayList<>(0);
470
471
472 public Composite getTabTopContainer() {
473 return tabTopContainer;
474 }
475
476 public void setTabTopContainer(Composite tabTopContainer) {
477 this.tabTopContainer = tabTopContainer;
478 }
479
480 /**
481 * Constructor for a subtab. Creates the layout and widgets for its content.
482 * @param parent composite the widgets will be created in
483 * @param counter the associated OprofileCounter object
484 */
485 public CounterSubTab(Composite parent, OprofileCounter counter) {
486 this.counter = counter;
487
488 parent.setLayout(new GridLayout());
489
490 //scrollable composite on top
491 ScrolledComposite scrolledContainer = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
492 scrolledContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
493 GridLayout layout = new GridLayout();
494 layout.marginHeight = 0;
495 layout.marginWidth = 0;
496 scrolledContainer.setLayout(layout);
497 scrolledContainer.setExpandHorizontal(true);
498 scrolledContainer.setExpandVertical(true);
499
500 //composite to contain the rest of the tab
501 Composite tabTopContainer = new Composite(scrolledContainer, SWT.NONE);
502 scrolledContainer.setContent(tabTopContainer);
503 layout = new GridLayout();
504 layout.marginHeight = 0;
505 layout.marginWidth = 0;
506 layout.numColumns = 2;
507 tabTopContainer.setLayout(layout);
508 tabTopContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
509
510 //top cell
511 Composite topCellComp = new Composite(tabTopContainer, SWT.NONE);
512 layout = new GridLayout();
513 layout.marginHeight = 0;
514 layout.marginWidth = 0;
515 layout.numColumns = 2;
516 topCellComp.setLayout(layout);
517 topCellComp.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
518
519 createTopCell(topCellComp);
520
521 createVerticalSpacer(tabTopContainer, 2);
522
523 //left side composite group for eventList
524 Composite eventListComp = new Composite(tabTopContainer, SWT.NONE);
525 layout = new GridLayout();
526 layout.marginHeight = 0;
527 layout.marginWidth = 0;
528 layout.numColumns = 3;
529 eventListComp.setLayout(layout);
530 eventListComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
531 //layoutdata is set later
532
533 createLeftCell(eventListComp);
534
535
536 scrolledTop = scrolledContainer;
537 this.tabTopContainer = tabTopContainer;
538 resizeScrollContainer();
539 }
540
541 /**
542 * Creates the "Enabled" checkbox, and the event description text.
543 * @param parent composite these widgets will be created in
544 */
545 private void createTopCell(Composite parent) {
546 //checkbox
547 enabledCheck = new Button(parent, SWT.CHECK);
548 enabledCheck.setText(OprofileLaunchMessages.getString("tab.event.counterSettings.enabled.button.text")); //$NON-NLS-1$
549 enabledCheck.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
550 enabledCheck.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
551 counter.setEnabled(enabledCheck.getSelection());
552 internalSetEnabledState(counter.getEnabled());
553 updateLaunchConfigurationDialog();
554 }));
555 enabledCheck.setEnabled(false);
556
557 //label for textbox
558 eventDescLabel = new Label(parent, SWT.NONE);
559 eventDescLabel.setText(OprofileLaunchMessages.getString("tab.event.eventDescription.label.text")); //$NON-NLS-1$
560 eventDescLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
561
562 //textbox
563 eventDescText = new Text(parent, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
564 eventDescText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
565 }
566
567 /**
568 * Creates the event list widget.
569 * @param parent composite these widgets will be created in
570 */
571 private void createLeftCell(Composite parent) {
572 // Text box used to filter the event list
573 eventFilterText = new Text(parent, SWT.BORDER | SWT.SINGLE | SWT.ICON_CANCEL | SWT.SEARCH);
574 eventFilterText.setMessage(OprofileLaunchMessages.getString("tab.event.eventfilter.message")); //$NON-NLS-1$
575 GridData eventFilterLayout = new GridData();
576 eventFilterLayout.horizontalAlignment = SWT.FILL;
577 eventFilterLayout.grabExcessHorizontalSpace = true;
578 eventFilterText.setLayoutData(eventFilterLayout);
579 eventFilterText.addModifyListener(e -> eventList.refresh(false));
580
581 // profile user binary and profile kernel
582 createRightCell(parent);
583
584 int options = SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER;
585 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY)) {
586 options |= SWT.MULTI;
587 } else {
588 options |= SWT.SINGLE;
589 }
590 eventList = new ListViewer(parent, options);
591 GridData gdata = new GridData(SWT.FILL, SWT.FILL, true, true);
592 gdata.verticalSpan = 5;
593 eventList.getList().setLayoutData(gdata);
594
595 eventList.setLabelProvider(new LabelProvider(){
596 @Override
597 public String getText(Object element) {
598 OpEvent e = (OpEvent) element;
599 return e.getText();
600 }
601 @Override
602 public Image getImage(Object element) { return null; }
603 @Override
604 public boolean isLabelProperty(Object element, String property) { return false; }
605 });
606
607 eventList.setContentProvider(new IStructuredContentProvider() {
608 @Override
609 public Object[] getElements(Object inputElement) {
610 List<OpEvent> list = (List<OpEvent>)inputElement;
611 return list.toArray();
612 }
613 @Override
614 public void dispose() { }
615 @Override
616 public void inputChanged(Viewer arg0, Object arg1, Object arg2) { }
617 });
618
619 // sorter
620 ListviewerComparator comparator = new ListviewerComparator();
621 eventList.setComparator(comparator);
622
623 //adds the events to the list from the counter
624 sourceList.addAll(Arrays.asList(counter.getValidEvents()));
625 eventList.setInput(sourceList);
626
627 eventList.addSelectionChangedListener(sce -> handleEventListSelectionChange());
628
629 HandleButtonClick listener = new HandleButtonClick();
630 add = new Button(parent, SWT.PUSH);
631 add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
632 add.setText(OprofileLaunchMessages.getString("tab.event.addevent.button.text")); //$NON-NLS-1$
633 add.setData(ADD);
634 add.addListener(SWT.Selection, listener);
635
636 selectedEventList = new ListViewer(parent, options);
637 selectedEventList.getList().setLayoutData(gdata);
638
639
640 selectedEventList.setLabelProvider(new ILabelProvider(){
641 @Override
642 public String getText(Object element) {
643 OpEvent e = (OpEvent) element;
644 return e.getText();
645 }
646 @Override
647 public Image getImage(Object element) { return null; }
648 @Override
649 public void addListener(ILabelProviderListener listener) { }
650 @Override
651 public void dispose() { }
652 @Override
653 public boolean isLabelProperty(Object element, String property) { return false; }
654 @Override
655 public void removeListener(ILabelProviderListener listener) { }
656 });
657
658 selectedEventList.setContentProvider(new IStructuredContentProvider() {
659 @Override
660 public Object[] getElements(Object inputElement) {
661 List<OpEvent> list = (List<OpEvent>)inputElement;
662 return list.toArray();
663 }
664 @Override
665 public void dispose() { }
666 @Override
667 public void inputChanged(Viewer arg0, Object arg1, Object arg2) { }
668 });
669
670 // sorter
671 ListviewerComparator viewerComparator = new ListviewerComparator();
672 selectedEventList.setComparator(viewerComparator);
673
674 //adds the events to the list from the counter
675 if(counter.getEvents().length != 0 && null != counter.getEvents()[0])
676 {
677 targetList.addAll(Arrays.asList(counter.getEvents()));
678 }
679 selectedEventList.setInput(targetList);
680
681 selectedEventList.addSelectionChangedListener(sce -> {
682 handleListSelection(selectedEventList);
683 eventList.getList().deselectAll();
684 updateLaunchConfigurationDialog();
685 });
686
687
688
689
690
691 addAll = new Button(parent, SWT.PUSH);
692 addAll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
693 addAll.setText(OprofileLaunchMessages.getString("tab.event.addallevent.button.text")); //$NON-NLS-1$
694 addAll.setData(ADD_ALL);
695 addAll.addListener(SWT.Selection, listener);
696
697
698 remove = new Button(parent, SWT.PUSH);
699 remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
700 remove.setText(OprofileLaunchMessages.getString("tab.event.removeevent.button.text")); //$NON-NLS-1$
701 remove.setData(REMOVE);
702 remove.addListener(SWT.Selection, listener);
703
704
705 removeAll = new Button(parent, SWT.PUSH);
706 removeAll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
707 removeAll.setText(OprofileLaunchMessages.getString("tab.event.removeallevent.button.text")); //$NON-NLS-1$
708 removeAll.setData(REMOVE_ALL);
709 removeAll.addListener(SWT.Selection, listener);
710
711 customizeBtn = new Button(parent, SWT.PUSH);
712 customizeBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
713 customizeBtn.setText(OprofileLaunchMessages.getString("tab.event.customizeevent.button.text")); //$NON-NLS-1$
714 customizeBtn.addListener(SWT.Selection, listener);
715 customizeBtn.setData(CUSTOMIZE);
716
717
718 }
719
720 /**
721 * Creates the 2 profile space checkboxes, event count and unit mask widget.
722 * @param parent composite these widgets will be created in
723 */
724 private void createRightCell(Composite parent) {
725 //profile kernel checkbox
726 profileKernelCheck = new Button(parent, SWT.CHECK);
727 profileKernelCheck.setText(OprofileLaunchMessages.getString("tab.event.counterSettings.profileKernel.check.text")); //$NON-NLS-1$
728 profileKernelCheck
729 .addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> handleProfileKernelToggle()));
730
731 //profile user checkbox -- should this ever be disabled?
732 profileUserCheck = new Button(parent, SWT.CHECK);
733 profileUserCheck.setText(OprofileLaunchMessages.getString("tab.event.counterSettings.profileUser.check.text")); //$NON-NLS-1$
734 profileUserCheck
735 .addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> handleProfileUserToggle()));
736
737 }
738
739 /**
740 * Creates a text filter for the events list widget
741 */
742 private void createEventsFilter(){
743 // Event Filter
744 ViewerFilter eventFilter = new ViewerFilter() {
745
746 @Override
747 public Object[] filter(Viewer viewer, Object parent, Object[] elements) {
748 Object[] filteredElements = super.filter(viewer,parent,elements);
749 handleEventListSelectionChange();
750 return filteredElements;
751 }
752
753 @Override
754 public boolean select(Viewer viewer, Object parentElement, Object element) {
755 String[] filterTerms = eventFilterText.getText().trim().toLowerCase().split(" "); //$NON-NLS-1$
756 String eventName = ((OpEvent)element).getText().toLowerCase();
757 String eventDescription = ((OpEvent)element).getTextDescription().toLowerCase();
758
759 boolean contains = true;
760
761 for (String filterTerm : filterTerms) {
762 if(contains){
763 contains = eventName.contains(filterTerm) || eventDescription.contains(filterTerm);
764 }
765 }
766 return contains;
767 }
768 };
769 if(eventList != null){
770 eventList.addFilter(eventFilter);
771 }
772 }
773
774 /**
775 * Initializes the tab on first creation.
776 * @param config default configuration for the counter and the associated widgets
777 */
778 public void initializeTab(ILaunchConfiguration config) {
779 //make all controls inactive, since the 'default event' checkbox
780 // is checked by default
781 try {
782 defaultEventCheck.setSelection(config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, true));
783 } catch (CoreException e) {
784 e.printStackTrace();
785 }
786 setEnabledState(false);
787
788 if (config != null) {
789 counter.loadConfiguration(config);
790 }
791
792 boolean enabled = counter.getEnabled();
793 enabledCheck.setSelection(enabled);
794
795 if (counter.getEvents().length == 0 || counter.getEvents()[0] == null) {
796 // Default to first in list
797 counter.setEvents(new OpEvent [] {counter.getValidEvents()[0]});
798 }
799
800 //load default states
801 profileKernelCheck.setSelection(counter.getProfileKernel());
802 profileUserCheck.setSelection(counter.getProfileUser());
803
804 eventDescText.setText(counter.getEvents()[0].getTextDescription());
805
806
807 // add opevent to target event list
808 ArrayList<OpEvent> tmp = new ArrayList<>(Arrays.asList(counter.getEvents()));
809 targetList.addAll(tmp);
810 selectedEventList.add(tmp.toArray());
811 selectedEventList.refresh();
812 selectedEventList.setSelection(new StructuredSelection(tmp.toArray()));
813
814 // remove selected opevent from source list
815
816 sourceList.removeAll(tmp);
817 eventList.remove(tmp.toArray());
818 eventList.refresh();
819 }
820
821 /**
822 * Applies the tab's current state to the launch configuration.
823 * @param config launch config to apply to
824 */
825 public void performApply(ILaunchConfigurationWorkingCopy config) {
826 counter.saveConfiguration(config);
827 }
828
829 /**
830 * Enables/disables the widgets in this tab.
831 * @param state true to enable to the counter's state, false to disable all
832 */
833 public void setEnabledState(boolean state) {
834 enabledCheck.setEnabled(state);
835
836 if (state) {
837 internalSetEnabledState(counter.getEnabled());
838 } else {
839 internalSetEnabledState(false);
840 }
841 }
842
843 /**
844 * Method split from setEnabledState to avoid code duplication.
845 * Not meant to be called directly.
846 * @param state true to enable all widgets, false to disable all widgets
847 */
848 private void internalSetEnabledState(boolean state) {
849 profileKernelCheck.setEnabled(state);
850 profileUserCheck.setEnabled(state);
851 eventDescText.setEnabled(state);
852 eventList.getList().setEnabled(state);
853 selectedEventList.getList().setEnabled(state);
854 eventFilterText.setEnabled(state);
855 add.setEnabled(state);
856 addAll.setEnabled(state);
857 remove.setEnabled(state);
858 removeAll.setEnabled(state);
859 customizeBtn.setEnabled(state);
860
861
862 }
863
864 /**
865 * Handling method for the event list. Gets the selection from the listviewer
866 * and updates the UnitMask and event description text box.
867 */
868 private void handleEventListSelectionChange() {
869 handleListSelection(eventList);
870 int[] indices = eventList.getList().getSelectionIndices();
871 if (indices.length != 0) {
872 customizeBtn.setEnabled(true);
873 // unselected other list element
874 // to keep customize button enable
875 // for both list selection
876 selectedEventList.getList().deselectAll();
877 }
878 updateLaunchConfigurationDialog();
879
880 }
881
882 /**
883 * Generic method for handling source & target selection list
884 * @param eventList - list to be handled
885 * @since 3.0
886 */
887 private void handleListSelection(ListViewer eventList)
888 {
889 setErrorMessage(null);
890 int [] indices = eventList.getList().getSelectionIndices();
891 if (indices.length != 0) {
892 ArrayList<OpEvent> tmp = new ArrayList<> ();
893 for (int index : indices) {
894 OpEvent event = (OpEvent) eventList.getElementAt(index);
895 tmp.add(event);
896 eventDescText.setText(event.getTextDescription());
897
898 }
899
900 // Check the min count to update the error message (events
901 // can have
902 // different minimum reset counts)
903 int min = Integer.MIN_VALUE;
904 for (OpEvent ev : tmp) {
905 // We want the largest of the min values
906 if (ev.getMinCount() > min) {
907 min = ev.getMinCount();
908 }
909 }
910 if(counter.getEvents().length == 0 || counter.getEvents()[0] == null)
911 {
912 counter.setEvents(new OpEvent [] {counter.getValidEvents()[0]});
913 }
914 if ((counter.getCount() < min)
915 && (!defaultEventCheck.getSelection())) {
916 setErrorMessage(getMinCountErrorMessage(min));
917 }
918
919 //counter.setEvents(tmp.toArray(new OpEvent[0]));
920 } else {
921 eventDescText.setText(""); //$NON-NLS-1$
922
923 }
924
925
926
927 }
928
929 /**
930 * Handles the toggling of the "profile user" button.
931 */
932 private void handleProfileUserToggle() {
933 counter.setProfileUser(profileUserCheck.getSelection());
934 updateLaunchConfigurationDialog();
935 }
936
937 /**
938 * Handles the toggling of the "profile kernel" button.
939 */
940 private void handleProfileKernelToggle() {
941 counter.setProfileKernel(profileKernelCheck.getSelection());
942 updateLaunchConfigurationDialog();
943 }
944
945 /**
946 * Handles text modify events in the count text widget.
947 */
948 private void handleCountTextModify() {
949 String errorMessage = null;
950 try {
951
952 // This seems counter-intuitive, but we must save the count
953 // so that isValid knows this launch config is invalid
954 int count = Integer.parseInt(countText.getText());
955 counter.setCount(count);
956
957 // Check minimum count
958 int min = Integer.MIN_VALUE;
959 for (OpEvent event : counter.getEvents()) {
960 // We want the largest of the min values
961 if (event != null && event.getMinCount() > min) {
962 min = event.getMinCount();
963 }
964 }
965 if ((count < min) && (!defaultEventCheck.getSelection())) {
966 errorMessage = getMinCountErrorMessage(min);
967 }
968 } catch (NumberFormatException e) {
969 errorMessage = OprofileLaunchMessages.getString("tab.event.counterSettings.count.invalid"); //$NON-NLS-1$
970 counter.setCount(OprofileDaemonEvent.COUNT_INVALID);
971 } finally {
972 setErrorMessage(errorMessage);
973 updateLaunchConfigurationDialog();
974 }
975 }
976
977 /**
978 * Returns a string with the minimum allowed count, suitable foruse with setErrorMessage().
979 * @param min minimum count
980 * @return a String containing the error message
981 */
982 private String getMinCountErrorMessage(int min) {
983 String msg = OprofileLaunchMessages.getString("tab.event.counterSettings.count.too-small"); //$NON-NLS-1$
984 return MessageFormat.format(msg, Integer.valueOf(min));
985 }
986
987 /**
988 * Changes parameters for the top scrolled composite which makes the scroll bars
989 * appear when content overflows the visible area. Called by the UnitMaskViewer
990 * whenever a new set of unit mask buttons are created, since the number of them is
991 * variable and there is no guarantee as to the default size of the launch configuration
992 * dialog in general.
993 */
994 private void resizeScrollContainer() {
995 scrolledTop.setMinSize(tabTopContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT));
996 }
997
998
999 /**
1000 * This class displays event unit masks via check boxes and appropriate labels.
1001 */
1002 protected class UnitMaskViewer {
1003 private Label unitMaskLabel;
1004 private Composite top;
1005 private Composite maskListComp;
1006 private Button[] unitMaskButtons;
1007
1008 /**
1009 * Constructor, creates the widget.
1010 * @param parent composite the widget will be created in
1011 */
1012 public UnitMaskViewer(Composite parent) {
1013 //"Unit Mask:" label
1014 unitMaskLabel = new Label(parent, SWT.NONE);
1015 unitMaskLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
1016 unitMaskLabel.setText(OprofileLaunchMessages.getString("unitmaskViewer.label.text")); //$NON-NLS-1$
1017 unitMaskLabel.setVisible(true);
1018
1019 //composite to contain the button widgets
1020 Composite top = new Composite(parent, SWT.NONE);
1021 top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
1022 GridLayout layout = new GridLayout();
1023 layout.marginHeight = 0;
1024 layout.marginWidth = 0;
1025 top.setLayout(layout);
1026 this.top = top;
1027
1028 maskListComp = null;
1029 unitMaskButtons = null;
1030 }
1031
1032 /**
1033 * Handles button toggles; updates the counter's unit mask to the appropriate value.
1034 * @param maskButton the button object
1035 * @param index the button's mask index (used in OpUnitMask for a proper mask value)
1036 */
1037 private void handleToggle(Button maskButton, int index) {
1038 OpUnitMask mask = counter.getUnitMask();
1039 if (mask != null) {
1040 if (maskButton.getSelection()) {
1041 mask.setMaskFromIndex(index);
1042 } else {
1043 mask.unSetMaskFromIndex(index);
1044 }
1045 }
1046
1047 //update the parent tab
1048 updateLaunchConfigurationDialog();
1049 }
1050
1051 /**
1052 * Disposes of the old unit mask check list and creates a new one with
1053 * the appropriate default value.
1054 * @param oe the event
1055 */
1056 public void displayEvent(OpEvent oe) {
1057 if (maskListComp != null) {
1058 maskListComp.dispose();
1059 }
1060
1061 if(oe == null){
1062 return;
1063 }
1064
1065
1066 OpUnitMask mask = oe.getUnitMask();
1067 int totalMasks = mask.getNumMasks();
1068
1069 Composite newMaskComp = new Composite(top, SWT.NONE);
1070 newMaskComp.setLayout(new GridLayout());
1071 newMaskComp.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true));
1072 maskListComp = newMaskComp;
1073
1074 //creates these buttons with the default masks
1075 mask.setDefaultMaskValue();
1076
1077 ArrayList<Button> maskButtons = new ArrayList<>();
1078
1079 for (int i = 0; i < totalMasks; i++) {
1080 Button maskButton;
1081
1082 if (mask.getType() == OpUnitMask.INVALID) {
1083 //big problem, most likely parsing went awry or opxml output mangled
1084 OprofileCorePlugin.showErrorDialog("opxmlParse", null); //$NON-NLS-1$
1085 return;
1086 } else if (mask.getType() == OpUnitMask.MANDATORY) {
1087 maskButton = new Button(newMaskComp, SWT.RADIO);
1088 maskButton.setEnabled(false);
1089 maskButton.setText(mask.getText(i));
1090 maskButton.setSelection(true);
1091 } else {
1092 int buttonType;
1093 final int maskButtonIndex = i;
1094 boolean selected = mask.isMaskSetFromIndex(maskButtonIndex);
1095
1096 if (mask.getType() == OpUnitMask.EXCLUSIVE) {
1097 buttonType = SWT.RADIO;
1098 } else { //mask type is OpUnitMask.BITMASK
1099 buttonType = SWT.CHECK;
1100 }
1101
1102 maskButton = new Button(newMaskComp, buttonType);
1103 maskButton.setEnabled(true);
1104 maskButton.setText(mask.getText(i));
1105 maskButton.setSelection(selected);
1106 maskButton.addSelectionListener(SelectionListener
1107 .widgetSelectedAdapter(se -> handleToggle((Button) se.getSource(), maskButtonIndex)));
1108
1109 maskButtons.add(maskButton);
1110 }
1111 }
1112
1113 unitMaskButtons = new Button[maskButtons.size()];
1114 maskButtons.toArray(unitMaskButtons);
1115
1116
1117 resizeUnitMaskContainer();
1118 }
1119
1120 /**
1121 * Enables and disables the viewer for UI input
1122 * @param enabled whether this viewer should be enabled
1123 */
1124 public void setEnabled(boolean enabled) {
1125 if (unitMaskButtons != null) {
1126 for (Button b : unitMaskButtons) {
1127 if (!b.isDisposed()) {
1128 b.setEnabled(enabled);
1129 }
1130 }
1131 }
1132 }
1133 }
1134
1135 /**
1136 * Dialog box for unit mask field modification
1137 * @since 3.0
1138 *
1139 */
1140 protected class UnitMaskDialog extends Dialog {
1141 private OpEvent event;
1142 public UnitMaskDialog(IShellProvider parentShell) {
1143 super(parentShell);
1144 }
1145
1146 public UnitMaskDialog(Shell parentShell,OpEvent event) {
1147 super(parentShell);
1148 this.event = event;
1149 }
1150
1151 @Override
1152 protected Control createDialogArea(Composite parent) {
1153 Composite child = (Composite)super.createDialogArea(parent);
1154 ScrolledComposite scrolledContainer = new ScrolledComposite(child, SWT.H_SCROLL|SWT.V_SCROLL);
1155 scrolledContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
1156 GridLayout layout = new GridLayout();
1157 layout.marginHeight = 0;
1158 layout.marginWidth = 0;
1159 scrolledContainer.setLayout(layout);
1160 scrolledContainer.setExpandHorizontal(true);
1161 scrolledContainer.setExpandVertical(true);
1162 Composite unitMaskSubComposite = new Composite(scrolledContainer, SWT.None);
1163 unitMaskSubComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
1164 layout = new GridLayout();
1165 layout.numColumns=2;
1166 unitMaskSubComposite.setLayout(layout);
1167 createUnitMaskComponents(unitMaskSubComposite);
1168 scrolledContainer.setContent(unitMaskSubComposite);
1169 CounterSubTab.this.unitmaskScrollComposite = scrolledContainer;
1170 CounterSubTab.this.unitMaskSubComposite = unitMaskSubComposite;
1171 unitMaskViewer.displayEvent(event);
1172 return child;
1173 }
1174
1175 @Override
1176 protected boolean isResizable() {
1177 return true;
1178 }
1179
1180 @Override
1181 protected void configureShell(Shell newShell) {
1182 super.configureShell(newShell);
1183 newShell.setText(event.getText());
1184 newShell.setSize(400, 400);
1185 }
1186 }
1187
1188
1189 private void createUnitMaskComponents(Composite parent)
1190 {
1191 //event count label/text
1192 countTextLabel = new Label(parent, SWT.NONE);
1193 countTextLabel.setText(OprofileLaunchMessages.getString("tab.event.counterSettings.count.label.text")); //$NON-NLS-1$
1194 countText = new Text(parent, SWT.SINGLE | SWT.BORDER);
1195 countText.setText(Integer.toString(counter.getCount()));
1196 countText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
1197 countText.addModifyListener(me -> handleCountTextModify());
1198
1199 //unit mask widget
1200 Composite unitMaskComp = new Composite(parent, SWT.NONE);
1201 GridLayout layout = new GridLayout();
1202 layout.marginHeight = 0;
1203 layout.marginWidth = 0;
1204 unitMaskComp.setLayout(layout);
1205 unitMaskComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
1206
1207 unitMaskViewer = new UnitMaskViewer(unitMaskComp);
1208 }
1209 private void resizeUnitMaskContainer() {
1210 unitmaskScrollComposite.setMinSize(unitMaskSubComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
1211 }
1212
1213 /**
1214 * Events selection/removal button listener
1215 * @since 3.0
1216 *
1217 */
1218 protected class HandleButtonClick implements Listener {
1219
1220 @Override
1221 public void handleEvent(Event event) {
1222 int btn_value = (Integer) event.widget.getData();
1223 switch (btn_value) {
1224 case ADD:
1225 addButtonClicked();
1226 updateLaunchConfigurationDialog();
1227 break;
1228 case ADD_ALL:
1229 addAllButtonClicked();
1230 updateLaunchConfigurationDialog();
1231 break;
1232 case REMOVE:
1233 removeButtonClicked();
1234 updateLaunchConfigurationDialog();
1235 break;
1236 case REMOVE_ALL:
1237 removeAllButtonClicked();
1238 updateLaunchConfigurationDialog();
1239 break;
1240 case CUSTOMIZE:
1241 customizeButtonClicked();
1242 break;
1243 default:
1244 break;
1245 }
1246
1247 }
1248
1249 private void addButtonClicked() {
1250 int[] indices = eventList.getList().getSelectionIndices();
1251 if (indices.length != 0) {
1252 ArrayList<OpEvent> tmp = new ArrayList<>();
1253 for (int index : indices) {
1254 OpEvent event = (OpEvent) eventList.getElementAt(index);
1255 tmp.add(event);
1256 }
1257 // add to target list
1258 targetList.addAll(tmp);
1259 selectedEventList.add(tmp.toArray());
1260
1261 sourceList.removeAll(tmp);
1262 eventList.remove(tmp.toArray());
1263
1264 int count = selectedEventList.getList().getItemCount();
1265 tmp = new ArrayList<>();
1266 for (int i = 0; i < count; i++) {
1267 OpEvent event = (OpEvent) selectedEventList
1268 .getElementAt(i);
1269 tmp.add(event);
1270
1271 }
1272 if (!tmp.isEmpty())
1273 counter.setEvents(tmp.toArray(new OpEvent[0]));
1274
1275 eventList.refresh();
1276 selectedEventList.refresh();
1277
1278
1279 }
1280 }
1281
1282 private void addAllButtonClicked() {
1283 int count = eventList.getList().getItemCount();
1284 ArrayList<OpEvent> tmp = new ArrayList<>();
1285 for (int i = 0; i < count; i++) {
1286 OpEvent event = (OpEvent) eventList.getElementAt(i);
1287 tmp.add(event);
1288
1289 }
1290
1291 targetList.addAll(tmp);
1292 selectedEventList.add(tmp.toArray());
1293 eventList.remove(tmp.toArray());
1294 sourceList.removeAll(tmp);
1295
1296 count = selectedEventList.getList().getItemCount();
1297 tmp = new ArrayList<>();
1298 for (int i = 0; i < count; i++) {
1299 OpEvent event = (OpEvent) selectedEventList.getElementAt(i);
1300 tmp.add(event);
1301
1302 }
1303 if (!tmp.isEmpty())
1304 counter.setEvents(tmp.toArray(new OpEvent[0]));
1305
1306 eventList.refresh();
1307 selectedEventList.refresh();
1308
1309
1310 }
1311
1312 private void removeButtonClicked() {
1313 int[] indices = selectedEventList.getList()
1314 .getSelectionIndices();
1315 if (indices.length != 0) {
1316 ArrayList<OpEvent> tmp = new ArrayList<>();
1317 for (int index : indices) {
1318 OpEvent event = (OpEvent) selectedEventList
1319 .getElementAt(index);
1320 tmp.add(event);
1321 }
1322 // add to target list
1323 sourceList.addAll(tmp);
1324 eventList.add(tmp.toArray());
1325
1326 targetList.removeAll(tmp);
1327 selectedEventList.remove(tmp.toArray());
1328
1329 int count = selectedEventList.getList().getItemCount();
1330 tmp = new ArrayList<>();
1331 for (int i = 0; i < count; i++) {
1332 OpEvent event = (OpEvent) selectedEventList
1333 .getElementAt(i);
1334 tmp.add(event);
1335
1336 }
1337 if (!tmp.isEmpty())
1338 counter.setEvents(tmp.toArray(new OpEvent[0]));
1339 else
1340 // add first valid element to counter due to NPE
1341 counter.setEvents(new OpEvent[]{counter.getValidEvents()[0]});
1342
1343 eventList.refresh();
1344 selectedEventList.refresh();
1345
1346 }
1347 }
1348
1349 private void removeAllButtonClicked() {
1350
1351 int count = selectedEventList.getList().getItemCount();
1352 ArrayList<OpEvent> tmp = new ArrayList<>();
1353 for (int i = 0; i < count; i++) {
1354 OpEvent event = (OpEvent) selectedEventList.getElementAt(i);
1355 tmp.add(event);
1356
1357 }
1358
1359 if (!tmp.isEmpty()) {
1360 sourceList.addAll(tmp);
1361 eventList.add(tmp.toArray());
1362
1363 selectedEventList.remove(tmp.toArray());
1364 targetList.removeAll(tmp);
1365
1366 }
1367 counter.setEvents(new OpEvent[] { counter.getValidEvents()[0] });
1368
1369 eventList.refresh();
1370 selectedEventList.refresh();
1371
1372 }
1373
1374 private void customizeButtonClicked() {
1375 UnitMaskDialog d = null;
1376
1377 if(eventList.getList().getSelectionIndex() != -1)
1378 {
1379 d = new UnitMaskDialog(Display.getCurrent()
1380 .getActiveShell(),
1381 (OpEvent) eventList.getElementAt(eventList.getList()
1382 .getSelectionIndex()));
1383 }
1384 else if(selectedEventList.getList().getSelectionIndex() != -1)
1385 {
1386 d = new UnitMaskDialog(Display.getCurrent()
1387 .getActiveShell(),
1388 (OpEvent) selectedEventList.getElementAt(selectedEventList.getList()
1389 .getSelectionIndex()));
1390 }
1391 if(d != null)
1392 d.open();
1393 }
1394
1395 }
1396 }
1397
1398 /**
1399 *
1400 * Event sorting for selected as well as all available events
1401 * @since 3.0
1402 */
1403 protected class ListviewerComparator extends ViewerComparator
1404 {
1405 @Override
1406 public int compare(Viewer viewer, Object e1, Object e2) {
1407 OpEvent op1 = (OpEvent) e1;
1408 OpEvent op2 = (OpEvent) e2;
1409 String op1txt = op1.getText();
1410 String op2txt = op2.getText();
1411 if(op1txt !=null && op2txt !=null && op1txt.trim().length() !=0 && op2txt.trim().length() !=0)
1412 return getComparator().compare(op1txt, op2txt);
1413 return super.compare(viewer, e1, e2);
1414 }
1415 }
1416 }
+0
-95
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/EventConfigCache.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
14
15 import java.util.HashMap;
16
17 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
18
19 /**
20 * Cache class for event configuration. Currently only used to cache the results
21 * of an `opxml check-event ..` run, since the isValid() method in the EventConfigTab
22 * needlessly spawns opxml dozens of times with the same values. Note that multiple
23 * checks of the same value will necessarily return the same result (for a given
24 * processor) so there is no worry of an invalid cache entry.
25 */
26 public class EventConfigCache {
27 //a cache entry for an event check, used as the hashmap key
28 static class CheckEventEntry {
29 public Integer counterNum, maskValue;
30 public String eventName;
31
32 public CheckEventEntry(int counterNum, String eventName, int maskValue) {
33 this.counterNum = Integer.valueOf(counterNum);
34 this.eventName = eventName;
35 this.maskValue = Integer.valueOf(maskValue);
36 }
37
38 @Override
39 public boolean equals(Object obj) {
40 if (obj instanceof CheckEventEntry) {
41 CheckEventEntry other = (CheckEventEntry)obj;
42 return (counterNum.equals(other.counterNum) && eventName.equals(other.eventName) && maskValue.equals(other.maskValue));
43 } else {
44 return false;
45 }
46 }
47
48 @Override
49 public int hashCode() {
50 int prime = 11, result = 3;
51 result = prime*result + counterNum.hashCode();
52 result = prime*result + eventName.hashCode();
53 result = prime*result + maskValue.hashCode();
54 return result;
55 }
56 }
57
58 HashMap<CheckEventEntry, Boolean> validEventCache;
59
60 /**
61 * Default constructor, creates an empty cache.
62 */
63 public EventConfigCache() {
64 validEventCache = new HashMap<>();
65 }
66
67 /**
68 * Method to be used to check the validity of an event. Will check
69 * the cache for the result of a previous check of the same values,
70 * or otherwise will spawn opxml to check properly.
71 * @param counter counter number
72 * @param event event name
73 * @param mask unit mask value
74 * @return true or false, depending if the event config is valid
75 */
76 public boolean checkEvent(int counter, String event, int mask) {
77 CheckEventEntry e = new CheckEventEntry(counter, event, mask);
78 Boolean result = null;
79
80 result = validEventCache.get(e);
81
82 if (result == null) {
83 //not in the map, get its value and add it in
84 result = Oprofile.checkEvent(counter, event, mask);
85
86 //possible to be null if there is no opxmlProvider
87 if (result != null) {
88 validEventCache.put(e, result);
89 }
90 }
91
92 return (result == null ? false : result);
93 }
94 }
+0
-185
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/LaunchOptions.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
15
16 import org.eclipse.core.filesystem.IFileStore;
17 import org.eclipse.core.resources.IProject;
18 import org.eclipse.core.runtime.CoreException;
19 import org.eclipse.debug.core.ILaunchConfiguration;
20 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
21 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
22 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
23 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
24 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
25 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
26 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
27
28 /**
29 * This class wraps OProfile's global launch options for the
30 * Eclipse launcher facility.
31 */
32 public class LaunchOptions {
33 // The launch options for the daemon
34 private OprofileDaemonOptions options;
35 private String oprofileComboText;
36 private int executionsNumber;
37
38 public LaunchOptions() {
39 options = new OprofileDaemonOptions();
40 oprofileComboText = OprofileProject.OPERF_BINARY;
41 executionsNumber = 1;
42 }
43
44 /**
45 * Determines whether the global oprofile options represented by this
46 * object are valid
47 * @return whether the options are valid
48 */
49 public boolean isValid() {
50 IRemoteFileProxy proxy = null;
51 try {
52 proxy = RemoteProxyManager.getInstance().getFileProxy(getOprofileProject());
53 } catch (CoreException e) {
54 e.printStackTrace();
55 }
56 // The only point of contention is whether the specified vmlinux *file* exists.
57 String fn = options.getKernelImageFile();
58 if (fn != null && fn.length() > 0) {
59 IFileStore fileStore = proxy.getResource(options.getKernelImageFile());
60 return (fileStore.fetchInfo().exists() && !fileStore.fetchInfo().isDirectory());
61 }
62
63 return true;
64 }
65
66 /**
67 * Get project to profile
68 * @return IProject project to profile
69 */
70 protected IProject getOprofileProject(){
71 return Oprofile.OprofileProject.getProject();
72 }
73
74 /**
75 * Saves the global options of this object into the specified launch
76 * configuration
77 * @param config the launch configuration
78 */
79 public void saveConfiguration(ILaunchConfigurationWorkingCopy config) {
80 config.setAttribute(OprofileLaunchPlugin.ATTR_KERNEL_IMAGE_FILE, options.getKernelImageFile());
81 config.setAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, options.getSeparateProfilesMask());
82 config.setAttribute(OprofileLaunchPlugin.ATTR_EXECUTIONS_NUMBER, getExecutionsNumber());
83 config.setAttribute(OprofileLaunchPlugin.ATTR_OPROFILE_COMBO_TEXT, getOprofileComboText());
84 OprofileProject.setProfilingBinary(getOprofileComboText());
85 }
86
87 /**
88 * Loads this object with the global options in the given launch
89 * configuration
90 * @param config the launch configuration
91 */
92 public void loadConfiguration(ILaunchConfiguration config) {
93 try {
94 options.setKernelImageFile(config.getAttribute(OprofileLaunchPlugin.ATTR_KERNEL_IMAGE_FILE, "")); //$NON-NLS-1$
95 options.setSeparateProfilesMask(config.getAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, OprofileDaemonOptions.SEPARATE_NONE));
96 setExecutionsNumber(config.getAttribute(OprofileLaunchPlugin.ATTR_EXECUTIONS_NUMBER, 1));
97 setOprofileComboText(config.getAttribute(OprofileLaunchPlugin.ATTR_OPROFILE_COMBO_TEXT, OprofileProject.OPERF_BINARY));
98 } catch (CoreException e) {
99 }
100 }
101
102 /**
103 * Get the daemon launch options
104 * @return the OprofileDaemonOption
105 */
106 public OprofileDaemonOptions getOprofileDaemonOptions() {
107 return options;
108 }
109
110 /**
111 * Method getKernelImageFile.
112 * @return the kernel image file
113 */
114 public String getKernelImageFile() {
115 return options.getKernelImageFile();
116 }
117
118 /**
119 * Sets the kernel image file
120 * @param image the kernel image file
121 */
122 public void setKernelImageFile(String image) {
123 options.setKernelImageFile(image);
124 }
125
126 /**
127 * Method getSeparateSamples.
128 * @return whether and how to separate samples for each distinct application
129 */
130 public int getSeparateSamples() {
131 return options.getSeparateProfilesMask();
132 }
133
134 /**
135 * Sets whether/how to collect separate samples for each distinct application
136 * @param how one of SEPARATE_{NONE, LIBRARY, KERNEL, THREAD, CPU}
137 */
138 public void setSeparateSamples(int how) {
139 options.setSeparateProfilesMask(how);
140 }
141
142 /**
143 * Returns the path of the binary to profile.
144 * @return the full path to the binary being profile
145 */
146 public String getBinaryImage() {
147 return options.getBinaryImage();
148 }
149
150 /**
151 * Sets the binary to profile in this launch.
152 * @param image string of the full path to the binary
153 */
154 public void setBinaryImage(String image) {
155 options.setBinaryImage(image);
156 }
157
158 public int getExecutionsNumber() {
159 return executionsNumber;
160 }
161
162 public void setExecutionsNumber(int executionsNumber) {
163 this.executionsNumber = executionsNumber;
164 }
165
166 /**
167 * Gets OProfile combo box text regarding the binary
168 * opcontrol or operf
169 * @since 2.1
170 */
171 public String getOprofileComboText() {
172 return oprofileComboText;
173 }
174
175 /**
176 * Sets OProfile combo box text regarding the binary
177 * opcontrol or operf
178 * @since 2.1
179 */
180 public void setOprofileComboText(String oprofileComboText) {
181 this.oprofileComboText = oprofileComboText;
182 }
183
184 }
+0
-300
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/OprofileCounter.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com>
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
15
16 import java.text.MessageFormat;
17 import java.util.ArrayList;
18 import java.util.List;
19
20 import org.eclipse.core.runtime.CoreException;
21 import org.eclipse.debug.core.ILaunchConfiguration;
22 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
23 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
24 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
25 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask;
26 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonEvent;
27 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchMessages;
28 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
29
30 /**
31 * This class represents an oprofile runtime configuration of a counter. It is
32 * used to construct arguments for launching op_start on the host. It
33 * simply wraps OprofileDaemonEvent.
34 */
35 public class OprofileCounter {
36 private static final String COUNTER_STRING = OprofileLaunchMessages.getString("oprofileCounter.counterString"); //$NON-NLS-1$
37
38 // The counter number
39 private int number;
40
41 // Is this counter enabled?
42 private boolean _enabled;
43
44 // The event(s) to collect on this counter
45 private OprofileDaemonEvent[] daemonEvent;
46
47 // List of valid events on this counter
48 private OpEvent[] eventList = null;
49
50 /**
51 * Constructor for OprofileCounter.
52 * @param nr the counter number
53 */
54 public OprofileCounter(int nr) {
55 this(nr, Oprofile.getEvents(nr));
56 }
57
58 /**
59 * Constructor for OprofileCounter.
60 * @param nr the counter number
61 * @param events the given events for counter number <code>nr</code>
62 */
63 public OprofileCounter(int nr, OpEvent[] events) {
64 number = nr;
65 _enabled = false;
66 eventList = events;
67 daemonEvent = new OprofileDaemonEvent [] {new OprofileDaemonEvent()};
68 }
69
70 /**
71 * Constructs all of the counters in the given launch configuration.
72 * @param config the launch configuration
73 * @return an array of all counters
74 */
75 public static OprofileCounter[] getCounters(ILaunchConfiguration config) {
76 OprofileCounter[] ctrs = new OprofileCounter[Oprofile.getNumberOfCounters()];
77 for (int i = 0; i < ctrs.length; i++)
78 {
79 ctrs[i] = new OprofileCounter(i);
80 if (config != null)
81 ctrs[i].loadConfiguration(config);
82 }
83
84 return ctrs;
85 }
86
87 /**
88 * Method setEnabled.
89 * @param enabled whether to set this counter as enabled
90 */
91 public void setEnabled(boolean enabled) {
92 this._enabled = enabled;
93 }
94
95 /**
96 * Method setEvent.
97 * @param event the event for this counter
98 */
99 public void setEvents(OpEvent [] events) {
100 OprofileDaemonEvent [] newDaemonEvent = new OprofileDaemonEvent[events.length];
101 for (int i = 0; i < events.length; i++) {
102 if (i > daemonEvent.length - 1) {
103 OprofileDaemonEvent de = new OprofileDaemonEvent();
104 de.setEvent(events[i]);
105 de.setResetCount(daemonEvent[0].getResetCount());
106 newDaemonEvent[i] = de;
107 } else {
108 daemonEvent[i].setEvent(events[i]);
109 newDaemonEvent[i] = daemonEvent[i];
110 }
111 }
112 daemonEvent = newDaemonEvent;
113 }
114
115 /**
116 * Method setProfileKernel.
117 * @param profileKernel whether this counter should count kernel events
118 */
119 public void setProfileKernel(boolean profileKernel) {
120 for (int i = 0; i < daemonEvent.length; i++) {
121 daemonEvent[i].setProfileKernel(profileKernel);
122 }
123 }
124
125 /**
126 * Method setProfileUser.
127 * @param profileUser whether this counter should count user events
128 */
129 public void setProfileUser(boolean profileUser) {
130 for (int i = 0; i < daemonEvent.length; i++) {
131 daemonEvent[i].setProfileUser(profileUser);
132 }
133 }
134
135 /**
136 * Method setCount.
137 * @param count the number of events between samples for this counter
138 */
139 public void setCount(int count) {
140 for (int i = 0; i < daemonEvent.length; i++) {
141 daemonEvent[i].setResetCount(count);
142 }
143 }
144
145 /**
146 * Saves this counter's configuration into the specified launch
147 * configuration.
148 * @param config the launch configuration
149 */
150 public void saveConfiguration(ILaunchConfigurationWorkingCopy config) {
151 config.setAttribute(OprofileLaunchPlugin.attrConterEnabled(number), _enabled);
152 config.setAttribute(OprofileLaunchPlugin.attrNumberOfEvents(number), daemonEvent.length);
153
154 for (int i = 0; i < daemonEvent.length; i++) {
155 if (daemonEvent[i].getEvent() != null) {
156 config.setAttribute(OprofileLaunchPlugin.attrConterEvent(number, i), daemonEvent[i].getEvent().getText());
157 config.setAttribute(OprofileLaunchPlugin.attrCounterUnitMask(number), daemonEvent[i].getEvent().getUnitMask().getMaskValue());
158 config.setAttribute(OprofileLaunchPlugin.attrCounterUnitMaskName(number), daemonEvent[i].getEvent().getUnitMask().getMaskName());
159 }
160 config.setAttribute(OprofileLaunchPlugin.attrCounterProfileKernel(number), daemonEvent[i].getProfileKernel());
161 config.setAttribute(OprofileLaunchPlugin.attrCounterProfileUser(number), daemonEvent[i].getProfileUser());
162 config.setAttribute(OprofileLaunchPlugin.attrCounterCount(number), daemonEvent[i].getResetCount());
163 }
164 }
165
166 /**
167 * Loads a counter configuration from the specified launch configuration.
168 * @param config the launch configuration
169 */
170 public void loadConfiguration(ILaunchConfiguration config) {
171 try {
172 _enabled = config.getAttribute(OprofileLaunchPlugin.attrConterEnabled(number), false);
173 int numEvents = config.getAttribute(OprofileLaunchPlugin.attrNumberOfEvents(number), 1);
174 daemonEvent = new OprofileDaemonEvent[numEvents];
175
176 for (int i = 0; i < numEvents; i++) {
177 String str = config.getAttribute(OprofileLaunchPlugin.attrConterEvent(number, i), ""); //$NON-NLS-1$
178 int maskValue = config.getAttribute(OprofileLaunchPlugin.attrCounterUnitMask(number), OpUnitMask.SET_DEFAULT_MASK);
179 String maskName = config.getAttribute(OprofileLaunchPlugin.attrCounterUnitMaskName(number), ""); //$NON-NLS-1$
180
181 daemonEvent[i] = new OprofileDaemonEvent();
182 daemonEvent[i].setEvent(eventFromString(str));
183
184 if (daemonEvent[i].getEvent() == null) {
185 continue;
186 }
187
188 daemonEvent[i].getEvent().getUnitMask().setMaskValue(maskValue);
189 daemonEvent[i].getEvent().getUnitMask().setMaskName(maskName);
190 daemonEvent[i].setProfileKernel(config.getAttribute(OprofileLaunchPlugin.attrCounterProfileKernel(number), false));
191 daemonEvent[i].setProfileUser(config.getAttribute(OprofileLaunchPlugin.attrCounterProfileUser(number), false));
192
193 daemonEvent[i].setResetCount(config.getAttribute(OprofileLaunchPlugin.attrCounterCount(number), OprofileDaemonEvent.COUNT_UNINITIALIZED));
194 }
195 } catch (CoreException ce) {
196
197 }
198 }
199
200 public OpUnitMask getUnitMask() {
201 OpEvent event = daemonEvent[0].getEvent();
202
203 if (event != null) {
204 return event.getUnitMask();
205 } else {
206 return null;
207 }
208 }
209
210 /**
211 * Returns a textual label for this counter (used by UI)
212 * @return the label to use in widgets referring to this counter
213 */
214 public String getText() {
215 return MessageFormat.format(COUNTER_STRING, Integer.valueOf(number));
216 }
217
218 /**
219 * Method getNumber.
220 * @return the counter's number
221 */
222 public int getNumber() {
223 return number;
224 }
225
226 /**
227 * Method getEnabled.
228 * @return whether this counter is enabled
229 */
230 public boolean getEnabled() {
231 return _enabled;
232 }
233
234 /**
235 * Method getEvent.
236 * @return the event for this counter
237 */
238 public OpEvent [] getEvents() {
239 List<OpEvent> res = new ArrayList<> ();
240 for (OprofileDaemonEvent de : daemonEvent) {
241 res.add(de.getEvent());
242 }
243 return res.toArray(new OpEvent[0]);
244 }
245
246 /**
247 * Method getProfileKernel.
248 * @return whether this counter is counting kernel events
249 */
250 public boolean getProfileKernel() {
251 return daemonEvent[0].getProfileKernel();
252 }
253
254 /**
255 * Method getProfileUser.
256 * @return whether this counter is counting user events
257 */
258 public boolean getProfileUser() {
259 return daemonEvent[0].getProfileUser();
260 }
261
262 /**
263 * Method getCount.
264 * @return the number of events between samples for this counter
265 */
266 public int getCount() {
267 return daemonEvent[0].getResetCount();
268 }
269
270 /**
271 * Method getValidEvents.
272 * @return an array of all events that this counter can monitor
273 */
274 public OpEvent[] getValidEvents() {
275 return eventList;
276 }
277
278 /**
279 * Gets the daemon event configuration for this counter.
280 * <B>Not</B> valid if this counter is not enabled!
281 * @return the OprofileDaemonEvent
282 */
283 public OprofileDaemonEvent [] getDaemonEvents() {
284 return daemonEvent;
285 }
286
287 // Returns the event with the same label as the parameter STR
288 private OpEvent eventFromString(String str) {
289 if (eventList != null) {
290 for (int i = 0; i < eventList.length; i++) {
291 if (eventList[i].getText().equals(str))
292 return eventList[i];
293 }
294 }
295
296 return null;
297 }
298 }
299
+0
-69
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/OprofileEventConfigTab.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
15
16 import org.eclipse.core.resources.IProject;
17 import org.eclipse.debug.core.ILaunchConfiguration;
18 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
19 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
20
21 /**
22 * Thic class represents the event configuration tab of the launcher dialog.
23 * It supplies all functionality dependent on opcontrol and having root access.
24 */
25 public class OprofileEventConfigTab extends AbstractEventConfigTab {
26
27 @Override
28 protected boolean getOprofileTimerMode() {
29 return Oprofile.getTimerMode();
30 }
31
32 @Override
33 public OprofileCounter getOprofileCounter(int i) {
34 return new OprofileCounter(i);
35 }
36
37 @Override
38 protected OprofileCounter[] getOprofileCounters(ILaunchConfiguration config) {
39 return OprofileCounter.getCounters(config);
40 }
41
42 @Override
43 protected int getNumberOfOprofileCounters() {
44 return Oprofile.getNumberOfCounters();
45 }
46
47 @Override
48 protected IProject getOprofileProject() {
49 return Oprofile.OprofileProject.getProject();
50 }
51
52 @Override
53 protected void setOprofileProject(IProject project) {
54 Oprofile.OprofileProject.setProject(project);
55 }
56
57 @Override
58 protected void updateOprofileInfo() {
59 Oprofile.updateInfo();
60 }
61
62 @Override
63 protected boolean checkEventSetupValidity(int counter, String name,
64 int maskValue) {
65 return OprofileLaunchPlugin.getCache().checkEvent(counter, name, maskValue);
66 }
67
68 }
+0
-23
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/OprofileLaunchConfigurationTabGroup.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
13
14 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
15 import org.eclipse.linuxtools.profiling.launch.ProfileLaunchConfigurationTabGroup;
16
17 public class OprofileLaunchConfigurationTabGroup extends ProfileLaunchConfigurationTabGroup {
18 @Override
19 public AbstractLaunchConfigurationTab[] getProfileTabs() {
20 return new AbstractLaunchConfigurationTab[] { new OprofileSetupTab(), new OprofileEventConfigTab() };
21 }
22 }
+0
-371
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/configuration/OprofileSetupTab.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.launch.configuration;
14
15 import java.text.MessageFormat;
16 import java.util.ArrayList;
17 import java.util.Arrays;
18 import java.util.List;
19
20 import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
21 import org.eclipse.core.filesystem.IFileStore;
22 import org.eclipse.core.resources.IProject;
23 import org.eclipse.core.resources.ResourcesPlugin;
24 import org.eclipse.core.runtime.CoreException;
25 import org.eclipse.debug.core.ILaunchConfiguration;
26 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
27 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
28 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
29 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
30 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
31 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchMessages;
32 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
33 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
34 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
35 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
36 import org.eclipse.swt.SWT;
37 import org.eclipse.swt.custom.CCombo;
38 import org.eclipse.swt.events.SelectionListener;
39 import org.eclipse.swt.graphics.Image;
40 import org.eclipse.swt.layout.GridData;
41 import org.eclipse.swt.layout.GridLayout;
42 import org.eclipse.swt.widgets.Button;
43 import org.eclipse.swt.widgets.Composite;
44 import org.eclipse.swt.widgets.FileDialog;
45 import org.eclipse.swt.widgets.Label;
46 import org.eclipse.swt.widgets.MessageBox;
47 import org.eclipse.swt.widgets.Shell;
48 import org.eclipse.swt.widgets.Spinner;
49 import org.eclipse.swt.widgets.Text;
50
51 /**
52 * This tab is used by the launcher to configure global oprofile run options.
53 */
54 public class OprofileSetupTab extends AbstractLaunchConfigurationTab {
55
56 protected Text kernelImageFileText;
57 protected CCombo controlCombo;
58
59 protected Button checkSeparateLibrary;
60 protected Button checkSeparateKernel;
61
62 protected LaunchOptions options = null;
63
64 protected Spinner executionsSpinner;
65 protected Label executionsSpinnerLabel;
66
67 private IRemoteFileProxy proxy;
68
69 protected Label kernelLabel;
70
71 @Override
72 public String getName() {
73 return OprofileLaunchMessages.getString("tab.global.name"); //$NON-NLS-1$
74 }
75
76 @Override
77 public boolean isValid(ILaunchConfiguration config) {
78 return options.isValid();
79 }
80
81 @Override
82 public void performApply(ILaunchConfigurationWorkingCopy config) {
83 options.saveConfiguration(config);
84 }
85
86 @Override
87 public void initializeFrom(ILaunchConfiguration config) {
88 String name = ""; //$NON-NLS-1$
89 /*
90 * Update the global OprofileProject object. In many occasions its
91 * value is read, which may produce inconsistencies if it is not
92 * up-to-date.
93 */
94 try {
95 name = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$
96 if (!name.isEmpty()) {
97 IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
98 Oprofile.OprofileProject.setProject(project);
99 }
100 } catch (CoreException e) {
101 // Nothing to do
102 }
103
104 options.loadConfiguration(config);
105 controlCombo.setText(options.getOprofileComboText());
106
107 kernelImageFileText.setText(options.getKernelImageFile());
108 executionsSpinner.setSelection(options.getExecutionsNumber());
109
110 int separate = options.getSeparateSamples();
111
112 if (separate == OprofileDaemonOptions.SEPARATE_NONE) {
113 checkSeparateLibrary.setSelection(false);
114 checkSeparateKernel.setSelection(false);
115 } else {
116 //note that opcontrol will nicely ignore the trailing comma
117 if ((separate & OprofileDaemonOptions.SEPARATE_LIBRARY) != 0)
118 checkSeparateLibrary.setSelection(true);
119 if ((separate & OprofileDaemonOptions.SEPARATE_KERNEL) != 0)
120 checkSeparateKernel.setSelection(true);
121 }
122 enableOptionWidgets();
123 }
124
125 @Override
126 public void setDefaults(ILaunchConfigurationWorkingCopy config) {
127 options = new LaunchOptions();
128 options.saveConfiguration(config);
129 }
130
131 @Override
132 public Image getImage() {
133 return OprofileLaunchPlugin.getImageDescriptor(OprofileLaunchPlugin.ICON_GLOBAL_TAB).createImage();
134 }
135
136 @Override
137 public void createControl(Composite parent) {
138 options = new LaunchOptions();
139
140 Composite top = new Composite(parent, SWT.NONE);
141 setControl(top);
142 top.setLayout(new GridLayout());
143
144 GridData data;
145 GridLayout layout;
146 createVerticalSpacer(top, 1);
147
148 // Create container for kernel image file selection
149 Composite p = new Composite(top, SWT.NONE);
150 layout = new GridLayout();
151 layout.numColumns = 2;
152 layout.marginHeight = 0;
153 layout.marginWidth = 0;
154 p.setLayout(layout);
155 data = new GridData(GridData.FILL_HORIZONTAL);
156 p.setLayoutData(data);
157
158 Label l2 = new Label(p, SWT.NONE);
159 l2.setText(OprofileLaunchMessages.getString("tab.global.select")); //$NON-NLS-1$
160 data = new GridData();
161 data.horizontalSpan = 2;
162 l2.setLayoutData(data);
163
164 controlCombo = new CCombo(p, SWT.DROP_DOWN|SWT.READ_ONLY|SWT.BORDER);
165 List<String> tools = new ArrayList<>(Arrays.asList(OprofileProject.OPERF_BINARY));
166
167 /*
168 * Check if tools are installed. Use whichComand() method from
169 * RuntimeProcessFactory as it considers the LinuxTools Path.
170 */
171 IProject project = getOprofileProject();
172 try {
173 String toolPath = RuntimeProcessFactory.getFactory().whichCommand(OprofileProject.OCOUNT_BINARY, project);
174 // Command found
175 if (!toolPath.equals(OprofileProject.OCOUNT_BINARY)) {
176 tools.add(OprofileProject.OCOUNT_BINARY);
177 }
178 } catch (Exception e) {
179 }
180
181 controlCombo.setItems(tools.toArray(new String [0]));
182 controlCombo.select(0);
183 controlCombo.addModifyListener(mev -> {
184 OprofileProject.setProfilingBinary(controlCombo.getText());
185 options.setOprofileComboText(controlCombo.getText());
186 enableOptionWidgets();
187 updateLaunchConfigurationDialog();
188 });
189 data = new GridData();
190 data.horizontalSpan = 2;
191 controlCombo.setLayoutData(data);
192
193 kernelLabel = new Label(p, SWT.NONE);
194 kernelLabel.setText(OprofileLaunchMessages.getString("tab.global.kernelImage.label.text")); //$NON-NLS-1$
195 kernelLabel.setEnabled(false);
196 data = new GridData();
197 data.horizontalSpan = 2;
198 kernelLabel.setLayoutData(data);
199
200 kernelImageFileText = new Text(p, SWT.SINGLE | SWT.BORDER);
201 data = new GridData(GridData.FILL_HORIZONTAL);
202 kernelImageFileText.setLayoutData(data);
203 kernelImageFileText.addModifyListener(mev -> handleKernelImageFileTextModify(kernelImageFileText));
204
205 Button button = createPushButton(p, OprofileLaunchMessages.getString("tab.global.kernelImage.browse.button.text"), null); //$NON-NLS-1$
206 final Shell shell = top.getShell();
207 button.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> showFileDialog(shell)));
208
209 createVerticalSpacer(top, 1);
210
211 // Create checkbox options container
212 p = new Composite(top, SWT.NONE);
213 layout = new GridLayout();
214 layout.numColumns = 1;
215 layout.marginHeight = 0;
216 layout.marginWidth = 0;
217 p.setLayout(layout);
218 data = new GridData(GridData.FILL_HORIZONTAL);
219 data.horizontalSpan = 2;
220 p.setLayoutData(data);
221
222 checkSeparateLibrary = myCreateCheckButton(p, OprofileLaunchMessages.getString("tab.global.check.separateLibrary.text")); //$NON-NLS-1$
223 checkSeparateKernel = myCreateCheckButton(p, OprofileLaunchMessages.getString("tab.global.check.separateKernel.text")); //$NON-NLS-1$
224
225 //Number of executions spinner
226 Composite executionsComposite = new Composite(top, SWT.NONE);
227 GridLayout gridLayout = new GridLayout(2, false);
228 executionsComposite.setLayout(gridLayout);
229 executionsSpinnerLabel = new Label(executionsComposite, SWT.LEFT);
230 executionsSpinnerLabel.setText(OprofileLaunchMessages.getString("tab.global.executionsNumber.label.text")); //$NON-NLS-1$
231 executionsSpinnerLabel.setToolTipText(OprofileLaunchMessages.getString("tab.global.executionsNumber.label.tooltip")); //$NON-NLS-1$
232 executionsSpinner = new Spinner(executionsComposite, SWT.BORDER);
233 executionsSpinner.setMinimum(1);
234 executionsSpinner.addModifyListener(e -> {
235 options.setExecutionsNumber(executionsSpinner.getSelection());
236 updateLaunchConfigurationDialog();
237 });
238 }
239
240
241
242 // convenience method to create radio buttons with the given label
243 private Button myCreateCheckButton(Composite parent, String label) {
244 final Button b = new Button(parent, SWT.CHECK);
245 b.setText(label);
246 b.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> handleCheckSelected(b)));
247
248 return b;
249 }
250
251 //sets the proper separation mask for sample separation
252 private void handleCheckSelected(Button button) {
253 int oldSeparate = options.getSeparateSamples();
254 int newSeparate = oldSeparate; //initalize
255
256 if (button == checkSeparateLibrary) {
257 if (button.getSelection()) {
258 newSeparate = oldSeparate | OprofileDaemonOptions.SEPARATE_LIBRARY;
259 } else {
260 newSeparate = oldSeparate & ~OprofileDaemonOptions.SEPARATE_LIBRARY;
261 }
262 } else if (button == checkSeparateKernel) {
263 if (button.getSelection()) {
264 newSeparate = oldSeparate | OprofileDaemonOptions.SEPARATE_KERNEL;
265 } else {
266 newSeparate = oldSeparate & ~OprofileDaemonOptions.SEPARATE_KERNEL;
267 }
268 }
269
270 options.setSeparateSamples(newSeparate);
271
272 updateLaunchConfigurationDialog();
273 }
274
275 // handles text modification events for all text boxes in this tab
276 private void handleKernelImageFileTextModify(Text text) {
277 String errorMessage = null;
278 String filename = text.getText();
279
280 if (filename.length() > 0) {
281 try {
282 proxy = RemoteProxyManager.getInstance().getFileProxy(getOprofileProject());
283 } catch (CoreException e) {
284 e.printStackTrace();
285 }
286 IFileStore fileStore = proxy.getResource(filename);
287 if (!fileStore.fetchInfo().exists() || fileStore.fetchInfo().isDirectory()){
288 String msg = OprofileLaunchMessages.getString("tab.global.kernelImage.kernel.nonexistent"); //$NON-NLS-1$
289 errorMessage = MessageFormat.format(msg, filename);
290 }
291
292 //seems odd, but must set it even if it is invalid so that performApply
293 // and isValid work properly
294 options.setKernelImageFile(filename);
295 } else {
296 // no kernel image file
297 options.setKernelImageFile(""); //$NON-NLS-1$
298 }
299
300 // Update dialog and error message
301 setErrorMessage(errorMessage);
302 updateLaunchConfigurationDialog();
303 }
304
305 // Displays a file dialog to allow the user to select the kernel image file
306 private void showFileDialog(Shell shell) {
307 try {
308 proxy = RemoteProxyManager.getInstance().getFileProxy(getOprofileProject());
309 } catch (CoreException e) {
310 e.printStackTrace();
311 }
312
313 FileDialog d = new FileDialog(shell, SWT.OPEN);
314 IFileStore kernel = proxy.getResource(options.getKernelImageFile());
315 if (!kernel.fetchInfo().exists()) {
316 kernel = proxy.getResource("/boot"); //$NON-NLS-1$
317
318 if (!kernel.fetchInfo().exists()) {
319 kernel = proxy.getResource("/"); //$NON-NLS-1$
320 }
321 }
322 d.setFileName(kernel.toString());
323 d.setText(OprofileLaunchMessages.getString("tab.global.selectKernelDialog.text")); //$NON-NLS-1$
324 String newKernel = d.open();
325 if (newKernel != null) {
326 kernel = proxy.getResource(newKernel);
327 if (!kernel.fetchInfo().exists()) {
328 MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.RETRY | SWT.CANCEL);
329 mb.setMessage(OprofileLaunchMessages.getString("tab.global.selectKernelDialog.error.kernelDoesNotExist.text")); //$NON-NLS-1$
330 switch (mb.open()) {
331 case SWT.RETRY:
332 // Ok, it's recursive, but it shouldn't matter
333 showFileDialog(shell);
334 break;
335 default:
336 case SWT.CANCEL:
337 break;
338 }
339 } else {
340 kernelImageFileText.setText(newKernel);
341 }
342 }
343 }
344 // Enable/disable widgets options according to the tool selected.
345 private void enableOptionWidgets() {
346 if (controlCombo.getText().equals(OprofileProject.OCOUNT_BINARY)) {
347 checkSeparateLibrary.setEnabled(false);
348 checkSeparateKernel.setEnabled(false);
349 kernelImageFileText.setEnabled(false);
350 kernelLabel.setEnabled(false);
351 executionsSpinnerLabel.setEnabled(false);
352 executionsSpinner.setEnabled(false);
353 } else {
354 checkSeparateLibrary.setEnabled(false);
355 checkSeparateKernel.setEnabled(false);
356 kernelImageFileText.setEnabled(false);
357 kernelLabel.setEnabled(false);
358 executionsSpinnerLabel.setEnabled(true);
359 executionsSpinner.setEnabled(true);
360 }
361 }
362
363 /**
364 * Get project to profile
365 * @return IProject project to profile
366 */
367 protected IProject getOprofileProject(){
368 return Oprofile.OprofileProject.getProject();
369 }
370 }
+0
-404
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/launching/AbstractOprofileLaunchConfigurationDelegate.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc. and others
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 * Keith Seitz <keiths@redhat.com> - setup code in launch the method, initially
12 * written in the now-defunct OprofileSession class
13 * QNX Software Systems and others - the section of code marked in the launch
14 * method, and the exec method
15 *******************************************************************************/
16 package org.eclipse.linuxtools.internal.oprofile.launch.launching;
17
18 import java.io.BufferedReader;
19 import java.io.File;
20 import java.io.IOException;
21 import java.io.InputStream;
22 import java.io.InputStreamReader;
23 import java.net.URI;
24 import java.net.URISyntaxException;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27
28 import org.eclipse.cdt.debug.core.CDebugUtils;
29 import org.eclipse.cdt.launch.AbstractCLaunchDelegate;
30 import org.eclipse.core.filesystem.EFS;
31 import org.eclipse.core.filesystem.IFileStore;
32 import org.eclipse.core.resources.IProject;
33 import org.eclipse.core.runtime.CoreException;
34 import org.eclipse.core.runtime.IPath;
35 import org.eclipse.core.runtime.IProgressMonitor;
36 import org.eclipse.core.runtime.IStatus;
37 import org.eclipse.core.runtime.Status;
38 import org.eclipse.debug.core.DebugPlugin;
39 import org.eclipse.debug.core.ILaunch;
40 import org.eclipse.debug.core.ILaunchConfiguration;
41 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
42 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
43 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
44 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonEvent;
45 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchMessages;
46 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
47 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.LaunchOptions;
48 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileCounter;
49 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
50 import org.eclipse.linuxtools.internal.oprofile.ui.view.OcountView;
51 import org.eclipse.linuxtools.internal.oprofile.ui.view.OprofileView;
52 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
53 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
54 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
55 import org.eclipse.swt.widgets.Display;
56 import org.eclipse.ui.PartInitException;
57 import org.eclipse.ui.PlatformUI;
58
59 public abstract class AbstractOprofileLaunchConfigurationDelegate extends AbstractCLaunchDelegate {
60 protected ILaunchConfiguration config;
61 private static final String OPROFILE_DATA = "oprofile_data"; //$NON-NLS-1$
62 private static final String OCOUNT_DATA = "ocount_data"; //$NON-NLS-1$
63 private static final String SESSION_DIR = "--session-dir="; //$NON-NLS-1$
64 private static final String OUTPUT_FILE = "--output-file="; //$NON-NLS-1$
65 private static final String EVENTS = "--events="; //$NON-NLS-1$
66 private static final String APPEND = "--append"; //$NON-NLS-1$
67 private static final String OPD_SETUP_EVENT_SEPARATOR = ":"; //$NON-NLS-1$
68 private static final String OPD_SETUP_EVENT_TRUE = "1"; //$NON-NLS-1$
69 private static final String OPD_SETUP_EVENT_FALSE = "0"; //$NON-NLS-1$
70
71 @Override
72 public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
73 this.config = config;
74 Oprofile.OprofileProject.setProject(getProject());
75 LaunchOptions options = new LaunchOptions(); //default options created in the constructor
76 options.loadConfiguration(config);
77 IPath exePath = getExePath(config);
78 options.setBinaryImage(exePath.toOSString());
79 Oprofile.OprofileProject.setProfilingBinary(options.getOprofileComboText());
80
81 /*
82 * Parameters needed for the application under profiling
83 */
84 String appArgs[] = getProgramArgumentsArray(config);
85 String appEnv[] = getEnvironment(config);
86
87 //if daemonEvents null or zero size, the default event will be used
88 OprofileDaemonEvent[] daemonEvents = null;
89 ArrayList<OprofileDaemonEvent> events = new ArrayList<>();
90 if (!config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false)) {
91 //get the events to profile from the counters
92 OprofileCounter[] counters = oprofileCounters(config);
93
94 for (int i = 0; i < counters.length; ++i) {
95 if (counters[i].getEnabled()) {
96 OprofileDaemonEvent[] counterEvents = counters[i].getDaemonEvents();
97 events.addAll(Arrays.asList(counterEvents));
98 }
99 }
100
101 daemonEvents = new OprofileDaemonEvent[events.size()];
102 events.toArray(daemonEvents);
103 }
104
105 /*
106 * this code written by QNX Software Systems and others and was
107 * originally in the CDT under LocalCDILaunchDelegate::RunLocalApplication
108 */
109
110 if (!preExec(options, daemonEvents, launch)) {
111 return;
112 }
113 Process process = null;
114 // Executing operf with the default or specified events,
115 // outputing the profiling data to the project dir/OPROFILE_DATA
116 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY)) {
117
118 String eventsString=null;
119
120 // Event spec: "EVENT:count:mask:profileKernel:profileUser"
121 StringBuilder spec = new StringBuilder();
122 spec.append(EVENTS);
123 boolean isCommaAllowed = false;
124 for (int i=0;i<events.size();i++) {
125 OprofileDaemonEvent event = events.get(i);
126 if(isCommaAllowed) {
127 spec.append(',');
128 }
129 spec.append(event.getEvent().getText());
130 spec.append(OPD_SETUP_EVENT_SEPARATOR);
131 spec.append(event.getResetCount());
132 spec.append(OPD_SETUP_EVENT_SEPARATOR);
133 spec.append(event.getEvent().getUnitMask().getMaskValue());
134 // Some platforms allow EXCLUSIVE masks with same bit value, but
135 // different names and thus, the name is needed when specifying.
136 if (event.getEvent().getUnitMask().getMaskName() != null) {
137 spec.append(OPD_SETUP_EVENT_SEPARATOR);
138 spec.append(event.getEvent().getUnitMask().getMaskName());
139 }
140 spec.append(OPD_SETUP_EVENT_SEPARATOR);
141 spec.append((event.getProfileKernel() ? OPD_SETUP_EVENT_TRUE : OPD_SETUP_EVENT_FALSE));
142 spec.append(OPD_SETUP_EVENT_SEPARATOR);
143 spec.append((event.getProfileUser() ? OPD_SETUP_EVENT_TRUE : OPD_SETUP_EVENT_FALSE));
144 isCommaAllowed = true;
145 }
146 eventsString = spec.toString();
147
148 ArrayList<String> argArray = new ArrayList<>(Arrays.asList(appArgs));
149 // Use remote file proxy to determine data folder since the project may be either local or remote
150 IRemoteFileProxy proxy = RemoteProxyManager.getInstance().getFileProxy(OprofileProject.getProject());
151 IFileStore dataFolder = proxy.getResource(oprofileWorkingDirURI(config).getPath() + IPath.SEPARATOR + OPROFILE_DATA);
152 if(! dataFolder.fetchInfo().exists()) {
153 dataFolder.mkdir(EFS.SHALLOW, null);
154 }
155 argArray.add(0, exePath.toOSString());
156 if (events.size()>0) {
157 argArray.add(0,eventsString);
158 }
159 argArray.add(0, SESSION_DIR + oprofileWorkingDirURI(config).getPath() + IPath.SEPARATOR + OPROFILE_DATA);
160 argArray.add(0, OprofileProject.OPERF_BINARY);
161
162 boolean appended = false;
163 for(int i = 0; i < options.getExecutionsNumber(); i++){
164 /*
165 * If profiling multiple times,
166 * append oprofile results from 2nd execution on.
167 */
168 if (!appended && i!=0) {
169 argArray.add(1, APPEND);
170 appended = true;
171 }
172 String[] arguments = new String[argArray.size()];
173 arguments = argArray.toArray(arguments);
174 try {
175 process = RuntimeProcessFactory.getFactory().exec(arguments, appEnv , OprofileProject.getProject());
176 } catch (IOException e1) {
177 if (process != null)
178 process.destroy();
179 Status status = new Status(IStatus.ERROR, OprofileLaunchPlugin.PLUGIN_ID, OprofileLaunchMessages.getString("oprofilelaunch.error.interrupted_error.status_message")); //$NON-NLS-1$
180 throw new CoreException(status);
181 }
182 DebugPlugin.newProcess( launch, process, renderProcessLabel( exePath.toOSString() ) );
183 try{
184 process.waitFor();
185 } catch (InterruptedException e){
186 if (process != null)
187 process.destroy();
188 Status status = new Status(IStatus.ERROR, OprofileLaunchPlugin.PLUGIN_ID, OprofileLaunchMessages.getString("oprofilelaunch.error.interrupted_error.status_message")); //$NON-NLS-1$
189 throw new CoreException(status);
190 }
191 }
192 }
193
194 // Executing ocount with the default or specified events,
195 // outputing the profiling data to the project dir/OPROFILE_DATA
196 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OCOUNT_BINARY)) {
197 String eventsString=null;
198 // Event spec: "EVENT:count:mask:profileKernel:profileUser"
199 StringBuilder spec = new StringBuilder();
200 spec.append(EVENTS);
201 boolean isCommaAllowed = false;
202 for (int i=0;i<events.size();i++) {
203 OprofileDaemonEvent event = events.get(i);
204 if(isCommaAllowed) {
205 spec.append(',');
206 }
207 spec.append(event.getEvent().getText());
208 spec.append(OPD_SETUP_EVENT_SEPARATOR);
209 spec.append(event.getResetCount());
210 spec.append(OPD_SETUP_EVENT_SEPARATOR);
211 spec.append(event.getEvent().getUnitMask().getMaskValue());
212 spec.append(OPD_SETUP_EVENT_SEPARATOR);
213 spec.append((event.getProfileKernel() ? OPD_SETUP_EVENT_TRUE : OPD_SETUP_EVENT_FALSE));
214 spec.append(OPD_SETUP_EVENT_SEPARATOR);
215 spec.append((event.getProfileUser() ? OPD_SETUP_EVENT_TRUE : OPD_SETUP_EVENT_FALSE));
216 isCommaAllowed = true;
217 }
218 eventsString = spec.toString();
219
220 ArrayList<String> argArray = new ArrayList<>(Arrays.asList(appArgs));
221 argArray.add(0, exePath.toOSString());
222 if (events.size()>0) {
223 argArray.add(0,eventsString);
224 }
225 argArray.add(0, OUTPUT_FILE + oprofileWorkingDirURI(config).getPath() + IPath.SEPARATOR + OCOUNT_DATA);
226 argArray.add(0, OprofileProject.OCOUNT_BINARY);
227
228 String[] arguments = new String[argArray.size()];
229 arguments = argArray.toArray(arguments);
230 try {
231 process = RuntimeProcessFactory.getFactory().exec(arguments, OprofileProject.getProject());
232 } catch (IOException e1) {
233 process.destroy();
234 Status status = new Status(IStatus.ERROR, OprofileLaunchPlugin.PLUGIN_ID, OprofileLaunchMessages.getString("oprofilelaunch.error.interrupted_error.status_message")); //$NON-NLS-1$
235 throw new CoreException(status);
236 }
237 DebugPlugin.newProcess( launch, process, renderProcessLabel( exePath.toOSString() ) );
238 try{
239 process.waitFor();
240
241 // Put the OCount data in a separate view
242 StringBuilder buffer = new StringBuilder();
243 // Use remote file proxy to operate resources since the project may be either local or remote
244 IRemoteFileProxy proxy = RemoteProxyManager.getInstance().getFileProxy(OprofileProject.getProject());
245
246 IFileStore ocountDataStore = proxy.getResource(oprofileWorkingDirURI(config).getPath() +
247 IPath.SEPARATOR + OCOUNT_DATA);
248 try (
249 InputStream is = ocountDataStore.openInputStream(EFS.NONE, monitor);
250 BufferedReader reader = new BufferedReader(new InputStreamReader(is))
251 ) {
252 String s = reader.readLine();
253 String sep_char = ""; //$NON-NLS-1$
254 while (s != null) {
255 buffer.append(s);
256 buffer.append(sep_char);
257 sep_char = "\n"; //$NON-NLS-1$
258 s = reader.readLine();
259 }
260
261 // Open the OCount View and display output from ocount
262 final String text = buffer.toString();
263 Display.getDefault().syncExec(() -> refreshOcountView(text));
264 } catch (IOException e) {
265 // TODO Auto-generated catch block
266 e.printStackTrace();
267 }
268 } catch (InterruptedException e){
269 process.destroy();
270 Status status = new Status(IStatus.ERROR, OprofileLaunchPlugin.PLUGIN_ID, OprofileLaunchMessages.getString("oprofilelaunch.error.interrupted_error.status_message")); //$NON-NLS-1$
271 throw new CoreException(status);
272 }
273 return;
274 }
275
276 postExec(options, daemonEvents, process);
277
278 }
279
280 protected abstract boolean preExec(LaunchOptions options, OprofileDaemonEvent[] daemonEvents, ILaunch launch);
281
282 protected abstract void postExec(LaunchOptions options, OprofileDaemonEvent[] daemonEvents, Process process);
283
284 @Override
285 protected String getPluginID() {
286 return OprofileLaunchPlugin.PLUGIN_ID;
287 }
288
289 //Helper function to refresh the oprofile view. Opens and focuses the view
290 // if it isn't already.
291 protected void refreshOprofileView() {
292 OprofileView view = OprofileUiPlugin.getDefault().getOprofileView();
293 if (view != null) {
294 view.refreshView();
295 } else {
296 try {
297 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(OprofileUiPlugin.ID_OPROFILE_VIEW);
298 } catch (PartInitException e2) {
299 e2.printStackTrace();
300 }
301 OprofileUiPlugin.getDefault().getOprofileView().refreshView();
302 }
303 }
304
305 //Helper function to refresh the ocount view. Opens and focuses the view
306 // if it isn't already.
307 protected void refreshOcountView(String text) {
308 OcountView view = OprofileUiPlugin.getDefault().getOcountView();
309 if (view == null) {
310 try {
311 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(OprofileUiPlugin.ID_OCOUNT_VIEW);
312 } catch (PartInitException e2) {
313 e2.printStackTrace();
314 return;
315 }
316 view = OprofileUiPlugin.getDefault().getOcountView();
317 }
318 view.setText(text);
319 view.refreshView();
320 }
321
322 /* all these functions exist to be overridden by the test class in order to allow launch testing */
323
324 protected IProject oprofileProject(){
325 return Oprofile.OprofileProject.getProject();
326 }
327
328
329 /**
330 * Return the URI of the current working directory from the current
331 * project's file proxy.
332 *
333 * @return URI URI of the working directory.
334 * @throws CoreException
335 */
336 protected URI oprofileWorkingDirURI(ILaunchConfiguration config) throws CoreException{
337 File workingDirectory = this.getWorkingDirectory(config);
338 if(workingDirectory == null){
339 return getProject().getLocationURI();
340 } else {
341 URI uri = null;
342 try {
343 uri = new URI(workingDirectory.getAbsolutePath());
344 } catch (URISyntaxException e) {
345 //Since working directory paths are verified by the launch tab, this exception should never be thrown
346 Status status = new Status(IStatus.ERROR, OprofileCorePlugin.getId(),
347 OprofileLaunchMessages.getString("oprofilelaunch.error.invalidworkingdir.status_message")); //$NON-NLS-1$
348 throw new CoreException(status);
349 }
350 return uri;
351 }
352 }
353
354 protected OprofileCounter[] oprofileCounters(ILaunchConfiguration config){
355 return OprofileCounter.getCounters(config);
356 }
357
358 /**
359 * Runs opcontrol --help. Returns true if there was any output, false
360 * otherwise. Return value can be used to tell if the user successfully
361 * entered a password.
362 * @return true if opcontrol --help was run correctly. False otherwise
363 */
364 protected boolean oprofileStatus() {
365 if (OprofileProject.getProfilingBinary().equals(OprofileProject.OPERF_BINARY)) {
366 try {
367 Process p = RuntimeProcessFactory.getFactory().exec(new String[] { "operf", "--version" }, //$NON-NLS-1$ //$NON-NLS-2$
368 OprofileProject.getProject());
369 return (p != null);
370 } catch (IOException e) {
371 return false;
372 }
373 } else {
374 try {
375 Process p = RuntimeProcessFactory.getFactory().exec(new String[] { "ocount", "--version" }, //$NON-NLS-1$ //$NON-NLS-2$
376 OprofileProject.getProject());
377 return (p != null);
378 } catch (IOException e) {
379 return false;
380 }
381 }
382 }
383
384 protected IProject getProject(){
385 try{
386 return CDebugUtils.verifyCProject(config).getProject();
387 } catch (CoreException e) {
388 e.printStackTrace();
389 }
390 return null;
391 }
392
393 /**
394 *
395 * @param config
396 * @return
397 * @throws CoreException
398 * @since 1.1
399 */
400 protected IPath getExePath(ILaunchConfiguration config) throws CoreException{
401 return CDebugUtils.verifyProgramPath( config );
402 }
403 }
+0
-87
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/launching/OprofileLaunchConfigurationDelegate.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc. and others
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.launch.launching;
13
14 import org.eclipse.core.resources.IProject;
15 import org.eclipse.debug.core.DebugPlugin;
16 import org.eclipse.debug.core.ILaunch;
17 import org.eclipse.debug.core.ILaunchManager;
18 import org.eclipse.debug.core.ILaunchesListener2;
19 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
20 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
21 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
22 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonEvent;
23 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.LaunchOptions;
24 import org.eclipse.swt.widgets.Display;
25
26 public class OprofileLaunchConfigurationDelegate extends AbstractOprofileLaunchConfigurationDelegate {
27
28 @Override
29 protected boolean preExec(LaunchOptions options, OprofileDaemonEvent[] daemonEvents, ILaunch launch) {
30 // set up and launch the oprofile daemon
31 IProject project = getProject();
32 // Set current project to allow using the oprofile path that
33 // was chosen for the project
34 Oprofile.OprofileProject.setProject(project);
35
36 if (!oprofileStatus()) {
37 OprofileCorePlugin.showErrorDialog("opcontrolProvider", null); //$NON-NLS-1$
38 return false;
39 }
40
41 // add a listener for termination of the launch prior to execution of launch
42 ILaunchManager lmgr = DebugPlugin.getDefault().getLaunchManager();
43 lmgr.addLaunchListener(new LaunchTerminationWatcher(launch, options.getExecutionsNumber()));
44 return true;
45 }
46
47 @Override
48 protected void postExec(LaunchOptions options, OprofileDaemonEvent[] daemonEvents, Process process) {
49 // do nothing here since the termination listener already registered will handle everything needed
50 }
51
52 //A class used to listen for the termination of the current launch, and
53 // run some functions when it is finished.
54 class LaunchTerminationWatcher implements ILaunchesListener2 {
55 private ILaunch launch;
56 private int executions;
57 public LaunchTerminationWatcher(ILaunch il, int executions) {
58 launch = il;
59 this.executions = executions;
60 }
61 @Override
62 public void launchesTerminated(ILaunch[] launches) {
63 for (ILaunch l : launches) {
64 /**
65 * Dump samples from the daemon, shut down the daemon, activate the OProfile
66 * view (open it if it isn't already), refresh the view (which parses the
67 * data/ui model and displays it).
68 */
69 if (l.equals(launch) && l.getProcesses().length == executions) {
70 // need to run this in the ui thread otherwise get SWT Exceptions
71 // based on concurrency issues
72 if (!OprofileProject.getProfilingBinary().equals(OprofileProject.OCOUNT_BINARY)) {
73 Display.getDefault().syncExec(() -> refreshOprofileView());
74 }
75 }
76 }
77 }
78 @Override
79 public void launchesAdded(ILaunch[] launches) { /* dont care */}
80 @Override
81 public void launchesChanged(ILaunch[] launches) { /* dont care */ }
82 @Override
83 public void launchesRemoved(ILaunch[] launches) { /* dont care */ }
84 }
85
86 }
+0
-65
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/launching/OprofileLaunchShortcut.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.launch.launching;
13
14 import org.eclipse.cdt.core.model.IBinary;
15 import org.eclipse.core.runtime.CoreException;
16 import org.eclipse.debug.core.ILaunchConfiguration;
17 import org.eclipse.debug.core.ILaunchConfigurationType;
18 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
19 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
20 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.LaunchOptions;
21 import org.eclipse.linuxtools.profiling.launch.ProfileLaunchShortcut;
22
23 /**
24 * A class that takes care of the right-click -> profile with oprofile
25 * shortcut, where the ProfileLaunchShortcut has the logic to automatically
26 * find binaries and create a default launch if one doesn't exist.
27 */
28 public class OprofileLaunchShortcut extends ProfileLaunchShortcut {
29 @Override
30 protected ILaunchConfigurationType getLaunchConfigType() {
31
32 return getLaunchManager().getLaunchConfigurationType(OprofileLaunchPlugin.ID_LAUNCH_PROFILE);
33 }
34
35 /**
36 * Default settings for the OProfile-specific option tabs.
37 */
38 @Override
39 protected void setDefaultProfileAttributes(ILaunchConfigurationWorkingCopy wc) {
40 //default global setup options
41 LaunchOptions options = new LaunchOptions();
42 options.saveConfiguration(wc);
43
44 //default event option
45 wc.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, true);
46 }
47
48 //need to have this here because a saved launch config will have the manual
49 // attribute left over, and a previous manual run will still run manually
50 // even if launched from the non-manual shortcut
51 @Override
52 protected ILaunchConfiguration findLaunchConfiguration(IBinary bin, String mode) {
53 ILaunchConfiguration config = super.findLaunchConfiguration(bin, mode);
54
55 try {
56 ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
57 wc.doSave();
58 } catch (CoreException e) {
59 e.printStackTrace();
60 }
61
62 return config;
63 }
64 }
+0
-84
oprofile/org.eclipse.linuxtools.oprofile.launch/src/org/eclipse/linuxtools/internal/oprofile/launch/oprofilelaunch.properties less more
0 #####################################################################
1 # Copyright (c) 2004, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Keith Seitz <keiths@redhat.com> - initial implementation
11 # Kent Sebastian <ksebasti@redhat.com> -
12 ######################################################################
13 tab.claunch.name=&Application
14 tab.claunch.launchConfig.label.text=C/C++ Launch &Configuration:
15 tab.claunch.launchConfig.button.browse.text=&Browse...
16 tab.claunch.launchConfigDialog.title=Launch Configuration Selection
17 tab.claunch.launchConfigDialog.message=Choose a C/C++ Application Launch Configuration to profile:
18 oprofileCounter.counterString=Counter: {0,number,integer}
19
20 tab.event.name=Events
21 tab.event.counterSettings.label.text=Counter settings
22 tab.event.counterSettings.enabled.button.text=Enabled
23 tab.event.eventDescription.label.text=Event Description:
24 tab.event.counterSettings.profileKernel.check.text=Profile kernel
25 tab.event.counterSettings.profileUser.check.text=Profile user binaries
26 tab.event.counterSettings.count.label.text=Count:
27 tab.event.counterSettings.count.too-small=Minimum count must be at least {0,number,integer}
28 tab.event.counterSettings.count.invalid=Invalid count value, must be an integer
29 tab.event.defaultevent.button.text=Use default event
30 tab.event.counterTab.counterText=Counter
31 tab.event.eventfilter.message=type filter text
32 tab.event.timermode.no.options=OProfile is running in timer mode; no event options can be specified.
33 tab.event.addevent.button.text=Add >
34 tab.event.addallevent.button.text=Add All >
35 tab.event.removeevent.button.text= < Remove
36 tab.event.removeallevent.button.text= < Remove All
37 tab.event.customizeevent.button.text = Customize Event
38 tab.event.validation.msg= Event {0} validation failed
39 tab.event.opcontrol.validation.msg= Events count must be equal or less then number of counter [hardware counter is {0}]
40
41 tab.global.name=Global
42 tab.global.select=Profile with:
43 tab.global.kernelImage.label.text=&Kernel image file (optional):
44 tab.global.kernelImage.kernel.nonexistent=Kernel image \"{0}\" does not exist
45 tab.global.kernelImage.browse.button.text=&Browse...
46 tab.global.selectKernelDialog.text=Select current kernel file
47 tab.global.selectKernelDialog.error.kernelDoesNotExist.text=The selected kernel image file does not exist.
48 tab.global.check.separateLibrary.text=Include dependent shared libraries
49 tab.global.check.separateKernel.text=Include dependent kernel modules (also includes libraries)
50 tab.global.check.separateThread.text=Separate profiles per thread
51 tab.global.check.separateCpu.text=Separate profiles per CPU
52 tab.global.executionsNumber.label.text=Number of executions
53 tab.global.executionsNumber.label.tooltip=Sets the number of times the binary will be executed in order to collect the samples.
54 tab.global.check.manualProfile.text=Manual control of OProfile daemon
55
56 unitmaskViewer.label.text=Unit mask:
57
58 launchshortcut.no_project_error=No project associated with selected element.
59 launchshortcut.errordialog.title=OProfile Launcher
60 launchshortcut.errordialog.no_launch_error=Error: No launch configurations exist for this project.
61
62 launchshortcut.launchselectiondialog.no_project_name=<no name>
63 launchshortcut.launchselectiondialog.title=Profile Configuration Selection
64 launchshortcut.launchselectiondialog.message=Select a profiling launch configuration:
65
66 oprofiledcontroldialog.title=OProfile Control
67 oprofiledcontroldialog.buttons.startdaemon=Start Daemon
68 oprofiledcontroldialog.buttons.stopdaemon=Stop Daemon
69 oprofiledcontroldialog.buttons.refreshview=Refresh View
70 oprofiledcontroldialog.buttons.resetsession=Reset Session
71 oprofiledcontroldialog.buttons.savesession=Save Session
72 oprofiledcontroldialog.feedback.init=Dialog initialized
73 oprofiledcontroldialog.feedback.startdaemon=Started OProfile daemon
74 oprofiledcontroldialog.feedback.stopdaemon=Stopped OProfile daemon
75 oprofiledcontroldialog.feedback.reset=Default session cleared
76 oprofiledcontroldialog.feedback.save=Opening session save dialog..
77 oprofiledcontroldialog.feedback.dumpsamples=Dumping samples..
78 oprofiledcontroldialog.feedback.refreshed=OProfile view refreshed
79
80 oprofiledcontroldialog.post.stopdaemon=Ensuring the OProfile daemon is stopped..
81
82 oprofilelaunch.error.interrupted_error.status_message=The profile execution was interrupted by another thread
83 oprofilelaunch.error.invalidworkingdir.status_message=Invalid working directory
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-28
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.launch.tests</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
+0
-100
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
10 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
12 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
13 org.eclipse.jdt.core.compiler.debug.localVariable=generate
14 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
15 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
16 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
17 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
18 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
19 org.eclipse.jdt.core.compiler.problem.deadCode=warning
20 org.eclipse.jdt.core.compiler.problem.deprecation=warning
21 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
22 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
23 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
24 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
26 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
27 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
28 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
29 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
30 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
31 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
32 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
33 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
34 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
35 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
36 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
37 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
38 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
39 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
40 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
41 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
42 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
43 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
44 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
45 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
46 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
47 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
48 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
49 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
50 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
51 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
52 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
53 org.eclipse.jdt.core.compiler.problem.nullReference=warning
54 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
55 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
56 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
57 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
58 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
59 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
60 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
61 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
62 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
63 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
64 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
65 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
66 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
69 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
70 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
71 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
72 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
73 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
74 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
75 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
76 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
77 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
78 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
79 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
80 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
81 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
82 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
83 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
84 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
85 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
86 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
87 org.eclipse.jdt.core.compiler.problem.unusedImport=error
88 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
89 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
90 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
92 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
93 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
94 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
95 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
96 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
97 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_to_enhanced_for_loop=false
16 sp_cleanup.correct_indentation=false
17 sp_cleanup.format_source_code=false
18 sp_cleanup.format_source_code_changes_only=false
19 sp_cleanup.make_local_variable_final=false
20 sp_cleanup.make_parameters_final=false
21 sp_cleanup.make_private_fields_final=true
22 sp_cleanup.make_type_abstract_if_missing_method=false
23 sp_cleanup.make_variable_declarations_final=true
24 sp_cleanup.never_use_blocks=false
25 sp_cleanup.never_use_parentheses_in_expressions=true
26 sp_cleanup.on_save_use_additional_actions=false
27 sp_cleanup.organize_imports=true
28 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
29 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
33 sp_cleanup.remove_private_constructors=true
34 sp_cleanup.remove_trailing_whitespaces=false
35 sp_cleanup.remove_trailing_whitespaces_all=true
36 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
37 sp_cleanup.remove_unnecessary_casts=true
38 sp_cleanup.remove_unnecessary_nls_tags=false
39 sp_cleanup.remove_unused_imports=false
40 sp_cleanup.remove_unused_local_variables=false
41 sp_cleanup.remove_unused_private_fields=true
42 sp_cleanup.remove_unused_private_members=false
43 sp_cleanup.remove_unused_private_methods=true
44 sp_cleanup.remove_unused_private_types=true
45 sp_cleanup.sort_members=false
46 sp_cleanup.sort_members_all=false
47 sp_cleanup.use_blocks=false
48 sp_cleanup.use_blocks_only_for_return_and_throw=false
49 sp_cleanup.use_parentheses_in_expressions=false
50 sp_cleanup.use_this_for_non_static_field_access=false
51 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
52 sp_cleanup.use_this_for_non_static_method_access=false
53 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.launch.tests
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Require-Bundle:
7 org.junit;bundle-version="4.10.0"
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-ActivationPolicy: lazy
10 Fragment-Host: org.eclipse.linuxtools.oprofile.launch
11 Import-Package: org.eclipse.linuxtools.profiling.tests
12 Bundle-Localization: plugin
13 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.launch.tests
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-8
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.properties,\
4 resources/
5 src.includes = resources/,\
6 about.html
7 individualSourceBundles=true
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2009, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Ui Tests Plug-in
13 bundleProvider=Eclipse Linux Tools
+0
-44
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.launch.tests</artifactId>
21 <version>1.0.0-SNAPSHOT</version>
22 <packaging>eclipse-test-plugin</packaging>
23
24 <name>Linux Tools OProfile Launch Tests Plug-in</name>
25
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.eclipse.tycho</groupId>
30 <artifactId>tycho-surefire-plugin</artifactId>
31 <version>${tycho-version}</version>
32 <configuration>
33 <useUIHarness>true</useUIHarness>
34 <useUIThread>true</useUIThread>
35 <product>org.eclipse.platform.ide</product>
36 <testSuite>org.eclipse.linuxtools.oprofile.launch.tests</testSuite>
37 <testClass>org.eclipse.linuxtools.oprofile.launch.tests.AllLaunchTests</testClass>
38 </configuration>
39 </plugin>
40 </plugins>
41 </build>
42
43 </project>
+0
-593
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/.cproject less more
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?fileVersion 4.0.0?>
2
3 <cproject>
4 <storageModule moduleId="org.eclipse.cdt.core.settings">
5 <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.403427377">
6 <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.403427377" moduleId="org.eclipse.cdt.core.settings" name="Debug">
7 <externalSettings/>
8 <extensions>
9 <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
10 <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
11 <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12 <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13 <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14 </extensions>
15 </storageModule>
16 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17 <configuration artifactName="primeTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.403427377" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18 <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.403427377." name="/" resourcePath="">
19 <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.558427244" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20 <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1359199583" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21 <builder buildPath="${workspace_loc:/primeTest/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.586737917" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22 <tool id="cdt.managedbuild.tool.gnu.archiver.base.2089156823" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23 <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.838879119" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24 <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.2129883685" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25 <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.900612275" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26 </tool>
27 <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.890848790" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
28 <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1566991183" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
29 <option id="gnu.c.compiler.exe.debug.option.debugging.level.733038562" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
30 <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.582042928" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
31 </tool>
32 <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1103748863" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug">
33 <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.720696663" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
34 <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
35 <additionalInput kind="additionalinput" paths="$(LIBS)"/>
36 </inputType>
37 </tool>
38 <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1031198340" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/>
39 <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.711744790" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
40 <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1029709722" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
41 </tool>
42 </toolChain>
43 </folderInfo>
44 </configuration>
45 </storageModule>
46 <storageModule moduleId="scannerConfiguration">
47 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
48 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
49 <buildOutputProvider>
50 <openAction enabled="true" filePath=""/>
51 <parser enabled="true"/>
52 </buildOutputProvider>
53 <scannerInfoProvider id="specsFile">
54 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
55 <parser enabled="true"/>
56 </scannerInfoProvider>
57 </profile>
58 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
59 <buildOutputProvider>
60 <openAction enabled="true" filePath=""/>
61 <parser enabled="true"/>
62 </buildOutputProvider>
63 <scannerInfoProvider id="makefileGenerator">
64 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
65 <parser enabled="true"/>
66 </scannerInfoProvider>
67 </profile>
68 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
69 <buildOutputProvider>
70 <openAction enabled="true" filePath=""/>
71 <parser enabled="true"/>
72 </buildOutputProvider>
73 <scannerInfoProvider id="specsFile">
74 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
75 <parser enabled="true"/>
76 </scannerInfoProvider>
77 </profile>
78 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
79 <buildOutputProvider>
80 <openAction enabled="true" filePath=""/>
81 <parser enabled="true"/>
82 </buildOutputProvider>
83 <scannerInfoProvider id="specsFile">
84 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
85 <parser enabled="true"/>
86 </scannerInfoProvider>
87 </profile>
88 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
89 <buildOutputProvider>
90 <openAction enabled="true" filePath=""/>
91 <parser enabled="true"/>
92 </buildOutputProvider>
93 <scannerInfoProvider id="specsFile">
94 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
95 <parser enabled="true"/>
96 </scannerInfoProvider>
97 </profile>
98 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
99 <buildOutputProvider>
100 <openAction enabled="true" filePath=""/>
101 <parser enabled="true"/>
102 </buildOutputProvider>
103 <scannerInfoProvider id="specsFile">
104 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
105 <parser enabled="true"/>
106 </scannerInfoProvider>
107 </profile>
108 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
109 <buildOutputProvider>
110 <openAction enabled="true" filePath=""/>
111 <parser enabled="true"/>
112 </buildOutputProvider>
113 <scannerInfoProvider id="specsFile">
114 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
115 <parser enabled="true"/>
116 </scannerInfoProvider>
117 </profile>
118 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
119 <buildOutputProvider>
120 <openAction enabled="true" filePath=""/>
121 <parser enabled="true"/>
122 </buildOutputProvider>
123 <scannerInfoProvider id="specsFile">
124 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
125 <parser enabled="true"/>
126 </scannerInfoProvider>
127 </profile>
128 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.403427377;cdt.managedbuild.config.gnu.exe.debug.403427377.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.890848790;cdt.managedbuild.tool.gnu.c.compiler.input.582042928">
129 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
130 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
131 <buildOutputProvider>
132 <openAction enabled="true" filePath=""/>
133 <parser enabled="true"/>
134 </buildOutputProvider>
135 <scannerInfoProvider id="specsFile">
136 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
137 <parser enabled="true"/>
138 </scannerInfoProvider>
139 </profile>
140 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
141 <buildOutputProvider>
142 <openAction enabled="true" filePath=""/>
143 <parser enabled="true"/>
144 </buildOutputProvider>
145 <scannerInfoProvider id="makefileGenerator">
146 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
147 <parser enabled="true"/>
148 </scannerInfoProvider>
149 </profile>
150 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
151 <buildOutputProvider>
152 <openAction enabled="true" filePath=""/>
153 <parser enabled="true"/>
154 </buildOutputProvider>
155 <scannerInfoProvider id="specsFile">
156 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
157 <parser enabled="true"/>
158 </scannerInfoProvider>
159 </profile>
160 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
161 <buildOutputProvider>
162 <openAction enabled="true" filePath=""/>
163 <parser enabled="true"/>
164 </buildOutputProvider>
165 <scannerInfoProvider id="specsFile">
166 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
167 <parser enabled="true"/>
168 </scannerInfoProvider>
169 </profile>
170 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
171 <buildOutputProvider>
172 <openAction enabled="true" filePath=""/>
173 <parser enabled="true"/>
174 </buildOutputProvider>
175 <scannerInfoProvider id="specsFile">
176 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
177 <parser enabled="true"/>
178 </scannerInfoProvider>
179 </profile>
180 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
181 <buildOutputProvider>
182 <openAction enabled="true" filePath=""/>
183 <parser enabled="true"/>
184 </buildOutputProvider>
185 <scannerInfoProvider id="specsFile">
186 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
187 <parser enabled="true"/>
188 </scannerInfoProvider>
189 </profile>
190 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
191 <buildOutputProvider>
192 <openAction enabled="true" filePath=""/>
193 <parser enabled="true"/>
194 </buildOutputProvider>
195 <scannerInfoProvider id="specsFile">
196 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
197 <parser enabled="true"/>
198 </scannerInfoProvider>
199 </profile>
200 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
201 <buildOutputProvider>
202 <openAction enabled="true" filePath=""/>
203 <parser enabled="true"/>
204 </buildOutputProvider>
205 <scannerInfoProvider id="specsFile">
206 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
207 <parser enabled="true"/>
208 </scannerInfoProvider>
209 </profile>
210 </scannerConfigBuildInfo>
211 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.24056498;cdt.managedbuild.config.gnu.exe.release.24056498.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1686021986;cdt.managedbuild.tool.gnu.c.compiler.input.1357248577">
212 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
213 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
214 <buildOutputProvider>
215 <openAction enabled="true" filePath=""/>
216 <parser enabled="true"/>
217 </buildOutputProvider>
218 <scannerInfoProvider id="specsFile">
219 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
220 <parser enabled="true"/>
221 </scannerInfoProvider>
222 </profile>
223 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
224 <buildOutputProvider>
225 <openAction enabled="true" filePath=""/>
226 <parser enabled="true"/>
227 </buildOutputProvider>
228 <scannerInfoProvider id="makefileGenerator">
229 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
230 <parser enabled="true"/>
231 </scannerInfoProvider>
232 </profile>
233 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
234 <buildOutputProvider>
235 <openAction enabled="true" filePath=""/>
236 <parser enabled="true"/>
237 </buildOutputProvider>
238 <scannerInfoProvider id="specsFile">
239 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
240 <parser enabled="true"/>
241 </scannerInfoProvider>
242 </profile>
243 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
244 <buildOutputProvider>
245 <openAction enabled="true" filePath=""/>
246 <parser enabled="true"/>
247 </buildOutputProvider>
248 <scannerInfoProvider id="specsFile">
249 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
250 <parser enabled="true"/>
251 </scannerInfoProvider>
252 </profile>
253 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
254 <buildOutputProvider>
255 <openAction enabled="true" filePath=""/>
256 <parser enabled="true"/>
257 </buildOutputProvider>
258 <scannerInfoProvider id="specsFile">
259 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
260 <parser enabled="true"/>
261 </scannerInfoProvider>
262 </profile>
263 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
264 <buildOutputProvider>
265 <openAction enabled="true" filePath=""/>
266 <parser enabled="true"/>
267 </buildOutputProvider>
268 <scannerInfoProvider id="specsFile">
269 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
270 <parser enabled="true"/>
271 </scannerInfoProvider>
272 </profile>
273 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
274 <buildOutputProvider>
275 <openAction enabled="true" filePath=""/>
276 <parser enabled="true"/>
277 </buildOutputProvider>
278 <scannerInfoProvider id="specsFile">
279 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
280 <parser enabled="true"/>
281 </scannerInfoProvider>
282 </profile>
283 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
284 <buildOutputProvider>
285 <openAction enabled="true" filePath=""/>
286 <parser enabled="true"/>
287 </buildOutputProvider>
288 <scannerInfoProvider id="specsFile">
289 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
290 <parser enabled="true"/>
291 </scannerInfoProvider>
292 </profile>
293 </scannerConfigBuildInfo>
294 </storageModule>
295 <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
296 </cconfiguration>
297 <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.24056498">
298 <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.24056498" moduleId="org.eclipse.cdt.core.settings" name="Release">
299 <externalSettings/>
300 <extensions>
301 <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
302 <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
303 <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
304 <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
305 <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
306 </extensions>
307 </storageModule>
308 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
309 <configuration artifactName="primeTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.24056498" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
310 <folderInfo id="cdt.managedbuild.config.gnu.exe.release.24056498." name="/" resourcePath="">
311 <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.247847873" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
312 <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.2144033541" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
313 <builder buildPath="${workspace_loc:/primeTest/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1815603600" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
314 <tool id="cdt.managedbuild.tool.gnu.archiver.base.514329033" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
315 <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.732737648" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
316 <option id="gnu.cpp.compiler.exe.release.option.optimization.level.1782789072" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
317 <option id="gnu.cpp.compiler.exe.release.option.debugging.level.883245152" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
318 </tool>
319 <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1686021986" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
320 <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1286291976" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
321 <option id="gnu.c.compiler.exe.release.option.debugging.level.74557006" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
322 <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1357248577" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
323 </tool>
324 <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1980307205" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
325 <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1094559692" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
326 <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
327 <additionalInput kind="additionalinput" paths="$(LIBS)"/>
328 </inputType>
329 </tool>
330 <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.906024509" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
331 <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1057582725" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
332 <inputType id="cdt.managedbuild.tool.gnu.assembler.input.592314293" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
333 </tool>
334 </toolChain>
335 </folderInfo>
336 </configuration>
337 </storageModule>
338 <storageModule moduleId="scannerConfiguration">
339 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
340 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
341 <buildOutputProvider>
342 <openAction enabled="true" filePath=""/>
343 <parser enabled="true"/>
344 </buildOutputProvider>
345 <scannerInfoProvider id="specsFile">
346 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
347 <parser enabled="true"/>
348 </scannerInfoProvider>
349 </profile>
350 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
351 <buildOutputProvider>
352 <openAction enabled="true" filePath=""/>
353 <parser enabled="true"/>
354 </buildOutputProvider>
355 <scannerInfoProvider id="makefileGenerator">
356 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
357 <parser enabled="true"/>
358 </scannerInfoProvider>
359 </profile>
360 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
361 <buildOutputProvider>
362 <openAction enabled="true" filePath=""/>
363 <parser enabled="true"/>
364 </buildOutputProvider>
365 <scannerInfoProvider id="specsFile">
366 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
367 <parser enabled="true"/>
368 </scannerInfoProvider>
369 </profile>
370 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
371 <buildOutputProvider>
372 <openAction enabled="true" filePath=""/>
373 <parser enabled="true"/>
374 </buildOutputProvider>
375 <scannerInfoProvider id="specsFile">
376 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
377 <parser enabled="true"/>
378 </scannerInfoProvider>
379 </profile>
380 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
381 <buildOutputProvider>
382 <openAction enabled="true" filePath=""/>
383 <parser enabled="true"/>
384 </buildOutputProvider>
385 <scannerInfoProvider id="specsFile">
386 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
387 <parser enabled="true"/>
388 </scannerInfoProvider>
389 </profile>
390 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
391 <buildOutputProvider>
392 <openAction enabled="true" filePath=""/>
393 <parser enabled="true"/>
394 </buildOutputProvider>
395 <scannerInfoProvider id="specsFile">
396 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
397 <parser enabled="true"/>
398 </scannerInfoProvider>
399 </profile>
400 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
401 <buildOutputProvider>
402 <openAction enabled="true" filePath=""/>
403 <parser enabled="true"/>
404 </buildOutputProvider>
405 <scannerInfoProvider id="specsFile">
406 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
407 <parser enabled="true"/>
408 </scannerInfoProvider>
409 </profile>
410 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
411 <buildOutputProvider>
412 <openAction enabled="true" filePath=""/>
413 <parser enabled="true"/>
414 </buildOutputProvider>
415 <scannerInfoProvider id="specsFile">
416 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
417 <parser enabled="true"/>
418 </scannerInfoProvider>
419 </profile>
420 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.403427377;cdt.managedbuild.config.gnu.exe.debug.403427377.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.890848790;cdt.managedbuild.tool.gnu.c.compiler.input.582042928">
421 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
422 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
423 <buildOutputProvider>
424 <openAction enabled="true" filePath=""/>
425 <parser enabled="true"/>
426 </buildOutputProvider>
427 <scannerInfoProvider id="specsFile">
428 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
429 <parser enabled="true"/>
430 </scannerInfoProvider>
431 </profile>
432 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
433 <buildOutputProvider>
434 <openAction enabled="true" filePath=""/>
435 <parser enabled="true"/>
436 </buildOutputProvider>
437 <scannerInfoProvider id="makefileGenerator">
438 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
439 <parser enabled="true"/>
440 </scannerInfoProvider>
441 </profile>
442 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
443 <buildOutputProvider>
444 <openAction enabled="true" filePath=""/>
445 <parser enabled="true"/>
446 </buildOutputProvider>
447 <scannerInfoProvider id="specsFile">
448 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
449 <parser enabled="true"/>
450 </scannerInfoProvider>
451 </profile>
452 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
453 <buildOutputProvider>
454 <openAction enabled="true" filePath=""/>
455 <parser enabled="true"/>
456 </buildOutputProvider>
457 <scannerInfoProvider id="specsFile">
458 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
459 <parser enabled="true"/>
460 </scannerInfoProvider>
461 </profile>
462 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
463 <buildOutputProvider>
464 <openAction enabled="true" filePath=""/>
465 <parser enabled="true"/>
466 </buildOutputProvider>
467 <scannerInfoProvider id="specsFile">
468 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
469 <parser enabled="true"/>
470 </scannerInfoProvider>
471 </profile>
472 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
473 <buildOutputProvider>
474 <openAction enabled="true" filePath=""/>
475 <parser enabled="true"/>
476 </buildOutputProvider>
477 <scannerInfoProvider id="specsFile">
478 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
479 <parser enabled="true"/>
480 </scannerInfoProvider>
481 </profile>
482 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
483 <buildOutputProvider>
484 <openAction enabled="true" filePath=""/>
485 <parser enabled="true"/>
486 </buildOutputProvider>
487 <scannerInfoProvider id="specsFile">
488 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
489 <parser enabled="true"/>
490 </scannerInfoProvider>
491 </profile>
492 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
493 <buildOutputProvider>
494 <openAction enabled="true" filePath=""/>
495 <parser enabled="true"/>
496 </buildOutputProvider>
497 <scannerInfoProvider id="specsFile">
498 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
499 <parser enabled="true"/>
500 </scannerInfoProvider>
501 </profile>
502 </scannerConfigBuildInfo>
503 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.24056498;cdt.managedbuild.config.gnu.exe.release.24056498.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1686021986;cdt.managedbuild.tool.gnu.c.compiler.input.1357248577">
504 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
505 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
506 <buildOutputProvider>
507 <openAction enabled="true" filePath=""/>
508 <parser enabled="true"/>
509 </buildOutputProvider>
510 <scannerInfoProvider id="specsFile">
511 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
512 <parser enabled="true"/>
513 </scannerInfoProvider>
514 </profile>
515 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
516 <buildOutputProvider>
517 <openAction enabled="true" filePath=""/>
518 <parser enabled="true"/>
519 </buildOutputProvider>
520 <scannerInfoProvider id="makefileGenerator">
521 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
522 <parser enabled="true"/>
523 </scannerInfoProvider>
524 </profile>
525 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
526 <buildOutputProvider>
527 <openAction enabled="true" filePath=""/>
528 <parser enabled="true"/>
529 </buildOutputProvider>
530 <scannerInfoProvider id="specsFile">
531 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
532 <parser enabled="true"/>
533 </scannerInfoProvider>
534 </profile>
535 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
536 <buildOutputProvider>
537 <openAction enabled="true" filePath=""/>
538 <parser enabled="true"/>
539 </buildOutputProvider>
540 <scannerInfoProvider id="specsFile">
541 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
542 <parser enabled="true"/>
543 </scannerInfoProvider>
544 </profile>
545 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
546 <buildOutputProvider>
547 <openAction enabled="true" filePath=""/>
548 <parser enabled="true"/>
549 </buildOutputProvider>
550 <scannerInfoProvider id="specsFile">
551 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
552 <parser enabled="true"/>
553 </scannerInfoProvider>
554 </profile>
555 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
556 <buildOutputProvider>
557 <openAction enabled="true" filePath=""/>
558 <parser enabled="true"/>
559 </buildOutputProvider>
560 <scannerInfoProvider id="specsFile">
561 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
562 <parser enabled="true"/>
563 </scannerInfoProvider>
564 </profile>
565 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
566 <buildOutputProvider>
567 <openAction enabled="true" filePath=""/>
568 <parser enabled="true"/>
569 </buildOutputProvider>
570 <scannerInfoProvider id="specsFile">
571 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
572 <parser enabled="true"/>
573 </scannerInfoProvider>
574 </profile>
575 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
576 <buildOutputProvider>
577 <openAction enabled="true" filePath=""/>
578 <parser enabled="true"/>
579 </buildOutputProvider>
580 <scannerInfoProvider id="specsFile">
581 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
582 <parser enabled="true"/>
583 </scannerInfoProvider>
584 </profile>
585 </scannerConfigBuildInfo>
586 </storageModule>
587 </cconfiguration>
588 </storageModule>
589 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
590 <project id="primeTest.cdt.managedbuild.target.gnu.exe.2060231390" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
591 </storageModule>
592 </cproject>
+0
-81
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>primeTest</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
9 <triggers>clean,full,incremental,</triggers>
10 <arguments>
11 <dictionary>
12 <key>?name?</key>
13 <value></value>
14 </dictionary>
15 <dictionary>
16 <key>org.eclipse.cdt.make.core.append_environment</key>
17 <value>true</value>
18 </dictionary>
19 <dictionary>
20 <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
21 <value>all</value>
22 </dictionary>
23 <dictionary>
24 <key>org.eclipse.cdt.make.core.buildArguments</key>
25 <value></value>
26 </dictionary>
27 <dictionary>
28 <key>org.eclipse.cdt.make.core.buildCommand</key>
29 <value>make</value>
30 </dictionary>
31 <dictionary>
32 <key>org.eclipse.cdt.make.core.buildLocation</key>
33 <value>${workspace_loc:/primeTest/Debug}</value>
34 </dictionary>
35 <dictionary>
36 <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
37 <value>clean</value>
38 </dictionary>
39 <dictionary>
40 <key>org.eclipse.cdt.make.core.contents</key>
41 <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
42 </dictionary>
43 <dictionary>
44 <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
45 <value>false</value>
46 </dictionary>
47 <dictionary>
48 <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
49 <value>true</value>
50 </dictionary>
51 <dictionary>
52 <key>org.eclipse.cdt.make.core.enableFullBuild</key>
53 <value>true</value>
54 </dictionary>
55 <dictionary>
56 <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
57 <value>all</value>
58 </dictionary>
59 <dictionary>
60 <key>org.eclipse.cdt.make.core.stopOnError</key>
61 <value>true</value>
62 </dictionary>
63 <dictionary>
64 <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
65 <value>true</value>
66 </dictionary>
67 </arguments>
68 </buildCommand>
69 <buildCommand>
70 <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
71 <arguments>
72 </arguments>
73 </buildCommand>
74 </buildSpec>
75 <natures>
76 <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
77 <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
78 <nature>org.eclipse.cdt.core.cnature</nature>
79 </natures>
80 </projectDescription>
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/primeTest/primeTest.c less more
0 void
1 PrimeFactors(int n)
2 {
3 int count = 0;
4 int temp = 0;
5 int i = 0;
6 for (i = 1; i <= n; i++)
7 {
8 int j = i - 1;
9 while (j > 1)
10 {
11 if (i % j == 0) //Is PRIME
12 break;
13 else
14 j--;
15 }
16
17 if (j == 1)
18 {
19 if (n % i == 0)
20 {
21 if (i > temp)
22 temp = i;
23 count++;
24 }
25 }
26 }
27 }
28
29 int
30 main()
31 {
32 int a = 35324;
33 PrimeFactors(a);
34 return 0;
35 }
+0
-593
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/.cproject less more
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?fileVersion 4.0.0?>
2
3 <cproject>
4 <storageModule moduleId="org.eclipse.cdt.core.settings">
5 <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1175678966">
6 <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1175678966" moduleId="org.eclipse.cdt.core.settings" name="Debug">
7 <externalSettings/>
8 <extensions>
9 <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
10 <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
11 <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12 <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13 <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14 </extensions>
15 </storageModule>
16 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17 <configuration artifactName="sleepTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1175678966" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18 <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1175678966." name="/" resourcePath="">
19 <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1707235535" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20 <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1214447499" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21 <builder buildPath="${workspace_loc:/sleepTest/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.1027550092" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22 <tool id="cdt.managedbuild.tool.gnu.archiver.base.1529643871" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23 <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.339425130" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24 <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1980513678" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25 <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.587285095" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26 </tool>
27 <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1711527348" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
28 <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.948398850" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
29 <option id="gnu.c.compiler.exe.debug.option.debugging.level.1175577535" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
30 <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1219179977" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
31 </tool>
32 <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.546839158" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug">
33 <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1380471818" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
34 <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
35 <additionalInput kind="additionalinput" paths="$(LIBS)"/>
36 </inputType>
37 </tool>
38 <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1493322213" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/>
39 <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1271920137" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
40 <inputType id="cdt.managedbuild.tool.gnu.assembler.input.2029809829" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
41 </tool>
42 </toolChain>
43 </folderInfo>
44 </configuration>
45 </storageModule>
46 <storageModule moduleId="scannerConfiguration">
47 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
48 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
49 <buildOutputProvider>
50 <openAction enabled="true" filePath=""/>
51 <parser enabled="true"/>
52 </buildOutputProvider>
53 <scannerInfoProvider id="specsFile">
54 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
55 <parser enabled="true"/>
56 </scannerInfoProvider>
57 </profile>
58 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
59 <buildOutputProvider>
60 <openAction enabled="true" filePath=""/>
61 <parser enabled="true"/>
62 </buildOutputProvider>
63 <scannerInfoProvider id="makefileGenerator">
64 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
65 <parser enabled="true"/>
66 </scannerInfoProvider>
67 </profile>
68 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
69 <buildOutputProvider>
70 <openAction enabled="true" filePath=""/>
71 <parser enabled="true"/>
72 </buildOutputProvider>
73 <scannerInfoProvider id="specsFile">
74 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
75 <parser enabled="true"/>
76 </scannerInfoProvider>
77 </profile>
78 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
79 <buildOutputProvider>
80 <openAction enabled="true" filePath=""/>
81 <parser enabled="true"/>
82 </buildOutputProvider>
83 <scannerInfoProvider id="specsFile">
84 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
85 <parser enabled="true"/>
86 </scannerInfoProvider>
87 </profile>
88 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
89 <buildOutputProvider>
90 <openAction enabled="true" filePath=""/>
91 <parser enabled="true"/>
92 </buildOutputProvider>
93 <scannerInfoProvider id="specsFile">
94 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
95 <parser enabled="true"/>
96 </scannerInfoProvider>
97 </profile>
98 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
99 <buildOutputProvider>
100 <openAction enabled="true" filePath=""/>
101 <parser enabled="true"/>
102 </buildOutputProvider>
103 <scannerInfoProvider id="specsFile">
104 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
105 <parser enabled="true"/>
106 </scannerInfoProvider>
107 </profile>
108 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
109 <buildOutputProvider>
110 <openAction enabled="true" filePath=""/>
111 <parser enabled="true"/>
112 </buildOutputProvider>
113 <scannerInfoProvider id="specsFile">
114 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
115 <parser enabled="true"/>
116 </scannerInfoProvider>
117 </profile>
118 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
119 <buildOutputProvider>
120 <openAction enabled="true" filePath=""/>
121 <parser enabled="true"/>
122 </buildOutputProvider>
123 <scannerInfoProvider id="specsFile">
124 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
125 <parser enabled="true"/>
126 </scannerInfoProvider>
127 </profile>
128 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1894586679;cdt.managedbuild.config.gnu.exe.release.1894586679.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1456980182;cdt.managedbuild.tool.gnu.c.compiler.input.1930258097">
129 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
130 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
131 <buildOutputProvider>
132 <openAction enabled="true" filePath=""/>
133 <parser enabled="true"/>
134 </buildOutputProvider>
135 <scannerInfoProvider id="specsFile">
136 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
137 <parser enabled="true"/>
138 </scannerInfoProvider>
139 </profile>
140 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
141 <buildOutputProvider>
142 <openAction enabled="true" filePath=""/>
143 <parser enabled="true"/>
144 </buildOutputProvider>
145 <scannerInfoProvider id="makefileGenerator">
146 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
147 <parser enabled="true"/>
148 </scannerInfoProvider>
149 </profile>
150 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
151 <buildOutputProvider>
152 <openAction enabled="true" filePath=""/>
153 <parser enabled="true"/>
154 </buildOutputProvider>
155 <scannerInfoProvider id="specsFile">
156 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
157 <parser enabled="true"/>
158 </scannerInfoProvider>
159 </profile>
160 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
161 <buildOutputProvider>
162 <openAction enabled="true" filePath=""/>
163 <parser enabled="true"/>
164 </buildOutputProvider>
165 <scannerInfoProvider id="specsFile">
166 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
167 <parser enabled="true"/>
168 </scannerInfoProvider>
169 </profile>
170 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
171 <buildOutputProvider>
172 <openAction enabled="true" filePath=""/>
173 <parser enabled="true"/>
174 </buildOutputProvider>
175 <scannerInfoProvider id="specsFile">
176 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
177 <parser enabled="true"/>
178 </scannerInfoProvider>
179 </profile>
180 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
181 <buildOutputProvider>
182 <openAction enabled="true" filePath=""/>
183 <parser enabled="true"/>
184 </buildOutputProvider>
185 <scannerInfoProvider id="specsFile">
186 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
187 <parser enabled="true"/>
188 </scannerInfoProvider>
189 </profile>
190 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
191 <buildOutputProvider>
192 <openAction enabled="true" filePath=""/>
193 <parser enabled="true"/>
194 </buildOutputProvider>
195 <scannerInfoProvider id="specsFile">
196 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
197 <parser enabled="true"/>
198 </scannerInfoProvider>
199 </profile>
200 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
201 <buildOutputProvider>
202 <openAction enabled="true" filePath=""/>
203 <parser enabled="true"/>
204 </buildOutputProvider>
205 <scannerInfoProvider id="specsFile">
206 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
207 <parser enabled="true"/>
208 </scannerInfoProvider>
209 </profile>
210 </scannerConfigBuildInfo>
211 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1175678966;cdt.managedbuild.config.gnu.exe.debug.1175678966.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1711527348;cdt.managedbuild.tool.gnu.c.compiler.input.1219179977">
212 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
213 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
214 <buildOutputProvider>
215 <openAction enabled="true" filePath=""/>
216 <parser enabled="true"/>
217 </buildOutputProvider>
218 <scannerInfoProvider id="specsFile">
219 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
220 <parser enabled="true"/>
221 </scannerInfoProvider>
222 </profile>
223 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
224 <buildOutputProvider>
225 <openAction enabled="true" filePath=""/>
226 <parser enabled="true"/>
227 </buildOutputProvider>
228 <scannerInfoProvider id="makefileGenerator">
229 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
230 <parser enabled="true"/>
231 </scannerInfoProvider>
232 </profile>
233 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
234 <buildOutputProvider>
235 <openAction enabled="true" filePath=""/>
236 <parser enabled="true"/>
237 </buildOutputProvider>
238 <scannerInfoProvider id="specsFile">
239 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
240 <parser enabled="true"/>
241 </scannerInfoProvider>
242 </profile>
243 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
244 <buildOutputProvider>
245 <openAction enabled="true" filePath=""/>
246 <parser enabled="true"/>
247 </buildOutputProvider>
248 <scannerInfoProvider id="specsFile">
249 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
250 <parser enabled="true"/>
251 </scannerInfoProvider>
252 </profile>
253 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
254 <buildOutputProvider>
255 <openAction enabled="true" filePath=""/>
256 <parser enabled="true"/>
257 </buildOutputProvider>
258 <scannerInfoProvider id="specsFile">
259 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
260 <parser enabled="true"/>
261 </scannerInfoProvider>
262 </profile>
263 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
264 <buildOutputProvider>
265 <openAction enabled="true" filePath=""/>
266 <parser enabled="true"/>
267 </buildOutputProvider>
268 <scannerInfoProvider id="specsFile">
269 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
270 <parser enabled="true"/>
271 </scannerInfoProvider>
272 </profile>
273 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
274 <buildOutputProvider>
275 <openAction enabled="true" filePath=""/>
276 <parser enabled="true"/>
277 </buildOutputProvider>
278 <scannerInfoProvider id="specsFile">
279 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
280 <parser enabled="true"/>
281 </scannerInfoProvider>
282 </profile>
283 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
284 <buildOutputProvider>
285 <openAction enabled="true" filePath=""/>
286 <parser enabled="true"/>
287 </buildOutputProvider>
288 <scannerInfoProvider id="specsFile">
289 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
290 <parser enabled="true"/>
291 </scannerInfoProvider>
292 </profile>
293 </scannerConfigBuildInfo>
294 </storageModule>
295 <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
296 </cconfiguration>
297 <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1894586679">
298 <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1894586679" moduleId="org.eclipse.cdt.core.settings" name="Release">
299 <externalSettings/>
300 <extensions>
301 <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
302 <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
303 <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
304 <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
305 <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
306 </extensions>
307 </storageModule>
308 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
309 <configuration artifactName="sleepTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1894586679" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
310 <folderInfo id="cdt.managedbuild.config.gnu.exe.release.1894586679." name="/" resourcePath="">
311 <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1335316415" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
312 <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1056384912" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
313 <builder buildPath="${workspace_loc:/sleepTest/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1890388296" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
314 <tool id="cdt.managedbuild.tool.gnu.archiver.base.1599654641" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
315 <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.110695799" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
316 <option id="gnu.cpp.compiler.exe.release.option.optimization.level.483218288" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
317 <option id="gnu.cpp.compiler.exe.release.option.debugging.level.1740548907" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
318 </tool>
319 <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1456980182" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
320 <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.564508580" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
321 <option id="gnu.c.compiler.exe.release.option.debugging.level.216318945" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
322 <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1930258097" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
323 </tool>
324 <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1609842259" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
325 <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1263392915" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
326 <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
327 <additionalInput kind="additionalinput" paths="$(LIBS)"/>
328 </inputType>
329 </tool>
330 <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1176128340" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
331 <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1836498428" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
332 <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1282718375" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
333 </tool>
334 </toolChain>
335 </folderInfo>
336 </configuration>
337 </storageModule>
338 <storageModule moduleId="scannerConfiguration">
339 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
340 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
341 <buildOutputProvider>
342 <openAction enabled="true" filePath=""/>
343 <parser enabled="true"/>
344 </buildOutputProvider>
345 <scannerInfoProvider id="specsFile">
346 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
347 <parser enabled="true"/>
348 </scannerInfoProvider>
349 </profile>
350 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
351 <buildOutputProvider>
352 <openAction enabled="true" filePath=""/>
353 <parser enabled="true"/>
354 </buildOutputProvider>
355 <scannerInfoProvider id="makefileGenerator">
356 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
357 <parser enabled="true"/>
358 </scannerInfoProvider>
359 </profile>
360 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
361 <buildOutputProvider>
362 <openAction enabled="true" filePath=""/>
363 <parser enabled="true"/>
364 </buildOutputProvider>
365 <scannerInfoProvider id="specsFile">
366 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
367 <parser enabled="true"/>
368 </scannerInfoProvider>
369 </profile>
370 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
371 <buildOutputProvider>
372 <openAction enabled="true" filePath=""/>
373 <parser enabled="true"/>
374 </buildOutputProvider>
375 <scannerInfoProvider id="specsFile">
376 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
377 <parser enabled="true"/>
378 </scannerInfoProvider>
379 </profile>
380 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
381 <buildOutputProvider>
382 <openAction enabled="true" filePath=""/>
383 <parser enabled="true"/>
384 </buildOutputProvider>
385 <scannerInfoProvider id="specsFile">
386 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
387 <parser enabled="true"/>
388 </scannerInfoProvider>
389 </profile>
390 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
391 <buildOutputProvider>
392 <openAction enabled="true" filePath=""/>
393 <parser enabled="true"/>
394 </buildOutputProvider>
395 <scannerInfoProvider id="specsFile">
396 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
397 <parser enabled="true"/>
398 </scannerInfoProvider>
399 </profile>
400 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
401 <buildOutputProvider>
402 <openAction enabled="true" filePath=""/>
403 <parser enabled="true"/>
404 </buildOutputProvider>
405 <scannerInfoProvider id="specsFile">
406 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
407 <parser enabled="true"/>
408 </scannerInfoProvider>
409 </profile>
410 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
411 <buildOutputProvider>
412 <openAction enabled="true" filePath=""/>
413 <parser enabled="true"/>
414 </buildOutputProvider>
415 <scannerInfoProvider id="specsFile">
416 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
417 <parser enabled="true"/>
418 </scannerInfoProvider>
419 </profile>
420 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1894586679;cdt.managedbuild.config.gnu.exe.release.1894586679.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1456980182;cdt.managedbuild.tool.gnu.c.compiler.input.1930258097">
421 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
422 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
423 <buildOutputProvider>
424 <openAction enabled="true" filePath=""/>
425 <parser enabled="true"/>
426 </buildOutputProvider>
427 <scannerInfoProvider id="specsFile">
428 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
429 <parser enabled="true"/>
430 </scannerInfoProvider>
431 </profile>
432 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
433 <buildOutputProvider>
434 <openAction enabled="true" filePath=""/>
435 <parser enabled="true"/>
436 </buildOutputProvider>
437 <scannerInfoProvider id="makefileGenerator">
438 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
439 <parser enabled="true"/>
440 </scannerInfoProvider>
441 </profile>
442 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
443 <buildOutputProvider>
444 <openAction enabled="true" filePath=""/>
445 <parser enabled="true"/>
446 </buildOutputProvider>
447 <scannerInfoProvider id="specsFile">
448 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
449 <parser enabled="true"/>
450 </scannerInfoProvider>
451 </profile>
452 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
453 <buildOutputProvider>
454 <openAction enabled="true" filePath=""/>
455 <parser enabled="true"/>
456 </buildOutputProvider>
457 <scannerInfoProvider id="specsFile">
458 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
459 <parser enabled="true"/>
460 </scannerInfoProvider>
461 </profile>
462 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
463 <buildOutputProvider>
464 <openAction enabled="true" filePath=""/>
465 <parser enabled="true"/>
466 </buildOutputProvider>
467 <scannerInfoProvider id="specsFile">
468 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
469 <parser enabled="true"/>
470 </scannerInfoProvider>
471 </profile>
472 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
473 <buildOutputProvider>
474 <openAction enabled="true" filePath=""/>
475 <parser enabled="true"/>
476 </buildOutputProvider>
477 <scannerInfoProvider id="specsFile">
478 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
479 <parser enabled="true"/>
480 </scannerInfoProvider>
481 </profile>
482 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
483 <buildOutputProvider>
484 <openAction enabled="true" filePath=""/>
485 <parser enabled="true"/>
486 </buildOutputProvider>
487 <scannerInfoProvider id="specsFile">
488 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
489 <parser enabled="true"/>
490 </scannerInfoProvider>
491 </profile>
492 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
493 <buildOutputProvider>
494 <openAction enabled="true" filePath=""/>
495 <parser enabled="true"/>
496 </buildOutputProvider>
497 <scannerInfoProvider id="specsFile">
498 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
499 <parser enabled="true"/>
500 </scannerInfoProvider>
501 </profile>
502 </scannerConfigBuildInfo>
503 <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1175678966;cdt.managedbuild.config.gnu.exe.debug.1175678966.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1711527348;cdt.managedbuild.tool.gnu.c.compiler.input.1219179977">
504 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
505 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
506 <buildOutputProvider>
507 <openAction enabled="true" filePath=""/>
508 <parser enabled="true"/>
509 </buildOutputProvider>
510 <scannerInfoProvider id="specsFile">
511 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
512 <parser enabled="true"/>
513 </scannerInfoProvider>
514 </profile>
515 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
516 <buildOutputProvider>
517 <openAction enabled="true" filePath=""/>
518 <parser enabled="true"/>
519 </buildOutputProvider>
520 <scannerInfoProvider id="makefileGenerator">
521 <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
522 <parser enabled="true"/>
523 </scannerInfoProvider>
524 </profile>
525 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
526 <buildOutputProvider>
527 <openAction enabled="true" filePath=""/>
528 <parser enabled="true"/>
529 </buildOutputProvider>
530 <scannerInfoProvider id="specsFile">
531 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
532 <parser enabled="true"/>
533 </scannerInfoProvider>
534 </profile>
535 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
536 <buildOutputProvider>
537 <openAction enabled="true" filePath=""/>
538 <parser enabled="true"/>
539 </buildOutputProvider>
540 <scannerInfoProvider id="specsFile">
541 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
542 <parser enabled="true"/>
543 </scannerInfoProvider>
544 </profile>
545 <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
546 <buildOutputProvider>
547 <openAction enabled="true" filePath=""/>
548 <parser enabled="true"/>
549 </buildOutputProvider>
550 <scannerInfoProvider id="specsFile">
551 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
552 <parser enabled="true"/>
553 </scannerInfoProvider>
554 </profile>
555 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
556 <buildOutputProvider>
557 <openAction enabled="true" filePath=""/>
558 <parser enabled="true"/>
559 </buildOutputProvider>
560 <scannerInfoProvider id="specsFile">
561 <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
562 <parser enabled="true"/>
563 </scannerInfoProvider>
564 </profile>
565 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
566 <buildOutputProvider>
567 <openAction enabled="true" filePath=""/>
568 <parser enabled="true"/>
569 </buildOutputProvider>
570 <scannerInfoProvider id="specsFile">
571 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
572 <parser enabled="true"/>
573 </scannerInfoProvider>
574 </profile>
575 <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
576 <buildOutputProvider>
577 <openAction enabled="true" filePath=""/>
578 <parser enabled="true"/>
579 </buildOutputProvider>
580 <scannerInfoProvider id="specsFile">
581 <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
582 <parser enabled="true"/>
583 </scannerInfoProvider>
584 </profile>
585 </scannerConfigBuildInfo>
586 </storageModule>
587 </cconfiguration>
588 </storageModule>
589 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
590 <project id="sleepTest.cdt.managedbuild.target.gnu.exe.918644780" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
591 </storageModule>
592 </cproject>
+0
-81
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>sleepTest</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
9 <triggers>clean,full,incremental,</triggers>
10 <arguments>
11 <dictionary>
12 <key>?name?</key>
13 <value></value>
14 </dictionary>
15 <dictionary>
16 <key>org.eclipse.cdt.make.core.append_environment</key>
17 <value>true</value>
18 </dictionary>
19 <dictionary>
20 <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
21 <value>all</value>
22 </dictionary>
23 <dictionary>
24 <key>org.eclipse.cdt.make.core.buildArguments</key>
25 <value></value>
26 </dictionary>
27 <dictionary>
28 <key>org.eclipse.cdt.make.core.buildCommand</key>
29 <value>make</value>
30 </dictionary>
31 <dictionary>
32 <key>org.eclipse.cdt.make.core.buildLocation</key>
33 <value>${workspace_loc:/sleepTest/Debug}</value>
34 </dictionary>
35 <dictionary>
36 <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
37 <value>clean</value>
38 </dictionary>
39 <dictionary>
40 <key>org.eclipse.cdt.make.core.contents</key>
41 <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
42 </dictionary>
43 <dictionary>
44 <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
45 <value>false</value>
46 </dictionary>
47 <dictionary>
48 <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
49 <value>true</value>
50 </dictionary>
51 <dictionary>
52 <key>org.eclipse.cdt.make.core.enableFullBuild</key>
53 <value>true</value>
54 </dictionary>
55 <dictionary>
56 <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
57 <value>all</value>
58 </dictionary>
59 <dictionary>
60 <key>org.eclipse.cdt.make.core.stopOnError</key>
61 <value>true</value>
62 </dictionary>
63 <dictionary>
64 <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
65 <value>true</value>
66 </dictionary>
67 </arguments>
68 </buildCommand>
69 <buildCommand>
70 <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
71 <arguments>
72 </arguments>
73 </buildCommand>
74 </buildSpec>
75 <natures>
76 <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
77 <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
78 <nature>org.eclipse.cdt.core.cnature</nature>
79 </natures>
80 </projectDescription>
+0
-6
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/resources/sleepTest/sleepTest.c less more
0 #include <unistd.h>
1
2 int main() {
3 sleep(10);
4 return 0;
5 }
+0
-22
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/AllLaunchTests.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.launch.tests;
13
14 import org.junit.runner.RunWith;
15 import org.junit.runners.Suite;
16 @RunWith(Suite.class)
17 @Suite.SuiteClasses({
18 TestLaunching.class, TestSetup.class, TestLaunchingExternalProject.class
19 })
20 public class AllLaunchTests {
21 }
+0
-113
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestLaunching.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.oprofile.launch.tests;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertTrue;
17
18 import org.eclipse.core.runtime.CoreException;
19 import org.eclipse.debug.core.ILaunch;
20 import org.eclipse.debug.core.ILaunchConfiguration;
21 import org.eclipse.debug.core.ILaunchConfigurationType;
22 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
23 import org.eclipse.debug.core.ILaunchManager;
24 import org.eclipse.debug.core.Launch;
25 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
26 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
27 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
28 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileSetupTab;
29 import org.eclipse.linuxtools.oprofile.launch.tests.utils.LaunchTestingOptions;
30 import org.eclipse.linuxtools.oprofile.launch.tests.utils.OprofileTestingEventConfigTab;
31 import org.eclipse.linuxtools.oprofile.launch.tests.utils.TestingOprofileLaunchConfigurationDelegate;
32 import org.eclipse.linuxtools.profiling.tests.AbstractTest;
33 import org.eclipse.swt.layout.GridLayout;
34 import org.eclipse.swt.widgets.Display;
35 import org.eclipse.swt.widgets.Shell;
36 import org.junit.After;
37 import org.junit.Before;
38 import org.junit.Test;
39 import org.osgi.framework.FrameworkUtil;
40
41 public class TestLaunching extends AbstractTest {
42 private ILaunchConfiguration config;
43 private Shell testShell;
44
45 @Before
46 public void setUp() throws Exception {
47 proj = createProjectAndBuild(FrameworkUtil.getBundle(this.getClass()), "primeTest"); //$NON-NLS-1$
48 config = createConfiguration(proj.getProject());
49 testShell = new Shell(Display.getDefault());
50 testShell.setLayout(new GridLayout());
51 }
52
53 @After
54 public void tearDown() throws Exception {
55 testShell.dispose();
56 deleteProject(proj);
57 }
58
59 @Override
60 protected ILaunchConfigurationType getLaunchConfigType() {
61 return getLaunchManager().getLaunchConfigurationType(OprofileLaunchPlugin.ID_LAUNCH_PROFILE);
62 }
63
64 @Override
65 protected void setProfileAttributes(ILaunchConfigurationWorkingCopy wc) {
66 OprofileTestingEventConfigTab configTab = new OprofileTestingEventConfigTab();
67 OprofileSetupTab setupTab = new OprofileSetupTab();
68 configTab.setOprofileProject(proj.getProject());
69 configTab.setDefaults(wc);
70 setupTab.setDefaults(wc);
71 }
72 @Test
73 public void testDefaultLaunch() throws CoreException {
74 TestingOprofileLaunchConfigurationDelegate delegate = new TestingOprofileLaunchConfigurationDelegate();
75 ILaunch launch = new Launch(config, ILaunchManager.PROFILE_MODE, null);
76
77 LaunchTestingOptions options = new LaunchTestingOptions();
78 options.setOprofileProject(proj.getProject());
79 options.loadConfiguration(config);
80 assertTrue(options.isValid());
81 assertTrue(options.getBinaryImage().isEmpty());
82 assertTrue(options.getKernelImageFile().isEmpty());
83 assertEquals(OprofileDaemonOptions.SEPARATE_NONE, options.getSeparateSamples());
84 Oprofile.OprofileProject.setProfilingBinary(Oprofile.OprofileProject.OPERF_BINARY);
85 delegate.launch(config, ILaunchManager.PROFILE_MODE, launch, null);
86 }
87 @Test
88 public void testEventLaunch() throws CoreException {
89 TestingOprofileLaunchConfigurationDelegate delegate = new TestingOprofileLaunchConfigurationDelegate();
90 ILaunch launch = new Launch(config, ILaunchManager.PROFILE_MODE, null);
91
92 ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
93 wc.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false);
94 wc.setAttribute(OprofileLaunchPlugin.attrConterEnabled(0), true);
95 wc.setAttribute(OprofileLaunchPlugin.attrCounterCount(0), 100000);
96 wc.setAttribute(OprofileLaunchPlugin.attrConterEvent(0, 0), "FAKE_EVENT"); //$NON-NLS-1$
97 wc.setAttribute(OprofileLaunchPlugin.attrCounterProfileKernel(0), true);
98 wc.setAttribute(OprofileLaunchPlugin.attrCounterProfileUser(0), true);
99 wc.setAttribute(OprofileLaunchPlugin.attrCounterUnitMask(0), 0);
100 wc.doSave();
101 LaunchTestingOptions options = new LaunchTestingOptions();
102 options.setOprofileProject(proj.getProject());
103 options.loadConfiguration(config);
104 assertTrue(options.isValid());
105 assertTrue(options.getBinaryImage().isEmpty());
106 assertTrue(options.getKernelImageFile().isEmpty());
107 assertEquals(OprofileDaemonOptions.SEPARATE_NONE, options.getSeparateSamples());
108
109 Oprofile.OprofileProject.setProfilingBinary(Oprofile.OprofileProject.OPERF_BINARY);
110 delegate.launch(config, ILaunchManager.PROFILE_MODE, launch, null);
111 }
112 }
+0
-118
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestLaunchingExternalProject.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.oprofile.launch.tests;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertTrue;
17
18 import java.io.File;
19
20 import org.eclipse.core.resources.IProject;
21 import org.eclipse.core.runtime.CoreException;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.debug.core.ILaunch;
24 import org.eclipse.debug.core.ILaunchConfiguration;
25 import org.eclipse.debug.core.ILaunchConfigurationType;
26 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
27 import org.eclipse.debug.core.ILaunchManager;
28 import org.eclipse.debug.core.Launch;
29 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile.OprofileProject;
30 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
31 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
32 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileSetupTab;
33 import org.eclipse.linuxtools.oprofile.launch.tests.utils.LaunchTestingOptions;
34 import org.eclipse.linuxtools.oprofile.launch.tests.utils.OprofileTestingEventConfigTab;
35 import org.eclipse.linuxtools.oprofile.launch.tests.utils.TestingOprofileLaunchConfigurationDelegate;
36 import org.eclipse.linuxtools.profiling.tests.AbstractTest;
37 import org.eclipse.swt.layout.GridLayout;
38 import org.eclipse.swt.widgets.Display;
39 import org.eclipse.swt.widgets.Shell;
40 import org.junit.After;
41 import org.junit.Before;
42 import org.junit.Test;
43 import org.osgi.framework.FrameworkUtil;
44
45 public class TestLaunchingExternalProject extends AbstractTest {
46
47 private final Path EXTERNAL_PROJECT_PATH = new Path("/tmp/eclipse-oprofile-ext_project_test"); //$NON-NLS-1$
48 private final String PROJECT_NAME = "primeTest"; //$NON-NLS-1$
49 private ILaunchConfiguration config;
50 private Shell testShell;
51 private IProject externalProject; // external project to work with
52
53 @Before
54 public void setUp() throws Exception {
55 // Setup a temporary workspace external path
56 File tempExternalProjectPath = EXTERNAL_PROJECT_PATH.toFile();
57 // create directory if not existing
58 if (!tempExternalProjectPath.exists()) {
59 tempExternalProjectPath.mkdir();
60 }
61 externalProject = createExternalProjectAndBuild(FrameworkUtil.getBundle(this.getClass()),
62 PROJECT_NAME, EXTERNAL_PROJECT_PATH);
63 config = createConfiguration(externalProject);
64 testShell = new Shell(Display.getDefault());
65 testShell.setLayout(new GridLayout());
66 }
67
68 @After
69 public void tearDown() throws Exception {
70 testShell.dispose();
71 externalProject.delete(true, null); // delete project
72 // cleanup temporary directory
73 File tempExternalProjectPath = EXTERNAL_PROJECT_PATH.toFile();
74 if (tempExternalProjectPath.exists()) {
75 tempExternalProjectPath.delete();
76 }
77 }
78
79 // Implemented abstract method of AbstractTest
80 @Override
81 protected ILaunchConfigurationType getLaunchConfigType() {
82 return getLaunchManager().getLaunchConfigurationType(OprofileLaunchPlugin.ID_LAUNCH_PROFILE);
83 }
84
85 // Implemented abstract method of AbstractTest
86 @Override
87 protected void setProfileAttributes(ILaunchConfigurationWorkingCopy wc) {
88 OprofileTestingEventConfigTab configTab = new OprofileTestingEventConfigTab();
89 configTab.setOprofileProject(externalProject);
90 OprofileSetupTab setupTab = new OprofileSetupTab();
91 configTab.setDefaults(wc);
92 setupTab.setDefaults(wc);
93 }
94
95 /**
96 * Testcase for Eclipse BugZilla 321905/RedHat BZ
97 *
98 * @throws CoreException
99 */
100 @Test
101 public void testLaunchExternalProject() throws CoreException {
102 LaunchTestingOptions options = new LaunchTestingOptions();
103 options.setOprofileProject(externalProject);
104 options.loadConfiguration(config);
105
106 TestingOprofileLaunchConfigurationDelegate delegate = new TestingOprofileLaunchConfigurationDelegate();
107 ILaunch launch = new Launch(config, ILaunchManager.PROFILE_MODE, null);
108
109 assertTrue(options.isValid());
110 assertTrue(options.getBinaryImage().isEmpty());
111 assertTrue(options.getKernelImageFile().isEmpty());
112 assertEquals(OprofileDaemonOptions.SEPARATE_NONE, options.getSeparateSamples());
113
114 OprofileProject.setProfilingBinary(OprofileProject.OPERF_BINARY);
115 delegate.launch(config, ILaunchManager.PROFILE_MODE, launch, null);
116 }
117 }
+0
-169
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/TestSetup.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.oprofile.launch.tests;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertFalse;
17 import static org.junit.Assert.assertNotNull;
18 import static org.junit.Assert.assertTrue;
19
20 import org.eclipse.core.resources.IProject;
21 import org.eclipse.core.runtime.CoreException;
22 import org.eclipse.debug.core.ILaunchConfiguration;
23 import org.eclipse.debug.core.ILaunchConfigurationType;
24 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
25 import org.eclipse.debug.ui.ILaunchConfigurationTab;
26 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
27 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin;
28 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileSetupTab;
29 import org.eclipse.linuxtools.oprofile.launch.tests.utils.LaunchTestingOptions;
30 import org.eclipse.linuxtools.oprofile.launch.tests.utils.OprofileTestingEventConfigTab;
31 import org.eclipse.linuxtools.profiling.tests.AbstractTest;
32 import org.eclipse.swt.SWT;
33 import org.eclipse.swt.layout.GridLayout;
34 import org.eclipse.swt.widgets.Button;
35 import org.eclipse.swt.widgets.Display;
36 import org.eclipse.swt.widgets.Shell;
37 import org.eclipse.swt.widgets.Text;
38 import org.junit.After;
39 import org.junit.Before;
40 import org.junit.Test;
41 import org.osgi.framework.FrameworkUtil;
42
43 public class TestSetup extends AbstractTest {
44 protected ILaunchConfiguration config;
45 protected Shell testShell;
46 protected IProject project;
47
48 @Before
49 public void setUp() throws Exception {
50 proj = createProjectAndBuild(FrameworkUtil.getBundle(this.getClass()), "primeTest"); //$NON-NLS-1$
51 project = proj.getProject();
52 config = createConfiguration(proj.getProject());
53 testShell = new Shell(Display.getDefault());
54 testShell.setLayout(new GridLayout());
55 }
56
57 @After
58 public void tearDown() throws Exception {
59 testShell.dispose();
60 deleteProject(proj);
61 }
62
63 @Override
64 protected ILaunchConfigurationType getLaunchConfigType() {
65 return getLaunchManager().getLaunchConfigurationType(OprofileLaunchPlugin.ID_LAUNCH_PROFILE);
66 }
67
68 @Override
69 protected void setProfileAttributes(ILaunchConfigurationWorkingCopy wc) {
70 OprofileTestingEventConfigTab configTab = new OprofileTestingEventConfigTab();
71 OprofileSetupTab setupTab = new OprofileSetupTab();
72 configTab.setOprofileProject(proj.getProject());
73 configTab.setDefaults(wc);
74 setupTab.setDefaults(wc);
75 }
76
77 //getter functions for otherwise unaccessible member variables
78 private class OprofileTestingSetupTab extends OprofileSetupTab {
79 @Override
80 protected IProject getOprofileProject() { return proj.getProject(); }
81 @Override
82 public void setDefaults(ILaunchConfigurationWorkingCopy config) {
83 options = new LaunchTestingOptions();
84 options.saveConfiguration(config);
85 }
86 protected Button getKernelCheck() { return checkSeparateKernel; }
87 protected Button getLibraryCheck() { return checkSeparateLibrary; }
88 protected Text getTextKernelImage() { return kernelImageFileText; }
89 }
90 @Test
91 public void testSetupTab() throws CoreException {
92 OprofileTestingSetupTab tab = new OprofileTestingSetupTab();
93 tab.createControl(new Shell());
94 assertNotNull(tab.getImage());
95 assertNotNull(tab.getName());
96
97 ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
98
99 //default config
100 tab.setDefaults(wc);
101 tab.initializeFrom(config);
102
103 Button libraryCheck = tab.getLibraryCheck();
104 libraryCheck.setSelection(true);
105 libraryCheck.notifyListeners(SWT.Selection, null);
106 performApply(tab, wc);
107 assertEquals(OprofileDaemonOptions.SEPARATE_LIBRARY, config.getAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, -1));
108 libraryCheck.setSelection(false);
109 libraryCheck.notifyListeners(SWT.Selection, null);
110 performApply(tab, wc);
111 assertEquals(OprofileDaemonOptions.SEPARATE_NONE, config.getAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, -1));
112
113 Button kernelCheck = tab.getKernelCheck();
114 kernelCheck.setSelection(true);
115 kernelCheck.notifyListeners(SWT.Selection, null);
116 performApply(tab, wc);
117 assertEquals(OprofileDaemonOptions.SEPARATE_KERNEL, config.getAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, -1));
118 kernelCheck.setSelection(false);
119 kernelCheck.notifyListeners(SWT.Selection, null);
120 performApply(tab, wc);
121 assertEquals(OprofileDaemonOptions.SEPARATE_NONE, config.getAttribute(OprofileLaunchPlugin.ATTR_SEPARATE_SAMPLES, -1));
122
123 libraryCheck.setSelection(true);
124 libraryCheck.notifyListeners(SWT.Selection, null);
125 kernelCheck.setSelection(true);
126 kernelCheck.notifyListeners(SWT.Selection, null);
127 performApply(tab, wc);
128 tab.initializeFrom(config);
129 assertTrue(libraryCheck.getSelection());
130 assertTrue(kernelCheck.getSelection());
131
132 Text kernelLocationText = tab.getTextKernelImage();
133 kernelLocationText.setText("doesntexist"); //$NON-NLS-1$
134 kernelLocationText.notifyListeners(SWT.Selection, null);
135 performApply(tab, wc);
136 assertFalse(tab.isValid(config));
137
138 kernelLocationText.setText(""); //$NON-NLS-1$
139 kernelLocationText.notifyListeners(SWT.Selection, null);
140 performApply(tab, wc);
141 assertTrue(tab.isValid(config));
142 }
143 @Test
144 public void testEventConfigTab() throws CoreException {
145 OprofileTestingEventConfigTab tab = new OprofileTestingEventConfigTab();
146 tab.createControl(new Shell());
147 assertNotNull(tab.getImage());
148 assertNotNull(tab.getName());
149
150 tab.setDefaults(config.getWorkingCopy());
151 tab.initializeFrom(config);
152 assertTrue(tab.isValid(config));
153
154 assertTrue(tab.getDefaultCheck().getSelection());
155 tab.getDefaultCheck().notifyListeners(SWT.Selection, null);
156 tab.getDefaultCheck().setSelection(false);
157 tab.getDefaultCheck().notifyListeners(SWT.Selection, null);
158
159 ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
160 wc.setAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false);
161 performApply(tab, wc);
162 assertFalse(tab.isValid(config));
163 }
164 private void performApply (ILaunchConfigurationTab tab , ILaunchConfigurationWorkingCopy wc) throws CoreException {
165 tab.performApply(wc);
166 wc.doSave();
167 }
168 }
+0
-29
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/utils/LaunchTestingOptions.java less more
0 /*******************************************************************************
1 * Copyright (c) 2013, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.launch.tests.utils;
13
14 import org.eclipse.core.resources.IProject;
15 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.LaunchOptions;
16
17 public class LaunchTestingOptions extends LaunchOptions {
18 private IProject project;
19
20 public void setOprofileProject(IProject proj) {
21 project = proj;
22 }
23
24 @Override
25 protected IProject getOprofileProject() {
26 return project;
27 }
28 }
+0
-103
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/utils/OprofileTestingEventConfigTab.java less more
0 /*******************************************************************************
1 * Copyright (c) 2013, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.launch.tests.utils;
13
14 import org.eclipse.core.resources.IProject;
15 import org.eclipse.debug.core.ILaunchConfiguration;
16 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpEvent;
17 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask;
18 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OpUnitMask.MaskInfo;
19 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.AbstractEventConfigTab;
20 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileCounter;
21 import org.eclipse.swt.widgets.Button;
22
23 // mock event configuration tab
24 public class OprofileTestingEventConfigTab extends AbstractEventConfigTab {
25 private IProject project;
26
27 @Override
28 protected boolean getOprofileTimerMode() {
29 return false;
30 }
31
32 @Override
33 protected int getNumberOfOprofileCounters() {
34 return 1;
35 }
36
37 @Override
38 protected boolean checkEventSetupValidity(int counter, String name,
39 int maskValue) {
40 return true;
41 }
42
43 @Override
44 protected IProject getOprofileProject() {
45 return project;
46 }
47
48 @Override
49 public void setOprofileProject(IProject proj) {
50 project = proj;
51 }
52
53 @Override
54 protected void updateOprofileInfo() {
55 }
56
57 public Button getDefaultCheck() {
58 return defaultEventCheck;
59 }
60
61 @Override
62 protected OprofileCounter[] getOprofileCounters(ILaunchConfiguration config) {
63 // setup and return mock counters
64 OprofileCounter[] ctrs = new OprofileCounter[] { getOprofileCounter(1) };
65 return ctrs;
66 }
67
68 @Override
69 public OprofileCounter getOprofileCounter(int i) {
70 // mock mask info
71 MaskInfo maskInfo = new MaskInfo();
72 maskInfo.description = "mock mask info"; //$NON-NLS-1$
73 maskInfo.value = 0;
74
75 MaskInfo[] maskInfoDescriptions = { maskInfo };
76
77 // mock mask
78 OpUnitMask mask = new OpUnitMask();
79 mask.setDefault(0);
80 mask.setMaskDescriptions(maskInfoDescriptions);
81 mask.setType(0);
82 mask.setMaskFromIndex(0);
83 mask.setMaskValue(0);
84
85 // mock events
86 OpEvent event = new OpEvent();
87 event.setMinCount(1);
88 event.setText("mock-event"); //$NON-NLS-1$
89 event.setTextDescription("Mock Event"); //$NON-NLS-1$
90 event.setUnitMask(mask);
91
92 OpEvent[] events = { event };
93
94 // mock counter
95 OprofileCounter ctr = new OprofileCounter(i, events);
96 ctr.setCount(1);
97 ctr.setEvents(new OpEvent [] {event});
98
99 return ctr;
100 }
101
102 }
+0
-61
oprofile/org.eclipse.linuxtools.oprofile.launch.tests/src/org/eclipse/linuxtools/oprofile/launch/tests/utils/TestingOprofileLaunchConfigurationDelegate.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 * Severin Gehwolf <sgehwolf@redhat.com> - moved to separate class
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.oprofile.launch.tests.utils;
15
16 import java.net.URI;
17
18 import org.eclipse.debug.core.ILaunchConfiguration;
19 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonEvent;
20 import org.eclipse.linuxtools.internal.oprofile.core.daemon.OprofileDaemonOptions;
21 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.LaunchOptions;
22 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileCounter;
23 import org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchConfigurationDelegate;
24
25 /**
26 * Helper delegate class
27 */
28 public final class TestingOprofileLaunchConfigurationDelegate extends
29 OprofileLaunchConfigurationDelegate {
30 public boolean eventsIsNull;
31 public OprofileDaemonOptions _options;
32
33 @Override
34 protected boolean oprofileStatus() {
35 return false;
36 }
37
38 @Override
39 protected void postExec(LaunchOptions options,
40 OprofileDaemonEvent[] daemonEvents, Process process) {
41 super.postExec(options, daemonEvents, process);
42
43 try {
44 process.waitFor();
45 } catch (InterruptedException e) {
46 e.printStackTrace();
47 }
48 }
49
50 @Override
51 protected OprofileCounter[] oprofileCounters(ILaunchConfiguration config) {
52 return new OprofileCounter[0];
53
54 }
55
56 @Override
57 protected URI oprofileWorkingDirURI(ILaunchConfiguration config){
58 return oprofileProject().getLocationURI();
59 }
60 }
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-17
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.remote-feature</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.pde.FeatureBuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 </buildSpec>
13 <natures>
14 <nature>org.eclipse.pde.FeatureNature</nature>
15 </natures>
16 </projectDescription>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/build.properties less more
0 bin.includes = feature.xml,\
1 feature.properties,\
2 p2.inf
3 src.includes = feature.properties,\
4 feature.xml
+0
-16
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/feature.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2008, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Red Hat, Inc. - initial API and implementation
11 #********************************************************************************
12 featureName=Remote OProfile Integration
13 description=Plugins to bring remote OProfile-based profiling into the workbench.
14 provider=Eclipse Linux Tools
15 copyright=Copyright 2008, 2010 Red Hat, Inc.
+0
-53
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/feature.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <feature
2 id="org.eclipse.linuxtools.oprofile.remote.feature"
3 label="%featureName"
4 version="7.4.0.qualifier"
5 provider-name="%provider"
6 os="linux"
7 license-feature="org.eclipse.license"
8 license-feature-version="0.0.0">
9
10 <description>
11 %description
12 </description>
13
14 <copyright>
15 %copyright
16 </copyright>
17
18 <license url="%licenseURL">
19 %license
20 </license>
21
22 <url>
23 <update label="Linux Tools Update Site" url="http://download.eclipse.org/linuxtools/update"/>
24 </url>
25
26 <requires>
27 <import plugin="org.eclipse.core.runtime" version="3.4.0" match="greaterOrEqual"/>
28 <import plugin="org.eclipse.ui" version="3.4.0" match="greaterOrEqual"/>
29 <import plugin="org.eclipse.cdt.core"/>
30 <import plugin="org.eclipse.cdt.debug.core"/>
31 <import plugin="org.eclipse.cdt.launch"/>
32 <import plugin="org.eclipse.core.resources"/>
33 <import plugin="org.eclipse.debug.core"/>
34 <import plugin="org.eclipse.debug.ui"/>
35 <import plugin="org.eclipse.linuxtools.profiling.launch"/>
36 <import plugin="org.eclipse.ui.ide"/>
37 <import plugin="org.eclipse.jface.text"/>
38 <import plugin="org.eclipse.linuxtools.profiling.ui"/>
39 <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
40 <import plugin="org.eclipse.help"/>
41 <import feature="org.eclipse.linuxtools.oprofile.feature" version="0.1.0" match="greaterOrEqual"/>
42 <import feature="org.eclipse.linuxtools.profiling.remote" version="0.8.0" match="greaterOrEqual"/>
43 </requires>
44
45 <plugin
46 id="org.eclipse.linuxtools.oprofile.remote.launch"
47 download-size="0"
48 install-size="0"
49 version="0.0.0"
50 unpack="false"/>
51
52 </feature>
+0
-3
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/p2.inf less more
0 instructions.configure=\
1 org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/linuxtools/update,type:0,name:Linux Tools,enabled:false); \
2 org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/linuxtools/update,type:1,name:Linux Tools,enabled:false);
+0
-64
oprofile/org.eclipse.linuxtools.oprofile.remote-feature/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 * This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License 2.0
6 * which is available at https://www.eclipse.org/legal/epl-2.0/
7 *
8 * SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.remote.feature</artifactId>
21 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
23
24 <name>Linux Tools Remote OProfile Integration Feature</name>
25
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.eclipse.tycho.extras</groupId>
30 <artifactId>tycho-source-feature-plugin</artifactId>
31 <executions>
32 <execution>
33 <id>source-feature</id>
34 <phase>package</phase>
35 <goals>
36 <goal>source-feature</goal>
37 </goals>
38 <configuration>
39 <excludes>
40 <plugin id="org.eclipse.linuxtools.oprofile.doc"/>
41 </excludes>
42 </configuration>
43 </execution>
44 </executions>
45 </plugin>
46 <plugin>
47 <groupId>org.eclipse.tycho</groupId>
48 <artifactId>tycho-p2-plugin</artifactId>
49 <version>${tycho-version}</version>
50 <executions>
51 <execution>
52 <id>attached-p2-metadata</id>
53 <phase>package</phase>
54 <goals>
55 <goal>p2-metadata</goal>
56 </goals>
57 </execution>
58 </executions>
59 </plugin>
60 </plugins>
61 </build>
62
63 </project>
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-34
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.remote.launch</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 <buildCommand>
23 <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
24 <arguments>
25 </arguments>
26 </buildCommand>
27 </buildSpec>
28 <natures>
29 <nature>org.eclipse.pde.PluginNature</nature>
30 <nature>org.eclipse.jdt.core.javanature</nature>
31 <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
32 </natures>
33 </projectDescription>
+0
-99
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
12 org.eclipse.jdt.core.compiler.debug.localVariable=generate
13 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
14 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
15 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
16 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
17 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
18 org.eclipse.jdt.core.compiler.problem.deadCode=warning
19 org.eclipse.jdt.core.compiler.problem.deprecation=warning
20 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
21 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
22 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
23 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
25 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
26 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
27 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
28 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
29 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
30 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
31 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
32 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
33 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
34 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
35 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
36 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
37 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
38 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
39 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
40 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
41 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
42 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
43 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
44 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
45 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
46 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
47 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
48 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
49 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
50 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
51 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
52 org.eclipse.jdt.core.compiler.problem.nullReference=warning
53 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
54 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
55 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
56 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
57 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
58 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
59 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
60 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
61 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
62 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
63 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
64 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
65 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
66 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
68 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
69 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
70 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
71 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
72 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
73 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
74 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
75 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
76 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
77 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
78 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
79 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
80 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
81 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
82 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
83 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
84 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
85 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
86 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
87 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
88 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
89 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
90 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
92 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
93 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
94 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
95 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
96 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
97 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
+0
-25
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.remote.launch;singleton:=true
4 Bundle-Version: 2.0.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
8 org.eclipse.ui;bundle-version="3.4.0",
9 org.eclipse.linuxtools.tools.launch.core
10 Bundle-Activator: org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchPlugin
11 Bundle-ActivationPolicy: lazy
12 Bundle-Localization: plugin
13 Import-Package: org.eclipse.cdt.debug.core,
14 org.eclipse.cdt.launch,
15 org.eclipse.core.resources,
16 org.eclipse.debug.core,
17 org.eclipse.debug.ui,
18 org.eclipse.linuxtools.internal.oprofile.core,
19 org.eclipse.linuxtools.internal.oprofile.core.linux,
20 org.eclipse.linuxtools.internal.oprofile.launch,
21 org.eclipse.linuxtools.internal.oprofile.launch.configuration,
22 org.eclipse.linuxtools.internal.oprofile.launch.launching,
23 org.eclipse.linuxtools.profiling.launch
24 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.remote.launch
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-10
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.xml,\
4 plugin.properties,\
5 icons/,\
6 about.html
7 src.includes = about.html,\
8 icons/
9 individualSourceBundles=true
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/icons/event_tab.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/icons/global_tab.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/icons/profile_run.png less more
Binary diff not shown
+0
-23
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2008, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Red Hat, Inc. - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Remote Launch Plug-in (Incubation)
13 bundleProvider=Eclipse Linux Tools
14
15 pluginName=OProfile Remote Launch Support
16 launchconfigurationtype.remote.label=Profile With OProfile (Remote)
17
18 launchgroup.label=OProfile
19 launchgroup.titile=Select a run configuration to profile with OProfile
20
21 launchmode.label=Profile
22 launchmode.launchaslabel=Profile As
+0
-35
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/plugin.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.2"?>
2 <plugin>
3 <extension
4 point="org.eclipse.debug.core.launchConfigurationTypes">
5 <launchConfigurationType
6 delegate="org.eclipse.linuxtools.internal.oprofile.remote.launch.launching.OprofileRemoteLaunchConfigurationDelegate"
7 id="org.eclipse.linuxtools.oprofile.launch.oprofile.remote"
8 modes="linuxtools"
9 name="%launchconfigurationtype.remote.label"
10 public="true"
11 sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
12 sourcePathComputerId="org.eclipse.cdt.debug.core.sourcePathComputer">
13 </launchConfigurationType>
14 </extension>
15 <extension
16 point="org.eclipse.debug.ui.launchConfigurationTypeImages">
17 <launchConfigurationTypeImage
18 configTypeID="org.eclipse.linuxtools.oprofile.launch.oprofile.remote"
19 icon="icons/profile_run.png"
20 id="org.eclipse.linuxtools.oprofile.launch.oprofileImage">
21 </launchConfigurationTypeImage>
22 </extension>
23 <extension
24 point="org.eclipse.debug.ui.launchConfigurationTabGroups">
25 <launchConfigurationTabGroup
26 class="org.eclipse.linuxtools.internal.oprofile.remote.launch.configuration.OprofileRemoteLaunchConfigurationTabGroup"
27 id="org.eclipse.linuxtools.oprofile.launch.remoteLaunchConfigurationTabGroup"
28 type="org.eclipse.linuxtools.oprofile.launch.oprofile.remote">
29 </launchConfigurationTabGroup>
30 </extension>
31 <extension
32 point="org.eclipse.debug.ui.launchShortcuts">
33 </extension>
34 </plugin>
+0
-17
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <modelVersion>4.0.0</modelVersion>
4
5 <parent>
6 <artifactId>linuxtools-oprofile-parent</artifactId>
7 <groupId>org.eclipse.linuxtools.oprofile</groupId>
8 <version>7.4.0</version>
9 </parent>
10
11 <artifactId>org.eclipse.linuxtools.oprofile.remote.launch</artifactId>
12 <version>2.0.0-SNAPSHOT</version>
13 <packaging>eclipse-plugin</packaging>
14
15 <name>Linux Tools OProfile Remote Launch Plug-in</name>
16 </project>
+0
-28
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/src/org/eclipse/linuxtools/internal/oprofile/remote/launch/configuration/OprofileRemoteLaunchConfigurationTabGroup.java less more
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Rafael Medeiros Teixeira <rafaelmt@linux.vnet.ibm.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.remote.launch.configuration;
13
14 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
15 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileEventConfigTab;
16 import org.eclipse.linuxtools.internal.oprofile.launch.configuration.OprofileSetupTab;
17 import org.eclipse.linuxtools.profiling.launch.RemoteProxyProfileLaunchConfigurationTabGroup;
18
19 /**
20 * @since 1.1
21 */
22 public class OprofileRemoteLaunchConfigurationTabGroup extends RemoteProxyProfileLaunchConfigurationTabGroup {
23 @Override
24 public AbstractLaunchConfigurationTab[] getProfileTabs() {
25 return new AbstractLaunchConfigurationTab[] { new OprofileSetupTab(), new OprofileEventConfigTab() };
26 }
27 }
+0
-92
oprofile/org.eclipse.linuxtools.oprofile.remote.launch/src/org/eclipse/linuxtools/internal/oprofile/remote/launch/launching/OprofileRemoteLaunchConfigurationDelegate.java less more
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Rafael Medeiros Teixeira <rafaelmt@linux.vnet.ibm.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.remote.launch.launching;
13
14 import java.net.URI;
15 import java.net.URISyntaxException;
16
17 import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
18 import org.eclipse.core.resources.IProject;
19 import org.eclipse.core.resources.ResourcesPlugin;
20 import org.eclipse.core.runtime.CoreException;
21 import org.eclipse.core.runtime.IPath;
22 import org.eclipse.core.runtime.IStatus;
23 import org.eclipse.core.runtime.Path;
24 import org.eclipse.core.runtime.Status;
25 import org.eclipse.debug.core.ILaunchConfiguration;
26 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
27 import org.eclipse.linuxtools.internal.oprofile.launch.OprofileLaunchMessages;
28 import org.eclipse.linuxtools.internal.oprofile.launch.launching.OprofileLaunchConfigurationDelegate;
29 import org.eclipse.linuxtools.profiling.launch.ProxyLaunchMessages;
30 import org.eclipse.linuxtools.profiling.launch.RemoteProxyCMainTab;
31
32
33 /**
34 * @since 1.1
35 */
36 public class OprofileRemoteLaunchConfigurationDelegate extends OprofileLaunchConfigurationDelegate {
37 private final static String EMPTY_STRING = ""; //$NON-NLS-1$
38
39 @Override
40 protected IProject getProject() {
41 String name = null;
42 try {
43 name = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, EMPTY_STRING);
44 } catch (CoreException e) {
45 return null;
46 }
47 if (name == null) {
48 return null;
49 }
50
51 return ResourcesPlugin.getWorkspace().getRoot().getProject(name);
52 }
53
54 @Override
55 protected IPath getExePath(ILaunchConfiguration config)
56 throws CoreException {
57 String pathString = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, EMPTY_STRING);
58 URI uri;
59 try {
60 uri = new URI(pathString);
61 } catch (URISyntaxException e) {
62 throw new CoreException(new Status(IStatus.ERROR, OprofileCorePlugin.getId() ,
63 ProxyLaunchMessages.uri_of_executable_is_invalid));
64 }
65 IPath path = new Path(uri.getPath());
66
67 return path;
68 }
69
70 @Override
71 protected URI oprofileWorkingDirURI(ILaunchConfiguration config) throws CoreException {
72 String workingDirString = config.getAttribute(RemoteProxyCMainTab.ATTR_REMOTE_WORKING_DIRECTORY_NAME, EMPTY_STRING);
73 if(workingDirString.equals(EMPTY_STRING)){
74 return getProject().getLocationURI();
75 } else {
76 URI workingDirUri;
77 try {
78 workingDirUri = new URI(workingDirString);
79 } catch (URISyntaxException e) {
80 Status status = new Status(
81 IStatus.ERROR,
82 OprofileCorePlugin.getId(),
83 OprofileLaunchMessages
84 .getString("oprofilelaunch.error.invalidworkingdir.status_message")); //$NON-NLS-1$
85 throw new CoreException(status);
86 }
87 return workingDirUri;
88 }
89 }
90
91 }
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.tests/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.tests/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-28
oprofile/org.eclipse.linuxtools.oprofile.tests/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.tests</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
+0
-95
oprofile/org.eclipse.linuxtools.oprofile.tests/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
12 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
13 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
14 org.eclipse.jdt.core.compiler.problem.deadCode=warning
15 org.eclipse.jdt.core.compiler.problem.deprecation=warning
16 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
17 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
18 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
19 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
21 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
22 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
23 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
24 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
25 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
26 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
27 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
28 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
29 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
30 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
31 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
32 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
33 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
34 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
35 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
36 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
37 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
38 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
39 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
40 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
41 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
42 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
43 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
44 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
45 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
46 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
47 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
48 org.eclipse.jdt.core.compiler.problem.nullReference=warning
49 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
50 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
51 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
52 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
53 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
54 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
55 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
56 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
57 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
58 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
59 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
60 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
61 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
62 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
63 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
64 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
65 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
66 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
67 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
68 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
69 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
70 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
71 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
72 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
73 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
74 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
75 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
76 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
77 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
78 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
79 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
80 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
81 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
82 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
83 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
84 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
85 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
86 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
87 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
88 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
89 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
90 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
91 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
92 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
93 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
+0
-16
oprofile/org.eclipse.linuxtools.oprofile.tests/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.tests
4 Bundle-Version: 1.0.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Import-Package: org.eclipse.linuxtools.internal.oprofile.core.opxml,
8 org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata,
9 org.eclipse.linuxtools.internal.oprofile.core.model
10 Export-Package: org.eclipse.linuxtools.oprofile.tests
11 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0"
12 Bundle-ActivationPolicy: lazy
13 Bundle-Activator: org.eclipse.linuxtools.oprofile.tests.TestPlugin
14 Bundle-Localization: plugin
15 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.tests
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.tests/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-9
oprofile/org.eclipse.linuxtools.oprofile.tests/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 resources/,\
4 plugin.properties,\
5 about.html
6 src.includes = resources/,\
7 about.html
8 individualSourceBundles=true
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.tests/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2009, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Common Test Plug-in
13 bundleProvider=Eclipse Linux Tools
+0
-26
oprofile/org.eclipse.linuxtools.oprofile.tests/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 * This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License 2.0
6 * which is available at https://www.eclipse.org/legal/epl-2.0/
7 *
8 * SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.tests</artifactId>
21 <version>1.0.0-SNAPSHOT</version>
22 <packaging>eclipse-plugin</packaging>
23
24 <name>Linux Tools OProfile Tests Plug-in</name>
25 </project>
+0
-88
oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/test/path/for/image" count="205000">
3 <symbols>
4 <symbol name="TestFunction1(int)" file="/test/path/for/src/image.cpp" line="1" count="180000">
5 <sample>
6 <count>130000</count>
7 <file>/test/path/for/src/image.cpp</file>
8 <line>42</line>
9 </sample>
10 <sample>
11 <count>40000</count>
12 <file>/test/path/for/src/image.cpp</file>
13 <line>36</line>
14 </sample>
15 <sample>
16 <count>9999</count>
17 <file>/test/path/for/src/image.cpp</file>
18 <line>31</line>
19 </sample>
20 <sample>
21 <count>1</count>
22 <file>/test/path/for/src/image.cpp</file>
23 <line>39</line>
24 </sample>
25 </symbol>
26 <symbol name="TestFunction2(int, int)" file="/test/path/for/src/image2.cpp" line="50" count="20000">
27 <sample>
28 <count>19998</count>
29 <file>/test/path/for/src/image2.cpp</file>
30 <line>94</line>
31 </sample>
32 <sample>
33 <count>1</count>
34 <file>/test/path/for/src/image2.cpp</file>
35 <line>12</line>
36 </sample>
37 <sample>
38 <count>1</count>
39 <file>/test/path/for/src/image2.cpp</file>
40 <line>55</line>
41 </sample>
42 </symbol>
43 </symbols>
44 <dependent count="5000">
45 <image name="/no-vmlinux" count="4400">
46 </image>
47 <image name="/lib64/ld-2.9.so" count="300">
48 <symbols>
49 <symbol name="do_lookup_x" file="dl-lookup.c" line="0" count="299">
50 <sample>
51 <count>299</count>
52 <file>dl-lookup.c</file>
53 <line>0</line>
54 </sample>
55 </symbol>
56 <symbol name="_dl_unload_cache" file="rawmemchr.c" line="0" count="1">
57 <sample>
58 <count>1</count>
59 <file>rawmemchr.c</file>
60 <line>0</line>
61 </sample>
62 </symbol>
63 </symbols>
64 </image>
65 <image name="/usr/lib64/libstdc++.so.6.0.10" count="160">
66 </image>
67 <image name="/lib64/libc-2.9.so" count="140">
68 <symbols>
69 <symbol name="_IO_new_file_seekoff" file="" line="0" count="100">
70 <sample>
71 <count>100</count>
72 <file></file>
73 <line>0</line>
74 </sample>
75 </symbol>
76 <symbol name="bcopy" file="" line="0" count="40">
77 <sample>
78 <count>40</count>
79 <file></file>
80 <line>0</line>
81 </sample>
82 </symbol>
83 </symbols>
84 </image>
85 </dependent>
86 </image>
87 </model-data>
+0
-239
oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data_multiple_image.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/no-vmlinux" count="6844">
3 </image>
4 <image name="/bin/grep" count="2">
5 </image>
6 <image name="/bin/gawk" count="8">
7 </image>
8 <image name="/bin/bash" count="142">
9 </image>
10 <image name="/lib64/libgobject-2.0.so.0.1800.3" count="61">
11 </image>
12 <image name="/lib64/libgio-2.0.so.0.1800.3" count="2">
13 </image>
14 <image name="/lib64/libdl-2.9.so" count="2">
15 <symbols>
16 <symbol name="__do_global_dtors_aux" file="crtstuff.c" count="2" line="0">
17 <sample>
18 <count>2</count>
19 <line>0</line>
20 </sample>
21 </symbol>
22 </symbols>
23 </image>
24 <image name="/lib64/ld-2.9.so" count="36">
25 <symbols>
26 <symbol name="_dl_start" file="rtld.c" count="1" line="0">
27 <sample>
28 <count>1</count>
29 <line>0</line>
30 </sample>
31 </symbol>
32 <symbol name="dl_main" file="rtld.c" count="3" line="0">
33 <sample>
34 <count>3</count>
35 <file>rtld.c</file>
36 <line>0</line>
37 </sample>
38 </symbol>
39 <symbol name="init_tls" file="rtld.c" count="1" line="0">
40 <sample>
41 <count>1</count>
42 <file>rtld.c</file>
43 <line>0</line>
44 </sample>
45 </symbol>
46 <symbol name="open_verify" file="dl-load.c" count="2" line="0">
47 <sample>
48 <count>2</count>
49 <file>dl-load.c</file>
50 <line>0</line>
51 </sample>
52 </symbol>
53 <symbol name="_dl_setup_hash" file="rawmemchr.c" count="1" line="0">
54 <sample>
55 <count>1</count>
56 <file>rawmemchr.c</file>
57 <line>0</line>
58 </sample>
59 </symbol>
60 <symbol name="_dl_init_internal" file="rawmemchr.c" count="1" line="0">
61 <sample>
62 <count>1</count>
63 <file>rawmemchr.c</file>
64 <line>0</line>
65 </sample>
66 </symbol>
67 <symbol name="_dl_important_hwcaps" file="rawmemchr.c" count="2" line="0">
68 <sample>
69 <count>2</count>
70 <file>rawmemchr.c</file>
71 <line>0</line>
72 </sample>
73 </symbol>
74 <symbol name="munmap" file="rawmemchr.c" count="1" line="0">
75 <sample>
76 <count>1</count>
77 <file>rawmemchr.c</file>
78 <line>0</line>
79 </sample>
80 </symbol>
81 <symbol name="_dl_load_cache_lookup" file="rawmemchr.c" count="1" line="0">
82 <sample>
83 <count>1</count>
84 <file>rawmemchr.c</file>
85 <line>0</line>
86 </sample>
87 </symbol>
88 <symbol name="_dl_fini" file="rawmemchr.c" count="2" line="0">
89 <sample>
90 <count>2</count>
91 <file>rawmemchr.c</file>
92 <line>0</line>
93 </sample>
94 </symbol>
95 <symbol name="__GI_memset" file="rawmemchr.c" count="1" line="0">
96 <sample>
97 <count>1</count>
98 <file>rawmemchr.c</file>
99 <line>0</line>
100 </sample>
101 </symbol>
102 <symbol name="_dl_init_paths" file="rawmemchr.c" count="3" line="0">
103 <sample>
104 <count>3</count>
105 <file>rawmemchr.c</file>
106 <line>0</line>
107 </sample>
108 </symbol>
109 <symbol name="__brk" file="rawmemchr.c" count="1" line="0">
110 <sample>
111 <count>1</count>
112 <file>rawmemchr.c</file>
113 <line>0</line>
114 </sample>
115 </symbol>
116 <symbol name="_dl_name_match_p" file="rawmemchr.c" count="1" line="0">
117 <sample>
118 <count>1</count>
119 <file>rawmemchr.c</file>
120 <line>0</line>
121 </sample>
122 </symbol>
123 <symbol name="index" file="rawmemchr.c" count="2" line="0">
124 <sample>
125 <count>2</count>
126 <file>rawmemchr.c</file>
127 <line>0</line>
128 </sample>
129 </symbol>
130 <symbol name="_dl_resolve_conflicts" file="rawmemchr.c" count="1" line="0">
131 <sample>
132 <count>1</count>
133 <file>rawmemchr.c</file>
134 <line>0</line>
135 </sample>
136 </symbol>
137 <symbol name="_dl_cache_libcmp" file="rawmemchr.c" count="2" line="0">
138 <sample>
139 <count>2</count>
140 <file>rawmemchr.c</file>
141 <line>0</line>
142 </sample>
143 </symbol>
144 <symbol name="strcmp" file="rawmemchr.c" count="2" line="0">
145 <sample>
146 <count>2</count>
147 <file>rawmemchr.c</file>
148 <line>0</line>
149 </sample>
150 </symbol>
151 <symbol name="_dl_start_user" file="rawmemchr.c" count="1" line="0">
152 <sample>
153 <count>1</count>
154 <file>rawmemchr.c</file>
155 <line>0</line>
156 </sample>
157 </symbol>
158 <symbol name="strlen" file="rawmemchr.c" count="1" line="0">
159 <sample>
160 <count>1</count>
161 <file>rawmemchr.c</file>
162 <line>0</line>
163 </sample>
164 </symbol>
165 <symbol name="_dl_sort_fini" file="rawmemchr.c" count="1" line="0">
166 <sample>
167 <count>1</count>
168 <file>rawmemchr.c</file>
169 <line>0</line>
170 </sample>
171 </symbol>
172 <symbol name="_dl_map_object_deps" file="rawmemchr.c" count="4" line="0">
173 <sample>
174 <count>4</count>
175 <file>rawmemchr.c</file>
176 <line>0</line>
177 </sample>
178 </symbol>
179 <symbol name="__libc_memalign" file="" count="1" line="0">
180 <sample>
181 <count>1</count>
182 <file></file>
183 <line>0</line>
184 </sample>
185 </symbol>
186 </symbols>
187 </image>
188 <image name="/lib64/libdbus-1.so.3.4.0" count="10">
189 </image>
190 <image name="/lib64/libfuse.so.2.7.4" count="1">
191 </image>
192 <image name="/lib64/libm-2.9.so" count="2">
193 <symbols>
194 <symbol name="__dubsin" file="interp.c" count="2" line="0">
195 <sample>
196 <count>2</count>
197 <line>0</line>
198 </sample>
199 </symbol>
200 </symbols>
201 </image>
202 <image name="/lib64/libglib-2.0.so.0.1800.3" count="107">
203 </image>
204 <image name="/lib64/libgthread-2.0.so.0.1800.3" count="3">
205 </image>
206 <image name="/usr/bin/which" count="1">
207 </image>
208 <image name="/usr/bin/compiz" count="21">
209 </image>
210 <image name="/usr/bin/Xorg" count="154">
211 <dependent count="6">
212 <image name="[vdso]" count="6">
213 </image>
214 </dependent>
215 </image>
216 <image name="/usr/bin/ophelp" count="11">
217 </image>
218 <image name="/usr/bin/qemu-kvm" count="142">
219 <dependent count="1">
220 <image name="[vdso]" count="1">
221 </image>
222 </dependent>
223 </image>
224 <image name="/usr/bin/oprofiled" count="26">
225 </image>
226 <image name="/usr/sbin/libvirtd" count="3">
227 </image>
228 <image name="/usr/libexec/multiload-applet-2" count="1">
229 </image>
230 <image name="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/libjvm.so" count="7">
231 </image>
232 <image name="/usr/lib64/libgtk-x11-2.0.so.0.1400.5" count="22">
233 </image>
234 <image name="/usr/lib64/libpangocairo-1.0.so.0.2203.0" count="4">
235 </image>
236 <image name="/usr/lib64/libXrender.so.1.3.0" count="2">
237 </image>
238 </model-data>
+0
-46
oprofile/org.eclipse.linuxtools.oprofile.tests/resources/test_model-data_nodepimage.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <model-data>
2 <image name="/test/path/for/image" count="200000">
3 <symbols>
4 <symbol name="TestFunction1(int)" file="/test/path/for/src/image.cpp" line="0" count="180000">
5 <sample>
6 <count>130000</count>
7 <file>/test/path/for/src/image.cpp</file>
8 <line>42</line>
9 </sample>
10 <sample>
11 <count>40000</count>
12 <file>/test/path/for/src/image.cpp</file>
13 <line>36</line>
14 </sample>
15 <sample>
16 <count>9999</count>
17 <file>/test/path/for/src/image.cpp</file>
18 <line>31</line>
19 </sample>
20 <sample>
21 <count>1</count>
22 <file>/test/path/for/src/image.cpp</file>
23 <line>39</line>
24 </sample>
25 </symbol>
26 <symbol name="TestFunction2(int, int)" file="/test/path/for/src/image2.cpp" line="0" count="20000">
27 <sample>
28 <count>19998</count>
29 <file>/test/path/for/src/image2.cpp</file>
30 <line>94</line>
31 </sample>
32 <sample>
33 <count>1</count>
34 <file>/test/path/for/src/image2.cpp</file>
35 <line>12</line>
36 </sample>
37 <sample>
38 <count>1</count>
39 <file>/test/path/for/src/image2.cpp</file>
40 <line>55</line>
41 </sample>
42 </symbol>
43 </symbols>
44 </image>
45 </model-data>
+0
-60
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestPlugin.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import org.eclipse.core.runtime.Plugin;
15 import org.osgi.framework.BundleContext;
16
17 public class TestPlugin extends Plugin {
18
19 // The plug-in ID
20 public static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.tests"; //$NON-NLS-1$
21
22 public static final String SYMBOL1_FILENAME = "/test/path/for/src/image.cpp"; //$NON-NLS-1$
23 public static final String SYMBOL2_FILENAME = "/test/path/for/src/image2.cpp"; //$NON-NLS-1$
24
25 public static final String DEP2_SYMBOL1_FILENAME = "dl-lookup.c"; //$NON-NLS-1$
26 public static final String DEP2_SYMBOL2_FILENAME = "rawmemchr.c"; //$NON-NLS-1$
27 public static final String DEP4_SYMBOL_FILENAME = ""; //$NON-NLS-1$
28
29 // The shared instance
30 private static TestPlugin plugin = null;
31
32 /**
33 * The constructor
34 */
35 public TestPlugin() {
36 }
37
38 @Override
39 public void start(BundleContext context) throws Exception {
40 super.start(context);
41 plugin = this;
42 }
43
44 @Override
45 public void stop(BundleContext context) throws Exception {
46 plugin = null;
47 super.stop(context);
48 }
49
50 /**
51 * Returns the shared instance
52 *
53 * @return the shared instance
54 */
55 public static TestPlugin getDefault() {
56 return plugin;
57 }
58
59 }
+0
-76
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelEvent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import java.io.FileNotFoundException;
15 import java.io.FileReader;
16 import java.io.IOException;
17
18 import javax.xml.parsers.ParserConfigurationException;
19 import javax.xml.parsers.SAXParserFactory;
20
21 import org.eclipse.core.runtime.FileLocator;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
24 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
28 import org.xml.sax.InputSource;
29 import org.xml.sax.SAXException;
30 import org.xml.sax.XMLReader;
31
32 /*
33 * A faked OpModelSession object of a typical image + some dependent images.
34 */
35 public class TestingOpModelEvent extends OpModelEvent {
36 private static final String REL_PATH_TO_TEST_XML = "resources/test_model-data.xml"; //$NON-NLS-1$
37 public static final String IMAGE_OUTPUT = "/test/path/for/image, Count: 205000, Dependent Count: 5000\nSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\tSample: Line #: 42, Count: 130000\n\tSample: Line #: 36, Count: 40000\n\tSample: Line #: 31, Count: 9999\n\tSample: Line #: 39, Count: 1\nSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\tSample: Line #: 94, Count: 19998\n\tSample: Line #: 12, Count: 1\n\tSample: Line #: 55, Count: 1\nDependent Image: /no-vmlinux, Count: 4400\nDependent Image: /lib64/ld-2.9.so, Count: 300\n\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\tSample: Line #: 0, Count: 299\n\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\tSample: Line #: 0, Count: 1\nDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\nDependent Image: /lib64/libc-2.9.so, Count: 140\n\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\tSample: Line #: 0, Count: 100\n\tSymbols: bcopy, File: , Count: 40\n\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
38 public static final String IMAGE_OUTPUT_WITHTAB = "/test/path/for/image, Count: 205000, Dependent Count: 5000\n\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\tSample: Line #: 42, Count: 130000\n\t\tSample: Line #: 36, Count: 40000\n\t\tSample: Line #: 31, Count: 9999\n\t\tSample: Line #: 39, Count: 1\n\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\tSample: Line #: 94, Count: 19998\n\t\tSample: Line #: 12, Count: 1\n\t\tSample: Line #: 55, Count: 1\n\tDependent Image: /no-vmlinux, Count: 4400\n\tDependent Image: /lib64/ld-2.9.so, Count: 300\n\t\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\t\tSample: Line #: 0, Count: 299\n\t\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\t\tSample: Line #: 0, Count: 1\n\tDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\n\tDependent Image: /lib64/libc-2.9.so, Count: 140\n\t\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\t\tSample: Line #: 0, Count: 100\n\t\tSymbols: bcopy, File: , Count: 40\n\t\t\tSample: Line #: 0, Count: 40\n"; //$NON-NLS-1$
39
40 public TestingOpModelEvent(OpModelSession session, String name) {
41 super(session, name);
42 }
43 @Override
44 protected OpModelImage getNewImage() {
45 /* this code mostly taken from OpxmlRunner */
46 OpModelImage parsedImage = null;
47 try {
48 XMLReader reader = null;
49 parsedImage = new OpModelImage();
50 ModelDataProcessor.CallData image = new ModelDataProcessor.CallData(parsedImage);
51 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(image);
52
53 // Create XMLReader
54 SAXParserFactory factory = SAXParserFactory.newInstance();
55 reader = factory.newSAXParser().getXMLReader();
56
57 // Set content/error handlers
58 reader.setContentHandler(handler);
59 reader.setErrorHandler(handler);
60
61 String filePath = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
62 reader.parse(new InputSource(new FileReader(filePath)));
63 } catch (FileNotFoundException e) {
64 e.printStackTrace();
65 } catch (IOException e) {
66 e.printStackTrace();
67 } catch (SAXException e) {
68 e.printStackTrace();
69 } catch (ParserConfigurationException e) {
70 e.printStackTrace();
71 }
72
73 return parsedImage;
74 }
75 }
+0
-76
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelEvent2.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import java.io.FileNotFoundException;
15 import java.io.FileReader;
16 import java.io.IOException;
17
18 import javax.xml.parsers.ParserConfigurationException;
19 import javax.xml.parsers.SAXParserFactory;
20
21 import org.eclipse.core.runtime.FileLocator;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
24 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
28 import org.xml.sax.InputSource;
29 import org.xml.sax.SAXException;
30 import org.xml.sax.XMLReader;
31
32 /*
33 * A faked OpModelSession object of a typical image with no dependent images.
34 */
35 public class TestingOpModelEvent2 extends OpModelEvent {
36 private static final String REL_PATH_TO_TEST_XML = "resources/test_model-data_nodepimage.xml"; //$NON-NLS-1$
37 public static final String IMAGE_OUTPUT = "/test/path/for/image, Count: 205000, Dependent Count: 5000\nSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\tSample: Line #: 42, Count: 130000\n\tSample: Line #: 36, Count: 40000\n\tSample: Line #: 31, Count: 9999\n\tSample: Line #: 39, Count: 1\nSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\tSample: Line #: 94, Count: 19998\n\tSample: Line #: 12, Count: 1\n\tSample: Line #: 55, Count: 1\n"; //$NON-NLS-1$
38 public static final String IMAGE_OUTPUT_WITHTAB = "/test/path/for/image, Count: 205000, Dependent Count: 5000\n\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\tSample: Line #: 42, Count: 130000\n\t\tSample: Line #: 36, Count: 40000\n\t\tSample: Line #: 31, Count: 9999\n\t\tSample: Line #: 39, Count: 1\n\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\tSample: Line #: 94, Count: 19998\n\t\tSample: Line #: 12, Count: 1\n\t\tSample: Line #: 55, Count: 1\n"; //$NON-NLS-1$
39
40 public TestingOpModelEvent2(OpModelSession session, String name) {
41 super(session, name);
42 }
43 @Override
44 protected OpModelImage getNewImage() {
45 /* this code mostly taken from OpxmlRunner */
46 OpModelImage parsedImage = null;
47 try {
48 XMLReader reader = null;
49 parsedImage = new OpModelImage();
50 ModelDataProcessor.CallData image = new ModelDataProcessor.CallData(parsedImage);
51 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(image);
52
53 // Create XMLReader
54 SAXParserFactory factory = SAXParserFactory.newInstance();
55 reader = factory.newSAXParser().getXMLReader();
56
57 // Set content/error handlers
58 reader.setContentHandler(handler);
59 reader.setErrorHandler(handler);
60
61 String filePath = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
62 reader.parse(new InputSource(new FileReader(filePath)));
63 } catch (FileNotFoundException e) {
64 e.printStackTrace();
65 } catch (IOException e) {
66 e.printStackTrace();
67 } catch (SAXException e) {
68 e.printStackTrace();
69 } catch (ParserConfigurationException e) {
70 e.printStackTrace();
71 }
72
73 return parsedImage;
74 }
75 }
+0
-75
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelEvent3.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import java.io.FileNotFoundException;
15 import java.io.FileReader;
16 import java.io.IOException;
17
18 import javax.xml.parsers.ParserConfigurationException;
19 import javax.xml.parsers.SAXParserFactory;
20
21 import org.eclipse.core.runtime.FileLocator;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
24 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
26 import org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler;
27 import org.eclipse.linuxtools.internal.oprofile.core.opxml.modeldata.ModelDataProcessor;
28 import org.xml.sax.InputSource;
29 import org.xml.sax.SAXException;
30 import org.xml.sax.XMLReader;
31
32 /*
33 * A faked OpModelSession object when there are multiple images in the session,
34 * simulating when the session was not created from within the eclipse plugin.
35 */
36 public class TestingOpModelEvent3 extends OpModelEvent {
37 private static final String REL_PATH_TO_TEST_XML = "resources/test_model-data_multiple_image.xml"; //$NON-NLS-1$
38
39 public TestingOpModelEvent3(OpModelSession session, String name) {
40 super(session, name);
41 }
42 @Override
43 protected OpModelImage getNewImage() {
44 /* this code mostly taken from OpxmlRunner */
45 OpModelImage parsedImage = null;
46 try {
47 XMLReader reader = null;
48 parsedImage = new OpModelImage();
49 ModelDataProcessor.CallData image = new ModelDataProcessor.CallData(parsedImage);
50 OprofileSAXHandler handler = OprofileSAXHandler.getInstance(image);
51
52 // Create XMLReader
53 SAXParserFactory factory = SAXParserFactory.newInstance();
54 reader = factory.newSAXParser().getXMLReader();
55
56 // Set content/error handlers
57 reader.setContentHandler(handler);
58 reader.setErrorHandler(handler);
59
60 String filePath = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(), new Path(REL_PATH_TO_TEST_XML), null)).getFile();
61 reader.parse(new InputSource(new FileReader(filePath)));
62 } catch (FileNotFoundException e) {
63 e.printStackTrace();
64 } catch (IOException e) {
65 e.printStackTrace();
66 } catch (SAXException e) {
67 e.printStackTrace();
68 } catch (ParserConfigurationException e) {
69 e.printStackTrace();
70 }
71
72 return parsedImage;
73 }
74 }
+0
-32
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelEvent4.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
15 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
17
18 /*
19 * A faked OpModelSession object where there is no image.
20 * Note: technically this shouldn't really happen in normal operation
21 * of the plugin unless there is a major b0rk-up with the xml parsers..
22 */
23 public class TestingOpModelEvent4 extends OpModelEvent {
24 public TestingOpModelEvent4(OpModelSession session, String name) {
25 super(session, name);
26 }
27 @Override
28 protected OpModelImage getNewImage() {
29 return null;
30 }
31 }
+0
-40
oprofile/org.eclipse.linuxtools.oprofile.tests/src/org/eclipse/linuxtools/oprofile/tests/TestingOpModelRoot.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.tests;
13
14 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
15 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelRoot;
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
17
18 public class TestingOpModelRoot extends OpModelRoot {
19 public static final String ROOT_OUTPUT = "Session: testSession1\n\tEvent: testEvent1e1\n\t\tImage: /test/path/for/image, Count: 205000, Dependent Count: 5000\n\t\t\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\t\t\tSample: Line #: 42, Count: 130000\n\t\t\t\tSample: Line #: 36, Count: 40000\n\t\t\t\tSample: Line #: 31, Count: 9999\n\t\t\t\tSample: Line #: 39, Count: 1\n\t\t\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\t\t\tSample: Line #: 94, Count: 19998\n\t\t\t\tSample: Line #: 12, Count: 1\n\t\t\t\tSample: Line #: 55, Count: 1\n\t\t\tDependent Image: /no-vmlinux, Count: 4400\n\t\t\tDependent Image: /lib64/ld-2.9.so, Count: 300\n\t\t\t\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\t\t\t\tSample: Line #: 0, Count: 299\n\t\t\t\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\t\t\t\tSample: Line #: 0, Count: 1\n\t\t\tDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\n\t\t\tDependent Image: /lib64/libc-2.9.so, Count: 140\n\t\t\t\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\t\t\t\tSample: Line #: 0, Count: 100\n\t\t\t\tSymbols: bcopy, File: , Count: 40\n\t\t\t\t\tSample: Line #: 0, Count: 40\nSession: testSession2\n\tEvent: testEvent1e2\n\t\tImage: /test/path/for/image, Count: 205000, Dependent Count: 5000\n\t\t\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\t\t\tSample: Line #: 42, Count: 130000\n\t\t\t\tSample: Line #: 36, Count: 40000\n\t\t\t\tSample: Line #: 31, Count: 9999\n\t\t\t\tSample: Line #: 39, Count: 1\n\t\t\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\t\t\tSample: Line #: 94, Count: 19998\n\t\t\t\tSample: Line #: 12, Count: 1\n\t\t\t\tSample: Line #: 55, Count: 1\n\t\t\tDependent Image: /no-vmlinux, Count: 4400\n\t\t\tDependent Image: /lib64/ld-2.9.so, Count: 300\n\t\t\t\tSymbols: do_lookup_x, File: dl-lookup.c, Count: 299\n\t\t\t\t\tSample: Line #: 0, Count: 299\n\t\t\t\tSymbols: _dl_unload_cache, File: rawmemchr.c, Count: 1\n\t\t\t\t\tSample: Line #: 0, Count: 1\n\t\t\tDependent Image: /usr/lib64/libstdc++.so.6.0.10, Count: 160\n\t\t\tDependent Image: /lib64/libc-2.9.so, Count: 140\n\t\t\t\tSymbols: _IO_new_file_seekoff, File: , Count: 100\n\t\t\t\t\tSample: Line #: 0, Count: 100\n\t\t\t\tSymbols: bcopy, File: , Count: 40\n\t\t\t\t\tSample: Line #: 0, Count: 40\n\tEvent: testEvent2e2\n\t\tImage: /test/path/for/image, Count: 200000\n\t\t\tSymbols: TestFunction1(int), File: /test/path/for/src/image.cpp, Count: 180000\n\t\t\t\tSample: Line #: 42, Count: 130000\n\t\t\t\tSample: Line #: 36, Count: 40000\n\t\t\t\tSample: Line #: 31, Count: 9999\n\t\t\t\tSample: Line #: 39, Count: 1\n\t\t\tSymbols: TestFunction2(int, int), File: /test/path/for/src/image2.cpp, Count: 20000\n\t\t\t\tSample: Line #: 94, Count: 19998\n\t\t\t\tSample: Line #: 12, Count: 1\n\t\t\t\tSample: Line #: 55, Count: 1\n\tEvent: testEvent3e2\n\t\tImage: , Count: -1\n\tEvent: testEvent4e2\n"; //$NON-NLS-1$
20 public static final String NAME_E1 = "testSession1"; //$NON-NLS-1$
21 public static final String NAME_E2 = "testSession2"; //$NON-NLS-1$
22 public static final String NAME_E1_S1 = "testEvent1e1"; //$NON-NLS-1$
23 public static final String NAME_E2_S1 = "testEvent1e2"; //$NON-NLS-1$
24 public static final String NAME_E2_S2 = "testEvent2e2"; //$NON-NLS-1$
25 public static final String NAME_E2_S3 = "testEvent3e2"; //$NON-NLS-1$
26 public static final String NAME_E2_S4 = "testEvent4e2"; //$NON-NLS-1$
27 @Override
28 protected OpModelSession[] getNewSessions() {
29 //fake running opxml and simply return hand-made events
30 OpModelSession[] e = {new OpModelSession(NAME_E1), new OpModelSession(NAME_E2), null};
31 e[0].setEvents(new TestingOpModelEvent[] {new TestingOpModelEvent(e[0], NAME_E1_S1)});
32 e[1].setEvents(new OpModelEvent[] {
33 new TestingOpModelEvent(e[1], NAME_E2_S1),
34 new TestingOpModelEvent2(e[1], NAME_E2_S2),
35 new TestingOpModelEvent3(e[1], NAME_E2_S3),
36 new TestingOpModelEvent4(e[1], NAME_E2_S4)});
37 return e;
38 }
39 }
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.ui/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.ui/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-34
oprofile/org.eclipse.linuxtools.oprofile.ui/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.ui</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 <buildCommand>
23 <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
24 <arguments>
25 </arguments>
26 </buildCommand>
27 </buildSpec>
28 <natures>
29 <nature>org.eclipse.pde.PluginNature</nature>
30 <nature>org.eclipse.jdt.core.javanature</nature>
31 <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
32 </natures>
33 </projectDescription>
+0
-117
oprofile/org.eclipse.linuxtools.oprofile.ui/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
5 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
6 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
7 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
8 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
9 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
10 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
13 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
15 org.eclipse.jdt.core.compiler.debug.localVariable=generate
16 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
17 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
18 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
19 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
20 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
21 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
22 org.eclipse.jdt.core.compiler.problem.deadCode=warning
23 org.eclipse.jdt.core.compiler.problem.deprecation=warning
24 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
25 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
26 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
27 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
29 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
30 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
31 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
32 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
33 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
34 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
35 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
36 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
37 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
38 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
39 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
40 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
41 org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
42 org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
43 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
44 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
45 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
46 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
47 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
48 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
49 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
50 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
51 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
52 org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
53 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
54 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
55 org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
56 org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
57 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
58 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
59 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
60 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
61 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
62 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
63 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
64 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
65 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
66 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
67 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
68 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
69 org.eclipse.jdt.core.compiler.problem.nullReference=warning
70 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
71 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
72 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
73 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
74 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
75 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
76 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
77 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
78 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
79 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
80 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
81 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
82 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
84 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
85 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
86 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
87 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
88 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
89 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
90 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
91 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
92 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
93 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
94 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
95 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
96 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
97 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
98 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
99 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
100 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
101 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
102 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
103 org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
104 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
105 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
106 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
107 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
108 org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
109 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
110 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
111 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
112 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
116 org.eclipse.jdt.core.compiler.source=1.8
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.ui/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_to_enhanced_for_loop=false
16 sp_cleanup.correct_indentation=false
17 sp_cleanup.format_source_code=false
18 sp_cleanup.format_source_code_changes_only=false
19 sp_cleanup.make_local_variable_final=true
20 sp_cleanup.make_parameters_final=false
21 sp_cleanup.make_private_fields_final=true
22 sp_cleanup.make_type_abstract_if_missing_method=false
23 sp_cleanup.make_variable_declarations_final=false
24 sp_cleanup.never_use_blocks=false
25 sp_cleanup.never_use_parentheses_in_expressions=true
26 sp_cleanup.on_save_use_additional_actions=true
27 sp_cleanup.organize_imports=true
28 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
29 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
33 sp_cleanup.remove_private_constructors=true
34 sp_cleanup.remove_trailing_whitespaces=true
35 sp_cleanup.remove_trailing_whitespaces_all=true
36 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
37 sp_cleanup.remove_unnecessary_casts=true
38 sp_cleanup.remove_unnecessary_nls_tags=false
39 sp_cleanup.remove_unused_imports=true
40 sp_cleanup.remove_unused_local_variables=false
41 sp_cleanup.remove_unused_private_fields=true
42 sp_cleanup.remove_unused_private_members=false
43 sp_cleanup.remove_unused_private_methods=true
44 sp_cleanup.remove_unused_private_types=true
45 sp_cleanup.sort_members=false
46 sp_cleanup.sort_members_all=false
47 sp_cleanup.use_blocks=false
48 sp_cleanup.use_blocks_only_for_return_and_throw=false
49 sp_cleanup.use_parentheses_in_expressions=false
50 sp_cleanup.use_this_for_non_static_field_access=false
51 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
52 sp_cleanup.use_this_for_non_static_method_access=false
53 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+0
-25
oprofile/org.eclipse.linuxtools.oprofile.ui/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.ui;singleton:=true
4 Bundle-Version: 2.2.0.qualifier
5 Bundle-Vendor: %bundleProvider
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
8 org.eclipse.ui;bundle-version="3.4.0",
9 org.eclipse.linuxtools.profiling.launch;bundle-version="0.10.0",
10 org.eclipse.core.filesystem;bundle-version="1.3.100",
11 org.eclipse.debug.ui
12 Bundle-Activator: org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin
13 Bundle-ActivationPolicy: lazy
14 Bundle-Localization: plugin
15 Export-Package: org.eclipse.linuxtools.internal.oprofile.ui,
16 org.eclipse.linuxtools.oprofile.ui.model,
17 org.eclipse.linuxtools.internal.oprofile.ui.view
18 Import-Package: org.eclipse.core.resources,
19 org.eclipse.jface.text,
20 org.eclipse.linuxtools.internal.oprofile.core,
21 org.eclipse.linuxtools.internal.oprofile.core.model,
22 org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions,
23 org.eclipse.linuxtools.profiling.ui
24 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.ui
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.ui/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-10
oprofile/org.eclipse.linuxtools.oprofile.ui/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.xml,\
4 plugin.properties,\
5 icons/,\
6 about.html
7 src.includes = about.html,\
8 icons/
9 individualSourceBundles=true
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/annotate.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/dependent.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/dump.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/error.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/event.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/image.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/oprofile_view.png less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/sample.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/session.gif less more
Binary diff not shown
oprofile/org.eclipse.linuxtools.oprofile.ui/icons/symbol.gif less more
Binary diff not shown
+0
-31
oprofile/org.eclipse.linuxtools.oprofile.ui/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2004, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Red Hat, Inc. - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile UI Plug-in
13 bundleProvider=Eclipse Linux Tools
14
15 view.groupname=C/C++ Profiling
16 view.name=OProfile
17 OcountView.name=OCount
18
19 view.annotate.toggle.label=Toggle Annotation
20 view.annotate.toggle.tooltip=Toggle Annotation
21
22 annotateCommand.name=Annotate
23 lt.min.pct.label=OProfile Annotation: <0.01%
24 lt.05.pct.label=OProfile Annotation: 0.01% - 4.99%
25 lt.10.pct.label=OProfile Annotation: 05% - 9.99%
26 lt.20.pct.label=OProfile Annotation: 10% - 19.99%
27 lt.30.pct.label=OProfile Annotation: 20% - 29.99%
28 lt.40.pct.label=OProfile Annotation: 30% - 39.99%
29 lt.50.pct.label=OProfile Annotation: 40% - 49.99%
30 gt.50.pct.label=OProfile Annotation: >50%
+0
-23
oprofile/org.eclipse.linuxtools.oprofile.ui/plugin.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <?eclipse version="3.2"?>
2 <plugin>
3 <extension
4 point="org.eclipse.ui.views">
5 <view
6 category="org.eclipse.linuxtools.profiling.ui"
7 class="org.eclipse.linuxtools.internal.oprofile.ui.view.OprofileView"
8 icon="icons/oprofile_view.png"
9 id="org.eclipse.linuxtools.oprofile.ui.OProfileView"
10 name="%view.name"
11 restorable="true">
12 </view>
13 <view
14 category="org.eclipse.linuxtools.profiling.ui"
15 class="org.eclipse.linuxtools.internal.oprofile.ui.view.OcountView"
16 icon="icons/oprofile_view.png"
17 id="org.eclipse.linuxtools.oprofile.ui.OCountView"
18 name="%OcountView.name"
19 restorable="false">
20 </view>
21 </extension>
22 </plugin>
+0
-26
oprofile/org.eclipse.linuxtools.oprofile.ui/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.ui</artifactId>
21 <version>2.2.0-SNAPSHOT</version>
22 <packaging>eclipse-plugin</packaging>
23
24 <name>Linux Tools OProfile UI Plug-in</name>
25 </project>
+0
-35
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/OprofileUiMessages.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.oprofile.ui;
14
15 import java.util.MissingResourceException;
16 import java.util.ResourceBundle;
17
18 public final class OprofileUiMessages {
19
20 private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.oprofile.ui.oprofileui"; //$NON-NLS-1$
21
22 private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
23
24 private OprofileUiMessages() {
25 }
26
27 public static String getString(String key) {
28 try {
29 return RESOURCE_BUNDLE.getString(key);
30 } catch (MissingResourceException e) {
31 return '!' + key + '!';
32 }
33 }
34 }
+0
-147
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/OprofileUiPlugin.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Keith Seitz <keiths@redhat.com> - initial API and implementation
11 * Kent Sebastian <ksebasti@redhat.com> -
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.oprofile.ui;
15
16 import java.text.DecimalFormat;
17 import java.text.NumberFormat;
18
19 import org.eclipse.jface.resource.ImageDescriptor;
20 import org.eclipse.linuxtools.internal.oprofile.ui.view.OcountView;
21 import org.eclipse.linuxtools.internal.oprofile.ui.view.OprofileView;
22 import org.eclipse.swt.widgets.Shell;
23 import org.eclipse.ui.IWorkbenchWindow;
24 import org.eclipse.ui.plugin.AbstractUIPlugin;
25 import org.osgi.framework.BundleContext;
26
27
28 /**
29 * The main plugin class to be used in the desktop.
30 */
31 public class OprofileUiPlugin extends AbstractUIPlugin {
32 //The shared instance.
33 private static OprofileUiPlugin plugin;
34
35 private OprofileView oprofileview = null;
36 private OcountView ocountview = null;
37
38 public static final String PLUGIN_ID = "org.eclipse.linuxtools.oprofile.ui"; //$NON-NLS-1$
39 public static final String ID_OPROFILE_VIEW = PLUGIN_ID + ".OProfileView"; //$NON-NLS-1$
40 public static final String ID_OCOUNT_VIEW = PLUGIN_ID + ".OCountView"; //$NON-NLS-1$
41
42 private static final String ICON_PATH = "icons/"; //$NON-NLS-1$
43 public static final String SESSION_ICON = ICON_PATH + "session.gif"; //$NON-NLS-1$
44 public static final String EVENT_ICON = ICON_PATH + "event.gif"; //$NON-NLS-1$
45 public static final String IMAGE_ICON = ICON_PATH + "image.gif"; //$NON-NLS-1$
46 public static final String DEPENDENT_ICON = ICON_PATH + "dependent.gif"; //$NON-NLS-1$
47 public static final String SYMBOL_ICON = ICON_PATH + "symbol.gif"; //$NON-NLS-1$
48 public static final String SAMPLE_ICON = ICON_PATH + "sample.gif"; //$NON-NLS-1$
49 public static final String ERROR_ICON = ICON_PATH + "error.png"; //$NON-NLS-1$
50
51 public static final double MINIMUM_SAMPLE_PERCENTAGE = 0.0001;
52
53 public static final String ANNOTATION_TYPE_LT_MIN_PERCENTAGE = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.min.pct"; //$NON-NLS-1$
54 public static final String ANNOTATION_TYPE_LT_05 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.05.pct"; //$NON-NLS-1$
55 public static final String ANNOTATION_TYPE_LT_10 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.10.pct"; //$NON-NLS-1$
56 public static final String ANNOTATION_TYPE_LT_20 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.20.pct"; //$NON-NLS-1$
57 public static final String ANNOTATION_TYPE_LT_30 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.30.pct"; //$NON-NLS-1$
58 public static final String ANNOTATION_TYPE_LT_40 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.40.pct"; //$NON-NLS-1$
59 public static final String ANNOTATION_TYPE_LT_50 = "org.eclipse.linuxtools.oprofile.ui.annotation.lt.50.pct"; //$NON-NLS-1$
60 public static final String ANNOTATION_TYPE_GT_50 = "org.eclipse.linuxtools.oprofile.ui.annotation.gt.50.pct"; //$NON-NLS-1$
61
62 /**
63 * The constructor.
64 */
65 public OprofileUiPlugin() {
66 }
67
68 /**
69 * This method is called upon plug-in activation
70 */
71 @Override
72 public void start(BundleContext context) throws Exception {
73 super.start(context);
74 plugin = this;
75 }
76
77 /**
78 * This method is called when the plug-in is stopped
79 */
80 @Override
81 public void stop(BundleContext context) throws Exception {
82 super.stop(context);
83 plugin = null;
84 }
85
86
87 /**
88 * Returns the shared instance.
89 */
90 public static OprofileUiPlugin getDefault() {
91 return plugin;
92 }
93
94 /**
95 * Returns an image descriptor for the image file at the given
96 * plug-in relative path
97 *
98 * @param path the path
99 * @return the image descriptor
100 */
101 public static ImageDescriptor getImageDescriptor(String path) {
102 return imageDescriptorFromPlugin(PLUGIN_ID, path);
103 }
104
105 public OprofileView getOprofileView() {
106 return oprofileview;
107 }
108
109 public void setOprofileView(OprofileView oprofileview) {
110 this.oprofileview = oprofileview;
111 }
112
113 public OcountView getOcountView() {
114 return ocountview;
115 }
116
117 public void setOcountView(OcountView ocountview) {
118 this.ocountview = ocountview;
119 }
120
121 public static IWorkbenchWindow getActiveWorkbenchWindow() {
122 return getDefault().getWorkbench().getActiveWorkbenchWindow();
123 }
124
125 public static Shell getActiveWorkbenchShell() {
126 IWorkbenchWindow window = getActiveWorkbenchWindow();
127 if (window != null) {
128 return window.getShell();
129 }
130 return null;
131 }
132
133 public static String getPercentageString(double percentage) {
134 NumberFormat nf = NumberFormat.getPercentInstance();
135 if (nf instanceof DecimalFormat) {
136 nf.setMinimumFractionDigits(2);
137 nf.setMaximumFractionDigits(2);
138 }
139
140 if (percentage < OprofileUiPlugin.MINIMUM_SAMPLE_PERCENTAGE) {
141 return "<" + nf.format(OprofileUiPlugin.MINIMUM_SAMPLE_PERCENTAGE); //$NON-NLS-1$
142 } else {
143 return nf.format(percentage);
144 }
145 }
146 }
+0
-51
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/oprofileui.properties less more
0 ######################################################################
1 # Copyright (c) 2004, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Keith Seitz <keiths@redhat.com> - initial implementation
11 # Kent Sebastian <ksebasti@redhat.com>
12 ######################################################################
13 savedialog.title=Save Session
14 savedialog.message=Enter the new name of the default session
15 savedialog.initial=
16 savedialog.validator.invalidChar={0} is an invalid character in session name \"{1}\".
17 savedialog.validator.containsWhitespace=Session name \"{0}\" cannot contain whitespace.
18 savedialog.validator.exists=Session \"{0}\" already exists.
19
20 defaultsessiondialog.nodefaultsession.title=Error Saving Default Session
21 defaultsessiondialog.nodefaultsession.message=No default session exists.
22
23 view.dialog.parsing.text=Parsing OProfile Data
24 view.actions.refresh.label=Refresh View
25 view.actions.logreader.label=Open OProfile Daemon Log
26 view.actions.savedefaultsession.label=Save Default Session
27 view.menu.sortby.label=Sort By
28 view.actions.default.label=Default
29 view.actions.event.label=Event
30 view.actions.session.label=Session
31 view.actions.function.label=Function
32 view.actions.lib.label=Library
33 view.actions.line.label=Line number
34
35
36 oprofiled.logreader.dialog.title=OProfiled Log
37 oprofiled.logreader.error.fileNotFound=Log file empty or does not exist.
38 oprofiled.logreader.error.io=Error reading log file.
39
40 uimodel.percentage.in=in
41 uimodel.sample.on.line=on line
42 uimodel.dependent.dependent.images=dependent images
43 UiModelSession_current=current
44
45 opxmlParse.error.multipleImages=Error: samples not created from Eclipse-OProfile plugin. Please remove this session.
46
47 annotation.text.from=from event
48 annotation.text.in=in session
49
50 root.error.nosamples=No profiling data is on the system.
+0
-90
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OcountView.java less more
0 /*******************************************************************************
1 * Copyright (c) 2015, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat Inc - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import org.eclipse.debug.ui.IDebugUIConstants;
15 import org.eclipse.jface.resource.JFaceResources;
16 import org.eclipse.jface.text.Document;
17 import org.eclipse.jface.text.TextViewer;
18 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
19 import org.eclipse.swt.SWT;
20 import org.eclipse.swt.layout.GridData;
21 import org.eclipse.swt.widgets.Composite;
22 import org.eclipse.swt.widgets.Control;
23 import org.eclipse.ui.PartInitException;
24 import org.eclipse.ui.PlatformUI;
25 import org.eclipse.ui.part.ViewPart;
26
27 /**
28 * Simple View to show text output of OCount
29 * @author jjohnstn
30 *
31 */
32 public class OcountView extends ViewPart {
33
34 String text = ""; //$NON-NLS-1$
35 TextViewer viewer;
36 Composite parent;
37
38 @Override
39 public void createPartControl(Composite parent) {
40 viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL);
41 viewer.setEditable(false);
42 viewer.getTextWidget().setFont(JFaceResources.getFont(IDebugUIConstants.PREF_DETAIL_PANE_FONT));
43 Control control=viewer.getControl();
44 GridData gd=new GridData(GridData.FILL_BOTH);
45 control.setLayoutData(gd);
46 Document d = new Document(text);
47 viewer.setDocument(d);
48 viewer.refresh();
49 OprofileUiPlugin.getDefault().setOcountView(this);
50 this.parent = parent;
51 }
52
53 public void setText(String text) {
54 Document d = new Document(text);
55 viewer.setDocument(d);
56 }
57 /**
58 * Refresh the view or open a new instance if it was closed.
59 */
60 public void refreshView() {
61 // Need to create another view object if it was closed.
62 if(parent == null || parent.isDisposed()) {
63 try {
64 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(OprofileUiPlugin.ID_OCOUNT_VIEW);
65 String currentText = viewer.getDocument().get();
66 OprofileUiPlugin.getDefault().getOcountView().setText(currentText);
67 return;
68 } catch (PartInitException e2) {
69 e2.printStackTrace();
70 }
71 }
72 viewer.refresh();
73 }
74 /**
75 * Get the Text Viewer
76 *
77 * @return the text viewer for this View
78 */
79 public TextViewer getViewer() {
80 return viewer;
81 }
82
83 @Override
84 public void setFocus() {
85 // TODO Auto-generated method stub
86
87 }
88
89 }
+0
-177
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileView.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import java.lang.reflect.InvocationTargetException;
15
16 import org.eclipse.jface.action.IAction;
17 import org.eclipse.jface.action.IMenuManager;
18 import org.eclipse.jface.action.MenuManager;
19 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
20 import org.eclipse.jface.operation.IRunnableWithProgress;
21 import org.eclipse.jface.viewers.ISelectionChangedListener;
22 import org.eclipse.jface.viewers.ITreeSelection;
23 import org.eclipse.jface.viewers.SelectionChangedEvent;
24 import org.eclipse.jface.viewers.TreeViewer;
25 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelRoot;
26 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
27 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
28 import org.eclipse.linuxtools.oprofile.ui.model.UiModelRoot;
29 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSession;
30 import org.eclipse.swt.SWT;
31 import org.eclipse.swt.widgets.Composite;
32 import org.eclipse.swt.widgets.Display;
33 import org.eclipse.ui.PartInitException;
34 import org.eclipse.ui.PlatformUI;
35 import org.eclipse.ui.part.ViewPart;
36
37 /**
38 * The view for the OProfile plugin. Shows the elements gathered by the data model
39 * in a tree viewer, parsed by the ui model (in the model package). The hierarchy
40 * (as it is displayed) looks like:
41 *
42 * UiModelRoot (not shown in the view)
43 * \_ UiModelEvent
44 * \_ ...
45 * \_ UiModelEvent
46 * \_ UiModelSession
47 * \_ ...
48 * \_ UiModelSession
49 * \_ UiModelImage
50 * | \_ UiModelSymbol
51 * | \_ ...
52 * | \_ UiModelSymbol
53 * | \_ UiModelSample
54 * | \_ ...
55 * | \_ UiModelSample
56 * \_ UiModelDependent
57 * \_ UiModelImage
58 * | \_ ... (see above)
59 * \_ ...
60 *
61 * The refreshView() function takes care of launching the data model parsing and
62 * ui model parsing in a separate thread.
63 */
64 public class OprofileView extends ViewPart implements ISelectionChangedListener {
65 private TreeViewer viewer;
66 private IAction deleteSessionAction;
67 private IAction saveDefaultSessionAction;
68
69 @Override
70 public void createPartControl(Composite parent) {
71 createTreeViewer(parent);
72 createActionMenu();
73
74 OprofileUiPlugin.getDefault().setOprofileView(this);
75 }
76
77 private void createTreeViewer(Composite parent) {
78 viewer = new TreeViewer(parent, SWT.SINGLE);
79 viewer.setContentProvider(new OprofileViewContentProvider());
80 viewer.setLabelProvider(new OprofileViewLabelProvider());
81 viewer.addDoubleClickListener(new OprofileViewDoubleClickListener());
82 viewer.addSelectionChangedListener(this);
83 }
84
85 private void createActionMenu() {
86 IMenuManager manager = getViewSite().getActionBars().getMenuManager();
87
88 manager.add(new OprofileViewLogReaderAction());
89 manager.add(new OprofileViewRefreshAction());
90 saveDefaultSessionAction = new OprofileViewSaveDefaultSessionAction();
91 manager.add(saveDefaultSessionAction);
92 deleteSessionAction = new OprofileViewDeleteSessionAction(getTreeViewer());
93 manager.add(deleteSessionAction);
94
95 MenuManager sortMenu = new MenuManager(
96 OprofileUiMessages.getString("view.menu.sortby.label")); //$NON-NLS-1$
97
98 for (UiModelRoot.SortType s : UiModelRoot.SortType.values()) {
99 sortMenu.add(new OprofileViewSortAction(s,
100 OprofileViewSortAction.sortTypeMap.get(s)));
101 }
102 manager.add(sortMenu);
103
104 }
105
106 private TreeViewer getTreeViewer() {
107 return viewer;
108 }
109
110 /**
111 * Extremely convoluted way of getting the running and parsing to happen in
112 * a separate thread, with a progress monitor. In most cases and on fast
113 * machines this will probably only be a blip.
114 */
115 public void refreshView() {
116 try {
117 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(OprofileUiPlugin.ID_OPROFILE_VIEW);
118 } catch (PartInitException e) {
119 e.printStackTrace();
120 }
121
122 IRunnableWithProgress refreshRunner = monitor -> {
123 monitor.beginTask(OprofileUiMessages.getString("view.dialog.parsing.text"), 2); //$NON-NLS-1$
124
125 OpModelRoot dataModelRoot = OpModelRoot.getDefault();
126 dataModelRoot.refreshModel();
127 monitor.worked(1);
128
129 final UiModelRoot UiRoot = UiModelRoot.getDefault();
130 UiRoot.refreshModel();
131
132 Display.getDefault().asyncExec(() -> OprofileUiPlugin.getDefault().getOprofileView().getTreeViewer().setInput(UiRoot));
133 monitor.worked(1);
134 monitor.done();
135 };
136
137 ProgressMonitorDialog dialog = new ProgressMonitorDialog(null);
138 try {
139 dialog.run(true, false, refreshRunner);
140 } catch (InvocationTargetException|InterruptedException e) {
141 e.printStackTrace();
142 }
143 }
144
145 @Override
146 public void selectionChanged(SelectionChangedEvent event) {
147 ITreeSelection tsl = viewer.getStructuredSelection();
148 if (tsl.getFirstElement() instanceof UiModelSession) {
149 if (!deleteSessionAction.isEnabled()) {
150 deleteSessionAction.setEnabled(true);
151 }
152
153 if (((UiModelSession) tsl.getFirstElement()).isDefaultSession()) {
154 if (!saveDefaultSessionAction.isEnabled()) {
155 saveDefaultSessionAction.setEnabled(true);
156 }
157 }
158 } else {
159 deleteSessionAction.setEnabled(false);
160 saveDefaultSessionAction.setEnabled(false);
161
162 }
163
164 }
165
166 @Override
167 public void setFocus() {
168 // TODO Auto-generated method stub
169 }
170
171 @Override
172 public void dispose() {
173 super.dispose();
174 viewer.removeSelectionChangedListener(this);
175 }
176 }
+0
-59
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewContentProvider.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation,
11 * adapted from Keith Seitz's ProfileContentProvider
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.ui.view;
14
15 import org.eclipse.core.runtime.Assert;
16 import org.eclipse.jface.viewers.ITreeContentProvider;
17 import org.eclipse.jface.viewers.Viewer;
18 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
19
20 /**
21 * Content provider for the OprofileView's tree viewer.
22 */
23 public class OprofileViewContentProvider implements ITreeContentProvider {
24
25 @Override
26 public Object[] getChildren(Object element) {
27 Assert.isLegal(element instanceof IUiModelElement, "in OprofileViewContentProvider"); //$NON-NLS-1$
28 return ((IUiModelElement) element).getChildren();
29 }
30
31 @Override
32 public Object getParent(Object element) {
33 Assert.isLegal(element instanceof IUiModelElement, "in OprofileViewContentProvider"); //$NON-NLS-1$
34 return ((IUiModelElement) element).getParent();
35 }
36
37 @Override
38 public boolean hasChildren(Object element) {
39 Assert.isLegal(element instanceof IUiModelElement, "in OprofileViewContentProvider"); //$NON-NLS-1$
40 return ((IUiModelElement) element).hasChildren();
41 }
42
43 @Override
44 public Object[] getElements(Object parentElement) {
45 return getChildren(parentElement);
46 }
47
48 @Override
49 public void dispose() {
50 // TODO Auto-generated method stub
51 }
52
53 @Override
54 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
55 // TODO Auto-generated method stub
56 }
57
58 }
+0
-79
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewDeleteSessionAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2010, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Red Hat - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import org.eclipse.core.resources.IFolder;
15 import org.eclipse.core.runtime.CoreException;
16 import org.eclipse.jface.action.Action;
17 import org.eclipse.jface.viewers.ITreeSelection;
18 import org.eclipse.jface.viewers.TreeViewer;
19 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
20 import org.eclipse.linuxtools.internal.oprofile.core.OprofileCorePlugin;
21 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager;
22 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
23 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
24 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSession;
25
26 public class OprofileViewDeleteSessionAction extends Action {
27
28 private TreeViewer treeViewer;
29
30 public OprofileViewDeleteSessionAction(TreeViewer tree) {
31 super("Delete Session"); //$NON-NLS-1$
32 treeViewer = tree;
33 setEnabled(false);
34 }
35
36 @Override
37 public void run() {
38 ITreeSelection tsl = treeViewer.getStructuredSelection();
39 if (tsl.getFirstElement() instanceof UiModelSession) {
40 UiModelSession sess = (UiModelSession) tsl.getFirstElement();
41 deleteSession(sess);
42 }
43
44 OprofileUiPlugin.getDefault().getOprofileView().refreshView();
45 }
46
47 /**
48 * Delete the session with the specified name for the specified event
49 * @param sessionName The name of the session to delete
50 * @param eventName The name of the event containing the session
51 */
52 private void deleteSession(UiModelSession sess) {
53 String sessionName = sess.getLabelText();
54 IUiModelElement[] modelEvents = sess.getChildren();
55
56 for (int i = 0; i < modelEvents.length; i++) {
57 SessionManager.deleteSession(sessionName, modelEvents[i].getLabelText());
58 }
59 // clear out collected data by this session
60 // check if profile is done through operf or oprofile
61 if (Oprofile.OprofileProject.getProfilingBinary().equals(Oprofile.OprofileProject.OPERF_BINARY)) {
62 // delete operf_data folder
63 deleteOperfDataFolder(Oprofile.OprofileProject.getProject().getFolder(Oprofile.OprofileProject.OPERF_DATA));
64 }
65 }
66
67 public static void deleteOperfDataFolder(IFolder operfData) {
68 if(operfData.exists()) {
69 try {
70 operfData.delete(true,null);
71 } catch (CoreException e) {
72 OprofileCorePlugin.showErrorDialog("opcontrolProvider", e); //$NON-NLS-1$
73 }
74 }
75
76 }
77
78 }
+0
-92
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewDoubleClickListener.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import org.eclipse.core.resources.IProject;
15 import org.eclipse.core.runtime.CoreException;
16 import org.eclipse.jface.text.BadLocationException;
17 import org.eclipse.jface.viewers.DoubleClickEvent;
18 import org.eclipse.jface.viewers.IDoubleClickListener;
19 import org.eclipse.jface.viewers.ITreeSelection;
20 import org.eclipse.jface.viewers.TreeViewer;
21 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
22 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
23 import org.eclipse.linuxtools.oprofile.ui.model.UiModelEvent;
24 import org.eclipse.linuxtools.oprofile.ui.model.UiModelImage;
25 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSample;
26 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSession;
27 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSymbol;
28 import org.eclipse.linuxtools.profiling.ui.ProfileUIUtils;
29 import org.eclipse.ui.PartInitException;
30
31 /**
32 * Listener for the oprofile view when a user double clicks on an element in the tree.
33 *
34 * Different things occur based on the event:
35 *
36 * UiModelEvent - nothing (?)
37 * UiModelSession - save the session to a different name
38 * UiModelImage - nothing (?)
39 * UiModelSymbol - nothing (?)
40 * UiModelSample - go to line number in appropriate file
41 */
42 public class OprofileViewDoubleClickListener implements IDoubleClickListener {
43 @Override
44 public void doubleClick(DoubleClickEvent event) {
45 TreeViewer tv = (TreeViewer) event.getSource();
46 ITreeSelection tsl = tv.getStructuredSelection();
47 IUiModelElement element = (IUiModelElement) tsl.getFirstElement();
48
49 try {
50 if (element instanceof UiModelEvent) {
51 // UiModelEvent event = (UiModelEvent)element;
52
53 } else if (element instanceof UiModelSession) {
54 /* moved into an action menu */
55 } else if (element instanceof UiModelImage) {
56 // UiModelImage image = (UiModelImage)element;
57
58 } else if (element instanceof UiModelSymbol) {
59 final UiModelSymbol symbol = (UiModelSymbol) element;
60 final String fileName = symbol.getFileName();
61 int line = symbol.getLineNumber();
62
63 ProfileUIUtils.openEditorAndSelect(fileName, line);
64
65 } else if (element instanceof UiModelSample) {
66 // jump to line number in the appropriate file
67 UiModelSample sample = (UiModelSample) element;
68 int line = sample.getLine();
69
70 // get file name from the parent sample
71 final String fileName = sample.getFile();
72 ProfileUIUtils.openEditorAndSelect(fileName, line, getProject());
73 }
74 } catch (BadLocationException e1) {
75 e1.printStackTrace();
76 } catch (PartInitException e2) {
77 e2.printStackTrace();
78 } catch (CoreException e) {
79 e.printStackTrace();
80 }
81 }
82
83 /**
84 * return the project
85 * @since 2.1
86 */
87 protected IProject getProject() {
88 return Oprofile.OprofileProject.getProject();
89 }
90
91 }
+0
-43
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewLabelProvider.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation,
11 * adapted from Keith Seitz's ProfileLabelProvider
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.ui.view;
14
15 import org.eclipse.core.runtime.Assert;
16 import org.eclipse.jface.viewers.LabelProvider;
17 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
18 import org.eclipse.swt.graphics.Image;
19
20 /**
21 * Content provider for OprofileView's tree viewer.
22 */
23 public class OprofileViewLabelProvider extends LabelProvider {
24
25 @Override
26 public Image getImage(Object element) {
27 Assert.isLegal(element instanceof IUiModelElement, "in OprofileViewLabelProvider"); //$NON-NLS-1$
28 return ((IUiModelElement) element).getLabelImage();
29 }
30
31 @Override
32 public String getText(Object element) {
33 Assert.isLegal(element instanceof IUiModelElement, "in OprofileViewLabelProvider"); //$NON-NLS-1$
34 return ((IUiModelElement) element).getLabelText();
35 }
36
37 @Override
38 public boolean isLabelProperty(Object element, String property) {
39 return false;
40 }
41
42 }
+0
-163
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewLogReaderAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 * Keith Seitz <keiths@redhat.com> - much of the code in the LogReader class
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.ui.view;
14
15 import java.io.BufferedReader;
16 import java.io.FileNotFoundException;
17 import java.io.IOException;
18 import java.io.InputStream;
19 import java.io.InputStreamReader;
20 import java.lang.reflect.InvocationTargetException;
21
22 import org.eclipse.core.filesystem.EFS;
23 import org.eclipse.core.filesystem.IFileStore;
24 import org.eclipse.core.runtime.CoreException;
25 import org.eclipse.core.runtime.IProgressMonitor;
26 import org.eclipse.core.runtime.NullProgressMonitor;
27 import org.eclipse.jface.action.Action;
28 import org.eclipse.jface.dialogs.IDialogConstants;
29 import org.eclipse.jface.dialogs.MessageDialog;
30 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
31 import org.eclipse.jface.operation.IRunnableWithProgress;
32 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
33 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
34 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
35 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
36 import org.eclipse.swt.SWT;
37 import org.eclipse.swt.layout.GridData;
38 import org.eclipse.swt.layout.GridLayout;
39 import org.eclipse.swt.widgets.Composite;
40 import org.eclipse.swt.widgets.Control;
41 import org.eclipse.swt.widgets.Layout;
42 import org.eclipse.swt.widgets.Shell;
43 import org.eclipse.swt.widgets.Text;
44 import org.eclipse.ui.PlatformUI;
45
46 /**
47 * Log reader action. Reads /var/lib/oprofile/samples/oprofiled.log and displays
48 * it in a nice dialog. Although the log is of dubious utility, it might be useful
49 * to some.
50 */
51 public class OprofileViewLogReaderAction extends Action {
52 public OprofileViewLogReaderAction() {
53 super(OprofileUiMessages.getString("view.actions.logreader.label")); //$NON-NLS-1$
54 }
55
56 @Override
57 public void run() {
58 Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
59 LogReader log = new LogReader();
60
61 try {
62 new ProgressMonitorDialog(activeShell).run(true, false, log);
63 } catch (InvocationTargetException|InterruptedException e) {
64 e.printStackTrace();
65 }
66
67 //open custom log dialog
68 OprofiledLogDialog odlg = new OprofiledLogDialog(activeShell, log.getLogContents());
69 odlg.open();
70 }
71 }
72
73 /**
74 * A Runnable to read oprofiled's logfile
75 */
76 class LogReader implements Runnable, IRunnableWithProgress {
77 private static long lastModified = -1;
78 private static String contents = null;
79
80 @Override
81 public void run() {
82 try {
83 IRemoteFileProxy proxy = RemoteProxyManager.getInstance().getFileProxy(
84 Oprofile.OprofileProject.getProject());
85 IFileStore fileStore = proxy.getResource(Oprofile.getLogFile());
86 if (fileStore.fetchInfo().exists()) {
87 long modified = fileStore.fetchInfo().getLastModified();
88
89 // only reread it if it has been modified since the last run
90 if (modified != lastModified) {
91 lastModified = modified;
92 contents = ""; //$NON-NLS-1$
93 }
94 try (InputStream is = fileStore.openInputStream(EFS.NONE,
95 new NullProgressMonitor());
96 BufferedReader bi = new BufferedReader(
97 new InputStreamReader(is))) {
98 String line;
99 while ((line = bi.readLine()) != null) {
100 contents += line + "\n"; //$NON-NLS-1$
101 }
102 bi.close();
103 }
104 }
105 } catch (FileNotFoundException e) {
106 // The file doesn't exist or was erased. Try again next time.
107 contents = OprofileUiMessages
108 .getString("oprofiled.logreader.error.fileNotFound"); //$NON-NLS-1$
109 } catch (IOException e) {
110 // Error reading log. Try again next time.
111 lastModified = 0;
112 contents = OprofileUiMessages
113 .getString("oprofiled.logreader.error.io"); //$NON-NLS-1$
114 } catch (CoreException e) {
115 e.printStackTrace();
116 }
117 }
118
119 public String getLogContents() {
120 return contents;
121 }
122
123
124 @Override
125 public void run(IProgressMonitor monitor) {
126 this.run();
127 }
128 }
129
130 /**
131 * A custom dialog box to display the oprofiled log file.
132 */
133 class OprofiledLogDialog extends MessageDialog {
134 //string to contain the log file
135 private String textContent = null;
136
137 public static final int GRID_WIDTH = 350;
138 public static final int GRID_HEIGHT = 400;
139
140 public OprofiledLogDialog (Shell parentShell, String dialogMessage) {
141 super(parentShell, OprofileUiMessages.getString("oprofiled.logreader.dialog.title"), null, null, MessageDialog.NONE, new String[] { IDialogConstants.OK_LABEL }, 0); //$NON-NLS-1$
142 textContent = dialogMessage;
143 }
144
145 @Override
146 protected Control createCustomArea(Composite parent) {
147 Composite area = new Composite(parent, 0);
148 Layout layout = new GridLayout(1, true);
149 GridData gd = new GridData(GRID_WIDTH, GRID_HEIGHT);
150
151 area.setLayout(layout);
152 area.setLayoutData(gd);
153
154 Text txt = new Text(area, SWT.READ_ONLY | SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
155 //Check if the textContent isn't null
156 if (textContent != null){
157 txt.setText(textContent);
158 }
159 txt.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
160 return area;
161 }
162 }
+0
-31
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewRefreshAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import org.eclipse.jface.action.Action;
15 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
16 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
17
18 /**
19 * Refresh menu item.
20 */
21 public class OprofileViewRefreshAction extends Action {
22 public OprofileViewRefreshAction() {
23 super(OprofileUiMessages.getString("view.actions.refresh.label")); //$NON-NLS-1$
24 }
25
26 @Override
27 public void run() {
28 OprofileUiPlugin.getDefault().getOprofileView().refreshView();
29 }
30 }
+0
-177
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewSaveDefaultSessionAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2004, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 * Keith Seitz <keiths@redhat.com> - SaveSessionValidator code
12 *******************************************************************************/
13 package org.eclipse.linuxtools.internal.oprofile.ui.view;
14
15 import java.text.MessageFormat;
16
17 import org.eclipse.core.filesystem.IFileStore;
18 import org.eclipse.core.runtime.CoreException;
19 import org.eclipse.jface.action.Action;
20 import org.eclipse.jface.dialogs.IInputValidator;
21 import org.eclipse.jface.dialogs.InputDialog;
22 import org.eclipse.jface.dialogs.MessageDialog;
23 import org.eclipse.jface.window.Window;
24 import org.eclipse.linuxtools.internal.oprofile.core.Oprofile;
25 import org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager;
26 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
27 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
28 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
29 import org.eclipse.linuxtools.oprofile.ui.model.UiModelError;
30 import org.eclipse.linuxtools.oprofile.ui.model.UiModelRoot;
31 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSession;
32 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
33 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
34
35 /**
36 * Menu item to save the default session. Moved from a double-click in the view
37 * on the default session for consistency (since non-default sessions can't be
38 * saved).
39 */
40 public class OprofileViewSaveDefaultSessionAction extends Action {
41 private IRemoteFileProxy proxy;
42
43 public OprofileViewSaveDefaultSessionAction() {
44 super(OprofileUiMessages
45 .getString("view.actions.savedefaultsession.label")); //$NON-NLS-1$
46 }
47
48 @Override
49 public void run() {
50 boolean defaultSessionExists = false;
51 UiModelRoot modelRoot = UiModelRoot.getDefault();
52 String defaultSessionName = null;
53 IUiModelElement[] modelEvents = null;
54
55 if (modelRoot.hasChildren()) {
56 IUiModelElement[] sessions = modelRoot.getChildren();
57 for (IUiModelElement e : sessions) {
58 if (e instanceof UiModelError)
59 break;
60
61 if (e instanceof UiModelSession) {
62
63 if (((UiModelSession) e).isDefaultSession()) {
64 defaultSessionExists = true;
65 defaultSessionName = e.getLabelText();
66 modelEvents = ((UiModelSession) e).getChildren();
67 break;
68 }
69
70 if (defaultSessionExists)
71 break;
72 }
73 }
74
75 if (defaultSessionExists) {
76 // the following code was originially written by Keith Seitz
77 InputDialog dialog = new InputDialog(
78 OprofileUiPlugin.getActiveWorkbenchShell(),
79 OprofileUiMessages.getString("savedialog.title"), //$NON-NLS-1$
80 OprofileUiMessages.getString("savedialog.message"), //$NON-NLS-1$
81 OprofileUiMessages.getString("savedialog.initial"), //$NON-NLS-1$
82 new SaveSessionValidator());
83
84 int result = dialog.open();
85 if (result == Window.OK) {
86 SessionManager.saveSession(dialog.getValue());
87
88 // remove the default session
89 for (int i = 0; i < modelEvents.length; i++) {
90 SessionManager.deleteSession(defaultSessionName, modelEvents[i].getLabelText());
91 }
92
93 if (Oprofile.OprofileProject.OPERF_BINARY.equals(Oprofile.OprofileProject.getProfilingBinary())) {
94 // remove oprofile_data so current event no longer
95 // be there
96 OprofileViewDeleteSessionAction.deleteOperfDataFolder(
97 Oprofile.OprofileProject.getProject().getFolder(Oprofile.OprofileProject.OPERF_DATA));
98 }
99 OprofileUiPlugin.getDefault().getOprofileView().refreshView();
100 }
101 } else {
102 MessageDialog
103 .openError(
104 OprofileUiPlugin.getActiveWorkbenchShell(),
105 OprofileUiMessages
106 .getString("defaultsessiondialog.nodefaultsession.title"), //$NON-NLS-1$
107 OprofileUiMessages
108 .getString("defaultsessiondialog.nodefaultsession.message")); //$NON-NLS-1$
109 }
110 }
111 }
112
113 // Original author: Keith Seitz <keiths@redhat.com>
114 private class SaveSessionValidator implements IInputValidator {
115
116 private SessionManager session = null;
117
118 public SaveSessionValidator() {
119 session = new SessionManager(SessionManager.SESSION_LOCATION);
120 }
121
122 @Override
123 public String isValid(String newText) {
124 // Sanity check
125 if (newText.length() == 0) {
126 return ""; //$NON-NLS-1$
127 }
128
129 // Cannot contain invalid characters
130 int index = newText.indexOf('/');
131 if (index == -1) {
132 index = newText.indexOf('\\');
133 }
134
135 if (index != -1) {
136 String format = OprofileUiMessages
137 .getString("savedialog.validator.invalidChar"); //$NON-NLS-1$
138 return MessageFormat.format(format, newText.substring(index, index + 1), newText);
139 }
140
141 // Cannot contain whitespace
142 if (newText.contains(" ") || newText.contains("\t")) { //$NON-NLS-1$ //$NON-NLS-2$
143 String format = OprofileUiMessages
144 .getString("savedialog.validator.containsWhitespace"); //$NON-NLS-1$
145 return MessageFormat.format(format, newText);
146 }
147
148 if (session.existsSession(newText)) {
149 String format = OprofileUiMessages
150 .getString("savedialog.validator.exists"); //$NON-NLS-1$
151 return MessageFormat.format(format, newText);
152 }
153
154 // Must not already exist (opcontrol doesn't allow it)
155
156 try {
157 proxy = RemoteProxyManager.getInstance().getFileProxy(
158 Oprofile.OprofileProject.getProject());
159 } catch (CoreException e) {
160 e.printStackTrace();
161 }
162
163 IFileStore fileStore = proxy.getResource(Oprofile
164 .getDefaultSamplesDirectory() + newText);
165 if (fileStore.fetchInfo().exists()) {
166 String format = OprofileUiMessages
167 .getString("savedialog.validator.exists"); //$NON-NLS-1$
168 return MessageFormat.format(format, newText);
169 }
170
171 // Everything OK
172 return null;
173 }
174 }
175
176 }
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/internal/oprofile/ui/view/OprofileViewSortAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2014, 2018 IBM Corporation.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Brajesh K Rathore <brrathor@linux.vnet.ibm.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.oprofile.ui.view;
13
14 import java.util.HashMap;
15 import java.util.Map;
16
17 import org.eclipse.jface.action.Action;
18 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
19 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
20 import org.eclipse.linuxtools.oprofile.ui.model.UiModelRoot;
21
22 /**
23 *
24 * Action handler for tree sorting.
25 * tree can be sort by session,event,Lib,function and line number.
26 * @since 3.0
27 *
28 */
29 public class OprofileViewSortAction extends Action {
30
31 public static Map<UiModelRoot.SortType, String> sortTypeMap = new HashMap<>();
32 static{
33 sortTypeMap.put(UiModelRoot.SortType.DEFAULT, OprofileUiMessages.getString("view.actions.default.label")); //$NON-NLS-1$
34 sortTypeMap.put(UiModelRoot.SortType.SESSION, OprofileUiMessages.getString("view.actions.session.label")); //$NON-NLS-1$
35 sortTypeMap.put(UiModelRoot.SortType.EVENT, OprofileUiMessages.getString("view.actions.event.label")); //$NON-NLS-1$
36 sortTypeMap.put(UiModelRoot.SortType.LIB, OprofileUiMessages.getString("view.actions.lib.label")); //$NON-NLS-1$
37 sortTypeMap.put(UiModelRoot.SortType.FUNCTION, OprofileUiMessages.getString("view.actions.function.label")); //$NON-NLS-1$
38 sortTypeMap.put(UiModelRoot.SortType.LINE_NO, OprofileUiMessages.getString("view.actions.line.label")); //$NON-NLS-1$
39 }
40 private UiModelRoot.SortType sortType;
41
42 public OprofileViewSortAction(UiModelRoot.SortType sortType, String text) {
43 super(text);
44 this.sortType = sortType;
45 }
46
47 @Override
48 public void run() {
49 UiModelRoot.setSortingType(sortType);
50 OprofileUiPlugin.getDefault().getOprofileView().refreshView();
51 }
52
53 }
+0
-52
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/IUiModelElement.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import org.eclipse.swt.graphics.Image;
15
16 /**
17 * Interface for all model elements to ease use with the tree viewer.
18 * @since 1.1
19 */
20 public interface IUiModelElement {
21 /**
22 * Returns the text to display in the tree viewer as required by the label provider.
23 * @return text describing this element
24 */
25 String getLabelText();
26
27 /**
28 * Returns the children of this element.
29 * @return an array of IUiModelElements
30 */
31 IUiModelElement[] getChildren();
32
33 /**
34 * Returns if this element has any children. Unless there is no data in
35 * a session, only samples should not have any children.
36 * @return true if children, false if no children
37 */
38 boolean hasChildren();
39
40 /**
41 * Returns the parent element.
42 * @return the parent element
43 */
44 IUiModelElement getParent();
45
46 /**
47 * Returns the Image to display next to the text in the tree viewer.
48 * @return an Image object of the icon
49 */
50 Image getLabelImage();
51 }
+0
-111
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelDependent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.util.Arrays;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
17 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
18 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
19 import org.eclipse.swt.graphics.Image;
20
21 /**
22 * @since 1.1
23 */
24 public class UiModelDependent implements IUiModelElement {
25 private IUiModelElement parent;
26 private OpModelImage dataModelDependents[];
27 private UiModelImage dependents[];
28 private int totalCount;
29 private int depCount;
30
31 /**
32 * Constructor to this UiModelDependent class
33 * @param parent The parent element
34 * @param dependents The dependent images
35 * @param totalCount The total count of samples for the parent session
36 * @param depCount The count for all dependent images
37 */
38 public UiModelDependent(IUiModelElement parent, OpModelImage dependents[], int totalCount, int depCount) {
39 this.parent = parent;
40 this.dataModelDependents = dependents;
41 this.dependents = null;
42 this.totalCount = totalCount+depCount;
43 this.depCount = depCount;
44 refreshModel();
45 }
46
47 private void refreshModel() {
48 dependents = new UiModelImage[dataModelDependents.length];
49
50 for (int i = 0; i < dataModelDependents.length; i++) {
51 dependents[i] = new UiModelImage(this, dataModelDependents[i], totalCount, 0);
52 }
53 }
54
55 @Override
56 public String toString() {
57 double countPercentage = (double)depCount / (double)totalCount;
58 String percentage = OprofileUiPlugin.getPercentageString(countPercentage);
59
60 return percentage + " " + OprofileUiMessages.getString("uimodel.percentage.in")+" " + OprofileUiMessages.getString("uimodel.dependent.dependent.images"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
61 }
62
63 /** IUiModelElement functions **/
64 @Override
65 public String getLabelText() {
66 return toString();
67 }
68
69 /**
70 * Returns the children of this element.
71 * @return An array of child elements or null
72 */
73 @Override
74 public IUiModelElement[] getChildren() {
75
76 if (UiModelRoot.SortType.LIB == UiModelRoot.getSortingType()) {
77 Arrays.sort(dependents, UiModelSorting.getInstance());
78 return dependents;
79 }
80
81 return dependents;
82 }
83
84 /**
85 * Returns if the element has any children.
86 * @return true if the element has children, false otherwise
87 */
88 @Override
89 public boolean hasChildren() {
90 return true; //must have children, or this object wouldn't be created
91 }
92
93 /**
94 * Returns the parent element.
95 * @return the parent element or null
96 */
97 @Override
98 public IUiModelElement getParent() {
99 return parent;
100 }
101
102 /**
103 * Returns the Image to display next to the text in the tree viewer.
104 * @return an Image object of the icon
105 */
106 @Override
107 public Image getLabelImage() {
108 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.DEPENDENT_ICON).createImage();
109 }
110 }
+0
-78
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelError.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
15 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
16 import org.eclipse.swt.graphics.Image;
17
18 /**
19 * This is an error element
20 * @since 1.1
21 */
22 public class UiModelError implements IUiModelElement {
23 public static final UiModelError NO_SAMPLES_ERROR = new UiModelError(OprofileUiMessages.getString("root.error.nosamples")); //$NON-NLS-1$
24
25 private String errorMessage;
26
27 /**
28 * Constructor to the UiModelError class
29 * @param message Error message
30 */
31 public UiModelError(String message) {
32 errorMessage = message;
33 }
34
35 /** IUiModelElement functions **/
36 @Override
37 public String getLabelText() {
38 return errorMessage;
39 }
40
41 /**
42 * Returns the children of this element.
43 * @return An array of child elements or null
44 */
45 @Override
46 public IUiModelElement[] getChildren() {
47 return null;
48 }
49
50 /**
51 * Return whether the element has any children
52 * @return true if the element has any children, false otherwise
53 */
54 @Override
55 public boolean hasChildren() {
56 return false;
57 }
58
59 /**
60 * Returns the element's parent.
61 * @return The parent element or null
62 */
63 @Override
64 public IUiModelElement getParent() {
65 return null;
66 }
67
68 /**
69 * Returns the Image to display next to the text in the tree viewer.
70 * In this case it is an error icon.
71 * @return an Image object of the icon
72 */
73 @Override
74 public Image getLabelImage() {
75 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.ERROR_ICON).createImage();
76 }
77 }
+0
-104
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelEvent.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
15 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
16 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
17 import org.eclipse.swt.graphics.Image;
18
19 /**
20 * Top level elements displayed in the view -- events that oprofile
21 * has profiled. Must have children sessions.
22 * @since 1.1
23 */
24 public class UiModelEvent implements IUiModelElement {
25 private IUiModelElement parent = null; //parent node -- necessary?
26 private OpModelEvent event; //the node in the data model
27
28 private UiModelImage image; //this node's child
29 private UiModelDependent dependent; //dependent images of the OpModelImage
30
31 public UiModelEvent(IUiModelElement parent, OpModelEvent event) {
32 this.parent = parent;
33 this.event = event;
34 this.image = null;
35 this.dependent = null;
36 refreshModel();
37 }
38
39 /**
40 * Create the ui sessions from the data model.
41 */
42 private void refreshModel() {
43 OpModelImage dataModelImage = event.getImage();
44 if (dataModelImage != null) {
45 image = new UiModelImage(this, dataModelImage, dataModelImage.getCount(), dataModelImage.getDepCount());
46
47 if (dataModelImage.hasDependents()) {
48 dependent = new UiModelDependent(this, dataModelImage.getDependents(), dataModelImage.getCount(), dataModelImage.getDepCount());
49 }
50 }
51 }
52
53 @Override
54 public String toString() {
55 return (event == null ? "" : event.getName()); //$NON-NLS-1$
56 }
57
58 /** IUiModelElement functions **/
59 @Override
60 public String getLabelText() {
61 return toString();
62 }
63
64 /**
65 * Returns the children of this element.
66 * @return An array of child elements or null
67 */
68 @Override
69 public IUiModelElement[] getChildren() {
70 if (dependent != null) {
71 return new IUiModelElement[] {image, dependent};
72 } else {
73 return new IUiModelElement[] {image};
74 }
75 }
76
77 /**
78 * Returns if the element has any children.
79 * @return true if the element has children, false otherwise
80 */
81 @Override
82 public boolean hasChildren() {
83 return (image != null);
84 }
85
86 /**
87 * Returns the element's parent.
88 * @return parent The parent element or null
89 */
90 @Override
91 public IUiModelElement getParent() {
92 return parent;
93 }
94
95 /**
96 * Returns the Image to display next to the text in the tree viewer.
97 * @return an Image object of the icon
98 */
99 @Override
100 public Image getLabelImage() {
101 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.EVENT_ICON).createImage();
102 }
103 }
+0
-131
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelImage.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.util.Arrays;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelImage;
17 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSymbol;
18 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
19 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
20 import org.eclipse.swt.graphics.Image;
21
22 /**
23 * Children of sessions in the view -- the binary which was profiled.
24 * May or may not have child symbols. Note that although the dependent
25 * images are children of OpModelImages in the data model, for usability's
26 * sake they are children of the parent session in the tree.
27 * @since 1.1
28 */
29 public class UiModelImage implements IUiModelElement {
30 private IUiModelElement parent; //parent element, may be UiModelSession or UiModelDependent
31 private OpModelImage image; //the node in the data model
32 private UiModelSymbol symbols[]; //this node's child (symbols)
33 private int totalCount; //total number of samples
34
35 /**
36 * Constructor to the UiModelImage class
37 * @param parent The parent element
38 * @param image The image node object in the data model
39 * @param totalCount The total number of samples
40 * @param depCount The number of samples from dependent images
41 */
42 public UiModelImage(IUiModelElement parent, OpModelImage image, int totalCount, int depCount) {
43 this.parent = parent;
44 this.image = image;
45 this.symbols = null;
46 this.totalCount = totalCount+depCount;//totalCount;
47 refreshModel();
48 }
49 /**
50 * Create the ui symbols from the data model.
51 */
52 private void refreshModel() {
53 OpModelSymbol[] dataModelSymbols = image.getSymbols();
54
55 //dependent images may not have symbols
56 if (dataModelSymbols != null) {
57 symbols = new UiModelSymbol[dataModelSymbols.length];
58
59 for (int i = 0; i < dataModelSymbols.length; i++) {
60 symbols[i] = new UiModelSymbol(this, dataModelSymbols[i], totalCount);
61 }
62 }
63 }
64
65 @Override
66 public String toString() {
67 if (image.getCount() == OpModelImage.IMAGE_PARSE_ERROR) {
68 return OprofileUiMessages.getString("opxmlParse.error.multipleImages"); //$NON-NLS-1$
69 } else {
70 double countPercentage = (double)(image.getCount() ) / (double)totalCount;
71 String percentage = OprofileUiPlugin.getPercentageString(countPercentage);
72
73 return percentage + " " + OprofileUiMessages.getString("uimodel.percentage.in")+" " + image.getName(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
74 }
75 }
76
77 /** IUiModelElement functions **/
78 @Override
79 public String getLabelText() {
80 return toString();
81 }
82
83 /**
84 * Returns the children of this element.
85 * @return An array of child elements or null
86 */
87 @Override
88 public IUiModelElement[] getChildren() {
89 IUiModelElement children[] = null;
90
91 if (symbols != null) {
92 children = new IUiModelElement[symbols.length];
93
94 for (int i = 0; i < symbols.length; i++) {
95 children[i] = symbols[i];
96 }
97 }
98 if (UiModelRoot.SortType.FUNCTION == UiModelRoot.getSortingType()) {
99 Arrays.sort(children, UiModelSorting.getInstance());
100 return children;
101 }
102 return children;
103 }
104 /**
105 * Returns if the element has any children.
106 * @return true if the element has children, false otherwise
107 */
108 @Override
109 public boolean hasChildren() {
110 return (symbols == null || symbols.length == 0 ? false : true);
111 }
112
113 /**
114 * Returns the element's parent.
115 * @return parent The parent element or null
116 */
117 @Override
118 public IUiModelElement getParent() {
119 return parent;
120 }
121
122 /**
123 * Returns the Image to display next to the text in the tree viewer.
124 * @return an Image object of the icon
125 */
126 @Override
127 public Image getLabelImage() {
128 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.IMAGE_ICON).createImage();
129 }
130 }
+0
-136
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelRoot.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.util.Arrays;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelRoot;
17 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
18 import org.eclipse.swt.graphics.Image;
19
20 /**
21 * Convenience class for creating the UI model from the oprofile data model,
22 * via a single point of access.
23 * @since 1.1
24 */
25 public class UiModelRoot implements IUiModelElement {
26 private static UiModelRoot uiModelRoot = new UiModelRoot(); //singleton
27
28 private UiModelError rootError;
29 private UiModelSession[] session; //this node's children
30
31 /** constructor, private for singleton use **/
32 protected UiModelRoot() {
33 session = null;
34 rootError = null;
35 }
36
37 /**
38 * Get the instance of this ui model root.
39 * @return the ui model root object
40 */
41 public static UiModelRoot getDefault() {
42 return uiModelRoot;
43 }
44
45 /**
46 * Kick off creating the UI model from the data model. Meant to
47 * be called from UI code. The refreshModel() method is called for
48 * the child elements from their constructor.
49 */
50 public void refreshModel() {
51 OpModelSession dataModelEvents[] = getModelDataEvents();
52
53
54 rootError = null;
55 session = null;
56
57 if (dataModelEvents == null || dataModelEvents.length == 0) {
58 rootError = UiModelError.NO_SAMPLES_ERROR;
59 } else {
60 session = new UiModelSession[dataModelEvents.length];
61 for (int i = 0; i < dataModelEvents.length; i++) {
62 session[i] = new UiModelSession(dataModelEvents[i]);
63 }
64 }
65 }
66
67 protected OpModelSession[] getModelDataEvents() {
68 OpModelRoot modelRoot = OpModelRoot.getDefault();
69 return modelRoot.getSessions();
70 }
71
72 /** IUiModelElement functions **/
73 @Override
74 public String getLabelText() {
75 return null;
76 }
77
78 /**
79 * Returns the children of this element.
80 * @return An array of child elements or null
81 */
82 @Override
83 public IUiModelElement[] getChildren() {
84 if (session != null && session.length != 0) {
85 if (UiModelRoot.SortType.SESSION == UiModelRoot.getSortingType()) {
86 Arrays.sort(session, UiModelSorting.getInstance());
87 return session;
88 }
89
90 else {
91 return session;
92 }
93
94 } else
95 return new IUiModelElement[] { rootError };
96 }
97 /**
98 * Returns if the element has any children.
99 * @return true if the element has children, false otherwise
100 */
101 @Override
102 public boolean hasChildren() {
103 return true;
104 }
105
106 /**
107 * Returns the element's parent.
108 * @return The parent element or null
109 */
110 @Override
111 public IUiModelElement getParent() {
112 return null;
113 }
114
115 @Override
116 public Image getLabelImage() {
117 return null;
118 }
119
120 /**
121 *
122 * Adding sorting feature in tree.
123 * @since 3.0
124 *
125 */
126 public static enum SortType{DEFAULT,SESSION,EVENT,LIB,FUNCTION,LINE_NO}
127 private static SortType sortType;
128 public static void setSortingType(SortType sortType) {
129 UiModelRoot.sortType = sortType;
130 }
131
132 public static SortType getSortingType() {
133 return UiModelRoot.sortType;
134 }
135 }
+0
-112
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSample.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSample;
15 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
16 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
17 import org.eclipse.swt.graphics.Image;
18
19 /**
20 * @since 1.1
21 */
22 public class UiModelSample implements IUiModelElement {
23 private IUiModelElement parent; //parent element
24 private OpModelSample sample; //the node in the data model
25 private int totalCount; //total sample count for the parent session
26
27 /**
28 * Constructor to the UiModelSample class
29 * @param parent The parent element
30 * @param sample Oprofile sample node in the data model
31 * @param totalCount The total sample count for the parent session
32 */
33 public UiModelSample(IUiModelElement parent, OpModelSample sample, int totalCount) {
34 this.parent = parent;
35 this.sample = sample;
36 this.totalCount = totalCount;
37 }
38
39 @Override
40 public String toString() {
41 double countPercentage = (double)sample.getCount() / (double)totalCount;
42 String percentage = OprofileUiPlugin.getPercentageString(countPercentage);
43
44 return percentage + " " + OprofileUiMessages.getString("uimodel.sample.on.line")+" " + Integer.toString(sample.getLine()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
45 }
46
47 /**
48 * Return the sample line
49 * @return the sample line
50 */
51 public int getLine() {
52 return sample.getLine();
53 }
54
55 /**
56 * Return the path to the sample node
57 * @return node path
58 */
59 public String getFile(){
60 return sample.getFilePath();
61 }
62
63 /**
64 * Returns the count percentage for the sample node
65 * @return count percentage for the sample node
66 */
67 public double getCountPercentage() {
68 return (double)sample.getCount() / (double)totalCount;
69 }
70
71 /** IUiModelElement functions **/
72 @Override
73 public String getLabelText() {
74 return toString();
75 }
76
77 /**
78 * Returns the children of this element.
79 * @return An array of child elements or null
80 */
81 @Override
82 public IUiModelElement[] getChildren() {
83 return null;
84 }
85 /**
86 * Returns if the element has any children.
87 * @return true if the element has children, false otherwise
88 */
89 @Override
90 public boolean hasChildren() {
91 return false; //bottom level element
92 }
93
94 /**
95 * Returns the element's parent.
96 * @return parent The parent element
97 */
98 @Override
99 public IUiModelElement getParent() {
100 return parent;
101 }
102
103 /**
104 * Returns the Image to display next to the text in the tree viewer.
105 * @return an Image object of the icon
106 */
107 @Override
108 public Image getLabelImage() {
109 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.SAMPLE_ICON).createImage();
110 }
111 }
+0
-124
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSession.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.util.Arrays;
15
16 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelEvent;
17 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
18 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
19 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
20 import org.eclipse.swt.graphics.Image;
21
22 /**
23 * Children of events in the view -- sessions containing images/symbols
24 * for its parent event. Must have a child image. May also have dependent
25 * images, which are children of the Image in the data model, but are
26 * displayed as children of the session in the view.
27 * @since 1.1
28 */
29 public class UiModelSession implements IUiModelElement {
30 private OpModelSession session; //the node in the data model
31
32 private UiModelEvent events[];
33
34 //OProfile's default session name
35 private static final String DEFAULT_SESSION_NAME = "current"; //$NON-NLS-1$
36
37 /**
38 * Constructor to the UiModelSession class
39 * @param session Oprofile session node in the data model
40 */
41 public UiModelSession(OpModelSession session) {
42 if (session != null) {
43 this.session = session;
44 refreshModel();
45 }
46 }
47
48 private void refreshModel() {
49
50 OpModelEvent dataModelEvents[] = session.getEvents();
51 events = new UiModelEvent[dataModelEvents.length];
52 for (int i = 0; i < dataModelEvents.length; i++) {
53 events[i] = new UiModelEvent(this, dataModelEvents[i]);
54 }
55
56 }
57
58 @Override
59 public String toString() {
60 return session.getName();
61 }
62
63 /**
64 * Check if this is Oprofile's default session name
65 * @return true whether this is Oprofile's default session, false otherwise
66 */
67 public boolean isDefaultSession() {
68 return session.getName().equalsIgnoreCase(DEFAULT_SESSION_NAME);
69 }
70
71 /** IUiModelElement functions
72 * Returns the text to display in the tree viewer as required by the label provider.
73 * @return text Text string describing this element
74 */
75 @Override
76 public String getLabelText() {
77 if (session.getName().equals(DEFAULT_SESSION_NAME)){
78 return OprofileUiMessages.getString("UiModelSession_current"); //$NON-NLS-1$
79 }
80 return toString();
81 }
82
83 /**
84 * Returns the children of this element.
85 * @return An array of child elements
86 */
87 @Override
88 public IUiModelElement[] getChildren() {
89 if (UiModelRoot.SortType.EVENT == UiModelRoot.getSortingType()) {
90 Arrays.sort(events, UiModelSorting.getInstance());
91 return events;
92 }
93
94 return events;
95 }
96
97 /**
98 * Returns if the element has any children.
99 * @return true if the element has children, false otherwise
100 */
101 @Override
102 public boolean hasChildren() {
103 return (events == null || events.length == 0 ? false : true);
104 }
105
106 /**
107 * Returns the element's parent.
108 * @return parent The parent element
109 */
110 @Override
111 public IUiModelElement getParent() {
112 return null;
113 }
114
115 /**
116 * Returns the Image to display next to the text in the tree viewer.
117 * @return an Image object of the icon
118 */
119 @Override
120 public Image getLabelImage() {
121 return OprofileUiPlugin.getImageDescriptor(OprofileUiPlugin.SESSION_ICON).createImage();
122 }
123 }
+0
-69
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSorting.java less more
0 /*******************************************************************************
1 * Copyright (c) 2014, 2018 IBM Corporation and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Brajesh K Rathore <brrathor@linux.vnet.ibm.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.text.Collator;
15 import java.util.Comparator;
16
17 /**
18 * Comparator for sorting tree elements.
19 *
20 * @since 3.0
21 */
22 public class UiModelSorting implements Comparator<IUiModelElement> {
23 private static UiModelSorting instance = new UiModelSorting();
24
25 private Collator collator;
26
27 private UiModelSorting() {
28 collator = Collator.getInstance();
29 }
30
31 public static UiModelSorting getInstance() {
32 return instance;
33 }
34
35 @Override
36 public int compare(IUiModelElement o1, IUiModelElement o2) {
37
38 // compare line no.
39 if (o1 instanceof UiModelSample && o2 instanceof UiModelSample) {
40 return ((UiModelSample) o1).getLine()
41 - ((UiModelSample) o2).getLine();
42 } else if (o1 instanceof UiModelSymbol && o2 instanceof UiModelSymbol) {
43 // compare function name
44 return collator.compare(((UiModelSymbol) o1).getFunctionName(),
45 ((UiModelSymbol) o2).getFunctionName());
46 } else if (o1 instanceof UiModelImage && o2 instanceof UiModelImage) {
47 // comapre lib name
48 return collator.compare(getLibraryName(o1.getLabelText()),
49 getLibraryName(o2.getLabelText()));
50 }
51 // default comparison based on display label
52 return collator.compare(o1.getLabelText(), o2.getLabelText());
53 }
54
55 private String getLibraryName(String lib) {
56 // /lib64/libc-2.12.so - libc-2.12.s0
57 String libName = ""; //$NON-NLS-1$
58 int index = 0;
59 if (null != lib && lib.trim().length() != 0) {
60 index = lib.lastIndexOf('/');
61 if (index != -1) {
62 libName = lib.substring(index + 1, lib.length());
63 }
64
65 }
66 return libName;
67 }
68 }
+0
-173
oprofile/org.eclipse.linuxtools.oprofile.ui/src/org/eclipse/linuxtools/oprofile/ui/model/UiModelSymbol.java less more
0 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.model;
13
14 import java.io.File;
15 import java.util.ArrayList;
16 import java.util.Arrays;
17
18 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSample;
19 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSymbol;
20 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiMessages;
21 import org.eclipse.linuxtools.internal.oprofile.ui.OprofileUiPlugin;
22 import org.eclipse.swt.graphics.Image;
23
24 /**
25 * Children of images in the view -- a function name in the profiled image's
26 * source code. May or may not have child samples.
27 *
28 * @since 1.1
29 */
30 public class UiModelSymbol implements IUiModelElement {
31 private IUiModelElement parent; // parent element
32 private OpModelSymbol symbol; // the node in the data model
33 private UiModelSample samples[]; // this node's children
34 private int totalCount; // total count of samples for the parent session
35
36 /**
37 * Constructor to the UiModelSymbol class
38 *
39 * @param parent
40 * The parent element
41 * @param symbol
42 * The debugging symbol node object in the data model
43 * @param totalCount
44 * The total count of samples for the parent session
45 */
46 public UiModelSymbol(IUiModelElement parent, OpModelSymbol symbol,
47 int totalCount) {
48 this.parent = parent;
49 this.symbol = symbol;
50 this.samples = null;
51 this.totalCount = totalCount;
52 refreshModel();
53 }
54
55 /**
56 * Creates the ui samples from the data model
57 */
58 private void refreshModel() {
59 ArrayList<UiModelSample> sampleList = new ArrayList<>();
60 OpModelSample dataModelSamples[] = symbol.getSamples();
61
62 for (int i = 0; i < dataModelSamples.length; i++) {
63 // dont display samples with line number of 0, meaning no line
64 // number
65 // was correlated, more likely that no source file exists
66 if (dataModelSamples[i].getLine() != 0) {
67 sampleList.add(new UiModelSample(this, dataModelSamples[i],
68 totalCount));
69 }
70 }
71
72 samples = new UiModelSample[sampleList.size()];
73 sampleList.toArray(samples);
74 }
75
76 @Override
77 public String toString() {
78 double countPercentage = (double) symbol.getCount()
79 / (double) totalCount;
80 String percentage = OprofileUiPlugin
81 .getPercentageString(countPercentage);
82
83 // a hack to get `basename` type functionality
84 String fileName = (new File(symbol.getFilePath())).getName();
85
86 return percentage
87 + " " + OprofileUiMessages.getString("uimodel.percentage.in") + " " + symbol.getName() + (fileName.length() == 0 ? "" : " [" + fileName + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
88 }
89
90 /**
91 * Return the file path for the current debugging symbol
92 *
93 * @return the file path
94 */
95 public String getFileName() {
96 return symbol.getFilePath();
97 }
98
99 /**
100 * Return the debugging symbol function name
101 *
102 * @return the function name
103 */
104 public String getFunctionName() {
105 return symbol.getName();
106 }
107
108 /**
109 * Return the debugging symbol line number
110 *
111 * @return the line number
112 */
113 public int getLineNumber() {
114 return symbol.getLine();
115 }
116
117 /**
118 * IUiModelElement functions Returns the text to display in the tree viewer
119 * as required by the label provider.
120 *
121 * @return text describing this element
122 */
123 @Override
124 public String getLabelText() {
125 return toString();
126 }
127
128 /**
129 * Returns the children of this element.
130 *
131 * @return An array of child elements or null
132 */
133 @Override
134 public IUiModelElement[] getChildren() {
135 if (UiModelRoot.SortType.LINE_NO == UiModelRoot.getSortingType()) {
136 Arrays.sort(samples, UiModelSorting.getInstance());
137 return samples;
138 }
139 return samples;
140 }
141
142 /**
143 * Returns if the element has any children.
144 *
145 * @return true if the element has children, false otherwise
146 */
147 @Override
148 public boolean hasChildren() {
149 return (samples == null || samples.length == 0 ? false : true);
150 }
151
152 /**
153 * Returns the element's parent.
154 *
155 * @return parent The parent element
156 */
157 @Override
158 public IUiModelElement getParent() {
159 return parent;
160 }
161
162 /**
163 * Returns the Image to display next to the text in the tree viewer.
164 *
165 * @return an Image object of the icon
166 */
167 @Override
168 public Image getLabelImage() {
169 return OprofileUiPlugin
170 .getImageDescriptor(OprofileUiPlugin.SYMBOL_ICON).createImage();
171 }
172 }
+0
-7
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.classpath less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
3 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="output" path="target/classes"/>
6 </classpath>
+0
-5
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.gitignore less more
0 bin
1 @dot
2 javaCompiler...args
3 build.xml
4 target
+0
-28
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.project less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>org.eclipse.linuxtools.oprofile.ui.tests</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 </buildSpec>
23 <natures>
24 <nature>org.eclipse.pde.PluginNature</nature>
25 <nature>org.eclipse.jdt.core.javanature</nature>
26 </natures>
27 </projectDescription>
+0
-99
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
12 org.eclipse.jdt.core.compiler.debug.localVariable=generate
13 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
14 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
15 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
16 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
17 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
18 org.eclipse.jdt.core.compiler.problem.deadCode=warning
19 org.eclipse.jdt.core.compiler.problem.deprecation=warning
20 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
21 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
22 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
23 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
25 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
26 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
27 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
28 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
29 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
30 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
31 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
32 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
33 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
34 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
35 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
36 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
37 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
38 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
39 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
40 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
41 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
42 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
43 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
44 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
45 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
46 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
47 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
48 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
49 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
50 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
51 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
52 org.eclipse.jdt.core.compiler.problem.nullReference=warning
53 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
54 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
55 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
56 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
57 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
58 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
59 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
60 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
61 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
62 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
63 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
64 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
65 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
66 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
68 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
69 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
70 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
71 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
72 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
73 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
74 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
75 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
76 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
77 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
78 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
79 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
80 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
81 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
82 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
83 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
84 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
85 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
86 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
87 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
88 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
89 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
90 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
91 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
92 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
93 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
94 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
95 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
96 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
97 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
+0
-54
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/.settings/org.eclipse.jdt.ui.prefs less more
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_to_enhanced_for_loop=false
16 sp_cleanup.correct_indentation=false
17 sp_cleanup.format_source_code=false
18 sp_cleanup.format_source_code_changes_only=false
19 sp_cleanup.make_local_variable_final=true
20 sp_cleanup.make_parameters_final=false
21 sp_cleanup.make_private_fields_final=true
22 sp_cleanup.make_type_abstract_if_missing_method=false
23 sp_cleanup.make_variable_declarations_final=false
24 sp_cleanup.never_use_blocks=false
25 sp_cleanup.never_use_parentheses_in_expressions=true
26 sp_cleanup.on_save_use_additional_actions=true
27 sp_cleanup.organize_imports=true
28 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
29 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
33 sp_cleanup.remove_private_constructors=true
34 sp_cleanup.remove_trailing_whitespaces=false
35 sp_cleanup.remove_trailing_whitespaces_all=true
36 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
37 sp_cleanup.remove_unnecessary_casts=true
38 sp_cleanup.remove_unnecessary_nls_tags=false
39 sp_cleanup.remove_unused_imports=false
40 sp_cleanup.remove_unused_local_variables=false
41 sp_cleanup.remove_unused_private_fields=true
42 sp_cleanup.remove_unused_private_members=false
43 sp_cleanup.remove_unused_private_methods=true
44 sp_cleanup.remove_unused_private_types=true
45 sp_cleanup.sort_members=false
46 sp_cleanup.sort_members_all=false
47 sp_cleanup.use_blocks=false
48 sp_cleanup.use_blocks_only_for_return_and_throw=false
49 sp_cleanup.use_parentheses_in_expressions=false
50 sp_cleanup.use_this_for_non_static_field_access=false
51 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
52 sp_cleanup.use_this_for_non_static_method_access=false
53 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+0
-13
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/META-INF/MANIFEST.MF less more
0 Manifest-Version: 1.0
1 Bundle-ManifestVersion: 2
2 Bundle-Name: %bundleName
3 Bundle-SymbolicName: org.eclipse.linuxtools.oprofile.ui.tests
4 Bundle-Version: 1.0.1.qualifier
5 Bundle-Vendor: %bundleProvider
6 Require-Bundle: org.junit;bundle-version="4.0.0"
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Fragment-Host: org.eclipse.linuxtools.oprofile.ui
9 Bundle-ActivationPolicy: lazy
10 Import-Package: org.eclipse.linuxtools.oprofile.tests
11 Bundle-Localization: plugin
12 Automatic-Module-Name: org.eclipse.linuxtools.oprofile.ui.tests
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/about.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
5 <title>About</title>
6 </head>
7 <body lang="EN-US">
8 <h2>About This Content</h2>
9
10 <p>November 30, 2017</p>
11 <h3>License</h3>
12
13 <p>
14 The Eclipse Foundation makes available all content in this plug-in
15 (&quot;Content&quot;). Unless otherwise indicated below, the Content
16 is provided to you under the terms and conditions of the Eclipse
17 Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
18 available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
19 For purposes of the EPL, &quot;Program&quot; will mean the Content.
20 </p>
21
22 <p>
23 If you did not receive this Content directly from the Eclipse
24 Foundation, the Content is being redistributed by another party
25 (&quot;Redistributor&quot;) and different terms and conditions may
26 apply to your use of any object code in the Content. Check the
27 Redistributor's license that was provided with the Content. If no such
28 license exists, contact the Redistributor. Unless otherwise indicated
29 below, the terms and conditions of the EPL still apply to any source
30 code in the Content and such source code may be obtained at <a
31 href="http://www.eclipse.org/">http://www.eclipse.org</a>.
32 </p>
33
34 </body>
35 </html>
+0
-6
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/build.properties less more
0 source.. = src/
1 bin.includes = META-INF/,\
2 .,\
3 plugin.properties
4 individualSourceBundles=true
5 src.includes = about.html
+0
-14
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/plugin.properties less more
0 #*******************************************************************************
1 # Copyright (c) 2009, 2018 Red Hat, Inc.
2 #
3 # This program and the accompanying materials are made
4 # available under the terms of the Eclipse Public License 2.0
5 # which is available at https://www.eclipse.org/legal/epl-2.0/
6 #
7 # SPDX-License-Identifier: EPL-2.0
8 #
9 # Contributors:
10 # Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 #*******************************************************************************
12 bundleName=OProfile Ui Tests Plug-in
13 bundleProvider=Eclipse Linux Tools
+0
-36
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12 <modelVersion>4.0.0</modelVersion>
13
14 <parent>
15 <artifactId>linuxtools-oprofile-parent</artifactId>
16 <groupId>org.eclipse.linuxtools.oprofile</groupId>
17 <version>7.4.0</version>
18 </parent>
19
20 <artifactId>org.eclipse.linuxtools.oprofile.ui.tests</artifactId>
21 <version>1.0.1-SNAPSHOT</version>
22 <packaging>eclipse-test-plugin</packaging>
23
24 <name>Linux Tools OProfile UI Tests Plug-in</name>
25
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.eclipse.tycho</groupId>
30 <artifactId>tycho-source-plugin</artifactId>
31 </plugin>
32 </plugins>
33 </build>
34
35 </project>
+0
-681
oprofile/org.eclipse.linuxtools.oprofile.ui.tests/src/org/eclipse/linuxtools/oprofile/ui/tests/TestUiDataModel.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Kent Sebastian <ksebasti@redhat.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.oprofile.ui.tests;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertFalse;
16 import static org.junit.Assert.assertNotNull;
17 import static org.junit.Assert.assertNull;
18 import static org.junit.Assert.assertTrue;
19
20 import org.eclipse.linuxtools.internal.oprofile.core.model.OpModelSession;
21 import org.eclipse.linuxtools.oprofile.tests.TestPlugin;
22 import org.eclipse.linuxtools.oprofile.tests.TestingOpModelRoot;
23 import org.eclipse.linuxtools.oprofile.ui.model.IUiModelElement;
24 import org.eclipse.linuxtools.oprofile.ui.model.UiModelRoot;
25 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSample;
26 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSession;
27 import org.eclipse.linuxtools.oprofile.ui.model.UiModelSymbol;
28 import org.junit.Before;
29 import org.junit.Test;
30
31 public class TestUiDataModel {
32
33 private static class TestingUiModelRoot extends UiModelRoot {
34 @Override
35 protected OpModelSession[] getModelDataEvents() {
36 TestingOpModelRoot modelRoot = new TestingOpModelRoot();
37 modelRoot.refreshModel();
38 return modelRoot.getSessions();
39 }
40 }
41
42 private static class TestingUiModelRoot2 extends UiModelRoot {
43 @Override
44 protected OpModelSession[] getModelDataEvents() {
45 return null;
46 }
47 }
48
49 private TestingUiModelRoot _uiModelRoot;
50 private TestingUiModelRoot2 _uiModelRoot2;
51
52
53 @Before
54 public void setUp() {
55 _uiModelRoot = new TestingUiModelRoot();
56 _uiModelRoot.refreshModel();
57
58 _uiModelRoot2 = new TestingUiModelRoot2();
59 _uiModelRoot2.refreshModel();
60 }
61
62 @Test
63 public void testParse() {
64 /* test UiModelRoot */
65 assertNull(_uiModelRoot2.getLabelImage());
66 assertNull(_uiModelRoot2.getParent());
67 assertNull(_uiModelRoot2.getLabelText());
68 assertTrue(_uiModelRoot2.hasChildren());
69 IUiModelElement r2_events[] = _uiModelRoot2.getChildren();
70 assertNotNull(r2_events);
71 assertEquals(1, r2_events.length);
72 IUiModelElement r2_event1 = r2_events[0];
73 assertFalse(r2_event1.hasChildren());
74 assertNull(r2_event1.getChildren());
75 assertNull(r2_event1.getParent());
76 assertNotNull(r2_event1.getLabelImage());
77 assertNotNull(r2_event1.getLabelText());
78
79 assertNull(_uiModelRoot.getLabelImage());
80 assertNull(_uiModelRoot.getParent());
81 assertNull(_uiModelRoot.getLabelText());
82 assertTrue(_uiModelRoot.hasChildren());
83
84 /* test UiModelSession*/
85 IUiModelElement sessions[] = _uiModelRoot.getChildren();
86 assertNotNull(sessions);
87 assertEquals(3, sessions.length);
88 assertNotNull(sessions[0]);
89 assertNotNull(sessions[1]);
90 assertNotNull(sessions[2]);
91
92 assertEquals(TestingOpModelRoot.NAME_E1, sessions[0].toString());
93 assertEquals(TestingOpModelRoot.NAME_E1, sessions[0].getLabelText());
94 assertTrue(sessions[0].hasChildren());
95 assertNull(sessions[0].getParent()); //events are top level tree elements
96 assertNotNull(sessions[0].getLabelImage());
97
98 assertEquals(TestingOpModelRoot.NAME_E2, sessions[1].toString());
99 assertEquals(TestingOpModelRoot.NAME_E2, sessions[1].getLabelText());
100 assertTrue(sessions[1].hasChildren());
101 assertNull(sessions[1].getParent()); //events are top level tree elements
102 assertNotNull(sessions[1].getLabelImage());
103
104
105 /* test UiModelEvent */
106 IUiModelElement[] e1_events = sessions[0].getChildren(), e2_events = sessions[1].getChildren();
107 assertNotNull(e1_events);
108 assertNotNull(e2_events);
109 assertEquals(1, e1_events.length);
110 assertEquals(4, e2_events.length);
111 assertNotNull(e1_events[0]);
112 assertNotNull(e2_events[0]);
113 assertNotNull(e2_events[1]);
114 assertNotNull(e2_events[2]);
115 assertNotNull(e2_events[3]);
116
117 assertEquals(TestingOpModelRoot.NAME_E1_S1, e1_events[0].toString());
118 assertEquals(TestingOpModelRoot.NAME_E1_S1, e1_events[0].getLabelText());
119 assertFalse(((UiModelSession)e1_events[0].getParent()).isDefaultSession());
120 assertTrue(e1_events[0].hasChildren());
121 assertEquals(sessions[0], e1_events[0].getParent());
122 assertNotNull(e1_events[0].getLabelImage());
123
124 assertEquals(TestingOpModelRoot.NAME_E2_S1, e2_events[0].toString());
125 assertEquals(TestingOpModelRoot.NAME_E2_S1, e2_events[0].getLabelText());
126 assertFalse(((UiModelSession)e2_events[0].getParent()).isDefaultSession());
127 assertTrue(e2_events[0].hasChildren());
128 assertEquals(sessions[1], e2_events[0].getParent());
129 assertNotNull(e2_events[0].getLabelImage());
130
131 assertEquals(TestingOpModelRoot.NAME_E2_S2, e2_events[1].toString());
132 assertEquals(TestingOpModelRoot.NAME_E2_S2, e2_events[1].getLabelText());
133 assertFalse(((UiModelSession)e2_events[1].getParent()).isDefaultSession());
134 assertTrue(e2_events[1].hasChildren());
135 assertEquals(sessions[1], e2_events[1].getParent());
136 assertNotNull(e2_events[1].getLabelImage());
137
138 assertEquals(TestingOpModelRoot.NAME_E2_S3, e2_events[2].toString());
139 assertEquals(TestingOpModelRoot.NAME_E2_S3, e2_events[2].getLabelText());
140 assertFalse(((UiModelSession)e2_events[2].getParent()).isDefaultSession());
141 assertTrue(e2_events[2].hasChildren());
142 assertEquals(sessions[1], e2_events[2].getParent());
143 assertNotNull(e2_events[2].getLabelImage());
144
145 assertEquals(TestingOpModelRoot.NAME_E2_S4, e2_events[3].toString());
146 assertEquals(TestingOpModelRoot.NAME_E2_S4, e2_events[3].getLabelText());
147 assertFalse(((UiModelSession)e2_events[3].getParent()).isDefaultSession());
148 assertFalse(e2_events[3].hasChildren());
149 assertEquals(sessions[1], e2_events[3].getParent());
150 assertNotNull(e2_events[3].getLabelImage());
151
152 /* test UiModelImage and UiModelDependent */
153 IUiModelElement[] e1_s1_images = e1_events[0].getChildren(),
154 e2_s1_images = e2_events[0].getChildren(),
155 e2_s2_images = e2_events[1].getChildren(),
156 e2_s3_images = e2_events[2].getChildren(),
157 e2_s4_images = e2_events[3].getChildren();
158
159 assertNotNull(e1_s1_images);
160 assertNotNull(e2_s1_images);
161 assertNotNull(e2_s2_images);
162 assertNotNull(e2_s3_images);
163 assertNotNull(e2_s4_images);
164 assertEquals(2, e1_s1_images.length); //#2 is a dep image
165 assertEquals(2, e2_s1_images.length); //#2 is a dep image
166 assertEquals(1, e2_s2_images.length);
167 assertEquals(1, e2_s3_images.length);
168 assertEquals(1, e2_s4_images.length);
169 assertNotNull(e1_s1_images[0]);
170 assertNotNull(e1_s1_images[1]);
171 assertNotNull(e2_s1_images[0]);
172 assertNotNull(e2_s1_images[1]);
173 assertNotNull(e2_s2_images[0]);
174 assertNotNull(e2_s3_images[0]);
175 assertNull(e2_s4_images[0]);
176
177 //dont test string output -- strings are i18n'd and L10n'd
178 assertNotNull(e1_s1_images[0].toString());
179 assertNotNull(e1_s1_images[0].getLabelText());
180 assertTrue(e1_s1_images[0].hasChildren());
181 assertEquals(e1_events[0], e1_s1_images[0].getParent());
182 assertNotNull(e1_s1_images[0].getLabelImage());
183
184 assertNotNull(e1_s1_images[1].toString());
185 assertNotNull(e1_s1_images[1].getLabelText());
186 assertTrue(e1_s1_images[1].hasChildren());
187 assertEquals(e1_events[0], e1_s1_images[1].getParent());
188 assertNotNull(e1_s1_images[1].getLabelImage());
189
190 assertNotNull(e2_s1_images[0].toString());
191 assertNotNull(e2_s1_images[0].getLabelText());
192 assertTrue(e2_s1_images[0].hasChildren());
193 assertEquals(e2_events[0], e2_s1_images[0].getParent());
194 assertNotNull(e2_s1_images[0].getLabelImage());
195
196 assertNotNull(e2_s1_images[1].toString());
197 assertNotNull(e2_s1_images[1].getLabelText());
198 assertTrue(e2_s1_images[1].hasChildren());
199 assertEquals(e2_events[0], e2_s1_images[1].getParent());
200 assertNotNull(e2_s1_images[1].getLabelImage());
201
202 assertNotNull(e2_s2_images[0].toString());
203 assertNotNull(e2_s2_images[0].getLabelText());
204 assertTrue(e2_s2_images[0].hasChildren());
205 assertEquals(e2_events[1], e2_s2_images[0].getParent());
206 assertNotNull(e2_s2_images[0].getLabelImage());
207
208 assertNotNull(e2_s3_images[0].toString());
209 assertNotNull(e2_s3_images[0].getLabelText());
210 assertFalse(e2_s3_images[0].hasChildren());
211 assertEquals(e2_events[2], e2_s3_images[0].getParent());
212 assertNotNull(e2_s3_images[0].getLabelImage());
213
214 /* test UiModelSymbol */
215 IUiModelElement[] e1_s1_i1_symbols = e1_s1_images[0].getChildren(),
216 e1_s1_i2_depimages = e1_s1_images[1].getChildren(),
217 e2_s1_i1_symbols = e2_s1_images[0].getChildren(),
218 e2_s1_i2_depimages = e2_s1_images[1].getChildren(),
219 e2_s2_i1_symbols = e2_s2_images[0].getChildren();
220
221 assertNotNull(e1_s1_i1_symbols);
222 assertNotNull(e1_s1_i2_depimages);
223 assertNotNull(e2_s1_i1_symbols);
224 assertNotNull(e2_s1_i2_depimages);
225 assertNotNull(e2_s2_i1_symbols);
226 assertEquals(2, e1_s1_i1_symbols.length);
227 assertEquals(4, e1_s1_i2_depimages.length);
228 assertEquals(2, e2_s1_i1_symbols.length);
229 assertEquals(4, e2_s1_i2_depimages.length);
230 assertEquals(2, e2_s2_i1_symbols.length);
231 assertNotNull(e1_s1_i1_symbols[0]);
232 assertNotNull(e1_s1_i1_symbols[1]);
233 assertNotNull(e1_s1_i2_depimages[0]);
234 assertNotNull(e1_s1_i2_depimages[1]);
235 assertNotNull(e1_s1_i2_depimages[2]);
236 assertNotNull(e1_s1_i2_depimages[3]);
237 assertNotNull(e2_s1_i1_symbols[0]);
238 assertNotNull(e2_s1_i1_symbols[1]);
239 assertNotNull(e2_s1_i2_depimages[0]);
240 assertNotNull(e2_s1_i2_depimages[1]);
241 assertNotNull(e2_s1_i2_depimages[2]);
242 assertNotNull(e2_s1_i2_depimages[3]);
243 assertNotNull(e2_s2_i1_symbols[0]);
244 assertNotNull(e2_s2_i1_symbols[1]);
245
246 assertNotNull(e1_s1_i1_symbols[0].toString());
247 assertNotNull(e1_s1_i1_symbols[0].getLabelText());
248 assertEquals(TestPlugin.SYMBOL1_FILENAME, ((UiModelSymbol)e1_s1_i1_symbols[0]).getFileName());
249 assertTrue(e1_s1_i1_symbols[0].hasChildren());
250 assertEquals(e1_s1_images[0], e1_s1_i1_symbols[0].getParent());
251 assertNotNull(e1_s1_i1_symbols[0].getLabelImage());
252
253 assertNotNull(e1_s1_i1_symbols[1].toString());
254 assertNotNull(e1_s1_i1_symbols[1].getLabelText());
255 assertEquals(TestPlugin.SYMBOL2_FILENAME, ((UiModelSymbol)e1_s1_i1_symbols[1]).getFileName());
256 assertTrue(e1_s1_i1_symbols[1].hasChildren());
257 assertEquals(e1_s1_images[0], e1_s1_i1_symbols[1].getParent());
258 assertNotNull(e1_s1_i1_symbols[1].getLabelImage());
259
260 assertNotNull(e1_s1_i2_depimages[0].toString());
261 assertNotNull(e1_s1_i2_depimages[0].getLabelText());
262 assertFalse(e1_s1_i2_depimages[0].hasChildren());
263 assertEquals(e1_s1_images[1], e1_s1_i2_depimages[0].getParent());
264 assertNotNull(e1_s1_i2_depimages[0].getLabelImage());
265
266 assertNotNull(e1_s1_i2_depimages[1].toString());
267 assertNotNull(e1_s1_i2_depimages[1].getLabelText());
268 assertTrue(e1_s1_i2_depimages[1].hasChildren());
269 assertEquals(e1_s1_images[1], e1_s1_i2_depimages[1].getParent());
270 assertNotNull(e1_s1_i2_depimages[1].getLabelImage());
271
272 assertNotNull(e1_s1_i2_depimages[2].toString());
273 assertNotNull(e1_s1_i2_depimages[2].getLabelText());
274 assertFalse(e1_s1_i2_depimages[2].hasChildren());
275 assertEquals(e1_s1_images[1], e1_s1_i2_depimages[2].getParent());
276 assertNotNull(e1_s1_i2_depimages[2].getLabelImage());
277
278 assertNotNull(e1_s1_i2_depimages[3].toString());
279 assertNotNull(e1_s1_i2_depimages[3].getLabelText());
280 assertTrue(e1_s1_i2_depimages[3].hasChildren());
281 assertEquals(e1_s1_images[1], e1_s1_i2_depimages[3].getParent());
282 assertNotNull(e1_s1_i2_depimages[3].getLabelImage());
283
284 assertNotNull(e2_s1_i1_symbols[0].toString());
285 assertNotNull(e2_s1_i1_symbols[0].getLabelText());
286 assertEquals(TestPlugin.SYMBOL1_FILENAME, ((UiModelSymbol)e2_s1_i1_symbols[0]).getFileName());
287 assertTrue(e2_s1_i1_symbols[0].hasChildren());
288 assertEquals(e2_s1_images[0], e2_s1_i1_symbols[0].getParent());
289 assertNotNull(e2_s1_i1_symbols[0].getLabelImage());
290
291 assertNotNull(e2_s1_i1_symbols[1].toString());
292 assertNotNull(e2_s1_i1_symbols[1].getLabelText());
293 assertEquals(TestPlugin.SYMBOL2_FILENAME, ((UiModelSymbol)e2_s1_i1_symbols[1]).getFileName());
294 assertTrue(e2_s1_i1_symbols[1].hasChildren());
295 assertEquals(e2_s1_images[0], e2_s1_i1_symbols[1].getParent());
296 assertNotNull(e2_s1_i1_symbols[1].getLabelImage());
297
298 assertNotNull(e2_s1_i2_depimages[0].toString());
299 assertNotNull(e2_s1_i2_depimages[0].getLabelText());
300 assertFalse(e2_s1_i2_depimages[0].hasChildren());
301 assertEquals(e2_s1_images[1], e2_s1_i2_depimages[0].getParent());
302 assertNotNull(e2_s1_i2_depimages[0].getLabelImage());
303
304 assertNotNull(e2_s1_i2_depimages[1].toString());
305 assertNotNull(e2_s1_i2_depimages[1].getLabelText());
306 assertTrue(e2_s1_i2_depimages[1].hasChildren());
307 assertEquals(e2_s1_images[1], e2_s1_i2_depimages[1].getParent());
308 assertNotNull(e2_s1_i2_depimages[1].getLabelImage());
309
310 assertNotNull(e2_s1_i2_depimages[2].toString());
311 assertNotNull(e2_s1_i2_depimages[2].getLabelText());
312 assertFalse(e2_s1_i2_depimages[2].hasChildren());
313 assertEquals(e2_s1_images[1], e2_s1_i2_depimages[2].getParent());
314 assertNotNull(e2_s1_i2_depimages[2].getLabelImage());
315
316 assertNotNull(e2_s1_i2_depimages[3].toString());
317 assertNotNull(e2_s1_i2_depimages[3].getLabelText());
318 assertTrue(e2_s1_i2_depimages[3].hasChildren());
319 assertEquals(e2_s1_images[1], e2_s1_i2_depimages[3].getParent());
320 assertNotNull(e2_s1_i2_depimages[3].getLabelImage());
321
322 assertNotNull(e2_s2_i1_symbols[0].toString());
323 assertNotNull(e2_s2_i1_symbols[0].getLabelText());
324 assertEquals(TestPlugin.SYMBOL1_FILENAME, ((UiModelSymbol)e2_s2_i1_symbols[0]).getFileName());
325 assertTrue(e2_s2_i1_symbols[0].hasChildren());
326 assertEquals(e2_s2_images[0], e2_s2_i1_symbols[0].getParent());
327 assertNotNull(e2_s2_i1_symbols[0].getLabelImage());
328
329 assertNotNull(e2_s2_i1_symbols[1].toString());
330 assertNotNull(e2_s2_i1_symbols[1].getLabelText());
331 assertEquals(TestPlugin.SYMBOL2_FILENAME, ((UiModelSymbol)e2_s2_i1_symbols[1]).getFileName());
332 assertTrue(e2_s2_i1_symbols[1].hasChildren());
333 assertEquals(e2_s2_images[0], e2_s2_i1_symbols[1].getParent());
334 assertNotNull(e2_s2_i1_symbols[1].getLabelImage());
335
336 /* test the symbols from the dep images */
337 IUiModelElement[] e1_s1_i2_dep1_symbols = e1_s1_i2_depimages[0].getChildren(),
338 e1_s1_i2_dep2_symbols = e1_s1_i2_depimages[1].getChildren(),
339 e1_s1_i2_dep3_symbols = e1_s1_i2_depimages[2].getChildren(),
340 e1_s1_i2_dep4_symbols = e1_s1_i2_depimages[3].getChildren(),
341 e2_s1_i2_dep1_symbols = e2_s1_i2_depimages[0].getChildren(),
342 e2_s1_i2_dep2_symbols = e2_s1_i2_depimages[1].getChildren(),
343 e2_s1_i2_dep3_symbols = e2_s1_i2_depimages[2].getChildren(),
344 e2_s1_i2_dep4_symbols = e2_s1_i2_depimages[3].getChildren();
345
346 assertNull(e1_s1_i2_dep1_symbols);
347 assertNotNull(e1_s1_i2_dep2_symbols);
348 assertNull(e1_s1_i2_dep3_symbols);
349 assertNotNull(e1_s1_i2_dep4_symbols);
350 assertNull(e2_s1_i2_dep1_symbols);
351 assertNotNull(e2_s1_i2_dep2_symbols);
352 assertNull(e2_s1_i2_dep3_symbols);
353 assertNotNull(e2_s1_i2_dep4_symbols);
354 assertEquals(2, e1_s1_i2_dep2_symbols.length);
355 assertEquals(2, e1_s1_i2_dep4_symbols.length);
356 assertEquals(2, e2_s1_i2_dep2_symbols.length);
357 assertEquals(2, e2_s1_i2_dep4_symbols.length);
358 assertNotNull(e1_s1_i2_dep2_symbols[0]);
359 assertNotNull(e1_s1_i2_dep2_symbols[1]);
360 assertNotNull(e1_s1_i2_dep4_symbols[0]);
361 assertNotNull(e1_s1_i2_dep4_symbols[1]);
362 assertNotNull(e2_s1_i2_dep2_symbols[0]);
363 assertNotNull(e2_s1_i2_dep2_symbols[1]);
364 assertNotNull(e2_s1_i2_dep4_symbols[0]);
365 assertNotNull(e2_s1_i2_dep4_symbols[1]);
366
367 assertNotNull(e1_s1_i2_dep2_symbols[0].toString());
368 assertNotNull(e1_s1_i2_dep2_symbols[0].getLabelText());
369 assertEquals(TestPlugin.DEP2_SYMBOL1_FILENAME, ((UiModelSymbol)e1_s1_i2_dep2_symbols[0]).getFileName());
370 assertFalse(e1_s1_i2_dep2_symbols[0].hasChildren());
371 assertEquals(e1_s1_i2_depimages[1], e1_s1_i2_dep2_symbols[0].getParent());
372 assertNotNull(e1_s1_i2_dep2_symbols[0].getLabelImage());
373
374 assertNotNull(e1_s1_i2_dep2_symbols[1].toString());
375 assertNotNull(e1_s1_i2_dep2_symbols[1].getLabelText());
376 assertEquals(TestPlugin.DEP2_SYMBOL2_FILENAME, ((UiModelSymbol)e1_s1_i2_dep2_symbols[1]).getFileName());
377 assertFalse(e1_s1_i2_dep2_symbols[1].hasChildren());
378 assertEquals(e1_s1_i2_depimages[1], e1_s1_i2_dep2_symbols[1].getParent());
379 assertNotNull(e1_s1_i2_dep2_symbols[1].getLabelImage());
380
381 assertNotNull(e1_s1_i2_dep4_symbols[0].toString());
382 assertNotNull(e1_s1_i2_dep4_symbols[0].getLabelText());
383 assertEquals(TestPlugin.DEP4_SYMBOL_FILENAME, ((UiModelSymbol)e1_s1_i2_dep4_symbols[0]).getFileName());
384 assertFalse(e1_s1_i2_dep4_symbols[0].hasChildren());
385 assertEquals(e1_s1_i2_depimages[3], e1_s1_i2_dep4_symbols[0].getParent());
386 assertNotNull(e1_s1_i2_dep4_symbols[0].getLabelImage());
387
388 assertNotNull(e1_s1_i2_dep4_symbols[1].toString());
389 assertNotNull(e1_s1_i2_dep4_symbols[1].getLabelText());
390 assertEquals(TestPlugin.DEP4_SYMBOL_FILENAME, ((UiModelSymbol)e1_s1_i2_dep4_symbols[1]).getFileName());
391 assertFalse(e1_s1_i2_dep4_symbols[1].hasChildren());
392 assertEquals(e1_s1_i2_depimages[3], e1_s1_i2_dep4_symbols[1].getParent());
393 assertNotNull(e1_s1_i2_dep4_symbols[1].getLabelImage());
394
395 assertNotNull(e2_s1_i2_dep2_symbols[0].toString());
396 assertNotNull(e2_s1_i2_dep2_symbols[0].getLabelText());
397 assertEquals(TestPlugin.DEP2_SYMBOL1_FILENAME, ((UiModelSymbol)e2_s1_i2_dep2_symbols[0]).getFileName());
398 assertFalse(e2_s1_i2_dep2_symbols[0].hasChildren());
399 assertEquals(e2_s1_i2_depimages[1], e2_s1_i2_dep2_symbols[0].getParent());
400 assertNotNull(e2_s1_i2_dep2_symbols[0].getLabelImage());
401
402 assertNotNull(e2_s1_i2_dep2_symbols[1].toString());
403 assertNotNull(e2_s1_i2_dep2_symbols[1].getLabelText());
404 assertEquals(TestPlugin.DEP2_SYMBOL2_FILENAME, ((UiModelSymbol)e2_s1_i2_dep2_symbols[1]).getFileName());
405 assertFalse(e2_s1_i2_dep2_symbols[1].hasChildren());
406 assertEquals(e2_s1_i2_depimages[1], e2_s1_i2_dep2_symbols[1].getParent());
407 assertNotNull(e2_s1_i2_dep2_symbols[1].getLabelImage());
408
409 assertNotNull(e2_s1_i2_dep4_symbols[0].toString());
410 assertNotNull(e2_s1_i2_dep4_symbols[0].getLabelText());
411 assertEquals(TestPlugin.DEP4_SYMBOL_FILENAME, ((UiModelSymbol)e2_s1_i2_dep4_symbols[0]).getFileName());
412 assertFalse(e2_s1_i2_dep4_symbols[0].hasChildren());
413 assertEquals(e2_s1_i2_depimages[3], e2_s1_i2_dep4_symbols[0].getParent());
414 assertNotNull(e2_s1_i2_dep4_symbols[0].getLabelImage());
415
416 assertNotNull(e2_s1_i2_dep4_symbols[1].toString());
417 assertNotNull(e2_s1_i2_dep4_symbols[1].getLabelText());
418 assertEquals(TestPlugin.DEP4_SYMBOL_FILENAME, ((UiModelSymbol)e2_s1_i2_dep4_symbols[1]).getFileName());
419 assertFalse(e2_s1_i2_dep4_symbols[1].hasChildren());
420 assertEquals(e2_s1_i2_depimages[3], e2_s1_i2_dep4_symbols[1].getParent());
421 assertNotNull(e2_s1_i2_dep4_symbols[1].getLabelImage());
422
423 /* test UiModelSample */
424 IUiModelElement[] e1_s1_i1_s1_samples = e1_s1_i1_symbols[0].getChildren(),
425 e1_s1_i1_s2_samples = e1_s1_i1_symbols[1].getChildren(),
426 e1_s1_d2_s1_samples = e1_s1_i2_dep2_symbols[0].getChildren(),
427 e1_s1_d2_s2_samples = e1_s1_i2_dep2_symbols[1].getChildren(),
428 e1_s1_d4_s1_samples = e1_s1_i2_dep4_symbols[0].getChildren(),
429 e1_s1_d4_s2_samples = e1_s1_i2_dep4_symbols[1].getChildren(),
430 e2_s1_i1_s1_samples = e2_s1_i1_symbols[0].getChildren(),
431 e2_s1_i1_s2_samples = e2_s1_i1_symbols[1].getChildren(),
432 e2_s1_d2_s1_samples = e2_s1_i2_dep2_symbols[0].getChildren(),
433 e2_s1_d2_s2_samples = e2_s1_i2_dep2_symbols[1].getChildren(),
434 e2_s1_d4_s1_samples = e2_s1_i2_dep4_symbols[0].getChildren(),
435 e2_s1_d4_s2_samples = e2_s1_i2_dep4_symbols[1].getChildren(),
436 e2_s2_i1_s1_samples = e2_s2_i1_symbols[0].getChildren(),
437 e2_s2_i1_s2_samples = e2_s2_i1_symbols[1].getChildren();
438
439 assertNotNull(e1_s1_i1_s1_samples);
440 assertNotNull(e1_s1_i1_s2_samples);
441 assertNotNull(e1_s1_d2_s1_samples);
442 assertNotNull(e1_s1_d2_s2_samples);
443 assertNotNull(e1_s1_d4_s1_samples);
444 assertNotNull(e1_s1_d4_s2_samples);
445 assertNotNull(e2_s1_i1_s1_samples);
446 assertNotNull(e2_s1_i1_s2_samples);
447 assertNotNull(e2_s1_d2_s1_samples);
448 assertNotNull(e2_s1_d2_s2_samples);
449 assertNotNull(e2_s1_d4_s1_samples);
450 assertNotNull(e2_s1_d4_s2_samples);
451 assertNotNull(e2_s2_i1_s1_samples);
452 assertNotNull(e2_s2_i1_s2_samples);
453 assertEquals(4, e1_s1_i1_s1_samples.length);
454 assertEquals(3, e1_s1_i1_s2_samples.length);
455 //0 but not null for dep images due to samples with no line #
456 assertEquals(0, e1_s1_d2_s1_samples.length);
457 assertEquals(0, e1_s1_d2_s2_samples.length);
458 assertEquals(0, e1_s1_d4_s1_samples.length);
459 assertEquals(0, e1_s1_d4_s2_samples.length);
460 assertEquals(4, e2_s1_i1_s1_samples.length);
461 assertEquals(3, e2_s1_i1_s2_samples.length);
462 assertEquals(0, e2_s1_d2_s1_samples.length);
463 assertEquals(0, e2_s1_d2_s2_samples.length);
464 assertEquals(0, e2_s1_d4_s1_samples.length);
465 assertEquals(0, e2_s1_d4_s2_samples.length);
466 assertEquals(4, e2_s2_i1_s1_samples.length);
467 assertEquals(3, e2_s2_i1_s2_samples.length);
468 assertNotNull(e1_s1_i1_s1_samples[0]);
469 assertNotNull(e1_s1_i1_s1_samples[1]);
470 assertNotNull(e1_s1_i1_s1_samples[2]);
471 assertNotNull(e1_s1_i1_s1_samples[3]);
472 assertNotNull(e1_s1_i1_s2_samples[0]);
473 assertNotNull(e1_s1_i1_s2_samples[1]);
474 assertNotNull(e1_s1_i1_s2_samples[2]);
475
476 assertNotNull(e2_s1_i1_s1_samples[0]);
477 assertNotNull(e2_s1_i1_s1_samples[1]);
478 assertNotNull(e2_s1_i1_s1_samples[2]);
479 assertNotNull(e2_s1_i1_s1_samples[3]);
480 assertNotNull(e2_s1_i1_s2_samples[0]);
481 assertNotNull(e2_s1_i1_s2_samples[1]);
482 assertNotNull(e2_s1_i1_s2_samples[2]);
483 assertNotNull(e2_s2_i1_s1_samples[0]);
484 assertNotNull(e2_s2_i1_s1_samples[1]);
485 assertNotNull(e2_s2_i1_s1_samples[2]);
486 assertNotNull(e2_s2_i1_s1_samples[3]);
487 assertNotNull(e2_s2_i1_s2_samples[0]);
488 assertNotNull(e2_s2_i1_s2_samples[1]);
489 assertNotNull(e2_s2_i1_s2_samples[2]);
490
491 assertNotNull(e1_s1_i1_s1_samples[0].toString());
492 assertNotNull(e1_s1_i1_s1_samples[0].getLabelText());
493 assertEquals(42, ((UiModelSample)e1_s1_i1_s1_samples[0]).getLine());
494 assertEquals(0.6190, ((UiModelSample)e1_s1_i1_s1_samples[0]).getCountPercentage(), 0.0001);
495 assertNull(e1_s1_i1_s1_samples[0].getChildren());
496 assertFalse(e1_s1_i1_s1_samples[0].hasChildren());
497 assertEquals(e1_s1_i1_symbols[0], e1_s1_i1_s1_samples[0].getParent());
498 assertNotNull(e1_s1_i1_s1_samples[0].getLabelImage());
499
500 assertNotNull(e1_s1_i1_s1_samples[1].toString());
501 assertNotNull(e1_s1_i1_s1_samples[1].getLabelText());
502 assertEquals(36, ((UiModelSample)e1_s1_i1_s1_samples[1]).getLine());
503 assertEquals(0.1904, ((UiModelSample)e1_s1_i1_s1_samples[1]).getCountPercentage(), 0.0001);
504 assertNull(e1_s1_i1_s1_samples[1].getChildren());
505 assertFalse(e1_s1_i1_s1_samples[1].hasChildren());
506 assertEquals(e1_s1_i1_symbols[0], e1_s1_i1_s1_samples[1].getParent());
507 assertNotNull(e1_s1_i1_s1_samples[1].getLabelImage());
508
509 assertNotNull(e1_s1_i1_s1_samples[2].toString());
510 assertNotNull(e1_s1_i1_s1_samples[2].getLabelText());
511 assertEquals(31, ((UiModelSample)e1_s1_i1_s1_samples[2]).getLine());
512 assertEquals(0.0476, ((UiModelSample)e1_s1_i1_s1_samples[2]).getCountPercentage(), 0.0001);
513 assertNull(e1_s1_i1_s1_samples[2].getChildren());
514 assertFalse(e1_s1_i1_s1_samples[2].hasChildren());
515 assertEquals(e1_s1_i1_symbols[0], e1_s1_i1_s1_samples[2].getParent());
516 assertNotNull(e1_s1_i1_s1_samples[2].getLabelImage());
517
518 assertNotNull(e1_s1_i1_s1_samples[3].toString());
519 assertNotNull(e1_s1_i1_s1_samples[3].getLabelText());
520 assertEquals(39, ((UiModelSample)e1_s1_i1_s1_samples[3]).getLine());
521 assertEquals(0.0, ((UiModelSample)e1_s1_i1_s1_samples[3]).getCountPercentage(), 0.0001);
522 assertNull(e1_s1_i1_s1_samples[3].getChildren());
523 assertFalse(e1_s1_i1_s1_samples[3].hasChildren());
524 assertEquals(e1_s1_i1_symbols[0], e1_s1_i1_s1_samples[3].getParent());
525 assertNotNull(e1_s1_i1_s1_samples[3].getLabelImage());
526
527 assertNotNull(e1_s1_i1_s2_samples[0].toString());
528 assertNotNull(e1_s1_i1_s2_samples[0].getLabelText());
529 assertEquals(94, ((UiModelSample)e1_s1_i1_s2_samples[0]).getLine());
530 assertEquals(0.0952, ((UiModelSample)e1_s1_i1_s2_samples[0]).getCountPercentage(), 0.0001);
531 assertNull(e1_s1_i1_s2_samples[0].getChildren());
532 assertFalse(e1_s1_i1_s2_samples[0].hasChildren());
533 assertEquals(e1_s1_i1_symbols[1], e1_s1_i1_s2_samples[0].getParent());
534 assertNotNull(e1_s1_i1_s2_samples[0].getLabelImage());
535
536 assertNotNull(e1_s1_i1_s2_samples[1].toString());
537 assertNotNull(e1_s1_i1_s2_samples[1].getLabelText());
538 assertEquals(12, ((UiModelSample)e1_s1_i1_s2_samples[1]).getLine());
539 assertEquals(0.0, ((UiModelSample)e1_s1_i1_s2_samples[1]).getCountPercentage(), 0.0001);
540 assertNull(e1_s1_i1_s2_samples[1].getChildren());
541 assertFalse(e1_s1_i1_s2_samples[1].hasChildren());
542 assertEquals(e1_s1_i1_symbols[1], e1_s1_i1_s2_samples[1].getParent());
543 assertNotNull(e1_s1_i1_s2_samples[1].getLabelImage());
544
545 assertNotNull(e1_s1_i1_s2_samples[2].toString());
546 assertNotNull(e1_s1_i1_s2_samples[2].getLabelText());
547 assertEquals(55, ((UiModelSample)e1_s1_i1_s2_samples[2]).getLine());
548 assertEquals(0.0, ((UiModelSample)e1_s1_i1_s2_samples[2]).getCountPercentage(), 0.0001);
549 assertNull(e1_s1_i1_s2_samples[2].getChildren());
550 assertFalse(e1_s1_i1_s2_samples[2].hasChildren());
551 assertEquals(e1_s1_i1_symbols[1], e1_s1_i1_s2_samples[2].getParent());
552 assertNotNull(e1_s1_i1_s2_samples[2].getLabelImage());
553
554 assertNotNull(e2_s1_i1_s1_samples[0].toString());
555 assertNotNull(e2_s1_i1_s1_samples[0].getLabelText());
556 assertEquals(42, ((UiModelSample)e2_s1_i1_s1_samples[0]).getLine());
557 assertEquals(0.6190, ((UiModelSample)e2_s1_i1_s1_samples[0]).getCountPercentage(), 0.0001);
558 assertNull(e2_s1_i1_s1_samples[0].getChildren());
559 assertFalse(e2_s1_i1_s1_samples[0].hasChildren());
560 assertEquals(e2_s1_i1_symbols[0], e2_s1_i1_s1_samples[0].getParent());
561 assertNotNull(e2_s1_i1_s1_samples[0].getLabelImage());
562
563 assertNotNull(e2_s1_i1_s1_samples[1].toString());
564 assertNotNull(e2_s1_i1_s1_samples[1].getLabelText());
565 assertEquals(36, ((UiModelSample)e2_s1_i1_s1_samples[1]).getLine());
566 assertEquals(0.1904, ((UiModelSample)e2_s1_i1_s1_samples[1]).getCountPercentage(), 0.0001);
567 assertNull(e2_s1_i1_s1_samples[1].getChildren());
568 assertFalse(e2_s1_i1_s1_samples[1].hasChildren());
569 assertEquals(e2_s1_i1_symbols[0], e2_s1_i1_s1_samples[1].getParent());
570 assertNotNull(e2_s1_i1_s1_samples[1].getLabelImage());
571
572 assertNotNull(e2_s1_i1_s1_samples[2].toString());
573 assertNotNull(e2_s1_i1_s1_samples[2].getLabelText());
574 assertEquals(31, ((UiModelSample)e2_s1_i1_s1_samples[2]).getLine());
575 assertEquals(0.0476, ((UiModelSample)e2_s1_i1_s1_samples[2]).getCountPercentage(), 0.0001);
576 assertNull(e2_s1_i1_s1_samples[2].getChildren());
577 assertFalse(e2_s1_i1_s1_samples[2].hasChildren());
578 assertEquals(e2_s1_i1_symbols[0], e2_s1_i1_s1_samples[2].getParent());
579 assertNotNull(e2_s1_i1_s1_samples[2].getLabelImage());
580
581 assertNotNull(e2_s1_i1_s1_samples[3].toString());
582 assertNotNull(e2_s1_i1_s1_samples[3].getLabelText());
583 assertEquals(39, ((UiModelSample)e2_s1_i1_s1_samples[3]).getLine());
584 assertEquals(0.0, ((UiModelSample)e2_s1_i1_s1_samples[3]).getCountPercentage(), 0.0001);
585 assertNull(e2_s1_i1_s1_samples[3].getChildren());
586 assertFalse(e2_s1_i1_s1_samples[3].hasChildren());
587 assertEquals(e2_s1_i1_symbols[0], e2_s1_i1_s1_samples[3].getParent());
588 assertNotNull(e2_s1_i1_s1_samples[3].getLabelImage());
589
590 assertNotNull(e2_s1_i1_s2_samples[0].toString());
591 assertNotNull(e2_s1_i1_s2_samples[0].getLabelText());
592 assertEquals(94, ((UiModelSample)e2_s1_i1_s2_samples[0]).getLine());
593 assertEquals(0.0952, ((UiModelSample)e2_s1_i1_s2_samples[0]).getCountPercentage(), 0.0001);
594 assertNull(e2_s1_i1_s2_samples[0].getChildren());
595 assertFalse(e2_s1_i1_s2_samples[0].hasChildren());
596 assertEquals(e2_s1_i1_symbols[1], e2_s1_i1_s2_samples[0].getParent());
597 assertNotNull(e2_s1_i1_s2_samples[0].getLabelImage());
598
599 assertNotNull(e2_s1_i1_s2_samples[1].toString());
600 assertNotNull(e2_s1_i1_s2_samples[1].getLabelText());
601 assertEquals(12, ((UiModelSample)e2_s1_i1_s2_samples[1]).getLine());
602 assertEquals(0.0, ((UiModelSample)e2_s1_i1_s2_samples[1]).getCountPercentage(), 0.0001);
603 assertNull(e2_s1_i1_s2_samples[1].getChildren());
604 assertFalse(e2_s1_i1_s2_samples[1].hasChildren());
605 assertEquals(e2_s1_i1_symbols[1], e2_s1_i1_s2_samples[1].getParent());
606 assertNotNull(e2_s1_i1_s2_samples[1].getLabelImage());
607
608 assertNotNull(e2_s1_i1_s2_samples[2].toString());
609 assertNotNull(e2_s1_i1_s2_samples[2].getLabelText());
610 assertEquals(55, ((UiModelSample)e2_s1_i1_s2_samples[2]).getLine());
611 assertEquals(0.0, ((UiModelSample)e2_s1_i1_s2_samples[2]).getCountPercentage(), 0.0001);
612 assertNull(e2_s1_i1_s2_samples[2].getChildren());
613 assertFalse(e2_s1_i1_s2_samples[2].hasChildren());
614 assertEquals(e2_s1_i1_symbols[1], e2_s1_i1_s2_samples[2].getParent());
615 assertNotNull(e2_s1_i1_s2_samples[2].getLabelImage());
616
617 assertNotNull(e2_s2_i1_s1_samples[0].toString());
618 assertNotNull(e2_s2_i1_s1_samples[0].getLabelText());
619 assertEquals(42, ((UiModelSample)e2_s2_i1_s1_samples[0]).getLine());
620 assertEquals(0.65, ((UiModelSample)e2_s2_i1_s1_samples[0]).getCountPercentage(), 0.0001);
621 assertNull(e2_s2_i1_s1_samples[0].getChildren());
622 assertFalse(e2_s2_i1_s1_samples[0].hasChildren());
623 assertEquals(e2_s2_i1_symbols[0], e2_s2_i1_s1_samples[0].getParent());
624 assertNotNull(e2_s2_i1_s1_samples[0].getLabelImage());
625
626 assertNotNull(e2_s2_i1_s1_samples[1].toString());
627 assertNotNull(e2_s2_i1_s1_samples[1].getLabelText());
628 assertEquals(36, ((UiModelSample)e2_s2_i1_s1_samples[1]).getLine());
629 assertEquals(0.2, ((UiModelSample)e2_s2_i1_s1_samples[1]).getCountPercentage(), 0.0001);
630 assertNull(e2_s2_i1_s1_samples[1].getChildren());
631 assertFalse(e2_s2_i1_s1_samples[1].hasChildren());
632 assertEquals(e2_s2_i1_symbols[0], e2_s2_i1_s1_samples[1].getParent());
633 assertNotNull(e2_s2_i1_s1_samples[1].getLabelImage());
634
635 assertNotNull(e2_s2_i1_s1_samples[2].toString());
636 assertNotNull(e2_s2_i1_s1_samples[2].getLabelText());
637 assertEquals(31, ((UiModelSample)e2_s2_i1_s1_samples[2]).getLine());
638 assertEquals(0.05, ((UiModelSample)e2_s2_i1_s1_samples[2]).getCountPercentage(), 0.0001);
639 assertNull(e2_s2_i1_s1_samples[2].getChildren());
640 assertFalse(e2_s2_i1_s1_samples[2].hasChildren());
641 assertEquals(e2_s2_i1_symbols[0], e2_s2_i1_s1_samples[2].getParent());
642 assertNotNull(e2_s2_i1_s1_samples[2].getLabelImage());
643
644 assertNotNull(e2_s2_i1_s1_samples[3].toString());
645 assertNotNull(e2_s2_i1_s1_samples[3].getLabelText());
646 assertEquals(39, ((UiModelSample)e2_s2_i1_s1_samples[3]).getLine());
647 assertEquals(0.0, ((UiModelSample)e2_s2_i1_s1_samples[3]).getCountPercentage(), 0.0001);
648 assertNull(e2_s2_i1_s1_samples[3].getChildren());
649 assertFalse(e2_s2_i1_s1_samples[3].hasChildren());
650 assertEquals(e2_s2_i1_symbols[0], e2_s2_i1_s1_samples[3].getParent());
651 assertNotNull(e2_s2_i1_s1_samples[3].getLabelImage());
652
653 assertNotNull(e2_s2_i1_s2_samples[0].toString());
654 assertNotNull(e2_s2_i1_s2_samples[0].getLabelText());
655 assertEquals(94, ((UiModelSample)e2_s2_i1_s2_samples[0]).getLine());
656 assertEquals(0.1, ((UiModelSample)e2_s2_i1_s2_samples[0]).getCountPercentage(), 0.0001);
657 assertNull(e2_s2_i1_s2_samples[0].getChildren());
658 assertFalse(e2_s2_i1_s2_samples[0].hasChildren());
659 assertEquals(e2_s2_i1_symbols[1], e2_s2_i1_s2_samples[0].getParent());
660 assertNotNull(e2_s2_i1_s2_samples[0].getLabelImage());
661
662 assertNotNull(e2_s2_i1_s2_samples[1].toString());
663 assertNotNull(e2_s2_i1_s2_samples[1].getLabelText());
664 assertEquals(12, ((UiModelSample)e2_s2_i1_s2_samples[1]).getLine());
665 assertEquals(0.0, ((UiModelSample)e2_s2_i1_s2_samples[1]).getCountPercentage(), 0.0001);
666 assertNull(e2_s2_i1_s2_samples[1].getChildren());
667 assertFalse(e2_s2_i1_s2_samples[1].hasChildren());
668 assertEquals(e2_s2_i1_symbols[1], e2_s2_i1_s2_samples[1].getParent());
669 assertNotNull(e2_s2_i1_s2_samples[1].getLabelImage());
670
671 assertNotNull(e2_s2_i1_s2_samples[2].toString());
672 assertNotNull(e2_s2_i1_s2_samples[2].getLabelText());
673 assertEquals(55, ((UiModelSample)e2_s2_i1_s2_samples[2]).getLine());
674 assertEquals(0.0, ((UiModelSample)e2_s2_i1_s2_samples[2]).getCountPercentage(), 0.0001);
675 assertNull(e2_s2_i1_s2_samples[2].getChildren());
676 assertFalse(e2_s2_i1_s2_samples[2].hasChildren());
677 assertEquals(e2_s2_i1_symbols[1], e2_s2_i1_s2_samples[2].getParent());
678 assertNotNull(e2_s2_i1_s2_samples[2].getLabelImage());
679 }
680 }
+0
-43
oprofile/pom.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--
2 Copyright (C) 2011, 2018 Red Hat, Inc.
3
4 This program and the accompanying materials are made
5 available under the terms of the Eclipse Public License 2.0
6 which is available at https://www.eclipse.org/legal/epl-2.0/
7
8 SPDX-License-Identifier: EPL-2.0
9 -->
10
11 <project xmlns="http://maven.apache.org/POM/4.0.0"
12 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
13 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
14 <modelVersion>4.0.0</modelVersion>
15
16 <parent>
17 <groupId>org.eclipse.linuxtools</groupId>
18 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
20 </parent>
21
22 <groupId>org.eclipse.linuxtools.oprofile</groupId>
23 <artifactId>linuxtools-oprofile-parent</artifactId>
24 <packaging>pom</packaging>
25
26 <name>Linux Tools OProfile Parent</name>
27
28 <modules>
29 <module>org.eclipse.linuxtools.oprofile.core</module>
30 <module>org.eclipse.linuxtools.oprofile.core.tests</module>
31 <module>org.eclipse.linuxtools.oprofile.doc</module>
32 <module>org.eclipse.linuxtools.oprofile-feature</module>
33 <module>org.eclipse.linuxtools.oprofile.remote-feature</module>
34 <module>org.eclipse.linuxtools.oprofile.launch</module>
35 <module>org.eclipse.linuxtools.oprofile.remote.launch</module>
36 <module>org.eclipse.linuxtools.oprofile.launch.tests</module>
37 <module>org.eclipse.linuxtools.oprofile.tests</module>
38 <module>org.eclipse.linuxtools.oprofile.ui</module>
39 <module>org.eclipse.linuxtools.oprofile.ui.tests</module>
40 </modules>
41
42 </project>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9698 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9799 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98100 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
101 org.eclipse.jdt.core.compiler.release=enabled
102 org.eclipse.jdt.core.compiler.source=11
1818 org.eclipse.linuxtools.profiling.ui;bundle-version="0.9.0",
1919 org.eclipse.ui.ide,
2020 org.eclipse.team.ui;bundle-version="3.7.1"
21 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
21 Bundle-RequiredExecutionEnvironment: JavaSE-11
2222 Bundle-ActivationPolicy: lazy
2323 Import-Package: org.eclipse.compare,
2424 org.eclipse.compare.structuremergeviewer,
1414 <parent>
1515 <artifactId>linuxtools-perf-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.perf</artifactId>
181181 try {
182182 // Process list of events. Each line is of the form <event>\s+<category>.
183183 while (( line = input.readLine()) != null){
184 if (line.contains("[")) { //$NON-NLS-1$
184 if (line.matches("\\s*\\S+\\s*\\[.*\\]")) { //$NON-NLS-1$
185185 String event;
186186 String category;
187187 if (line.contains(PerfPlugin.STRINGS_HWBREAKPOINTS)) {
2727 import org.eclipse.core.runtime.Status;
2828 import org.eclipse.jface.dialogs.ErrorDialog;
2929 import org.eclipse.jface.resource.ImageDescriptor;
30 import org.eclipse.jface.resource.ResourceLocator;
3031 import org.eclipse.linuxtools.internal.perf.model.TreeParent;
3132 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
3233 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
255256 * @return the image descriptor
256257 */
257258 public static ImageDescriptor getImageDescriptor(String path) {
258 return imageDescriptorFromPlugin(PLUGIN_ID, path);
259 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
259260 }
260261
261262 /**
11 <feature
22 id="org.eclipse.linuxtools.perf.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%provider"
66 os="linux"
77 license-feature="org.eclipse.license"
1414 <parent>
1515 <artifactId>linuxtools-perf-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.perf.feature</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Perf Integration Feature</name>
2525
1515 <parent>
1616 <artifactId>linuxtools-perf-parent</artifactId>
1717 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
18 <version>7.4.0</version>
18 <version>8.1.0</version>
1919 </parent>
2020
2121 <artifactId>org.eclipse.linuxtools.perf.doc</artifactId>
11 <feature
22 id="org.eclipse.linuxtools.perf.remote.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%provider"
66 os="linux"
77 license-feature="org.eclipse.license"
1414 <parent>
1515 <artifactId>linuxtools-perf-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.perf.remote.feature</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Remote Perf Integration Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9698 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9799 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98100 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
101 org.eclipse.jdt.core.compiler.release=enabled
102 org.eclipse.jdt.core.compiler.source=11
33 Bundle-Vendor: %Bundle-Vendor
44 Bundle-SymbolicName: org.eclipse.linuxtools.perf.swtbot.tests
55 Bundle-Version: 1.0.0.qualifier
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Bundle-ActivationPolicy: lazy
88 Bundle-Localization: plugin
99 Fragment-Host: org.eclipse.linuxtools.perf
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
22 Bundle-Name: %Bundle-Name
33 Bundle-SymbolicName: org.eclipse.linuxtools.perf.tests
44 Bundle-Version: 1.0.0.qualifier
5 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
5 Bundle-RequiredExecutionEnvironment: JavaSE-11
66 Bundle-ActivationPolicy: lazy
77 Fragment-Host: org.eclipse.linuxtools.perf
88 Require-Bundle:
1414 <parent>
1515 <artifactId>linuxtools-perf-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.perf.tests</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.perf-parent</groupId>
1616 <modelVersion>4.0.0</modelVersion>
1717
1818 <prerequisites>
19 <maven>3.3.9</maven>
19 <maven>3.6.3</maven>
2020 </prerequisites>
2121 <groupId>org.eclipse.linuxtools</groupId>
2222 <artifactId>linuxtools-parent</artifactId>
23 <version>7.4.0</version>
23 <version>8.1.0</version>
2424 <packaging>pom</packaging>
2525
2626 <name>Eclipse Linux Tools Parent</name>
4747 </distributionManagement>
4848
4949 <properties>
50 <mirror-repo-name>update-7.4.0</mirror-repo-name>
51 <mirror-docker-repo-name>update-docker-4.4.0</mirror-docker-repo-name>
52 <mirror-mylyn-repo-name>updates-mylyn-2.4.0</mirror-mylyn-repo-name>
53 <tycho-version>1.4.0</tycho-version>
54 <tycho-extras-version>1.4.0</tycho-extras-version>
55 <target-platform>linuxtools-e4.13</target-platform>
50 <mirror-repo-name>update-8.1.0</mirror-repo-name>
51 <mirror-docker-repo-name>update-docker-5.1.0</mirror-docker-repo-name>
52 <mirror-mylyn-repo-name>update-mylyn-3.1.0</mirror-mylyn-repo-name>
53 <tycho-version>2.1.0</tycho-version>
54 <target-platform>linuxtools-e4.18</target-platform>
5655 <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
5756 <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
5857 <sonar.jacoco.reportPath>${project.basedir}/../../target/jacoco.exec</sonar.jacoco.reportPath>
117116 <plugin>
118117 <groupId>org.sonarsource.scanner.maven</groupId>
119118 <artifactId>sonar-maven-plugin</artifactId>
120 <version>3.3.0.603</version>
119 <version>3.7.0.1746</version>
121120 </plugin>
122121 <plugin>
123122 <groupId>org.eclipse.tycho.extras</groupId>
124123 <artifactId>tycho-pack200b-plugin</artifactId>
125 <version>${tycho-extras-version}</version>
124 <version>${tycho-version}</version>
126125 <executions>
127126 <execution>
128127 <id>pack200-pack</id>
268267 <dependency>
269268 <groupId>org.eclipse.mylyn.docs</groupId>
270269 <artifactId>org.eclipse.mylyn.wikitext.mediawiki.ant</artifactId>
271 <version>3.0.33</version>
270 <version>3.0.38</version>
272271 </dependency>
273272 </dependencies>
274273 </plugin>
287286 <module>libhover</module>
288287 <module>javadocs</module>
289288 <module>man</module>
290 <module>oprofile</module>
291289 <module>perf</module>
292290 <module>rpm</module>
293291 <module>systemtap</module>
337335 <plugin>
338336 <groupId>org.eclipse.tycho.extras</groupId>
339337 <artifactId>tycho-source-feature-plugin</artifactId>
340 <version>${tycho-extras-version}</version>
338 <version>${tycho-version}</version>
341339 <configuration>
342340 <includeBinaryFeature>false</includeBinaryFeature>
343341 </configuration>
367365 <plugin>
368366 <groupId>org.jacoco</groupId>
369367 <artifactId>jacoco-maven-plugin</artifactId>
370 <version>0.8.4</version>
368 <version>0.8.5</version>
371369 <executions>
372370 <execution>
373371 <id>pre-test</id>
443441 <plugin>
444442 <groupId>org.apache.maven.plugins</groupId>
445443 <artifactId>maven-antrun-plugin</artifactId>
446 <version>1.8</version>
444 <version>3.0.0</version>
447445 </plugin>
448446 <plugin>
449447 <groupId>org.apache.maven.plugins</groupId>
450448 <artifactId>maven-site-plugin</artifactId>
451 <version>3.8.2</version>
449 <version>3.9.1</version>
452450 </plugin>
453451 <plugin>
454452 <groupId>org.apache.maven.plugins</groupId>
455453 <artifactId>maven-project-info-reports-plugin</artifactId>
456 <version>3.0.0</version>
454 <version>3.1.0</version>
457455 </plugin>
458456 <plugin>
459457 <groupId>org.apache.maven.plugins</groupId>
460458 <artifactId>maven-javadoc-plugin</artifactId>
461 <version>3.1.1</version>
459 <version>3.2.0</version>
462460 <configuration>
463461 <excludePackageNames>org.eclipse.linuxtools.internal.*:*.test*:org.eclipse.linuxtools.docker.reddeer*</excludePackageNames>
464462 </configuration>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
110112 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
111113 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
112114 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
113 org.eclipse.jdt.core.compiler.source=1.8
115 org.eclipse.jdt.core.compiler.release=enabled
116 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=true
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
31 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
34 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
35 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
36 sp_cleanup.remove_private_constructors=true
37 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
39 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=true
41 sp_cleanup.remove_trailing_whitespaces_all=true
42 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
44 sp_cleanup.remove_unnecessary_casts=true
45 sp_cleanup.remove_unnecessary_nls_tags=false
46 sp_cleanup.remove_unused_imports=true
47 sp_cleanup.remove_unused_local_variables=false
48 sp_cleanup.remove_unused_private_fields=true
49 sp_cleanup.remove_unused_private_members=false
50 sp_cleanup.remove_unused_private_methods=true
51 sp_cleanup.remove_unused_private_types=true
52 sp_cleanup.sort_members=false
53 sp_cleanup.sort_members_all=false
54 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
56 sp_cleanup.use_blocks=false
57 sp_cleanup.use_blocks_only_for_return_and_throw=false
58 sp_cleanup.use_lambda=true
59 sp_cleanup.use_parentheses_in_expressions=false
60 sp_cleanup.use_this_for_non_static_field_access=false
61 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
62 sp_cleanup.use_this_for_non_static_method_access=false
63 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
1818 Bundle-ActivationPolicy: lazy
1919 Export-Package: org.eclipse.linuxtools.binutils.link2source,
2020 org.eclipse.linuxtools.binutils.utils
21 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
21 Bundle-RequiredExecutionEnvironment: JavaSE-11
2222 Bundle-Localization: plugin
2323 Automatic-Module-Name: org.eclipse.linuxtools.binutils
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.binutils</artifactId>
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414 import org.eclipse.core.resources.IProject;
1515 import org.eclipse.core.runtime.IPath;
1616 import org.eclipse.jface.resource.ImageDescriptor;
17 import org.eclipse.jface.resource.ResourceLocator;
1718 import org.eclipse.linuxtools.internal.Activator;
1819 import org.eclipse.ui.IEditorInput;
1920 import org.eclipse.ui.IPersistableElement;
20 import org.eclipse.ui.plugin.AbstractUIPlugin;
2121
2222 /**
2323 * Editor Input used for source not found
4848
4949 @Override
5050 public ImageDescriptor getImageDescriptor() {
51 return AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/c_file_obj.gif"); //$NON-NLS-1$
51 return ResourceLocator.imageDescriptorFromBundle(Activator.PLUGIN_ID, "icons/c_file_obj.gif").get(); //$NON-NLS-1$
5252 }
5353
5454 @Override
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
1 * Copyright (c) 2009, 2019 STMicroelectronics and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
6565 }
6666
6767 /**
68 * Open a C Editor at the given location.
69 *
70 * @param binaryLoc A path to a binary file.
71 * @param sourceLoc The location of the source file.
72 * @param lineNumber The line to open at.
73 * @return <code>true</code> if the link-to-source was successful, <code>false</code> otherwise
74 */
68 * Open a C Editor at the given location.
69 *
70 * @param binaryLoc A path to a binary file.
71 * @param sourceLoc The location of the source file.
72 * @param lineNumber The line to open at.
73 * @return <code>true</code> if the link-to-source was successful,
74 * <code>false</code> otherwise
75 */
7576 private static boolean openSourceFileAtLocation(IPath binaryLoc, IPath sourceLoc, int lineNumber) {
76 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
77 //FIXME EK-LINUXTOOLS: IFile binary = root.getFileForLocation(binaryLoc);
7877 IFile binary = STSymbolManager.sharedInstance.findFileFromPath(binaryLoc);
7978 IProject project = null;
8079 if (binary != null) {
236235 public IResource getResource() {
237236 return resource;
238237 }
239
238
240239 @Override
241240 public boolean visit(IResourceProxy proxy) {
242241 // To correctly find a file in a linked directory, we cannot just look at the isLinked() attribute
254253 }
255254
256255 }
257
256
258257 private static IFile getFileForPathImpl(IPath path, IProject project) {
259258 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
260259 if (path.isAbsolute()) {
293292 }
294293 }
295294 }
296
295
297296 // no match found...try and see if we are dealing with a link
298297 IPath realPath = project.getLocation().append(path).makeAbsolute();
299298 URI realURI = URIUtil.toURI(realPath.toString());
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
44 <accessrules>
55 <accessrule kind="accessible" pattern="*"/>
66 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
77 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
88 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
110112 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
111113 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
112114 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
113 org.eclipse.jdt.core.compiler.source=1.8
115 org.eclipse.jdt.core.compiler.release=enabled
116 org.eclipse.jdt.core.compiler.source=11
1616 org.eclipse.linuxtools.dataviewers.actions,
1717 org.eclipse.linuxtools.dataviewers.dialogs,
1818 org.eclipse.linuxtools.dataviewers.listeners
19 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
19 Bundle-RequiredExecutionEnvironment: JavaSE-11
2020 Bundle-Localization: plugin
2121 Automatic-Module-Name: org.eclipse.linuxtools.dataviewers
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.dataviewers</artifactId>
1212 package org.eclipse.linuxtools.dataviewers.actions;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
1617 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTTreeViewer;
1718 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
18 import org.eclipse.ui.plugin.AbstractUIPlugin;
1919
2020 /**
2121 * This action collapse all the tree
3232 * the stViewer to collapse
3333 */
3434 public STCollapseAllTreeAction(AbstractSTTreeViewer stViewer) {
35 super(STDataViewersMessages.collapseAllAction_title,
36 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
37 "icons/collapse_all.gif")); //$NON-NLS-1$
38 this.stViewer = stViewer;
35 super(STDataViewersMessages.collapseAllAction_title, ResourceLocator
36 .imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/collapse_all.gif").get()); //$NON-NLS-1$
37 this.stViewer = stViewer;
3938 }
4039
4140 @Override
1414 import java.util.Iterator;
1515
1616 import org.eclipse.jface.action.Action;
17 import org.eclipse.jface.resource.ResourceLocator;
1718 import org.eclipse.jface.viewers.AbstractTreeViewer;
1819 import org.eclipse.jface.viewers.IStructuredSelection;
1920 import org.eclipse.jface.viewers.TreeSelection;
2021 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
2122 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTTreeViewer;
2223 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
23 import org.eclipse.ui.plugin.AbstractUIPlugin;
2424
2525 /**
2626 * This action collapse the selected items of the tree
3737 * the stViewer to collapse
3838 */
3939 public STCollapseSelectionAction(AbstractSTTreeViewer stViewer) {
40 super(STDataViewersMessages.collapseSelectionAction_title,
41 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
42 "icons/collapse_all.gif")); //$NON-NLS-1$
40 super(STDataViewersMessages.collapseSelectionAction_title, ResourceLocator
41 .imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/collapse_all.gif").get()); //$NON-NLS-1$
4342 this.stViewer = stViewer;
4443 }
4544
1212 package org.eclipse.linuxtools.dataviewers.actions;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.jface.window.Window;
1617 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
1718 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
1819 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
1920 import org.eclipse.linuxtools.dataviewers.dialogs.STDataViewersSortDialog;
2021 import org.eclipse.swt.custom.BusyIndicator;
21 import org.eclipse.ui.plugin.AbstractUIPlugin;
2222
2323 /**
2424 * This action allows the user to sort the data in the viewer
3535 * @param stViewer The AbstractSTViewer to create the action for.
3636 */
3737 public STDataViewersSortAction(AbstractSTViewer stViewer) {
38 super(STDataViewersMessages.sortAction_title,
39 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
40 "icons/sort.gif")); //$NON-NLS-1$
38 super(STDataViewersMessages.sortAction_title,
39 ResourceLocator.imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/sort.gif").get()); //$NON-NLS-1$
4140 super.setToolTipText(STDataViewersMessages.sortAction_tooltip);
4241 this.stViewer = stViewer;
4342
1212 package org.eclipse.linuxtools.dataviewers.actions;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
1617 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTTreeViewer;
1718 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
18 import org.eclipse.ui.plugin.AbstractUIPlugin;
1919
2020 /**
2121 * This action expands all the tree
3232 * the stViewer to expand
3333 */
3434 public STExpandAllTreeAction(AbstractSTTreeViewer stViewer) {
35 super(STDataViewersMessages.expandAllAction_title,
36 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
37 "icons/expand_all.gif")); //$NON-NLS-1$
38 this.stViewer = stViewer;
35 super(STDataViewersMessages.expandAllAction_title, ResourceLocator
36 .imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/expand_all.gif").get()); //$NON-NLS-1$
37 this.stViewer = stViewer;
3938 }
4039
4140 @Override
1414 import java.util.Iterator;
1515
1616 import org.eclipse.jface.action.Action;
17 import org.eclipse.jface.resource.ResourceLocator;
1718 import org.eclipse.jface.viewers.AbstractTreeViewer;
1819 import org.eclipse.jface.viewers.IStructuredSelection;
1920 import org.eclipse.jface.viewers.TreeSelection;
2021 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
2122 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTTreeViewer;
2223 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
23 import org.eclipse.ui.plugin.AbstractUIPlugin;
2424
2525 /**
2626 * This action expands the selected items of the tree
3737 * the stViewer to expand
3838 */
3939 public STExpandSelectionAction(AbstractSTTreeViewer stViewer) {
40 super(STDataViewersMessages.expandSelectionAction_title,
41 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
42 "icons/expand_all.gif")); //$NON-NLS-1$
40 super(STDataViewersMessages.expandSelectionAction_title, ResourceLocator
41 .imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/expand_all.gif").get()); //$NON-NLS-1$
4342 this.stViewer = stViewer;
4443 }
4544
1616 import org.eclipse.core.runtime.Status;
1717 import org.eclipse.core.runtime.jobs.Job;
1818 import org.eclipse.jface.action.Action;
19 import org.eclipse.jface.resource.ResourceLocator;
1920 import org.eclipse.jface.window.Window;
2021 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
2122 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
2223 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersCSVExporter;
2324 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
2425 import org.eclipse.linuxtools.dataviewers.dialogs.STDataViewersExportToCSVDialog;
25 import org.eclipse.ui.plugin.AbstractUIPlugin;
2626
2727 /**
2828 * This action export the STViewers data to CSV format file
4646 * the stViewer to export
4747 */
4848 public STExportToCSVAction(AbstractSTViewer stViewer) {
49 super(STDataViewersMessages.exportToCSVAction_title,
50 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
51 "icons/export.gif")); //$NON-NLS-1$
49 super(STDataViewersMessages.exportToCSVAction_title,
50 ResourceLocator.imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/export.gif").get()); //$NON-NLS-1$
5251
5352 this.stViewer = stViewer;
5453 this.exporter = new STDataViewersCSVExporter(stViewer);
1212 package org.eclipse.linuxtools.dataviewers.actions;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.jface.window.Window;
1617 import org.eclipse.linuxtools.dataviewers.STDataViewersActivator;
1718 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
1819 import org.eclipse.linuxtools.dataviewers.abstractviewers.STDataViewersMessages;
1920 import org.eclipse.linuxtools.dataviewers.dialogs.STDataViewersHideShowColumnsDialog;
20 import org.eclipse.ui.plugin.AbstractUIPlugin;
2121
2222 /**
2323 * This action allows the user to hide/show some columns.
3131 *
3232 * @param stViewer The AbstractSTViewer to create the action for.
3333 */
34 public STHideShowColAction(AbstractSTViewer stViewer) {
35 super(STDataViewersMessages.hideshowAction_title,
36 AbstractUIPlugin.imageDescriptorFromPlugin(STDataViewersActivator.PLUGIN_ID,
37 "icons/prop_edt.gif")); //$NON-NLS-1$
38 this.stViewer = stViewer;
39 setEnabled(true);
34 public STHideShowColAction(AbstractSTViewer stViewer) {
35 super(STDataViewersMessages.hideshowAction_title, ResourceLocator
36 .imageDescriptorFromBundle(STDataViewersActivator.PLUGIN_ID, "icons/prop_edt.gif").get()); //$NON-NLS-1$
37 this.stViewer = stViewer;
38 setEnabled(true);
4039 }
4140
4241 @Override
11 <feature
22 id="org.eclipse.linuxtools.dataviewers.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
3434 <import plugin="org.eclipse.cdt.ui"/>
3535 <import plugin="org.eclipse.cdt.core"/>
3636 <import plugin="org.eclipse.core.resources" version="3.4.2" match="greaterOrEqual"/>
37 <import plugin="com.ibm.icu"/>
38 <import plugin="org.swtchart"/>
37 <import plugin="org.eclipse.swtchart"/>
3938 </requires>
4039
4140 <plugin
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.dataviewers.feature</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Dataviewers Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7879 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
82 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8183 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8284 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8385 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
109111 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
110112 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
111113 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
112 org.eclipse.jdt.core.compiler.source=1.8
114 org.eclipse.jdt.core.compiler.release=enabled
115 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
18 sp_cleanup.correct_indentation=false
19 sp_cleanup.format_source_code=true
20 sp_cleanup.format_source_code_changes_only=true
21 sp_cleanup.insert_inferred_type_arguments=false
22 sp_cleanup.lazy_logical_operator=false
23 sp_cleanup.make_local_variable_final=true
24 sp_cleanup.make_parameters_final=false
25 sp_cleanup.make_private_fields_final=true
26 sp_cleanup.make_type_abstract_if_missing_method=false
27 sp_cleanup.make_variable_declarations_final=false
28 sp_cleanup.merge_conditional_blocks=false
29 sp_cleanup.never_use_blocks=false
30 sp_cleanup.never_use_parentheses_in_expressions=true
31 sp_cleanup.number_suffix=false
32 sp_cleanup.on_save_use_additional_actions=true
33 sp_cleanup.organize_imports=true
34 sp_cleanup.push_down_negation=false
35 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
36 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
37 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
38 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
39 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
40 sp_cleanup.remove_private_constructors=true
41 sp_cleanup.remove_redundant_modifiers=true
42 sp_cleanup.remove_redundant_semicolons=true
43 sp_cleanup.remove_redundant_type_arguments=true
44 sp_cleanup.remove_trailing_whitespaces=true
45 sp_cleanup.remove_trailing_whitespaces_all=true
46 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
47 sp_cleanup.remove_unnecessary_array_creation=true
48 sp_cleanup.remove_unnecessary_casts=true
49 sp_cleanup.remove_unnecessary_nls_tags=true
50 sp_cleanup.remove_unused_imports=false
51 sp_cleanup.remove_unused_local_variables=false
52 sp_cleanup.remove_unused_private_fields=true
53 sp_cleanup.remove_unused_private_members=false
54 sp_cleanup.remove_unused_private_methods=true
55 sp_cleanup.remove_unused_private_types=true
56 sp_cleanup.simplify_lambda_expression_and_method_ref=true
57 sp_cleanup.sort_members=false
58 sp_cleanup.sort_members_all=false
59 sp_cleanup.use_anonymous_class_creation=false
60 sp_cleanup.use_autoboxing=false
61 sp_cleanup.use_blocks=false
62 sp_cleanup.use_blocks_only_for_return_and_throw=false
63 sp_cleanup.use_directly_map_method=false
64 sp_cleanup.use_lambda=true
65 sp_cleanup.use_parentheses_in_expressions=false
66 sp_cleanup.use_this_for_non_static_field_access=false
67 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
68 sp_cleanup.use_this_for_non_static_method_access=false
69 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
70 sp_cleanup.use_unboxing=false
71 sp_cleanup.use_var=false
11 Bundle-ManifestVersion: 2
22 Bundle-Name: %bundleName
33 Bundle-SymbolicName: org.eclipse.linuxtools.dataviewers.charts;singleton:=true
4 Bundle-Version: 6.0.0.qualifier
4 Bundle-Version: 7.0.0.qualifier
55 Bundle-Activator: org.eclipse.linuxtools.internal.dataviewers.charts.Activator
66 Bundle-Vendor: %bundleProvider
77 Require-Bundle: org.eclipse.ui,
88 org.eclipse.core.runtime,
99 org.eclipse.linuxtools.dataviewers;bundle-version="4.0.0"
10 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
10 Bundle-RequiredExecutionEnvironment: JavaSE-11
1111 Bundle-ActivationPolicy: lazy
1212 Export-Package: org.eclipse.linuxtools.dataviewers.charts.actions,
1313 org.eclipse.linuxtools.dataviewers.charts.provider
1414 Import-Package: org.eclipse.linuxtools.dataviewers.piechart,
15 org.swtchart
15 org.eclipse.linuxtools.internal.dataviewers.piechart,
16 org.eclipse.swtchart,
17 org.eclipse.swtchart.extensions.charts
1618 Bundle-Localization: plugin
1719 Automatic-Module-Name: org.eclipse.linuxtools.dataviewers.charts
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.dataviewers.charts</artifactId>
21 <version>6.0.0-SNAPSHOT</version>
21 <version>7.0.0-SNAPSHOT</version>
2222 <packaging>eclipse-plugin</packaging>
2323
2424 <name>Linux Tools Data Viewers Charts Plug-in</name>
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1212 package org.eclipse.linuxtools.dataviewers.charts.actions;
1313
1414 import org.eclipse.jface.action.Action;
15 import org.eclipse.jface.dialogs.Dialog;
1516 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
1617 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
1718 import org.eclipse.linuxtools.internal.dataviewers.charts.Messages;
18 import org.eclipse.linuxtools.internal.dataviewers.charts.dialogs.ChartDialog;
19 import org.eclipse.linuxtools.internal.dataviewers.charts.dialogs.ChartDialog2;
1920 import org.eclipse.linuxtools.internal.dataviewers.charts.view.ChartView;
2021 import org.eclipse.swt.widgets.Shell;
21 import org.swtchart.Chart;
2222
2323 /**
2424 * An action that open a chart dialog from an <code>AbstractSTViewer</code>.
2525 *
2626 * @see AbstractSTViewer
27 * @deprecated Functionality to be moved to Eclipse.org SWTChart project.
2728 */
29 @Deprecated
2830 public class ChartAction extends Action {
2931
3032 /** The dialog */
31 private final ChartDialog dialog;
33 private final Dialog dialog;
3234
3335 /**
3436 * The constructor.
4042 */
4143 public ChartAction(Shell shell, AbstractSTViewer viewer) {
4244 super(Messages.ChartConstants_CREATE_CHART, Activator.getImageDescriptor("icons/chart_icon.png")); //$NON-NLS-1$
43 dialog = new ChartDialog(shell, viewer);
45 dialog = new ChartDialog2(shell, viewer);
4446 setEnabled(!viewer.getViewer().getSelection().isEmpty());
4547 viewer.getViewer().addSelectionChangedListener(event -> setEnabled(!event.getSelection().isEmpty()));
4648 }
4850 @Override
4951 public void run() {
5052 dialog.open();
51 Chart chart = dialog.getValue();
52 if (chart != null) {
53 ChartView.createChartView(chart);
54
55 }
53 ChartView.createChartView();
5654 }
5755 }
+0
-228
profiling/org.eclipse.linuxtools.dataviewers.charts/src/org/eclipse/linuxtools/dataviewers/charts/actions/SaveChartAction.java less more
0 /*******************************************************************************
1 * Copyright (c) 2014, 2018 Red Hat, Inc. and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
11 * Red Hat (various) - ongoing maintenance
12 *******************************************************************************/
13 package org.eclipse.linuxtools.dataviewers.charts.actions;
14
15 import java.io.File;
16 import java.text.MessageFormat;
17 import java.util.HashMap;
18 import java.util.Map;
19
20 import org.eclipse.core.runtime.IStatus;
21 import org.eclipse.core.runtime.Path;
22 import org.eclipse.core.runtime.Status;
23 import org.eclipse.jface.action.Action;
24 import org.eclipse.jface.dialogs.ErrorDialog;
25 import org.eclipse.jface.dialogs.MessageDialog;
26 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
27 import org.eclipse.linuxtools.internal.dataviewers.charts.Messages;
28 import org.eclipse.swt.SWT;
29 import org.eclipse.swt.graphics.GC;
30 import org.eclipse.swt.graphics.Image;
31 import org.eclipse.swt.graphics.ImageData;
32 import org.eclipse.swt.graphics.ImageLoader;
33 import org.eclipse.swt.widgets.Composite;
34 import org.eclipse.swt.widgets.Display;
35 import org.eclipse.swt.widgets.FileDialog;
36 import org.eclipse.swt.widgets.Shell;
37 import org.eclipse.ui.PlatformUI;
38 import org.swtchart.Chart;
39
40 /**
41 * An action to save any {@link Composite} (typically a {@link Chart}) as an image (jpeg/jpg, bmp, png).
42 *
43 * @since 6.0
44 */
45 public class SaveChartAction extends Action {
46
47 private static final String[] EXTENSIONS =
48 { "*.png", "*.bmp", "*.jpg", "*.jpeg", "*.*" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
49 private static final String DEFAULT_EXT = "png"; //$NON-NLS-1$
50 private static final String DEFAULT_TITLE = "newChart"; //$NON-NLS-1$
51 private static final Map<String, Integer> EXTENSION_MAP = new HashMap<>();
52
53 private Composite contents = null;
54 private String title = null;
55
56 static {
57 EXTENSION_MAP.put("png", SWT.IMAGE_PNG); //$NON-NLS-1$
58 EXTENSION_MAP.put("bmp", SWT.IMAGE_BMP); //$NON-NLS-1$
59 EXTENSION_MAP.put("jpeg", SWT.IMAGE_JPEG); //$NON-NLS-1$
60 EXTENSION_MAP.put("jpg", SWT.IMAGE_JPEG); //$NON-NLS-1$
61 }
62
63 public SaveChartAction() {
64 super(Messages.ChartConstants_SAVE_CHART_AS, Activator.getImageDescriptor("icons/chart-save.png")); //$NON-NLS-1$
65 this.setEnabled(false);
66 }
67
68 /**
69 * Sets the image plugin on the contents and enables the action if contents are not null.
70 * Also, a default title for the file to be saved is generated.
71 * @param contents The image contents to be saved.
72 */
73 public void setChart(Composite contents) {
74 setChart(contents, null);
75 }
76
77 /**
78 * The same as {@link #setChart(Composite)}, but allows specification of a custom default
79 * title for the image file to be saved.
80 * @param contents The image contents to be saved.
81 * @param title The default title of the image file when it is saved. Set this to <code>null</code>
82 * if a title should be generated from the {@link #contents}.
83 */
84 public void setChart(Composite contents, String title) {
85 this.contents = contents;
86 if (contents != null) {
87 this.title = title != null ? title : getDefaultName();
88 setEnabled(true);
89 } else {
90 setEnabled(false);
91 }
92 }
93
94 private String getDefaultName() {
95 if (contents instanceof Chart) {
96 return ((Chart) contents).getTitle().getText().replaceAll(" ", "_"); //$NON-NLS-1$ //$NON-NLS-2$
97 } else {
98 return DEFAULT_TITLE;
99 }
100 }
101
102 /**
103 * Open a dialog with which to save the contents at a user-specified path.
104 */
105 @Override
106 public void run() {
107 if (problemExists()) {
108 return;
109 }
110 File file = askForAndPrepareFile();
111 if (file == null) {
112 return; // Cancelled
113 }
114 generateImageFile(file);
115 }
116
117 /**
118 * Save the previously-set contents as an image without the need for user input.
119 * @param path The path to save the image to.
120 */
121 public void run(String path) {
122 if (problemExists()) {
123 return;
124 }
125 File file = new File(makePathWithVerifiedExt(path));
126 if (shouldOverwrite(file, null)) {
127 generateImageFile(new File(path));
128 }
129 }
130
131 private boolean problemExists() {
132 IStatus status = null;
133 if (!isEnabled()) {
134 status = new Status(IStatus.ERROR, Activator.PLUGIN_ID,
135 Messages.ChartConstants_ERROR_CHART_CLOSED);
136 } else if (contents.isDisposed()) {
137 status = new Status(IStatus.ERROR, Activator.PLUGIN_ID,
138 Messages.ChartConstants_ERROR_CHART_DISPOSED);
139 }
140
141 if (status != null) {
142 ErrorDialog.openError(getWorkbenchShell(),
143 Messages.ChartConstants_ERROR_SAVING_CHART,
144 Messages.ChartConstants_ERROR_SAVING_CHART_MESSAGE, status);
145 return true;
146 }
147 return false;
148 }
149
150 /**
151 * Ask the user for the path to save the file at, and check if this path overwrites any existing file.
152 * (Note that using dialog.setOverwrite(true) is insufficient, as the path name may be appended with a
153 * file extension after the standard overwrite checks occur.)
154 * @return A file with the specified pathname, appended with an appropriate extension.
155 */
156 private File askForAndPrepareFile() {
157 final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
158 final FileDialog dialog = new FileDialog(shell, SWT.SAVE);
159 dialog.setFilterExtensions(EXTENSIONS);
160 dialog.setText(Messages.ChartConstants_SAVE_CHART_DIALOG_TEXT);
161 dialog.setFileName(title);
162
163 do {
164 String path = dialog.open();
165 if (path == null) {
166 return null; // Cancelled
167 }
168
169 path = makePathWithVerifiedExt(path);
170
171 File file = new File(path);
172 if (shouldOverwrite(file, shell)) {
173 return file;
174 }
175 // If not overwriting, bring up dialog again (loop)
176 dialog.setFileName(file.getName());
177 } while (true);
178 }
179
180 private boolean shouldOverwrite(File file, Shell shell) {
181 if (!file.exists()) {
182 return true;
183 }
184 if (MessageDialog.openQuestion(shell != null ? shell :
185 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
186 Messages.ChartConstants_CONFIRM_OVERWRITE_TITLE,
187 MessageFormat.format(Messages.ChartConstants_CONFIRM_OVERWRITE_MSG, file))) {
188 file.delete();
189 return true;
190 }
191 return false;
192 }
193
194 /**
195 * Checks if the provided path has a valid file extension supported by {@link ImageLoader#save(String, int)}.
196 * If not, a copy of the path is returned, with its extension replaced with a default one.
197 */
198 private String makePathWithVerifiedExt(String path) {
199 String pathExt = Path.fromOSString(path).getFileExtension();
200 if (pathExt == null) {
201 return path.concat('.' + DEFAULT_EXT);
202 }
203 if (EXTENSION_MAP.containsKey(pathExt)) {
204 return path;
205 }
206 return path.replaceAll(pathExt.concat("$"), DEFAULT_EXT); //$NON-NLS-1$
207 }
208
209 private void generateImageFile(File file) {
210 // Extension is chosen based on the file name, not the dialog filter selection.
211 int extension = EXTENSION_MAP.get(Path.fromOSString(file.getName()).getFileExtension());
212
213 Display dsp = Display.getCurrent();
214 GC gc = new GC(contents);
215 Image img = new Image(dsp, contents.getSize().x, contents.getSize().y);
216 gc.copyArea(img, 0, 0);
217 gc.dispose();
218 ImageLoader imageLoader = new ImageLoader();
219 imageLoader.data = new ImageData[] { img.getImageData() };
220 imageLoader.save(file.getAbsolutePath(), extension);
221 }
222
223 private Shell getWorkbenchShell() {
224 return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
225 }
226
227 }
+0
-194
profiling/org.eclipse.linuxtools.dataviewers.charts/src/org/eclipse/linuxtools/dataviewers/charts/provider/ChartFactory.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.dataviewers.charts.provider;
13
14 import java.util.List;
15
16 import org.eclipse.linuxtools.dataviewers.abstractviewers.ISTDataViewersField;
17 import org.eclipse.linuxtools.dataviewers.piechart.PieChart;
18 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
19 import org.eclipse.linuxtools.internal.dataviewers.charts.view.ChartView;
20 import org.eclipse.swt.SWT;
21 import org.eclipse.swt.graphics.Color;
22 import org.eclipse.swt.widgets.Display;
23 import org.eclipse.ui.IWorkbenchPage;
24 import org.eclipse.ui.PartInitException;
25 import org.eclipse.ui.PlatformUI;
26 import org.swtchart.Chart;
27 import org.swtchart.IAxis;
28 import org.swtchart.IBarSeries;
29 import org.swtchart.ISeries.SeriesType;
30 import org.swtchart.ITitle;
31 import org.swtchart.LineStyle;
32
33 /**
34 * A utility class that handles the charts creation (pie chart and bar chart)
35 */
36 public final class ChartFactory {
37
38 private ChartFactory() {}
39
40 /**
41 * Produces a pie chart from the input objects.
42 *
43 * @param objects
44 * the input data
45 * @param nameField
46 * the field used to get the labels of the objects (colored parts in the pie).
47 * @param valFields
48 * the field providing the values for the pie parts.
49 * @param title Title of the chart.
50 * @return a new pie chart
51 */
52 public static Chart producePieChart(Object[] objects, ISTDataViewersField nameField,
53 List<IChartField> valFields, String title) {
54
55 ChartView view;
56 try {
57 final Color WHITE = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WHITE);
58 final Color BLACK = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK);
59 final Color GRAD = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
60
61 view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
62 .showView(ChartView.VIEW_ID, String.valueOf(ChartView.getSecId()), IWorkbenchPage.VIEW_ACTIVATE);
63 PieChart chart = new PieChart(view.getParent(), SWT.NONE);
64
65 chart.setBackground(WHITE);
66 chart.setBackgroundInPlotArea(GRAD);
67
68 chart.getTitle().setText(title);
69 chart.getTitle().setForeground(BLACK);
70
71 chart.getLegend().setPosition(SWT.RIGHT);
72
73 String[] valueLabels = new String[objects.length];
74 for (int i = 0; i < objects.length; i++) {
75 valueLabels[i] = nameField.getValue(objects[i]);
76 }
77
78 // pie chart data is grouped by columns
79 // row size is the number of pie charts
80 // column size is the number of data per pie chart
81 double[][] doubleValues = new double[objects.length][valFields.size()];
82
83 // data
84 for (int i = 0; i < valFields.size(); i++) {
85 for (int j = 0; j < objects.length; j++) {
86 Number num = valFields.get(i).getNumber(objects[j]);
87 double longVal = num.doubleValue();
88 doubleValues[j][i] = longVal + 1;
89 }
90 }
91
92 chart.addPieChartSeries(valueLabels, doubleValues);
93 chart.getAxisSet().adjustRange();
94
95 return chart;
96 } catch (PartInitException e) {
97 Activator.getDefault().getLog().log(e.getStatus());
98 }
99 return null;
100 }
101
102 /**
103 * Produces a 2D bar chart from the input objects.
104 *
105 * @param objects
106 * the input data
107 * @param nameField
108 * the field used to get the labels of the objects (the labels of the series groups).
109 * @param valFields
110 * the fields providing the values for the different bars in a series group.
111 * @param title Title of the chart.
112 * @param horizontal
113 * if true the bars are displayed horizontally, else vertically.
114 * @return a new 2D bar chart
115 */
116
117 public static Chart produceBarChart(Object[] objects, final ISTDataViewersField nameField,
118 List<IChartField> valFields, String title, boolean horizontal) {
119 ChartView view;
120 try {
121 final Color WHITE = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WHITE);
122 final Color BLACK = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK);
123 final Color GRAD = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
124
125 view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
126 .showView(ChartView.VIEW_ID, String.valueOf(ChartView.getSecId()), IWorkbenchPage.VIEW_ACTIVATE);
127 Chart chart = new Chart(view.getParent(), SWT.NONE);
128
129 chart.setBackground(WHITE);
130 chart.setBackgroundInPlotArea(GRAD);
131
132 chart.getTitle().setText(title);
133 chart.getTitle().setForeground(BLACK);
134
135 // this is correct (refers to orientation of x-axis, not bars)
136 if (horizontal) {
137 chart.setOrientation(SWT.VERTICAL);
138 } else {
139 chart.setOrientation(SWT.HORIZONTAL);
140 }
141
142 chart.getLegend().setPosition(SWT.RIGHT);
143
144 String[] textLabels = new String[objects.length];
145 for (int i = 0; i < objects.length; i++) {
146 textLabels[i] = nameField.getValue(objects[i]);
147 }
148
149 // x-axis
150 IAxis xAxis = chart.getAxisSet().getXAxis(0);
151 xAxis.getGrid().setStyle(LineStyle.NONE);
152 xAxis.getTick().setForeground(BLACK);
153 ITitle xTitle = xAxis.getTitle();
154 xTitle.setForeground(BLACK);
155 xTitle.setText(nameField.getColumnHeaderText());
156 xAxis.setCategorySeries(textLabels);
157 xAxis.enableCategory(true);
158
159 // y-axis
160 IAxis yAxis = chart.getAxisSet().getYAxis(0);
161 yAxis.getGrid().setStyle(LineStyle.NONE);
162 yAxis.getTick().setForeground(BLACK);
163 yAxis.getTitle().setVisible(false);
164
165 // data
166 for (IChartField field : valFields) {
167 final IBarSeries bs = (IBarSeries) chart.getSeriesSet().createSeries(SeriesType.BAR,
168 field.getColumnHeaderText());
169 bs.setBarColor(new Color(Display.getDefault(), getRC(), getRC(), getRC()));
170 double[] doubleValues = new double[objects.length];
171
172 for (int i = 0; i < objects.length; i++) {
173 Number num = field.getNumber(objects[i]);
174 double longVal = num.doubleValue();
175 doubleValues[i] = longVal;
176 }
177
178 bs.setYSeries(doubleValues);
179 }
180
181 chart.getAxisSet().adjustRange();
182
183 return chart;
184 } catch (PartInitException e) {
185 Activator.getDefault().getLog().log(e.getStatus());
186 }
187 return null;
188 }
189
190 private static int getRC() {
191 return (int) (Math.random() * 255);
192 }
193 }
1515
1616 /**
1717 * The interface used by the charts to get a <code>Number</code> data from a field.
18 *
1819 */
20 @Deprecated
1921 public interface IChartField extends ISTDataViewersField {
2022
2123 /**
1212 package org.eclipse.linuxtools.internal.dataviewers.charts;
1313
1414 import org.eclipse.jface.resource.ImageDescriptor;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.swt.graphics.Image;
1617 import org.eclipse.ui.plugin.AbstractUIPlugin;
1718 import org.osgi.framework.BundleContext;
5657 * @return the image descriptor
5758 */
5859 public static ImageDescriptor getImageDescriptor(String path) {
59 return imageDescriptorFromPlugin(PLUGIN_ID, path);
60 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
6061 }
6162
6263 /**
+0
-391
profiling/org.eclipse.linuxtools.dataviewers.charts/src/org/eclipse/linuxtools/internal/dataviewers/charts/dialogs/ChartDialog.java less more
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.dataviewers.charts.dialogs;
13
14 import java.util.ArrayList;
15 import java.util.LinkedList;
16 import java.util.List;
17
18 import org.eclipse.jface.dialogs.Dialog;
19 import org.eclipse.jface.dialogs.IDialogConstants;
20 import org.eclipse.jface.dialogs.IDialogSettings;
21 import org.eclipse.jface.viewers.IStructuredSelection;
22 import org.eclipse.jface.viewers.StructuredSelection;
23 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
24 import org.eclipse.linuxtools.dataviewers.abstractviewers.ISTDataViewersField;
25 import org.eclipse.linuxtools.dataviewers.charts.provider.ChartFactory;
26 import org.eclipse.linuxtools.dataviewers.charts.provider.IChartField;
27 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
28 import org.eclipse.linuxtools.internal.dataviewers.charts.Messages;
29 import org.eclipse.swt.SWT;
30 import org.eclipse.swt.events.SelectionEvent;
31 import org.eclipse.swt.events.SelectionListener;
32 import org.eclipse.swt.layout.FillLayout;
33 import org.eclipse.swt.layout.GridData;
34 import org.eclipse.swt.layout.GridLayout;
35 import org.eclipse.swt.layout.RowLayout;
36 import org.eclipse.swt.widgets.Button;
37 import org.eclipse.swt.widgets.Composite;
38 import org.eclipse.swt.widgets.Control;
39 import org.eclipse.swt.widgets.Group;
40 import org.eclipse.swt.widgets.Label;
41 import org.eclipse.swt.widgets.Shell;
42 import org.eclipse.swt.widgets.Text;
43 import org.swtchart.Chart;
44
45 /**
46 * The dialog used to customize the chart before creating it.
47 */
48 public class ChartDialog extends Dialog {
49
50 /** The section name of the viewer's dialog settings where the chart dialog save its state */
51 private static final String TAG_SECTION_CHARTS_STATE = "charts_section"; //$NON-NLS-1$
52 /**
53 * The key used by the column buttons to save their state. For example the button i will use the key
54 * <code>TAG_COLUMN_BUTTON_+i</code>
55 */
56 private static final String TAG_COLUMN_BUTTON_ = "COLUMN_BUTTON_"; //$NON-NLS-1$
57 /** The key used by the bar graph button to save its state */
58 private static final String TAG_BAR_GRAPH_BUTTON = "BAR_GRAPH_BUTTON"; //$NON-NLS-1$
59 /** The key used by the vertical bars button to save its state */
60 private static final String TAG_VERTICAL_BARS_BUTTON = "VERTICAL_BARS_BUTTON"; //$NON-NLS-1$
61
62 /** The default value of the column buttons */
63 private static final boolean DEFAULT_COLUMN_BUTTON = true;
64 /** The default value of the bar graph button */
65 private static final boolean DEFAULT_BAR_GRAPH_BUTTON = true;
66 /** The default value of the vertical bars button */
67 private static final boolean DEFAULT_VERTICAL_BARS_BUTTON = false;
68
69 private final AbstractSTViewer stViewer;
70 private Chart chart;
71
72 private Text errorMessageText;
73 private Button verticalBarsButton;
74 private Button pieChartButton;
75 private Button barGraphButton;
76 private Button okButton;
77 private List<Button> columnButtons;
78
79 /**
80 * The constructor.
81 *
82 * @param shell Parent shell.
83 * @param stViewer The viewer this dialog fetch data from.
84 */
85 public ChartDialog(Shell shell, AbstractSTViewer stViewer) {
86 super(shell);
87 this.stViewer = stViewer;
88 }
89
90 /**
91 * Restores the state of this dialog
92 */
93 private void restoreState() {
94 IDialogSettings settings = stViewer.getViewerSettings().getSection(TAG_SECTION_CHARTS_STATE);
95 if (settings == null) {
96 stViewer.getViewerSettings().addNewSection(TAG_SECTION_CHARTS_STATE);
97 return;
98 }
99
100 for (int i = 0; i < columnButtons.size(); i++) {
101 boolean selected = Boolean.parseBoolean(settings.get(TAG_COLUMN_BUTTON_ + i));
102 columnButtons.get(i).setSelection(selected);
103 }
104
105 boolean barGraph = Boolean.parseBoolean(settings.get(TAG_BAR_GRAPH_BUTTON));
106 barGraphButton.setSelection(barGraph);
107 pieChartButton.setSelection(!barGraph);
108
109 boolean vBars = Boolean.parseBoolean(settings.get(TAG_VERTICAL_BARS_BUTTON));
110 verticalBarsButton.setSelection(vBars);
111 verticalBarsButton.setEnabled(barGraph);
112 }
113
114 /**
115 * Saves the state of this dialog
116 */
117 private void saveState() {
118 IDialogSettings settings = stViewer.getViewerSettings().getSection(TAG_SECTION_CHARTS_STATE);
119 if (settings == null) {
120 stViewer.getViewerSettings().addNewSection(TAG_SECTION_CHARTS_STATE);
121 }
122
123 for (int i = 0; i < columnButtons.size(); i++) {
124 boolean selected = columnButtons.get(i).getSelection();
125 settings.put(TAG_COLUMN_BUTTON_ + i, selected);
126 }
127
128 boolean barGraph = barGraphButton.getSelection();
129 settings.put(TAG_BAR_GRAPH_BUTTON, barGraph);
130
131 boolean vBars = verticalBarsButton.getSelection();
132 settings.put(TAG_VERTICAL_BARS_BUTTON, vBars);
133 }
134
135 @Override
136 protected void configureShell(Shell newShell) {
137 super.configureShell(newShell);
138 newShell.setText(Messages.ChartConstants_CREATE_NEW_CHART_FROM_SELECTION);
139 }
140
141 @Override
142 protected void buttonPressed(int buttonId) {
143 if (buttonId == IDialogConstants.OK_ID) {
144 chart = produceChart();
145 saveState();
146 } else {
147 chart = null;
148 }
149 super.buttonPressed(buttonId);
150 }
151
152 @Override
153 protected void createButtonsForButtonBar(Composite parent) {
154 // create OK and Cancel buttons by default
155 okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
156 createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
157 }
158
159 @Override
160 protected Control createContents(Composite parent) {
161 Control c = super.createContents(parent);
162 this.validateInput();
163 return c;
164 }
165
166 @Override
167 protected Control createDialogArea(Composite parent) {
168 Composite composite = (Composite) super.createDialogArea(parent);
169
170 Composite titleComp = new Composite(composite, SWT.NONE);
171 titleComp.setLayout(new RowLayout(SWT.HORIZONTAL));
172
173 Label icon = new Label(titleComp, SWT.NONE);
174 icon.setImage(Activator.getImage("icons/chart_icon.png")); //$NON-NLS-1$
175
176 Label label = new Label(titleComp, SWT.WRAP);
177 label.setText(Messages.ChartConstants_CHART_BUILDER);
178 GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
179 | GridData.VERTICAL_ALIGN_CENTER);
180 data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
181 titleComp.setLayoutData(data);
182
183 Group chartTypeGroup = new Group(composite, SWT.NONE);
184 data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
185 chartTypeGroup.setLayoutData(data);
186 chartTypeGroup.setLayout(new GridLayout(2, false));
187 chartTypeGroup.setText(Messages.ChartConstants_SELECT_YOUR_CHART_TYPE);
188
189 SelectionListener listener = SelectionListener.widgetSelectedAdapter(e -> validateInput());
190
191 barGraphButton = new Button(chartTypeGroup, SWT.RADIO);
192 barGraphButton.setText(Messages.ChartConstants_BAR_GRAPH);
193 barGraphButton.addSelectionListener(listener);
194 barGraphButton.addSelectionListener(SelectionListener
195 .widgetSelectedAdapter(e -> verticalBarsButton.setEnabled(barGraphButton.getSelection())));
196 data = new GridData();
197 barGraphButton.setLayoutData(data);
198
199 verticalBarsButton = new Button(chartTypeGroup, SWT.CHECK);
200 verticalBarsButton.setText(Messages.ChartConstants_VERTICAL_BARS);
201 data = new GridData();
202 verticalBarsButton.setLayoutData(data);
203
204 pieChartButton = new Button(chartTypeGroup, SWT.RADIO);
205 pieChartButton.setText(Messages.ChartConstants_PIE_CHART);
206 pieChartButton.addSelectionListener(listener);
207 data = new GridData();
208 data.horizontalSpan = 2;
209 pieChartButton.setLayoutData(data);
210
211 Group chartColumnGroup = new Group(composite, SWT.NONE);
212 chartColumnGroup.setLayout(new GridLayout(1, true));
213 data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
214 chartColumnGroup.setLayoutData(data);
215 chartColumnGroup.setText(Messages.ChartConstants_SELECT_COLUMNS_TO_SHOW);
216
217 addColumnButtons(chartColumnGroup, listener);
218
219 errorMessageText = new Text(composite, SWT.READ_ONLY);
220 errorMessageText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
221 errorMessageText.setBackground(errorMessageText.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
222
223 applyDialogFont(composite);
224
225 setWidgetsValues();
226
227 return composite;
228 }
229
230 /**
231 * Sets the widgets values
232 */
233 private void setWidgetsValues() {
234 // set default values
235 barGraphButton.setSelection(DEFAULT_BAR_GRAPH_BUTTON);
236 verticalBarsButton.setEnabled(barGraphButton.getSelection());
237 verticalBarsButton.setSelection(DEFAULT_VERTICAL_BARS_BUTTON);
238 for (Button button : columnButtons) {
239 button.setSelection(DEFAULT_COLUMN_BUTTON);
240 }
241
242 // restore state if there is one saved
243 restoreState();
244 }
245
246 /**
247 * Adds one check button for each column implementing the IChartField interface.
248 *
249 * @see IChartField
250 * @param comp
251 * @param listener
252 */
253 private void addColumnButtons(Composite comp, SelectionListener listener) {
254 columnButtons = new LinkedList<>();
255 for (ISTDataViewersField field : stViewer.getAllFields()) {
256 if (field instanceof IChartField) {
257 IChartField cField = (IChartField) field;
258 Button b = new Button(comp, SWT.CHECK);
259 b.setText(cField.getColumnHeaderText());
260 b.setData(cField);
261 b.addSelectionListener(listener);
262 GridData dt = new GridData();
263 b.setLayoutData(dt);
264 columnButtons.add(b);
265 }
266 }
267
268 Label sep = new Label(comp, SWT.SEPARATOR | SWT.HORIZONTAL);
269 GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
270 sep.setLayoutData(data);
271 Composite buttonComposite = new Composite(comp, SWT.NONE);
272 data = new GridData();
273 buttonComposite.setLayoutData(data);
274 FillLayout l = new FillLayout();
275 l.spacing = 5;
276 buttonComposite.setLayout(l);
277
278 final Button b1 = new Button(buttonComposite, SWT.PUSH);
279 b1.setText(Messages.ChartConstants_SELECT_ALL);
280 final Button b2 = new Button(buttonComposite, SWT.PUSH);
281 b2.setText(Messages.ChartConstants_DESELECT_ALL);
282 SelectionListener sl = new SelectionListener() {
283 @Override
284 public void widgetDefaultSelected(SelectionEvent e) {
285 widgetSelected(e);
286 }
287
288 @Override
289 public void widgetSelected(SelectionEvent e) {
290 boolean b = (e.getSource() == b1);
291 for (Button button : columnButtons) {
292 button.setSelection(b);
293 }
294 validateInput();
295 }
296 };
297 b1.addSelectionListener(sl);
298 b2.addSelectionListener(sl);
299 }
300
301 /**
302 * Returns the Chart built by this dialog
303 *
304 * @return the chart
305 */
306 public Chart getValue() {
307 return chart;
308 }
309
310 /**
311 * Validates the input.
312 * <p>
313 * The default implementation of this framework method delegates the request to the supplied input validator object;
314 * if it finds the input invalid, the error message is displayed in the dialog's message line. This hook method is
315 * called whenever the text changes in the input field.
316 * </p>
317 */
318 private void validateInput() {
319 String errorMessage = null;
320
321 int selectedNum = 0;
322 for (Button button : columnButtons) {
323 if (button.getSelection())
324 selectedNum++;
325 }
326
327 if (selectedNum == 0) {
328 errorMessage = Messages.ChartConstants_NO_COLUMN_SELECTED;
329 }
330 /*
331 * else if (pieChartButton.getSelection() && selectedNum != 1) { errorMessage =
332 * "PieChart: Please select only one column"; }
333 */
334
335 // Bug 16256: important not to treat "" (blank error) the same as null
336 // (no error)
337 setErrorMessage(errorMessage);
338 }
339
340 /**
341 * Sets or clears the error message. If not <code>null</code>, the OK button is disabled.
342 *
343 * @param errorMessage
344 * the error message, or <code>null</code> to clear
345 * @since 3.0
346 */
347 private void setErrorMessage(String errorMessage) {
348 errorMessageText.setText(errorMessage == null ? "" : errorMessage); //$NON-NLS-1$
349 okButton.setEnabled(errorMessage == null);
350 errorMessageText.getParent().update();
351 }
352
353 /**
354 * Build the chart from configuration
355 *
356 * @return a new chart
357 */
358 private Chart produceChart() {
359 IStructuredSelection selection = stViewer.getViewer().getStructuredSelection();
360 if (selection == StructuredSelection.EMPTY)
361 return null;
362 Object[] objects = selection.toArray();
363
364 ISTDataViewersField labelField = getLabelField(stViewer);
365
366 List<IChartField> selectedFields = new ArrayList<>();
367 for (Button button : columnButtons) {
368 if (button.getSelection()) {
369 selectedFields.add((IChartField) button.getData());
370 }
371 }
372 boolean barChartType = barGraphButton.getSelection();
373 boolean horizontalBars = !verticalBarsButton.getSelection();
374
375 if (barChartType) {
376 return ChartFactory
377 .produceBarChart(objects, labelField, selectedFields, Messages.ChartConstants_BAR_GRAPH, horizontalBars);
378 } else {
379 return ChartFactory.producePieChart(objects, labelField, selectedFields, Messages.ChartConstants_PIE_CHART);
380 }
381 }
382
383 /**
384 * @param viewer
385 * @return the field used to provide the labels to the series
386 */
387 private ISTDataViewersField getLabelField(AbstractSTViewer viewer) {
388 return viewer.getAllFields()[0];
389 }
390 }
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.dataviewers.charts.dialogs;
13
14 import java.util.ArrayList;
15 import java.util.LinkedList;
16 import java.util.List;
17
18 import org.eclipse.jface.dialogs.Dialog;
19 import org.eclipse.jface.dialogs.IDialogConstants;
20 import org.eclipse.jface.dialogs.IDialogSettings;
21 import org.eclipse.jface.viewers.IStructuredSelection;
22 import org.eclipse.jface.viewers.StructuredSelection;
23 import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer;
24 import org.eclipse.linuxtools.dataviewers.abstractviewers.ISTDataViewersField;
25 import org.eclipse.linuxtools.dataviewers.charts.provider.IChartField;
26 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
27 import org.eclipse.linuxtools.internal.dataviewers.charts.Messages;
28 import org.eclipse.linuxtools.internal.dataviewers.charts.view.ChartFactory;
29 import org.eclipse.swt.SWT;
30 import org.eclipse.swt.events.SelectionEvent;
31 import org.eclipse.swt.events.SelectionListener;
32 import org.eclipse.swt.layout.FillLayout;
33 import org.eclipse.swt.layout.GridData;
34 import org.eclipse.swt.layout.GridLayout;
35 import org.eclipse.swt.layout.RowLayout;
36 import org.eclipse.swt.widgets.Button;
37 import org.eclipse.swt.widgets.Composite;
38 import org.eclipse.swt.widgets.Control;
39 import org.eclipse.swt.widgets.Group;
40 import org.eclipse.swt.widgets.Label;
41 import org.eclipse.swt.widgets.Shell;
42 import org.eclipse.swt.widgets.Text;
43 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
44
45 /**
46 * The dialog used to customize the chart before creating it.
47 */
48 public class ChartDialog2 extends Dialog {
49
50 /** The section name of the viewer's dialog settings where the chart dialog save its state */
51 private static final String TAG_SECTION_CHARTS_STATE = "charts_section"; //$NON-NLS-1$
52 /**
53 * The key used by the column buttons to save their state. For example the button i will use the key
54 * <code>TAG_COLUMN_BUTTON_+i</code>
55 */
56 private static final String TAG_COLUMN_BUTTON_ = "COLUMN_BUTTON_"; //$NON-NLS-1$
57 /** The key used by the bar graph button to save its state */
58 private static final String TAG_BAR_GRAPH_BUTTON = "BAR_GRAPH_BUTTON"; //$NON-NLS-1$
59 /** The key used by the vertical bars button to save its state */
60 private static final String TAG_VERTICAL_BARS_BUTTON = "VERTICAL_BARS_BUTTON"; //$NON-NLS-1$
61
62 /** The default value of the column buttons */
63 private static final boolean DEFAULT_COLUMN_BUTTON = true;
64 /** The default value of the bar graph button */
65 private static final boolean DEFAULT_BAR_GRAPH_BUTTON = true;
66 /** The default value of the vertical bars button */
67 private static final boolean DEFAULT_VERTICAL_BARS_BUTTON = false;
68
69 private final AbstractSTViewer stViewer;
70 private InteractiveChart chart;
71
72 private Text errorMessageText;
73 private Button verticalBarsButton;
74 private Button pieChartButton;
75 private Button barGraphButton;
76 private Button okButton;
77 private List<Button> columnButtons;
78
79 /**
80 * The constructor.
81 *
82 * @param shell Parent shell.
83 * @param stViewer The viewer this dialog fetch data from.
84 */
85 public ChartDialog2(Shell shell, AbstractSTViewer stViewer) {
86 super(shell);
87 this.stViewer = stViewer;
88 }
89
90 /**
91 * Restores the state of this dialog
92 */
93 private void restoreState() {
94 IDialogSettings settings = stViewer.getViewerSettings().getSection(TAG_SECTION_CHARTS_STATE);
95 if (settings == null) {
96 stViewer.getViewerSettings().addNewSection(TAG_SECTION_CHARTS_STATE);
97 return;
98 }
99
100 for (int i = 0; i < columnButtons.size(); i++) {
101 boolean selected = Boolean.parseBoolean(settings.get(TAG_COLUMN_BUTTON_ + i));
102 columnButtons.get(i).setSelection(selected);
103 }
104
105 boolean barGraph = Boolean.parseBoolean(settings.get(TAG_BAR_GRAPH_BUTTON));
106 barGraphButton.setSelection(barGraph);
107 pieChartButton.setSelection(!barGraph);
108
109 boolean vBars = Boolean.parseBoolean(settings.get(TAG_VERTICAL_BARS_BUTTON));
110 verticalBarsButton.setSelection(vBars);
111 verticalBarsButton.setEnabled(barGraph);
112 }
113
114 /**
115 * Saves the state of this dialog
116 */
117 private void saveState() {
118 IDialogSettings settings = stViewer.getViewerSettings().getSection(TAG_SECTION_CHARTS_STATE);
119 if (settings == null) {
120 stViewer.getViewerSettings().addNewSection(TAG_SECTION_CHARTS_STATE);
121 }
122
123 for (int i = 0; i < columnButtons.size(); i++) {
124 boolean selected = columnButtons.get(i).getSelection();
125 settings.put(TAG_COLUMN_BUTTON_ + i, selected);
126 }
127
128 boolean barGraph = barGraphButton.getSelection();
129 settings.put(TAG_BAR_GRAPH_BUTTON, barGraph);
130
131 boolean vBars = verticalBarsButton.getSelection();
132 settings.put(TAG_VERTICAL_BARS_BUTTON, vBars);
133 }
134
135 @Override
136 protected void configureShell(Shell newShell) {
137 super.configureShell(newShell);
138 newShell.setText(Messages.ChartConstants_CREATE_NEW_CHART_FROM_SELECTION);
139 }
140
141 @Override
142 protected void buttonPressed(int buttonId) {
143 if (buttonId == IDialogConstants.OK_ID) {
144 chart = produceChart();
145 saveState();
146 } else {
147 chart = null;
148 }
149 super.buttonPressed(buttonId);
150 }
151
152 @Override
153 protected void createButtonsForButtonBar(Composite parent) {
154 // create OK and Cancel buttons by default
155 okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
156 createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
157 }
158
159 @Override
160 protected Control createContents(Composite parent) {
161 Control c = super.createContents(parent);
162 this.validateInput();
163 return c;
164 }
165
166 @Override
167 protected Control createDialogArea(Composite parent) {
168 Composite composite = (Composite) super.createDialogArea(parent);
169
170 Composite titleComp = new Composite(composite, SWT.NONE);
171 titleComp.setLayout(new RowLayout(SWT.HORIZONTAL));
172
173 Label icon = new Label(titleComp, SWT.NONE);
174 icon.setImage(Activator.getImage("icons/chart_icon.png")); //$NON-NLS-1$
175
176 Label label = new Label(titleComp, SWT.WRAP);
177 label.setText(Messages.ChartConstants_CHART_BUILDER);
178 GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
179 | GridData.VERTICAL_ALIGN_CENTER);
180 data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
181 titleComp.setLayoutData(data);
182
183 Group chartTypeGroup = new Group(composite, SWT.NONE);
184 data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
185 chartTypeGroup.setLayoutData(data);
186 chartTypeGroup.setLayout(new GridLayout(2, false));
187 chartTypeGroup.setText(Messages.ChartConstants_SELECT_YOUR_CHART_TYPE);
188
189 SelectionListener listener = SelectionListener.widgetSelectedAdapter(e -> validateInput());
190
191 barGraphButton = new Button(chartTypeGroup, SWT.RADIO);
192 barGraphButton.setText(Messages.ChartConstants_BAR_GRAPH);
193 barGraphButton.addSelectionListener(listener);
194 barGraphButton.addSelectionListener(SelectionListener
195 .widgetSelectedAdapter(e -> verticalBarsButton.setEnabled(barGraphButton.getSelection())));
196 data = new GridData();
197 barGraphButton.setLayoutData(data);
198
199 verticalBarsButton = new Button(chartTypeGroup, SWT.CHECK);
200 verticalBarsButton.setText(Messages.ChartConstants_VERTICAL_BARS);
201 data = new GridData();
202 verticalBarsButton.setLayoutData(data);
203
204 pieChartButton = new Button(chartTypeGroup, SWT.RADIO);
205 pieChartButton.setText(Messages.ChartConstants_PIE_CHART);
206 pieChartButton.addSelectionListener(listener);
207 data = new GridData();
208 data.horizontalSpan = 2;
209 pieChartButton.setLayoutData(data);
210
211 Group chartColumnGroup = new Group(composite, SWT.NONE);
212 chartColumnGroup.setLayout(new GridLayout(1, true));
213 data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
214 chartColumnGroup.setLayoutData(data);
215 chartColumnGroup.setText(Messages.ChartConstants_SELECT_COLUMNS_TO_SHOW);
216
217 addColumnButtons(chartColumnGroup, listener);
218
219 errorMessageText = new Text(composite, SWT.READ_ONLY);
220 errorMessageText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
221 errorMessageText.setBackground(errorMessageText.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
222
223 applyDialogFont(composite);
224
225 setWidgetsValues();
226
227 return composite;
228 }
229
230 /**
231 * Sets the widgets values
232 */
233 private void setWidgetsValues() {
234 // set default values
235 barGraphButton.setSelection(DEFAULT_BAR_GRAPH_BUTTON);
236 verticalBarsButton.setEnabled(barGraphButton.getSelection());
237 verticalBarsButton.setSelection(DEFAULT_VERTICAL_BARS_BUTTON);
238 for (Button button : columnButtons) {
239 button.setSelection(DEFAULT_COLUMN_BUTTON);
240 }
241
242 // restore state if there is one saved
243 restoreState();
244 }
245
246 /**
247 * Adds one check button for each column implementing the IChartField interface.
248 *
249 * @see IChartField
250 * @param comp
251 * @param listener
252 */
253 private void addColumnButtons(Composite comp, SelectionListener listener) {
254 columnButtons = new LinkedList<>();
255 for (ISTDataViewersField field : stViewer.getAllFields()) {
256 if (field instanceof IChartField) {
257 IChartField cField = (IChartField) field;
258 Button b = new Button(comp, SWT.CHECK);
259 b.setText(cField.getColumnHeaderText());
260 b.setData(cField);
261 b.addSelectionListener(listener);
262 GridData dt = new GridData();
263 b.setLayoutData(dt);
264 columnButtons.add(b);
265 }
266 }
267
268 Label sep = new Label(comp, SWT.SEPARATOR | SWT.HORIZONTAL);
269 GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
270 sep.setLayoutData(data);
271 Composite buttonComposite = new Composite(comp, SWT.NONE);
272 data = new GridData();
273 buttonComposite.setLayoutData(data);
274 FillLayout l = new FillLayout();
275 l.spacing = 5;
276 buttonComposite.setLayout(l);
277
278 final Button b1 = new Button(buttonComposite, SWT.PUSH);
279 b1.setText(Messages.ChartConstants_SELECT_ALL);
280 final Button b2 = new Button(buttonComposite, SWT.PUSH);
281 b2.setText(Messages.ChartConstants_DESELECT_ALL);
282 SelectionListener sl = new SelectionListener() {
283 @Override
284 public void widgetDefaultSelected(SelectionEvent e) {
285 widgetSelected(e);
286 }
287
288 @Override
289 public void widgetSelected(SelectionEvent e) {
290 boolean b = (e.getSource() == b1);
291 for (Button button : columnButtons) {
292 button.setSelection(b);
293 }
294 validateInput();
295 }
296 };
297 b1.addSelectionListener(sl);
298 b2.addSelectionListener(sl);
299 }
300
301 /**
302 * Returns the Chart built by this dialog
303 *
304 * @return the chart
305 */
306 public InteractiveChart getValue() {
307 return chart;
308 }
309
310 /**
311 * Validates the input.
312 * <p>
313 * The default implementation of this framework method delegates the request to the supplied input validator object;
314 * if it finds the input invalid, the error message is displayed in the dialog's message line. This hook method is
315 * called whenever the text changes in the input field.
316 * </p>
317 */
318 private void validateInput() {
319 String errorMessage = null;
320
321 int selectedNum = 0;
322 for (Button button : columnButtons) {
323 if (button.getSelection())
324 selectedNum++;
325 }
326
327 if (selectedNum == 0) {
328 errorMessage = Messages.ChartConstants_NO_COLUMN_SELECTED;
329 }
330 /*
331 * else if (pieChartButton.getSelection() && selectedNum != 1) { errorMessage =
332 * "PieChart: Please select only one column"; }
333 */
334
335 // Bug 16256: important not to treat "" (blank error) the same as null
336 // (no error)
337 setErrorMessage(errorMessage);
338 }
339
340 /**
341 * Sets or clears the error message. If not <code>null</code>, the OK button is disabled.
342 *
343 * @param errorMessage
344 * the error message, or <code>null</code> to clear
345 * @since 3.0
346 */
347 private void setErrorMessage(String errorMessage) {
348 errorMessageText.setText(errorMessage == null ? "" : errorMessage); //$NON-NLS-1$
349 okButton.setEnabled(errorMessage == null);
350 errorMessageText.getParent().update();
351 }
352
353 /**
354 * Build the chart from configuration
355 *
356 * @return a new chart
357 */
358 private InteractiveChart produceChart() {
359 IStructuredSelection selection = stViewer.getViewer().getStructuredSelection();
360 if (selection == StructuredSelection.EMPTY)
361 return null;
362 Object[] objects = selection.toArray();
363
364 ISTDataViewersField labelField = getLabelField(stViewer);
365
366 List<IChartField> selectedFields = new ArrayList<>();
367 for (Button button : columnButtons) {
368 if (button.getSelection()) {
369 selectedFields.add((IChartField) button.getData());
370 }
371 }
372 boolean barChartType = barGraphButton.getSelection();
373 boolean horizontalBars = !verticalBarsButton.getSelection();
374
375 if (barChartType) {
376 return ChartFactory
377 .produceBarChart(objects, labelField, selectedFields, Messages.ChartConstants_BAR_GRAPH, horizontalBars);
378 } else {
379 return ChartFactory.producePieChart(objects, labelField, selectedFields, Messages.ChartConstants_PIE_CHART);
380 }
381 }
382
383 /**
384 * @param viewer
385 * @return the field used to provide the labels to the series
386 */
387 private ISTDataViewersField getLabelField(AbstractSTViewer viewer) {
388 return viewer.getAllFields()[0];
389 }
390 }
0 /*******************************************************************************
1 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.dataviewers.charts.view;
13
14 import java.util.List;
15
16 import org.eclipse.linuxtools.dataviewers.abstractviewers.ISTDataViewersField;
17 import org.eclipse.linuxtools.dataviewers.charts.provider.IChartField;
18 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
19 import org.eclipse.linuxtools.internal.dataviewers.piechart.PieChart;
20 import org.eclipse.swt.SWT;
21 import org.eclipse.swt.graphics.Color;
22 import org.eclipse.swt.widgets.Display;
23 import org.eclipse.swtchart.IAxis;
24 import org.eclipse.swtchart.IBarSeries;
25 import org.eclipse.swtchart.ISeries.SeriesType;
26 import org.eclipse.swtchart.ITitle;
27 import org.eclipse.swtchart.LineStyle;
28 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
29 import org.eclipse.ui.IWorkbenchPage;
30 import org.eclipse.ui.PartInitException;
31 import org.eclipse.ui.PlatformUI;
32
33 /**
34 * A utility class that handles the charts creation (pie chart and bar chart)
35 *
36 */
37 public final class ChartFactory {
38
39 private ChartFactory() {}
40
41 /**
42 * Produces a pie chart from the input objects.
43 *
44 * @param objects
45 * the input data
46 * @param nameField
47 * the field used to get the labels of the objects (colored parts in the pie).
48 * @param valFields
49 * the field providing the values for the pie parts.
50 * @param title Title of the chart.
51 * @return a new pie chart
52 */
53 public static InteractiveChart producePieChart(Object[] objects, ISTDataViewersField nameField,
54 List<IChartField> valFields, String title) {
55
56 ChartView view;
57 try {
58 final Color WHITE = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WHITE);
59 final Color BLACK = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK);
60 final Color GRAD = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
61
62 view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
63 .showView(ChartView.VIEW_ID, String.valueOf(ChartView.getSecId()), IWorkbenchPage.VIEW_ACTIVATE);
64 PieChart chart = new PieChart(view.getParent(), SWT.NONE);
65
66 chart.setBackground(WHITE);
67 chart.getPlotArea().setBackground(GRAD);
68
69 chart.getTitle().setText(title);
70 chart.getTitle().setForeground(BLACK);
71
72 chart.getLegend().setPosition(SWT.RIGHT);
73
74 String[] valueLabels = new String[objects.length];
75 for (int i = 0; i < objects.length; i++) {
76 valueLabels[i] = nameField.getValue(objects[i]);
77 }
78
79 // pie chart data is grouped by columns
80 // row size is the number of pie charts
81 // column size is the number of data per pie chart
82 double[][] doubleValues = new double[objects.length][valFields.size()];
83
84 // data
85 for (int i = 0; i < valFields.size(); i++) {
86 for (int j = 0; j < objects.length; j++) {
87 Number num = valFields.get(i).getNumber(objects[j]);
88 double longVal = num.doubleValue();
89 doubleValues[j][i] = longVal + 1;
90 }
91 }
92
93 chart.addPieChartSeries(valueLabels, doubleValues);
94 chart.getAxisSet().adjustRange();
95
96 return chart;
97 } catch (PartInitException e) {
98 Activator.getDefault().getLog().log(e.getStatus());
99 }
100 return null;
101 }
102
103 /**
104 * Produces a 2D bar chart from the input objects.
105 *
106 * @param objects
107 * the input data
108 * @param nameField
109 * the field used to get the labels of the objects (the labels of the series groups).
110 * @param valFields
111 * the fields providing the values for the different bars in a series group.
112 * @param title Title of the chart.
113 * @param horizontal
114 * if true the bars are displayed horizontally, else vertically.
115 * @return a new 2D bar chart
116 */
117
118 public static InteractiveChart produceBarChart(Object[] objects, final ISTDataViewersField nameField,
119 List<IChartField> valFields, String title, boolean horizontal) {
120 ChartView view;
121 try {
122 final Color WHITE = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WHITE);
123 final Color BLACK = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK);
124 final Color GRAD = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
125
126 view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
127 .showView(ChartView.VIEW_ID, String.valueOf(ChartView.getSecId()), IWorkbenchPage.VIEW_ACTIVATE);
128 InteractiveChart chart = new InteractiveChart(view.getParent(), SWT.NONE);
129
130 chart.setBackground(WHITE);
131 chart.getPlotArea().setBackground(GRAD);
132
133 chart.getTitle().setText(title);
134 chart.getTitle().setForeground(BLACK);
135 chart.setProposedSaveAsFilename(title.replace(' ', '_'));
136
137 // this is correct (refers to orientation of x-axis, not bars)
138 if (horizontal) {
139 chart.setOrientation(SWT.VERTICAL);
140 } else {
141 chart.setOrientation(SWT.HORIZONTAL);
142 }
143
144 chart.getLegend().setPosition(SWT.RIGHT);
145
146 String[] textLabels = new String[objects.length];
147 for (int i = 0; i < objects.length; i++) {
148 textLabels[i] = nameField.getValue(objects[i]);
149 }
150
151 // x-axis
152 IAxis xAxis = chart.getAxisSet().getXAxis(0);
153 xAxis.getGrid().setStyle(LineStyle.NONE);
154 xAxis.getTick().setForeground(BLACK);
155 ITitle xTitle = xAxis.getTitle();
156 xTitle.setForeground(BLACK);
157 xTitle.setText(nameField.getColumnHeaderText());
158 xAxis.setCategorySeries(textLabels);
159 xAxis.enableCategory(true);
160
161 // y-axis
162 IAxis yAxis = chart.getAxisSet().getYAxis(0);
163 yAxis.getGrid().setStyle(LineStyle.NONE);
164 yAxis.getTick().setForeground(BLACK);
165 yAxis.getTitle().setVisible(false);
166
167 // data
168 for (IChartField field : valFields) {
169 final IBarSeries bs = (IBarSeries) chart.getSeriesSet().createSeries(SeriesType.BAR,
170 field.getColumnHeaderText());
171 bs.setBarColor(new Color(Display.getDefault(), getRC(), getRC(), getRC()));
172 double[] doubleValues = new double[objects.length];
173
174 for (int i = 0; i < objects.length; i++) {
175 Number num = field.getNumber(objects[i]);
176 double longVal = num.doubleValue();
177 doubleValues[i] = longVal;
178 }
179
180 bs.setYSeries(doubleValues);
181 }
182
183 chart.getAxisSet().adjustRange();
184
185 return chart;
186 } catch (PartInitException e) {
187 Activator.getDefault().getLog().log(e.getStatus());
188 }
189 return null;
190 }
191
192 private static int getRC() {
193 return (int) (Math.random() * 255);
194 }
195 }
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 STMicroelectronics and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414
1515 import org.eclipse.core.runtime.IStatus;
1616 import org.eclipse.core.runtime.Status;
17 import org.eclipse.jface.action.IToolBarManager;
18 import org.eclipse.linuxtools.dataviewers.charts.actions.SaveChartAction;
1917 import org.eclipse.linuxtools.internal.dataviewers.charts.Activator;
2018 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.ui.IActionBars;
2219 import org.eclipse.ui.IWorkbenchPage;
2320 import org.eclipse.ui.PartInitException;
2421 import org.eclipse.ui.PlatformUI;
2522 import org.eclipse.ui.part.ViewPart;
26 import org.swtchart.Chart;
2723
2824 /**
2925 * The chart view.
4642
4743 private Composite parent;
4844
49 private SaveChartAction saveChartAction;
50
5145 /**
5246 * Create and open a new chart view <br/>
5347 * <br/>
5549 * thread execution is synchronized on internal Integer SEC_ID which is the secondary id of the chart view. Each new
5650 * chart view has a secondary id equal to SEC_ID++.
5751 *
58 * @param chart The chart to create view for.
5952 */
60 public static void createChartView(final Chart chart) {
53 public static void createChartView() {
6154 PlatformUI.getWorkbench().getDisplay().syncExec(() -> {
6255 try {
6356 synchronized (lock) {
64 ChartView view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow()
57 PlatformUI.getWorkbench().getActiveWorkbenchWindow()
6558 .getActivePage().showView(VIEW_ID, String.valueOf(SEC_ID++), IWorkbenchPage.VIEW_ACTIVATE);
66 view.setChart(chart);
6759
6860 }
6961 } catch (PartInitException e) {
7769 @Override
7870 public void createPartControl(Composite parent) {
7971 this.parent = parent;
80 createActions();
81 IActionBars actionBars = getViewSite().getActionBars();
82 initToolBar(actionBars.getToolBarManager());
83 }
84
85 private void createActions() {
86 saveChartAction = new SaveChartAction();
87 }
88
89 protected void initToolBar(IToolBarManager manager) {
90 manager.add(saveChartAction);
91 manager.update(true);
9272 }
9373
9474 @Override
9676 if (parent != null && !parent.isDisposed()) {
9777 parent.setFocus();
9878 }
99 }
100
101 /**
102 * Set the chart in this view
103 *
104 * @param chart
105 */
106 private void setChart(Chart chart) {
107 saveChartAction.setChart(chart);
10879 }
10980
11081 public Composite getParent() {
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
1111 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1212 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1818 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1919 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2020 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
21 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2122 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2223 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2324 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7475 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7576 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7677 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
78 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7779 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7880 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7981 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
105107 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106108 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107109 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
110 org.eclipse.jdt.core.compiler.release=enabled
111 org.eclipse.jdt.core.compiler.source=11
11 Bundle-ManifestVersion: 2
22 Bundle-Name: %bundleName
33 Bundle-SymbolicName: org.eclipse.linuxtools.dataviewers.piechart
4 Bundle-Version: 2.0.1.qualifier
4 Bundle-Version: 3.0.0.qualifier
55 Bundle-Vendor: %bundleProvider
66 Bundle-Localization: plugin
77 Require-Bundle: org.eclipse.ui,
8 org.swtchart
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 org.eclipse.swtchart
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Bundle-ActivationPolicy: lazy
11 Export-Package: org.eclipse.linuxtools.dataviewers.piechart
11 Export-Package: org.eclipse.linuxtools.dataviewers.piechart, org.eclipse.linuxtools.internal.dataviewers.piechart;x-internal:=true
1212 Automatic-Module-Name: org.eclipse.linuxtools.dataviewers.piechart
13 Import-Package: org.eclipse.swtchart.extensions.charts
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.dataviewers.piechart</artifactId>
21 <version>2.0.1-SNAPSHOT</version>
21 <version>3.0.0-SNAPSHOT</version>
2222 <packaging>eclipse-plugin</packaging>
2323
2424 <name>Linux Tools PieChart plug-in</name>
+0
-166
profiling/org.eclipse.linuxtools.dataviewers.piechart/src/org/eclipse/linuxtools/dataviewers/piechart/PieChart.java less more
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * IBM Corporation - Renato Stoffalette Joao <rsjoao@br.ibm.com>
11 *******************************************************************************/
12 package org.eclipse.linuxtools.dataviewers.piechart;
13
14 import java.util.ArrayList;
15 import java.util.List;
16
17 import org.eclipse.swt.events.PaintListener;
18 import org.eclipse.swt.graphics.Color;
19 import org.eclipse.swt.graphics.RGB;
20 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Control;
22 import org.swtchart.Chart;
23 import org.swtchart.IAxis;
24 import org.swtchart.IBarSeries;
25 import org.swtchart.ISeries;
26 import org.swtchart.ITitle;
27
28 public class PieChart extends Chart {
29
30 protected List<RGB> colorList = new ArrayList<>();
31 private Color[] customColors = null;
32 private PieChartPaintListener pieChartPaintListener;
33
34 public PieChart(Composite parent, int style) {
35 super(parent, style);
36 // Hide all original axes and plot area
37 for (IAxis axis : getAxisSet().getAxes()) {
38 axis.getTitle().setVisible(false);
39 }
40 getPlotArea().setVisible(false);
41 // Make the title draw after the pie-chart itself so we can modify the title
42 // to center over the pie-chart area
43 ITitle title = getTitle();
44 // Underlying SWT Chart implementation changes from the title being a Control to just
45 // a PaintListener. In the Control class case, we can move it's location to
46 // center over a PieChart, but in the latter case, we need to alter the title
47 // with blanks in the PieChartPaintListener and have the title paint after it
48 // once the title has been altered.
49 if (title instanceof Control) {
50 addPaintListener(pieChartPaintListener = new PieChartPaintListener(this));
51 } else {
52 removePaintListener((PaintListener)title);
53 addPaintListener(pieChartPaintListener = new PieChartPaintListener(this));
54 addPaintListener((PaintListener)title);
55 }
56 IAxis xAxis = getAxisSet().getXAxis(0);
57 xAxis.enableCategory(true);
58 xAxis.setCategorySeries(new String[]{""}); //$NON-NLS-1$
59 }
60
61 @Override
62 public void addPaintListener(PaintListener listener) {
63 if (!listener.getClass().getName().startsWith("org.swtchart.internal.axis")) { //$NON-NLS-1$
64 super.addPaintListener(listener);
65 }
66 }
67
68 /**
69 * Sets the custom colors to use.
70 * @param customColors The custom colors to use.
71 * @since 2.0
72 */
73 public void setCustomColors(Color[] customColors) {
74 this.customColors = customColors.clone();
75 }
76
77 /**
78 * Add data to this Pie Chart. We'll build one pie chart for each value in the array provided. The val matrix must
79 * have an array of an array of values. Ex. labels = {'a', 'b'} val = {{1,2,3}, {4,5,6}} This will create 3 pie
80 * charts. For the first one, 'a' will be 1 and 'b' will be 4. For the second chart 'a' will be 2 and 'b' will be 5.
81 * For the third 'a' will be 3 and 'b' will be 6.
82 * @param labels The titles of each series. (These are not the same as titles given to pies.)
83 * @param val New values.
84 */
85 public void addPieChartSeries(String labels[], double val[][]) {
86 setSeriesNames(val[0].length);
87 for (ISeries s : this.getSeriesSet().getSeries()) {
88 this.getSeriesSet().deleteSeries(s.getId());
89 }
90
91 int size = Math.min(labels.length, val.length);
92 for (int i = 0; i < size; i++) {
93 IBarSeries s = (IBarSeries) this.getSeriesSet().createSeries(ISeries.SeriesType.BAR, labels[i]);
94 double d[] = new double[val[i].length];
95 for (int j = 0; j < val[i].length; j++) {
96 d[j] = val[i][j];
97 }
98 s.setXSeries(d);
99 if (customColors != null) {
100 s.setBarColor(customColors[i % customColors.length]);
101 } else {
102 s.setBarColor(new Color(this.getDisplay(), sliceColor(i)));
103 }
104 }
105 }
106
107 /**
108 * Sets this chart's category names such that the number of names
109 * is equal to the number of pies. This method will only make changes
110 * to category series if they are not already properly set.
111 * @param numExpected The number of pies / the expected number of category names.
112 */
113 private void setSeriesNames(int numExpected) {
114 IAxis xAxis = getAxisSet().getXAxis(0);
115 if (xAxis.getCategorySeries().length != numExpected) {
116 String[] seriesNames = new String[numExpected];
117 for (int i = 0, n = Math.min(xAxis.getCategorySeries().length, numExpected); i < n; i++) {
118 seriesNames[i] = xAxis.getCategorySeries()[i];
119 }
120 for (int i = xAxis.getCategorySeries().length; i < numExpected; i++) {
121 seriesNames[i] = ""; //$NON-NLS-1$
122 }
123 xAxis.setCategorySeries(seriesNames);
124 }
125 }
126
127 protected RGB sliceColor(int i) {
128 if (colorList.size() > i) {
129 return colorList.get(i);
130 }
131
132 RGB next = IColorsConstants.COLORS[i % IColorsConstants.COLORS.length];
133 colorList.add(next);
134 return next;
135 }
136
137 /**
138 * Given a set of 2D pixel coordinates (typically those of a mouse cursor), return the
139 * index of the given pie's slice that those coordinates reside in.
140 * @param pieIndex The index of the pie to get the slice of.
141 * @param x The x-coordinate to test.
142 * @param y The y-coordinate to test.
143 * @return The slice that contains the point with coordinates (x,y).
144 * @since 2.0
145 */
146 public int getSliceIndexFromPosition(int pieIndex, int x, int y) {
147 return pieChartPaintListener.getSliceIndexFromPosition(pieIndex, x, y);
148 }
149
150 /**
151 * Given a pie and one of its slices, returns the size of the slice as a percentage of the pie.
152 * @param pieIndex The index of the pie to check.
153 * @param sliceIndex The slice of the pie to get the percentage of.
154 * @return The percentage of the entire pie taken up by the slice.
155 * @since 2.0
156 */
157 public double getSlicePercent(int pieIndex, int sliceIndex) {
158 double max = 0;
159 ISeries series[] = getSeriesSet().getSeries();
160 for (int i = 0; i < series.length; i++) {
161 max += series[i].getXSeries()[pieIndex];
162 }
163 return series[sliceIndex].getXSeries()[pieIndex] / max * 100;
164 }
165 }
+0
-266
profiling/org.eclipse.linuxtools.dataviewers.piechart/src/org/eclipse/linuxtools/dataviewers/piechart/PieChartPaintListener.java less more
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * IBM Corporation - Renato Stoffalette Joao <rsjoao@br.ibm.com>
11 *******************************************************************************/
12 package org.eclipse.linuxtools.dataviewers.piechart;
13
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.events.PaintEvent;
16 import org.eclipse.swt.events.PaintListener;
17 import org.eclipse.swt.graphics.Color;
18 import org.eclipse.swt.graphics.Font;
19 import org.eclipse.swt.graphics.GC;
20 import org.eclipse.swt.graphics.Point;
21 import org.eclipse.swt.graphics.Rectangle;
22 import org.eclipse.swt.widgets.Control;
23 import org.eclipse.swt.widgets.Display;
24 import org.swtchart.IBarSeries;
25 import org.swtchart.ISeries;
26 import org.swtchart.ITitle;
27 import org.swtchart.Range;
28
29 public class PieChartPaintListener implements PaintListener {
30
31 private PieChart chart;
32 private Control plotArea;
33 private double[][] seriesValues;
34 private String[] seriesNames;
35 private static final int X_GAP = 10;
36
37 private static final Color WHITE = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
38 private static final Color BLACK = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
39 private static final String FONT = "Arial"; //$NON-NLS-1$
40
41 private Point[] pieCenters;
42 private int[][] pieSliceAngles;
43 private int pieWidth;
44
45 private String origTitleText;
46
47 /**
48 * Handles drawing and updating of a PieChart, with titles given to its legend and
49 * to each of its pies. Pies will be drawn in the given chart's plot area.
50 * @param chart The PieChart to draw and update.
51 * @since 2.0
52 */
53 public PieChartPaintListener(PieChart chart) {
54 this.chart = chart;
55 this.plotArea = chart.getPlotArea();
56 }
57
58 @Override
59 public void paintControl(PaintEvent e) {
60 GC gc = e.gc;
61 Rectangle bounds;
62 this.getPieSeriesArray();
63 pieCenters = new Point[seriesValues.length];
64 pieSliceAngles = new int[seriesValues.length][];
65 if (seriesValues.length == 0) {
66 bounds = gc.getClipping();
67 Font oldFont = gc.getFont();
68 Font font = new Font(Display.getDefault(), FONT, 15, SWT.BOLD);
69 gc.setForeground(BLACK);
70 gc.setFont(font);
71 String text = "No data"; //$NON-NLS-1$
72 Point textSize = e.gc.textExtent(text);
73 gc.drawText(text, (bounds.width - textSize.x) / 2, (bounds.height - textSize.y) / 2);
74 gc.setFont(oldFont);
75 font.dispose();
76 return;
77 }
78 bounds = plotArea.getBounds();
79 // Adjust the title so it centers in the plot area
80 if (origTitleText == null) {
81 origTitleText = chart.getTitle().getText();
82 }
83
84 // We want to center the title in the plot area rather than the entire view which includes
85 // the legend. To force this, we have two algorithms depending on what level of the
86 // underlying SWT Chart software we are using. If the title is an SWT Control, we simply
87 // set the title's location manually. If the title is just a PaintListener, we center it
88 // by adding a number of trailing spaces which we calculate.
89 if (chart.getTitle() instanceof Control) {
90 setTitleBounds(bounds);
91 } else {
92 adjustTitle(e);
93 }
94 int width = bounds.width / seriesValues.length;
95 int x = bounds.x;
96
97 if (chart.getLegend().isVisible()) {
98 Rectangle legendBounds = ((Control) chart.getLegend()).getBounds();
99 Font oldFont = gc.getFont();
100 Font font = new Font(Display.getDefault(), FONT, 10, SWT.BOLD);
101 gc.setForeground(BLACK);
102 gc.setFont(font);
103 String text = chart.getAxisSet().getXAxis(0).getTitle().getText();
104 Point textSize = e.gc.textExtent(text);
105 gc.drawText(text, legendBounds.x + (legendBounds.width - textSize.x) / 2, legendBounds.y - textSize.y);
106 gc.setFont(oldFont);
107 font.dispose();
108 }
109
110 pieWidth = Math.min(width - X_GAP, bounds.height);
111 for (int i = 0; i < seriesValues.length; i++) {
112 drawPieChart(e, i, new Rectangle(x, bounds.y, width, bounds.height));
113 x += width;
114 }
115 }
116
117 // For a title which is a Control, position it appropriately to center in the plot area.
118 private void setTitleBounds(Rectangle bounds) {
119 Control title = (Control) chart.getTitle();
120 Rectangle titleBounds = title.getBounds();
121 title.setLocation(new Point(bounds.x + (bounds.width - titleBounds.width) / 2, title.getLocation().y));
122 }
123
124 // Adjust the title with trailing blanks so it centers in the plot area
125 // rather than for the entire chart view which looks odd when not
126 // centered above the pie-charts themselves.
127 private void adjustTitle(PaintEvent pe) {
128 ITitle title = chart.getTitle();
129 Font font = title.getFont();
130 Font oldFont = pe.gc.getFont();
131 pe.gc.setFont(font);
132 Control legend = (Control)chart.getLegend();
133 Rectangle legendBounds = legend.getBounds();
134 int adjustment = legendBounds.width - 15;
135 Point blankSize = pe.gc.textExtent(" "); //$NON-NLS-1$
136 int numBlanks = ((adjustment / blankSize.x) >> 1) << 1;
137 String text = origTitleText;
138 for (int i = 0; i < numBlanks; ++i)
139 text += " "; //$NON-NLS-1$
140 pe.gc.setFont(oldFont);
141 title.setText(text);
142 }
143
144 private void drawPieChart(PaintEvent e, int chartnum, Rectangle bounds) {
145 double series[] = seriesValues[chartnum];
146 int nelemSeries = series.length;
147 double sumTotal = 0;
148
149 pieSliceAngles[chartnum] = new int[nelemSeries - 1]; // Don't need first angle; it's always 0
150 for (int i = 0; i < nelemSeries; i++) {
151 sumTotal += series[i];
152 }
153
154 GC gc = e.gc;
155 Font oldFont = gc.getFont();
156 gc.setLineWidth(1);
157
158 int pieX = bounds.x + (bounds.width - pieWidth) / 2;
159 int pieY = bounds.y + (bounds.height - pieWidth) / 2;
160 pieCenters[chartnum] = new Point(pieX + pieWidth / 2, pieY + pieWidth / 2);
161 if (sumTotal == 0) {
162 gc.drawOval(pieX, pieY, pieWidth, pieWidth);
163 } else {
164 double factor = 100 / sumTotal;
165 int sweepAngle = 0;
166 int incrementAngle = 0;
167 int initialAngle = 90;
168 for (int i = 0; i < nelemSeries; i++) {
169 // Stored angles increase in clockwise direction from 0 degrees at 12:00
170 if (i > 0) {
171 pieSliceAngles[chartnum][i - 1] = 90 - initialAngle;
172 }
173
174 gc.setBackground(((IBarSeries) chart.getSeriesSet().getSeries()[i]).getBarColor());
175
176 if (i == (nelemSeries - 1)) {
177 sweepAngle = 360 - incrementAngle;
178 } else {
179 double angle = series[i] * factor * 3.6;
180 sweepAngle = (int) Math.round(angle);
181 }
182 gc.fillArc(pieX, pieY, pieWidth, pieWidth, initialAngle, (-sweepAngle));
183 gc.drawArc(pieX, pieY, pieWidth, pieWidth, initialAngle, (-sweepAngle));
184 incrementAngle += sweepAngle;
185 initialAngle += (-sweepAngle);
186 }
187 gc.drawLine(pieCenters[chartnum].x, pieCenters[chartnum].y, pieCenters[chartnum].x, pieCenters[chartnum].y - pieWidth / 2);
188 }
189
190 Font font = new Font(Display.getDefault(), FONT, 12, SWT.BOLD);
191 gc.setForeground(BLACK);
192 gc.setBackground(WHITE);
193 gc.setFont(font);
194 String text = seriesNames[chartnum];
195 Point textSize = e.gc.textExtent(text);
196 gc.drawText(text, pieX + (pieWidth - textSize.x) / 2, pieY + pieWidth + textSize.y);
197 gc.setFont(oldFont);
198 font.dispose();
199 }
200
201 private void getPieSeriesArray() {
202 ISeries series[] = this.chart.getSeriesSet().getSeries();
203 if (series == null || series.length == 0) {
204 seriesValues = new double[0][0];
205 seriesNames = new String[0];
206 return;
207 }
208 String names[] = this.chart.getAxisSet().getXAxis(0).getCategorySeries();
209 Range range = chart.getAxisSet().getXAxis(0).getRange();
210 int itemRange = (int) range.upper - (int) range.lower + 1;
211 int itemOffset = (int) range.lower;
212 seriesValues = new double[itemRange][series.length];
213 seriesNames = new String[itemRange];
214
215 for (int i = 0; i < seriesValues.length; i++) {
216 seriesNames[i] = names[i + itemOffset];
217 for (int j = 0; j < seriesValues[i].length; j++) {
218 double d[] = series[j].getXSeries();
219 if (d != null && d.length > 0) {
220 seriesValues[i][j] = d[i + itemOffset];
221 } else {
222 seriesValues[i][j] = 0;
223 }
224 }
225 }
226
227 return;
228 }
229
230 /**
231 * Given a set of 2D pixel coordinates (typically those of a mouse cursor), return the
232 * index of the given pie's slice that those coordinates reside in.
233 * @param chartnum The id of the chart.
234 * @param x The x-coordinate to test.
235 * @param y The y-coordinate to test.
236 * @return The slice that contains the point with coordinates (x,y).
237 * @since 2.0
238 */
239 public int getSliceIndexFromPosition(int chartnum, int x, int y) {
240 Range range = chart.getAxisSet().getXAxis(0).getRange();
241 chartnum -= (int) range.lower;
242 if (chartnum >= pieCenters.length || chartnum < 0) {
243 return -1;
244 }
245 // Only continue if the point is inside the pie circle
246 double rad = Math.sqrt(Math.pow(pieCenters[chartnum].x - x, 2) + Math.pow(pieCenters[chartnum].y - y, 2));
247 if (2 * rad > pieWidth) {
248 return -1;
249 }
250 // Angle is relative to 12:00 position, increases clockwise
251 double angle = Math.acos((pieCenters[chartnum].y - y) / rad) / Math.PI * 180.0;
252 if (x - pieCenters[chartnum].x < 0) {
253 angle = 360 - angle;
254 }
255 if (pieSliceAngles[chartnum].length == 0 || angle < pieSliceAngles[chartnum][0]) {
256 return 0;
257 }
258 for (int s = 0; s < pieSliceAngles[chartnum].length - 1; s++) {
259 if (pieSliceAngles[chartnum][s] <= angle && angle < pieSliceAngles[chartnum][s+1]) {
260 return s + 1;
261 }
262 }
263 return pieSliceAngles[chartnum].length;
264 }
265 }
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * IBM Corporation - Renato Stoffalette Joao <rsjoao@br.ibm.com>
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.dataviewers.piechart;
13
14 import java.util.ArrayList;
15 import java.util.List;
16
17 import org.eclipse.linuxtools.dataviewers.piechart.IColorsConstants;
18 import org.eclipse.swt.events.PaintListener;
19 import org.eclipse.swt.graphics.Color;
20 import org.eclipse.swt.graphics.RGB;
21 import org.eclipse.swt.widgets.Composite;
22 import org.eclipse.swt.widgets.Control;
23 import org.eclipse.swtchart.IAxis;
24 import org.eclipse.swtchart.IBarSeries;
25 import org.eclipse.swtchart.ISeries;
26 import org.eclipse.swtchart.ITitle;
27 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
28
29 public class PieChart extends InteractiveChart {
30
31 protected List<RGB> colorList = new ArrayList<>();
32 private Color[] customColors = null;
33 private PieChartPaintListener pieChartPaintListener;
34
35 public PieChart(Composite parent, int style) {
36 super(parent, style);
37 // Hide all original axes and plot area
38 for (IAxis axis : getAxisSet().getAxes()) {
39 axis.getTitle().setVisible(false);
40 }
41 getPlotArea().getControl().setVisible(false);
42 // Make the title draw after the pie-chart itself so we can modify the title
43 // to center over the pie-chart area
44 ITitle title = getTitle();
45 // Underlying SWT Chart implementation changes from the title being a Control to just
46 // a PaintListener. In the Control class case, we can move it's location to
47 // center over a PieChart, but in the latter case, we need to alter the title
48 // with blanks in the PieChartPaintListener and have the title paint after it
49 // once the title has been altered.
50 if (title instanceof Control) {
51 addPaintListener(pieChartPaintListener = new PieChartPaintListener(this));
52 } else {
53 removePaintListener((PaintListener)title);
54 addPaintListener(pieChartPaintListener = new PieChartPaintListener(this));
55 addPaintListener((PaintListener)title);
56 }
57 IAxis xAxis = getAxisSet().getXAxis(0);
58 xAxis.enableCategory(true);
59 xAxis.setCategorySeries(new String[]{""}); //$NON-NLS-1$
60 }
61
62 @Override
63 public void addPaintListener(PaintListener listener) {
64 if (!listener.getClass().getName().startsWith("org.eclipse.swtchart.internal.axis")) { //$NON-NLS-1$
65 super.addPaintListener(listener);
66 }
67 }
68
69 /**
70 * Sets the custom colors to use.
71 * @param customColors The custom colors to use.
72 * @since 2.0
73 */
74 public void setCustomColors(Color[] customColors) {
75 this.customColors = customColors.clone();
76 }
77
78 /**
79 * Add data to this Pie Chart. We'll build one pie chart for each value in the array provided. The val matrix must
80 * have an array of an array of values. Ex. labels = {'a', 'b'} val = {{1,2,3}, {4,5,6}} This will create 3 pie
81 * charts. For the first one, 'a' will be 1 and 'b' will be 4. For the second chart 'a' will be 2 and 'b' will be 5.
82 * For the third 'a' will be 3 and 'b' will be 6.
83 * @param labels The titles of each series. (These are not the same as titles given to pies.)
84 * @param val New values.
85 */
86 public void addPieChartSeries(String labels[], double val[][]) {
87 setSeriesNames(val[0].length);
88 for (ISeries s : this.getSeriesSet().getSeries()) {
89 this.getSeriesSet().deleteSeries(s.getId());
90 }
91
92 int size = Math.min(labels.length, val.length);
93 for (int i = 0; i < size; i++) {
94 IBarSeries s = (IBarSeries) this.getSeriesSet().createSeries(ISeries.SeriesType.BAR, labels[i]);
95 double d[] = new double[val[i].length];
96 for (int j = 0; j < val[i].length; j++) {
97 d[j] = val[i][j];
98 }
99 s.setXSeries(d);
100 if (customColors != null) {
101 s.setBarColor(customColors[i % customColors.length]);
102 } else {
103 s.setBarColor(new Color(this.getDisplay(), sliceColor(i)));
104 }
105 }
106 }
107
108 /**
109 * Sets this chart's category names such that the number of names
110 * is equal to the number of pies. This method will only make changes
111 * to category series if they are not already properly set.
112 * @param numExpected The number of pies / the expected number of category names.
113 */
114 private void setSeriesNames(int numExpected) {
115 IAxis xAxis = getAxisSet().getXAxis(0);
116 if (xAxis.getCategorySeries().length != numExpected) {
117 String[] seriesNames = new String[numExpected];
118 for (int i = 0, n = Math.min(xAxis.getCategorySeries().length, numExpected); i < n; i++) {
119 seriesNames[i] = xAxis.getCategorySeries()[i];
120 }
121 for (int i = xAxis.getCategorySeries().length; i < numExpected; i++) {
122 seriesNames[i] = ""; //$NON-NLS-1$
123 }
124 xAxis.setCategorySeries(seriesNames);
125 }
126 }
127
128 protected RGB sliceColor(int i) {
129 if (colorList.size() > i) {
130 return colorList.get(i);
131 }
132
133 RGB next = IColorsConstants.COLORS[i % IColorsConstants.COLORS.length];
134 colorList.add(next);
135 return next;
136 }
137
138 /**
139 * Given a set of 2D pixel coordinates (typically those of a mouse cursor), return the
140 * index of the given pie's slice that those coordinates reside in.
141 * @param pieIndex The index of the pie to get the slice of.
142 * @param x The x-coordinate to test.
143 * @param y The y-coordinate to test.
144 * @return The slice that contains the point with coordinates (x,y).
145 * @since 2.0
146 */
147 public int getSliceIndexFromPosition(int pieIndex, int x, int y) {
148 return pieChartPaintListener.getSliceIndexFromPosition(pieIndex, x, y);
149 }
150
151 /**
152 * Given a pie and one of its slices, returns the size of the slice as a percentage of the pie.
153 * @param pieIndex The index of the pie to check.
154 * @param sliceIndex The slice of the pie to get the percentage of.
155 * @return The percentage of the entire pie taken up by the slice.
156 * @since 2.0
157 */
158 public double getSlicePercent(int pieIndex, int sliceIndex) {
159 double max = 0;
160 ISeries series[] = getSeriesSet().getSeries();
161 for (int i = 0; i < series.length; i++) {
162 max += series[i].getXSeries()[pieIndex];
163 }
164 return series[sliceIndex].getXSeries()[pieIndex] / max * 100;
165 }
166 }
0 /*******************************************************************************
1 * Copyright (c) 2012, 2018 IBM Corporation and others.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * IBM Corporation - Renato Stoffalette Joao <rsjoao@br.ibm.com>
11 *******************************************************************************/
12 package org.eclipse.linuxtools.internal.dataviewers.piechart;
13
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.events.PaintEvent;
16 import org.eclipse.swt.events.PaintListener;
17 import org.eclipse.swt.graphics.Color;
18 import org.eclipse.swt.graphics.Font;
19 import org.eclipse.swt.graphics.GC;
20 import org.eclipse.swt.graphics.Point;
21 import org.eclipse.swt.graphics.Rectangle;
22 import org.eclipse.swt.widgets.Control;
23 import org.eclipse.swt.widgets.Display;
24 import org.eclipse.swtchart.IBarSeries;
25 import org.eclipse.swtchart.ISeries;
26 import org.eclipse.swtchart.ITitle;
27 import org.eclipse.swtchart.Range;
28
29 public class PieChartPaintListener implements PaintListener {
30
31 private PieChart chart;
32 private Control plotArea;
33 private double[][] seriesValues;
34 private String[] seriesNames;
35 private static final int X_GAP = 10;
36
37 private static final Color WHITE = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
38 private static final Color BLACK = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
39 private static final String FONT = "Arial"; //$NON-NLS-1$
40
41 private Point[] pieCenters;
42 private int[][] pieSliceAngles;
43 private int pieWidth;
44
45 private String origTitleText;
46
47 /**
48 * Handles drawing and updating of a PieChart, with titles given to its legend and
49 * to each of its pies. Pies will be drawn in the given chart's plot area.
50 * @param chart The PieChart to draw and update.
51 * @since 2.0
52 */
53 public PieChartPaintListener(PieChart chart) {
54 this.chart = chart;
55 this.plotArea = chart.getPlotArea().getControl();
56 }
57
58 @Override
59 public void paintControl(PaintEvent e) {
60 GC gc = e.gc;
61 Rectangle bounds;
62 this.getPieSeriesArray();
63 pieCenters = new Point[seriesValues.length];
64 pieSliceAngles = new int[seriesValues.length][];
65 if (seriesValues.length == 0) {
66 bounds = gc.getClipping();
67 Font oldFont = gc.getFont();
68 Font font = new Font(Display.getDefault(), FONT, 15, SWT.BOLD);
69 gc.setForeground(BLACK);
70 gc.setFont(font);
71 String text = "No data"; //$NON-NLS-1$
72 Point textSize = e.gc.textExtent(text);
73 gc.drawText(text, (bounds.width - textSize.x) / 2, (bounds.height - textSize.y) / 2);
74 gc.setFont(oldFont);
75 font.dispose();
76 return;
77 }
78 bounds = plotArea.getBounds();
79 // Adjust the title so it centers in the plot area
80 if (origTitleText == null) {
81 origTitleText = chart.getTitle().getText();
82 }
83
84 // We want to center the title in the plot area rather than the entire view which includes
85 // the legend. To force this, we have two algorithms depending on what level of the
86 // underlying SWT Chart software we are using. If the title is an SWT Control, we simply
87 // set the title's location manually. If the title is just a PaintListener, we center it
88 // by adding a number of trailing spaces which we calculate.
89 if (chart.getTitle() instanceof Control) {
90 setTitleBounds(bounds);
91 } else {
92 adjustTitle(e);
93 }
94 int width = bounds.width / seriesValues.length;
95 int x = bounds.x;
96
97 if (chart.getLegend().isVisible()) {
98 Rectangle legendBounds = ((Control) chart.getLegend()).getBounds();
99 Font oldFont = gc.getFont();
100 Font font = new Font(Display.getDefault(), FONT, 10, SWT.BOLD);
101 gc.setForeground(BLACK);
102 gc.setFont(font);
103 String text = chart.getAxisSet().getXAxis(0).getTitle().getText();
104 Point textSize = e.gc.textExtent(text);
105 gc.drawText(text, legendBounds.x + (legendBounds.width - textSize.x) / 2, legendBounds.y - textSize.y);
106 gc.setFont(oldFont);
107 font.dispose();
108 }
109
110 pieWidth = Math.min(width - X_GAP, bounds.height);
111 for (int i = 0; i < seriesValues.length; i++) {
112 drawPieChart(e, i, new Rectangle(x, bounds.y, width, bounds.height));
113 x += width;
114 }
115 }
116
117 // For a title which is a Control, position it appropriately to center in the plot area.
118 private void setTitleBounds(Rectangle bounds) {
119 Control title = (Control) chart.getTitle();
120 Rectangle titleBounds = title.getBounds();
121 title.setLocation(new Point(bounds.x + (bounds.width - titleBounds.width) / 2, title.getLocation().y));
122 }
123
124 // Adjust the title with trailing blanks so it centers in the plot area
125 // rather than for the entire chart view which looks odd when not
126 // centered above the pie-charts themselves.
127 private void adjustTitle(PaintEvent pe) {
128 ITitle title = chart.getTitle();
129 Font font = title.getFont();
130 Font oldFont = pe.gc.getFont();
131 pe.gc.setFont(font);
132 Control legend = (Control)chart.getLegend();
133 Rectangle legendBounds = legend.getBounds();
134 int adjustment = legendBounds.width - 15;
135 Point blankSize = pe.gc.textExtent(" "); //$NON-NLS-1$
136 int numBlanks = ((adjustment / blankSize.x) >> 1) << 1;
137 String text = origTitleText;
138 for (int i = 0; i < numBlanks; ++i)
139 text += " "; //$NON-NLS-1$
140 pe.gc.setFont(oldFont);
141 title.setText(text);
142 }
143
144 private void drawPieChart(PaintEvent e, int chartnum, Rectangle bounds) {
145 double series[] = seriesValues[chartnum];
146 int nelemSeries = series.length;
147 double sumTotal = 0;
148
149 pieSliceAngles[chartnum] = new int[nelemSeries - 1]; // Don't need first angle; it's always 0
150 for (int i = 0; i < nelemSeries; i++) {
151 sumTotal += series[i];
152 }
153
154 GC gc = e.gc;
155 Font oldFont = gc.getFont();
156 gc.setLineWidth(1);
157
158 int pieX = bounds.x + (bounds.width - pieWidth) / 2;
159 int pieY = bounds.y + (bounds.height - pieWidth) / 2;
160 pieCenters[chartnum] = new Point(pieX + pieWidth / 2, pieY + pieWidth / 2);
161 if (sumTotal == 0) {
162 gc.drawOval(pieX, pieY, pieWidth, pieWidth);
163 } else {
164 double factor = 100 / sumTotal;
165 int sweepAngle = 0;
166 int incrementAngle = 0;
167 int initialAngle = 90;
168 for (int i = 0; i < nelemSeries; i++) {
169 // Stored angles increase in clockwise direction from 0 degrees at 12:00
170 if (i > 0) {
171 pieSliceAngles[chartnum][i - 1] = 90 - initialAngle;
172 }
173
174 gc.setBackground(((IBarSeries) chart.getSeriesSet().getSeries()[i]).getBarColor());
175
176 if (i == (nelemSeries - 1)) {
177 sweepAngle = 360 - incrementAngle;
178 } else {
179 double angle = series[i] * factor * 3.6;
180 sweepAngle = (int) Math.round(angle);
181 }
182 gc.fillArc(pieX, pieY, pieWidth, pieWidth, initialAngle, (-sweepAngle));
183 gc.drawArc(pieX, pieY, pieWidth, pieWidth, initialAngle, (-sweepAngle));
184 incrementAngle += sweepAngle;
185 initialAngle += (-sweepAngle);
186 }
187 gc.drawLine(pieCenters[chartnum].x, pieCenters[chartnum].y, pieCenters[chartnum].x, pieCenters[chartnum].y - pieWidth / 2);
188 }
189
190 Font font = new Font(Display.getDefault(), FONT, 12, SWT.BOLD);
191 gc.setForeground(BLACK);
192 gc.setBackground(WHITE);
193 gc.setFont(font);
194 String text = seriesNames[chartnum];
195 Point textSize = e.gc.textExtent(text);
196 gc.drawText(text, pieX + (pieWidth - textSize.x) / 2, pieY + pieWidth + textSize.y);
197 gc.setFont(oldFont);
198 font.dispose();
199 }
200
201 private void getPieSeriesArray() {
202 ISeries series[] = this.chart.getSeriesSet().getSeries();
203 if (series == null || series.length == 0) {
204 seriesValues = new double[0][0];
205 seriesNames = new String[0];
206 return;
207 }
208 String names[] = this.chart.getAxisSet().getXAxis(0).getCategorySeries();
209 Range range = chart.getAxisSet().getXAxis(0).getRange();
210 int itemRange = (int) range.upper - (int) range.lower + 1;
211 int itemOffset = (int) range.lower;
212 seriesValues = new double[itemRange][series.length];
213 seriesNames = new String[itemRange];
214
215 for (int i = 0; i < seriesValues.length; i++) {
216 seriesNames[i] = names[i + itemOffset];
217 for (int j = 0; j < seriesValues[i].length; j++) {
218 double d[] = series[j].getXSeries();
219 if (d != null && d.length > 0) {
220 seriesValues[i][j] = d[i + itemOffset];
221 } else {
222 seriesValues[i][j] = 0;
223 }
224 }
225 }
226
227 return;
228 }
229
230 /**
231 * Given a set of 2D pixel coordinates (typically those of a mouse cursor), return the
232 * index of the given pie's slice that those coordinates reside in.
233 * @param chartnum The id of the chart.
234 * @param x The x-coordinate to test.
235 * @param y The y-coordinate to test.
236 * @return The slice that contains the point with coordinates (x,y).
237 * @since 2.0
238 */
239 public int getSliceIndexFromPosition(int chartnum, int x, int y) {
240 Range range = chart.getAxisSet().getXAxis(0).getRange();
241 chartnum -= (int) range.lower;
242 if (chartnum >= pieCenters.length || chartnum < 0) {
243 return -1;
244 }
245 // Only continue if the point is inside the pie circle
246 double rad = Math.sqrt(Math.pow(pieCenters[chartnum].x - x, 2) + Math.pow(pieCenters[chartnum].y - y, 2));
247 if (2 * rad > pieWidth) {
248 return -1;
249 }
250 // Angle is relative to 12:00 position, increases clockwise
251 double angle = Math.acos((pieCenters[chartnum].y - y) / rad) / Math.PI * 180.0;
252 if (x - pieCenters[chartnum].x < 0) {
253 angle = 360 - angle;
254 }
255 if (pieSliceAngles[chartnum].length == 0 || angle < pieSliceAngles[chartnum][0]) {
256 return 0;
257 }
258 for (int s = 0; s < pieSliceAngles[chartnum].length - 1; s++) {
259 if (pieSliceAngles[chartnum][s] <= angle && angle < pieSliceAngles[chartnum][s+1]) {
260 return s + 1;
261 }
262 }
263 return pieSliceAngles[chartnum].length;
264 }
265 }
11 <feature
22 id="org.eclipse.linuxtools.profiling"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Profiling Framework Feature</name>
2525
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.profiling</groupId>
2121 <artifactId>linuxtools-profiling-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.profiling.docs</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7879 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
82 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8183 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8284 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8385 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
109111 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
110112 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
111113 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
112 org.eclipse.jdt.core.compiler.source=1.8
114 org.eclipse.jdt.core.compiler.release=enabled
115 org.eclipse.jdt.core.compiler.source=11
1111 org.eclipse.swt;bundle-version="3.106.0",
1212 org.eclipse.core.expressions
1313 Bundle-ActivationPolicy: lazy
14 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
14 Bundle-RequiredExecutionEnvironment: JavaSE-11
1515 Import-Package: org.eclipse.cdt.debug.core,
1616 org.eclipse.cdt.ui,
1717 org.eclipse.cdt.ui.newui,
455455 id="org.eclipse.linuxtools.profiling.launch.profileApplicationLaunch.mainTab"
456456 group="org.eclipse.cdt.launch.applicationProfileLaunchTabGroup"
457457 name="%MainTab.name"
458 class="org.eclipse.cdt.launch.ui.CMainTab">
458 class="org.eclipse.cdt.launch.ui.CMainTab2">
459459 <associatedDelegate delegate="org.eclipse.linuxtools.profiling.launch.profilingDelegate"/>
460460 </tab>
461461 <tab
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.launch</artifactId>
1313
1414 import java.util.SortedMap;
1515
16 import org.eclipse.jface.resource.ResourceLocator;
1617 import org.eclipse.linuxtools.internal.profiling.launch.provider.launch.ProviderFramework;
1718 import org.eclipse.swt.graphics.Image;
18 import org.eclipse.ui.plugin.AbstractUIPlugin;
1919
2020 // Special profiling options tab to use with the org.eclipse.cdt.launch.profilingProvider extension
2121 // to extend the Local C/C++ Application configuration to handle profiling. We do not rename
7373 @Override
7474 public Image getImage() {
7575 if (img == null)
76 img = AbstractUIPlugin.imageDescriptorFromPlugin(ProfileLaunchPlugin.PLUGIN_ID,
77 "icons/time_obj.gif").createImage(); //$NON-NLS-1$
76 img = ResourceLocator.imageDescriptorFromBundle(ProfileLaunchPlugin.PLUGIN_ID,
77 "icons/time_obj.gif").get().createImage(); //$NON-NLS-1$
7878 return img;
7979 }
8080 }
1515 import org.eclipse.core.runtime.Status;
1616 import org.eclipse.swt.widgets.Shell;
1717 import org.eclipse.ui.IWorkbenchWindow;
18 import org.eclipse.ui.PlatformUI;
1819 import org.eclipse.ui.plugin.AbstractUIPlugin;
1920 import org.osgi.framework.BundleContext;
2021
7374 }
7475
7576 public static Shell getActiveWorkbenchShell() {
76 IWorkbenchWindow window = getDefault().getWorkbench().getActiveWorkbenchWindow();
77 IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
7778 if (window != null) {
7879 return window.getShell();
7980 }
8485 if (getActiveWorkbenchShell() != null) {
8586 return getActiveWorkbenchShell();
8687 }
87 IWorkbenchWindow[] windows = getDefault().getWorkbench().getWorkbenchWindows();
88 IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
8889 return windows[0].getShell();
8990 }
9091
5858 import org.eclipse.swt.widgets.Composite;
5959 import org.eclipse.swt.widgets.Label;
6060 import org.eclipse.swt.widgets.Text;
61 import org.eclipse.ui.PlatformUI;
6162 import org.eclipse.ui.dialogs.TwoPaneElementSelector;
6263
6364
131132 Composite comp = new Composite(parent, SWT.NONE);
132133 setControl(comp);
133134
134 ProfileLaunchPlugin
135 .getDefault()
136 .getWorkbench()
137 .getHelpSystem()
138 .setHelp(
139 getControl(),
140 ICDTLaunchHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_MAIN_TAB);
141
142 GridLayout topLayout = new GridLayout();
135 PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
136 ICDTLaunchHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_MAIN_TAB);
137
138 GridLayout topLayout = new GridLayout();
143139 comp.setLayout(topLayout);
144140
145141 createVerticalSpacer(comp, 1);
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
1111 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1212 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1818 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1919 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2020 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
21 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2122 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2223 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2324 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7475 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7576 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7677 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
78 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7779 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7880 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7981 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
105107 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106108 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107109 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
110 org.eclipse.jdt.core.compiler.release=enabled
111 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.remote.core;bundle-version="2.0.0",
1111 org.eclipse.remote.ui;bundle-version="2.0.0",
1212 org.eclipse.linuxtools.profiling.launch;bundle-version="1.2.0"
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Bundle-ActivationPolicy: lazy
1515 Automatic-Module-Name: org.eclipse.linuxtools.profiling.launch.ui.rdt.proxy
1515 <parent>
1616 <artifactId>linuxtools-profiling-parent</artifactId>
1717 <groupId>org.eclipse.linuxtools.profiling</groupId>
18 <version>7.4.0</version>
18 <version>8.1.0</version>
1919 </parent>
2020
2121 <artifactId>org.eclipse.linuxtools.profiling.launch.ui.rdt.proxy</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
22 Bundle-Name: %Bundle-Name
33 Bundle-SymbolicName: org.eclipse.linuxtools.profiling.provider.tests;singleton:=true
44 Bundle-Version: 1.2.0.qualifier
5 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
5 Bundle-RequiredExecutionEnvironment: JavaSE-11
66 Fragment-Host: org.eclipse.linuxtools.profiling.launch
77 Require-Bundle: org.junit;bundle-version="4.0.0",
88 org.hamcrest.core,
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.provider.tests</artifactId>
11 <feature
22 id="org.eclipse.linuxtools.profiling.remote"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.remote</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Profiling Remote Capabilities Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.ui.ide,
1111 org.eclipse.remote.core;bundle-version="2.0.0",
1212 org.eclipse.remote.jsch.core
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Bundle-ActivationPolicy: lazy
1515 Bundle-Localization: plugin
1616 Export-Package:
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
110112 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
111113 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
112114 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
113 org.eclipse.jdt.core.compiler.source=1.8
115 org.eclipse.jdt.core.compiler.release=enabled
116 org.eclipse.jdt.core.compiler.source=11
99 org.eclipse.cdt.managedbuilder.core,
1010 org.eclipse.cdt.autotools.core,
1111 org.eclipse.cdt.core
12 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
12 Bundle-RequiredExecutionEnvironment: JavaSE-11
1313 Bundle-ActivationPolicy: lazy
1414 Bundle-Localization: plugin
1515 Export-Package: org.eclipse.linuxtools.profiling.ui
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.ui</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
1 * Copyright (c) 2008, 2019 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
1313
1414 import org.eclipse.swt.widgets.Shell;
1515 import org.eclipse.ui.IWorkbenchWindow;
16 import org.eclipse.ui.PlatformUI;
1617 import org.eclipse.ui.plugin.AbstractUIPlugin;
1718 import org.osgi.framework.BundleContext;
1819
5556 }
5657
5758 public static Shell getActiveWorkbenchShell() {
58 IWorkbenchWindow window = getDefault().getWorkbench().getActiveWorkbenchWindow();
59 IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
5960 if (window != null) {
6061 return window.getShell();
6162 }
117117 }
118118
119119 IConfiguration defaultConfiguration = helperGetActiveConfiguration(project);
120 if (defaultConfiguration == null) {
121 return ProjectBuildType.OTHER;
122 }
120123 IBuilder builder = defaultConfiguration.getBuilder();
121124 Boolean projIsManaged = builder.isManagedBuildOn();
122125
00 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
1 * Copyright (c) 2008, 2019 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
4747 import org.eclipse.jface.text.BadLocationException;
4848 import org.eclipse.jface.text.IDocument;
4949 import org.eclipse.jface.text.IRegion;
50 import org.eclipse.linuxtools.internal.profiling.ui.ProfileUIPlugin;
5150 import org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy;
5251 import org.eclipse.linuxtools.profiling.launch.RemoteProxyManager;
5352 import org.eclipse.ui.IEditorInput;
5453 import org.eclipse.ui.IEditorPart;
5554 import org.eclipse.ui.IWorkbenchPage;
5655 import org.eclipse.ui.PartInitException;
56 import org.eclipse.ui.PlatformUI;
5757 import org.eclipse.ui.ide.IDE;
5858 import org.eclipse.ui.texteditor.IDocumentProvider;
5959 import org.eclipse.ui.texteditor.ITextEditor;
7272 Path p = new Path(path);
7373
7474 if (p.toFile().exists()) {
75 IWorkbenchPage activePage = ProfileUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
75 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
7676 IFileStore file = EFS.getLocalFileSystem().getStore(p);
7777
7878 IEditorPart editor = IDE.openEditorOnFileStore(activePage, file);
102102 * @since 3.1
103103 */
104104 public static void openEditorAndSelect(String path, int line, IProject project) throws PartInitException, BadLocationException, CoreException {
105 IWorkbenchPage activePage = ProfileUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
105 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
106106 IRemoteFileProxy proxy = null;
107107 proxy = RemoteProxyManager.getInstance().getFileProxy(project);
108108 IFileStore file = proxy.getResource(path);
134134 */
135135 public static void openEditorAndSelect(IFile file, int line) throws PartInitException, BadLocationException {
136136 if (file.exists()) {
137 IWorkbenchPage activePage = ProfileUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
137 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
138138
139139 IEditorPart editor = IDE.openEditor(activePage, file);
140140 if (editor instanceof ITextEditor) {
188188 }
189189 if (input != null && editorID != null) {
190190 // Open the editor
191 IWorkbenchPage activePage = ProfileUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
191 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
192192
193193 IEditorPart editor = IDE.openEditor(activePage, input, editorID);
194194 // Select the line
218218 Path p = new Path (path);
219219
220220 if (p.toFile().exists()) {
221 IWorkbenchPage activePage = ProfileUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
221 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
222222 IFileStore fileStore = EFS.getLocalFileSystem().getStore(p);
223223
224224 IEditorPart editor = IDE.openEditorOnFileStore(activePage, fileStore);
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
32 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
43 <classpathentry kind="output" path="target/classes"/>
54 </classpath>
+0
-95
profiling/org.eclipse.linuxtools.profiling.ui.capability/.settings/org.eclipse.jdt.core.prefs less more
0 eclipse.preferences.version=1
1 org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
2 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
3 org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
4 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
5 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
6 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
7 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
12 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
13 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
14 org.eclipse.jdt.core.compiler.problem.deadCode=warning
15 org.eclipse.jdt.core.compiler.problem.deprecation=warning
16 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
17 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
18 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
19 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
21 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
22 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
23 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
24 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
25 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
26 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
27 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
28 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
29 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
30 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
31 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
32 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
33 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
34 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
35 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
36 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
37 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
38 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
39 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
40 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
41 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
42 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
43 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
44 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
45 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
46 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
47 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
48 org.eclipse.jdt.core.compiler.problem.nullReference=warning
49 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
50 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
51 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
52 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
53 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
54 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
55 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
56 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
57 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
58 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
59 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
60 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
61 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
62 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
63 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
64 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
65 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
66 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
67 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
68 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
69 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
70 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
71 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
72 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
73 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
74 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
75 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
76 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
77 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
78 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
79 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
80 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
81 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
82 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
83 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
84 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
85 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
86 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
87 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
88 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
89 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
90 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
91 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
92 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
93 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
55 Require-Bundle: org.eclipse.ui,
66 org.eclipse.core.runtime
77 Bundle-ActivationPolicy: lazy
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
98 Bundle-Vendor: %Bundle-Vendor
109 Bundle-Localization: plugin
1110 Automatic-Module-Name: org.eclipse.linuxtools.profiling.ui.capability
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.profiling.ui.capability</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.core.resources;bundle-version="3.7.100",
1111 org.eclipse.core.filesystem;bundle-version="1.3.100"
1212 Bundle-ActivationPolicy: lazy
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Bundle-Localization: plugin
1515 Bundle-Vendor: %provider
1616 Import-Package: org.eclipse.cdt.utils.pty
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rdt.proxy</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="bin"/>
610 </classpath>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
44 Bundle-Version: 1.0.0.qualifier
55 Bundle-Vendor: Eclipse Linux Tools
66 Fragment-Host: org.eclipse.linuxtools.rdt.proxy;bundle-version="2.0.0"
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
88 Require-Bundle: org.junit;bundle-version="4.12.0",
99 org.eclipse.linuxtools.remote.proxy.tests;bundle-version="1.0.0",
1010 org.eclipse.ptp.rdt.sync.core;bundle-version="5.0.0",
44 <parent>
55 <artifactId>linuxtools-profiling-parent</artifactId>
66 <groupId>org.eclipse.linuxtools.profiling</groupId>
7 <version>7.4.0</version>
7 <version>8.1.0</version>
88 </parent>
99
1010 <artifactId>org.eclipse.linuxtools.rdt.proxy.tests</artifactId>
88 *******************************************************************************/
99 package org.eclipse.linuxtools.rdt.proxy.tests;
1010
11 import org.eclipse.linuxtools.rdt.proxy.tests.CommandLauncherProxyTest;
12 import org.eclipse.linuxtools.rdt.proxy.tests.FileProxyTest;
13 import org.eclipse.linuxtools.rdt.proxy.tests.RemoteProxyManagerTest;
1411 import org.junit.runner.RunWith;
1512 import org.junit.runners.Suite;
1613 import org.junit.runners.Suite.SuiteClasses;
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9799 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
98100 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
99101 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
100 org.eclipse.jdt.core.compiler.source=1.8
102 org.eclipse.jdt.core.compiler.release=enabled
103 org.eclipse.jdt.core.compiler.source=11
1414 org.eclipse.core.filesystem,
1515 org.eclipse.ptp.rdt.sync.core,
1616 org.eclipse.ptp.rdt.sync.git.core;bundle-version="2.0.0"
17 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
17 Bundle-RequiredExecutionEnvironment: JavaSE-11
1818 Bundle-ActivationPolicy: lazy
1919 Export-Package: org.eclipse.linuxtools.remote.proxy.tests;
2020 x-friends:="org.eclipse.linuxtools.tools.launch.core.tests,
44 <parent>
55 <artifactId>linuxtools-profiling-parent</artifactId>
66 <groupId>org.eclipse.linuxtools.profiling</groupId>
7 <version>7.4.0</version>
7 <version>8.1.0</version>
88 </parent>
99
1010 <artifactId>org.eclipse.linuxtools.remote.proxy.tests</artifactId>
2020 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
2121 import org.eclipse.ptp.rdt.sync.core.SyncManager;
2222 import org.eclipse.cdt.core.model.ICProject;
23 import org.eclipse.cdt.utils.Platform;
23 import org.eclipse.core.runtime.Platform;
2424 import org.eclipse.core.runtime.CoreException;
2525 import org.eclipse.debug.core.ILaunchConfigurationType;
2626 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7879 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
82 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8183 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8284 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8385 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
109111 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
110112 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
111113 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
112 org.eclipse.jdt.core.compiler.source=1.8
114 org.eclipse.jdt.core.compiler.release=enabled
115 org.eclipse.jdt.core.compiler.source=11
1111 com.jcraft.jsch;bundle-version="0.1.44",
1212 org.eclipse.remote.jsch.core
1313 Bundle-ActivationPolicy: lazy
14 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
14 Bundle-RequiredExecutionEnvironment: JavaSE-11
1515 Bundle-Localization: plugin
1616 Bundle-Vendor: %provider
1717 Import-Package: org.eclipse.cdt.utils.pty
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.ssh.proxy</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
110112 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
111113 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
112114 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
113 org.eclipse.jdt.core.compiler.source=1.8
115 org.eclipse.jdt.core.compiler.release=enabled
116 org.eclipse.jdt.core.compiler.source=11
1111 org.eclipse.linuxtools.profiling.launch;bundle-version="0.10.0",
1212 org.eclipse.core.filesystem;bundle-version="1.3.100",
1313 com.jcraft.jsch
14 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
14 Bundle-RequiredExecutionEnvironment: JavaSE-11
1515 Bundle-ActivationPolicy: lazy
1616 Export-Package: org.eclipse.linuxtools.tools.launch.core,org.eclipse.l
1717 inuxtools.tools.launch.core.factory,org.eclipse.linuxtools.tools.laun
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.tools.launch.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="bin"/>
610 </classpath>
00 eclipse.preferences.version=1
11 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 org.eclipse.jdt.core.compiler.compliance=1.8
2 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
3 org.eclipse.jdt.core.compiler.compliance=11
44 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
56 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
6 org.eclipse.jdt.core.compiler.source=1.8
7 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8 org.eclipse.jdt.core.compiler.release=enabled
9 org.eclipse.jdt.core.compiler.source=11
99 org.eclipse.core.resources;bundle-version="3.11.0",
1010 org.eclipse.linuxtools.profiling.tests;bundle-version="1.1.0",
1111 org.eclipse.cdt.core
12 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
12 Bundle-RequiredExecutionEnvironment: JavaSE-11
1313 Import-Package: org.eclipse.debug.core,
1414 org.eclipse.linuxtools.remote.proxy.tests
1515 Automatic-Module-Name: org.eclipse.linuxtools.tools.launch.core.tests
44 <parent>
55 <artifactId>linuxtools-profiling-parent</artifactId>
66 <groupId>org.eclipse.linuxtools.profiling</groupId>
7 <version>7.4.0</version>
7 <version>8.1.0</version>
88 </parent>
99
1010 <artifactId>org.eclipse.linuxtools.tools.launch.core.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
88 org.eclipse.core.runtime,
99 org.eclipse.core.resources,
1010 org.eclipse.linuxtools.tools.launch.core
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-ActivationPolicy: lazy
1313 Automatic-Module-Name: org.eclipse.linuxtools.tools.launch.ui
1414 <parent>
1515 <artifactId>linuxtools-profiling-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.profiling</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.tools.launch.ui</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.profiling</groupId>
0 FROM eclipsecbi/fedora-gtk3-mutter:31-gtk3.24
1
2 # Back to root for install
3 USER 0
4
5 ARG REMOTING_VERSION=3.27
6
7 # https://github.com/jenkinsci/docker-jnlp-slave/
8 ARG JNLP_AGENT_SCRIPT_VERSION=3.27-1
9
10 RUN curl --create-dirs -sSLo /usr/share/jenkins/slave.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${REMOTING_VERSION}/remoting-${REMOTING_VERSION}.jar \
11 && chmod 755 /usr/share/jenkins \
12 && chmod 644 /usr/share/jenkins/slave.jar
13
14 ADD https://raw.githubusercontent.com/jenkinsci/docker-jnlp-slave/${JNLP_AGENT_SCRIPT_VERSION}/jenkins-slave /usr/local/bin/jenkins-slave
15 RUN chmod 555 /usr/local/bin/jenkins-slave && \
16 chgrp 0 /usr/local/bin/jenkins-slave && \
17 mkdir -p /home/jenkins/.jenkins && \
18 mkdir -p /home/jenkins/agent
19
20 ENTRYPOINT [ "uid_entrypoint", "jenkins-slave" ]
21
22 # Permit installation of docs
23 RUN sed -i '/tsflags=nodocs/ d' /etc/dnf/dnf.conf
24
25 RUN dnf -y update && dnf -y install \
26 java-11-openjdk-devel maven webkit2gtk3 \
27 gcc-c++ perf systemtap rpmdevtools valgrind \
28 gtk3-devel-docs createrepo_c \
29 npm \
30 && dnf clean all
31
32 #Back to named user
33 USER 1000
34
35 ENV JENKINS_AGENT_WORKDIR=${HOME}/agent
36 ENV JAVA_OPTS=""
37 ENV JAVA_HOME=/usr/lib/jvm/java-11
38 ENV PATH=/usr/lib/jvm/java-11/bin:$PATH
39 ENV JNLP_PROTOCOL_OPTS="-XshowSettings:vm -Xmx256m -Djdk.nativeCrypto=false -Dsun.zip.disableMemoryMapping=true -Dorg.jenkinsci.remoting.engine.JnlpProtocol3.disabled=true"
40
99 <feature url="features/org.eclipse.linuxtools.jdt.docker.launcher.feature_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.jdt.docker.launcher.feature" version="0.0.0">
1010 <category name="Linux Tools"/>
1111 </feature>
12 <feature url="features/org.eclipse.linuxtools.docker.editor.ls.feature_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.docker.editor.ls.feature" version="0.0.0">
13 <category name="Linux Tools"/>
14 </feature>
1215 <feature url="features/org.eclipse.linuxtools.docker.tests.feature_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.docker.tests.feature" version="0.0.0">
1316 <category name="Linux Tools"/>
1417 </feature>
8083 <category name="Docker Test Dependencies"/>
8184 </iu>
8285
86 <!-- Docker Editor Dependencies -->
87 <iu id="org.eclipse.lsp4e" version="0.0.0">
88 <category name="Docker Editor Dependencies"/>
89 </iu>
90 <iu id="org.eclipse.wildwebdeveloper.embedder.node" version="0.0.0">
91 <category name="Docker Editor Dependencies"/>
92 </iu>
93
8394 <!-- Orbit Dependencies -->
84 <iu id="com.spotify.docker.client" version="0.0.0">
85 <category name="Docker Client Dependencies"/>
86 </iu>
87 <iu id="com.spotify.docker.client.source" version="0.0.0">
95 <iu id="org.mandas.docker-client" version="0.0.0">
96 <category name="Docker Client Dependencies"/>
97 </iu>
98 <iu id="org.mandas.docker-client.source" version="0.0.0">
8899 <category name="Docker Client Dependencies"/>
89100 </iu>
90101
115126 <iu id="javax.ws.rs" version="0.0.0">
116127 <category name="Docker Client Dependencies"/>
117128 </iu>
118 <iu id="javax.xml.bind" version="0.0.0">
129 <iu id="jakarta.xml.bind" version="0.0.0">
119130 <category name="Docker Client Dependencies"/>
120131 </iu>
121132 <iu id="javax.xml.stream" version="0.0.0">
122133 <category name="Docker Client Dependencies"/>
123134 </iu>
135 <iu id="javax.annotation" version="0.0.0">
136 <category name="Docker Client Dependencies"/>
137 </iu>
124138 <iu id="com.github.jnr.jffi" version="0.0.0">
125139 <category name="Docker Client Dependencies"/>
126140 </iu>
142156 <iu id="com.github.jnr.unixsocket" version="0.0.0">
143157 <category name="Docker Client Dependencies"/>
144158 </iu>
145 <iu id="jnr.x86asm" version="0.0.0">
159 <iu id="com.github.jnr.x86asm" version="0.0.0">
146160 <category name="Docker Client Dependencies"/>
147161 </iu>
148162 <iu id="org.bouncycastle.bcprov" version="0.0.0">
166180 <iu id="org.glassfish.jersey.apache.connector" version="0.0.0">
167181 <category name="Docker Client Dependencies"/>
168182 </iu>
169 <iu id="org.glassfish.jersey.bundles.repackaged.jersey-guava" version="0.0.0">
170 <category name="Docker Client Dependencies"/>
171 </iu>
172183 <iu id="org.glassfish.jersey.core.jersey-client" version="0.0.0">
173184 <category name="Docker Client Dependencies"/>
174185 </iu>
184195 <iu id="org.glassfish.jersey.core.jersey-server" version="0.0.0">
185196 <category name="Docker Client Dependencies"/>
186197 </iu>
198 <iu id="org.glassfish.jersey.containers.servlet.core" version="0.0.0">
199 <category name="Docker Client Dependencies"/>
200 </iu>
201 <iu id="org.glassfish.jersey.containers.servlet" version="0.0.0">
202 <category name="Docker Client Dependencies"/>
203 </iu>
204 <iu id="org.glassfish.jersey.inject.jersey-hk2" version="0.0.0">
205 <category name="Docker Client Dependencies"/>
206 </iu>
187207 <iu id="javassist" version="0.0.0">
188208 <category name="Docker Client Dependencies"/>
189209 </iu>
190210 <iu id="com.google.guava" version="0.0.0">
191211 <category name="Docker Client Dependencies"/>
192212 </iu>
213 <iu id="com.google.auth.google-auth-library-credentials" version="0.0.0">
214 <category name="Docker Client Dependencies"/>
215 </iu>
216 <iu id="com.google.auth.oauth2-http" version="0.0.0">
217 <category name="Docker Client Dependencies"/>
218 </iu>
219 <iu id="com.google.http-client.google-http-client" version="0.0.0">
220 <category name="Docker Client Dependencies"/>
221 </iu>
222 <iu id="com.google.http-client.google-http-client-jackson2" version="0.0.0">
223 <category name="Docker Client Dependencies"/>
224 </iu>
225 <iu id="com.google.auto.value.auto-value-annotations" version="0.0.0">
226 <category name="Docker Client Dependencies"/>
227 </iu>
228 <iu id="com.google.j2objc.j2objc-annotations" version="0.0.0">
229 <category name="Docker Client Dependencies"/>
230 </iu>
231 <iu id="io.grpc.grpc-context" version="0.0.0">
232 <category name="Docker Client Dependencies"/>
233 </iu>
234 <iu id="io.opencensus.opencensus-api" version="0.0.0">
235 <category name="Docker Client Dependencies"/>
236 </iu>
237 <iu id="io.opencensus.opencensus-contrib-http-util" version="0.0.0">
238 <category name="Docker Client Dependencies"/>
239 </iu>
193240 <iu id="org.slf4j.api" version="0.0.0">
194241 <category name="Docker Client Dependencies"/>
195242 </iu>
229276 Eclipse Linux Tools Docker Client Dependencies
230277 </description>
231278 </category-def>
279 <category-def name="Docker Editor Dependencies" label="Docker Editor Dependencies">
280 <description>
281 Eclipse Linux Tools Docker Editor Dependencies
282 </description>
283 </category-def>
232284 <category-def name="Docker Test Dependencies" label="Docker Test Dependencies">
233285 <description>
234286 Eclipse Linux Tools Docker Integration Test Dependencies
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.releng</groupId>
2121 <artifactId>linuxtools-releng-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.docker-site</artifactId>
3333 <feature url="features/org.eclipse.linuxtools.man_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.man" version="0.0.0">
3434 <category name="Linux Tools"/>
3535 </feature>
36 <feature url="features/org.eclipse.linuxtools.oprofile_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.oprofile.feature" version="0.0.0">
37 <category name="Linux Tools"/>
38 </feature>
3936 <feature url="features/org.eclipse.linuxtools.profiling_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.profiling" version="0.0.0">
4037 <category name="Linux Tools"/>
4138 </feature>
6360 <feature url="features/org.eclipse.linuxtools.valgrind.remote_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.valgrind.remote" version="0.0.0">
6461 <category name="Linux Tools"/>
6562 </feature>
66 <feature url="features/org.eclipse.linuxtools.oprofile.remote_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.oprofile.remote.feature" version="0.0.0">
67 <category name="Linux Tools"/>
68 </feature>
6963 <feature url="features/org.eclipse.linuxtools.perf.remote_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.perf.remote.feature" version="0.0.0">
7064 <category name="Linux Tools"/>
7165 </feature>
7266 <!-- Orbit Dependencies -->
73 <iu id="org.swtchart" version="0.0.0">
67 <iu id="org.eclipse.swtchart" version="0.0.0">
68 <category name="Linux Tools"/>
69 </iu>
70 <iu id="org.eclipse.swtchart.extensions" version="0.0.0">
7471 <category name="Linux Tools"/>
7572 </iu>
7673 <iu id="org.cyberneko.html" version="0.0.0">
115112 <feature url="features/org.eclipse.linuxtools.man.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.man.source" version="0.0.0">
116113 <category name="Linux Tools Sources"/>
117114 </feature>
118 <feature url="features/org.eclipse.linuxtools.oprofile.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.oprofile.feature.source" version="0.0.0">
119 <category name="Linux Tools Sources"/>
120 </feature>
121115 <feature url="features/org.eclipse.linuxtools.profiling.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.profiling.source" version="0.0.0">
122116 <category name="Linux Tools Sources"/>
123117 </feature>
145139 <feature url="features/org.eclipse.linuxtools.valgrind.remote.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.valgrind.remote.source" version="0.0.0">
146140 <category name="Linux Tools Sources"/>
147141 </feature>
148 <feature url="features/org.eclipse.linuxtools.oprofile.remote.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.oprofile.remote.feature.source" version="0.0.0">
149 <category name="Linux Tools Sources"/>
150 </feature>
151142 <feature url="features/org.eclipse.linuxtools.perf.remote.source_0.0.0.qualifier.jar" id="org.eclipse.linuxtools.perf.remote.feature.source" version="0.0.0">
152143 <category name="Linux Tools Sources"/>
153144 </feature>
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.releng</groupId>
2121 <artifactId>linuxtools-releng-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.releng-site</artifactId>
44 <projects>
55 </projects>
66 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.m2e.core.maven2Builder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
127 </buildSpec>
138 <natures>
14 <nature>org.eclipse.m2e.core.maven2Nature</nature>
159 </natures>
1610 </projectDescription>
+0
-100
releng/org.eclipse.linuxtools.target/linuxtools-e4.12.target less more
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?pde version="3.8"?><target name="linuxtools-e4.12" sequenceNumber="1">
2 <locations>
3 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
4 <unit id="com.fasterxml.jackson.core.jackson-annotations" version="2.9.2.v20180207-1730"/>
5 <unit id="com.fasterxml.jackson.core.jackson-core" version="2.9.2.v20180207-1730"/>
6 <unit id="com.fasterxml.jackson.core.jackson-databind" version="2.9.2.v20180207-1730"/>
7 <unit id="com.fasterxml.jackson.datatype.jackson-datatype-guava" version="2.9.2.v20180207-1730"/>
8 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.9.2.v20180207-1730"/>
9 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.9.2.v20180207-1730"/>
10 <unit id="com.github.jnr.constants" version="0.9.8.v20180207-1730"/>
11 <unit id="com.github.jnr.enxio" version="0.16.0.v20180207-1730"/>
12 <unit id="com.github.jnr.ffi" version="2.1.4.v20180207-1730"/>
13 <unit id="com.github.jnr.jffi" version="1.2.15.v20180207-1730"/>
14 <unit id="com.github.jnr.jffi.native" version="1.2.15.v20180207-1730"/>
15 <unit id="com.github.jnr.posix" version="3.0.35.v20180207-1730"/>
16 <unit id="com.github.jnr.unixsocket" version="0.18.0.v20180207-1730"/>
17 <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
18 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
19 <unit id="com.spotify.docker.client" version="8.11.7.v20180731-1413"/>
20 <unit id="com.spotify.docker.client.source" version="8.11.7.v20180731-1413"/>
21 <unit id="javassist" version="3.13.0.GA_v201209210905"/>
22 <unit id="javax.ws.rs" version="2.0.1.v201504171603"/>
23 <unit id="javax.xml.bind" version="2.2.0.v201105210648"/>
24 <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
25 <unit id="jnr.x86asm" version="1.0.2.v201505052040"/>
26 <unit id="org.aopalliance" version="1.0.0.v201105210816"/>
27 <unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
28 <unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
29 <unit id="org.apache.commons.io" version="2.6.0.v20190123-2029"/>
30 <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
31 <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
32 <unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
33 <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
34 <unit id="org.assertj" version="1.7.1.v20170413-2026"/>
35 <unit id="org.bouncycastle.bcpkix" version="1.61.0.v20190602-1335"/>
36 <unit id="org.bouncycastle.bcprov" version="1.61.0.v20190602-1335"/>
37 <unit id="org.cyberneko.html" version="1.9.14.v201105210654"/>
38 <unit id="org.glassfish.hk2.api" version="2.5.0.v20161103-0227"/>
39 <unit id="org.glassfish.hk2.locator" version="2.5.0.v20161103-0227"/>
40 <unit id="org.glassfish.hk2.osgi-resource-locator" version="2.5.0.v20161103-1916"/>
41 <unit id="org.glassfish.hk2.utils" version="2.5.0.v20160210-1508"/>
42 <unit id="org.glassfish.jersey.apache.connector" version="2.22.1.v20161103-1916"/>
43 <unit id="org.glassfish.jersey.bundles.repackaged.jersey-guava" version="2.22.1.v20161103-1916"/>
44 <unit id="org.glassfish.jersey.core.jersey-client" version="2.22.1.v20161103-1916"/>
45 <unit id="org.glassfish.jersey.core.jersey-common" version="2.22.1.v20181004-1955"/>
46 <unit id="org.glassfish.jersey.core.jersey-server" version="2.22.1.v20181004-1955"/>
47 <unit id="org.glassfish.jersey.ext.entityfiltering" version="2.22.1.v20181004-1955"/>
48 <unit id="org.glassfish.jersey.media.jersey-media-json-jackson" version="2.22.1.v20161117-2005"/>
49 <unit id="org.mockito" version="2.23.0.v20190527-1420"/>
50 <unit id="org.objectweb.asm" version="7.1.0.v20190412-2143"/>
51 <unit id="org.objectweb.asm.analysis" version="7.1.0.v20190412-2143"/>
52 <unit id="org.objectweb.asm.tree" version="7.1.0.v20190412-2143"/>
53 <unit id="org.objectweb.asm.util" version="7.1.0.v20190412-2143"/>
54 <unit id="org.slf4j.api" version="1.7.10.v20170428-1633"/>
55 <unit id="org.swtchart" version="0.10.0.v201605200358"/>
56 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20190602212107/repository"/>
57 </location>
58 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
59 <unit id="org.eclipse.jdt.annotation" version="0.0.0"/>
60 <unit id="org.eclipse.jdt.core" version="0.0.0"/>
61 <unit id="org.eclipse.jdt.debug.ui" version="0.0.0"/>
62 <unit id="org.eclipse.jdt.ui" version="0.0.0"/>
63 <unit id="org.eclipse.pde.runtime" version="0.0.0"/>
64 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
65 <unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
66 <repository location="http://download.eclipse.org/eclipse/updates/4.12/"/>
67 </location>
68 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
69 <unit id="org.eclipse.license.feature.group" version="0.0.0"/>
70 <repository location="http://download.eclipse.org/cbi/updates/license"/>
71 </location>
72 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
73 <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
74 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
75 <unit id="org.eclipse.dstore.core" version="0.0.0"/>
76 <unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
77 <unit id="org.eclipse.ptp.rdt.sync.feature.group" version="0.0.0"/>
78 <unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
79 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
80 <unit id="org.eclipse.zest.feature.group" version="0.0.0"/>
81 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
82 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
83 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
84 <repository location="http://download.eclipse.org/releases/2019-03/"/>
85 </location>
86 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
87 <unit id="org.eclipse.reddeer.eclipse.feature.feature.group" version="0.0.0"/>
88 <unit id="org.eclipse.reddeer.tests.feature.feature.group" version="0.0.0"/>
89 <unit id="org.eclipse.reddeer.ui.feature.feature.group" version="0.0.0"/>
90 <repository location="http://download.eclipse.org/reddeer/snapshots/"/>
91 </location>
92 </locations>
93 <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
94 <launcherArgs>
95 <vmArgs>-Xms40m
96 -Xmx512M</vmArgs>
97 <programArgs>-consolelog</programArgs>
98 </launcherArgs>
99 </target>
+0
-100
releng/org.eclipse.linuxtools.target/linuxtools-e4.13.target less more
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?pde version="3.8"?><target name="linuxtools-e4.13" sequenceNumber="1">
2 <locations>
3 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
4 <unit id="com.fasterxml.jackson.core.jackson-annotations" version="2.9.2.v20180207-1730"/>
5 <unit id="com.fasterxml.jackson.core.jackson-core" version="2.9.2.v20180207-1730"/>
6 <unit id="com.fasterxml.jackson.core.jackson-databind" version="2.9.2.v20180207-1730"/>
7 <unit id="com.fasterxml.jackson.datatype.jackson-datatype-guava" version="2.9.2.v20180207-1730"/>
8 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.9.2.v20180207-1730"/>
9 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.9.2.v20180207-1730"/>
10 <unit id="com.github.jnr.constants" version="0.9.8.v20180207-1730"/>
11 <unit id="com.github.jnr.enxio" version="0.16.0.v20180207-1730"/>
12 <unit id="com.github.jnr.ffi" version="2.1.4.v20180207-1730"/>
13 <unit id="com.github.jnr.jffi" version="1.2.15.v20180207-1730"/>
14 <unit id="com.github.jnr.jffi.native" version="1.2.15.v20180207-1730"/>
15 <unit id="com.github.jnr.posix" version="3.0.35.v20180207-1730"/>
16 <unit id="com.github.jnr.unixsocket" version="0.18.0.v20180207-1730"/>
17 <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
18 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
19 <unit id="com.spotify.docker.client" version="8.11.7.v20180731-1413"/>
20 <unit id="com.spotify.docker.client.source" version="8.11.7.v20180731-1413"/>
21 <unit id="javassist" version="3.13.0.GA_v201209210905"/>
22 <unit id="javax.ws.rs" version="2.0.1.v201504171603"/>
23 <unit id="javax.xml.bind" version="2.2.0.v201105210648"/>
24 <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
25 <unit id="jnr.x86asm" version="1.0.2.v201505052040"/>
26 <unit id="org.aopalliance" version="1.0.0.v201105210816"/>
27 <unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
28 <unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
29 <unit id="org.apache.commons.io" version="2.6.0.v20190123-2029"/>
30 <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
31 <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
32 <unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
33 <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
34 <unit id="org.assertj" version="1.7.1.v20170413-2026"/>
35 <unit id="org.bouncycastle.bcpkix" version="1.60.0.v20181210-2057"/>
36 <unit id="org.bouncycastle.bcprov" version="1.60.0.v20181210-2057"/>
37 <unit id="org.cyberneko.html" version="1.9.14.v201105210654"/>
38 <unit id="org.glassfish.hk2.api" version="2.5.0.v20161103-0227"/>
39 <unit id="org.glassfish.hk2.locator" version="2.5.0.v20161103-0227"/>
40 <unit id="org.glassfish.hk2.osgi-resource-locator" version="2.5.0.v20161103-1916"/>
41 <unit id="org.glassfish.hk2.utils" version="2.5.0.v20160210-1508"/>
42 <unit id="org.glassfish.jersey.apache.connector" version="2.22.1.v20161103-1916"/>
43 <unit id="org.glassfish.jersey.bundles.repackaged.jersey-guava" version="2.22.1.v20161103-1916"/>
44 <unit id="org.glassfish.jersey.core.jersey-client" version="2.22.1.v20161103-1916"/>
45 <unit id="org.glassfish.jersey.core.jersey-common" version="2.22.1.v20181004-1955"/>
46 <unit id="org.glassfish.jersey.core.jersey-server" version="2.22.1.v20181004-1955"/>
47 <unit id="org.glassfish.jersey.ext.entityfiltering" version="2.22.1.v20181004-1955"/>
48 <unit id="org.glassfish.jersey.media.jersey-media-json-jackson" version="2.22.1.v20161117-2005"/>
49 <unit id="org.mockito" version="2.23.0.v20190527-1420"/>
50 <unit id="org.objectweb.asm" version="7.1.0.v20190412-2143"/>
51 <unit id="org.objectweb.asm.analysis" version="7.1.0.v20190412-2143"/>
52 <unit id="org.objectweb.asm.tree" version="7.1.0.v20190412-2143"/>
53 <unit id="org.objectweb.asm.util" version="7.1.0.v20190412-2143"/>
54 <unit id="org.slf4j.api" version="1.7.10.v20170428-1633"/>
55 <unit id="org.swtchart" version="0.10.0.v201605200358"/>
56 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20190602212107/repository"/>
57 </location>
58 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
59 <unit id="org.eclipse.jdt.annotation" version="0.0.0"/>
60 <unit id="org.eclipse.jdt.core" version="0.0.0"/>
61 <unit id="org.eclipse.jdt.debug.ui" version="0.0.0"/>
62 <unit id="org.eclipse.jdt.ui" version="0.0.0"/>
63 <unit id="org.eclipse.pde.runtime" version="0.0.0"/>
64 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
65 <unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
66 <repository location="http://download.eclipse.org/eclipse/updates/4.13-I-builds/"/>
67 </location>
68 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
69 <unit id="org.eclipse.license.feature.group" version="0.0.0"/>
70 <repository location="http://download.eclipse.org/cbi/updates/license"/>
71 </location>
72 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
73 <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
74 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
75 <unit id="org.eclipse.dstore.core" version="0.0.0"/>
76 <unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
77 <unit id="org.eclipse.ptp.rdt.sync.feature.group" version="0.0.0"/>
78 <unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
79 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
80 <unit id="org.eclipse.zest.feature.group" version="0.0.0"/>
81 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
82 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
83 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
84 <repository location="http://download.eclipse.org/releases/2019-09/"/>
85 </location>
86 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
87 <unit id="org.eclipse.reddeer.eclipse.feature.feature.group" version="0.0.0"/>
88 <unit id="org.eclipse.reddeer.tests.feature.feature.group" version="0.0.0"/>
89 <unit id="org.eclipse.reddeer.ui.feature.feature.group" version="0.0.0"/>
90 <repository location="http://download.eclipse.org/reddeer/snapshots/"/>
91 </location>
92 </locations>
93 <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
94 <launcherArgs>
95 <vmArgs>-Xms40m
96 -Xmx512M</vmArgs>
97 <programArgs>-consolelog</programArgs>
98 </launcherArgs>
99 </target>
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?pde version="3.8"?>
2 <target name="linuxtools-e4.16" sequenceNumber="1">
3 <locations>
4 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
5 <unit id="com.fasterxml.jackson.core.jackson-annotations" version="2.10.3.v20200512-1600"/>
6 <unit id="com.fasterxml.jackson.core.jackson-core" version="2.10.3.v20200512-1600"/>
7 <unit id="com.fasterxml.jackson.core.jackson-databind" version="2.10.3.v20200512-1600"/>
8 <unit id="com.fasterxml.jackson.datatype.jackson-datatype-guava" version="2.10.3.v20200512-1600"/>
9 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.10.3.v20200512-1600"/>
10 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.10.3.v20200512-1600"/>
11 <unit id="com.github.jnr.constants" version="0.9.15.v20200501-1917"/>
12 <unit id="com.github.jnr.enxio" version="0.25.0.v20200501-1917"/>
13 <unit id="com.github.jnr.ffi" version="2.1.12.v20200513-1859"/>
14 <unit id="com.github.jnr.jffi" version="1.2.23.v20200501-1917"/>
15 <unit id="com.github.jnr.jffi.native" version="1.2.23.v20200501-1917"/>
16 <unit id="com.github.jnr.posix" version="3.0.54.v20200501-1917"/>
17 <unit id="com.github.jnr.unixsocket" version="0.28.0.v20200501-1917"/>
18 <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
19 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
20 <unit id="org.mandas.docker-client" version="3.2.1.v20200519-1937"/>
21 <unit id="org.mandas.docker-client.source" version="3.2.1.v20200519-1937"/>
22 <unit id="javassist" version="3.13.0.GA_v201209210905"/>
23 <unit id="javax.ws.rs" version="2.1.6.v20200505-2127"/>
24 <unit id="jakarta.xml.bind" version="2.3.3.v20200525-2159"/>
25 <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
26 <unit id="com.github.jnr.x86asm" version="1.0.2.v20200501-1917"/>
27 <unit id="org.aopalliance" version="1.0.0.v201105210816"/>
28 <unit id="org.apache.commons.codec" version="1.13.0.v20200108-0001"/>
29 <unit id="org.apache.commons.compress" version="1.19.0.v20200106-2343"/>
30 <unit id="org.apache.commons.io" version="2.6.0.v20190123-2029"/>
31 <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
32 <unit id="org.apache.httpcomponents.httpclient" version="4.5.10.v20200114-1512"/>
33 <unit id="org.apache.httpcomponents.httpcore" version="4.4.12.v20200108-1212"/>
34 <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
35 <unit id="org.assertj" version="3.14.0.v20200120-1926"/>
36 <unit id="org.bouncycastle.bcpkix" version="1.65.0.v20200502-2229"/>
37 <unit id="org.bouncycastle.bcprov" version="1.65.0.v20200502-2229"/>
38 <unit id="org.cyberneko.html" version="1.9.14.v201105210654"/>
39 <unit id="org.glassfish.hk2.api" version="2.6.1.v20200513-1859"/>
40 <unit id="org.glassfish.hk2.locator" version="2.6.1.v20200513-1859"/>
41 <unit id="org.glassfish.hk2.osgi-resource-locator" version="1.0.3.v20200509-0149"/>
42 <unit id="org.glassfish.hk2.utils" version="2.6.1.v20200513-1859"/>
43 <unit id="org.glassfish.jersey.apache.connector" version="2.30.1.v20200513-1859"/>
44 <unit id="org.glassfish.jersey.containers.servlet" version="2.30.1.v20200513-1859"/>
45 <unit id="org.glassfish.jersey.containers.servlet.core" version="2.30.1.v20200513-1859"/>
46 <unit id="org.glassfish.jersey.core.jersey-client" version="2.30.1.v20200513-1859"/>
47 <unit id="org.glassfish.jersey.core.jersey-common" version="2.30.1.v20200513-1859"/>
48 <unit id="org.glassfish.jersey.core.jersey-server" version="2.30.1.v20200513-1859"/>
49 <unit id="org.glassfish.jersey.ext.entityfiltering" version="2.30.1.v20200513-1859"/>
50 <unit id="org.glassfish.jersey.inject.jersey-hk2" version="2.30.1.v20200512-1802"/>
51 <unit id="org.glassfish.jersey.media.jersey-media-json-jackson" version="2.30.1.v20200513-1859"/>
52 <unit id="org.mockito" version="2.23.0.v20200310-1642"/>
53 <unit id="org.objectweb.asm" version="8.0.1.v20200420-1007"/>
54 <unit id="org.objectweb.asm.analysis" version="8.0.1.v20200420-1007"/>
55 <unit id="org.objectweb.asm.tree" version="8.0.1.v20200420-1007"/>
56 <unit id="org.objectweb.asm.util" version="8.0.1.v20200420-1007"/>
57 <unit id="org.slf4j.api" version="1.7.30.v20200204-2150"/>
58 <repository location="https://download.eclipse.org/tools/orbit/S-builds/S20200526004052/repository"/>
59 </location>
60 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
61 <unit id="org.eclipse.jdt.annotation" version="0.0.0"/>
62 <unit id="org.eclipse.jdt.core" version="0.0.0"/>
63 <unit id="org.eclipse.jdt.debug.ui" version="0.0.0"/>
64 <unit id="org.eclipse.jdt.ui" version="0.0.0"/>
65 <unit id="org.eclipse.pde.runtime" version="0.0.0"/>
66 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
67 <unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
68 <unit id="org.eclipse.ui.tests.harness" version="0.0.0"/>
69 <repository location="https://download.eclipse.org/eclipse/updates/4.16/"/>
70 </location>
71 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
72 <unit id="org.eclipse.license.feature.group" version="0.0.0"/>
73 <repository location="https://download.eclipse.org/cbi/updates/license"/>
74 </location>
75 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
76 <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
77 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
78 <unit id="org.eclipse.dstore.core" version="0.0.0"/>
79 <unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
80 <unit id="org.eclipse.ptp.rdt.sync.feature.group" version="0.0.0"/>
81 <unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
82 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
83 <unit id="org.eclipse.zest.feature.group" version="0.0.0"/>
84 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
85 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
86 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
87 <unit id="org.eclipse.lsp4e" version="0.0.0"/>
88 <unit id="org.eclipse.tm4e.feature.feature.group" version="0.0.0"/>
89 <repository location="https://download.eclipse.org/releases/2020-06/"/>
90 </location>
91 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
92 <unit id="org.eclipse.reddeer.eclipse.feature.feature.group" version="0.0.0"/>
93 <unit id="org.eclipse.reddeer.tests.feature.feature.group" version="0.0.0"/>
94 <unit id="org.eclipse.reddeer.ui.feature.feature.group" version="0.0.0"/>
95 <repository location="https://download.eclipse.org/reddeer/snapshots/"/>
96 </location>
97 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
98 <unit id="org.eclipse.swtchart.feature.feature.group" version="0.0.0"/>
99 <unit id="org.eclipse.swtchart.feature.source.feature.group" version="0.0.0"/>
100 <repository location="https://download.eclipse.org/swtchart/releases/0.12.0/repository"/>
101 </location>
102 </locations>
103 <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
104 <launcherArgs>
105 <vmArgs>-Xms40m
106 -Xmx512M</vmArgs>
107 <programArgs>-consolelog</programArgs>
108 </launcherArgs>
109 </target>
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?pde version="3.8"?>
2 <target name="linuxtools-e4.17" sequenceNumber="3">
3 <locations>
4 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
5 <unit id="com.fasterxml.jackson.core.jackson-annotations" version="2.10.3.v20200512-1600"/>
6 <unit id="com.fasterxml.jackson.core.jackson-core" version="2.10.3.v20200512-1600"/>
7 <unit id="com.fasterxml.jackson.core.jackson-databind" version="2.10.3.v20200512-1600"/>
8 <unit id="com.fasterxml.jackson.datatype.jackson-datatype-guava" version="2.10.3.v20200512-1600"/>
9 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.10.3.v20200512-1600"/>
10 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.10.3.v20200512-1600"/>
11 <unit id="com.github.jnr.constants" version="0.9.15.v20200501-1917"/>
12 <unit id="com.github.jnr.enxio" version="0.25.0.v20200501-1917"/>
13 <unit id="com.github.jnr.ffi" version="2.1.12.v20200513-1859"/>
14 <unit id="com.github.jnr.jffi" version="1.2.23.v20200501-1917"/>
15 <unit id="com.github.jnr.jffi.native" version="1.2.23.v20200501-1917"/>
16 <unit id="com.github.jnr.posix" version="3.0.54.v20200501-1917"/>
17 <unit id="com.github.jnr.unixsocket" version="0.28.0.v20200501-1917"/>
18 <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
19 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
20 <unit id="org.mandas.docker-client" version="3.2.1.v20200519-1937"/>
21 <unit id="org.mandas.docker-client.source" version="3.2.1.v20200519-1937"/>
22 <unit id="javassist" version="3.13.0.GA_v201209210905"/>
23 <unit id="javax.ws.rs" version="2.1.6.v20200505-2127"/>
24 <unit id="jakarta.xml.bind" version="2.3.3.v20200525-2159"/>
25 <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
26 <unit id="com.github.jnr.x86asm" version="1.0.2.v20200501-1917"/>
27 <unit id="org.aopalliance" version="1.0.0.v201105210816"/>
28 <unit id="org.apache.commons.codec" version="1.13.0.v20200108-0001"/>
29 <unit id="org.apache.commons.compress" version="1.19.0.v20200106-2343"/>
30 <unit id="org.apache.commons.io" version="2.6.0.v20190123-2029"/>
31 <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
32 <unit id="org.apache.httpcomponents.httpclient" version="4.5.10.v20200114-1512"/>
33 <unit id="org.apache.httpcomponents.httpcore" version="4.4.12.v20200108-1212"/>
34 <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
35 <unit id="org.assertj" version="3.14.0.v20200120-1926"/>
36 <unit id="org.bouncycastle.bcpkix" version="1.65.0.v20200527-1955"/>
37 <unit id="org.bouncycastle.bcprov" version="1.65.1.v20200529-1514"/>
38 <unit id="org.cyberneko.html" version="1.9.14.v201105210654"/>
39 <unit id="org.glassfish.hk2.api" version="2.6.1.v20200513-1859"/>
40 <unit id="org.glassfish.hk2.locator" version="2.6.1.v20200513-1859"/>
41 <unit id="org.glassfish.hk2.osgi-resource-locator" version="1.0.3.v20200509-0149"/>
42 <unit id="org.glassfish.hk2.utils" version="2.6.1.v20200513-1859"/>
43 <unit id="org.glassfish.jersey.apache.connector" version="2.30.1.v20200513-1859"/>
44 <unit id="org.glassfish.jersey.containers.servlet" version="2.30.1.v20200513-1859"/>
45 <unit id="org.glassfish.jersey.containers.servlet.core" version="2.30.1.v20200513-1859"/>
46 <unit id="org.glassfish.jersey.core.jersey-client" version="2.30.1.v20200513-1859"/>
47 <unit id="org.glassfish.jersey.core.jersey-common" version="2.30.1.v20200513-1859"/>
48 <unit id="org.glassfish.jersey.core.jersey-server" version="2.30.1.v20200513-1859"/>
49 <unit id="org.glassfish.jersey.ext.entityfiltering" version="2.30.1.v20200513-1859"/>
50 <unit id="org.glassfish.jersey.inject.jersey-hk2" version="2.30.1.v20200512-1802"/>
51 <unit id="org.glassfish.jersey.media.jersey-media-json-jackson" version="2.30.1.v20200513-1859"/>
52 <unit id="org.mockito" version="2.23.0.v20200310-1642"/>
53 <unit id="org.objectweb.asm" version="8.0.1.v20200420-1007"/>
54 <unit id="org.objectweb.asm.analysis" version="8.0.1.v20200420-1007"/>
55 <unit id="org.objectweb.asm.tree" version="8.0.1.v20200420-1007"/>
56 <unit id="org.objectweb.asm.util" version="8.0.1.v20200420-1007"/>
57 <unit id="org.slf4j.api" version="1.7.30.v20200204-2150"/>
58 <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200817205214/repository"/>
59 </location>
60 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
61 <unit id="org.eclipse.jdt.annotation" version="0.0.0"/>
62 <unit id="org.eclipse.jdt.core" version="0.0.0"/>
63 <unit id="org.eclipse.jdt.debug.ui" version="0.0.0"/>
64 <unit id="org.eclipse.jdt.ui" version="0.0.0"/>
65 <unit id="org.eclipse.jdt.junit4.runtime" version="0.0.0"/>
66 <unit id="org.eclipse.pde.runtime" version="0.0.0"/>
67 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
68 <unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
69 <unit id="org.eclipse.ui.tests.harness" version="0.0.0"/>
70 <repository location="https://download.eclipse.org/eclipse/updates/4.17/"/>
71 </location>
72 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
73 <unit id="org.eclipse.license.feature.group" version="0.0.0"/>
74 <repository location="https://download.eclipse.org/cbi/updates/license"/>
75 </location>
76 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
77 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
78 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
79 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
80 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
81 <repository location="https://ci.eclipse.org/cdt/job/cdt-master/lastSuccessfulBuild/artifact/releng/org.eclipse.cdt.repo/target/repository/"/>
82 </location>
83 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
84 <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
85 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
86 <unit id="org.eclipse.dstore.core" version="0.0.0"/>
87 <unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
88 <unit id="org.eclipse.ptp.rdt.sync.feature.group" version="0.0.0"/>
89 <unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
90 <unit id="org.eclipse.zest.feature.group" version="0.0.0"/>
91 <unit id="org.eclipse.lsp4e" version="0.0.0"/>
92 <unit id="org.eclipse.tm4e.feature.feature.group" version="0.0.0"/>
93 <repository location="https://download.eclipse.org/staging/2020-09/"/>
94 </location>
95 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
96 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
97 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
98 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
99 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
100 <repository location="https://ci.eclipse.org/cdt/job/cdt-master/lastSuccessfulBuild/artifact/releng/org.eclipse.cdt.repo/target/repository/"/>
101 </location>
102 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
103 <unit id="org.eclipse.reddeer.eclipse.feature.feature.group" version="0.0.0"/>
104 <unit id="org.eclipse.reddeer.tests.feature.feature.group" version="0.0.0"/>
105 <unit id="org.eclipse.reddeer.ui.feature.feature.group" version="0.0.0"/>
106 <repository location="https://download.eclipse.org/reddeer/releases/latest/"/>
107 </location>
108 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
109 <unit id="org.eclipse.wildwebdeveloper.embedder.node.feature.feature.group" version="0.0.0"/>
110 <repository location="https://download.eclipse.org/wildwebdeveloper/snapshots/"/>
111 </location>
112 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
113 <unit id="org.eclipse.swtchart.feature.feature.group" version="0.0.0"/>
114 <unit id="org.eclipse.swtchart.feature.source.feature.group" version="0.0.0"/>
115 <repository location="https://download.eclipse.org/swtchart/integration/develop/repository"/>
116 </location>
117 </locations>
118 <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
119 <launcherArgs>
120 <vmArgs>-Xms40m
121 -Xmx512M</vmArgs>
122 <programArgs>-consolelog</programArgs>
123 </launcherArgs>
124 </target>
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <?pde version="3.8"?>
2 <target name="linuxtools-e4.18" sequenceNumber="4">
3 <locations>
4 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
5 <unit id="com.fasterxml.jackson.core.jackson-annotations" version="2.10.3.v20200512-1600"/>
6 <unit id="com.fasterxml.jackson.core.jackson-core" version="2.10.3.v20200512-1600"/>
7 <unit id="com.fasterxml.jackson.core.jackson-databind" version="2.10.3.v20200512-1600"/>
8 <unit id="com.fasterxml.jackson.datatype.jackson-datatype-guava" version="2.10.3.v20200512-1600"/>
9 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.10.3.v20200512-1600"/>
10 <unit id="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.10.3.v20200512-1600"/>
11 <unit id="com.github.jnr.constants" version="0.9.15.v20200501-1917"/>
12 <unit id="com.github.jnr.enxio" version="0.25.0.v20200501-1917"/>
13 <unit id="com.github.jnr.ffi" version="2.1.12.v20200513-1859"/>
14 <unit id="com.github.jnr.jffi" version="1.2.23.v20200501-1917"/>
15 <unit id="com.github.jnr.jffi.native" version="1.2.23.v20200501-1917"/>
16 <unit id="com.github.jnr.posix" version="3.0.54.v20200501-1917"/>
17 <unit id="com.github.jnr.unixsocket" version="0.28.0.v20200501-1917"/>
18 <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
19 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
20 <unit id="org.mandas.docker-client" version="3.2.1.v20200519-1937"/>
21 <unit id="org.mandas.docker-client.source" version="3.2.1.v20200519-1937"/>
22 <unit id="javassist" version="3.13.0.GA_v201209210905"/>
23 <unit id="javax.ws.rs" version="2.1.6.v20200505-2127"/>
24 <unit id="jakarta.xml.bind" version="2.3.3.v20201118-1818"/>
25 <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
26 <unit id="com.github.jnr.x86asm" version="1.0.2.v20200501-1917"/>
27 <unit id="org.aopalliance" version="1.0.0.v201105210816"/>
28 <unit id="org.apache.commons.codec" version="1.14.0.v20200818-1422"/>
29 <unit id="org.apache.commons.compress" version="1.19.0.v20200106-2343"/>
30 <unit id="org.apache.commons.io" version="2.6.0.v20190123-2029"/>
31 <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
32 <unit id="org.apache.httpcomponents.httpclient" version="4.5.10.v20200830-2311"/>
33 <unit id="org.apache.httpcomponents.httpcore" version="4.4.12.v20200108-1212"/>
34 <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
35 <unit id="org.assertj" version="3.14.0.v20200120-1926"/>
36 <unit id="org.bouncycastle.bcpkix" version="1.65.0.v20200527-1955"/>
37 <unit id="org.bouncycastle.bcprov" version="1.65.1.v20200529-1514"/>
38 <unit id="org.cyberneko.html" version="1.9.14.v201105210654"/>
39 <unit id="org.glassfish.hk2.api" version="2.6.1.v20200513-1859"/>
40 <unit id="org.glassfish.hk2.locator" version="2.6.1.v20200513-1859"/>
41 <unit id="org.glassfish.hk2.osgi-resource-locator" version="1.0.3.v20200509-0149"/>
42 <unit id="org.glassfish.hk2.utils" version="2.6.1.v20200513-1859"/>
43 <unit id="org.glassfish.jersey.apache.connector" version="2.30.1.v20200513-1859"/>
44 <unit id="org.glassfish.jersey.containers.servlet" version="2.30.1.v20200513-1859"/>
45 <unit id="org.glassfish.jersey.containers.servlet.core" version="2.30.1.v20200513-1859"/>
46 <unit id="org.glassfish.jersey.core.jersey-client" version="2.30.1.v20200513-1859"/>
47 <unit id="org.glassfish.jersey.core.jersey-common" version="2.30.1.v20200513-1859"/>
48 <unit id="org.glassfish.jersey.core.jersey-server" version="2.30.1.v20200513-1859"/>
49 <unit id="org.glassfish.jersey.ext.entityfiltering" version="2.30.1.v20200513-1859"/>
50 <unit id="org.glassfish.jersey.inject.jersey-hk2" version="2.30.1.v20200512-1802"/>
51 <unit id="org.glassfish.jersey.media.jersey-media-json-jackson" version="2.30.1.v20200513-1859"/>
52 <unit id="org.mockito" version="2.23.0.v20200310-1642"/>
53 <unit id="org.objectweb.asm" version="9.0.0.v20201001-1419"/>
54 <unit id="org.objectweb.asm.analysis" version="9.0.0.v20201001-1419"/>
55 <unit id="org.objectweb.asm.tree" version="9.0.0.v20201001-1419"/>
56 <unit id="org.objectweb.asm.util" version="9.0.0.v20201001-1419"/>
57 <unit id="org.slf4j.api" version="1.7.30.v20200204-2150"/>
58 <repository location="https://download.eclipse.org/tools/orbit/downloads/2020-12"/>
59 </location>
60 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
61 <unit id="org.eclipse.jdt.annotation" version="0.0.0"/>
62 <unit id="org.eclipse.jdt.core" version="0.0.0"/>
63 <unit id="org.eclipse.jdt.debug.ui" version="0.0.0"/>
64 <unit id="org.eclipse.jdt.ui" version="0.0.0"/>
65 <unit id="org.eclipse.jdt.junit4.runtime" version="0.0.0"/>
66 <unit id="org.eclipse.pde.runtime" version="0.0.0"/>
67 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
68 <unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
69 <unit id="org.eclipse.ui.tests.harness" version="0.0.0"/>
70 <repository location="https://download.eclipse.org/eclipse/updates/4.18-I-builds/"/>
71 </location>
72 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
73 <unit id="org.eclipse.license.feature.group" version="0.0.0"/>
74 <repository location="https://download.eclipse.org/cbi/updates/license"/>
75 </location>
76 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
77 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
78 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
79 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
80 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
81 <repository location="https://ci.eclipse.org/cdt/job/cdt-master/lastSuccessfulBuild/artifact/releng/org.eclipse.cdt.repo/target/repository/"/>
82 </location>
83 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
84 <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
85 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
86 <unit id="org.eclipse.dstore.core" version="0.0.0"/>
87 <unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
88 <unit id="org.eclipse.ptp.rdt.sync.feature.group" version="0.0.0"/>
89 <unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
90 <unit id="org.eclipse.zest.feature.group" version="0.0.0"/>
91 <unit id="org.eclipse.lsp4e" version="0.0.0"/>
92 <unit id="org.eclipse.tm4e.feature.feature.group" version="0.0.0"/>
93 <repository location="https://download.eclipse.org/staging/2020-12/"/>
94 </location>
95 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
96 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
97 <unit id="org.eclipse.cdt.feature.group" version="0.0.0"/>
98 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
99 <unit id="org.eclipse.tm.terminal.feature.feature.group" version="0.0.0"/>
100 <repository location="https://ci.eclipse.org/cdt/job/cdt-master/lastSuccessfulBuild/artifact/releng/org.eclipse.cdt.repo/target/repository/"/>
101 </location>
102 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
103 <unit id="org.eclipse.reddeer.eclipse.feature.feature.group" version="0.0.0"/>
104 <unit id="org.eclipse.reddeer.tests.feature.feature.group" version="0.0.0"/>
105 <unit id="org.eclipse.reddeer.ui.feature.feature.group" version="0.0.0"/>
106 <repository location="https://download.eclipse.org/reddeer/releases/latest/"/>
107 </location>
108 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
109 <unit id="org.eclipse.wildwebdeveloper.embedder.node.feature.feature.group" version="0.0.0"/>
110 <repository location="https://download.eclipse.org/wildwebdeveloper/snapshots/"/>
111 </location>
112 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
113 <unit id="org.eclipse.swtchart.feature.feature.group" version="0.0.0"/>
114 <unit id="org.eclipse.swtchart.feature.source.feature.group" version="0.0.0"/>
115 <repository location="https://download.eclipse.org/swtchart/integration/develop/repository"/>
116 </location>
117 </locations>
118 <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
119 <launcherArgs>
120 <vmArgs>-Xms40m
121 -Xmx512M</vmArgs>
122 <programArgs>-consolelog</programArgs>
123 </launcherArgs>
124 </target>
55 <parent>
66 <groupId>org.eclipse.linuxtools.releng</groupId>
77 <artifactId>linuxtools-releng-parent</artifactId>
8 <version>7.4.0</version>
8 <version>8.1.0</version>
99 </parent>
1010
1111 <groupId>org.eclipse.linuxtools</groupId>
3030 <configuration>
3131 <artifacts>
3232 <artifact>
33 <file>linuxtools-e4.13.target</file>
33 <file>linuxtools-e4.17.target</file>
3434 <type>target</type>
35 <classifier>linuxtools-e4.13</classifier>
35 <classifier>linuxtools-e4.17</classifier>
3636 </artifact>
3737 <!-- More targets could be added here -->
3838 </artifacts>
4242 </plugin>
4343 </plugins>
4444 </build>
45 </project>
45 </project>
1919 <parent>
2020 <groupId>org.eclipse.linuxtools</groupId>
2121 <artifactId>linuxtools-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <groupId>org.eclipse.linuxtools.releng</groupId>
1313 <feature
1414 id="org.eclipse.linuxtools.rpm"
1515 label="%featureName"
16 version="7.4.0.qualifier"
16 version="8.1.0.qualifier"
1717 provider-name="%provider"
1818 license-feature="org.eclipse.license"
1919 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools RPM Tools Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1212 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
13 org.eclipse.jdt.core.compiler.compliance=1.8
13 org.eclipse.jdt.core.compiler.compliance=11
1414 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1515 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1616 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2525 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
2626 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2727 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2829 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2930 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3031 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8081 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8283 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
84 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8385 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8486 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8587 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
112114 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
113115 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
114116 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
115 org.eclipse.jdt.core.compiler.source=1.8
117 org.eclipse.jdt.core.compiler.release=enabled
118 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Localization: plugin
66 Bundle-Vendor: %Bundle-Vendor
77 Bundle-ActivationPolicy: lazy
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Require-Bundle: org.eclipse.core.resources,
1010 org.eclipse.core.runtime,
1111 org.eclipse.ui,
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.rpm.core.tests;singleton:=true
44 Bundle-Version: 1.0.0.qualifier
55 Bundle-Vendor: %Bundle-Vendor.0
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Fragment-Host: org.eclipse.linuxtools.rpm.core;bundle-version="0.4.3"
88 Require-Bundle: org.eclipse.core.runtime,
99 org.eclipse.core.resources,
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.core.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8283 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8485 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
86 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8587 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8688 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8789 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
114116 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
115117 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
116118 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
117 org.eclipse.jdt.core.compiler.source=1.8
119 org.eclipse.jdt.core.compiler.release=enabled
120 org.eclipse.jdt.core.compiler.source=11
1414 org.eclipse.core.resources,
1515 org.eclipse.linuxtools.rpm.core,
1616 org.eclipse.linuxtools.rpm.ui.editor
17 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
17 Bundle-RequiredExecutionEnvironment: JavaSE-11
1818 Bundle-ActivationPolicy: lazy
1919 Automatic-Module-Name: org.eclipse.linuxtools.rpm.createrepo
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.createrepo</artifactId>
1414 import org.eclipse.core.runtime.IStatus;
1515 import org.eclipse.core.runtime.Status;
1616 import org.eclipse.jface.resource.ImageDescriptor;
17 import org.eclipse.jface.resource.ResourceLocator;
1718 import org.eclipse.ui.plugin.AbstractUIPlugin;
1819 import org.osgi.framework.BundleContext;
1920
5758 * @return the image descriptor
5859 */
5960 public static ImageDescriptor getImageDescriptor(String path) {
60 return imageDescriptorFromPlugin(PLUGIN_ID, path);
61 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
6162 }
6263
6364 /**
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1212 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
13 org.eclipse.jdt.core.compiler.compliance=1.8
13 org.eclipse.jdt.core.compiler.compliance=11
1414 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1515 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1616 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2424 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2525 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2626 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
27 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2728 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2829 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2930 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6768 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6869 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6970 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
71 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7072 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7173 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7274 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
99101 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
100102 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
101103 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
102 org.eclipse.jdt.core.compiler.source=1.8
104 org.eclipse.jdt.core.compiler.release=enabled
105 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.rpm.createrepo.tests
44 Bundle-Version: 1.0.0.qualifier
55 Fragment-Host: org.eclipse.linuxtools.rpm.createrepo;bundle-version="1.0.0"
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Bundle-Vendor: %Bundle-Vendor
88 Require-Bundle: org.junit;bundle-version="4.8.1",
99 org.eclipse.swtbot.eclipse.finder,
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.createrepo.tests</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2013, 2018 Red Hat Inc. and others.
1 * Copyright (c) 2013, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
3939 String DEFAULTS = "Restore Defaults"; //$NON-NLS-1$
4040 String PROPERTIES = "Properties"; //$NON-NLS-1$
4141 String PROPERTIES_SHELL = "Properties for %s"; //$NON-NLS-1$
42 String SELECT_A_WIZARD = "Select a wizard"; //$NON-NLS-1$
4243
4344 /*
4445 * Navigator controls
00 /*******************************************************************************
1 * Copyright (c) 2013, 2018 Red Hat Inc. and others.
1 * Copyright (c) 2013, 2020 Red Hat Inc. and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
101101 public void testCreaterepoWizardProjectCreation() throws CoreException, IOException {
102102 // go through the process of creating a new createrepo project
103103 bot.menu(ICreaterepoTestConstants.FILE).menu(ICreaterepoTestConstants.NEW).menu(ICreaterepoTestConstants.OTHER).click();
104 SWTBotShell shell = bot.shell(ICreaterepoTestConstants.NEW);
104 SWTBotShell shell = bot.shell(ICreaterepoTestConstants.SELECT_A_WIZARD);
105105 shell.activate();
106106 bot.text().setText(ICreaterepoTestConstants.CREATEREPO_PROJECT_WIZARD);
107107 bot.waitUntil(new TestUtils.NodeAvailableAndSelect(bot.tree(), ICreaterepoTestConstants.CREATEREPO_PROJECT_CATEGORY, ICreaterepoTestConstants.CREATEREPO_PROJECT_WIZARD));
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8485 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8586 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8687 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
88 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8789 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8890 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8991 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
119121 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
120122 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
121123 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
122 org.eclipse.jdt.core.compiler.source=1.8
124 org.eclipse.jdt.core.compiler.release=enabled
125 org.eclipse.jdt.core.compiler.source=11
1313 org.eclipse.ui.console;bundle-version="3.3.0",
1414 org.eclipse.linuxtools.rpm.core
1515 Bundle-ActivationPolicy: lazy
16 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
16 Bundle-RequiredExecutionEnvironment: JavaSE-11
1717 Bundle-Vendor: %provider
1818 Automatic-Module-Name: org.eclipse.linuxtools.rpm.rpmlint
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.rpmlint</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8182 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8283 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
85 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8486 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8587 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8688 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
113115 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
114116 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
115117 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
116 org.eclipse.jdt.core.compiler.source=1.8
118 org.eclipse.jdt.core.compiler.release=enabled
119 org.eclipse.jdt.core.compiler.source=11
44 Bundle-Version: 1.1.0.qualifier
55 Bundle-Vendor: %Bundle-Vendor.0
66 Bundle-ActivationPolicy: lazy
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
88 Require-Bundle: org.eclipse.ui.ide,
99 org.eclipse.jface.text,
1010 org.eclipse.core.runtime,
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.ui</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2011, 2018 Red Hat, Inc.
1 * Copyright (c) 2011, 2020 Red Hat, Inc.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2828 import org.eclipse.swt.widgets.Group;
2929 import org.eclipse.swt.widgets.Label;
3030 import org.eclipse.ui.IWorkingSet;
31 import org.eclipse.ui.PlatformUI;
3132 import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
3233 import org.eclipse.ui.dialogs.WorkingSetConfigurationBlock;
34 import org.osgi.framework.FrameworkUtil;
3335
3436 /**
3537 * Standard page for project creation adding some rpm specific controls.
176178 public WorkingSetGroup() {
177179 String[] workingSetIds = new String[] { "org.eclipse.ui.resourceWorkingSetPage" }; //$NON-NLS-1$
178180 workingSetBlock = new WorkingSetConfigurationBlock(workingSetIds,
179 Activator.getDefault().getDialogSettings());
181 PlatformUI.getDialogSettingsProvider(FrameworkUtil.getBundle(NewProjectCreationPage.class))
182 .getDialogSettings());
180183 }
181184
182185 public Control createControl(Composite composite) {
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8283 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8485 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
86 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8587 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8688 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8789 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
114116 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
115117 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
116118 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
117 org.eclipse.jdt.core.compiler.source=1.8
119 org.eclipse.jdt.core.compiler.release=enabled
120 org.eclipse.jdt.core.compiler.source=11
1414 org.eclipse.ui.ide,
1515 org.eclipse.ui.console,
1616 org.eclipse.linuxtools.changelog.core,
17 com.ibm.icu,
1817 org.eclipse.compare;bundle-version="3.4.0",
1918 org.eclipse.linuxtools.rpm.core,
2019 org.eclipse.ui.console,
2322 Export-Package: org.eclipse.linuxtools.rpm.ui.editor.markers,
2423 org.eclipse.linuxtools.rpm.ui.editor.parser,
2524 org.eclipse.linuxtools.rpm.ui.editor.wizards
26 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
25 Bundle-RequiredExecutionEnvironment: JavaSE-11
2726 Bundle-Vendor: %provider
2827 Automatic-Module-Name: org.eclipse.linuxtools.rpm.ui.editor
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.ui.editor</artifactId>
2323
2424 import org.eclipse.jface.resource.ImageDescriptor;
2525 import org.eclipse.jface.resource.ImageRegistry;
26 import org.eclipse.jface.resource.ResourceLocator;
2627 import org.eclipse.jface.text.templates.ContextTypeRegistry;
2728 import org.eclipse.jface.text.templates.persistence.TemplateStore;
2829 import org.eclipse.swt.graphics.Image;
169170 ImageRegistry registry = getImageRegistry();
170171 Image image = registry.get(imageRelativePath);
171172 if (image == null) {
172 ImageDescriptor desc = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, imageRelativePath);
173 ImageDescriptor desc = ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, imageRelativePath).get();
173174 registry.put(imageRelativePath, desc);
174175 image = registry.get(imageRelativePath);
175176 }
1212
1313 package org.eclipse.linuxtools.internal.rpm.ui.editor.hyperlink;
1414
15 import java.util.StringTokenizer;
1516 import java.util.regex.Matcher;
1617 import java.util.regex.Pattern;
1718
3637 import org.eclipse.ui.IWorkbenchWindow;
3738 import org.eclipse.ui.PlatformUI;
3839 import org.eclipse.ui.part.FileEditorInput;
39
40 import com.ibm.icu.util.StringTokenizer;
4140
4241 /**
4342 * Hyperlink detector for source, patch and defines in the spec file.
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.ui.editor.doc</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1212 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
13 org.eclipse.jdt.core.compiler.compliance=1.8
13 org.eclipse.jdt.core.compiler.compliance=11
1414 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1515 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1616 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2424 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2525 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2626 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
27 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2728 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2829 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2930 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6768 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6869 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6970 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
71 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7072 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7173 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7274 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
99101 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
100102 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
101103 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
102 org.eclipse.jdt.core.compiler.source=1.8
104 org.eclipse.jdt.core.compiler.release=enabled
105 org.eclipse.jdt.core.compiler.source=11
88 org.junit;bundle-version="4.8.1",
99 org.eclipse.core.resources
1010 Bundle-ActivationPolicy: lazy
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-Vendor: %provider
1313 Automatic-Module-Name: org.eclipse.linuxtools.rpm.ui.editor.tests
1414 <parent>
1515 <artifactId>linuxtools-rpm-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.rpm</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.rpm.ui.editor.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
1010 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1111 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8182 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8283 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
85 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8486 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8587 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8688 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
113115 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
114116 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
115117 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
116 org.eclipse.jdt.core.compiler.source=1.8
118 org.eclipse.jdt.core.compiler.release=enabled
119 org.eclipse.jdt.core.compiler.source=11
88 org.eclipse.core.runtime,
99 org.eclipse.core.resources,
1010 org.eclipse.ui.ide
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-ActivationPolicy: lazy
1313 Export-Package: org.eclipse.linuxtools.rpmstubby
1414 Automatic-Module-Name: org.eclipse.linuxtools.rpmstubby
1919 <parent>
2020 <groupId>org.eclipse.linuxtools.rpm</groupId>
2121 <artifactId>linuxtools-rpm-parent</artifactId>
22 <version>7.4.0</version>
22 <version>8.1.0</version>
2323 </parent>
2424
2525 <artifactId>org.eclipse.linuxtools.rpmstubby</artifactId>
6363 String setupLine = "";
6464 List<String> vars = new ArrayList<>();
6565 int offset = 0;
66 try {
67 RandomAccessFile raf = new RandomAccessFile(file.getRawLocation().makeAbsolute().toFile(), "r");
68
66 try (RandomAccessFile raf = new RandomAccessFile(file.getRawLocation().makeAbsolute().toFile(), "r")){
6967 // end if cannot find setup(
7068 long bytesToSkip = findStartSetup(raf);
7169 if (bytesToSkip == -1) {
115113 }
116114
117115 resolveVariables(variables, setupOptions);
118
119 raf.close();
120116 } catch (IOException e) {
121117 StubbyLog.logError(e);
122118 }
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.rpm</groupId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9698 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9799 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98100 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
101 org.eclipse.jdt.core.compiler.release=enabled
102 org.eclipse.jdt.core.compiler.source=11
77 org.eclipse.zest.layouts;bundle-version="1.1.0",
88 org.eclipse.zest.core;bundle-version="1.2.0"
99 Bundle-ActivationPolicy: lazy
10 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
10 Bundle-RequiredExecutionEnvironment: JavaSE-11
1111 Export-Package: org.eclipse.linuxtools.internal.callgraph,
1212 org.eclipse.linuxtools.internal.callgraph.graphlisteners
1313 Import-Package: org.eclipse.cdt.core.model,
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.callgraph</artifactId>
3232 import org.eclipse.jface.action.IToolBarManager;
3333 import org.eclipse.jface.action.MenuManager;
3434 import org.eclipse.jface.resource.ImageDescriptor;
35 import org.eclipse.jface.resource.ResourceLocator;
3536 import org.eclipse.linuxtools.internal.callgraph.core.PluginConstants;
3637 import org.eclipse.linuxtools.internal.callgraph.core.SystemTapParser;
3738 import org.eclipse.linuxtools.internal.callgraph.core.SystemTapUIErrorMessages;
5152 import org.eclipse.swt.widgets.Label;
5253 import org.eclipse.swt.widgets.Shell;
5354 import org.eclipse.swt.widgets.Spinner;
54 import org.eclipse.ui.plugin.AbstractUIPlugin;
5555
5656 /**
5757 * The SystemTap View for displaying output of the 'stap' command, and acts
10251025 }
10261026
10271027 private static ImageDescriptor getImageDescriptor(String path) {
1028 return AbstractUIPlugin.imageDescriptorFromPlugin(CallGraphConstants.PLUGIN_ID, path);
1028 return ResourceLocator.imageDescriptorFromBundle(CallGraphConstants.PLUGIN_ID, path).get();
10291029 }
10301030
10311031
1111 *******************************************************************************/
1212 package org.eclipse.linuxtools.internal.callgraph.treeviewer;
1313
14 import org.eclipse.jface.resource.ResourceLocator;
1415 import org.eclipse.jface.viewers.LabelProvider;
1516 import org.eclipse.linuxtools.internal.callgraph.CallGraphConstants;
1617 import org.eclipse.linuxtools.internal.callgraph.StapData;
1718 import org.eclipse.swt.graphics.Image;
18 import org.eclipse.ui.plugin.AbstractUIPlugin;
1919
2020 public class StapTreeLabelProvider extends LabelProvider {
2121
2222 @Override
2323 public Image getImage(Object element) {
2424 Image im = null;
25 if ( ((StapData) element).isMarked()) {
26 im = AbstractUIPlugin.imageDescriptorFromPlugin(CallGraphConstants.PLUGIN_ID, "/icons/public_co.gif").createImage(); //$NON-NLS-1$
27 } else {
28 im = AbstractUIPlugin.imageDescriptorFromPlugin(CallGraphConstants.PLUGIN_ID, "/icons/compare_method.gif").createImage(); //$NON-NLS-1$
29 }
25 if (((StapData) element).isMarked()) {
26 im = ResourceLocator.imageDescriptorFromBundle(CallGraphConstants.PLUGIN_ID, "/icons/public_co.gif").get() //$NON-NLS-1$
27 .createImage();
28 } else {
29 im = ResourceLocator.imageDescriptorFromBundle(CallGraphConstants.PLUGIN_ID, "/icons/compare_method.gif") //$NON-NLS-1$
30 .get().createImage();
31 }
3032 return im;
3133 }
3234
11 <feature
22 id="org.eclipse.linuxtools.callgraph.feature"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 os="linux"
77 license-feature="org.eclipse.license"
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.callgraph.feature</artifactId>
2020 <packaging>eclipse-feature</packaging>
21 <version>7.4.0-SNAPSHOT</version>
21 <version>8.1.0-SNAPSHOT</version>
2222
2323 <name>Linux Tools C/C++ Call Graph Visualization Feature</name>
2424
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=true
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
31 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
34 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
35 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
36 sp_cleanup.remove_private_constructors=true
37 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
39 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=true
41 sp_cleanup.remove_trailing_whitespaces_all=true
42 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
44 sp_cleanup.remove_unnecessary_casts=true
45 sp_cleanup.remove_unnecessary_nls_tags=false
46 sp_cleanup.remove_unused_imports=false
47 sp_cleanup.remove_unused_local_variables=false
48 sp_cleanup.remove_unused_private_fields=true
49 sp_cleanup.remove_unused_private_members=false
50 sp_cleanup.remove_unused_private_methods=true
51 sp_cleanup.remove_unused_private_types=true
52 sp_cleanup.sort_members=false
53 sp_cleanup.sort_members_all=false
54 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
56 sp_cleanup.use_blocks=false
57 sp_cleanup.use_blocks_only_for_return_and_throw=false
58 sp_cleanup.use_lambda=true
59 sp_cleanup.use_parentheses_in_expressions=false
60 sp_cleanup.use_this_for_non_static_field_access=false
61 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
62 sp_cleanup.use_this_for_non_static_method_access=false
63 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
66 Require-Bundle: org.eclipse.ui,
77 org.eclipse.core.runtime
88 Bundle-ActivationPolicy: lazy
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Export-Package: org.eclipse.linuxtools.internal.callgraph.core
1111 Import-Package: org.eclipse.cdt.core.model,
1212 org.eclipse.core.resources,
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.callgraph.core</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc. and others.
2 *
1 * Copyright (c) 2009, 2019 Red Hat, Inc. and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3333 import org.eclipse.jface.action.IToolBarManager;
3434 import org.eclipse.jface.action.MenuManager;
3535 import org.eclipse.jface.dialogs.MessageDialog;
36 import org.eclipse.jface.resource.ResourceLocator;
3637 import org.eclipse.linuxtools.tools.launch.core.factory.RuntimeProcessFactory;
3738 import org.eclipse.swt.SWT;
3839 import org.eclipse.swt.widgets.Composite;
4243 import org.eclipse.ui.IWorkbenchPage;
4344 import org.eclipse.ui.handlers.IHandlerService;
4445 import org.eclipse.ui.part.ViewPart;
45 import org.eclipse.ui.plugin.AbstractUIPlugin;
4646 import org.eclipse.ui.progress.UIJob;
4747
4848 public abstract class SystemTapView extends ViewPart {
267267
268268 protected void addKillButton() {
269269 IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
270 kill = new Action(Messages.getString("SystemTapView.StopScript"), //$NON-NLS-1$
271 AbstractUIPlugin.imageDescriptorFromPlugin(CallgraphCorePlugin.PLUGIN_ID, "icons/progress_stop.gif")) { //$NON-NLS-1$
272 @Override
273 public void run() {
274 getParser().cancelJob();
275 }
276 };
270 kill = new Action(Messages.getString("SystemTapView.StopScript"), //$NON-NLS-1$
271 ResourceLocator.imageDescriptorFromBundle(CallgraphCorePlugin.PLUGIN_ID, "icons/progress_stop.gif") //$NON-NLS-1$
272 .get()) {
273 @Override
274 public void run() {
275 getParser().cancelJob();
276 }
277 };
277278 mgr.add(kill);
278279 setKillButtonEnabled(false);
279280 }
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.callgraph.docs</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.cdt.ui,
1111 org.eclipse.linuxtools.tools.launch.core
1212 Bundle-ActivationPolicy: lazy
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Import-Package: org.eclipse.cdt.core.model,
1515 org.eclipse.cdt.debug.core,
1616 org.eclipse.cdt.launch,
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.callgraph.launch</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
44 Bundle-Version: 1.0.0.qualifier
55 Require-Bundle: org.junit;bundle-version="4.7.0"
66 Bundle-ActivationPolicy: lazy
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
88 Fragment-Host: org.eclipse.linuxtools.callgraph.launch
99 Import-Package: org.eclipse.linuxtools.profiling.tests,
1010 org.eclipse.linuxtools.tools.launch.core.factory
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.callgraph.launch.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
1010 org.eclipse.zest.core;bundle-version="1.2.0",
1111 org.eclipse.zest.layouts;bundle-version="1.1.0"
1212 Bundle-ActivationPolicy: lazy
13 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
13 Bundle-RequiredExecutionEnvironment: JavaSE-11
1414 Import-Package: org.eclipse.cdt.core.model,
1515 org.eclipse.linuxtools.internal.callgraph.core
1616 Bundle-Vendor: %Bundle-Vendor
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.callgraph.tests</artifactId>
11 <feature
22 id="org.eclipse.linuxtools.systemtap"
33 label="%description"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 os="linux"
77 license-feature="org.eclipse.license"
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.systemtap</artifactId>
2020 <packaging>eclipse-feature</packaging>
21 <version>7.4.0-SNAPSHOT</version>
21 <version>8.1.0-SNAPSHOT</version>
2222
2323 <name>Linux Tools SystemTap IDE and Visualization Tools Feature</name>
2424
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
1111 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1212 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1818 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1919 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2020 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
21 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2122 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2223 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2324 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7475 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7576 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7677 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
78 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7779 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7880 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7981 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
105107 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106108 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107109 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
110 org.eclipse.jdt.core.compiler.release=enabled
111 org.eclipse.jdt.core.compiler.source=11
1515 Require-Bundle: org.eclipse.linuxtools.systemtap.structures,
1616 org.eclipse.swt
1717 Bundle-ActivationPolicy: lazy
18 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
18 Bundle-RequiredExecutionEnvironment: JavaSE-11
1919 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.graphing.core
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.graphing.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
66 Bundle-Localization: plugin
77 Bundle-ActivationPolicy: lazy
88 Require-Bundle: org.junit;bundle-version="4.0.0"
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Fragment-Host: org.eclipse.linuxtools.systemtap.graphing.core
1111 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.graphing.core.tests
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.graphing.core.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7879 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
82 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8183 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8284 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8385 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
109111 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
110112 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
111113 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
112 org.eclipse.jdt.core.compiler.source=1.8
114 org.eclipse.jdt.core.compiler.release=enabled
115 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=true
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
31 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
34 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
35 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
36 sp_cleanup.remove_private_constructors=true
37 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
39 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=true
41 sp_cleanup.remove_trailing_whitespaces_all=true
42 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
44 sp_cleanup.remove_unnecessary_casts=true
45 sp_cleanup.remove_unnecessary_nls_tags=false
46 sp_cleanup.remove_unused_imports=true
47 sp_cleanup.remove_unused_local_variables=false
48 sp_cleanup.remove_unused_private_fields=true
49 sp_cleanup.remove_unused_private_members=false
50 sp_cleanup.remove_unused_private_methods=true
51 sp_cleanup.remove_unused_private_types=true
52 sp_cleanup.sort_members=false
53 sp_cleanup.sort_members_all=false
54 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
56 sp_cleanup.use_blocks=false
57 sp_cleanup.use_blocks_only_for_return_and_throw=false
58 sp_cleanup.use_lambda=true
59 sp_cleanup.use_parentheses_in_expressions=false
60 sp_cleanup.use_this_for_non_static_field_access=false
61 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
62 sp_cleanup.use_this_for_non_static_method_access=false
63 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
1717 org.eclipse.ui,
1818 org.eclipse.core.runtime,
1919 org.eclipse.ui.forms,
20 org.swtchart,
20 org.eclipse.swtchart,
2121 org.eclipse.linuxtools.dataviewers.piechart,
2222 org.eclipse.linuxtools.dataviewers.charts
2323 Bundle-ActivationPolicy: lazy
24 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
24 Bundle-RequiredExecutionEnvironment: JavaSE-11
2525 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.graphing.ui
26 Import-Package: org.eclipse.swtchart.extensions.charts
2525 </extension>
2626
2727 <extension
28 point="org.eclipse.ui.commands">
29 <category
30 name="%category.file.name"
31 description="%category.file.desc"
32 id="org.eclipse.linuxtools.systemtap.graphing.ui.category.file"/>
33 <command
34 name="%command.save.name"
35 description="%command.save.desc"
36 categoryId="org.eclipse.linuxtools.systemtap.graphing.ui.category.file"
37 id="org.eclipse.linuxtools.systemtap.graphing.ui.commands.SaveGraphImage"/>
38 </extension>
39
40 <extension
41 point="org.eclipse.ui.menus">
42 <menuContribution
43 locationURI="toolbar:org.eclipse.linuxtools.systemtap.ui.ide.toolbar?after=chartGroup">
44 <command
45 commandId="org.eclipse.linuxtools.systemtap.graphing.ui.commands.SaveGraphImage"
46 label="%command.save.name"
47 icon="icons/actions/chart-save.png">
48 <visibleWhen checkEnabled="true"/>
49 </command>
50 </menuContribution>
51 </extension>
52
53 <extension
54 point="org.eclipse.ui.handlers">
55 <handler
56 class="org.eclipse.linuxtools.internal.systemtap.graphing.ui.handlers.SaveGraphImageHandler"
57 commandId="org.eclipse.linuxtools.systemtap.graphing.ui.commands.SaveGraphImage">
58 <activeWhen>
59 <reference definitionId="org.eclipse.linuxtools.systemtap.graphing.ui.graphEditorEnablement"/>
60 </activeWhen>
61 </handler>
62 </extension>
63
64 <extension
6528 point="org.eclipse.ui.editors">
6629 <editor
6730 class="org.eclipse.linuxtools.systemtap.graphing.ui.views.GraphSelectorEditor"
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.graphing.ui</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2006, 2018 IBM Corporation and others.
2 *
1 * Copyright (c) 2006, 2019 IBM Corporation and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313 package org.eclipse.linuxtools.internal.systemtap.graphing.ui;
1414
1515 import org.eclipse.jface.resource.ImageDescriptor;
16 import org.eclipse.jface.resource.ResourceLocator;
1617 import org.eclipse.ui.plugin.AbstractUIPlugin;
1718 import org.osgi.framework.BundleContext;
1819
5657 * @return the image descriptor
5758 */
5859 public static ImageDescriptor getImageDescriptor(String path) {
59 return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
60 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
6061 }
6162 }
00 /*******************************************************************************
11 * Copyright (c) 2010, 2018 IBM Corporation and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2424 import org.eclipse.swt.graphics.Rectangle;
2525 import org.eclipse.swt.widgets.Composite;
2626 import org.eclipse.swt.widgets.Control;
27 import org.swtchart.IAxis;
28 import org.swtchart.ISeries;
29 import org.swtchart.ITitle;
30 import org.swtchart.LineStyle;
31 import org.swtchart.Range;
27 import org.eclipse.swtchart.IAxis;
28 import org.eclipse.swtchart.ISeries;
29 import org.eclipse.swtchart.ITitle;
30 import org.eclipse.swtchart.LineStyle;
31 import org.eclipse.swtchart.Range;
3232
3333 /**
3434 * A {@link AbstractChartBuilder} for building a chart with axes.
118118 protected void createChart() {
119119 super.createChart();
120120 applyTitleBoundsListener();
121 chartMouseMoveListener = new ChartWithAxisMouseMoveListener(chart, chart.getPlotArea());
121 chartMouseMoveListener = new ChartWithAxisMouseMoveListener(chart, chart.getPlotArea().getControl());
122122 }
123123
124124 /**
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corp. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1515
1616 import org.eclipse.linuxtools.systemtap.graphing.core.adapters.IAdapter;
1717 import org.eclipse.swt.widgets.Composite;
18 import org.swtchart.ILineSeries;
19 import org.swtchart.ISeries;
18 import org.eclipse.swtchart.ILineSeries;
19 import org.eclipse.swtchart.ISeries;
2020
2121 /**
2222 * Builds bar chart.
00 /*******************************************************************************
11 * Copyright (c) 2013, 2018 Red Hat Inc. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1212 package org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts;
1313
1414 import org.eclipse.swt.widgets.Composite;
15 import org.swtchart.Chart;
16 import org.swtchart.IAxis;
17 import org.swtchart.ISeries;
18 import org.swtchart.Range;
15 import org.eclipse.swtchart.IAxis;
16 import org.eclipse.swtchart.ISeries;
17 import org.eclipse.swtchart.Range;
18 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
1919
2020 /**
2121 * @since 3.0
2222 */
23 public class BarChart extends Chart {
23 public class BarChart extends InteractiveChart {
2424
2525 private final static int MIN_LABEL_SIZE = Messages.BarChartBuilder_LabelTrimTag.length();
2626 private final int fontSize;
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corporation and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1616 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.listeners.BarChartMouseMoveListener;
1717 import org.eclipse.linuxtools.systemtap.graphing.core.adapters.IAdapter;
1818 import org.eclipse.swt.widgets.Composite;
19 import org.swtchart.IBarSeries;
20 import org.swtchart.ISeries;
21 import org.swtchart.ISeries.SeriesType;
22 import org.swtchart.Range;
19 import org.eclipse.swtchart.IBarSeries;
20 import org.eclipse.swtchart.ISeries;
21 import org.eclipse.swtchart.ISeries.SeriesType;
22 import org.eclipse.swtchart.Range;
2323
2424 /**
2525 * A {@link Composite} for building a bar chart.
4141 protected void createChart() {
4242 this.chart = new BarChart(this, getStyle());
4343 applyTitleBoundsListener();
44 chartMouseMoveListener = new BarChartMouseMoveListener((BarChart) chart, chart.getPlotArea());
44 chartMouseMoveListener = new BarChartMouseMoveListener((BarChart) chart, chart.getPlotArea().getControl());
4545 }
4646
4747 @Override
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corp. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313
1414 import org.eclipse.linuxtools.systemtap.graphing.core.adapters.IAdapter;
1515 import org.eclipse.swt.widgets.Composite;
16 import org.swtchart.ILineSeries;
17 import org.swtchart.ISeries;
18 import org.swtchart.ISeries.SeriesType;
19 import org.swtchart.LineStyle;
16 import org.eclipse.swtchart.ILineSeries;
17 import org.eclipse.swtchart.ISeries;
18 import org.eclipse.swtchart.ISeries.SeriesType;
19 import org.eclipse.swtchart.LineStyle;
2020
2121 /**
2222 * Builds line chart.
2424
2525 public class LineChartBuilder extends AbstractChartWithAxisBuilder {
2626
27 public static final String ID = "org.eclipse.linuxtools.systemtap.graphing.ui.charts.linechartbuilder"; //$NON-NLS-1$
27 public static final String ID = "org.eclipse.linuxtools.systemtap.graphing.ui.charts.linechartbuilder"; //$NON-NLS-1$
2828
29 public LineChartBuilder(Composite parent, int style, String title,IAdapter adapter) {
30 super(adapter, parent, style, title);
31 }
29 public LineChartBuilder(Composite parent, int style, String title, IAdapter adapter) {
30 super(adapter, parent, style, title);
31 }
3232
33 @Override
34 protected ISeries createChartISeries(int i) {
35 ILineSeries series = (ILineSeries) chart.getSeriesSet().
36 createSeries(SeriesType.LINE, adapter.getLabels()[i+1]);
37 series.setSymbolColor(COLORS[i % COLORS.length]);
38 series.setLineColor(COLORS[i % COLORS.length]);
39 series.setLineStyle(LineStyle.SOLID);
40 return series;
41 }
33 @Override
34 protected ISeries createChartISeries(int i) {
35 ILineSeries series = (ILineSeries) chart.getSeriesSet().createSeries(SeriesType.LINE,
36 adapter.getLabels()[i + 1]);
37 series.setSymbolColor(COLORS[i % COLORS.length]);
38 series.setLineColor(COLORS[i % COLORS.length]);
39 series.setLineStyle(LineStyle.SOLID);
40 return series;
41 }
4242 }
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corp. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313 */
1414 package org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts;
1515
16 import org.eclipse.linuxtools.dataviewers.piechart.PieChart;
16 import org.eclipse.linuxtools.internal.dataviewers.piechart.PieChart;
1717 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.listeners.PieChartMouseMoveListener;
1818 import org.eclipse.linuxtools.systemtap.graphing.core.adapters.IAdapter;
1919 import org.eclipse.swt.widgets.Composite;
20 import org.swtchart.IAxis;
21 import org.swtchart.Range;
20 import org.eclipse.swtchart.IAxis;
21 import org.eclipse.swtchart.Range;
2222
2323 /**
2424 * Builds Pie chart.
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corp. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414
1515 import org.eclipse.linuxtools.systemtap.graphing.core.adapters.IAdapter;
1616 import org.eclipse.swt.widgets.Composite;
17 import org.swtchart.ILineSeries;
18 import org.swtchart.ISeries;
19 import org.swtchart.LineStyle;
17 import org.eclipse.swtchart.ILineSeries;
18 import org.eclipse.swtchart.ISeries;
19 import org.eclipse.swtchart.LineStyle;
2020
2121 /**
2222 * Builds bar chart.
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat, Inc. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1616 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.BarChart;
1717 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.Messages;
1818 import org.eclipse.swt.events.MouseEvent;
19 import org.eclipse.swt.widgets.Composite;
20 import org.swtchart.IAxis;
21 import org.swtchart.ISeries;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swtchart.IAxis;
21 import org.eclipse.swtchart.ISeries;
2222
2323 /**
2424 * This is a specialized mouse listener for displaying the value of a category (bar)
2828 * @since 3.0
2929 */
3030 public class BarChartMouseMoveListener extends ToolTipChartMouseMoveListener {
31 public BarChartMouseMoveListener(BarChart chart, Composite parent) {
31 public BarChartMouseMoveListener(BarChart chart, Control parent) {
3232 super(chart, parent);
3333 }
3434
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat, Inc. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1616 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.Messages;
1717 import org.eclipse.swt.events.MouseEvent;
1818 import org.eclipse.swt.graphics.Point;
19 import org.eclipse.swt.widgets.Composite;
20 import org.swtchart.Chart;
21 import org.swtchart.ISeries;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swtchart.Chart;
21 import org.eclipse.swtchart.ISeries;
2222
2323 /**
2424 * This is a specialized mouse listener for displaying the coordinates of a data point on
2929 public class ChartWithAxisMouseMoveListener extends ToolTipChartMouseMoveListener {
3030 private static final double DIST_TOLERANCE = 20.0;
3131
32 public ChartWithAxisMouseMoveListener(Chart chart, Composite hoverArea) {
32 public ChartWithAxisMouseMoveListener(Chart chart, Control hoverArea) {
3333 super(chart, hoverArea);
3434 }
3535
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat, Inc. and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313
1414 import java.text.MessageFormat;
1515
16 import org.eclipse.linuxtools.dataviewers.piechart.PieChart;
16 import org.eclipse.linuxtools.internal.dataviewers.piechart.PieChart;
1717 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.charts.Messages;
1818 import org.eclipse.swt.events.MouseEvent;
1919 import org.eclipse.swt.widgets.Composite;
20 import org.swtchart.ISeries;
20 import org.eclipse.swtchart.ISeries;
2121
2222 /**
2323 * @since 3.0
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1818 import org.eclipse.linuxtools.systemtap.graphing.ui.charts.listeners.AbstractChartMouseMoveListener;
1919 import org.eclipse.swt.SWT;
2020 import org.eclipse.swt.graphics.Point;
21 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Control;
2222 import org.eclipse.swt.widgets.Display;
2323 import org.eclipse.swt.widgets.Shell;
2424 import org.eclipse.swt.widgets.Text;
25 import org.swtchart.Chart;
25 import org.eclipse.swtchart.Chart;
2626
2727 /**
2828 * @since 3.0
3232 protected final Shell tipShell;
3333 protected final Text tipText;
3434
35 public ToolTipChartMouseMoveListener(Chart chart, Composite parent) {
35 public ToolTipChartMouseMoveListener(Chart chart, Control parent) {
3636 super(chart, parent);
3737 tipShell = new Shell(Display.getCurrent().getActiveShell(), SWT.TOOL | SWT.ON_TOP);
3838 tipText = new Text(tipShell, SWT.MULTI | SWT.BOLD);
+0
-70
systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/internal/systemtap/graphing/ui/handlers/SaveGraphImageHandler.java less more
0 /*******************************************************************************
1 * Copyright (c) 2014, 2019 Red Hat, Inc.
2 *
3 * This program and the accompanying materials are made
4 * available under the terms of the Eclipse Public License 2.0
5 * which is available at https://www.eclipse.org/legal/epl-2.0/
6 *
7 * SPDX-License-Identifier: EPL-2.0
8 *
9 * Contributors:
10 * IBM Corporation - initial API and Action implementation
11 * Red Hat - conversion to Handler implementation
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.systemtap.graphing.ui.handlers;
15
16 import org.eclipse.core.commands.AbstractHandler;
17 import org.eclipse.core.commands.ExecutionEvent;
18 import org.eclipse.linuxtools.dataviewers.charts.actions.SaveChartAction;
19 import org.eclipse.linuxtools.systemtap.graphing.ui.GraphDisplaySet;
20 import org.eclipse.linuxtools.systemtap.graphing.ui.charts.AbstractChartBuilder;
21 import org.eclipse.linuxtools.systemtap.graphing.ui.views.GraphSelectorEditor;
22 import org.eclipse.ui.IEditorPart;
23 import org.eclipse.ui.PlatformUI;
24 import org.swtchart.Chart;
25
26 /**
27 * This action is designed to allow for saving of the graph in the active window.
28 * It will let the user select the location to save the image, and then save it as
29 * a jpg image.
30 * @author Ryan Morse
31 * @since 3.0 Migrated from .ui.graphing package.
32 */
33 public class SaveGraphImageHandler extends AbstractHandler {
34
35 private SaveChartAction saveChartAction = new SaveChartAction();
36
37 /**
38 * This is the main method of the action. It handles getting the active graph,
39 * prompting the user for a location to save the image to, and then actually doing
40 * the save.
41 */
42 @Override
43 public Object execute(ExecutionEvent event) {
44 saveChartAction.setChart(getActiveChart());
45 saveChartAction.run();
46 return null;
47 }
48
49 private GraphSelectorEditor getActiveGraphEditor() {
50 IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().
51 getActivePage().getActiveEditor();
52 return editor instanceof GraphSelectorEditor ? (GraphSelectorEditor) editor : null;
53 }
54
55 private AbstractChartBuilder getActiveGraph() {
56 GraphSelectorEditor graphEditor = getActiveGraphEditor();
57 if (graphEditor == null) {
58 return null;
59 }
60 GraphDisplaySet gds = graphEditor.getActiveDisplaySet();
61 return gds == null ? null : gds.getActiveGraph();
62 }
63
64 private Chart getActiveChart() {
65 AbstractChartBuilder abs = getActiveGraph();
66 return abs == null ? null : abs.getChart();
67 }
68
69 }
00 /*******************************************************************************
1 * Copyright (c) 2006, 2018 IBM Corporation and others.
2 *
1 * Copyright (c) 2006, 2019 IBM Corporation and others.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1818 import java.util.List;
1919
2020 import org.eclipse.jface.preference.IPreferenceStore;
21 import org.eclipse.jface.resource.ResourceLocator;
2122 import org.eclipse.jface.util.IPropertyChangeListener;
2223 import org.eclipse.jface.wizard.WizardDialog;
2324 import org.eclipse.linuxtools.internal.systemtap.graphing.ui.GraphingUIPlugin;
5152 import org.eclipse.swt.widgets.Composite;
5253 import org.eclipse.ui.IWorkbench;
5354 import org.eclipse.ui.PlatformUI;
54 import org.eclipse.ui.plugin.AbstractUIPlugin;
55
56
5755
5856 /**
5957 * This class is used to contain all of the graphing components that can
138136
139137 //This is a tab/button for opening new graphs
140138 CTabItem newGraph = new CTabItem(folder, SWT.NONE);
141 newGraph.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(GraphingUIPlugin.PLUGIN_ID, "icons/actions/new_wiz.gif").createImage()); //$NON-NLS-1$
139 newGraph.setImage(ResourceLocator.imageDescriptorFromBundle(GraphingUIPlugin.PLUGIN_ID, "icons/actions/new_wiz.gif").get().createImage()); //$NON-NLS-1$
142140 newGraph.setToolTipText(Localization.getString("GraphDisplaySet.CreateGraph")); //$NON-NLS-1$
143141
144 //Tab containing the data table
142 // Tab containing the data table
145143 CTabItem item = new CTabItem(folder, SWT.NONE);
146144 item.setText(Localization.getString("GraphDisplaySet.DataView")); //$NON-NLS-1$
147145 Composite c = new Composite(folder, SWT.NONE);
00 /****************************************************************
11 * Copyright (c) 2006, 2018 IBM Corporation and others.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
3131 import org.eclipse.swt.layout.FillLayout;
3232 import org.eclipse.swt.widgets.Composite;
3333 import org.eclipse.swt.widgets.Display;
34 import org.swtchart.Chart;
35 import org.swtchart.ITitle;
34 import org.eclipse.swtchart.Chart;
35 import org.eclipse.swtchart.ITitle;
36 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
3637
3738 /**
3839 * A {@link Composite} that provides the common members and the framework to build one chart.
8384 /**
8485 * Chart instance.
8586 */
86 protected Chart chart = null;
87 protected InteractiveChart chart = null;
8788
8889 /**
8990 * Chart title.
178179 * Creates chart instance.
179180 */
180181 protected void createChart() {
181 this.chart = new Chart(this, getStyle());
182 this.chart = new InteractiveChart(this, getStyle());
182183 }
183184
184185 /**
186187 */
187188 private void buildPlot() {
188189 this.chart.setBackground(WHITE);
189 this.chart.setBackgroundInPlotArea(WHITE);
190 this.chart.getPlotArea().setBackground(WHITE);
190191 }
191192
192193 /**
226227 ITitle ctitle = chart.getTitle();
227228 ctitle.setForeground(BLACK);
228229 ctitle.setText(this.title);
230 chart.setProposedSaveAsFilename(this.title);
229231 }
230232
231233 /**
00 /*******************************************************************************
11 * Copyright (c) 2014, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1414 import org.eclipse.swt.events.MouseEvent;
1515 import org.eclipse.swt.events.MouseMoveListener;
1616 import org.eclipse.swt.events.MouseTrackAdapter;
17 import org.eclipse.swt.widgets.Composite;
18 import org.swtchart.Chart;
17 import org.eclipse.swt.widgets.Control;
18 import org.eclipse.swtchart.Chart;
1919
2020 /**
2121 * An abstract listener class for displaying data values of a chart as it
3535 * @param hoverArea The plot area of the chart in which this listener will react
3636 * to mouse movement.
3737 */
38 public AbstractChartMouseMoveListener(Chart chart, final Composite hoverArea) {
38 public AbstractChartMouseMoveListener(Chart chart, final Control hoverArea) {
3939 this.chart = chart;
4040 final MouseMoveListener thisListener = this;
4141 hoverArea.addMouseTrackListener(new MouseTrackAdapter() {
00 /*******************************************************************************
11 * Copyright (c) 2006, 2018 IBM Corporation.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
111111
112112 public void addCheckOption(final String title, final SelectionListener listener) {
113113 Display.getDefault().syncExec(() -> {
114 Button b = new Button(checkOptionComp, SWT.CHECK);
114 Button b = new Button(checkOptionComp, SWT.CHECK);
115115 b.setText(title);
116116 b.addSelectionListener(listener);
117117 checkOptions.add(b);
00 /*******************************************************************************
11 * Copyright (c) 2013, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2222 import org.eclipse.swt.layout.RowLayout;
2323 import org.eclipse.swt.widgets.Button;
2424 import org.eclipse.swt.widgets.Composite;
25 import org.swtchart.IAxis;
26 import org.swtchart.ISeries;
27 import org.swtchart.Range;
25 import org.eclipse.swtchart.IAxis;
26 import org.eclipse.swtchart.ISeries;
27 import org.eclipse.swtchart.Range;
2828
2929 /**
3030 * @since 3.0
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
1111 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1212 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1818 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1919 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2020 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
21 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2122 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2223 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2324 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7475 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7576 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7677 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
78 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7779 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7880 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7981 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
105107 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106108 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107109 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
110 org.eclipse.jdt.core.compiler.release=enabled
111 org.eclipse.jdt.core.compiler.source=11
1212 org.eclipse.linuxtools.profiling.launch;bundle-version="0.11.0",
1313 org.eclipse.core.filesystem;bundle-version="1.3.200",
1414 org.eclipse.core.resources;bundle-version="3.8.0"
15 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
15 Bundle-RequiredExecutionEnvironment: JavaSE-11
1616 Bundle-Localization: plugin
1717 Import-Package: org.eclipse.debug.core,
1818 org.eclipse.debug.core.model,
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.structures</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
88 Import-Package: org.junit,
99 org.junit.runner;version="4.10.0",
1010 org.junit.runners;version="4.10.0"
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Fragment-Host: org.eclipse.linuxtools.systemtap.structures
1313 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.structures.tests
1414
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.structures.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
111113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
112114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
113115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
114 org.eclipse.jdt.core.compiler.source=1.8
116 org.eclipse.jdt.core.compiler.release=enabled
117 org.eclipse.jdt.core.compiler.source=11
1616 com.jcraft.jsch;bundle-version="0.1.37",
1717 org.eclipse.debug.ui
1818 Bundle-ActivationPolicy: lazy
19 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
19 Bundle-RequiredExecutionEnvironment: JavaSE-11
2020 Import-Package: org.eclipse.core.filesystem,
2121 org.eclipse.core.resources,
2222 org.eclipse.debug.ui,
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.systemtap.ui.consolelog</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
66 Bundle-Localization: plugin
77 Bundle-ActivationPolicy: lazy
88 Require-Bundle: org.junit;bundle-version="4.0.0"
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Fragment-Host: org.eclipse.linuxtools.systemtap.ui.consolelog
1111 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.ui.consolelog.tests
1313 <parent>
1414 <artifactId>linuxtools-systemtap-parent</artifactId>
1515 <groupId>org.eclipse.linuxtools.systemtap</groupId>
16 <version>7.4.0</version>
16 <version>8.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.systemtap.ui.consolelog.tests</artifactId>
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.ui.doc</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2525 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2626 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2727 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2829 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2930 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3031 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7071 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7172 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7273 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
74 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7375 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7476 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7577 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
105107 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
106108 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
107109 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
108 org.eclipse.jdt.core.compiler.source=1.8
110 org.eclipse.jdt.core.compiler.release=enabled
111 org.eclipse.jdt.core.compiler.source=11
2525 Import-Package: com.jcraft.jsch;version="0.1.37",
2626 org.eclipse.cdt.core.model,
2727 org.eclipse.linuxtools.tools.launch.core.factory
28 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
28 Bundle-RequiredExecutionEnvironment: JavaSE-11
2929 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.ui.ide
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.ui.ide</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2006, 2018 IBM Corporation and others.
1 * Copyright (c) 2006, 2019 IBM Corporation and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
2222 import org.eclipse.core.runtime.Status;
2323 import org.eclipse.jface.preference.IPreferenceStore;
2424 import org.eclipse.jface.resource.ImageDescriptor;
25 import org.eclipse.jface.resource.ResourceLocator;
2526 import org.eclipse.linuxtools.internal.systemtap.ui.ide.structures.TapsetLibrary;
2627 import org.eclipse.linuxtools.systemtap.ui.consolelog.internal.ConsoleLogPlugin;
2728 import org.eclipse.linuxtools.systemtap.ui.consolelog.preferences.ConsoleLogPreferenceConstants;
2829 import org.eclipse.linuxtools.systemtap.ui.consolelog.structures.ScriptConsole;
2930 import org.eclipse.ui.IWorkbenchListener;
31 import org.eclipse.ui.PlatformUI;
3032 import org.eclipse.ui.plugin.AbstractUIPlugin;
3133 import org.osgi.framework.BundleContext;
3234
5557 super.start(context);
5658
5759 workbenchListener = new IDECloseMonitor();
58 plugin.getWorkbench().addWorkbenchListener(workbenchListener);
60 PlatformUI.getWorkbench().addWorkbenchListener(workbenchListener);
5961 TapsetLibrary.init();
6062 }
6163
6769 super.stop(context);
6870 TapsetLibrary.stop();
6971 ScriptConsole.stopAll();
70 plugin.getWorkbench().removeWorkbenchListener(workbenchListener);
72 PlatformUI.getWorkbench().removeWorkbenchListener(workbenchListener);
7173 plugin = null;
7274 }
7375
8688 * @return the image descriptor
8789 */
8890 public static ImageDescriptor getImageDescriptor(String path) {
89 return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
91 return ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, path).get();
9092 }
9193
9294 /**
3030 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
3131 import org.eclipse.debug.ui.ILaunchConfigurationTab;
3232 import org.eclipse.jface.dialogs.MessageDialog;
33 import org.eclipse.jface.resource.ResourceLocator;
3334 import org.eclipse.jface.wizard.WizardDialog;
3435 import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPlugin;
3536 import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet;
6162 import org.eclipse.swt.widgets.Text;
6263 import org.eclipse.ui.IWorkbench;
6364 import org.eclipse.ui.PlatformUI;
64 import org.eclipse.ui.plugin.AbstractUIPlugin;
6565
6666 public class SystemTapScriptGraphOptionsTab extends
6767 AbstractLaunchConfigurationTab {
13831383
13841384 @Override
13851385 public Image getImage() {
1386 return AbstractUIPlugin.imageDescriptorFromPlugin(IDEPlugin.PLUGIN_ID,
1387 "icons/graphing_tab.gif").createImage(); //$NON-NLS-1$
1386 return ResourceLocator.imageDescriptorFromBundle(IDEPlugin.PLUGIN_ID, "icons/graphing_tab.gif").get() //$NON-NLS-1$
1387 .createImage();
13881388 }
13891389
13901390 private void setGraphingEnabled(boolean enabled) {
2222 import org.eclipse.debug.core.ILaunchConfiguration;
2323 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
2424 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
25 import org.eclipse.jface.resource.ResourceLocator;
2526 import org.eclipse.jface.text.TextSelection;
2627 import org.eclipse.jface.viewers.ISelection;
2728 import org.eclipse.jface.viewers.TreeSelection;
4445 import org.eclipse.ui.IWorkbenchWindow;
4546 import org.eclipse.ui.PlatformUI;
4647 import org.eclipse.ui.ide.ResourceUtil;
47 import org.eclipse.ui.plugin.AbstractUIPlugin;
4848
4949 public class SystemTapScriptLaunchConfigurationTab extends
5050 AbstractLaunchConfigurationTab {
346346
347347 @Override
348348 public Image getImage() {
349 return AbstractUIPlugin.imageDescriptorFromPlugin(IDEPlugin.PLUGIN_ID,
350 "icons/main_tab.gif").createImage(); //$NON-NLS-1$
349 return ResourceLocator.imageDescriptorFromBundle(IDEPlugin.PLUGIN_ID, "icons/main_tab.gif").get().createImage(); //$NON-NLS-1$
351350 }
352351 }
2121 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
2222 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
2323 import org.eclipse.jface.preference.IPreferenceStore;
24 import org.eclipse.jface.resource.ResourceLocator;
2425 import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPlugin;
2526 import org.eclipse.linuxtools.internal.systemtap.ui.ide.preferences.IDEPreferenceConstants;
2627 import org.eclipse.linuxtools.systemtap.graphing.ui.widgets.ExceptionErrorDialog;
3839 import org.eclipse.swt.widgets.Label;
3940 import org.eclipse.swt.widgets.Text;
4041 import org.eclipse.ui.PlatformUI;
41 import org.eclipse.ui.plugin.AbstractUIPlugin;
4242
4343 public class SystemTapScriptOptionsTab extends AbstractLaunchConfigurationTab {
4444
265265
266266 @Override
267267 public Image getImage() {
268 return AbstractUIPlugin.imageDescriptorFromPlugin(IDEPlugin.PLUGIN_ID,
269 "icons/smileytap_small.gif").createImage(); //$NON-NLS-1$
268 return ResourceLocator.imageDescriptorFromBundle(IDEPlugin.PLUGIN_ID, "icons/smileytap_small.gif").get() //$NON-NLS-1$
269 .createImage();
270270 }
271271
272272 }
00 /*******************************************************************************
1 * Copyright (c) 2006, 2018 IBM Corporation and others.
1 * Copyright (c) 2006, 2019 IBM Corporation and others.
22 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
118118 @Override
119119 public void createPartControl(Composite parent) {
120120 PatternFilter filter = new PatternFilter();
121 FilteredTree filteredTree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, filter, true);
121 FilteredTree filteredTree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, filter, true,
122 true);
122123 viewer = filteredTree.getViewer();
123124 viewer.setContentProvider(new ViewContentProvider());
124125 viewer.setLabelProvider(new ViewLabelProvider());
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9698 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9799 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
98100 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
99 org.eclipse.jdt.core.compiler.source=1.8
101 org.eclipse.jdt.core.compiler.release=enabled
102 org.eclipse.jdt.core.compiler.source=11
77 Bundle-ActivationPolicy: lazy
88 Require-Bundle: org.eclipse.swtbot.go,
99 org.eclipse.linuxtools.systemtap.graphing.core
10 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
10 Bundle-RequiredExecutionEnvironment: JavaSE-11
1111 Fragment-Host: org.eclipse.linuxtools.systemtap.ui.ide
12 Import-Package: org.swtchart
12 Import-Package: org.eclipse.swtchart
1313 Automatic-Module-Name: org.eclipse.linuxtools.systemtap.ui.ide.tests
1414 <parent>
1515 <artifactId>linuxtools-systemtap-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.systemtap</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.systemtap.ui.ide.tests</artifactId>
7474 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
7575 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
7676 import org.eclipse.swtbot.swt.finder.widgets.TimeoutException;
77 import org.eclipse.swtchart.Chart;
78 import org.eclipse.swtchart.IAxis;
79 import org.eclipse.swtchart.ISeries;
80 import org.eclipse.swtchart.Range;
7781 import org.hamcrest.Matcher;
7882 import org.junit.After;
7983 import org.junit.AfterClass;
8185 import org.junit.Ignore;
8286 import org.junit.Test;
8387 import org.junit.runner.RunWith;
84 import org.swtchart.Chart;
85 import org.swtchart.IAxis;
86 import org.swtchart.ISeries;
87 import org.swtchart.Range;
8888
8989 @RunWith(SWTBotJunit4ClassRunner.class)
9090 @Ignore("fails with Oxygen")
13041304 });
13051305 bot.sleep(100);
13061306 UIThreadRunnable.syncExec(() -> {
1307 Point mousePoint = cb.getChart().getPlotArea()
1307 Point mousePoint = cb.getChart().getPlotArea().getControl()
13081308 .toDisplay(cb.getChart().getSeriesSet().getSeries()[0].getPixelCoordinates(dataPoint));
13091309 event.x = mousePoint.x;
13101310 event.y = mousePoint.y;
1515 <parent>
1616 <groupId>org.eclipse.linuxtools</groupId>
1717 <artifactId>linuxtools-parent</artifactId>
18 <version>7.4.0</version>
18 <version>8.1.0</version>
1919 </parent>
2020
2121 <groupId>org.eclipse.linuxtools.systemtap</groupId>
11 <feature
22 id="org.eclipse.linuxtools.vagrant.feature"
33 label="%featureName"
4 version="4.4.0.qualifier"
4 version="5.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1313 <parent>
1414 <groupId>org.eclipse.linuxtools</groupId>
1515 <artifactId>org.eclipse.linuxtools.vagrant</artifactId>
16 <version>4.4.0</version>
16 <version>5.1.0</version>
1717 </parent>
1818
1919 <artifactId>org.eclipse.linuxtools.vagrant.feature</artifactId>
2020 <packaging>eclipse-feature</packaging>
21 <version>4.4.0-SNAPSHOT</version>
21 <version>5.1.0-SNAPSHOT</version>
2222
2323 <name>Linux Tools Vagrant Tooling Feature</name>
2424
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
111113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
112114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
113115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
114 org.eclipse.jdt.core.compiler.source=1.8
116 org.eclipse.jdt.core.compiler.release=enabled
117 org.eclipse.jdt.core.compiler.source=11
115118 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
116119 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
117120 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
99 org.eclipse.equinox.registry,
1010 org.eclipse.equinox.security,
1111 org.eclipse.osgi
12 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
12 Bundle-RequiredExecutionEnvironment: JavaSE-11
1313 Bundle-ActivationPolicy: lazy
1414 Import-Package: org.eclipse.debug.core,
1515 org.eclipse.jface.preference
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.vagrant</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.vagrant.core</artifactId>
99 <version>2.0.0-SNAPSHOT</version>
1414 <parent>
1515 <artifactId>org.eclipse.linuxtools.vagrant</artifactId>
1616 <groupId>org.eclipse.linuxtools</groupId>
17 <version>4.4.0</version>
17 <version>5.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.vagrant.docs</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src/"/>
55 <classpathentry kind="output" path="target/classes"/>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2222 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2323 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2424 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
25 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2526 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2627 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
2728 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6566 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6768 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
69 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6870 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6971 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7072 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9799 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
98100 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
99101 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
100 org.eclipse.jdt.core.compiler.source=1.8
102 org.eclipse.jdt.core.compiler.release=enabled
103 org.eclipse.jdt.core.compiler.source=11
104 org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
105 org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
101106 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
107 org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
108 org.eclipse.jdt.core.formatter.align_with_spaces=false
102109 org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
103110 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
104111 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
109116 org.eclipse.jdt.core.formatter.alignment_for_assignment=0
110117 org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
111118 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
119 org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
112120 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
113 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
121 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
122 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
114123 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
124 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
115125 org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
116126 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
127 org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
117128 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
118129 org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
130 org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
119131 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
120132 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
133 org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
121134 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
122135 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
136 org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
123137 org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
124138 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
125139 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
126140 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
127141 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
128142 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
143 org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
144 org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
129145 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
130146 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
147 org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
131148 org.eclipse.jdt.core.formatter.blank_lines_after_package=1
149 org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
132150 org.eclipse.jdt.core.formatter.blank_lines_before_field=0
133151 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
134152 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
137155 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
138156 org.eclipse.jdt.core.formatter.blank_lines_before_package=0
139157 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
158 org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
140159 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
141160 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
142161 org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
150169 org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
151170 org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
152171 org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
172 org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
173 org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
153174 org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
154175 org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
176 org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
155177 org.eclipse.jdt.core.formatter.comment.format_block_comments=true
156178 org.eclipse.jdt.core.formatter.comment.format_header=false
157179 org.eclipse.jdt.core.formatter.comment.format_html=true
158180 org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
159181 org.eclipse.jdt.core.formatter.comment.format_line_comments=true
160182 org.eclipse.jdt.core.formatter.comment.format_source_code=true
161 org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
162 org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
183 org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
184 org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
185 org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
163186 org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
164 org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
187 org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
165188 org.eclipse.jdt.core.formatter.comment.line_length=80
166189 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
167190 org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
172195 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
173196 org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
174197 org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
175 org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
198 org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
176199 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
177200 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
178201 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
184207 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
185208 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
186209 org.eclipse.jdt.core.formatter.indentation.size=4
210 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
187211 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
188212 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
189213 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
208232 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
209233 org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
210234 org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
235 org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
236 org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
211237 org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
212238 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
213239 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
214240 org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
215 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
241 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
216242 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
217243 org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
218244 org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
238264 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
239265 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
240266 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
267 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
241268 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
242269 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
243270 org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
276303 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
277304 org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
278305 org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
306 org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
307 org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
279308 org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
280309 org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
281310 org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
322351 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
323352 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
324353 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
354 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
325355 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
326356 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
327357 org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
381411 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
382412 org.eclipse.jdt.core.formatter.join_lines_in_comments=true
383413 org.eclipse.jdt.core.formatter.join_wrapped_lines=true
414 org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
415 org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
416 org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
384417 org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
385418 org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
419 org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
420 org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
421 org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
386422 org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
423 org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
424 org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
425 org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
426 org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
427 org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
428 org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
429 org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
387430 org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
388 org.eclipse.jdt.core.formatter.lineSplit=80
431 org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
432 org.eclipse.jdt.core.formatter.lineSplit=120
389433 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
390434 org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
435 org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
436 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
391437 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
438 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
439 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
440 org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
392441 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
442 org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
443 org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
444 org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
445 org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
446 org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
447 org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
448 org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
449 org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
450 org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
451 org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
393452 org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
394453 org.eclipse.jdt.core.formatter.tabulation.char=tab
395454 org.eclipse.jdt.core.formatter.tabulation.size=4
396455 org.eclipse.jdt.core.formatter.use_on_off_tags=false
397456 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
398457 org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
458 org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
399459 org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
460 org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
400461 org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
401462 org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
402463 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
464 org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
465 org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
403466 org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
404467 org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
468 org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
00 eclipse.preferences.version=1
11 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
22 formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
3 formatter_settings_version=12
3 formatter_settings_version=17
44 sp_cleanup.add_default_serial_version_id=true
55 sp_cleanup.add_generated_serial_version_id=false
66 sp_cleanup.add_missing_annotations=true
2929 sp_cleanup.never_use_parentheses_in_expressions=true
3030 sp_cleanup.on_save_use_additional_actions=true
3131 sp_cleanup.organize_imports=true
32 sp_cleanup.push_down_negation=false
3233 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3334 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3435 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3536 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3637 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3738 sp_cleanup.remove_private_constructors=true
39 sp_cleanup.remove_redundant_modifiers=false
40 sp_cleanup.remove_redundant_semicolons=false
3841 sp_cleanup.remove_redundant_type_arguments=true
3942 sp_cleanup.remove_trailing_whitespaces=false
4043 sp_cleanup.remove_trailing_whitespaces_all=true
4144 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
45 sp_cleanup.remove_unnecessary_array_creation=false
4246 sp_cleanup.remove_unnecessary_casts=true
4347 sp_cleanup.remove_unnecessary_nls_tags=false
4448 sp_cleanup.remove_unused_imports=false
5054 sp_cleanup.sort_members=false
5155 sp_cleanup.sort_members_all=false
5256 sp_cleanup.use_anonymous_class_creation=false
57 sp_cleanup.use_autoboxing=false
5358 sp_cleanup.use_blocks=false
5459 sp_cleanup.use_blocks_only_for_return_and_throw=false
5560 sp_cleanup.use_lambda=true
5964 sp_cleanup.use_this_for_non_static_method_access=false
6065 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
6166 sp_cleanup.use_type_arguments=false
67 sp_cleanup.use_unboxing=false
2525 org.eclipse.tm.terminal.connector.ssh;bundle-version="4.0.0",
2626 org.eclipse.tm.terminal.view.core;bundle-version="4.0.0",
2727 org.eclipse.tm.terminal.view.ui;bundle-version="4.0.0"
28 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
28 Bundle-RequiredExecutionEnvironment: JavaSE-11
2929 Bundle-ActivationPolicy: lazy
3030 Bundle-Localization: plugin
3131 Export-Package: org.eclipse.linuxtools.internal.vagrant.ui;x-internal:=true,
33 <parent>
44 <groupId>org.eclipse.linuxtools</groupId>
55 <artifactId>org.eclipse.linuxtools.vagrant</artifactId>
6 <version>4.4.0</version>
6 <version>5.1.0</version>
77 </parent>
88 <artifactId>org.eclipse.linuxtools.vagrant.ui</artifactId>
99 <version>2.0.0-SNAPSHOT</version>
2424 import org.eclipse.swt.widgets.Display;
2525 import org.eclipse.ui.IWorkbenchPage;
2626 import org.eclipse.ui.PartInitException;
27 import org.eclipse.ui.PlatformUI;
2728 import org.eclipse.ui.ide.IDE;
2829
2930 public class OpenVagrantfileCommandHandler extends BaseVMCommandHandler {
4546 @Override
4647 void executeInJob(IVagrantVM vm, IProgressMonitor monitor) {
4748 Display.getDefault().asyncExec(() -> {
48 IWorkbenchPage activePage = Activator.getDefault().getWorkbench()
49 .getActiveWorkbenchWindow().getActivePage();
50 IPath vgFilePath = new Path(vm.directory().getAbsolutePath())
51 .append("Vagrantfile"); //$NON-NLS-1$
49 IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
50 IPath vgFilePath = new Path(vm.directory().getAbsolutePath()).append("Vagrantfile"); //$NON-NLS-1$
5251 IFileStore file = EFS.getLocalFileSystem().getStore(vgFilePath);
5352 try {
5453 IDE.openEditorOnFileStore(activePage, file);
22 <modelVersion>4.0.0</modelVersion>
33 <groupId>org.eclipse.linuxtools</groupId>
44 <artifactId>org.eclipse.linuxtools.vagrant</artifactId>
5 <version>4.4.0</version>
5 <version>5.1.0</version>
66 <packaging>pom</packaging>
77
88 <parent>
99 <groupId>org.eclipse.linuxtools</groupId>
1010 <artifactId>linuxtools-parent</artifactId>
11 <version>7.4.0</version>
11 <version>8.1.0</version>
1212 </parent>
1313
1414 <properties>
7171 <dependency>
7272 <groupId>org.eclipse.tycho.extras</groupId>
7373 <artifactId>tycho-sourceref-jgit</artifactId>
74 <version>${tycho-extras-version}</version>
74 <version>${tycho-version}</version>
7575 </dependency>
7676 </dependencies>
7777 </plugin>
11 <feature
22 id="org.eclipse.linuxtools.valgrind"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Valgrind Tools Integration Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
1212 sp_cleanup.always_use_parentheses_in_expressions=false
1313 sp_cleanup.always_use_this_for_non_static_field_access=false
1414 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_to_enhanced_for_loop=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
1617 sp_cleanup.correct_indentation=false
17 sp_cleanup.format_source_code=false
18 sp_cleanup.format_source_code_changes_only=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=true
20 sp_cleanup.insert_inferred_type_arguments=false
1921 sp_cleanup.make_local_variable_final=false
2022 sp_cleanup.make_parameters_final=false
2123 sp_cleanup.make_private_fields_final=true
2527 sp_cleanup.never_use_parentheses_in_expressions=true
2628 sp_cleanup.on_save_use_additional_actions=true
2729 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
2831 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
2932 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3033 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
3134 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
3235 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
3336 sp_cleanup.remove_private_constructors=true
34 sp_cleanup.remove_trailing_whitespaces=false
37 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
39 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=true
3541 sp_cleanup.remove_trailing_whitespaces_all=true
3642 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
3744 sp_cleanup.remove_unnecessary_casts=true
3845 sp_cleanup.remove_unnecessary_nls_tags=false
39 sp_cleanup.remove_unused_imports=false
46 sp_cleanup.remove_unused_imports=true
4047 sp_cleanup.remove_unused_local_variables=false
4148 sp_cleanup.remove_unused_private_fields=true
4249 sp_cleanup.remove_unused_private_members=false
4451 sp_cleanup.remove_unused_private_types=true
4552 sp_cleanup.sort_members=false
4653 sp_cleanup.sort_members_all=false
54 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
4756 sp_cleanup.use_blocks=false
4857 sp_cleanup.use_blocks_only_for_return_and_throw=false
58 sp_cleanup.use_lambda=true
4959 sp_cleanup.use_parentheses_in_expressions=false
5060 sp_cleanup.use_this_for_non_static_field_access=false
5161 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
5262 sp_cleanup.use_this_for_non_static_method_access=false
5363 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
55 Bundle-Vendor: %Bundle-Vendor.0
66 Require-Bundle: org.eclipse.ui,
77 org.eclipse.core.runtime
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Bundle-ActivationPolicy: lazy
1010 Bundle-Localization: plugin
1111 Import-Package: org.eclipse.cdt.core.model,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.cachegrind</artifactId>
00 /*******************************************************************************
1 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
1 * Copyright (c) 2009, 2019 Red Hat, Inc.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1717 import org.eclipse.core.runtime.IAdaptable;
1818 import org.eclipse.debug.ui.DebugUITools;
1919 import org.eclipse.debug.ui.IDebugUIConstants;
20 import org.eclipse.jface.resource.ResourceLocator;
2021 import org.eclipse.jface.viewers.CellLabelProvider;
2122 import org.eclipse.jface.viewers.ViewerCell;
2223 import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
2829 import org.eclipse.swt.graphics.Image;
2930 import org.eclipse.ui.ISharedImages;
3031 import org.eclipse.ui.PlatformUI;
31 import org.eclipse.ui.plugin.AbstractUIPlugin;
3232
3333 public class CachegrindLabelProvider extends CellLabelProvider {
3434
3838
3939 protected DecimalFormat df = new DecimalFormat("#,##0"); //$NON-NLS-1$
4040
41 private static final Image FUNC_IMG = AbstractUIPlugin.imageDescriptorFromPlugin(CachegrindPlugin.PLUGIN_ID, "icons/function_obj.gif").createImage(); //$NON-NLS-1$
41 private static final Image FUNC_IMG = ResourceLocator.imageDescriptorFromBundle(CachegrindPlugin.PLUGIN_ID, "icons/function_obj.gif").get().createImage(); //$NON-NLS-1$
4242
4343 @Override
4444 public void update(ViewerCell cell) {
4545 ICachegrindElement element = ((ICachegrindElement) cell.getElement());
4646 int index = cell.getColumnIndex();
4747
48 if (index == 0) {
48 if (index == 0) {
4949 if (element instanceof CachegrindFile) {
5050 // Try to use the CElementLabelProvider
5151 IAdaptable model = ((CachegrindFile) element).getModel();
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
44 Bundle-Version: 1.0.0.qualifier
55 Bundle-Vendor: %Bundle-Vendor.0
66 Require-Bundle: org.junit;bundle-version="4.7.0"
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
88 Bundle-ActivationPolicy: lazy
99 Bundle-Localization: plugin
1010 Fragment-Host: org.eclipse.linuxtools.valgrind.cachegrind
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.cachegrind.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1212 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
13 org.eclipse.jdt.core.compiler.compliance=1.8
13 org.eclipse.jdt.core.compiler.compliance=11
1414 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1515 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1616 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2525 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2626 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2727 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2829 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2930 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3031 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8182 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8283 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
85 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8486 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8587 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8688 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=enabled
113115 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
114116 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
115117 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
116 org.eclipse.jdt.core.compiler.source=1.8
118 org.eclipse.jdt.core.compiler.release=enabled
119 org.eclipse.jdt.core.compiler.source=11
66 Require-Bundle: org.eclipse.core.runtime,
77 org.eclipse.linuxtools.tools.launch.core,
88 org.eclipse.debug.core
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Bundle-ActivationPolicy: lazy
1111 Export-Package: org.eclipse.linuxtools.internal.valgrind.core;
1212 x-friends:="org.eclipse.linuxtools.valgrind.launch,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.core</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src">
55 <attributes>
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
88 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1010 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
11 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.compliance=11
1212 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1313 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1414 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2323 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2424 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2525 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
26 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2627 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2728 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2829 org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
7980 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8081 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8182 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
83 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8284 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8385 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8486 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
111113 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
112114 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
113115 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
114 org.eclipse.jdt.core.compiler.source=1.8
116 org.eclipse.jdt.core.compiler.release=enabled
117 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.valgrind.core.tests;singleton:=true
44 Bundle-Version: 1.0.0.qualifier
55 Fragment-Host: org.eclipse.linuxtools.valgrind.core;bundle-version="1.0.0"
6 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Bundle-RequiredExecutionEnvironment: JavaSE-11
77 Require-Bundle: org.eclipse.linuxtools.docker.tests.hamcrest-wrap;bundle-version="1.2.0",
88 org.junit;bundle-version="4.12.0",
99 org.mockito
1717 <parent>
1818 <artifactId>linuxtools-valgrind-parent</artifactId>
1919 <groupId>org.eclipse.linuxtools.valgrind</groupId>
20 <version>7.4.0</version>
20 <version>8.1.0</version>
2121 </parent>
2222
2323 <artifactId>org.eclipse.linuxtools.valgrind.core.tests</artifactId>
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.doc</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
44 Bundle-Version: 1.1.0.qualifier
55 Require-Bundle: org.eclipse.ui,
66 org.eclipse.core.runtime
7 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
88 Bundle-ActivationPolicy: lazy
99 Bundle-Localization: plugin
1010 Import-Package: org.eclipse.cdt.core.model,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.helgrind</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Vendor: %Bundle-Vendor.0
66 Require-Bundle: org.junit;bundle-version="4.7.0",
77 org.eclipse.ui.ide;bundle-version="3.8.0"
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Bundle-ActivationPolicy: lazy
1010 Bundle-Localization: plugin
1111 Fragment-Host: org.eclipse.linuxtools.valgrind.helgrind
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.helgrind.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
1414 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1515 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
7778 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
7879 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7980 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
81 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8082 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8183 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8284 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
109111 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
110112 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
111113 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
112 org.eclipse.jdt.core.compiler.source=1.8
114 org.eclipse.jdt.core.compiler.release=enabled
115 org.eclipse.jdt.core.compiler.source=11
66 Bundle-Vendor: %Bundle-Vendor.0
77 Require-Bundle: org.eclipse.ui,
88 org.eclipse.core.runtime
9 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 Bundle-RequiredExecutionEnvironment: JavaSE-11
1010 Bundle-ActivationPolicy: lazy
1111 Import-Package: org.eclipse.cdt.core.model,
1212 org.eclipse.cdt.debug.core,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.launch</artifactId>
3737 import org.eclipse.osgi.util.NLS;
3838 import org.eclipse.swt.widgets.Shell;
3939 import org.eclipse.ui.IWorkbenchWindow;
40 import org.eclipse.ui.PlatformUI;
4041 import org.eclipse.ui.plugin.AbstractUIPlugin;
4142 import org.osgi.framework.BundleContext;
4243 import org.osgi.framework.Version;
228229 }
229230
230231 public static Shell getActiveWorkbenchShell() {
231 IWorkbenchWindow window = getDefault().getWorkbench().getActiveWorkbenchWindow();
232 IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
232233 if (window != null) {
233234 return window.getShell();
234235 }
239240 if (getActiveWorkbenchShell() != null) {
240241 return getActiveWorkbenchShell();
241242 }
242 IWorkbenchWindow[] windows = getDefault().getWorkbench().getWorkbenchWindows();
243 IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
243244 return windows[0].getShell();
244245 }
245246
2727 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
2828 import org.eclipse.jface.dialogs.IDialogConstants;
2929 import org.eclipse.jface.layout.GridDataFactory;
30 import org.eclipse.jface.resource.ResourceLocator;
3031 import org.eclipse.linuxtools.profiling.launch.ConfigUtils;
3132 import org.eclipse.linuxtools.valgrind.launch.IValgrindToolPage;
3233 import org.eclipse.osgi.util.NLS;
5354 import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
5455 import org.eclipse.ui.model.WorkbenchContentProvider;
5556 import org.eclipse.ui.model.WorkbenchLabelProvider;
56 import org.eclipse.ui.plugin.AbstractUIPlugin;
5757 import org.eclipse.ui.views.navigator.ResourceComparator;
5858 import org.osgi.framework.Version;
5959
486486 }
487487
488488 @Override
489 public Image getImage() {
490 return AbstractUIPlugin.imageDescriptorFromPlugin(ValgrindLaunchPlugin.PLUGIN_ID, "icons/valgrind-icon.png").createImage(); //$NON-NLS-1$
491 }
489 public Image getImage() {
490 return ResourceLocator.imageDescriptorFromBundle(ValgrindLaunchPlugin.PLUGIN_ID, "icons/valgrind-icon.png") //$NON-NLS-1$
491 .get().createImage();
492 }
492493
493494 @Override
494495 public void initializeFrom(ILaunchConfiguration configuration) {
584585 }
585586
586587 private boolean isGeneralValid() {
587 String[] suppFiles = suppFileList.getItems();
588 boolean result = true;
589 for (int i = 0; i < suppFiles.length && result; i++) {
590 try {
591 IPath suppfile = getPlugin().parseWSPath(suppFiles[i]);
592 if (!suppfile.toFile().exists()) {
593 setErrorMessage(NLS.bind(Messages.getString("ValgrindOptionsTab.suppressions_file_doesnt_exist"), suppFiles[i])); //$NON-NLS-1$
594 result = false;
595 }
596 } catch (CoreException e) {
597 // should only occur if there's a cycle in variable substitution
598 e.printStackTrace();
599 }
600 }
588 boolean result = true;
589 if (suppFileList != null) {
590 String[] suppFiles = suppFileList.getItems();
591 for (int i = 0; i < suppFiles.length && result; i++) {
592 try {
593 IPath suppfile = getPlugin().parseWSPath(suppFiles[i]);
594 if (!suppfile.toFile().exists()) {
595 setErrorMessage(NLS.bind(Messages.getString("ValgrindOptionsTab.suppressions_file_doesnt_exist"), suppFiles[i])); //$NON-NLS-1$
596 result = false;
597 }
598 } catch (CoreException e) {
599 // should only occur if there's a cycle in variable substitution
600 e.printStackTrace();
601 }
602 }
603 }
601604
602605 return result;
603606 }
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 sp_cleanup.add_default_serial_version_id=true
3 sp_cleanup.add_generated_serial_version_id=false
4 sp_cleanup.add_missing_annotations=true
5 sp_cleanup.add_missing_deprecated_annotations=true
6 sp_cleanup.add_missing_methods=false
7 sp_cleanup.add_missing_nls_tags=false
8 sp_cleanup.add_missing_override_annotations=true
9 sp_cleanup.add_missing_override_annotations_interface_methods=true
10 sp_cleanup.add_serial_version_id=false
11 sp_cleanup.always_use_blocks=true
12 sp_cleanup.always_use_parentheses_in_expressions=false
13 sp_cleanup.always_use_this_for_non_static_field_access=false
14 sp_cleanup.always_use_this_for_non_static_method_access=false
15 sp_cleanup.convert_functional_interfaces=true
16 sp_cleanup.convert_to_enhanced_for_loop=true
17 sp_cleanup.correct_indentation=false
18 sp_cleanup.format_source_code=true
19 sp_cleanup.format_source_code_changes_only=true
20 sp_cleanup.insert_inferred_type_arguments=false
21 sp_cleanup.make_local_variable_final=true
22 sp_cleanup.make_parameters_final=false
23 sp_cleanup.make_private_fields_final=true
24 sp_cleanup.make_type_abstract_if_missing_method=false
25 sp_cleanup.make_variable_declarations_final=false
26 sp_cleanup.never_use_blocks=false
27 sp_cleanup.never_use_parentheses_in_expressions=true
28 sp_cleanup.on_save_use_additional_actions=true
29 sp_cleanup.organize_imports=true
30 sp_cleanup.push_down_negation=false
31 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
32 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
33 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
34 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
35 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
36 sp_cleanup.remove_private_constructors=true
37 sp_cleanup.remove_redundant_modifiers=true
38 sp_cleanup.remove_redundant_semicolons=true
39 sp_cleanup.remove_redundant_type_arguments=true
40 sp_cleanup.remove_trailing_whitespaces=true
41 sp_cleanup.remove_trailing_whitespaces_all=true
42 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
43 sp_cleanup.remove_unnecessary_array_creation=true
44 sp_cleanup.remove_unnecessary_casts=true
45 sp_cleanup.remove_unnecessary_nls_tags=false
46 sp_cleanup.remove_unused_imports=false
47 sp_cleanup.remove_unused_local_variables=false
48 sp_cleanup.remove_unused_private_fields=true
49 sp_cleanup.remove_unused_private_members=false
50 sp_cleanup.remove_unused_private_methods=true
51 sp_cleanup.remove_unused_private_types=true
52 sp_cleanup.sort_members=false
53 sp_cleanup.sort_members_all=false
54 sp_cleanup.use_anonymous_class_creation=false
55 sp_cleanup.use_autoboxing=false
56 sp_cleanup.use_blocks=false
57 sp_cleanup.use_blocks_only_for_return_and_throw=false
58 sp_cleanup.use_lambda=true
59 sp_cleanup.use_parentheses_in_expressions=false
60 sp_cleanup.use_this_for_non_static_field_access=false
61 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
62 sp_cleanup.use_this_for_non_static_method_access=false
63 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
64 sp_cleanup.use_unboxing=false
66 Bundle-Vendor: %Bundle-Vendor.0
77 Require-Bundle: org.eclipse.ui,
88 org.eclipse.core.runtime,
9 org.eclipse.linuxtools.dataviewers.charts
10 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 org.eclipse.swtchart.extensions
10 Bundle-RequiredExecutionEnvironment: JavaSE-11
1111 Bundle-ActivationPolicy: lazy
1212 Bundle-Localization: plugin
1313 Import-Package: org.eclipse.cdt.core.model,
2727 org.eclipse.linuxtools.valgrind.launch,
2828 org.eclipse.linuxtools.valgrind.ui,
2929 org.eclipse.ui,
30 org.swtchart
30 org.eclipse.swtchart
3131 Automatic-Module-Name: org.eclipse.linuxtools.valgrind.massif
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.massif</artifactId>
00 /*******************************************************************************
11 * Copyright (c) 2009, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1313
1414 import org.eclipse.debug.ui.DebugUITools;
1515 import org.eclipse.debug.ui.IDebugUIConstants;
16 import org.eclipse.jface.resource.ResourceLocator;
1617 import org.eclipse.jface.viewers.LabelProvider;
1718 import org.eclipse.swt.graphics.Image;
18 import org.eclipse.ui.plugin.AbstractUIPlugin;
1919
2020 public class MassifTreeLabelProvider extends LabelProvider {
2121
2828 public Image getImage(Object element) {
2929 Image img = null;
3030 if (((MassifHeapTreeNode) element).getParent() == null) { // only show for root elements
31 img = AbstractUIPlugin.imageDescriptorFromPlugin(MassifPlugin.PLUGIN_ID, "icons/memory_view.gif").createImage(); //$NON-NLS-1$
31 img = ResourceLocator.imageDescriptorFromBundle(MassifPlugin.PLUGIN_ID, "icons/memory_view.gif").get() //$NON-NLS-1$
32 .createImage();
3233 } else { // stack frame
3334 img = DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_STACKFRAME);
3435 }
00 /*******************************************************************************
11 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1818 import org.eclipse.jface.action.Action;
1919 import org.eclipse.jface.action.IAction;
2020 import org.eclipse.jface.resource.JFaceResources;
21 import org.eclipse.jface.resource.ResourceLocator;
2122 import org.eclipse.jface.viewers.AbstractTreeViewer;
2223 import org.eclipse.jface.viewers.ArrayContentProvider;
2324 import org.eclipse.jface.viewers.IFontProvider;
2930 import org.eclipse.jface.viewers.TableViewerColumn;
3031 import org.eclipse.jface.viewers.Viewer;
3132 import org.eclipse.jface.viewers.ViewerComparator;
32 import org.eclipse.linuxtools.dataviewers.charts.actions.SaveChartAction;
3333 import org.eclipse.linuxtools.internal.valgrind.massif.MassifSnapshot.SnapshotType;
3434 import org.eclipse.linuxtools.internal.valgrind.massif.charting.ChartEditorInput;
3535 import org.eclipse.linuxtools.internal.valgrind.massif.charting.HeapChart;
5151 import org.eclipse.ui.PartInitException;
5252 import org.eclipse.ui.PlatformUI;
5353 import org.eclipse.ui.part.ViewPart;
54 import org.eclipse.ui.plugin.AbstractUIPlugin;
5554
5655 public class MassifViewPart extends ViewPart implements IValgrindToolView {
5756
7372 + ".chartAction"; //$NON-NLS-1$
7473 public static final String PID_ACTION = MassifPlugin.PLUGIN_ID
7574 + ".pidAction"; //$NON-NLS-1$
76 public static final String SAVE_CHART_ACTION = MassifPlugin.PLUGIN_ID
77 + ".saveChartAction"; //$NON-NLS-1$
7875
7976 private MassifOutput output;
8077 private Integer pid;
9087
9188 private Action treeAction;
9289 private MassifPidMenuAction pidAction;
93 private SaveChartAction saveChartAction;
9490
9591 private List<ChartEditorInput> chartInputs;
9692
113109 String[] columnTitles = { TITLE_NUMBER, TITLE_TIME, TITLE_TOTAL,
114110 TITLE_USEFUL, TITLE_EXTRA, TITLE_STACKS };
115111
116 for (int i = 0; i < columnTitles.length; i++) {
112 for (String columnTitle : columnTitles) {
117113 TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
118 column.getColumn().setText(columnTitles[i]);
114 column.getColumn().setText(columnTitle);
119115 column.getColumn().setWidth(COLUMN_SIZE);
120116 column.getColumn().setResizable(true);
121117 column.getColumn().addSelectionListener(getHeaderListener());
228224 }
229225 };
230226 chartAction.setId(CHART_ACTION);
231 chartAction.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
232 MassifPlugin.PLUGIN_ID, "icons/linecharticon.gif")); //$NON-NLS-1$
227 chartAction.setImageDescriptor(
228 ResourceLocator.imageDescriptorFromBundle(MassifPlugin.PLUGIN_ID, "icons/linecharticon.gif").get()); //$NON-NLS-1$
233229 chartAction.setToolTipText(Messages
234230 .getString("MassifViewPart.Display_Heap_Allocation")); //$NON-NLS-1$
235
236 saveChartAction = new SaveChartAction();
237 saveChartAction.setId(SAVE_CHART_ACTION);
238231
239232 treeAction = new Action(
240233 Messages.getString("MassifViewPart.Show_Heap_Tree"), IAction.AS_CHECK_BOX) { //$NON-NLS-1$
250243 }
251244 };
252245 treeAction.setId(TREE_ACTION);
253 treeAction.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
254 MassifPlugin.PLUGIN_ID, "icons/call_hierarchy.gif")); //$NON-NLS-1$
246 treeAction.setImageDescriptor(
247 ResourceLocator.imageDescriptorFromBundle(MassifPlugin.PLUGIN_ID, "icons/call_hierarchy.gif").get()); //$NON-NLS-1$
255248 treeAction.setToolTipText(Messages
256249 .getString("MassifViewPart.Show_Heap_Tree")); //$NON-NLS-1$
257250
258 return new IAction[] { pidAction, chartAction, saveChartAction, treeAction };
251 return new IAction[] { pidAction, chartAction, treeAction };
259252 }
260253
261254 private void createChart(MassifSnapshot[] snapshots) {
280273 e.printStackTrace();
281274 }
282275 });
283 saveChartAction.setChart(chartInput.getChart().getChartControl(), chartInput.getName());
284276 }
285277
286278 private String getInputName(String description) {
303295 @Override
304296 public void refreshView() {
305297 if (output != null && pid != null) {
306 saveChartAction.setChart(null);
307298 MassifSnapshot[] snapshots = output.getSnapshots(pid);
308299 pidAction.setPids(output.getPids());
309300 if (snapshots != null) {
398389 break;
399390 case PEAK:
400391 case DETAILED:
401 image = AbstractUIPlugin
402 .imageDescriptorFromPlugin(MassifPlugin.PLUGIN_ID,
403 "icons/call_hierarchy.gif").createImage(); //$NON-NLS-1$
392 image = ResourceLocator
393 .imageDescriptorFromBundle(MassifPlugin.PLUGIN_ID, "icons/call_hierarchy.gif").get() //$NON-NLS-1$
394 .createImage();
404395 }
405396 }
406397 return image;
458449
459450 private ChartEditorInput getChartInput(Integer pid) {
460451 ChartEditorInput result = null;
461 for (int i = 0; i < chartInputs.size(); i++) {
462 ChartEditorInput input = chartInputs.get(i);
452 for (ChartEditorInput input : chartInputs) {
463453 if (input.getPid().equals(pid)) {
464454 result = input;
465455 }
00 /*******************************************************************************
11 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
2828 import org.eclipse.swt.graphics.Point;
2929 import org.eclipse.swt.widgets.Composite;
3030 import org.eclipse.swt.widgets.Display;
31 import org.eclipse.swtchart.Chart;
32 import org.eclipse.swtchart.IAxis;
33 import org.eclipse.swtchart.IAxisSet;
34 import org.eclipse.swtchart.ILineSeries;
35 import org.eclipse.swtchart.ILineSeries.PlotSymbolType;
36 import org.eclipse.swtchart.ISeries.SeriesType;
37 import org.eclipse.swtchart.ITitle;
38 import org.eclipse.swtchart.LineStyle;
39 import org.eclipse.swtchart.Range;
40 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
3141 import org.eclipse.ui.IEditorInput;
3242 import org.eclipse.ui.IEditorSite;
3343 import org.eclipse.ui.IWorkbenchPage;
3444 import org.eclipse.ui.PartInitException;
3545 import org.eclipse.ui.PlatformUI;
3646 import org.eclipse.ui.part.EditorPart;
37 import org.swtchart.Chart;
38 import org.swtchart.IAxis;
39 import org.swtchart.IAxisSet;
40 import org.swtchart.ILineSeries;
41 import org.swtchart.ILineSeries.PlotSymbolType;
42 import org.swtchart.ISeries.SeriesType;
43 import org.swtchart.ITitle;
44 import org.swtchart.LineStyle;
45 import org.swtchart.Range;
4647
4748 public class ChartEditor extends EditorPart {
48 private Chart control;
49 private InteractiveChart control;
4950
5051 @Override
5152 public void doSave(IProgressMonitor monitor) {
8283 public void createPartControl(Composite parent) {
8384 final ChartEditorInput input = (ChartEditorInput) getEditorInput();
8485 final HeapChart heapChart = input.getChart();
85 control = new Chart(parent, SWT.FILL);
86 control = new InteractiveChart(parent, SWT.FILL);
8687 heapChart.setChartControl(control);
8788
8889 final Color LIGHTYELLOW = new Color(Display.getDefault(), 255, 255, 225);
9596 final int TICK_GAP = 40;
9697
9798 control.setBackground(WHITE);
98 control.setBackgroundInPlotArea(LIGHTYELLOW);
99 control.getPlotArea().setBackground(LIGHTYELLOW);
100 control.setProposedSaveAsFilename(heapChart.title.substring(0, heapChart.title.indexOf(' ')));
99101
100102 FontData fd = JFaceResources.getDialogFont().getFontData()[0];
101103 fd.setStyle(SWT.BOLD);
177179 axisSet.getYAxis(0).setRange(new Range(yRange.lower, yRange.upper + yExtra));
178180
179181 // listeners
180 control.getPlotArea().addMouseListener(new MouseAdapter() {
182 control.getPlotArea().getControl().addMouseListener(new MouseAdapter() {
181183
182184 @Override
183185 public void mouseDown(MouseEvent e) {
00 /*******************************************************************************
1 * Copyright (c) 2008, 2018 Red Hat, Inc.
2 *
1 * Copyright (c) 2008, 2019 Red Hat, Inc.
2 *
33 * This program and the accompanying materials are made
44 * available under the terms of the Eclipse Public License 2.0
55 * which is available at https://www.eclipse.org/legal/epl-2.0/
1212 package org.eclipse.linuxtools.internal.valgrind.massif.charting;
1313
1414 import org.eclipse.jface.resource.ImageDescriptor;
15 import org.eclipse.jface.resource.ResourceLocator;
1516 import org.eclipse.linuxtools.internal.valgrind.massif.MassifPlugin;
1617 import org.eclipse.linuxtools.internal.valgrind.massif.MassifViewPart;
1718 import org.eclipse.osgi.util.NLS;
1819 import org.eclipse.ui.IEditorInput;
1920 import org.eclipse.ui.IPersistableElement;
20 import org.eclipse.ui.plugin.AbstractUIPlugin;
2121
2222 public class ChartEditorInput implements IEditorInput {
2323
4040
4141 @Override
4242 public ImageDescriptor getImageDescriptor() {
43 return AbstractUIPlugin.imageDescriptorFromPlugin(MassifPlugin.PLUGIN_ID, "icons/linecharticon.gif"); //$NON-NLS-1$
43 return ResourceLocator.imageDescriptorFromBundle(MassifPlugin.PLUGIN_ID, "icons/linecharticon.gif").get(); //$NON-NLS-1$
4444 }
4545
4646 @Override
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
33 Bundle-SymbolicName: org.eclipse.linuxtools.valgrind.massif.tests
44 Bundle-Version: 1.0.0.qualifier
55 Bundle-Vendor: %Bundle-Vendor.0
6 Require-Bundle: org.junit;bundle-version="4.7.0",
7 org.eclipse.linuxtools.dataviewers.charts
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
6 Require-Bundle: org.junit;bundle-version="4.7.0"
7 Bundle-RequiredExecutionEnvironment: JavaSE-11
98 Bundle-ActivationPolicy: lazy
109 Bundle-Localization: plugin
1110 Fragment-Host: org.eclipse.linuxtools.valgrind.massif
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.massif.tests</artifactId>
2121 import org.eclipse.core.runtime.CoreException;
2222 import org.eclipse.core.runtime.IPath;
2323 import org.eclipse.debug.core.ILaunchConfiguration;
24 import org.eclipse.linuxtools.dataviewers.charts.actions.SaveChartAction;
25 import org.eclipse.linuxtools.internal.valgrind.massif.MassifViewPart;
2624 import org.eclipse.linuxtools.internal.valgrind.massif.charting.ChartEditorInput;
25 import org.eclipse.swt.SWT;
2726 import org.eclipse.swt.widgets.Composite;
27 import org.eclipse.swtchart.extensions.charts.InteractiveChart;
2828 import org.eclipse.ui.IEditorInput;
2929 import org.eclipse.ui.PlatformUI;
3030 import org.junit.After;
7878 control.setSize(10, 10);
7979 }
8080
81 SaveChartAction saveChartAction = (SaveChartAction) getToolbarAction(MassifViewPart.SAVE_CHART_ACTION);
82 assertNotNull(saveChartAction);
81 InteractiveChart intChart = (InteractiveChart)control;
8382
8483 for (IPath path : paths) {
85 saveAsPath(saveChartAction, path);
84 saveAsPath(intChart, path);
8685 }
8786 }
8887
89 private void saveAsPath(SaveChartAction saveChartAction, IPath path) {
90 saveChartAction.run(path.toString());
88 private void saveAsPath(InteractiveChart saveChartAction, IPath path) {
89 saveChartAction.save(path.toString(), SWT.IMAGE_PNG);
9190 File chartFile = path.toFile();
9291 assertTrue(chartFile.exists());
9392 assertTrue(chartFile.length() > 0);
3434 import org.eclipse.swt.SWT;
3535 import org.eclipse.swt.graphics.Point;
3636 import org.eclipse.swt.widgets.Shell;
37 import org.eclipse.swtchart.Chart;
38 import org.eclipse.swtchart.ILineSeries;
3739 import org.eclipse.ui.IEditorPart;
3840 import org.eclipse.ui.PlatformUI;
3941 import org.junit.After;
4042 import org.junit.Before;
4143 import org.junit.Test;
42 import org.swtchart.Chart;
43 import org.swtchart.ILineSeries;
4444
4545 public class ChartTests extends AbstractMassifTest {
4646 @Before
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Vendor: %Bundle-Vendor.0
66 Require-Bundle: org.eclipse.ui,
77 org.eclipse.core.runtime
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Bundle-ActivationPolicy: lazy
1010 Import-Package: org.eclipse.debug.core,
1111 org.eclipse.debug.ui,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.memcheck</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
99 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10 org.eclipse.jdt.core.compiler.compliance=1.8
10 org.eclipse.jdt.core.compiler.compliance=11
1111 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1212 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1313 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2121 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2222 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2323 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
24 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2425 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2526 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2627 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6465 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6667 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
68 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6769 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6870 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6971 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
55 Bundle-Vendor: %Bundle-Vendor.0
66 Require-Bundle: org.junit;bundle-version="4.7.0",
77 org.eclipse.debug.ui
8 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 Bundle-RequiredExecutionEnvironment: JavaSE-11
99 Bundle-ActivationPolicy: lazy
1010 Bundle-Localization: plugin
1111 Fragment-Host: org.eclipse.linuxtools.valgrind.memcheck
11 <feature
22 id="org.eclipse.linuxtools.valgrind.remote"
33 label="%featureName"
4 version="7.4.0.qualifier"
4 version="8.1.0.qualifier"
55 provider-name="%featureProvider"
66 license-feature="org.eclipse.license"
77 license-feature-version="0.0.0">
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.remote</artifactId>
2121 <packaging>eclipse-feature</packaging>
22 <version>7.4.0-SNAPSHOT</version>
22 <version>8.1.0-SNAPSHOT</version>
2323
2424 <name>Linux Tools Valgrind Tools Remote Integration Feature</name>
2525
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2525 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2626 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2727 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
28 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2829 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2930 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3031 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6869 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6970 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
7071 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
72 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
7173 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
7274 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
7375 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
100102 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
101103 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
102104 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
103 org.eclipse.jdt.core.compiler.source=1.8
105 org.eclipse.jdt.core.compiler.release=enabled
106 org.eclipse.jdt.core.compiler.source=11
88 Require-Bundle: org.eclipse.ui,
99 org.eclipse.core.runtime,
1010 org.junit;bundle-version="4.7.0"
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Import-Package: org.eclipse.cdt.core.model,
1313 org.eclipse.cdt.launch,
1414 org.eclipse.core.resources,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.tests</artifactId>
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1111 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
1313 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
14 org.eclipse.jdt.core.compiler.compliance=1.8
14 org.eclipse.jdt.core.compiler.compliance=11
1515 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1616 org.eclipse.jdt.core.compiler.debug.localVariable=generate
1717 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
2626 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2727 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2828 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
29 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2930 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
3031 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
3132 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
8283 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
8384 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
8485 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
86 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8587 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
8688 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
8789 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=enabled
114116 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
115117 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
116118 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
117 org.eclipse.jdt.core.compiler.source=1.8
119 org.eclipse.jdt.core.compiler.release=enabled
120 org.eclipse.jdt.core.compiler.source=11
1414 org.eclipse.cdt.core,
1515 org.eclipse.swt;bundle-version="3.106.0",
1616 org.eclipse.cdt.codan.ui.cxx
17 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
17 Bundle-RequiredExecutionEnvironment: JavaSE-11
1818 Bundle-ActivationPolicy: lazy
1919 Export-Package: org.eclipse.linuxtools.internal.valgrind.ui;
2020 x-friends:="org.eclipse.linuxtools.valgrind.cachegrind,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.ui</artifactId>
1919 import org.eclipse.jface.action.MenuManager;
2020 import org.eclipse.jface.resource.ImageDescriptor;
2121 import org.eclipse.jface.resource.ImageRegistry;
22 import org.eclipse.jface.resource.ResourceLocator;
2223 import org.eclipse.jface.text.BadLocationException;
2324 import org.eclipse.jface.viewers.AbstractTreeViewer;
2425 import org.eclipse.jface.viewers.IDoubleClickListener;
3940 import org.eclipse.swt.layout.GridData;
4041 import org.eclipse.swt.widgets.Composite;
4142 import org.eclipse.swt.widgets.Menu;
42 import org.eclipse.ui.plugin.AbstractUIPlugin;
4343
4444 /**
4545 * The inner tree view that holds the output messages to be displayed. Also hold
7272 viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | style);
7373 viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
7474 if (imageRegistry.getDescriptor(VALGRIND_ERROR) == null) {
75 ImageDescriptor d = AbstractUIPlugin.imageDescriptorFromPlugin(ValgrindUIPlugin.PLUGIN_ID, VALGRIND_ERROR_IMAGE);
75 ImageDescriptor d = ResourceLocator.imageDescriptorFromBundle(ValgrindUIPlugin.PLUGIN_ID, VALGRIND_ERROR_IMAGE).get();
7676 if (d != null) {
7777 imageRegistry.put(VALGRIND_ERROR, d);
7878 }
7979 }
8080 if (imageRegistry.getDescriptor(VALGRIND_INFO) == null) {
81 ImageDescriptor d = AbstractUIPlugin.imageDescriptorFromPlugin(ValgrindUIPlugin.PLUGIN_ID, VALGRIND_INFO_IMAGE);
81 ImageDescriptor d = ResourceLocator.imageDescriptorFromBundle(ValgrindUIPlugin.PLUGIN_ID, VALGRIND_INFO_IMAGE).get();
8282 if (d != null) {
8383 imageRegistry.put(VALGRIND_INFO, d);
8484 }
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
44 <classpathentry kind="src" path="src"/>
55 <classpathentry kind="output" path="target/classes"/>
88 org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
99 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
1010 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
12 org.eclipse.jdt.core.compiler.compliance=1.8
11 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
12 org.eclipse.jdt.core.compiler.compliance=11
1313 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1414 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1515 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
2020 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
2121 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
2222 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
23 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2324 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2425 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
2526 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6364 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6465 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6566 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
67 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6668 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6769 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6870 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9597 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
9698 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9799 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
98 org.eclipse.jdt.core.compiler.source=1.8
100 org.eclipse.jdt.core.compiler.release=enabled
101 org.eclipse.jdt.core.compiler.source=11
88 org.eclipse.core.resources,
99 org.eclipse.ui.ide,
1010 org.eclipse.ui.genericeditor
11 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11 Bundle-RequiredExecutionEnvironment: JavaSE-11
1212 Bundle-ActivationPolicy: lazy
1313 Import-Package: org.eclipse.jface.text,
1414 org.eclipse.jface.text.contentassist,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.ui.editor</artifactId>
2828 import org.eclipse.core.runtime.Status;
2929 import org.eclipse.jface.dialogs.MessageDialog;
3030 import org.eclipse.jface.operation.IRunnableWithProgress;
31 import org.eclipse.jface.resource.ResourceLocator;
3132 import org.eclipse.jface.viewers.IStructuredSelection;
3233 import org.eclipse.jface.wizard.Wizard;
3334 import org.eclipse.linuxtools.internal.valgrind.ui.editor.ValgrindEditorPlugin;
3940 import org.eclipse.ui.PlatformUI;
4041 import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
4142 import org.eclipse.ui.ide.IDE;
42 import org.eclipse.ui.plugin.AbstractUIPlugin;
4343
4444 /**
4545 * This is a sample new wizard. Its role is to create a new file
7474 page = new WizardNewFileCreationPage("newSuppressionPage", selection); //$NON-NLS-1$
7575 page.setTitle(Messages.getString("NewSuppressionWizard.NewWizard_title")); //$NON-NLS-1$
7676 page.setDescription(Messages.getString("NewSuppressionWizard.NewWizard_description")); //$NON-NLS-1$
77 page.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(ValgrindEditorPlugin.PLUGIN_ID, "icons/newsupp_wiz.png")); //$NON-NLS-1$
77 page.setImageDescriptor(ResourceLocator.imageDescriptorFromBundle(ValgrindEditorPlugin.PLUGIN_ID, "icons/newsupp_wiz.png").get()); //$NON-NLS-1$
7878 page.setFileExtension(EXT_SUPP);
7979 addPage(page);
8080 }
00 <?xml version="1.0" encoding="UTF-8"?>
11 <classpath>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
2 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
33 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="src" path="src">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
59 <classpathentry kind="output" path="target/classes"/>
610 </classpath>
55 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
9 org.eclipse.jdt.core.compiler.compliance=1.8
8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
9 org.eclipse.jdt.core.compiler.compliance=11
1010 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
1111 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
1212 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
1717 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
1818 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
1919 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
20 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
2021 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
2122 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
2223 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
6061 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
6162 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
6263 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
64 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
6365 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
6466 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
6567 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
9193 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
9294 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9395 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
94 org.eclipse.jdt.core.compiler.source=1.8
96 org.eclipse.jdt.core.compiler.release=enabled
97 org.eclipse.jdt.core.compiler.source=11
77 Require-Bundle: org.junit;bundle-version="4.7.0",
88 org.eclipse.linuxtools.valgrind.memcheck,
99 org.eclipse.cdt.codan.ui.cxx
10 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
10 Bundle-RequiredExecutionEnvironment: JavaSE-11
1111 Bundle-ActivationPolicy: lazy
1212 Bundle-Localization: plugin
1313 Import-Package: org.eclipse.linuxtools.internal.valgrind.tests,
1414 <parent>
1515 <artifactId>linuxtools-valgrind-parent</artifactId>
1616 <groupId>org.eclipse.linuxtools.valgrind</groupId>
17 <version>7.4.0</version>
17 <version>8.1.0</version>
1818 </parent>
1919
2020 <artifactId>org.eclipse.linuxtools.valgrind.ui.tests</artifactId>
1616 <parent>
1717 <groupId>org.eclipse.linuxtools</groupId>
1818 <artifactId>linuxtools-parent</artifactId>
19 <version>7.4.0</version>
19 <version>8.1.0</version>
2020 </parent>
2121
2222 <groupId>org.eclipse.linuxtools.valgrind</groupId>