lttng.control: Disable Java and Python logging for older LTTng versions
authorBruno Roy <bruno.roy@ericsson.com>
Fri, 19 Aug 2016 17:13:30 +0000 (13:13 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 24 Aug 2016 10:35:53 +0000 (06:35 -0400)
Only enable the Java logging for LTTng version 2.6 and above and 2.7 and
above for the Python logging.

Change-Id: Iafe8a36141238590ccfe2a1cb854841c9f42e1ee
Signed-off-by: Bruno Roy <bruno.roy@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/79365
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-by: Hudson CI
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/EnableEventsDialog.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/BaseEnableEventHandler.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TraceProviderGroup.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlServiceMI.java

index 1adb862ed341efbad7e5f71610da0574cfb1579d..d4823c3f96786772ff777bdf820b528c1b5f8c35 100644 (file)
@@ -415,19 +415,85 @@ public class EnableEventsDialog extends Dialog implements IEnableEventsDialog  {
         // ------------------------------------------------------------------------
         Group domainGroup = new Group(fDialogComposite, SWT.SHADOW_NONE);
         domainGroup.setText(Messages.TraceControl_DomainDisplayName);
-        layout = new GridLayout(5, true);
-        domainGroup.setLayout(layout);
 
         fKernelButton = new Button(domainGroup, SWT.RADIO);
         fKernelButton.setText(Messages.TraceControl_KernelDomainDisplayName);
         fUstButton = new Button(domainGroup, SWT.RADIO);
         fUstButton.setText(Messages.TraceControl_UstDisplayName);
-        fJulButton = new Button(domainGroup, SWT.RADIO);
-        fJulButton.setText(Messages.TraceControl_JULDomainDisplayName);
-        fLog4jButton = new Button(domainGroup, SWT.RADIO);
-        fLog4jButton.setText(Messages.TraceControl_LOG4JDomainDisplayName);
-        fPythonButton = new Button(domainGroup, SWT.RADIO);
-        fPythonButton.setText(Messages.TraceControl_PythonDomainDisplayName);
+        int nbColumns = 2;
+
+        fKernelButton.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                if (fKernelButton.getSelection()) {
+                    disposeAllComposite();
+                    createKernelComposite();
+                    fDialogComposite.layout();
+                }
+            }
+        });
+
+        fUstButton.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                if (fUstButton.getSelection()) {
+                    disposeAllComposite();
+                    createUstComposite();
+                    fDialogComposite.layout();
+                }
+            }
+        });
+
+        if (fProviderGroup.isJulLoggingSupported()) {
+            fJulButton = new Button(domainGroup, SWT.RADIO);
+            fJulButton.setText(Messages.TraceControl_JULDomainDisplayName);
+            nbColumns++;
+            fJulButton.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    if (fJulButton.getSelection()) {
+                        disposeAllComposite();
+                        createJulComposite();
+                        fDialogComposite.layout();
+                    }
+                }
+            });
+        }
+
+        if (fProviderGroup.isLog4jLoggingSupported()) {
+            fLog4jButton = new Button(domainGroup, SWT.RADIO);
+            fLog4jButton.setText(Messages.TraceControl_LOG4JDomainDisplayName);
+            nbColumns++;
+            fLog4jButton.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    if (fLog4jButton.getSelection()) {
+                        disposeAllComposite();
+                        createLog4jComposite();
+                        fDialogComposite.layout();
+                    }
+                }
+            });
+        }
+
+        if (fProviderGroup.isPythonLoggingSupported()) {
+            fPythonButton = new Button(domainGroup, SWT.RADIO);
+            fPythonButton.setText(Messages.TraceControl_PythonDomainDisplayName);
+            nbColumns++;
+            fPythonButton.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    if (fPythonButton.getSelection()) {
+                        disposeAllComposite();
+                        createPythonComposite();
+                        fDialogComposite.layout();
+                    }
+                }
+            });
+        }
+
+        layout = new GridLayout(nbColumns, true);
+        domainGroup.setLayout(layout);
 
         switch (fDomain) {
         case KERNEL:
@@ -450,20 +516,6 @@ public class EnableEventsDialog extends Dialog implements IEnableEventsDialog  {
             break;
         }
 
-        if (fDomainComponent != null) {
-            fKernelButton.setEnabled(false);
-            fUstButton.setEnabled(false);
-            fJulButton.setEnabled(false);
-            fLog4jButton.setEnabled(false);
-            fPythonButton.setEnabled(false);
-        } else if ((fProviderGroup != null) && (!fProviderGroup.hasKernelProvider())) {
-            fKernelButton.setEnabled(false);
-            fUstButton.setEnabled(true);
-            fJulButton.setEnabled(true);
-            fLog4jButton.setEnabled(true);
-            fPythonButton.setEnabled(true);
-        }
-
         // layout widgets
         GridData data = new GridData(GridData.FILL_HORIZONTAL);
         domainGroup.setLayoutData(data);
@@ -503,60 +555,31 @@ public class EnableEventsDialog extends Dialog implements IEnableEventsDialog  {
             break;
         }
 
-        fKernelButton.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if (fKernelButton.getSelection()) {
-                    disposeAllComposite();
-                    createKernelComposite();
-                    fDialogComposite.layout();
-                }
+        if (fDomainComponent != null) {
+            fKernelButton.setEnabled(false);
+            fUstButton.setEnabled(false);
+            if (fProviderGroup.isJulLoggingSupported()) {
+                fJulButton.setEnabled(false);
             }
-        });
-
-        fUstButton.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if (fUstButton.getSelection()) {
-                    disposeAllComposite();
-                    createUstComposite();
-                    fDialogComposite.layout();
-                }
+            if (fProviderGroup.isLog4jLoggingSupported()) {
+                fLog4jButton.setEnabled(false);
             }
-        });
-
-        fJulButton.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if (fJulButton.getSelection()) {
-                    disposeAllComposite();
-                    createJulComposite();
-                    fDialogComposite.layout();
-                }
+            if (fProviderGroup.isPythonLoggingSupported()) {
+                fPythonButton.setEnabled(false);
             }
-        });
-
-        fLog4jButton.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if (fLog4jButton.getSelection()) {
-                    disposeAllComposite();
-                    createLog4jComposite();
-                    fDialogComposite.layout();
-                }
+        } else if ((fProviderGroup != null) && (!fProviderGroup.hasKernelProvider())) {
+            fKernelButton.setEnabled(false);
+            fUstButton.setEnabled(true);
+            if (fProviderGroup.isJulLoggingSupported()) {
+                fJulButton.setEnabled(true);
             }
-        });
-
-        fPythonButton.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if (fPythonButton.getSelection()) {
-                    disposeAllComposite();
-                    createPythonComposite();
-                    fDialogComposite.layout();
-                }
+            if (fProviderGroup.isLog4jLoggingSupported()) {
+                fLog4jButton.setEnabled(true);
             }
-        });
+            if (fProviderGroup.isPythonLoggingSupported()) {
+                fPythonButton.setEnabled(true);
+            }
+        }
 
     getShell().setMinimumSize(new Point(550, 850));
 
index 6e3a1f52666af423bf3d3cbb73bb389635c92097..2bb21a3d8775bed5d1ed09233db9f8ed0798eea5 100644 (file)
@@ -167,7 +167,10 @@ public abstract class BaseEnableEventHandler extends BaseControlViewHandler {
         List<ITraceControlComponent> providers = node.getChildren(TraceProviderGroup.class);
 
         final IEnableEventsDialog dialog = TraceControlDialogFactory.getInstance().getEnableEventsDialog();
-        dialog.setTraceProviderGroup((TraceProviderGroup) providers.get(0));
+        // If you don't have the Kernel tracer and no UST application there is not going to be any providers
+        if (providers.size() > 0) {
+            dialog.setTraceProviderGroup((TraceProviderGroup) providers.get(0));
+        }
         dialog.setTraceDomainComponent(getDomain(param));
 
         if (dialog.open() != Window.OK) {
index 3e93ca87d9a5e6447c5859f8aa7570db139d5e3a..9ec77aae8b2715bb4625780296791d33d979aa01 100644 (file)
@@ -300,6 +300,30 @@ public class TargetNodeComponent extends TraceControlComponent implements IRemot
     public boolean isPerSyscallEventsSupported() {
         return getControlService().isVersionSupported("2.6.0"); //$NON-NLS-1$
     }
+    /**
+     * Returns if node supports JUL logging or not
+     * @return <code>true</code> if it supports JUL logging else <code>false</code>
+     *
+     */
+    public boolean isJulLoggingSupported() {
+        return getControlService().isVersionSupported("2.6.0"); //$NON-NLS-1$
+    }
+    /**
+     * Returns if node supports LOG4J logging or not
+     * @return <code>true</code> if it supports LOG4J logging else <code>false</code>
+     *
+     */
+    public boolean isLog4jLoggingSupported() {
+        return getControlService().isVersionSupported("2.6.0"); //$NON-NLS-1$
+    }
+    /**
+     * Returns if node supports Python logging or not
+     * @return <code>true</code> if it supports Python logging else <code>false</code>
+     *
+     */
+    public boolean isPythonLoggingSupported() {
+        return getControlService().isVersionSupported("2.7.0"); //$NON-NLS-1$
+    }
 
     /**
      * Checks if given version is supported by this ILTTngControlService implementation.
index eb600da676babe274b87709109a0f9a47322f640..ad502072e3bf79175310891561fd62816d41caac 100644 (file)
@@ -115,5 +115,30 @@ public class TraceProviderGroup extends TraceControlComponent {
     public boolean isPerSyscallEventsSupported() {
         return ((TargetNodeComponent) getParent()).isPerSyscallEventsSupported();
     }
+
+    /**
+     * Returns if node supports JUL logging or not
+     * @return <code>true</code> if it supports JUL logging else <code>false</code>
+     *
+     */
+    public boolean isJulLoggingSupported() {
+        return ((TargetNodeComponent) getParent()).isJulLoggingSupported();
+    }
+    /**
+     * Returns if node supports LOG4J logging or not
+     * @return <code>true</code> if it supports LOG4J logging else <code>false</code>
+     *
+     */
+    public boolean isLog4jLoggingSupported() {
+        return ((TargetNodeComponent) getParent()).isLog4jLoggingSupported();
+    }
+    /**
+     * Returns if node supports Python logging or not
+     * @return <code>true</code> if it supports Python logging else <code>false</code>
+     *
+     */
+    public boolean isPythonLoggingSupported() {
+        return ((TargetNodeComponent) getParent()).isPythonLoggingSupported();
+    }
 }
 
index 283aaad228f85eebe386ac16e6deb33697830188..141e81cb98d6463cf464b19473c7c09b0a8177f9 100644 (file)
@@ -666,9 +666,13 @@ public class LTTngControlServiceMI extends LTTngControlService {
             allProviders.add(providerInfo);
         }
 
-        getUstProviderLoggers(allProviders, TraceDomainType.JUL, monitor);
-        getUstProviderLoggers(allProviders, TraceDomainType.LOG4J, monitor);
-        getUstProviderLoggers(allProviders, TraceDomainType.PYTHON, monitor);
+        if (isVersionSupported("2.6")) { //$NON-NLS-1$
+            getUstProviderLoggers(allProviders, TraceDomainType.JUL, monitor);
+            getUstProviderLoggers(allProviders, TraceDomainType.LOG4J, monitor);
+            if (isVersionSupported("2.7")) { //$NON-NLS-1$
+                getUstProviderLoggers(allProviders, TraceDomainType.PYTHON, monitor);
+            }
+        }
 
         return allProviders;
     }
This page took 0.028481 seconds and 5 git commands to generate.