diff --git a/.classpath b/.classpath index 769b801..1fa3e68 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,6 @@ - - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index f42de36..8e3baab 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,2 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index db26814..13e9121 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,10 @@ Changes since 1.4: ---------------------------------- +- Fix enabled state for Remove All button on Edit this watcher +- Find dialog set initial text as selected from log window +- Replace jakata oro with java.util.regex +- NPE on multiple ignore filters - Upgrade to eclipse 4.6 Neon - Upgrade to eclipse 4.4 Luna diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF index ca99289..2f3ee0e 100644 --- a/META-INF/MANIFEST.MF +++ b/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Logwatcher Bundle-SymbolicName: org.graysky.eclipse.logwatcher;singleton:=true -Bundle-Version: 1.4.0.3 +Bundle-Version: 1.4.0.5 Bundle-Activator: org.graysky.eclipse.logwatcher.LogwatcherPlugin Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui.ide, @@ -14,8 +14,9 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.help, org.eclipse.jface.text Bundle-ActivationPolicy: lazy -Bundle-ClassPath: lib/jakarta-oro-2.0.6.jar, - plugins/org.graysky.eclipse.logwatcher_1.4.0.3.jar +Bundle-Vendor: Graysky.org +Plugin-Class: org.graysky.eclipse.logwatcher.LogwatcherPlugin +Bundle-ClassPath: plugins/org.graysky.eclipse.logwatcher_1.4.0.5.jar Export-Package: org.graysky.eclipse.logwatcher, org.graysky.eclipse.logwatcher.actions, org.graysky.eclipse.logwatcher.dialogs, @@ -25,5 +26,3 @@ Export-Package: org.graysky.eclipse.logwatcher, org.graysky.eclipse.logwatcher.watchers, org.graysky.eclipse.logwatcher.wizards, org.graysky.eclipse.util -Bundle-Vendor: Graysky.org -Plugin-Class: org.graysky.eclipse.logwatcher.LogwatcherPlugin diff --git a/build.properties b/build.properties index 9053fe7..a88bc03 100644 --- a/build.properties +++ b/build.properties @@ -7,8 +7,9 @@ bin.includes = toc_LogWatcher.xml,\ book.xml,\ about.html,\ CHANGELOG.txt,\ - lib/jakarta-oro-2.0.6.jar,\ - META-INF/ + META-INF/,\ + OSGI-INF/l10n/bundle.properties,\ + plugins/org.graysky.eclipse.logwatcher_1.4.0.5.jar src.includes = toc_LogWatcher.xml,\ src/,\ plugin.xml,\ @@ -19,8 +20,6 @@ src.includes = toc_LogWatcher.xml,\ book.xml,\ about.html,\ CHANGELOG.txt -jars.compile.order = plugins/org.graysky.eclipse.logwatcher_1.4.0.3.jar -output.plugins/org.graysky.eclipse.logwatcher_1.4.0.3.jar = bin/ -source.plugins/org.graysky.eclipse.logwatcher_1.4.0.3.jar = src/ - - +jars.compile.order = plugins/org.graysky.eclipse.logwatcher_1.4.0.5.jar +output.plugins/org.graysky.eclipse.logwatcher_1.4.0.5.jar = bin/ +source.plugins/org.graysky.eclipse.logwatcher_1.4.0.5.jar = src/ diff --git a/lib/jakarta-oro-2.0.6.jar b/lib/jakarta-oro-2.0.6.jar deleted file mode 100644 index 346504c..0000000 Binary files a/lib/jakarta-oro-2.0.6.jar and /dev/null differ diff --git a/src/org/graysky/eclipse/logwatcher/dialogs/FindDialog.java b/src/org/graysky/eclipse/logwatcher/dialogs/FindDialog.java index d63e5a6..a5ce799 100644 --- a/src/org/graysky/eclipse/logwatcher/dialogs/FindDialog.java +++ b/src/org/graysky/eclipse/logwatcher/dialogs/FindDialog.java @@ -69,6 +69,12 @@ protected Control createDialogArea(Composite parent) new Label(composite, SWT.NONE).setText("Find:"); m_findText = new Text(composite, SWT.BORDER); m_findText.setTextLimit(200); + // Add text selection from log window + if(!m_target.getSelectionText().isEmpty()) { + m_findText.setText(m_target.getSelectionText()); + // Cursor to end + m_findText.setSelection(m_findText.getText().length()); + } gridData = new GridData(); gridData.widthHint = 160; m_findText.setLayoutData(gridData); @@ -138,7 +144,13 @@ public void widgetSelected(SelectionEvent evt) } } }); - m_findButton.setEnabled(false); + // Set button enabled state + if(m_findText.getText().isEmpty()) { + m_findButton.setEnabled(false); + } + else { + m_findButton.setEnabled(true); + } getShell().setDefaultButton(m_findButton); GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); diff --git a/src/org/graysky/eclipse/logwatcher/dialogs/NewWatcherDialog.java b/src/org/graysky/eclipse/logwatcher/dialogs/NewWatcherDialog.java index 6ee08c9..4398f9f 100644 --- a/src/org/graysky/eclipse/logwatcher/dialogs/NewWatcherDialog.java +++ b/src/org/graysky/eclipse/logwatcher/dialogs/NewWatcherDialog.java @@ -442,7 +442,7 @@ public void widgetSelected(SelectionEvent evt) public void widgetSelected(SelectionEvent evt) { if (m_filterList.getSelectionCount() == 1) { - saveButton.setEnabled(true); + saveButton.setEnabled(true); } else { saveButton.setEnabled(false); @@ -450,9 +450,11 @@ public void widgetSelected(SelectionEvent evt) if (m_filterList.getSelectionCount() > 0) { removeButton.setEnabled(true); + removeAllButton.setEnabled(true); } else { removeButton.setEnabled(false); + removeAllButton.setEnabled(false); } } }); diff --git a/src/org/graysky/eclipse/logwatcher/filters/Filter.java b/src/org/graysky/eclipse/logwatcher/filters/Filter.java index 9ee9b6b..4be6ee2 100644 --- a/src/org/graysky/eclipse/logwatcher/filters/Filter.java +++ b/src/org/graysky/eclipse/logwatcher/filters/Filter.java @@ -2,11 +2,10 @@ import java.util.Iterator; import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; -import org.apache.oro.text.regex.MalformedPatternException; -import org.apache.oro.text.regex.Pattern; -import org.apache.oro.text.regex.Perl5Compiler; -import org.apache.oro.text.regex.Perl5Matcher; import org.eclipse.swt.custom.LineStyleEvent; import org.graysky.eclipse.util.XmlUtils; import org.w3c.dom.Document; @@ -23,7 +22,6 @@ public class Filter private Vector m_actions = new Vector(); private boolean m_contains = true; private Pattern m_regexp = null; - private Perl5Matcher m_matcher = new Perl5Matcher(); private String m_description; /** @@ -31,12 +29,12 @@ public class Filter */ public boolean matches(String str) { - boolean match = m_matcher.contains(str, m_regexp); + Matcher matcher = m_regexp.matcher(str); if (m_contains) { - return match; + return matcher.find(); } else { - return !match; + return !matcher.find(); } } @@ -89,16 +87,15 @@ public String getPattern() return m_pattern; } - public void setPattern(String pattern, boolean caseSensitive) throws MalformedPatternException + public void setPattern(String pattern, boolean caseSensitive) throws PatternSyntaxException { m_pattern = pattern; m_caseSensitive = caseSensitive; - Perl5Compiler compiler = new Perl5Compiler(); if (!m_caseSensitive) { - m_regexp = compiler.compile(m_pattern, Perl5Compiler.CASE_INSENSITIVE_MASK); + m_regexp = Pattern.compile(m_pattern, Pattern.CASE_INSENSITIVE); } else { - m_regexp = compiler.compile(m_pattern); + m_regexp = Pattern.compile(m_pattern); } } diff --git a/src/org/graysky/eclipse/logwatcher/filters/FilterLoader.java b/src/org/graysky/eclipse/logwatcher/filters/FilterLoader.java index f3a16e0..0a7fb0c 100644 --- a/src/org/graysky/eclipse/logwatcher/filters/FilterLoader.java +++ b/src/org/graysky/eclipse/logwatcher/filters/FilterLoader.java @@ -2,11 +2,11 @@ import java.io.Reader; import java.util.Vector; +import java.util.regex.PatternSyntaxException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.oro.text.regex.MalformedPatternException; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import org.graysky.eclipse.logwatcher.LogwatcherPlugin; @@ -67,7 +67,7 @@ else if (name.equals("action")) { try { f.setPattern(pattern, caseSensitive); } - catch (MalformedPatternException ignore) { + catch (PatternSyntaxException ignore) { } return f; } diff --git a/src/org/graysky/eclipse/logwatcher/watchers/TextFileWatcher.java b/src/org/graysky/eclipse/logwatcher/watchers/TextFileWatcher.java index 86d628c..432fce9 100644 --- a/src/org/graysky/eclipse/logwatcher/watchers/TextFileWatcher.java +++ b/src/org/graysky/eclipse/logwatcher/watchers/TextFileWatcher.java @@ -124,8 +124,17 @@ else if (!m_file.exists()) { // Apply each filter for (Iterator iter = m_filters.iterator(); iter.hasNext();) { Filter f = (Filter) iter.next(); - if (f.matches(line)) { - line = f.handleWatcherMatch(line, firstUpdate); + try { + if (f.matches(line)) { + line = f.handleWatcherMatch(line, firstUpdate); + } + // Skip rest of filters as for an ignore will be null + if (line == null) { + break; + } + } catch (Exception e) { + // just log + LogwatcherPlugin.getDefault().logError("Error applying filter", e); } } } diff --git a/src/org/graysky/eclipse/logwatcher/wizards/NewFilterWizardStart.java b/src/org/graysky/eclipse/logwatcher/wizards/NewFilterWizardStart.java index 252ce55..a2db32f 100644 --- a/src/org/graysky/eclipse/logwatcher/wizards/NewFilterWizardStart.java +++ b/src/org/graysky/eclipse/logwatcher/wizards/NewFilterWizardStart.java @@ -1,7 +1,8 @@ package org.graysky.eclipse.logwatcher.wizards; -import org.apache.oro.text.regex.MalformedPatternException; -import org.apache.oro.text.regex.Perl5Compiler; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardPage; @@ -28,7 +29,7 @@ public class NewFilterWizardStart extends WizardPage private Combo m_actionsCombo; private Combo m_containsCombo; private Button m_caseSensitiveBox; - private Perl5Compiler m_regExpCompiler = new Perl5Compiler(); + //private Perl5Compiler m_regExpCompiler = new Perl5Compiler(); /** * Constructor for FilterWizardStartPage. @@ -145,7 +146,7 @@ public Filter getFilter() f.setContains(m_containsCombo.getSelectionIndex() == 0 ? true : false); return f; } - catch (MalformedPatternException e) { + catch (PatternSyntaxException e) { // Shouldn't happen - we have already compiled the pattern. return null; } @@ -174,11 +175,11 @@ protected boolean validatePage() if (m_filterText.getText().length() > 0) { try { - m_regExpCompiler.compile(m_filterText.getText()); + Pattern.compile(m_filterText.getText()); setErrorMessage(null); return true; } - catch (MalformedPatternException e) { + catch (PatternSyntaxException e) { setErrorMessage("Invalid regular expression: " + e.getMessage()); return false; }