Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 163352 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/tptp/monitoring/logui/internal/wizards/LogSetManager.java (-2 / +111 lines)
Lines 12-17 Link Here
12
12
13
package org.eclipse.tptp.monitoring.logui.internal.wizards;
13
package org.eclipse.tptp.monitoring.logui.internal.wizards;
14
14
15
import java.io.ByteArrayOutputStream;
16
import java.io.IOException;
17
import java.io.StringWriter;
15
import java.net.URL;
18
import java.net.URL;
16
import java.util.ArrayList;
19
import java.util.ArrayList;
17
import java.util.HashMap;
20
import java.util.HashMap;
Lines 20-36 Link Here
20
import java.util.Map;
23
import java.util.Map;
21
import java.util.Set;
24
import java.util.Set;
22
25
26
import org.apache.xml.serialize.OutputFormat;
27
import org.apache.xml.serialize.XMLSerializer;
23
import org.eclipse.core.runtime.IConfigurationElement;
28
import org.eclipse.core.runtime.IConfigurationElement;
24
import org.eclipse.core.runtime.IStatus;
29
import org.eclipse.core.runtime.IStatus;
25
import org.eclipse.core.runtime.Platform;
30
import org.eclipse.core.runtime.Platform;
26
import org.eclipse.core.runtime.Status;
31
import org.eclipse.core.runtime.Status;
27
import org.eclipse.emf.common.util.URI;
32
import org.eclipse.emf.common.util.URI;
28
import org.eclipse.emf.ecore.util.EcoreUtil;
33
import org.eclipse.emf.ecore.util.EcoreUtil;
34
import org.eclipse.emf.ecore.xmi.XMLResource;
29
import org.eclipse.hyades.internal.execution.local.common.Constants;
35
import org.eclipse.hyades.internal.execution.local.common.Constants;
30
import org.eclipse.hyades.models.hierarchy.TRCAgentProxy;
36
import org.eclipse.hyades.models.hierarchy.TRCAgentProxy;
31
import org.eclipse.hyades.ui.filters.IFilterScopes;
37
import org.eclipse.hyades.ui.filters.IFilterScopes;
32
import org.eclipse.hyades.ui.filters.internal.util.FilterInformationManager;
38
import org.eclipse.hyades.ui.filters.internal.util.FilterInformationManager;
33
import org.eclipse.hyades.ui.filters.internal.util.FilterQueries;
39
import org.eclipse.hyades.ui.filters.internal.util.FilterQueries;
40
import org.eclipse.hyades.ui.filters.internal.util.FilterResourceFileHandler;
41
import org.eclipse.hyades.ui.filters.internal.util.FilterResourceHandler;
34
import org.eclipse.hyades.ui.internal.util.XMLUtil;
42
import org.eclipse.hyades.ui.internal.util.XMLUtil;
35
43
36
import org.eclipse.jface.preference.IPreferenceStore;
44
import org.eclipse.jface.preference.IPreferenceStore;
Lines 38-44 Link Here
38
import org.eclipse.tptp.monitoring.logui.internal.LogUIMessages;
46
import org.eclipse.tptp.monitoring.logui.internal.LogUIMessages;
39
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
47
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
40
import org.eclipse.tptp.platform.common.ui.trace.internal.helpers.TraceUIManager;
48
import org.eclipse.tptp.platform.common.ui.trace.internal.helpers.TraceUIManager;
49
import org.w3c.dom.Document;
41
import org.w3c.dom.Element;
50
import org.w3c.dom.Element;
51
import org.w3c.dom.Node;
42
import org.w3c.dom.NodeList;
52
import org.w3c.dom.NodeList;
43
53
44
import com.ibm.icu.util.StringTokenizer;
54
import com.ibm.icu.util.StringTokenizer;
Lines 50-56 Link Here
50
	public static final String LOGSET_TAG = "logset";
60
	public static final String LOGSET_TAG = "logset";
51
	public static final String LOGELEMENT_TAG = "LogFileElement";
61
	public static final String LOGELEMENT_TAG = "LogFileElement";
52
	public static final String DEFAULT_LOGSET = LogUIMessages._54;
62
	public static final String DEFAULT_LOGSET = LogUIMessages._54;
53
	
63
	public static final String FILTER_TAG = "filters";
64
	public static final String EXPORT_URI="/temp.txt";
65
	public static final Map RESOURCE_OPTIONS = new HashMap();
66
	{
67
		RESOURCE_OPTIONS.put(XMLResource.OPTION_DECLARE_XML, Boolean.FALSE);
68
	}
54
	private IPreferenceStore preferenceStore = MonitoringLogUIPlugin.getDefault().getPreferenceStore();
69
	private IPreferenceStore preferenceStore = MonitoringLogUIPlugin.getDefault().getPreferenceStore();
55
	private String defaultLogSet;
70
	private String defaultLogSet;
56
	private Map logSetsList = new HashMap();
71
	private Map logSetsList = new HashMap();
Lines 87-93 Link Here
87
		loadParserRegistry();
102
		loadParserRegistry();
88
					
103
					
89
	}
104
	}
90
	
105
	public void saveLogSetFilters(List logSetFilterList) {
106
		FilterResourceHandler rTarget = FilterResourceHandler.instance(); //list of all existing filters
107
		Object[] targetFilterQueries = rTarget.toArray();
108
		if(targetFilterQueries.length > 0){
109
			for (int i = 0; i < targetFilterQueries.length; i++)
110
			{
111
				FilterQueries existingFQ = (FilterQueries) targetFilterQueries[i];
112
				if(existingFQ != null){
113
					String targetFilterName = (existingFQ).name();
114
					for (Iterator iter = logSetFilterList.iterator(); iter.hasNext();) {
115
						FilterQueries fq = (FilterQueries) iter.next();
116
						if(fq != null){
117
							if(targetFilterName.equals(fq.name())){
118
								rTarget.removeFilter(existingFQ);
119
							}
120
							rTarget.addFilter(fq);
121
						}
122
					}
123
				}
124
			}
125
		}
126
		else{
127
			for (Iterator iter = logSetFilterList.iterator(); iter.hasNext();) {
128
				FilterQueries fq = (FilterQueries) iter.next();
129
				if(fq != null){
130
					rTarget.addFilter(fq);
131
				}
132
			}
133
		}
134
		rTarget.save();
135
	}
136
	public static String toString(Node xml) {
137
		return toString(xml, true);
138
	}
139
140
	public static String toString(Node xml, boolean printHeader) {
141
		return toString(xml, printHeader, true);
142
	}
143
144
	public static String toString(Node xml, boolean printHeader,
145
			boolean printIndents) {
146
		short type = xml.getNodeType();
147
		if (type == 3) {
148
			return xml.getNodeValue();
149
		}
150
		XMLSerializer serializer = new XMLSerializer();
151
		serializer.setNamespaces(true);
152
		OutputFormat formatter = new OutputFormat();
153
		formatter.setOmitXMLDeclaration(!printHeader);
154
		formatter.setIndenting(printIndents);
155
		serializer.setOutputFormat(formatter);
156
		StringWriter writer = new StringWriter();
157
		serializer.setOutputCharStream(writer);
158
		try {
159
			if (type == 9) {
160
				serializer.serialize((Document) xml);
161
			} else {
162
				serializer.serialize((Element) xml);
163
			}
164
		} catch (IOException error) {
165
			throw new RuntimeException(error.getMessage(), error);
166
		}
167
		return writer.toString();
168
	}
169
	public String generateLogSetFilterDefEntry(List logSetFilterList){
170
		if (logSetFilterList != null && (logSetFilterList.size() > 0)) {
171
			StringBuffer xmlString = new StringBuffer();
172
			xmlString.append(" <");
173
			xmlString.append(FILTER_TAG);
174
			xmlString.append("> ");
175
			FilterResourceFileHandler rtarget = FilterResourceFileHandler.instance(URI.createFileURI(EXPORT_URI));
176
			rtarget.clear();
177
			for (Iterator iter = logSetFilterList.iterator(); iter.hasNext();) {
178
				FilterQueries fq = (FilterQueries)iter.next();
179
				if(fq != null){
180
					rtarget.addFilter(fq.copy());
181
				}
182
			}
183
			if (rtarget instanceof XMLResource) {
184
				((XMLResource) rtarget).setEncoding("UTF-8");
185
			}
186
			ByteArrayOutputStream oStream = new ByteArrayOutputStream();
187
			rtarget.save(oStream, RESOURCE_OPTIONS);
188
			byte[] b = oStream.toByteArray();
189
			String filterStr = new String(b);
190
			xmlString.append(filterStr);
191
			xmlString.append(" </");
192
			xmlString.append(FILTER_TAG);
193
			xmlString.append("> ");
194
			return xmlString.toString();
195
196
		}
197
		return "";
198
	}
199
91
	public void loadLogSets(){
200
	public void loadLogSets(){
92
		
201
		
93
		String prefXML = preferenceStore.getString(LOGSETS_KEY);
202
		String prefXML = preferenceStore.getString(LOGSETS_KEY);
(-)src/org/eclipse/tptp/monitoring/logui/internal/wizards/ExportLogSetsUI.java (-2 / +35 lines)
Lines 23-28 Link Here
23
import java.util.List;
23
import java.util.List;
24
24
25
import org.eclipse.core.runtime.Path;
25
import org.eclipse.core.runtime.Path;
26
import org.eclipse.hyades.ui.filters.internal.util.FilterQueries;
27
import org.eclipse.hyades.ui.filters.internal.util.FilterResourceHandler;
26
import org.eclipse.hyades.ui.internal.util.ContextIds;
28
import org.eclipse.hyades.ui.internal.util.ContextIds;
27
import org.eclipse.hyades.ui.internal.util.XMLUtil;
29
import org.eclipse.hyades.ui.internal.util.XMLUtil;
28
import org.eclipse.jface.dialogs.IDialogConstants;
30
import org.eclipse.jface.dialogs.IDialogConstants;
Lines 32-37 Link Here
32
import org.eclipse.swt.widgets.Composite;
34
import org.eclipse.swt.widgets.Composite;
33
import org.eclipse.tptp.monitoring.logui.internal.LogUIMessages;
35
import org.eclipse.tptp.monitoring.logui.internal.LogUIMessages;
34
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
36
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
37
import org.eclipse.tptp.monitoring.logui.internal.wizards.LogFileElement.Filter;
35
import org.eclipse.tptp.platform.common.ui.internal.CommonUIPlugin;
38
import org.eclipse.tptp.platform.common.ui.internal.CommonUIPlugin;
36
import org.eclipse.ui.PlatformUI;
39
import org.eclipse.ui.PlatformUI;
37
import org.eclipse.ui.dialogs.IOverwriteQuery;
40
import org.eclipse.ui.dialogs.IOverwriteQuery;
Lines 59-69 Link Here
59
		
62
		
60
		Iterator keySet = getDoubleList().getTargetItems().iterator();
63
		Iterator keySet = getDoubleList().getTargetItems().iterator();
61
		String key = "";
64
		String key = "";
65
		List filterList = new ArrayList();
62
		while(keySet.hasNext()) {
66
		while(keySet.hasNext()) {
63
			 key = (String) keySet.next();
67
			 key = (String) keySet.next();
64
			 xmlString.append(lsMgr.generateLogSetPrefEntry(key));				
68
			 xmlString.append(lsMgr.generateLogSetPrefEntry(key));
69
			 populateLogSetFilterList(key,filterList);			 
65
		}			
70
		}			
66
		
71
		xmlString.append(lsMgr.generateLogSetFilterDefEntry(filterList));
67
		xmlString.append(" </");				
72
		xmlString.append(" </");				
68
		xmlString.append(LogSetManager.LOGSETS_KEY);
73
		xmlString.append(LogSetManager.LOGSETS_KEY);
69
		xmlString.append(">");
74
		xmlString.append(">");
Lines 108-113 Link Here
108
		return true;
113
		return true;
109
	}
114
	}
110
115
116
	protected void populateLogSetFilterList(String key,List filterList){
117
		List logSet = (List) lsMgr.getLogSets().get(key);
118
		if (logSet != null) {
119
			LogFileElement element = null;
120
			Filter filter = null;
121
			for (Iterator iter1 = logSet.iterator(); iter1.hasNext();) {
122
				element = (LogFileElement) iter1.next();
123
				filter = element.getFilter();
124
				if (filter != null) {
125
					String filterName = filter.getName();
126
					FilterQueries fq = FilterResourceHandler.instance().filter(filterName);
127
					if(fq != null){
128
						boolean flag = true;
129
						for (Iterator iter2 = filterList.iterator(); iter2.hasNext();) {
130
							if(((FilterQueries)iter2.next()).name().equals(fq.name())){
131
								flag = false;
132
								break;
133
							}
134
						}
135
						if(flag){
136
							filterList.add(fq);
137
						}
138
					}
139
				}
140
			}
141
		}
142
	}
143
111
	protected List populateFilterList() {
144
	protected List populateFilterList() {
112
		
145
		
113
		lsMgr = LogSetManager.getInstance();
146
		lsMgr = LogSetManager.getInstance();
(-)src/org/eclipse/tptp/monitoring/logui/internal/wizards/ImportLogSetsUI.java (-3 / +81 lines)
Lines 12-23 Link Here
12
12
13
package org.eclipse.tptp.monitoring.logui.internal.wizards;
13
package org.eclipse.tptp.monitoring.logui.internal.wizards;
14
14
15
import java.io.ByteArrayInputStream;
15
import java.io.File;
16
import java.io.File;
16
import java.io.FileInputStream;
17
import java.io.FileInputStream;
17
import java.io.IOException;
18
import java.io.IOException;
19
import java.io.InputStream;
18
import java.util.ArrayList;
20
import java.util.ArrayList;
21
import java.util.Iterator;
19
import java.util.List;
22
import java.util.List;
20
23
24
import javax.xml.parsers.DocumentBuilderFactory;
25
import org.eclipse.emf.common.util.URI;
26
import org.eclipse.hyades.ui.filters.internal.util.FilterQueries;
27
import org.eclipse.hyades.ui.filters.internal.util.FilterResourceFileHandler;
21
import org.eclipse.hyades.ui.internal.util.ContextIds;
28
import org.eclipse.hyades.ui.internal.util.ContextIds;
22
import org.eclipse.hyades.ui.internal.util.XMLUtil;
29
import org.eclipse.hyades.ui.internal.util.XMLUtil;
23
import org.eclipse.jface.dialogs.IMessageProvider;
30
import org.eclipse.jface.dialogs.IMessageProvider;
Lines 28-34 Link Here
28
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
35
import org.eclipse.tptp.monitoring.logui.internal.MonitoringLogUIPlugin;
29
import org.eclipse.tptp.platform.common.ui.internal.CommonUIPlugin;
36
import org.eclipse.tptp.platform.common.ui.internal.CommonUIPlugin;
30
import org.eclipse.ui.PlatformUI;
37
import org.eclipse.ui.PlatformUI;
38
import org.w3c.dom.Document;
31
import org.w3c.dom.Element;
39
import org.w3c.dom.Element;
40
import org.w3c.dom.Node;
32
import org.w3c.dom.NodeList;
41
import org.w3c.dom.NodeList;
33
42
34
public class ImportLogSetsUI extends ImportExportLogSetsUI {
43
public class ImportLogSetsUI extends ImportExportLogSetsUI {
Lines 45-60 Link Here
45
	public boolean finish() {
54
	public boolean finish() {
46
		
55
		
47
		List list = doubleList.getTargetItems();
56
		List list = doubleList.getTargetItems();
57
		List filterList = new ArrayList();
58
		FilterResourceFileHandler rSource = populateLogSetFilterXML();
48
		String name=null;
59
		String name=null;
49
		for(int idx=0; idx<list.size(); idx++)
60
		for(int idx=0; idx<list.size(); idx++)
50
		{
61
		{
51
			Element elem = (Element)list.get(idx);
62
			Element elem = (Element)list.get(idx);
52
			
63
			
53
			if(idx==0)
64
			if(idx==0){
54
				name = elem.getAttribute("name");
65
				name = elem.getAttribute("name");
55
			lsMgr.loadLogSet(elem);
66
				populateLogSetFilterList(rSource,elem,filterList);
67
				lsMgr.loadLogSet(elem);			
68
			}
56
		}
69
		}
57
		
70
		lsMgr.saveLogSetFilters(filterList);
71
		rSource.clear();
72
58
		if(name != null)
73
		if(name != null)
59
		{
74
		{
60
			lsMgr.setDefaultLogSet(name);
75
			lsMgr.setDefaultLogSet(name);
Lines 63-68 Link Here
63
		return true;
78
		return true;
64
	}
79
	}
65
80
81
	private void populateLogSetFilterList(FilterResourceFileHandler rSource , Element elem,List filterList){
82
		NodeList logNodeList = XMLUtil.getChildrenByName(elem,LogSetManager.LOGELEMENT_TAG);
83
		Element element = null;
84
		for (int i = 0, maxi = logNodeList.getLength(); i < maxi; i++) {
85
			if (logNodeList.item(i) instanceof Element) {
86
				element = (Element) logNodeList.item(i);
87
				NodeList filterNodes = XMLUtil.getChildrenByName(element, "filter");
88
				if (filterNodes != null && filterNodes.getLength() > 0) {
89
					if (filterNodes.item(0) instanceof Element) {
90
						String filterName = ((Element) filterNodes.item(0)).getAttribute("name");
91
						FilterQueries fq = rSource.filter(filterName);
92
						if(fq != null){
93
							boolean flag = true;
94
							for (Iterator iter2 = filterList.iterator(); iter2.hasNext();) {
95
								if(((FilterQueries)iter2.next()).name().equals(fq.name())){
96
									flag = false;
97
									break;
98
								}
99
							}
100
							if(flag){
101
								filterList.add(fq);
102
							}
103
						}
104
					}
105
				}
106
			}
107
			
108
		}
109
	}
110
	protected FilterResourceFileHandler populateLogSetFilterXML()
111
	{
112
		String fileName = sourceNameField.getText().trim();
113
		List tempfilterList = new ArrayList();
114
		Node filterNode = null;
115
		if ((new File(fileName)).exists())
116
		{
117
			try {
118
			    FileInputStream inputStream = new FileInputStream(fileName);
119
			    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputStream);
120
			    Element elem = doc.getDocumentElement();
121
			    NodeList nl = elem.getChildNodes();
122
		    	for(int l1 = 0; l1 < nl.getLength(); l1++)
123
			    {
124
			    	if(nl.item(l1).getNodeName().equals(LogSetManager.FILTER_TAG))
125
			    	{
126
			    		filterNode = (Element)nl.item(l1);
127
			    		FilterResourceFileHandler rSource = FilterResourceFileHandler.instance(URI.createFileURI(fileName)); //filters list to store new imported filters 
128
			    		rSource.clear();
129
			    		InputStream is = new ByteArrayInputStream(LogSetManager.toString(filterNode).getBytes());
130
						rSource.load(is, LogSetManager.RESOURCE_OPTIONS);
131
						return rSource;
132
			    	}
133
			    }
134
			}
135
			catch(Exception exception)
136
			{
137
				exception.printStackTrace();
138
				MonitoringLogUIPlugin.log(exception);
139
			}
140
		}
141
		return null;
142
	}
143
66
	protected List populateFilterList()
144
	protected List populateFilterList()
67
	{
145
	{
68
		String fileName = sourceNameField.getText().trim();
146
		String fileName = sourceNameField.getText().trim();
(-)src-common-internal/org/eclipse/hyades/ui/filters/internal/util/FilterResourceFileHandler.java (+34 lines)
Lines 13-19 Link Here
13
package org.eclipse.hyades.ui.filters.internal.util;
13
package org.eclipse.hyades.ui.filters.internal.util;
14
14
15
import java.io.IOException;
15
import java.io.IOException;
16
import java.io.InputStream;
17
import java.io.OutputStream;
16
import java.util.Collections;
18
import java.util.Collections;
19
import java.util.Map;
17
import java.util.Vector;
20
import java.util.Vector;
18
21
19
import org.eclipse.emf.common.util.URI;
22
import org.eclipse.emf.common.util.URI;
Lines 119-124 Link Here
119
			CommonPlugin.logError(e);
122
			CommonPlugin.logError(e);
120
		}	
123
		}	
121
	}
124
	}
125
	public void save(OutputStream oStream,Map resourceMap)
126
	{
127
		try
128
		{
129
	    	if (_resource instanceof XMLResource) {
130
	    		((XMLResource)_resource).setEncoding("UTF-8");
131
	    	}
132
			_resource.save(oStream,resourceMap);
133
			
134
		} catch (IOException e) {
135
			CommonPlugin.logError(e);
136
		}	
137
	}
138
	public void load(InputStream is,Map resourceMap)
139
	{
140
		if (_resource == null)
141
		{
142
			restoreResource();
143
		}
144
		else
145
		{
146
			try
147
			{			
148
				unload(false);
149
				_resource.load(is,resourceMap);
150
			}
151
			catch (IOException e) {
152
				CommonPlugin.logError(e);
153
			}				
154
		}
155
	}
122
	
156
	
123
	public void load()
157
	public void load()
124
	{
158
	{

Return to bug 163352