You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/11/03 19:57:22 UTC

svn commit: r330607 - /portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/

Author: taylor
Date: Thu Nov  3 10:57:08 2005
New Revision: 330607

URL: http://svn.apache.org/viewcvs?rev=330607&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-362
Implemented database support for statistics component

Added:
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPageStatistics.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPortletStatistics.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedUserStatistics.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/LogRecord.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PageLogRecord.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortletLogRecord.java
    portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/UserLogRecord.java

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPageStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPageStatistics.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPageStatistics.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPageStatistics.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+/**
+ * <p>
+ * BatchedPageStatistics
+ * </p>
+ * 
+ * @author <a href="mailto:chris@bluesunrise.com">Chris Schaefer</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: TestPortletEntityDAO.java,v 1.3 2005/05/24 14:43:19 ate Exp $
+ */
+public class BatchedPageStatistics extends BatchedStatistics
+{
+
+    public BatchedPageStatistics(DataSource ds, int batchSize,
+            long msElapsedTimeThreshold, String name)
+    {
+        super(ds, batchSize, msElapsedTimeThreshold, name);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.jetspeed.statistics.impl.BatchedStatistics#canDoRecordType(org.apache.jetspeed.statistics.impl.LogRecord)
+     */
+    public boolean canDoRecordType(LogRecord rec)
+    {
+        return (rec instanceof PageLogRecord);
+    }
+
+    /**
+     * @param stm
+     * @param recordIterator
+     * @throws SQLException
+     */
+    protected void loadOneRecordToStatement(PreparedStatement stm, LogRecord rec)
+            throws SQLException
+    {
+        PageLogRecord record = (PageLogRecord) rec;
+
+        stm.setString(1, record.getIpAddress());
+        stm.setString(2, record.getUserName());
+        stm.setTimestamp(3, record.getTimeStamp());
+        stm.setString(4, record.getPagePath());
+        stm.setInt(5, record.getStatus());
+        stm.setLong(6, record.getMsElapsedTime());
+
+    }
+
+    /**
+     * @param con
+     * @return
+     * @throws SQLException
+     */
+    protected PreparedStatement getPreparedStatement(Connection con)
+            throws SQLException
+    {
+        PreparedStatement stm;
+        stm = con
+                .prepareStatement("INSERT INTO PAGE_STATISTICS VALUES(?,?,?,?,?,?)");
+        return stm;
+    }
+
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPortletStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPortletStatistics.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPortletStatistics.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedPortletStatistics.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jetspeed.statistics.impl;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+/**
+ * Batches up LogRecord statistics, and flushes them periodically to the
+ * appropriate table in the database.
+ * <P>
+ * IMPORTANT: It is the caller's responsibility to insure that the LogRecord
+ * instances added to a BatchedStatistics instance are all of the same type
+ * (Portlet Access, Page Access, or User Logout).
+ * 
+ * @author <a href="mailto:chris@bluesunrise.com">Chris Schaefer</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: TestPortletEntityDAO.java,v 1.3 2005/05/24 14:43:19 ate Exp $
+ */
+public class BatchedPortletStatistics extends BatchedStatistics
+{
+
+    public BatchedPortletStatistics(DataSource ds, int batchSize,
+            long msElapsedTimeThreshold, String name)
+    {
+        super(ds, batchSize, msElapsedTimeThreshold, name);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.jetspeed.statistics.impl.BatchedStatistics#canDoRecordType(org.apache.jetspeed.statistics.impl.LogRecord)
+     */
+    public boolean canDoRecordType(LogRecord rec)
+    {
+        return (rec instanceof PortletLogRecord);
+    }
+
+    /**
+     * @param stm
+     * @param recordIterator
+     * @throws SQLException
+     */
+    protected void loadOneRecordToStatement(PreparedStatement stm, LogRecord rec)
+            throws SQLException
+    {
+        PortletLogRecord record = (PortletLogRecord) rec;
+
+        stm.setString(1, record.getIpAddress());
+        stm.setString(2, record.getUserName());
+        stm.setTimestamp(3, record.getTimeStamp());
+        stm.setString(4, record.getPagePath());
+        stm.setString(5, record.getPortletName());
+        stm.setInt(6, record.getStatus());
+        stm.setLong(7, record.getMsElapsedTime());
+
+    }
+
+    /**
+     * @param con
+     * @return
+     * @throws SQLException
+     */
+    protected PreparedStatement getPreparedStatement(Connection con)
+            throws SQLException
+    {
+        PreparedStatement stm;
+        stm = con
+                .prepareStatement("INSERT INTO PORTLET_STATISTICS VALUES(?,?,?,?,?,?,?)");
+        return stm;
+    }
+
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,221 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.sql.DataSource;
+
+/**
+ * <p>
+ * BatchedStatistics
+ * </p>
+ * 
+ * @author <a href="mailto:chris@bluesunrise.com">Chris Schaefer</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: TestPortletEntityDAO.java,v 1.3 2005/05/24 14:43:19 ate Exp $
+ */
+public abstract class BatchedStatistics implements Runnable
+{
+
+    public BatchedStatistics(DataSource ds, int batchSize,
+            long msElapsedTimeThreshold, String name)
+    {
+        this.ds = ds;
+        this.msElapsedTimeThreshold = msElapsedTimeThreshold;
+        this.batchSize = batchSize;
+        this.name = name;
+        if (this.name == null)
+        {
+            this.name = this.getClass().getName();
+        }
+        msLastFlushTime = System.currentTimeMillis();
+        thread = new Thread(this, name);
+        thread.start();
+        // give a quick break until the thread is running
+        // we know thread is running when done is false
+        while (this.done)
+        {
+            try
+            {
+                Thread.sleep(1);
+            } catch (InterruptedException e)
+            {
+            }
+        }
+
+    }
+
+    protected Connection getConnection() throws SQLException
+    {
+        return ds.getConnection();
+    }
+
+    /**
+     * should only be called from code synchronized to the linked list
+     */
+    private void checkAndDoFlush()
+    {
+        long msCurrentTime = System.currentTimeMillis();
+        if ((logRecords.size() >= batchSize)
+                || (msCurrentTime - msLastFlushTime > msElapsedTimeThreshold))
+        {
+            flush();
+            msLastFlushTime = msCurrentTime;
+        }
+    }
+
+    public void addStatistic(LogRecord logRecord)
+    {
+        synchronized (logRecords)
+        {
+            logRecords.add(logRecord);
+            checkAndDoFlush();
+        }
+    }
+
+    public boolean isDone()
+    {
+        return done;
+    }
+
+    public void tellThreadToStop()
+    {
+        keepRunning = false;
+        //this.thread.notify();
+    }
+
+    private boolean done = true;
+
+    private boolean keepRunning = true;
+
+    public void run()
+    {
+        done = false;
+        while (keepRunning)
+        {
+            try
+            {
+                synchronized(this.thread) {
+                    this.thread.wait(msElapsedTimeThreshold / 4);
+                }
+            } 
+            catch (InterruptedException ie)
+            {
+                keepRunning = false;
+            }
+            synchronized (logRecords)
+            {
+                checkAndDoFlush();
+            }
+        }
+        // force a flush on the way out even if the constraints have not been
+        // met
+        synchronized (logRecords)
+        {
+            flush();
+        }
+        done = true;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.jetspeed.statistics.impl.BatchedStatistics#flush() should
+     *      only be called from code synchronized to the linked list
+     */
+    public void flush()
+    {
+        if (logRecords.isEmpty()) return;
+
+        Connection con = null;
+        PreparedStatement stm = null;
+
+        try
+        {
+            con = getConnection();
+            boolean autoCommit = con.getAutoCommit();
+            con.setAutoCommit(false);
+
+            stm = getPreparedStatement(con);
+            Iterator recordIterator = logRecords.iterator();
+            while (recordIterator.hasNext())
+            {
+                LogRecord record = (LogRecord) recordIterator.next();
+
+                loadOneRecordToStatement(stm, record);
+
+                stm.addBatch();
+            }
+            int[] updateCounts = stm.executeBatch();
+            con.commit();
+            // only clear the records if we actually store them...
+            logRecords.clear();
+            con.setAutoCommit(autoCommit);
+        } catch (SQLException e)
+        {
+            // todo log to standard Jetspeed logger
+            e.printStackTrace();
+        } finally
+        {
+            try
+            {
+                if (stm != null) stm.close();
+            } catch (SQLException se)
+            {
+            }
+            releaseConnection(con);
+        }
+    }
+
+    abstract protected PreparedStatement getPreparedStatement(Connection con)
+            throws SQLException;
+
+    abstract protected void loadOneRecordToStatement(PreparedStatement stm,
+            LogRecord rec) throws SQLException;
+
+    void releaseConnection(Connection con)
+    {
+        try
+        {
+            if (con != null) con.close();
+        } catch (SQLException e)
+        {
+        }
+    }
+
+    protected Thread thread;
+
+    protected long msLastFlushTime = 0;
+
+    protected int batchSize = 10;
+
+    protected long msElapsedTimeThreshold = 5000;
+
+    protected List logRecords = new LinkedList();
+
+    protected DataSource ds = null;
+
+    protected String name;
+
+    public abstract boolean canDoRecordType(LogRecord rec);
+
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedUserStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedUserStatistics.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedUserStatistics.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedUserStatistics.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+/**
+ * <p>
+ * BatchedUserStatistics
+ * </p>
+ * 
+ * @author <a href="mailto:chris@bluesunrise.com">Chris Schaefer</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: TestPortletEntityDAO.java,v 1.3 2005/05/24 14:43:19 ate Exp $
+ */
+public class BatchedUserStatistics extends BatchedStatistics
+{
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.jetspeed.statistics.impl.BatchedStatistics#canDoRecordType(org.apache.jetspeed.statistics.impl.LogRecord)
+     */
+    public boolean canDoRecordType(LogRecord rec)
+    {
+        return (rec instanceof UserLogRecord);
+    }
+
+    public BatchedUserStatistics(DataSource ds, int batchSize,
+            long msElapsedTimeThreshold, String name)
+    {
+        super(ds, batchSize, msElapsedTimeThreshold, name);
+    }
+
+    /**
+     * @param stm
+     * @param recordIterator
+     * @throws SQLException
+     */
+    protected void loadOneRecordToStatement(PreparedStatement stm, LogRecord rec)
+            throws SQLException
+    {
+        UserLogRecord record = (UserLogRecord) rec;
+
+        stm.setString(1, record.getIpAddress());
+        stm.setString(2, record.getUserName());
+        stm.setTimestamp(3, record.getTimeStamp());
+        stm.setInt(4, record.getStatus());
+        stm.setLong(5, record.getMsElapsedTime());
+    }
+
+    /**
+     * @param con
+     * @return
+     * @throws SQLException
+     */
+    protected PreparedStatement getPreparedStatement(Connection con)
+            throws SQLException
+    {
+        PreparedStatement stm;
+        stm = con
+                .prepareStatement("INSERT INTO USER_STATISTICS VALUES(?,?,?,?,?)");
+        return stm;
+    }
+
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/LogRecord.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/LogRecord.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/LogRecord.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/LogRecord.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+import java.sql.Timestamp;
+
+/**
+ * LogRecord
+ * <P>
+ * Abstract class that holds the fields of a log entry generated by
+ * implementations of the PortalStatistics interface.
+ * <P>
+ * Some of the fields are common to all types of log entries; those fields are
+ * implemented in LogRecord. The fields that are specific to a particular type
+ * of log entry need to be implemented in a class that extends LogRecord.
+ * 
+ * @author <a href="mailto:rklein@bluesunrise.com">Richard D. Klein </a>
+ * @version $Id: LogRecord.java 188420 2005-03-23 22:25:50Z rdk $
+ */
+public abstract class LogRecord
+{
+
+    public static final String TYPE_PORTLET = "PORTLET";
+
+    public static final String TYPE_PAGE = "PAGE";
+
+    public static final String TYPE_USER = "USER";
+
+    protected String ipAddress = null;
+
+    protected String logType = null;
+
+    protected long msElapsedTime = 0;
+
+    protected int status = 0;
+
+    protected Timestamp timeStamp = null;
+
+    protected String userName = null;
+
+    public LogRecord(String logType)
+    {
+        this.logType = logType;
+    }
+
+    /**
+     * @return Returns the ipAddress.
+     */
+    public String getIpAddress()
+    {
+        return ipAddress;
+    }
+
+    /**
+     * @param ipAddress
+     *            The ipAddress to set.
+     */
+    public void setIpAddress(String ipAddress)
+    {
+        this.ipAddress = ipAddress;
+    }
+
+    /**
+     * @return Returns the logType.
+     */
+    public String getLogType()
+    {
+        return logType;
+    }
+
+    /**
+     * @param logType
+     *            The logType to set.
+     */
+    public void setLogType(String logType)
+    {
+        this.logType = logType;
+    }
+
+    /**
+     * @return Returns the msElapsedTime.
+     */
+    public long getMsElapsedTime()
+    {
+        return msElapsedTime;
+    }
+
+    /**
+     * @param msElapsedTime
+     *            The msElapsedTime to set.
+     */
+    public void setMsElapsedTime(long msElapsedTime)
+    {
+        this.msElapsedTime = msElapsedTime;
+    }
+
+    /**
+     * @return Returns the status.
+     */
+    public int getStatus()
+    {
+        return status;
+    }
+
+    /**
+     * @param status
+     *            The status to set.
+     */
+    public void setStatus(int status)
+    {
+        this.status = status;
+    }
+
+    /**
+     * @return Returns the timeStamp.
+     */
+    public Timestamp getTimeStamp()
+    {
+        return timeStamp;
+    }
+
+    /**
+     * @param timeStamp
+     *            The timeStamp to set.
+     */
+    public void setTimeStamp(Timestamp timeStamp)
+    {
+        this.timeStamp = timeStamp;
+    }
+
+    /**
+     * @return Returns the userName.
+     */
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    /**
+     * @param userName
+     *            The userName to set.
+     */
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PageLogRecord.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PageLogRecord.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PageLogRecord.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PageLogRecord.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+/**
+ * PageLogRecord
+ * <P>
+ * Extends the abstract class LogRecord to holds the fields of a Page Access log
+ * entry.
+ * 
+ * @author <a href="mailto:rklein@bluesunrise.com">Richard D. Klein </a>
+ * @version $Id: LogRecord.java 188420 2005-03-23 22:25:50Z rdk $
+ */
+public class PageLogRecord extends LogRecord
+{
+
+    protected String pagePath = null;
+
+    public PageLogRecord()
+    {
+        super(LogRecord.TYPE_PAGE);
+    }
+
+    /**
+     * @return Returns the pagePath.
+     */
+    public String getPagePath()
+    {
+        return pagePath;
+    }
+
+    /**
+     * @param pagePath
+     *            The pagePath to set.
+     */
+    public void setPagePath(String pagePath)
+    {
+        this.pagePath = pagePath;
+    }
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortletLogRecord.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortletLogRecord.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortletLogRecord.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortletLogRecord.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+/**
+ * PortletLogRecord
+ * <P>
+ * Extends the abstract class LogRecord to holds the fields of a Portlet Access
+ * log entry.
+ * 
+ * @author <a href="mailto:rklein@bluesunrise.com">Richard D. Klein </a>
+ * @version $Id: LogRecord.java 188420 2005-03-23 22:25:50Z rdk $
+ */
+public class PortletLogRecord extends LogRecord
+{
+
+    protected String portletName = null;
+
+    protected String pagePath = null;
+
+    public PortletLogRecord()
+    {
+        super(LogRecord.TYPE_PORTLET);
+    }
+
+    /**
+     * @return Returns the pagePath.
+     */
+    public String getPagePath()
+    {
+        return pagePath;
+    }
+
+    /**
+     * @param pagePath
+     *            The pagePath to set.
+     */
+    public void setPagePath(String pagePath)
+    {
+        this.pagePath = pagePath;
+    }
+
+    /**
+     * @return Returns the portletName.
+     */
+    public String getPortletName()
+    {
+        return portletName;
+    }
+
+    /**
+     * @param portletName
+     *            The portletName to set.
+     */
+    public void setPortletName(String portletName)
+    {
+        this.portletName = portletName;
+    }
+}

Added: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/UserLogRecord.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/UserLogRecord.java?rev=330607&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/UserLogRecord.java (added)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/UserLogRecord.java Thu Nov  3 10:57:08 2005
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.statistics.impl;
+
+/**
+ * UserLogRecord
+ * <P>
+ * Extends the abstract class LogRecord to holds the fields of a User Logout log
+ * entry.
+ * 
+ * @author <a href="mailto:rklein@bluesunrise.com">Richard D. Klein </a>
+ * @version $Id: LogRecord.java 188420 2005-03-23 22:25:50Z rdk $
+ */
+public class UserLogRecord extends LogRecord
+{
+
+    public UserLogRecord()
+    {
+        super(LogRecord.TYPE_USER);
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org