ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/filter/plugins/EnforceEssentialData__Plugin.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/filter/plugins/EnforceEssentialData__Plugin.java (file contents):
Revision 1.1 by tdb, Wed Dec 6 22:59:29 2000 UTC vs.
Revision 1.14 by tdb, Wed Feb 5 16:43:47 2003 UTC

# Line 1 | Line 1
1 < //---PACKAGE DECLARATION---
2 < package uk.ac.ukc.iscream.filter.plugins;
3 <
4 < //---IMPORTS---
5 < import uk.ac.ukc.iscream.filter.PluginFilter;
6 < import uk.ac.ukc.iscream.util.XMLPacket;
7 <
8 < /**
9 < * A first plugin! ;-)
10 < * this one rejects packets that do not contain all of the 'essential' data.
11 < *
12 < * @author  $Author$
13 < * @version $Id$
14 < */
15 < public class EnforceEssentialData__Plugin implements PluginFilter {
16 <
17 < //---FINAL ATTRIBUTES---
18 <
19 <    /**
20 <     * The current CVS revision of this class
21 <     */
22 <    public final String REVISION = "$Revision$";
23 <    
24 <    public final String DESC = "Rejects packets that do not have an ip, machine_name, seq_no and date specified as attributes of the root packet tag.";
25 <    
26 < //---STATIC METHODS---
27 <
28 < //---CONSTRUCTORS---
29 <
30 < //---PUBLIC METHODS---
31 <
32 <    // apply the filter and return true if successful.
33 <    public boolean runFilter(XMLPacket packet){
34 <        
35 <        // return false if any of the essential data is not present.
36 <        if (packet.getParam("packet.attributes.machine_name") == null
37 <                || packet.getParam("packet.attributes.ip") == null
38 <                || packet.getParam("packet.attributes.seq_no") == null
39 <                || packet.getParam("packet.attributes.date") == null){
40 <            return false;
41 <        }
42 <        
43 <        // otherwise return true!
44 <        return true;
45 <        
46 <    }
47 <
48 <    /**
49 <     * Overrides the {@link java.lang.Object#toString() Object.toString()}
50 <     * method to provide clean logging (every class should have this).
51 <     *
52 <     * @return the name of this class and its CVS revision
53 <     */
54 <    public String toString() {
55 <        return this.getClass().getName() + "(" + REVISION.substring(11, REVISION.length() - 2) + ")";
56 <    }
57 <
58 <    // return the String representation of what the filter does
59 <    public String getDescription(){
60 <        return DESC;
61 <    }
62 <
63 < //---PRIVATE METHODS---
64 <
65 < //---ACCESSOR/MUTATOR METHODS---
66 <
67 < //---ATTRIBUTES---
68 <
69 < //---STATIC ATTRIBUTES---
70 <
71 < }
1 > /*
2 > * i-scream central monitoring system
3 > * http://www.i-scream.org.uk
4 > * Copyright (C) 2000-2002 i-scream
5 > *
6 > * This program is free software; you can redistribute it and/or
7 > * modify it under the terms of the GNU General Public License
8 > * as published by the Free Software Foundation; either version 2
9 > * of the License, or (at your option) any later version.
10 > *
11 > * This program is distributed in the hope that it will be useful,
12 > * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 > * GNU General Public License for more details.
15 > *
16 > * You should have received a copy of the GNU General Public License
17 > * along with this program; if not, write to the Free Software
18 > * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 > */
20 >
21 > //---PACKAGE DECLARATION---
22 > package uk.org.iscream.cms.server.filter.plugins;
23 >
24 > //---IMPORTS---
25 > import uk.org.iscream.cms.server.filter.PluginFilter;
26 > import uk.org.iscream.cms.server.filter.*;
27 > import uk.org.iscream.cms.server.core.*;
28 > import uk.org.iscream.cms.util.*;
29 > import uk.org.iscream.cms.server.componentmanager.*;
30 >
31 > /**
32 > * This plugin rejects packets that do not
33 > * contain all of the 'essential' data.
34 > *
35 > * @author  $Author$
36 > * @version $Id$
37 > */
38 > public class EnforceEssentialData__Plugin implements PluginFilter {
39 >
40 > //---FINAL ATTRIBUTES---
41 >
42 >    /**
43 >     * The current CVS revision of this class
44 >     */
45 >    public final String REVISION = "$Revision$";
46 >    
47 >    public final String DESC = "Rejects packets that do not have an ip, machine_name, seq_no, date and type specified as attributes of the root packet tag.";
48 >    
49 > //---STATIC METHODS---
50 >
51 > //---CONSTRUCTORS---
52 >
53 > //---PUBLIC METHODS---
54 >
55 >    // apply the filter and return true if successful.
56 >    public boolean runFilter(XMLPacket packet){
57 >        
58 >        // return true if a heartbeat packet seems ok
59 >        if (packet.getParam("packet.attributes.type").equals("heartbeat")
60 >                && packet.getParam("packet.attributes.date") != null
61 >                && packet.getParam("packet.attributes.ip") != null
62 >                && packet.getParam("packet.attributes.machine_name") != null){
63 >            return true;
64 >        }
65 >        
66 >        // return true if a queueStat packet seems ok
67 >        if (packet.getParam("packet.attributes.type").equals("queueStat")
68 >                && packet.getParam("packet.attributes.date") != null
69 >                && packet.getParam("packet.attributes.name") != null){
70 >            return true;
71 >        }
72 >        
73 >        // return false if any of the essential data is not present
74 >        // in a "data" packet
75 >        if (packet.getParam("packet.attributes.machine_name") == null
76 >                || packet.getParam("packet.attributes.ip") == null
77 >                || packet.getParam("packet.attributes.seq_no") == null
78 >                || packet.getParam("packet.attributes.date") == null
79 >                || packet.getParam("packet.attributes.type") == null){
80 >            return false;
81 >        }
82 >        
83 >        // otherwise return true!
84 >        return true;
85 >        
86 >    }
87 >
88 >    /**
89 >     * Overrides the {@link java.lang.Object#toString() Object.toString()}
90 >     * method to provide clean logging (every class should have this).
91 >     *
92 >     * This uses the uk.org.iscream.cms.util.NameFormat class
93 >     * to format the toString()
94 >     *
95 >     * @return the name of this class and its CVS revision
96 >     */
97 >    public String toString() {
98 >        return FormatName.getName(
99 >            _name,
100 >            getClass().getName(),
101 >            REVISION);
102 >    }
103 >
104 >    /**
105 >     * return the String representation of what the filter does
106 >     */
107 >    public String getDescription(){
108 >        return DESC;
109 >    }
110 >
111 > //---PRIVATE METHODS---
112 >
113 > //---ACCESSOR/MUTATOR METHODS---
114 >
115 > //---ATTRIBUTES---
116 >
117 >    /**
118 >     * This is the friendly identifier of the
119 >     * component this class is running in.
120 >     * eg, a Filter may be called "filter1",
121 >     * If this class does not have an owning
122 >     * component,  a name from the configuration
123 >     * can be placed here.  This name could also
124 >     * be changed to null for utility classes.
125 >     */
126 >    private String _name = FilterMain.NAME;
127 >
128 >    /**
129 >     * This holds a reference to the
130 >     * system logger that is being used.
131 >     */
132 >    private Logger _logger = ReferenceManager.getInstance().getLogger();
133 >
134 > //---STATIC ATTRIBUTES---
135 >
136 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines