init commit logstats bsd source
This commit is contained in:
parent
00a52478df
commit
99c93dbc0c
42
.gitignore
vendored
Normal file
42
.gitignore
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# Ignore some files in the logstats project.
|
||||
#
|
||||
|
||||
# Ignore all maven target directories
|
||||
/target
|
||||
*/target
|
||||
*/*/target
|
||||
*/*/*/target
|
||||
|
||||
# Ignore leftovers of really failed release build
|
||||
release.properties
|
||||
pom.xml.next
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.backup
|
||||
pom.xml.branch
|
||||
pom.xml.tag
|
||||
# Ignore version plugin backup
|
||||
pom.xml.versionsBackup
|
||||
|
||||
|
||||
# Ignore C/java/images binary files
|
||||
*.o
|
||||
*.hex
|
||||
*.dat
|
||||
*.bmp
|
||||
*.gif
|
||||
*.pdf
|
||||
|
||||
# Ignore netbeans directory
|
||||
nbproject
|
||||
|
||||
# Ignore mac finder files
|
||||
.DS_Store
|
||||
|
||||
# Ignore windows files.
|
||||
Thumbs.db
|
||||
Desktop.ini
|
||||
|
||||
# Ignore auto eclipse plugins settings
|
||||
org.eclipse.wst.common.component
|
||||
org.eclipse.wst.common.project.facet.core.xml
|
2
.project
2
.project
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-base</name>
|
||||
<name>logstats</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
|
6
logstats-ear/.classpath
Normal file
6
logstats-ear/.classpath
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
29
logstats-ear/.project
Normal file
29
logstats-ear/.project
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-ear</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
3
logstats-ear/.settings/org.eclipse.core.resources.prefs
Normal file
3
logstats-ear/.settings/org.eclipse.core.resources.prefs
Normal file
|
@ -0,0 +1,3 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
13
logstats-ear/.settings/org.eclipse.jdt.core.prefs
Normal file
13
logstats-ear/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,13 @@
|
|||
#Thu Jun 10 02:50:42 CEST 2010
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.4
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.4
|
5
logstats-ear/.settings/org.eclipse.m2e.core.prefs
Normal file
5
logstats-ear/.settings/org.eclipse.m2e.core.prefs
Normal file
|
@ -0,0 +1,5 @@
|
|||
#Mon Jan 02 23:18:47 CET 2012
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
9
logstats-ear/.settings/org.maven.ide.eclipse.prefs
Normal file
9
logstats-ear/.settings/org.maven.ide.eclipse.prefs
Normal file
|
@ -0,0 +1,9 @@
|
|||
#Wed Jun 09 21:35:29 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
3
logstats-ear/.settings/org.maven.ide.eclipse.wtp.prefs
Normal file
3
logstats-ear/.settings/org.maven.ide.eclipse.wtp.prefs
Normal file
|
@ -0,0 +1,3 @@
|
|||
#Tue Jan 03 00:48:11 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
org.maven.ide.eclipse.wtp.enabledProjectSpecificPrefs=false
|
185
logstats-ear/pom.xml
Normal file
185
logstats-ear/pom.xml
Normal file
|
@ -0,0 +1,185 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>logstats</artifactId>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>logstats-ear</artifactId>
|
||||
<packaging>ear</packaging>
|
||||
<name>logstats-ear</name>
|
||||
<description>logstats-ear</description>
|
||||
<build>
|
||||
<finalName>logstats-jboss</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-ear-plugin</artifactId>
|
||||
<configuration>
|
||||
<generateApplicationXml>true</generateApplicationXml>
|
||||
<jboss>
|
||||
<!--
|
||||
<version>5</version>
|
||||
<loader-repository>net.forwardfire.logstats:archive=logstats-ear</loader-repository>
|
||||
<data-sources>
|
||||
<data-source>logstats-ds.xml</data-source>
|
||||
</data-sources>
|
||||
-->
|
||||
</jboss>
|
||||
<modules>
|
||||
<jarModule>
|
||||
<groupId>com.sun.facelets</groupId>
|
||||
<artifactId>jsf-facelets</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
<ejbModule>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-ejb</artifactId>
|
||||
</ejbModule>
|
||||
<webModule>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-war</artifactId>
|
||||
<contextRoot>/logstats</contextRoot>
|
||||
</webModule>
|
||||
|
||||
<jarModule>
|
||||
<groupId>org.x4o</groupId>
|
||||
<artifactId>x4o-core</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
<jarModule>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-core</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
<jarModule>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-backend-jpa</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
<ejbModule>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-xpql-ejb3</artifactId>
|
||||
</ejbModule>
|
||||
<ejbModule>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-ejb3</artifactId>
|
||||
</ejbModule>
|
||||
<jarModule>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-xpql</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
|
||||
<!--
|
||||
<jarModule>
|
||||
<groupId>jgroups</groupId>
|
||||
<artifactId>jgroups</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
|
||||
|
||||
<jarModule>
|
||||
<groupId>de.odysseus.juel</groupId>
|
||||
<artifactId>juel</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
|
||||
<jarModule>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-ri</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
|
||||
<jarModule>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-api</artifactId>
|
||||
<includeInApplicationXml>true</includeInApplicationXml>
|
||||
</jarModule>
|
||||
-->
|
||||
</modules>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- projects dependcy -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-ejb</artifactId>
|
||||
<type>ejb</type>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-war</artifactId>
|
||||
<type>war</type>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.facelets</groupId>
|
||||
<artifactId>jsf-facelets</artifactId>
|
||||
<version>1.1.11</version>
|
||||
</dependency>
|
||||
|
||||
<!-- X4O dependcy -->
|
||||
<dependency>
|
||||
<groupId>org.x4o</groupId>
|
||||
<artifactId>x4o-core</artifactId>
|
||||
<version>${x4o-core.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Vasc depency -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-backend-jpa</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Xtes depency -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-xpql-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
<type>ejb</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
<type>ejb</type>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>jgroups</groupId>
|
||||
<artifactId>jgroups</artifactId>
|
||||
<version>2.6.2</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- X4O depency for EL
|
||||
<dependency>
|
||||
<groupId>de.odysseus.juel</groupId>
|
||||
<artifactId>juel</artifactId>
|
||||
<version>2.1.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-ri</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-api</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
15
logstats-ejb/.classpath
Normal file
15
logstats-ejb/.classpath
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jst.component.nondependency" value=""/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
36
logstats-ejb/.project
Normal file
36
logstats-ejb/.project
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-ejb</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
7
logstats-ejb/.settings/org.eclipse.core.resources.prefs
Normal file
7
logstats-ejb/.settings/org.eclipse.core.resources.prefs
Normal file
|
@ -0,0 +1,7 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
13
logstats-ejb/.settings/org.eclipse.jdt.core.prefs
Normal file
13
logstats-ejb/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,13 @@
|
|||
#Mon Jun 14 01:44:40 CEST 2010
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
5
logstats-ejb/.settings/org.eclipse.m2e.core.prefs
Normal file
5
logstats-ejb/.settings/org.eclipse.m2e.core.prefs
Normal file
|
@ -0,0 +1,5 @@
|
|||
#Mon Jan 02 23:18:47 CET 2012
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
9
logstats-ejb/.settings/org.maven.ide.eclipse.prefs
Normal file
9
logstats-ejb/.settings/org.maven.ide.eclipse.prefs
Normal file
|
@ -0,0 +1,9 @@
|
|||
#Wed Jun 09 21:36:34 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
92
logstats-ejb/pom.xml
Normal file
92
logstats-ejb/pom.xml
Normal file
|
@ -0,0 +1,92 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>logstats</artifactId>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>logstats-ejb</artifactId>
|
||||
<packaging>ejb</packaging>
|
||||
<name>logstats-ejb</name>
|
||||
<description>logstats-ejb</description>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-ejb-plugin</artifactId>
|
||||
<configuration>
|
||||
<ejbVersion>3.0</ejbVersion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>javax.ejb</groupId>
|
||||
<artifactId>ejb-api</artifactId>
|
||||
<version>3.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>persistence-api</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-annotations</artifactId>
|
||||
<version>3.4.0.GA</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- X4O dependcy -->
|
||||
<dependency>
|
||||
<groupId>org.x4o</groupId>
|
||||
<artifactId>x4o-core</artifactId>
|
||||
<version>${x4o-core.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-ri</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-api</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Vasc depency -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-backend-jpa</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-xpql-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- quick fix for quartz ... -->
|
||||
<dependency>
|
||||
<groupId>opensymphony</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
<version>1.6.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,437 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.jobs;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.ejb.ActivationConfigProperty;
|
||||
import javax.ejb.EJB;
|
||||
import javax.ejb.MessageDriven;
|
||||
import javax.ejb.TransactionManagement;
|
||||
import javax.ejb.TransactionManagementType;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.PersistenceContext;
|
||||
import javax.transaction.NotSupportedException;
|
||||
import javax.transaction.SystemException;
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
//import org.jboss.annotation.ejb.ResourceAdapter;
|
||||
//import org.jboss.ejb3.annotation.ResourceAdapter;
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
import net.forwardfire.logstats.ejb.models.LogHost;
|
||||
import net.forwardfire.logstats.ejb.models.LogLevel;
|
||||
import net.forwardfire.logstats.ejb.models.LogServerRun;
|
||||
import net.forwardfire.logstats.ejb.models.LogSource;
|
||||
import net.forwardfire.logstats.ejb.models.LogStats;
|
||||
import net.forwardfire.logstats.ejb.models.LogValueLine;
|
||||
import net.forwardfire.logstats.ejb.models.LogValueType;
|
||||
|
||||
import org.quartz.InterruptableJob;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.quartz.UnableToInterruptJobException;
|
||||
|
||||
import net.forwardfire.vasc.xpql.XPQLParser;
|
||||
import net.forwardfire.vasc.xpql.ejb3.XpqlQueryManager;
|
||||
import net.forwardfire.vasc.xpql.query.Query;
|
||||
|
||||
/**
|
||||
* 1.0 03 Aug 2007
|
||||
*
|
||||
* A "Cron-Expression" is a string comprised of 6 or 7 fields separated by white space. The 6 mandatory and 1 optional fields are as follows:
|
||||
* FIELD NAME ALLOWED VALUES ALLOWED SPECIAL CHARACTERS
|
||||
* Seconds 0-59 , - * /
|
||||
* Minutes 0-59 , - * /
|
||||
* Hours 0-23 , - * /
|
||||
* Day-of-month 1-31 , - * ? / L W C
|
||||
* Month 1-12 or JAN-DEC , - * /
|
||||
* Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
|
||||
* Year (Optional) empty, 1970-2099 , - * /
|
||||
*
|
||||
* MORE INFO: http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html
|
||||
*
|
||||
*
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Sep 13, 2007
|
||||
*/
|
||||
@MessageDriven(
|
||||
messageListenerInterface=Job.class,
|
||||
activationConfig = {
|
||||
@ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = "13 */2 * * * ?"),
|
||||
@ActivationConfigProperty(propertyName = "jobName", propertyValue = "UpdateIndexJob"),
|
||||
@ActivationConfigProperty(propertyName = "jobGroup", propertyValue = "system")
|
||||
})
|
||||
//@ResourceAdapter("quartz-ra.rar")
|
||||
@TransactionManagement(TransactionManagementType.BEAN)
|
||||
public class UpdateIndexJob implements InterruptableJob {
|
||||
|
||||
private Logger logger = Logger.getLogger(UpdateIndexJob.class.getName());
|
||||
|
||||
@EJB(beanInterface=XpqlQueryManager.IRemote.class)
|
||||
private XpqlQueryManager xtesManager;
|
||||
|
||||
@PersistenceContext
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Resource
|
||||
private UserTransaction utx;
|
||||
|
||||
private static boolean running = false;
|
||||
|
||||
private int count = 0;
|
||||
|
||||
private volatile boolean interrupted = false;
|
||||
|
||||
static public Queue<LogData> logDataRealtime = new LinkedBlockingQueue<LogData>();
|
||||
|
||||
/**
|
||||
* @see org.quartz.InterruptableJob#interrupt()
|
||||
*/
|
||||
public void interrupt() throws UnableToInterruptJobException {
|
||||
interrupted=true;
|
||||
logger.info("Job interrupted");
|
||||
}
|
||||
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
logger.info("executing UpdateIndexJob job");
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
if (running) {
|
||||
//serverLogManager.logMessage(UpdateIndexJob,"UpdateIndexJob is already running.");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
running=true;
|
||||
|
||||
long startDate = System.currentTimeMillis();
|
||||
long lastId = 0l;
|
||||
try {
|
||||
LogServerRun last = (LogServerRun)xtesManager.executeObject("LogServerRun.getLast", null);
|
||||
lastId = last.getLastDataId();
|
||||
} catch (NoResultException nre) {
|
||||
// first run on this DB
|
||||
}
|
||||
|
||||
// cache some lists for 5min
|
||||
List<LogValueLine> logValueLines = (List)xtesManager.execute("LogValueLine.getAllIndexActive",null);
|
||||
List<LogHost> logHosts = (List)xtesManager.execute("LogHost.getAll",null);
|
||||
List<LogSource> logSources = (List)xtesManager.execute("LogSource.getAll",null);
|
||||
List<LogValueLineData> lineData = prepareData(logValueLines);
|
||||
logger.info("Cached data sizes; logValueLines: "+logValueLines.size()+" logHosts: "+logHosts.size()+" logSources: "+logSources.size()+" lineData: "+lineData.size() );
|
||||
|
||||
if (lineData.isEmpty()) {
|
||||
return; // no data to match against
|
||||
}
|
||||
|
||||
// loop until time is over
|
||||
while (true) {
|
||||
Query q = xtesManager.getQuery("LogData.getFromId");
|
||||
String sql = q.toPreparedSQL(q);
|
||||
javax.persistence.Query q2 = entityManager.createQuery(sql);
|
||||
q2.setParameter(1, lastId);
|
||||
q2.setMaxResults(1000);
|
||||
List<LogData> logData = q2.getResultList();
|
||||
if (logData.isEmpty()==false) {
|
||||
logger.info("Got log data size: "+logData.size());
|
||||
long lastIdNew = parseLogData(logData,lineData,logHosts,logSources);
|
||||
if (lastIdNew>0) {
|
||||
lastId = lastIdNew;
|
||||
}
|
||||
}
|
||||
if (interrupted) {
|
||||
break;
|
||||
}
|
||||
long thisTime = System.currentTimeMillis();
|
||||
long diffTime = thisTime-startTime;
|
||||
long minTime = 100*1000; // stop working just 20sec before next fire !!
|
||||
if (diffTime>minTime) {
|
||||
break;
|
||||
}
|
||||
Thread.sleep(10*1000); // sleep 10sec before checking again for new records.
|
||||
}
|
||||
|
||||
LogServerRun thisRun = new LogServerRun();
|
||||
thisRun.setLastDataId(lastId);
|
||||
thisRun.setStartDate(new Date(startDate));
|
||||
thisRun.setStopDate(new Date());
|
||||
|
||||
utx.begin();
|
||||
entityManager.persist(thisRun);
|
||||
utx.commit();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
//serverLogManager.logException(e);
|
||||
} finally {
|
||||
running=false;
|
||||
long endTime = System.currentTimeMillis();
|
||||
logger.info("UpdateIndexJob done in: "+(endTime-startTime)+" ms updated records: "+count);
|
||||
//serverLogManager.logMessage(UpdateIndexJob.class,"Total UpdateIndexJob updated: "+count+" in "+(endTime-startTime)+" ms");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private List<LogValueLineData> prepareData(List<LogValueLine> logValueLines) throws Exception {
|
||||
// create logValueLine List
|
||||
List<LogValueLineData> lines = new ArrayList<LogValueLineData>(logValueLines.size());
|
||||
for (LogValueLine line:logValueLines) {
|
||||
|
||||
if (line.getActive()==false) {
|
||||
continue;
|
||||
}
|
||||
// todo: check start/stop date
|
||||
|
||||
// setup data obj
|
||||
LogValueLineData data = new LogValueLineData();
|
||||
data.logStats = new HashMap<String,LogStats>(100);
|
||||
data.logValueLine=line;
|
||||
|
||||
String match = line.getMatchRegex();
|
||||
if (match.isEmpty()) {
|
||||
logger.info("Skipped LogValueLine because match regex is empty.");
|
||||
continue;
|
||||
}
|
||||
data.matchPattern = Pattern.compile(match);
|
||||
|
||||
// fill regex
|
||||
String regex = line.getSplitRegex();
|
||||
if (regex.isEmpty()) {
|
||||
logger.info("Skipped LogValueLine because split regex is empty.");
|
||||
continue;
|
||||
}
|
||||
data.splitPattern = Pattern.compile(regex);
|
||||
|
||||
lines.add(data);
|
||||
}
|
||||
|
||||
// put already calulated logStats in data obj.
|
||||
List<LogStats> logStats = (List)xtesManager.execute("LogStats.getLastDay",null);
|
||||
for (int i=0;i<logStats.size();i++) {
|
||||
LogStats data = logStats.get(i);
|
||||
for (LogValueLineData line :lines) {
|
||||
if (line.logValueLine.getLogValue().getId().equals(data.getLogValueId())) {
|
||||
line.logStats.put(data.getValueText(),data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (LogValueLineData line:lines) {
|
||||
logger.info("line: "+line.logValueLine.getId()+" logStats: "+line.logStats.size()+" fetchedStats: "+logStats.size());
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
private long parseLogData(List<LogData> logData,List<LogValueLineData> lines,List<LogHost> logHosts,List<LogSource> logSources) throws Exception {
|
||||
|
||||
logger.info("parseLogData size: "+logData.size()+" lines: "+lines.size());
|
||||
// process the raw log data
|
||||
Long lastId = null;
|
||||
for (int i=0;i<logData.size();i++) {
|
||||
if (interrupted) {
|
||||
break;
|
||||
}
|
||||
LogData data = logData.get(i);
|
||||
logger.info("Check line: "+data.getMessage());
|
||||
lastId = data.getId();
|
||||
for (int l=0;l<lines.size();l++) {
|
||||
LogValueLineData line = lines.get(l);
|
||||
|
||||
if (line.logValueLine.getLogHost()!=null && line.logValueLine.getLogHost().getHostname().equals(data.getHostname())==false) {
|
||||
continue; // other host
|
||||
}
|
||||
if (line.logValueLine.getLogLevel()!=null && line.logValueLine.getLogLevel().getLevelNumber().equals(data.getLogLevel())==false) {
|
||||
continue; // other level
|
||||
}
|
||||
if (line.logValueLine.getLogSource()!=null && line.logValueLine.getLogSource().getSource().equals(data.getSource())==false) {
|
||||
continue; // other source
|
||||
}
|
||||
|
||||
Matcher m = line.matchPattern.matcher(data.getMessage());
|
||||
if (m.matches()==false) {
|
||||
continue; // message does not match
|
||||
}
|
||||
|
||||
|
||||
String valueType = line.logValueLine.getLogValue().getLogValueType().getValueType();
|
||||
|
||||
// split
|
||||
String[] columns = line.splitPattern.split(data.getMessage());
|
||||
String value = getString(columns,line.logValueLine.getValueIndexNumber());
|
||||
|
||||
int timeNumber = 0;
|
||||
if (LogValueType.VALUE_COUNT.equals(valueType)==false) {
|
||||
String time = getString(columns,line.logValueLine.getTimeIndexNumber());
|
||||
timeNumber = parseTime(time);
|
||||
}
|
||||
|
||||
logger.info("Checking value: '"+value+"' and time: '"+timeNumber+"'");
|
||||
|
||||
LogStats stats = line.logStats.get(value);
|
||||
if (stats==null) {
|
||||
stats = new LogStats();
|
||||
stats.setLogDay(new Date());
|
||||
stats.setCreatedDate(new Date());
|
||||
stats.setValueText(value);
|
||||
stats.setValueCount(0);
|
||||
stats.setTimeTotal(0);
|
||||
stats.setTimeMin(timeNumber);
|
||||
stats.setTimeMax(timeNumber);
|
||||
stats.setTimeAvg(timeNumber);
|
||||
|
||||
LogHost logHost = findOrCreateLogHost(logHosts,data.getHostname());
|
||||
stats.setLogHostId(logHost.getId());
|
||||
stats.setLogHost(logHost.getHostname());
|
||||
|
||||
LogSource logSource = findOrCreateLogSource(logSources,data.getSource());
|
||||
stats.setLogSourceId(logSource.getId());
|
||||
stats.setLogSource(logSource.getSource());
|
||||
|
||||
stats.setLogValueId(line.logValueLine.getLogValue().getId());
|
||||
stats.setLogValue(line.logValueLine.getLogValue().getName());
|
||||
}
|
||||
stats.setValueCount(stats.getValueCount()+1);
|
||||
|
||||
// in counting we don't need to calulate
|
||||
if (LogValueType.VALUE_COUNT.equals(valueType)==false) {
|
||||
stats.setTimeTotal(stats.getTimeTotal()+timeNumber);
|
||||
if (stats.getTimeMin()>timeNumber) {
|
||||
stats.setTimeMin(timeNumber);
|
||||
}
|
||||
if (stats.getTimeMax()<timeNumber) {
|
||||
stats.setTimeMax(timeNumber);
|
||||
}
|
||||
stats.setTimeAvg(stats.getTimeTotal()/stats.getValueCount());
|
||||
}
|
||||
|
||||
// mark changed
|
||||
stats.setModifiedDate(new Date(0));
|
||||
|
||||
//put in map
|
||||
line.logStats.put(stats.getValueText(), stats);
|
||||
}
|
||||
|
||||
// data is processed lets kick to realtime view for last usage of the obj.
|
||||
logDataRealtime.add(data);
|
||||
if (logDataRealtime.size()>100) {
|
||||
logDataRealtime.remove();
|
||||
}
|
||||
}
|
||||
|
||||
// save changed stats records.
|
||||
for (LogValueLineData line:lines) {
|
||||
utx.begin();
|
||||
for (String key:line.logStats.keySet()) {
|
||||
LogStats stats = line.logStats.get(key);
|
||||
if (stats.getModifiedDate().getTime()==0l) {
|
||||
stats.setModifiedDate(new Date());
|
||||
entityManager.merge(stats);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
utx.commit();
|
||||
}
|
||||
|
||||
return lastId;
|
||||
}
|
||||
|
||||
private LogHost findOrCreateLogHost(List<LogHost> logHosts,String hostname) throws Exception {
|
||||
for (int i=0;i<logHosts.size();i++) {
|
||||
LogHost logHost = logHosts.get(i);
|
||||
if (logHost.getHostname().equalsIgnoreCase(hostname)) {
|
||||
return logHost;
|
||||
}
|
||||
}
|
||||
// not found lets create
|
||||
LogHost logHost = new LogHost();
|
||||
logHost.setActive(true);
|
||||
logHost.setHostname(hostname);
|
||||
|
||||
utx.begin();
|
||||
logHost = entityManager.merge(logHost);
|
||||
utx.commit();
|
||||
|
||||
logHosts.add(logHost);
|
||||
|
||||
return logHost;
|
||||
}
|
||||
|
||||
private LogSource findOrCreateLogSource(List<LogSource> logSources,String source) throws Exception {
|
||||
for (int i=0;i<logSources.size();i++) {
|
||||
LogSource logSource = logSources.get(i);
|
||||
if (logSource.getSource().equalsIgnoreCase(source)) {
|
||||
return logSource;
|
||||
}
|
||||
}
|
||||
// not found lets create
|
||||
LogSource logSource = new LogSource();
|
||||
logSource.setActive(true);
|
||||
logSource.setSource(source);
|
||||
|
||||
utx.begin();
|
||||
logSource = entityManager.merge(logSource);
|
||||
utx.commit();
|
||||
|
||||
logSources.add(logSource);
|
||||
|
||||
return logSource;
|
||||
}
|
||||
|
||||
private int parseTime(String valueTime) {
|
||||
int msIndex = valueTime.indexOf("ms");
|
||||
if (msIndex>0) {
|
||||
valueTime=valueTime.substring(0, msIndex); // remove "ms" from Long
|
||||
}
|
||||
return new Integer(valueTime);
|
||||
}
|
||||
|
||||
private String getString(String[] lineValues,int index) {
|
||||
try {
|
||||
return lineValues[index];
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class LogValueLineData {
|
||||
LogValueLine logValueLine = null;
|
||||
Pattern matchPattern = null;
|
||||
Pattern splitPattern = null;
|
||||
Map<String,LogStats> logStats = null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.persistence.Id;
|
||||
|
||||
/**
|
||||
* Base class for all enities
|
||||
*
|
||||
* Currenly only implements the overriden equals method.
|
||||
* On list to do;
|
||||
* - hashCode
|
||||
* - 3x date
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Aug 08, 2009
|
||||
*/
|
||||
abstract public class AbstractEntityBase implements Serializable {
|
||||
|
||||
/** The serial version ID */
|
||||
private static final long serialVersionUID = 10l;
|
||||
|
||||
/**
|
||||
* static cacheing so it is only scanned one per classloader
|
||||
*/
|
||||
static private Map<Class<?>,Method> cachedEntityId = new HashMap<Class<?>,Method>(100);
|
||||
|
||||
/**
|
||||
* Scannes the class for the "@Id" annotation and caches the result.
|
||||
*
|
||||
* @param clazz The class the get the id method for.
|
||||
* @return The Method to invoke to return the Id of the clazz.
|
||||
*/
|
||||
static private Method lookupEntityIdMethod(Class<?> clazz) {
|
||||
Method entityId = cachedEntityId.get(clazz);
|
||||
if (entityId!=null) {
|
||||
return entityId;
|
||||
}
|
||||
|
||||
// scan class
|
||||
Method[] methods = clazz.getMethods();
|
||||
for (Method method : methods) {
|
||||
if (method.isAnnotationPresent(Id.class)) {
|
||||
entityId = method;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (entityId==null) {
|
||||
throw new RuntimeException("Can't equal/hash entity bean with no @Id annotation class: "+clazz);
|
||||
}
|
||||
cachedEntityId.put(clazz,entityId);
|
||||
return entityId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see java.lang.Object#equals(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if ( obj == null ) {
|
||||
return false; // false on null
|
||||
}
|
||||
if ( this.hashCode() == obj.hashCode() ) {
|
||||
return true; // true on same object ?
|
||||
}
|
||||
if ( obj.getClass() != this.getClass() ) {
|
||||
return false; // false on other classes incl subclasses !
|
||||
}
|
||||
|
||||
Method entityId = lookupEntityIdMethod(this.getClass());
|
||||
Object idThis = null;
|
||||
Object idObj = null;
|
||||
try {
|
||||
idThis = entityId.invoke(this, (Object[]) null);
|
||||
idObj = entityId.invoke(obj, (Object[]) null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
if (idThis==null | idObj==null) {
|
||||
return super.equals(obj); // no id, do super
|
||||
}
|
||||
boolean result = idThis.equals(idObj);
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDefaultValue;
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascField;
|
||||
import net.forwardfire.vasc.annotations.VascFieldOrder;
|
||||
import net.forwardfire.vasc.annotations.VascFieldType;
|
||||
import net.forwardfire.vasc.annotations.VascI18n;
|
||||
import net.forwardfire.vasc.annotations.VascPrimaryKey;
|
||||
import net.forwardfire.vasc.annotations.VascStyle;
|
||||
import net.forwardfire.vasc.validators.VascObjectNotNull;
|
||||
import net.forwardfire.vasc.validators.VascStringLength;
|
||||
|
||||
/**
|
||||
* Template class for common vasc annotations
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 May 23, 2009
|
||||
*/
|
||||
abstract public class AbstractFieldTemplates {
|
||||
|
||||
/**
|
||||
* Template for id field.
|
||||
*/
|
||||
@VascI18n(name="generic.id.labelText",description="generic.id.toolTipText")
|
||||
@VascPrimaryKey
|
||||
@VascStyle(sizeList=50)
|
||||
@VascFieldOrder(orderIndex=0)
|
||||
@VascField(create=false,editReadOnly=true)
|
||||
abstract public Integer getId();
|
||||
|
||||
/**
|
||||
* Template for name field.
|
||||
*/
|
||||
@VascI18n(name="generic.name.labelText",description="generic.name.toolTipText")
|
||||
@VascDisplayName
|
||||
@VascObjectNotNull
|
||||
@VascStringLength(min=4,max=128)
|
||||
@VascStyle(sizeList=250,sizeEdit=40)
|
||||
@VascFieldOrder(orderIndex=1)
|
||||
abstract public String getName();
|
||||
|
||||
/**
|
||||
* Template for description field.
|
||||
*/
|
||||
@VascI18n(name="generic.description.labelText",description="generic.description.toolTipText")
|
||||
@VascFieldType(type="TextAreaField",properties={"editor.columns=40","editor.rows=5"})
|
||||
@VascField(list=false)
|
||||
@VascStringLength(min=8,max=4096)
|
||||
@VascObjectNotNull
|
||||
@VascFieldOrder(orderIndex=2)
|
||||
abstract public String getDescription();
|
||||
|
||||
/**
|
||||
* Template for active field.
|
||||
*/
|
||||
@VascI18n(name="generic.active.labelText",description="generic.active.toolTipText")
|
||||
@VascDefaultValue(value="true")
|
||||
@VascObjectNotNull
|
||||
@VascFieldOrder(orderIndex=4)
|
||||
abstract public Boolean getActive();
|
||||
|
||||
/**
|
||||
* Template for order number field.
|
||||
*/
|
||||
@VascI18n(name="generic.orderNumber.labelText",description="generic.orderNumber.toolTipText")
|
||||
@VascField(view=false)
|
||||
abstract public Integer getOrderNumber();
|
||||
|
||||
/**
|
||||
* Template for createdDate field.
|
||||
*/
|
||||
@VascI18n(name="generic.createdDate.labelText",description="generic.createdDate.toolTipText")
|
||||
@VascField(create=false,editReadOnly=true)
|
||||
@VascDefaultValue(value="now()")
|
||||
abstract public Date getCreatedDate();
|
||||
|
||||
/**
|
||||
* Template for modifiedDate field.
|
||||
*/
|
||||
@VascI18n(name="generic.modifiedDate.labelText",description="generic.modifiedDate.toolTipText")
|
||||
@VascField(create=false,editReadOnly=true)
|
||||
@VascDefaultValue(value="now()")
|
||||
abstract public Date getModifiedDate();
|
||||
}
|
|
@ -0,0 +1,158 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
import org.hibernate.annotations.ResultCheckStyle;
|
||||
import org.hibernate.annotations.SQLInsert;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogData
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_data")
|
||||
@SequenceGenerator(name="LOG_DATA_ID_SEQ", sequenceName="log_data_global_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
@org.hibernate.annotations.Entity(selectBeforeUpdate=true,dynamicInsert=true,dynamicUpdate=true)
|
||||
@SQLInsert(sql="SQL GENERATED BY dynamicInsert=true",check=ResultCheckStyle.NONE)
|
||||
public class LogData extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Long id = null;
|
||||
private Date logDate = null;
|
||||
private Integer logLevel = null;
|
||||
private String hostname = null;
|
||||
private String source = null;
|
||||
private String message = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_DATA_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logDate
|
||||
*/
|
||||
@Column(name="log_date",nullable=false)
|
||||
@VascDisplayName
|
||||
public Date getLogDate() {
|
||||
return logDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logDate the logDate to set
|
||||
*/
|
||||
public void setLogDate(Date logDate) {
|
||||
this.logDate = logDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logLevel
|
||||
*/
|
||||
@Column(name="log_level",nullable=false)
|
||||
public Integer getLogLevel() {
|
||||
return logLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logLevel the logLevel to set
|
||||
*/
|
||||
public void setLogLevel(Integer logLevel) {
|
||||
this.logLevel = logLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the hostname
|
||||
*/
|
||||
@Column(name="hostname",nullable=false)
|
||||
public String getHostname() {
|
||||
return hostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param hostname the hostname to set
|
||||
*/
|
||||
public void setHostname(String hostname) {
|
||||
this.hostname = hostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the source
|
||||
*/
|
||||
@Column(name="source",nullable=false)
|
||||
public String getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param source the source to set
|
||||
*/
|
||||
public void setSource(String source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the message
|
||||
*/
|
||||
@Column(name="message",nullable=false)
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param message the message to set
|
||||
*/
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
import net.forwardfire.vasc.annotations.VascModelReference;
|
||||
|
||||
/**
|
||||
* LogHost
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_host")
|
||||
@SequenceGenerator(name="LOG_HOST_ID_SEQ", sequenceName="log_host_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogHost extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String hostname = null;
|
||||
private Boolean active = null;
|
||||
private LogHostGroup logHostGroup = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_HOST_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the hostname
|
||||
*/
|
||||
@Column(name="hostname",nullable=false)
|
||||
@VascDisplayName
|
||||
public String getHostname() {
|
||||
return hostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param hostname the hostname to set
|
||||
*/
|
||||
public void setHostname(String hostname) {
|
||||
this.hostname = hostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logHostGroup
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_host_group_id",nullable=true)
|
||||
@VascModelReference
|
||||
public LogHostGroup getLogHostGroup() {
|
||||
return logHostGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logHostGroup the logHostGroup to set
|
||||
*/
|
||||
public void setLogHostGroup(LogHostGroup logHostGroup) {
|
||||
this.logHostGroup = logHostGroup;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogHostGroup
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_host_group")
|
||||
@SequenceGenerator(name="LOG_HOST_GROUP_ID_SEQ", sequenceName="log_host_group_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogHostGroup extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String name = null;
|
||||
private String description = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_HOST_GROUP_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name
|
||||
*/
|
||||
@Column(name="name",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name the name to set
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the description
|
||||
*/
|
||||
@Column(name="description",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param description the description to set
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogLevel
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 13, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_level")
|
||||
@SequenceGenerator(name="LOG_LEVEL_ID_SEQ", sequenceName="log_level_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogLevel extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String levelType = null;
|
||||
private Integer levelNumber = null;
|
||||
private Integer orderNumber = null;
|
||||
private Boolean active = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_LEVEL_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the levelType
|
||||
*/
|
||||
@Column(name="level_type",nullable=false)
|
||||
@VascDisplayName
|
||||
public String getLevelType() {
|
||||
return levelType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param levelType the levelType to set
|
||||
*/
|
||||
public void setLevelType(String levelType) {
|
||||
this.levelType = levelType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the levelNumber
|
||||
*/
|
||||
@Column(name="level_number",nullable=false)
|
||||
public Integer getLevelNumber() {
|
||||
return levelNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param levelNumber the levelNumber to set
|
||||
*/
|
||||
public void setLevelNumber(Integer levelNumber) {
|
||||
this.levelNumber = levelNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the orderNumber
|
||||
*/
|
||||
@Column(name="order_number",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getOrderNumber() {
|
||||
return orderNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param orderNumber the orderNumber to set
|
||||
*/
|
||||
public void setOrderNumber(Integer orderNumber) {
|
||||
this.orderNumber = orderNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogRightRole
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 24, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_right_role")
|
||||
@SequenceGenerator(name="LOG_RIGHT_ROLE_ID_SEQ", sequenceName="log_right_role_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogRightRole extends AbstractEntityBase {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String roleKey = null;
|
||||
private Date createdDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_RIGHT_ROLE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the roleKey
|
||||
*/
|
||||
@VascDisplayName
|
||||
@Column(name="role_key",nullable=false)
|
||||
public String getRoleKey() {
|
||||
return roleKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param roleKey the roleKey to set
|
||||
*/
|
||||
public void setRoleKey(String roleKey) {
|
||||
this.roleKey = roleKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdDate
|
||||
*/
|
||||
@Column(name="created_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getCreatedDate() {
|
||||
return createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param createdDate the createdDate to set
|
||||
*/
|
||||
public void setCreatedDate(Date createdDate) {
|
||||
this.createdDate = createdDate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,122 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogServerRun
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 29, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_server_run")
|
||||
@SequenceGenerator(name="LOG_SERVER_RUN_ID_SEQ", sequenceName="log_server_run_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogServerRun extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private Date startDate = null;
|
||||
private Date stopDate = null;
|
||||
private Long lastDataId = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_SERVER_RUN_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the startDate
|
||||
*/
|
||||
@Column(name="start_date",nullable=false)
|
||||
@VascDisplayName
|
||||
public Date getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param startDate the startDate to set
|
||||
*/
|
||||
public void setStartDate(Date startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the stopDate
|
||||
*/
|
||||
@Column(name="stop_date",nullable=false)
|
||||
public Date getStopDate() {
|
||||
return stopDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param stopDate the stopDate to set
|
||||
*/
|
||||
public void setStopDate(Date stopDate) {
|
||||
this.stopDate = stopDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastDataId
|
||||
*/
|
||||
@Column(name="last_data_id",nullable=false)
|
||||
public Long getLastDataId() {
|
||||
return lastDataId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastDataId the lastDataId to set
|
||||
*/
|
||||
public void setLastDataId(Long lastDataId) {
|
||||
this.lastDataId = lastDataId;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogSource
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 13, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_source")
|
||||
@SequenceGenerator(name="LOG_SOURCE_ID_SEQ", sequenceName="log_source_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogSource extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String source = null;
|
||||
private Boolean active = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_SOURCE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the source
|
||||
*/
|
||||
|
||||
@Column(name="source",nullable=false)
|
||||
@VascDisplayName
|
||||
public String getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param source the source to set
|
||||
*/
|
||||
public void setSource(String source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,320 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
import org.hibernate.annotations.ResultCheckStyle;
|
||||
import org.hibernate.annotations.SQLInsert;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogStats
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 13, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_stats")
|
||||
@SequenceGenerator(name="LOG_STATS_ID_SEQ", sequenceName="log_stats_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
@org.hibernate.annotations.Entity(selectBeforeUpdate=true,dynamicInsert=true,dynamicUpdate=true)
|
||||
@SQLInsert(sql="SQL GENERATED BY dynamicInsert=true",check=ResultCheckStyle.NONE)
|
||||
public class LogStats extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private Date logDay = null;
|
||||
private Integer logHostId = null;
|
||||
private String logHost = null;
|
||||
private Integer logSourceId = null;
|
||||
private String logSource = null;
|
||||
private Integer logValueId = null;
|
||||
private String logValue = null;
|
||||
private Integer timeTotal = null;
|
||||
private Integer timeMin = null;
|
||||
private Integer timeMax = null;
|
||||
private Integer timeAvg = null;
|
||||
private Integer valueCount = null;
|
||||
private String valueText = null;
|
||||
private Date createdDate = null;
|
||||
private Date modifiedDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_STATS_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logDay
|
||||
*/
|
||||
@Column(name="log_day",nullable=false)
|
||||
@VascDisplayName
|
||||
public Date getLogDay() {
|
||||
return logDay;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logDay the logDay to set
|
||||
*/
|
||||
public void setLogDay(Date logDay) {
|
||||
this.logDay = logDay;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logHostId
|
||||
*/
|
||||
@Column(name="log_host_id",nullable=true)
|
||||
public Integer getLogHostId() {
|
||||
return logHostId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logHostId the logHostId to set
|
||||
*/
|
||||
public void setLogHostId(Integer logHostId) {
|
||||
this.logHostId = logHostId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logHost
|
||||
*/
|
||||
@Column(name="log_host",nullable=false)
|
||||
public String getLogHost() {
|
||||
return logHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logHost the logHost to set
|
||||
*/
|
||||
public void setLogHost(String logHost) {
|
||||
this.logHost = logHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logSourceId
|
||||
*/
|
||||
@Column(name="log_source_id",nullable=true)
|
||||
public Integer getLogSourceId() {
|
||||
return logSourceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logSourceId the logSourceId to set
|
||||
*/
|
||||
public void setLogSourceId(Integer logSourceId) {
|
||||
this.logSourceId = logSourceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logSource
|
||||
*/
|
||||
@Column(name="log_source",nullable=false)
|
||||
public String getLogSource() {
|
||||
return logSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logSource the logSource to set
|
||||
*/
|
||||
public void setLogSource(String logSource) {
|
||||
this.logSource = logSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logValueId
|
||||
*/
|
||||
@Column(name="log_value_id",nullable=true)
|
||||
public Integer getLogValueId() {
|
||||
return logValueId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logValueId the logValueId to set
|
||||
*/
|
||||
public void setLogValueId(Integer logValueId) {
|
||||
this.logValueId = logValueId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logValue
|
||||
*/
|
||||
@Column(name="log_value",nullable=false)
|
||||
public String getLogValue() {
|
||||
return logValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logValue the logValue to set
|
||||
*/
|
||||
public void setLogValue(String logValue) {
|
||||
this.logValue = logValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeTotal
|
||||
*/
|
||||
@Column(name="time_total",nullable=false)
|
||||
public Integer getTimeTotal() {
|
||||
return timeTotal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeTotal the timeTotal to set
|
||||
*/
|
||||
public void setTimeTotal(Integer timeTotal) {
|
||||
this.timeTotal = timeTotal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeMin
|
||||
*/
|
||||
@Column(name="time_min",nullable=true)
|
||||
public Integer getTimeMin() {
|
||||
return timeMin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeMin the timeMin to set
|
||||
*/
|
||||
public void setTimeMin(Integer timeMin) {
|
||||
this.timeMin = timeMin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeMax
|
||||
*/
|
||||
@Column(name="time_max",nullable=true)
|
||||
public Integer getTimeMax() {
|
||||
return timeMax;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeMax the timeMax to set
|
||||
*/
|
||||
public void setTimeMax(Integer timeMax) {
|
||||
this.timeMax = timeMax;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeAvg
|
||||
*/
|
||||
@Column(name="time_avg",nullable=true)
|
||||
public Integer getTimeAvg() {
|
||||
return timeAvg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeAvg the timeAvg to set
|
||||
*/
|
||||
public void setTimeAvg(Integer timeAvg) {
|
||||
this.timeAvg = timeAvg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the valueCount
|
||||
*/
|
||||
@Column(name="value_count",nullable=false)
|
||||
public Integer getValueCount() {
|
||||
return valueCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param valueCount the valueCount to set
|
||||
*/
|
||||
public void setValueCount(Integer valueCount) {
|
||||
this.valueCount = valueCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the valueText
|
||||
*/
|
||||
@Column(name="value_text",nullable=false)
|
||||
public String getValueText() {
|
||||
return valueText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param valueText the valueText to set
|
||||
*/
|
||||
public void setValueText(String valueText) {
|
||||
this.valueText = valueText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdDate
|
||||
*/
|
||||
@Column(name="created_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getCreatedDate() {
|
||||
return createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param createdDate the createdDate to set
|
||||
*/
|
||||
public void setCreatedDate(Date createdDate) {
|
||||
this.createdDate = createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the modifiedDate
|
||||
*/
|
||||
@Column(name="modified_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getModifiedDate() {
|
||||
return modifiedDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modifiedDate the modifiedDate to set
|
||||
*/
|
||||
public void setModifiedDate(Date modifiedDate) {
|
||||
this.modifiedDate = modifiedDate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,173 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogUser
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 24, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_user")
|
||||
@SequenceGenerator(name="LOG_USER_ID_SEQ", sequenceName="log_user_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogUser extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String username = null;
|
||||
private String password = null;
|
||||
private Boolean active = null;
|
||||
private String i18nLocale = null;
|
||||
private Date createdDate = null;
|
||||
private Date modifiedDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_USER_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the username
|
||||
*/
|
||||
@VascDisplayName
|
||||
@Column(name="username",nullable=false)
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param username the username to set
|
||||
*/
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the password
|
||||
*/
|
||||
@Column(name="password",nullable=false)
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param password the password to set
|
||||
*/
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the i18nLocale
|
||||
*/
|
||||
@Column(name="i18n_locale",nullable=false)
|
||||
public String getI18nLocale() {
|
||||
return i18nLocale;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param i18nLocale the i18nLocale to set
|
||||
*/
|
||||
public void setI18nLocale(String i18nLocale) {
|
||||
this.i18nLocale = i18nLocale;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdDate
|
||||
*/
|
||||
@Column(name="created_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getCreatedDate() {
|
||||
return createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param createdDate the createdDate to set
|
||||
*/
|
||||
public void setCreatedDate(Date createdDate) {
|
||||
this.createdDate = createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the modifiedDate
|
||||
*/
|
||||
@Column(name="modified_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getModifiedDate() {
|
||||
return modifiedDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modifiedDate the modifiedDate to set
|
||||
*/
|
||||
public void setModifiedDate(Date modifiedDate) {
|
||||
this.modifiedDate = modifiedDate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascField;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
import net.forwardfire.vasc.annotations.VascModelReference;
|
||||
|
||||
/**
|
||||
* LogUserRightRole
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 24, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_user_right_role")
|
||||
@SequenceGenerator(name="LOG_USER_RIGHT_ROLE_ID_SEQ", sequenceName="log_user_right_role_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogUserRightRole extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private LogUser logUser = null;
|
||||
private LogRightRole logRightRole = null;
|
||||
private Date createdDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_USER_RIGHT_ROLE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logUser
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_user_id",nullable=false)
|
||||
@VascModelReference
|
||||
@VascField(edit=false,create=false)
|
||||
public LogUser getLogUser() {
|
||||
return logUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logUser the logUser to set
|
||||
*/
|
||||
public void setLogUser(LogUser logUser) {
|
||||
this.logUser = logUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logRightRole
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_right_role_id",nullable=false)
|
||||
@VascModelReference
|
||||
@VascDisplayName
|
||||
public LogRightRole getLogRightRole() {
|
||||
return logRightRole;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logRightRole the logRightRole to set
|
||||
*/
|
||||
public void setLogRightRole(LogRightRole logRightRole) {
|
||||
this.logRightRole = logRightRole;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdDate
|
||||
*/
|
||||
@Column(name="created_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getCreatedDate() {
|
||||
return createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param createdDate the createdDate to set
|
||||
*/
|
||||
public void setCreatedDate(Date createdDate) {
|
||||
this.createdDate = createdDate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascField;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
import net.forwardfire.vasc.annotations.VascModelReference;
|
||||
|
||||
/**
|
||||
* LogUserSetting
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 24, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_user_setting")
|
||||
@SequenceGenerator(name="LOG_USER_SETTING_ID_SEQ", sequenceName="log_user_setting_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogUserSetting extends AbstractEntityBase {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private LogUser logUser = null;
|
||||
private String name = null;
|
||||
private String value = null;
|
||||
private Date createdDate = null;
|
||||
private Date modifiedDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_USER_SETTING_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logUser
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_user_id",nullable=false)
|
||||
@VascField(list=false)
|
||||
@VascModelReference
|
||||
public LogUser getLogUser() {
|
||||
return logUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logUser the logUser to set
|
||||
*/
|
||||
public void setLogUser(LogUser logUser) {
|
||||
this.logUser = logUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name
|
||||
*/
|
||||
@Column(name="name",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name the name to set
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the value
|
||||
*/
|
||||
@Column(name="value",nullable=false)
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param value the value to set
|
||||
*/
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdDate
|
||||
*/
|
||||
@Column(name="created_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getCreatedDate() {
|
||||
return createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param createdDate the createdDate to set
|
||||
*/
|
||||
public void setCreatedDate(Date createdDate) {
|
||||
this.createdDate = createdDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the modifiedDate
|
||||
*/
|
||||
@Column(name="modified_date",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Date getModifiedDate() {
|
||||
return modifiedDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modifiedDate the modifiedDate to set
|
||||
*/
|
||||
public void setModifiedDate(Date modifiedDate) {
|
||||
this.modifiedDate = modifiedDate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
import net.forwardfire.vasc.annotations.VascModelReference;
|
||||
|
||||
/**
|
||||
* LogValue
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_value")
|
||||
@SequenceGenerator(name="LOG_VALUE_ID_SEQ", sequenceName="log_value_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogValue extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String name = null;
|
||||
private String description = null;
|
||||
private Boolean active = null;
|
||||
private LogValueType logValueType = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_VALUE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name
|
||||
*/
|
||||
@Column(name="name",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name the name to set
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the description
|
||||
*/
|
||||
@Column(name="description",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param description the description to set
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logValueType
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_value_type_id",nullable=false)
|
||||
@VascModelReference
|
||||
public LogValueType getLogValueType() {
|
||||
return logValueType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logValueType the logValueType to set
|
||||
*/
|
||||
public void setLogValueType(LogValueType logValueType) {
|
||||
this.logValueType = logValueType;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,284 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDefaultValue;
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascField;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
import net.forwardfire.vasc.annotations.VascModelReference;
|
||||
|
||||
/**
|
||||
* LogValueLine
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_value_line")
|
||||
@SequenceGenerator(name="LOG_VALUE_LINE_ID_SEQ", sequenceName="log_value_line_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogValueLine extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private Boolean active = null;
|
||||
private LogHost logHost = null;
|
||||
private LogValue logValue = null;
|
||||
private LogLevel logLevel = null;
|
||||
private LogSource logSource = null;
|
||||
private String matchRegex = null;
|
||||
private String splitRegex = null;
|
||||
private Integer timeIndexNumber = null;
|
||||
private Integer valueIndexNumber = null;
|
||||
private Integer valueMinimal = null;
|
||||
private Date startDate = null;
|
||||
private Date stopDate = null;
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_VALUE_LINE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the splitRegex
|
||||
*/
|
||||
@Column(name="split_regex",nullable=false)
|
||||
@VascDisplayName
|
||||
@VascDefaultValue(value="\\s")
|
||||
public String getSplitRegex() {
|
||||
return splitRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param splitRegex the splitRegex to set
|
||||
*/
|
||||
public void setSplitRegex(String splitRegex) {
|
||||
this.splitRegex = splitRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the matchRegex
|
||||
*/
|
||||
@Column(name="match_regex",nullable=false)
|
||||
public String getMatchRegex() {
|
||||
return matchRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param matchRegex the matchRegex to set
|
||||
*/
|
||||
public void setMatchRegex(String matchRegex) {
|
||||
this.matchRegex = matchRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeIndexNumber
|
||||
*/
|
||||
@Column(name="time_index_number",nullable=false)
|
||||
public Integer getTimeIndexNumber() {
|
||||
return timeIndexNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeIndexNumber the timeIndexNumber to set
|
||||
*/
|
||||
public void setTimeIndexNumber(Integer timeIndexNumber) {
|
||||
this.timeIndexNumber = timeIndexNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the valueIndexNumber
|
||||
*/
|
||||
@Column(name="value_index_number",nullable=false)
|
||||
public Integer getValueIndexNumber() {
|
||||
return valueIndexNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param valueIndexNumber the valueIndexNumber to set
|
||||
*/
|
||||
public void setValueIndexNumber(Integer valueIndexNumber) {
|
||||
this.valueIndexNumber = valueIndexNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the valueMinimal
|
||||
*/
|
||||
@Column(name="value_minimal",nullable=true)
|
||||
public Integer getValueMinimal() {
|
||||
return valueMinimal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param valueMinimal the valueMinimal to set
|
||||
*/
|
||||
public void setValueMinimal(Integer valueMinimal) {
|
||||
this.valueMinimal = valueMinimal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the startDate
|
||||
*/
|
||||
@Column(name="start_date",nullable=true)
|
||||
public Date getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param startDate the startDate to set
|
||||
*/
|
||||
public void setStartDate(Date startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the stopDate
|
||||
*/
|
||||
@Column(name="stop_date",nullable=true)
|
||||
public Date getStopDate() {
|
||||
return stopDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param stopDate the stopDate to set
|
||||
*/
|
||||
public void setStopDate(Date stopDate) {
|
||||
this.stopDate = stopDate;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the logHost
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_host_id",nullable=true)
|
||||
@VascModelReference
|
||||
public LogHost getLogHost() {
|
||||
return logHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logHost the logHost to set
|
||||
*/
|
||||
public void setLogHost(LogHost logHost) {
|
||||
this.logHost = logHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logValue
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_value_id",nullable=false)
|
||||
@VascModelReference
|
||||
@VascField(edit=false,list=false)
|
||||
public LogValue getLogValue() {
|
||||
return logValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logValue the logValue to set
|
||||
*/
|
||||
public void setLogValue(LogValue logValue) {
|
||||
this.logValue = logValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logLevel
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_level_id",nullable=false)
|
||||
@VascModelReference
|
||||
public LogLevel getLogLevel() {
|
||||
return logLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logLevel the logLevel to set
|
||||
*/
|
||||
public void setLogLevel(LogLevel logLevel) {
|
||||
this.logLevel = logLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the logSource
|
||||
*/
|
||||
@OneToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(name="log_source_id",nullable=false)
|
||||
@VascModelReference
|
||||
public LogSource getLogSource() {
|
||||
return logSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param logSource the logSource to set
|
||||
*/
|
||||
public void setLogSource(LogSource logSource) {
|
||||
this.logSource = logSource;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import net.forwardfire.vasc.annotations.VascDisplayName;
|
||||
import net.forwardfire.vasc.annotations.VascFieldTemplate;
|
||||
|
||||
/**
|
||||
* LogValueType
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "log_value_type")
|
||||
@SequenceGenerator(name="LOG_VALUE_TYPE_ID_SEQ", sequenceName="log_value_type_id_seq",allocationSize=1)
|
||||
@Cache(usage=CacheConcurrencyStrategy.NONE)
|
||||
public class LogValueType extends AbstractEntityBase {
|
||||
|
||||
private static final long serialVersionUID = 10L;
|
||||
private Integer id = null;
|
||||
private String valueType = null;
|
||||
private Integer orderNumber = null;
|
||||
private Boolean active = null;
|
||||
|
||||
public static final String VALUE_AVG = "VALUE_AVG"; // value and time , time avg
|
||||
public static final String VALUE_COUNT = "VALUE_COUNT"; // value only , count hits.
|
||||
public static final String VALUE_SUM = "VALUE_SUM"; // value only , sum hits
|
||||
public static final String VALUE_TIME = "VALUE_TIME"; // value and time , sum time ?
|
||||
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="LOG_VALUE_TYPE_ID_SEQ")
|
||||
@Column(name="id",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the valueType
|
||||
*/
|
||||
@Column(name="value_type",nullable=false)
|
||||
@VascDisplayName
|
||||
public String getValueType() {
|
||||
return valueType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param valueType the valueType to set
|
||||
*/
|
||||
public void setValueType(String valueType) {
|
||||
this.valueType = valueType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the orderNumber
|
||||
*/
|
||||
@Column(name="order_number",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Integer getOrderNumber() {
|
||||
return orderNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param orderNumber the orderNumber to set
|
||||
*/
|
||||
public void setOrderNumber(Integer orderNumber) {
|
||||
this.orderNumber = orderNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the active
|
||||
*/
|
||||
@Column(name="active",nullable=false)
|
||||
@VascFieldTemplate(templateClass=AbstractFieldTemplates.class)
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param active the active to set
|
||||
*/
|
||||
public void setActive(Boolean active) {
|
||||
this.active = active;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.services;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
//import javax.annotation.security.RolesAllowed;
|
||||
import javax.ejb.EJB;
|
||||
import javax.ejb.SessionContext;
|
||||
import javax.ejb.Stateless;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.PersistenceContext;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogUser;
|
||||
import net.forwardfire.logstats.ejb.models.LogUserRightRole;
|
||||
|
||||
import net.forwardfire.vasc.xpql.ejb3.XpqlQueryManager;
|
||||
import net.forwardfire.vasc.xpql.query.Query;
|
||||
|
||||
|
||||
/**
|
||||
* An simple ejb bean to force an login.
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 16 Jul 2007
|
||||
*/
|
||||
@Stateless(name="ejb/loginManager")
|
||||
public class LoginManager implements LoginManagerRemote {
|
||||
|
||||
@Resource
|
||||
private SessionContext session;
|
||||
|
||||
@EJB(beanInterface=XpqlQueryManager.ILocal.class)
|
||||
private XpqlQueryManager xtesManager;
|
||||
|
||||
@PersistenceContext
|
||||
private EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* Tests for the login role
|
||||
*/
|
||||
//@RolesAllowed("login")
|
||||
public String doClientLogin() {
|
||||
/*
|
||||
FlowUser u = null;
|
||||
try {
|
||||
u = getUser();
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException("Could not lookup user from username: "+session.getCallerPrincipal().getName());
|
||||
}
|
||||
FlowUserSession us = new FlowUserSession();
|
||||
us.setLoginDate(new Date());
|
||||
us.setLogoutDate(null); // set when doing doClientLogout();
|
||||
|
||||
// current_time_in_secs + str_to_int(username)*10E20
|
||||
long timeSS = us.getLoginDate().getTime();
|
||||
int userSS = hashUserName(u.getUsername());
|
||||
int modSS = 10230;
|
||||
long sessionId = timeSS+userSS*modSS;
|
||||
us.setSessionHash(sessionId+"");
|
||||
//System.out.println("Created sessionId: timeSS: "+timeSS+" userSS: "+userSS+" modSS: "+modSS);
|
||||
|
||||
us.setFlowUser(u);
|
||||
entityManager.persist(us);
|
||||
return u.getUsername();
|
||||
*/
|
||||
return "";
|
||||
}
|
||||
|
||||
//@RolesAllowed("login")
|
||||
public void doClientLogout() {
|
||||
try {
|
||||
/*
|
||||
Query q2 = xtesManager.getQuery("FlowUserSession.getLastestByUserName");
|
||||
q2.setQueryParameter("username", session.getCallerPrincipal().getName());
|
||||
q2.setProperty("limit", 1);
|
||||
FlowUserSession userSession = (FlowUserSession)xtesManager.executeObject(q2);
|
||||
userSession.setLogoutDate(new Date());
|
||||
entityManager.merge(userSession);
|
||||
*/
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private int hashUserName(String userName) {
|
||||
int result = 0;
|
||||
for (char c:userName.toCharArray()) {
|
||||
result+=c;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the currenly auth user
|
||||
*/
|
||||
//@RolesAllowed("login")
|
||||
public LogUser getUser() throws Exception {
|
||||
|
||||
if (session.getCallerPrincipal()==null) {
|
||||
return null;
|
||||
}
|
||||
Query q = xtesManager.getQuery("LogUser.getByUsername");
|
||||
q.setQueryParameter("username", session.getCallerPrincipal().getName());
|
||||
return (LogUser)xtesManager.executeObject(q);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fetched the roles for the logged in client
|
||||
* @return
|
||||
*/
|
||||
//@RolesAllowed("login")
|
||||
public List<LogRightRole> getClientRoles() throws Exception {
|
||||
List<LogRightRole> result = new ArrayList<LogRightRole>(5);
|
||||
Query q = xtesManager.getQuery("LogRightRole.getAllByUsername");
|
||||
q.setQueryParameter("username", session.getCallerPrincipal().getName());
|
||||
List<Object> list = xtesManager.execute(q);
|
||||
for (Object o:list) {
|
||||
LogRightRole rr = ((LogRightRole)o);
|
||||
result.add(rr);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.services;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Remote;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogUser;
|
||||
|
||||
|
||||
/**
|
||||
* Remote exported method to force clients to login.
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 16 Jul 2007
|
||||
*/
|
||||
@Remote
|
||||
public interface LoginManagerRemote {
|
||||
|
||||
public String doClientLogin();
|
||||
|
||||
public void doClientLogout();
|
||||
|
||||
public LogUser getUser() throws Exception;
|
||||
|
||||
public List<LogRightRole> getClientRoles() throws Exception;
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.services;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
import javax.ejb.Stateless;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.PersistenceContext;
|
||||
|
||||
import net.forwardfire.logstats.ejb.jobs.UpdateIndexJob;
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
|
||||
import net.forwardfire.vasc.xpql.ejb3.XpqlQueryManager;
|
||||
|
||||
|
||||
/**
|
||||
* An simple ejb bean to get wiki pages
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 9 Nov 2009
|
||||
*/
|
||||
@Stateless(name="ejb/serverManager")
|
||||
public class ServerManager implements ServerManagerRemote {
|
||||
|
||||
@EJB(beanInterface=XpqlQueryManager.ILocal.class)
|
||||
private XpqlQueryManager xtesManager;
|
||||
|
||||
@PersistenceContext
|
||||
private EntityManager entityManager;
|
||||
|
||||
public List<LogData> getRealTimeLogData() {
|
||||
List<LogData> result = new ArrayList<LogData>(200);
|
||||
result.addAll(UpdateIndexJob.logDataRealtime);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public ServerWikiPage getWikiPage(String name) {
|
||||
Map<String,Object> para = new HashMap<String,Object>(1);
|
||||
para.put("name_url", name);
|
||||
ServerWikiPage result = null;
|
||||
try {
|
||||
result = (ServerWikiPage)xtesManager.executeObject("ServerWikiPage.getByNameUrl", para);
|
||||
} catch (NoResultException ee) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();//TODO Auto-generated catch block
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<ServerWikiPageHistory> getWikiPageHistory(Integer serverWikiPageId) {
|
||||
List<ServerWikiPageHistory> result = new ArrayList<ServerWikiPageHistory>(1);
|
||||
return result;
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.ejb.services;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Remote;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remote exported method to get wiki pages
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 09 Nov 2009
|
||||
*/
|
||||
@Remote
|
||||
public interface ServerManagerRemote {
|
||||
|
||||
//public void updateIndex(Date startDate);
|
||||
|
||||
public List<LogData> getRealTimeLogData();
|
||||
|
||||
/*
|
||||
public ServerWikiPage getWikiPage(String name);
|
||||
|
||||
public List<ServerWikiPageHistory> getWikiPageHistory(Integer serverWikiPageId);
|
||||
*/
|
||||
}
|
5
logstats-ejb/src/main/resources/META-INF/ejb-jar.xml
Normal file
5
logstats-ejb/src/main/resources/META-INF/ejb-jar.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
|
||||
<description>logstats-ejb</description>
|
||||
<display-name>logstats-ejb</display-name>
|
||||
</ejb-jar>
|
26
logstats-ejb/src/main/resources/META-INF/jboss.xml
Normal file
26
logstats-ejb/src/main/resources/META-INF/jboss.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jboss>
|
||||
<enterprise-beans>
|
||||
<message-driven>
|
||||
<ejb-name>UpdateIndexJob</ejb-name>
|
||||
<resource-adapter-name>quartz-ra.rar</resource-adapter-name>
|
||||
</message-driven>
|
||||
<!--
|
||||
<session>
|
||||
<ejb-name>xpqlQueryManager</ejb-name>
|
||||
<business-remote>net.forwardfire.xtes.xpql.ejb3.XpqlQueryManagerRemote</business-remote>
|
||||
<ejb-class>net.forwardfire.vasc.xpql.ejb3.XpqlQueryManager</ejb-class>
|
||||
<session-type>Stateless</session-type>
|
||||
<transaction-type>Bean</transaction-type>
|
||||
|
||||
<ejb-ref>
|
||||
<ejb-ref-name>ejb/xpqlQueryManager</ejb-ref-name>
|
||||
<ejb-ref-type>Session</ejb-ref-type>
|
||||
<remote>net.forwardfire.vasc.xpql.ejb3.XpqlQueryManagerRemote</remote>
|
||||
<ejb-link>xpqlQueryManager</ejb-link>
|
||||
<injection-target>xpqlQueryManager</injection-target>
|
||||
</ejb-ref>
|
||||
</session>
|
||||
-->
|
||||
</enterprise-beans>
|
||||
</jboss>
|
23
logstats-ejb/src/main/resources/META-INF/persistence.xml
Normal file
23
logstats-ejb/src/main/resources/META-INF/persistence.xml
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
|
||||
version="1.0">
|
||||
|
||||
<persistence-unit name="logstats" transaction-type="JTA" >
|
||||
|
||||
<jta-data-source>java:logstats_dba</jta-data-source>
|
||||
|
||||
<properties>
|
||||
<property name="jboss.entity.manager.factory.jndi.name" value="java:/logstats_pu_factory"/>
|
||||
<property name="jboss.entity.manager.jndi.name" value="java:/logstats_pu"/>
|
||||
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
|
||||
<property name="hibernate.max_fetch_depth" value="3"/>
|
||||
|
||||
<!-- Print SQL to stdout. -->
|
||||
<property name="hibernate.show_sql" value="true"/>
|
||||
<property name="hibernate.format_sql" value="true"/>
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
</persistence>
|
11
logstats-ejb/src/main/resources/META-INF/vasc-ejb3.xml
Normal file
11
logstats-ejb/src/main/resources/META-INF/vasc-ejb3.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>
|
||||
Files to load
|
||||
</comment>
|
||||
<entry key="load.1">net/forwardfire/logstats/resources/vasc/logstats.xml</entry>
|
||||
<entry key="persistenceUnit">java:/logstats_pu</entry>
|
||||
<entry key="xpqlController">logstats-jboss/ejb/xpqlQueryManager/local</entry>
|
||||
<entry key="i18nBundle">net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB</entry>
|
||||
</properties>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>
|
||||
Files to load
|
||||
</comment>
|
||||
<entry key="load.1">net/forwardfire/logstats/resources/xpql/logstats.xml</entry>
|
||||
<entry key="persistenceUnit">java:/logstats_pu</entry>
|
||||
</properties>
|
|
@ -0,0 +1,173 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
generic.orderNumber.labelText = orderNumber
|
||||
generic.orderNumber.toolTipText = orderNumber
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
vasc.entry.logDataLastDay.listDescription = View logDataLastDay
|
||||
vasc.entry.logDataLastDay.name = logDataLastDay
|
||||
vasc.entry.logHostAdmin.listDescription = View logHostAdmin
|
||||
vasc.entry.logHostAdmin.name = logHostAdmin
|
||||
vasc.entry.logHostGroupAdmin.listDescription = View logHostGroupAdmin
|
||||
vasc.entry.logHostGroupAdmin.name = logHostGroupAdmin
|
||||
vasc.entry.logLevelAdmin.listDescription = View logLevelAdmin
|
||||
vasc.entry.logLevelAdmin.name = logLevelAdmin
|
||||
vasc.entry.logRightRoleAdmin.listDescription = View logRightRoleAdmin
|
||||
vasc.entry.logRightRoleAdmin.name = logRightRoleAdmin
|
||||
vasc.entry.logSourceAdmin.listDescription = View logSourceAdmin
|
||||
vasc.entry.logSourceAdmin.name = logSourceAdmin
|
||||
vasc.entry.logUserAdmin.listDescription = View logUserAdmin
|
||||
vasc.entry.logUserAdmin.name = logUserAdmin
|
||||
vasc.entry.logUserRightRoleLink.listDescription = View logUserRightRoleLink
|
||||
vasc.entry.logUserRightRoleLink.name = logUserRightRoleLink
|
||||
vasc.entry.logUserSettingLink.listDescription = View logUserSettingLink
|
||||
vasc.entry.logUserSettingLink.name = logUserSettingLink
|
||||
vasc.entry.logValueAdmin.listDescription = View logValueAdmin
|
||||
vasc.entry.logValueAdmin.name = logValueAdmin
|
||||
vasc.entry.logValueLineLink.listDescription = View logValueLineLink
|
||||
vasc.entry.logValueLineLink.name = logValueLineLink
|
||||
vasc.entry.logValueTypeAdmin.listDescription = View logValueTypeAdmin
|
||||
vasc.entry.logValueTypeAdmin.name = logValueTypeAdmin
|
||||
|
||||
net.forwardfire.logstats.ejb.models.LogData.VascI18n.description = LogData
|
||||
net.forwardfire.logstats.ejb.models.LogData.VascI18n.name = LogData
|
||||
net.forwardfire.logstats.ejb.models.LogData.hostname.VascI18n.description = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogData.hostname.VascI18n.name = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogData.logDate.VascI18n.description = logDate
|
||||
net.forwardfire.logstats.ejb.models.LogData.logDate.VascI18n.name = logDate
|
||||
net.forwardfire.logstats.ejb.models.LogData.logLevel.VascI18n.description = logLevel
|
||||
net.forwardfire.logstats.ejb.models.LogData.logLevel.VascI18n.name = logLevel
|
||||
net.forwardfire.logstats.ejb.models.LogData.message.VascI18n.description = message
|
||||
net.forwardfire.logstats.ejb.models.LogData.message.VascI18n.name = message
|
||||
net.forwardfire.logstats.ejb.models.LogData.source.VascI18n.description = source
|
||||
net.forwardfire.logstats.ejb.models.LogData.source.VascI18n.name = source
|
||||
net.forwardfire.logstats.ejb.models.LogHost.VascI18n.description = LogHost
|
||||
net.forwardfire.logstats.ejb.models.LogHost.VascI18n.name = LogHost
|
||||
net.forwardfire.logstats.ejb.models.LogHost.hostname.VascI18n.description = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogHost.hostname.VascI18n.name = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogHostGroup.VascI18n.description = logHostGroup
|
||||
net.forwardfire.logstats.ejb.models.LogHostGroup.VascI18n.name = logHostGroup
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.VascI18n.description = LogLevel
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.VascI18n.name = LogLevel
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelNumber.VascI18n.description = levelNumber
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelNumber.VascI18n.name = levelNumber
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelType.VascI18n.description = levelType
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelType.VascI18n.name = levelType
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.VascI18n.description = LogRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.VascI18n.name = LogRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.roleKey.VascI18n.description = roleKey
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.roleKey.VascI18n.name = roleKey
|
||||
net.forwardfire.logstats.ejb.models.LogSource.VascI18n.description = LogSource
|
||||
net.forwardfire.logstats.ejb.models.LogSource.VascI18n.name = LogSource
|
||||
net.forwardfire.logstats.ejb.models.LogSource.source.VascI18n.description = source
|
||||
net.forwardfire.logstats.ejb.models.LogSource.source.VascI18n.name = source
|
||||
net.forwardfire.logstats.ejb.models.LogStats.VascI18n.description = LogStats
|
||||
net.forwardfire.logstats.ejb.models.LogStats.VascI18n.name = LogStats
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logDay.VascI18n.description = logDay
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logDay.VascI18n.name = logDay
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHost.VascI18n.description = logHost
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHost.VascI18n.name = logHost
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHostId.VascI18n.description = logHostId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHostId.VascI18n.name = logHostId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSource.VascI18n.description = logSource
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSource.VascI18n.name = logSource
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSourceId.VascI18n.description = logSourceId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSourceId.VascI18n.name = logSourceId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValue.VascI18n.description = logValue
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValue.VascI18n.name = logValue
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValueId.VascI18n.description = logValueId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValueId.VascI18n.name = logValueId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeAvg.VascI18n.description = timeAvg
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeAvg.VascI18n.name = timeAvg
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMax.VascI18n.description = timeMax
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMax.VascI18n.name = timeMax
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMin.VascI18n.description = timeMin
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMin.VascI18n.name = timeMin
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueCount.VascI18n.description = valueCount
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueCount.VascI18n.name = valueCount
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueText.VascI18n.description = valueText
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueText.VascI18n.name = valueText
|
||||
net.forwardfire.logstats.ejb.models.LogUser.VascI18n.description = LogUser
|
||||
net.forwardfire.logstats.ejb.models.LogUser.VascI18n.name = LogUser
|
||||
net.forwardfire.logstats.ejb.models.LogUser.i18nLocale.VascI18n.description = i18nLocale
|
||||
net.forwardfire.logstats.ejb.models.LogUser.i18nLocale.VascI18n.name = i18nLocale
|
||||
net.forwardfire.logstats.ejb.models.LogUser.password.VascI18n.description = password
|
||||
net.forwardfire.logstats.ejb.models.LogUser.password.VascI18n.name = password
|
||||
net.forwardfire.logstats.ejb.models.LogUser.username.VascI18n.description = username
|
||||
net.forwardfire.logstats.ejb.models.LogUser.username.VascI18n.name = username
|
||||
net.forwardfire.logstats.ejb.models.LogUserRightRole.VascI18n.description = LogUserRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogUserRightRole.VascI18n.name = LogUserRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.VascI18n.description = LogUserSetting
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.VascI18n.name = LogUserSetting
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.value.VascI18n.description = value
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.value.VascI18n.name = value
|
||||
net.forwardfire.logstats.ejb.models.LogValue.VascI18n.description = LogValue
|
||||
net.forwardfire.logstats.ejb.models.LogValue.VascI18n.name = LogValue
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.VascI18n.description = LogValueLine
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.VascI18n.name = LogValueLine
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.splitRegex.VascI18n.description = splitRegex
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.splitRegex.VascI18n.name = splitRegex
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.startDate.VascI18n.description = startDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.startDate.VascI18n.name = startDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.stopDate.VascI18n.description = stopDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.stopDate.VascI18n.name = stopDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.timeIndexNumber.VascI18n.description = timeIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.timeIndexNumber.VascI18n.name = timeIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueIndexNumber.VascI18n.description = valueIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueIndexNumber.VascI18n.name = valueIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueMinimal.VascI18n.description = valueMinimal
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueMinimal.VascI18n.name = valueMinimal
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.VascI18n.description = logValueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.VascI18n.name = logValueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.valueType.VascI18n.description = valueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.valueType.VascI18n.name = valueType
|
|
@ -0,0 +1,174 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
generic.orderNumber.labelText = orderNumber
|
||||
generic.orderNumber.toolTipText = orderNumber
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
|
||||
vasc.entry.logDataLastDay.listDescription = View logDataLastDay
|
||||
vasc.entry.logDataLastDay.name = logDataLastDay
|
||||
vasc.entry.logHostAdmin.listDescription = View logHostAdmin
|
||||
vasc.entry.logHostAdmin.name = logHostAdmin
|
||||
vasc.entry.logHostGroupAdmin.listDescription = View logHostGroupAdmin
|
||||
vasc.entry.logHostGroupAdmin.name = logHostGroupAdmin
|
||||
vasc.entry.logLevelAdmin.listDescription = View logLevelAdmin
|
||||
vasc.entry.logLevelAdmin.name = logLevelAdmin
|
||||
vasc.entry.logRightRoleAdmin.listDescription = View logRightRoleAdmin
|
||||
vasc.entry.logRightRoleAdmin.name = logRightRoleAdmin
|
||||
vasc.entry.logSourceAdmin.listDescription = View logSourceAdmin
|
||||
vasc.entry.logSourceAdmin.name = logSourceAdmin
|
||||
vasc.entry.logUserAdmin.listDescription = View logUserAdmin
|
||||
vasc.entry.logUserAdmin.name = logUserAdmin
|
||||
vasc.entry.logUserRightRoleLink.listDescription = View logUserRightRoleLink
|
||||
vasc.entry.logUserRightRoleLink.name = logUserRightRoleLink
|
||||
vasc.entry.logUserSettingLink.listDescription = View logUserSettingLink
|
||||
vasc.entry.logUserSettingLink.name = logUserSettingLink
|
||||
vasc.entry.logValueAdmin.listDescription = View logValueAdmin
|
||||
vasc.entry.logValueAdmin.name = logValueAdmin
|
||||
vasc.entry.logValueLineLink.listDescription = View logValueLineLink
|
||||
vasc.entry.logValueLineLink.name = logValueLineLink
|
||||
vasc.entry.logValueTypeAdmin.listDescription = View logValueTypeAdmin
|
||||
vasc.entry.logValueTypeAdmin.name = logValueTypeAdmin
|
||||
|
||||
net.forwardfire.logstats.ejb.models.LogData.VascI18n.description = LogData
|
||||
net.forwardfire.logstats.ejb.models.LogData.VascI18n.name = LogData
|
||||
net.forwardfire.logstats.ejb.models.LogData.hostname.VascI18n.description = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogData.hostname.VascI18n.name = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogData.logDate.VascI18n.description = logDate
|
||||
net.forwardfire.logstats.ejb.models.LogData.logDate.VascI18n.name = logDate
|
||||
net.forwardfire.logstats.ejb.models.LogData.logLevel.VascI18n.description = logLevel
|
||||
net.forwardfire.logstats.ejb.models.LogData.logLevel.VascI18n.name = logLevel
|
||||
net.forwardfire.logstats.ejb.models.LogData.message.VascI18n.description = message
|
||||
net.forwardfire.logstats.ejb.models.LogData.message.VascI18n.name = message
|
||||
net.forwardfire.logstats.ejb.models.LogData.source.VascI18n.description = source
|
||||
net.forwardfire.logstats.ejb.models.LogData.source.VascI18n.name = source
|
||||
net.forwardfire.logstats.ejb.models.LogHost.VascI18n.description = LogHost
|
||||
net.forwardfire.logstats.ejb.models.LogHost.VascI18n.name = LogHost
|
||||
net.forwardfire.logstats.ejb.models.LogHost.hostname.VascI18n.description = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogHost.hostname.VascI18n.name = hostname
|
||||
net.forwardfire.logstats.ejb.models.LogHostGroup.VascI18n.description = logHostGroup
|
||||
net.forwardfire.logstats.ejb.models.LogHostGroup.VascI18n.name = logHostGroup
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.VascI18n.description = LogLevel
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.VascI18n.name = LogLevel
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelNumber.VascI18n.description = levelNumber
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelNumber.VascI18n.name = levelNumber
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelType.VascI18n.description = levelType
|
||||
net.forwardfire.logstats.ejb.models.LogLevel.levelType.VascI18n.name = levelType
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.VascI18n.description = LogRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.VascI18n.name = LogRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.roleKey.VascI18n.description = roleKey
|
||||
net.forwardfire.logstats.ejb.models.LogRightRole.roleKey.VascI18n.name = roleKey
|
||||
net.forwardfire.logstats.ejb.models.LogSource.VascI18n.description = LogSource
|
||||
net.forwardfire.logstats.ejb.models.LogSource.VascI18n.name = LogSource
|
||||
net.forwardfire.logstats.ejb.models.LogSource.source.VascI18n.description = source
|
||||
net.forwardfire.logstats.ejb.models.LogSource.source.VascI18n.name = source
|
||||
net.forwardfire.logstats.ejb.models.LogStats.VascI18n.description = LogStats
|
||||
net.forwardfire.logstats.ejb.models.LogStats.VascI18n.name = LogStats
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logDay.VascI18n.description = logDay
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logDay.VascI18n.name = logDay
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHost.VascI18n.description = logHost
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHost.VascI18n.name = logHost
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHostId.VascI18n.description = logHostId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logHostId.VascI18n.name = logHostId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSource.VascI18n.description = logSource
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSource.VascI18n.name = logSource
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSourceId.VascI18n.description = logSourceId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logSourceId.VascI18n.name = logSourceId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValue.VascI18n.description = logValue
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValue.VascI18n.name = logValue
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValueId.VascI18n.description = logValueId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.logValueId.VascI18n.name = logValueId
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeAvg.VascI18n.description = timeAvg
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeAvg.VascI18n.name = timeAvg
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMax.VascI18n.description = timeMax
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMax.VascI18n.name = timeMax
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMin.VascI18n.description = timeMin
|
||||
net.forwardfire.logstats.ejb.models.LogStats.timeMin.VascI18n.name = timeMin
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueCount.VascI18n.description = valueCount
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueCount.VascI18n.name = valueCount
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueText.VascI18n.description = valueText
|
||||
net.forwardfire.logstats.ejb.models.LogStats.valueText.VascI18n.name = valueText
|
||||
net.forwardfire.logstats.ejb.models.LogUser.VascI18n.description = LogUser
|
||||
net.forwardfire.logstats.ejb.models.LogUser.VascI18n.name = LogUser
|
||||
net.forwardfire.logstats.ejb.models.LogUser.i18nLocale.VascI18n.description = i18nLocale
|
||||
net.forwardfire.logstats.ejb.models.LogUser.i18nLocale.VascI18n.name = i18nLocale
|
||||
net.forwardfire.logstats.ejb.models.LogUser.password.VascI18n.description = password
|
||||
net.forwardfire.logstats.ejb.models.LogUser.password.VascI18n.name = password
|
||||
net.forwardfire.logstats.ejb.models.LogUser.username.VascI18n.description = username
|
||||
net.forwardfire.logstats.ejb.models.LogUser.username.VascI18n.name = username
|
||||
net.forwardfire.logstats.ejb.models.LogUserRightRole.VascI18n.description = LogUserRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogUserRightRole.VascI18n.name = LogUserRightRole
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.VascI18n.description = LogUserSetting
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.VascI18n.name = LogUserSetting
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.value.VascI18n.description = value
|
||||
net.forwardfire.logstats.ejb.models.LogUserSetting.value.VascI18n.name = value
|
||||
net.forwardfire.logstats.ejb.models.LogValue.VascI18n.description = LogValue
|
||||
net.forwardfire.logstats.ejb.models.LogValue.VascI18n.name = LogValue
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.VascI18n.description = LogValueLine
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.VascI18n.name = LogValueLine
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.splitRegex.VascI18n.description = splitRegex
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.splitRegex.VascI18n.name = splitRegex
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.startDate.VascI18n.description = startDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.startDate.VascI18n.name = startDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.stopDate.VascI18n.description = stopDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.stopDate.VascI18n.name = stopDate
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.timeIndexNumber.VascI18n.description = timeIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.timeIndexNumber.VascI18n.name = timeIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueIndexNumber.VascI18n.description = valueIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueIndexNumber.VascI18n.name = valueIndexNumber
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueMinimal.VascI18n.description = valueMinimal
|
||||
net.forwardfire.logstats.ejb.models.LogValueLine.valueMinimal.VascI18n.name = valueMinimal
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.VascI18n.description = logValueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.VascI18n.name = logValueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.valueType.VascI18n.description = valueType
|
||||
net.forwardfire.logstats.ejb.models.LogValueType.valueType.VascI18n.name = valueType
|
|
@ -0,0 +1,142 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<x4o:root xmlns:v="http://vasc.forwardfire.net/eld/vasc-lang.eld"
|
||||
xmlns:x4o="http://eld.x4o.org/eld/x4o-lang.eld"
|
||||
>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logUserAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogUser"
|
||||
query="${xpqlController['LogUser.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logUserAdmin" backendId="logUserAdminBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogUser"/>
|
||||
<v:link id="logUserSetting" vascEntryId="logUserSettingLink">
|
||||
<v:linkEntryCreateFieldValue valueFieldId="logUser"/>
|
||||
<v:linkEntryParameter name="log_user_id" valueFieldId="id"/>
|
||||
</v:link>
|
||||
<v:link id="logUserRightRole" vascEntryId="logUserRightRoleLink">
|
||||
<v:linkEntryCreateFieldValue valueFieldId="logUser"/>
|
||||
<v:linkEntryParameter name="log_user_id" valueFieldId="id"/>
|
||||
</v:link>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logRightRoleAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogRightRole"
|
||||
query="${xpqlController['LogRightRole.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logRightRoleAdmin" backendId="logRightRoleAdminBackend" vascDisplayOnly="true">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogRightRole"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logHostGroupAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogHostGroup"
|
||||
query="${xpqlController['LogHostGroup.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logHostGroupAdmin" backendId="logHostGroupAdminBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogHostGroup"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logHostAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogHost"
|
||||
query="${xpqlController['LogHost.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logHostAdmin" backendId="logHostAdminBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogHost"/>
|
||||
<v:field id="logHostGroup" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logHostGroupAdmin" nullLabel="generic.all" nullKeyValue="-1"/>
|
||||
</v:field>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logSourceAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogSource"
|
||||
query="${xpqlController['LogSource.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logSourceAdmin" backendId="logSourceAdminBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogSource"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logValueTypeAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogValueType"
|
||||
query="${xpqlController['LogValueType.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logValueTypeAdmin" backendId="logValueTypeAdminBackend" vascDisplayOnly="true">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogValueType"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logLevelAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogLevel"
|
||||
query="${xpqlController['LogLevel.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logLevelAdmin" backendId="logLevelAdminBackend" vascDisplayOnly="true">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogLevel"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logValueAdminBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogValue"
|
||||
query="${xpqlController['LogValue.getAll']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logValueAdmin" backendId="logValueAdminBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogValue"/>
|
||||
<v:field id="logValueType" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logValueTypeAdmin"/>
|
||||
</v:field>
|
||||
<v:link id="logValueLine" vascEntryId="logValueLineLink">
|
||||
<v:linkEntryCreateFieldValue valueFieldId="logValue"/>
|
||||
<v:linkEntryParameter name="log_value_id" valueFieldId="id"/>
|
||||
</v:link>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logDataLastDayBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogData"
|
||||
query="${xpqlController['LogData.getLastDay']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logDataLastDay" backendId="logDataLastDayBackend" vascDisplayOnly="true">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogData"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logServerRunLastDayBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogServerRun"
|
||||
query="${xpqlController['LogServerRun.getLastDay']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logServerRunLastDay" backendId="logServerRunLastDayBackend" vascDisplayOnly="true">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogServerRun"/>
|
||||
</v:entry>
|
||||
|
||||
<!-- LINKED -->
|
||||
|
||||
<v:xpqlPersistanceBackend id="logUserSettingLinkBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogUserSetting"
|
||||
query="${xpqlController['LogUserSetting.getByLogUserId']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logUserSettingLink" backendId="logUserSettingLinkBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogUserSetting"/>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logUserRightRoleLinkBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogUserRightRole"
|
||||
query="${xpqlController['LogUserRightRole.getByLogUserId']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logUserRightRoleLink" backendId="logUserRightRoleLinkBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogUserRightRole"/>
|
||||
<v:field id="logRightRole" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logRightRoleAdmin"/>
|
||||
</v:field>
|
||||
</v:entry>
|
||||
|
||||
<v:xpqlPersistanceBackend id="logValueLineLinkBackend" entityManagerProvider="${entityManagerProvider}"
|
||||
resultClass="net.forwardfire.logstats.ejb.models.LogValueLine"
|
||||
query="${xpqlController['LogValueLine.getAllByLogValueId']}">
|
||||
</v:xpqlPersistanceBackend>
|
||||
<v:entry id="logValueLineLink" backendId="logValueLineLinkBackend">
|
||||
<v:annotationParser className="net.forwardfire.logstats.ejb.models.LogValueLine"/>
|
||||
<v:field id="logHost" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logHostAdmin" nullLabel="generic.all" nullKeyValue="-1"/>
|
||||
</v:field>
|
||||
<v:field id="logLevel" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logLevelAdmin" nullLabel="generic.all" nullKeyValue="-1"/>
|
||||
</v:field>
|
||||
<v:field id="logSource" vascEntryFieldType="ListField">
|
||||
<v:vascSelectItemModel entryId="logSourceAdmin" nullLabel="generic.all" nullKeyValue="-1"/>
|
||||
</v:field>
|
||||
</v:entry>
|
||||
|
||||
</x4o:root>
|
|
@ -0,0 +1,117 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xtes xmlns="http://xpql.vasc.forwardfire.net/eld/xpql-lang.eld"
|
||||
xmlns:x4o="http://eld.x4o.org/eld/x4o-lang.eld"
|
||||
>
|
||||
|
||||
<query name="LogUser.getAll" type="hql">
|
||||
<sql>SELECT lu FROM LogUser AS lu</sql>
|
||||
</query>
|
||||
<query name="LogUser.getByUsername" type="hql">
|
||||
<sql>
|
||||
SELECT lu FROM LogUser AS lu
|
||||
WHERE lu.username=<parameter name="username"/>
|
||||
</sql>
|
||||
<parameterValue name="username" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogRightRole.getAll" type="hql">
|
||||
<sql>SELECT lrr FROM LogRightRole AS lrr</sql>
|
||||
</query>
|
||||
<query name="LogRightRole.getAllByUsername" type="hql">
|
||||
<sql>
|
||||
SELECT lrr FROM LogRightRole AS lrr
|
||||
WHERE lrr.id IN (SELECT lurr.logRightRole.id FROM LogUserRightRole AS lurr WHERE lurr.logUser.username=<parameter name="username"/>)
|
||||
</sql>
|
||||
<parameterValue name="username" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogUserSetting.getByLogUserId" type="hql">
|
||||
<sql>
|
||||
SELECT lus FROM LogUserSetting AS lus
|
||||
WHERE lus.logUser.id=<parameter name="log_user_id"/>
|
||||
</sql>
|
||||
<parameterValue name="log_user_id" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogUserRightRole.getByLogUserId" type="hql">
|
||||
<sql>
|
||||
SELECT lurr FROM LogUserRightRole AS lurr
|
||||
WHERE lurr.logUser.id=<parameter name="log_user_id"/>
|
||||
</sql>
|
||||
<parameterValue name="log_user_id" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogHostGroup.getAll" type="hql">
|
||||
<sql>SELECT lhg FROM LogHostGroup AS lhg</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogHost.getAll" type="hql">
|
||||
<sql>SELECT lh FROM LogHost AS lh INNER JOIN FETCH lh.logHostGroup</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogSource.getAll" type="hql">
|
||||
<sql>SELECT ls FROM LogSource AS ls</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogValueType.getAll" type="hql">
|
||||
<sql>SELECT lvt FROM LogValueType AS lvt</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogLevel.getAll" type="hql">
|
||||
<sql>SELECT ll FROM LogLevel AS ll</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogServerRun.getLastDay" type="hql">
|
||||
<sql>SELECT lsr FROM LogServerRun AS lsr WHERE (extract(doy FROM now()) - extract(doy FROM lsr.startDate)) < 1 ORDER BY lsr.startDate</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogServerRun.getLast" type="hql">
|
||||
<sql>SELECT lsr FROM LogServerRun AS lsr WHERE lsr.id = (SELECT MAX(lsr2.id) FROM LogServerRun AS lsr2)</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogValue.getAll" type="hql">
|
||||
<sql>SELECT lv FROM LogValue AS lv INNER JOIN FETCH lv.logValueType AS lvt</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogValueLine.getAllIndexActive" type="hql">
|
||||
<sql>
|
||||
SELECT lvl FROM LogValueLine AS lvl
|
||||
INNER JOIN FETCH lvl.logLevel
|
||||
LEFT JOIN FETCH lvl.logHost
|
||||
LEFT JOIN FETCH lvl.logSource
|
||||
LEFT JOIN FETCH lvl.logValue AS lv
|
||||
LEFT JOIN FETCH lv.logValueType
|
||||
WHERE lvl.active=true
|
||||
</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogValueLine.getAllByLogValueId" type="hql">
|
||||
<sql>
|
||||
SELECT lvl FROM LogValueLine AS lvl
|
||||
INNER JOIN FETCH lvl.logLevel
|
||||
LEFT JOIN FETCH lvl.logHost
|
||||
LEFT JOIN FETCH lvl.logSource
|
||||
LEFT JOIN FETCH lvl.logValue
|
||||
WHERE lvl.logValue.id=<parameter name="log_value_id"/>
|
||||
</sql>
|
||||
<parameterValue name="log_value_id" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogData.getLastDay" type="hql">
|
||||
<sql>SELECT ld FROM LogData AS ld WHERE (extract(doy FROM now()) - extract(doy FROM ld.logDate)) < 1 ORDER BY ld.logDate</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogData.getFromId" type="hql">
|
||||
<sql>SELECT ld FROM LogData AS ld WHERE ld.id > <parameter name="log_data_id"/> AND (extract(doy FROM now()) - extract(doy FROM ld.logDate)) = 0</sql>
|
||||
<parameterValue name="log_data_id" value="1"/>
|
||||
</query>
|
||||
|
||||
<query name="LogData.getLastDayCount" type="hql">
|
||||
<sql>SELECT count(ld.id) FROM LogData AS ld WHERE (extract(doy FROM now()) - extract(doy FROM ld.logDate)) < 1</sql>
|
||||
</query>
|
||||
|
||||
<query name="LogStats.getLastDay" type="hql">
|
||||
<sql>SELECT ls FROM LogStats AS ls WHERE (extract(doy FROM now()) - extract(doy FROM ls.logDay)) = 0 </sql>
|
||||
</query>
|
||||
|
||||
</xtes>
|
|
@ -0,0 +1,222 @@
|
|||
package net.forwardfire.logstats.ejb.models;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
import net.forwardfire.logstats.ejb.models.LogHost;
|
||||
import net.forwardfire.logstats.ejb.models.LogHostGroup;
|
||||
import net.forwardfire.logstats.ejb.models.LogLevel;
|
||||
import net.forwardfire.logstats.ejb.models.LogRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogSource;
|
||||
import net.forwardfire.logstats.ejb.models.LogStats;
|
||||
import net.forwardfire.logstats.ejb.models.LogUser;
|
||||
import net.forwardfire.logstats.ejb.models.LogUserRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogUserSetting;
|
||||
import net.forwardfire.logstats.ejb.models.LogValue;
|
||||
import net.forwardfire.logstats.ejb.models.LogValueLine;
|
||||
import net.forwardfire.logstats.ejb.models.LogValueType;
|
||||
import net.forwardfire.vasc.annotations.VascBundleKeyGenerator;
|
||||
import net.forwardfire.vasc.core.VascEntry;
|
||||
import net.forwardfire.vasc.core.VascEntryField;
|
||||
import net.forwardfire.vasc.core.actions.VascAction;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
||||
public class I18nTests extends TestCase {
|
||||
|
||||
public void testI18nKeys() throws Exception {
|
||||
VascBundleKeyGenerator gen = new VascBundleKeyGenerator();
|
||||
gen.setGenerateImage(false);
|
||||
gen.setGenerateHelpId(false);
|
||||
|
||||
gen.addModelClass(LogData.class);
|
||||
gen.addModelClass(LogHost.class);
|
||||
gen.addModelClass(LogHostGroup.class);
|
||||
gen.addModelClass(LogLevel.class);
|
||||
gen.addModelClass(LogRightRole.class);
|
||||
gen.addModelClass(LogSource.class);
|
||||
gen.addModelClass(LogStats.class);
|
||||
gen.addModelClass(LogUser.class);
|
||||
gen.addModelClass(LogUserRightRole.class);
|
||||
gen.addModelClass(LogUserSetting.class);
|
||||
gen.addModelClass(LogValue.class);
|
||||
gen.addModelClass(LogValueLine.class);
|
||||
gen.addModelClass(LogValueType.class);
|
||||
|
||||
// print stuff
|
||||
StringBuffer buf = new StringBuffer(2000);
|
||||
|
||||
int totalModels = gen.getModelClasses().size();
|
||||
buf.append("\n===Model classes: "+totalModels);
|
||||
|
||||
//buf.append("\n======== START ALL =========\n");
|
||||
//gen.generateKeys(buf);
|
||||
//buf.append("\n======== END ALL =========\n");
|
||||
|
||||
buf.append("\n======== START MISSING =========\n");
|
||||
gen.generateMissingKeys(buf, ResourceBundle.getBundle("net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB"));
|
||||
buf.append("\n======== END MISSING =========\n");
|
||||
|
||||
buf.append("\n======== START REMOVE =========\n");
|
||||
gen.generateRemoveKeys(buf, ResourceBundle.getBundle("net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB"),"vasc(.*)|validator(.*)|generic(.*)");
|
||||
buf.append("\n======== END REMOVE =========\n");
|
||||
|
||||
buf.append("\n======== START DUPS =========\n");
|
||||
for (String dup:gen.getDubIdNameKeys()) {
|
||||
buf.append(dup);
|
||||
buf.append('\n');
|
||||
}
|
||||
buf.append("\n======== END DUPS =========\n");
|
||||
|
||||
System.out.println(buf);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Map<String,String> keys = new HashMap<String,String>(300);
|
||||
|
||||
public void testVascI18nKeys() throws Exception {
|
||||
|
||||
// load sql
|
||||
//XtesManager xtes = new XtesManager();
|
||||
//xtes.loadAll();
|
||||
|
||||
// load vasc xml
|
||||
/*
|
||||
VascManager vasc = new VascManager();
|
||||
vasc.xtesManager = xtes;
|
||||
VascController controller = vasc.getVascController();
|
||||
|
||||
StringBuffer buf = new StringBuffer(2000);
|
||||
|
||||
if (keys.isEmpty()==false) {
|
||||
keys.clear();
|
||||
}
|
||||
|
||||
|
||||
for (String id:controller.getVascEntryController().getVascEntryIds()) {
|
||||
VascEntry entry = controller.getVascEntryController().getVascEntryById(id);
|
||||
generateKeys(entry);
|
||||
}
|
||||
|
||||
//buf.append("\n======== START ALL =========\n");
|
||||
//printKeys(buf);
|
||||
//buf.append("\n======== END ALL =========\n");
|
||||
|
||||
buf.append("\n======== START MISSING =========\n");
|
||||
generateMissingKeys(buf, ResourceBundle.getBundle("net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB"));
|
||||
buf.append("\n======== END MISSING =========\n");
|
||||
|
||||
buf.append("\n======== START REMOVE =========\n");
|
||||
generateRemoveKeys(buf, ResourceBundle.getBundle("net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB"),"vasc.validator(.*)|validator(.*)|generic(.*)");
|
||||
buf.append("\n======== END REMOVE =========\n");
|
||||
|
||||
// So stats
|
||||
buf.append("Total entries: "+controller.getVascEntryController().getVascEntryIds().size()+"\n");
|
||||
int lists = 0;
|
||||
int edits = 0;
|
||||
int links = 0;
|
||||
int fields = 0;
|
||||
int rowActions = 0;
|
||||
for (String id:controller.getVascEntryController().getVascEntryIds()) {
|
||||
VascEntry entry = controller.getVascEntryController().getVascEntryById(id);
|
||||
if (entry.isVascAdminList()) {
|
||||
lists++;
|
||||
}
|
||||
if (entry.isVascAdminEdit()) {
|
||||
edits++;
|
||||
}
|
||||
links+=entry.getVascLinkEntries().size();
|
||||
fields+=entry.getVascEntryFields().size();
|
||||
rowActions+=entry.getRowActions().size();
|
||||
}
|
||||
buf.append("Total lists: "+lists+"\n");
|
||||
buf.append("Total edits: "+edits+"\n");
|
||||
buf.append("Total links: "+links+"\n");
|
||||
buf.append("Total fields: "+fields+"\n");
|
||||
buf.append("Total rowActions: "+rowActions+"\n");
|
||||
|
||||
System.out.println(buf);
|
||||
*/
|
||||
}
|
||||
|
||||
public void generateKeys(VascEntry entry) {
|
||||
appendKey(entry.getName(),entry.getId());
|
||||
appendKey(entry.getListDescription(),"View "+entry.getId());
|
||||
appendKey(entry.getEditDescription(),"Edit "+entry.getId());
|
||||
appendKey(entry.getDeleteDescription(),"Delete "+entry.getId());
|
||||
|
||||
for (VascAction action:entry.getGlobalActions()) {
|
||||
appendKey(action.getName(),action.getId());
|
||||
appendKey(action.getDescription(),action.getId());
|
||||
}
|
||||
for (VascAction action:entry.getRowActions()) {
|
||||
appendKey(action.getName(),action.getId());
|
||||
appendKey(action.getDescription(),action.getId());
|
||||
}
|
||||
for (VascAction action:entry.getColumnActions()) {
|
||||
appendKey(action.getName(),action.getId());
|
||||
appendKey(action.getDescription(),action.getId());
|
||||
}
|
||||
for (VascEntryField option:entry.getListOptions()) {
|
||||
appendKey(option.getName(),option.getId());
|
||||
}
|
||||
}
|
||||
|
||||
public void printKeys(StringBuffer buffer) {
|
||||
List<String> keys2 = new ArrayList<String>(keys.keySet());
|
||||
Collections.sort(keys2);
|
||||
for (String key:keys2) {
|
||||
String value = keys.get(key);
|
||||
buffer.append(key);
|
||||
buffer.append(" = ");
|
||||
buffer.append(value);
|
||||
buffer.append('\n');
|
||||
}
|
||||
}
|
||||
|
||||
public void generateMissingKeys(StringBuffer buffer,ResourceBundle bundle) {
|
||||
List<String> keys2 = new ArrayList<String>(keys.keySet());
|
||||
keys2.removeAll(bundle.keySet());
|
||||
Collections.sort(keys2);
|
||||
for (String key:keys2) {
|
||||
String value = keys.get(key);
|
||||
buffer.append(key);
|
||||
buffer.append(" = ");
|
||||
buffer.append(value);
|
||||
buffer.append('\n');
|
||||
}
|
||||
}
|
||||
|
||||
public void generateRemoveKeys(StringBuffer buffer,ResourceBundle bundle,String excludeRegex) {
|
||||
List<String> keys2 = new ArrayList<String>(bundle.keySet());
|
||||
keys2.removeAll(keys.keySet());
|
||||
Collections.sort(keys2);
|
||||
for (String key:keys2) {
|
||||
// exlude code and user keys
|
||||
if (excludeRegex!=null && key.matches(excludeRegex)) {
|
||||
continue;
|
||||
}
|
||||
buffer.append(key);
|
||||
buffer.append('\n');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void appendKey(String key,String value) {
|
||||
if (key==null) {
|
||||
return; // hackje untill we have x4o templating
|
||||
}
|
||||
if (keys.containsKey(key)) {
|
||||
return;
|
||||
}
|
||||
keys.put(key, value);
|
||||
}
|
||||
}
|
11
logstats-jboss-sar/.classpath
Normal file
11
logstats-jboss-sar/.classpath
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
23
logstats-jboss-sar/.project
Normal file
23
logstats-jboss-sar/.project
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-jboss-sar</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,7 @@
|
|||
#Mon Jan 02 23:18:49 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
6
logstats-jboss-sar/.settings/org.eclipse.jdt.core.prefs
Normal file
6
logstats-jboss-sar/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,6 @@
|
|||
#Sat Jun 12 01:12:26 CEST 2010
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
5
logstats-jboss-sar/.settings/org.eclipse.m2e.core.prefs
Normal file
5
logstats-jboss-sar/.settings/org.eclipse.m2e.core.prefs
Normal file
|
@ -0,0 +1,5 @@
|
|||
#Mon Jan 02 23:18:47 CET 2012
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
9
logstats-jboss-sar/.settings/org.maven.ide.eclipse.prefs
Normal file
9
logstats-jboss-sar/.settings/org.maven.ide.eclipse.prefs
Normal file
|
@ -0,0 +1,9 @@
|
|||
#Sat Jun 12 01:12:25 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
27
logstats-jboss-sar/pom.xml
Normal file
27
logstats-jboss-sar/pom.xml
Normal file
|
@ -0,0 +1,27 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>logstats</artifactId>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>logstats-jboss-sar</artifactId>
|
||||
<packaging>jboss-sar</packaging>
|
||||
<name>logstats-jboss-sar</name>
|
||||
<description>logstats-jboss-sar</description>
|
||||
<!--
|
||||
<properties>
|
||||
<version.org.jboss.mx>6.0.0.Beta5</version.org.jboss.mx>
|
||||
<version.org.jboss.naming>5.0.5.Final</version.org.jboss.naming>
|
||||
<version.org.jboss.logging>3.0.0.Beta2</version.org.jboss.logging>
|
||||
</properties>
|
||||
-->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jboss.jbossas</groupId>
|
||||
<artifactId>jboss-as-system-jmx</artifactId>
|
||||
<version>5.1.0.GA</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,67 @@
|
|||
package net.forwardfire.logstats.jboss.log4j;
|
||||
|
||||
import org.apache.log4j.AppenderSkeleton;
|
||||
import org.apache.log4j.spi.LoggingEvent;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
/**
|
||||
* Appends log4j messages to the logService MBean
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
public class DataSourceLog4jAppender extends AppenderSkeleton {
|
||||
|
||||
private DataSourceLogService logService = null;
|
||||
private Logger logger = Logger.getLogger(DataSourceLog4jAppender.class.getName());
|
||||
|
||||
/**
|
||||
* constructor
|
||||
* @throws Exception
|
||||
*/
|
||||
public DataSourceLog4jAppender(DataSourceLogService logService) {
|
||||
super();
|
||||
if (logService==null) {
|
||||
throw new NullPointerException("Can't start with null logService.");
|
||||
}
|
||||
this.logService=logService;
|
||||
setName(logService.getLog4jAppenderName());
|
||||
logger.info("Created DataSourceLog4jAppender with name: "+getName());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Closes this appender privately.
|
||||
*/
|
||||
public void shutdown() {
|
||||
logService = null;
|
||||
logger.info("Closed DataSourceLog4jAppender with name: "+getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes this appender but is left empty because of fake call.
|
||||
*/
|
||||
public void close() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Put LoggingEvent in queue for processing.
|
||||
*/
|
||||
public void append(LoggingEvent event) {
|
||||
if (logService==null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
logService.putLoggingEvent(event);
|
||||
} catch (InterruptedException e) {
|
||||
// we don't log in appender, in case of loop.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSourceLog4jAppender don't require a layout.
|
||||
*/
|
||||
public boolean requiresLayout() {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,222 @@
|
|||
|
||||
|
||||
package net.forwardfire.logstats.jboss.log4j;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.InitialContext;
|
||||
import javax.naming.NamingException;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.spi.LoggingEvent;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
/**
|
||||
* Perists the messages of the queue
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
public class DataSourceLogPersistThread extends Thread {
|
||||
|
||||
private DataSourceLogService logService = null;
|
||||
private Logger logger = Logger.getLogger(DataSourceLogPersistThread.class.getName());
|
||||
|
||||
/**
|
||||
* Constructor with the LogService
|
||||
* @param logService
|
||||
*/
|
||||
public DataSourceLogPersistThread(DataSourceLogService logService) {
|
||||
this.logService = logService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Perists the messages of the queue
|
||||
*
|
||||
* @see java.lang.Thread#run()
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
long idleTimer = System.currentTimeMillis();
|
||||
|
||||
// setup DB connection from datasource
|
||||
Connection conn = null;
|
||||
try {
|
||||
conn = getConnection();
|
||||
} catch (SQLException e) {
|
||||
logger.error("init getConnection failed, error: "+e.getMessage(),e);
|
||||
return;
|
||||
} catch (NamingException e) {
|
||||
logger.error("init getConnection datasource lookup failed, error: "+e.getMessage(),e);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get hostname setup
|
||||
String hostname = null;
|
||||
try {
|
||||
hostname = InetAddress.getLocalHost().getHostName();
|
||||
} catch (UnknownHostException e) {
|
||||
logger.error("init getLocalHost failed, error: "+e.getMessage(),e);
|
||||
try {
|
||||
conn.close();
|
||||
} catch (SQLException se) {
|
||||
logger.warn("init connection close failed, SQLException: "+se.getMessage(),e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (logService.getBackendHostname()!=null && logService.getBackendHostname().isEmpty()==false) {
|
||||
hostname = logService.getBackendHostname();
|
||||
}
|
||||
|
||||
// Test and record out one thread
|
||||
try {
|
||||
storeLogData(conn,hostname,System.currentTimeMillis(),Level.DEBUG.toInt(),this.getClass().getName(),"Startup and connection of thread: "+getName());
|
||||
} catch (SQLException e) {
|
||||
logger.error("test connection message error: "+e.getMessage(),e);
|
||||
try {
|
||||
if (conn!=null && conn.isClosed()==false) {
|
||||
conn.close();
|
||||
}
|
||||
} catch (SQLException se) {
|
||||
logger.warn("test connection close failed, SQLException: "+se.getMessage(),se);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// main loop
|
||||
int errorCount = 0;
|
||||
while (isInterrupted()==false) {
|
||||
LoggingEvent logMessage = null;
|
||||
try {
|
||||
logMessage = logService.pollLoggingEvent();
|
||||
} catch (InterruptedException e) {
|
||||
break;
|
||||
}
|
||||
if (logMessage!=null) {
|
||||
try {
|
||||
// convert
|
||||
String message = convertMessage(logMessage.getMessage());
|
||||
|
||||
// persist message
|
||||
storeLogData( conn,hostname,logMessage.timeStamp,logMessage.getLevel().toInt(),logMessage.getLoggerName(),message );
|
||||
|
||||
} catch (SQLException se) {
|
||||
if (errorCount==0) {
|
||||
logger.error("storeLogData() failed, error: "+se.getMessage());
|
||||
}
|
||||
errorCount++;
|
||||
if (errorCount>1000) {
|
||||
logger.error("storeLogData() failed 1000 times, last error: "+se.getMessage());
|
||||
errorCount=0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (checkConnection(conn) == false) {
|
||||
try {
|
||||
if (conn!=null && conn.isClosed()==false) {
|
||||
conn.close();
|
||||
}
|
||||
} catch (SQLException se) {
|
||||
logger.warn("connection close failed, SQLException: "+se.getMessage(),se);
|
||||
}
|
||||
try {
|
||||
conn = getConnection();
|
||||
} catch (Exception ee) {
|
||||
logger.error("failure in getConnection() error:"+ee.getMessage(),ee);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (logService.getBackendIdleMarkerTime()>0) {
|
||||
// check for update of idle timer
|
||||
if ((System.currentTimeMillis()-idleTimer) > logService.getBackendIdleMarkerTime()*1000) {
|
||||
idleTimer = System.currentTimeMillis();
|
||||
logger.info(logService.getBackendIdleMarkerMessage()+" thread: "+getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// exit thread
|
||||
logger.info("shutdown thread: "+getName());
|
||||
try {
|
||||
if (conn!=null && conn.isClosed()==false) {
|
||||
conn.close();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
logger.warn("connection close failed, SQLException: "+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private Connection getConnection() throws SQLException,NamingException {
|
||||
String dataSourceName = logService.getBackendDataSource();
|
||||
logger.debug("Getting connection from datasource: "+dataSourceName+" for thread: "+getName());
|
||||
Context naming = new InitialContext();
|
||||
DataSource dataSource = (DataSource) naming.lookup(dataSourceName);
|
||||
return dataSource.getConnection();
|
||||
}
|
||||
|
||||
public boolean checkConnection(Connection connection) {
|
||||
if (connection==null) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
return connection.prepareStatement(logService.getBackendKeepAliveQuery()).execute();
|
||||
} catch (SQLException e) {
|
||||
logger.error("checkConnection: SQLException: "+e.getMessage(),e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Message is not always a string so check for some types we can handle.
|
||||
*
|
||||
* @param messageObj
|
||||
* @return
|
||||
*/
|
||||
private String convertMessage(Object messageObj) {
|
||||
String message = null;
|
||||
if (messageObj == null ) {
|
||||
message = "NULL";
|
||||
} else if (messageObj instanceof String) {
|
||||
message = (String)messageObj;
|
||||
} else if (messageObj instanceof Exception) {
|
||||
message = ((Exception)messageObj).getMessage();
|
||||
} else {
|
||||
message = messageObj.toString();
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
private void storeLogData(Connection connection,String host,long time, int level, String source, String message) throws SQLException {
|
||||
PreparedStatement stmt = null;
|
||||
Timestamp timeStamp = new Timestamp(time);
|
||||
stmt = connection.prepareStatement(logService.getBackendLogQuery());
|
||||
String para = logService.getBackendLogQueryParameters();
|
||||
String[] paras = para.split(",");
|
||||
for (int i=1;i<=paras.length;i++) {
|
||||
String col = paras[i-1];
|
||||
if ("time".equals(col)) {
|
||||
stmt.setTimestamp(i, timeStamp);
|
||||
} else if ("level".equals(col)) {
|
||||
stmt.setInt(i, level);
|
||||
} else if ("host".equals(col)) {
|
||||
stmt.setString(i, host);
|
||||
} else if ("source".equals(col)) {
|
||||
stmt.setString(i, source);
|
||||
} else if ("message".equals(col)) {
|
||||
stmt.setString(i, message);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknow column: "+col+" on index: "+i);
|
||||
}
|
||||
}
|
||||
stmt.execute();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,433 @@
|
|||
package net.forwardfire.logstats.jboss.log4j;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.xml.parsers.FactoryConfigurationError;
|
||||
|
||||
import org.apache.log4j.LogManager;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.spi.LoggingEvent;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
|
||||
import org.jboss.logging.util.OnlyOnceErrorHandler;
|
||||
import org.jboss.system.ServiceMBeanSupport;
|
||||
|
||||
/**
|
||||
* Jboss MBean which hooks DB logger to log4j and depends on a datasource for db access.
|
||||
*
|
||||
* Orginal idea was made by Edward Pilipczuk <exedx@aster.pl>
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
public class DataSourceLogService extends ServiceMBeanSupport implements DataSourceLogServiceMBean {
|
||||
|
||||
// backend config options
|
||||
private String backendDataSource = null;
|
||||
private String backendLogQuery = "INSERT INTO log_data (log_date, log_level,hostname, source, message) VALUES (?,?,?,?,?)";
|
||||
private String backendLogQueryParameters = "time,level,host,source,message";
|
||||
private String backendHostname = null;
|
||||
private int backendThreads = 3;
|
||||
private int backendMaxQueueSize = 1500;
|
||||
private int backendKeepAliveTimeout = 300;
|
||||
private String backendKeepAliveQuery = "SELECT 1";
|
||||
private int backendIdleMarkerTime = 3600;
|
||||
private String backendIdleMarkerMessage = "--- Mark ---";
|
||||
private boolean backendStatisticsLog = true;
|
||||
private int backendStatisticsLogTime = 300;
|
||||
|
||||
// log4j config options
|
||||
private String log4jParseConfigResource = "META-INF/logstats-log4j.xml";
|
||||
private String log4jAppenderName = "LOGSTATS";
|
||||
private boolean log4jAppenderAutoAdd = true;
|
||||
private boolean log4jAppenderAutoAddOnlyOnceError = true;
|
||||
private boolean log4jAppenderToRoot = true;
|
||||
|
||||
// stats counters
|
||||
private int statsMessagesTotal = 0;
|
||||
private int statsMessagesDropped = 0;
|
||||
|
||||
// Internal state objects
|
||||
volatile private boolean running = false;
|
||||
private BlockingQueue<LoggingEvent> messageQueue = null;
|
||||
private DataSourceLog4jAppender appender = null;
|
||||
private List<DataSourceLogPersistThread> persistThreads = null;
|
||||
|
||||
// ===== Override ServiceMBeanSupport methods
|
||||
|
||||
@Override
|
||||
protected void startService() throws Exception {
|
||||
messageQueue = new LinkedBlockingQueue<LoggingEvent>(backendMaxQueueSize);
|
||||
startLog4j();
|
||||
startBackend();
|
||||
running = true;
|
||||
log.info("DataSourceLogService started; queueSize: "+backendMaxQueueSize+" threads: "+backendThreads);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopService() throws Exception {
|
||||
running = false;
|
||||
try {
|
||||
stopLog4j();
|
||||
} catch (Exception e) {
|
||||
log.warn("Error in stopLog4j: "+e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
stopBackend();
|
||||
} catch (Exception e) {
|
||||
log.warn("Error in stopBackend: "+e.getMessage());
|
||||
} finally {
|
||||
log.info("DataSourceLogService stopped.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// =========== Private methods
|
||||
|
||||
private void startBackend() {
|
||||
persistThreads = new ArrayList<DataSourceLogPersistThread>(backendThreads);
|
||||
for (int i=0;i<backendThreads;i++) {
|
||||
DataSourceLogPersistThread worker = new DataSourceLogPersistThread(this);
|
||||
worker.start();
|
||||
persistThreads.add(worker);
|
||||
}
|
||||
}
|
||||
|
||||
private void stopBackend() {
|
||||
for (DataSourceLogPersistThread worker:persistThreads) {
|
||||
worker.interrupt();
|
||||
}
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException e) {
|
||||
log.warn("Interrupted while wait until backend threads are done.");
|
||||
}
|
||||
persistThreads.clear();
|
||||
messageQueue.clear();
|
||||
}
|
||||
|
||||
private void startLog4j() {
|
||||
appender = new DataSourceLog4jAppender(this);
|
||||
if (log4jAppenderAutoAddOnlyOnceError) {
|
||||
appender.setErrorHandler(new OnlyOnceErrorHandler());
|
||||
log.debug("Added OnlyOnceErrorHandler to appender: "+appender.getName());
|
||||
}
|
||||
|
||||
if (log4jAppenderAutoAdd) {
|
||||
Logger.getRootLogger().addAppender(appender);
|
||||
log.debug("Added appender: "+appender.getName()+" to root logger.");
|
||||
}
|
||||
|
||||
if (log4jParseConfigResource!=null && log4jParseConfigResource.isEmpty()==false) {
|
||||
try {
|
||||
InputStream lis = Thread.currentThread().getContextClassLoader().getResourceAsStream(log4jParseConfigResource);
|
||||
new DOMConfigurator().doConfigure(lis,LogManager.getLoggerRepository());
|
||||
log.debug("Loaded config for log4j: "+log4jParseConfigResource);
|
||||
} catch (FactoryConfigurationError e) {
|
||||
log.warn("Error while configing log4j from "+log4jParseConfigResource+" error: "+e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void stopLog4j() {
|
||||
Logger.getRootLogger().removeAppender(appender);
|
||||
appender.shutdown();
|
||||
appender = null;
|
||||
}
|
||||
|
||||
// ============== Protected methods
|
||||
|
||||
protected boolean isRunning() {
|
||||
return running;
|
||||
}
|
||||
|
||||
protected void putLoggingEvent(LoggingEvent event) throws InterruptedException {
|
||||
if (running==false) {
|
||||
return;
|
||||
}
|
||||
if (messageQueue==null) {
|
||||
throw new IllegalStateException("LogService is not started");
|
||||
}
|
||||
statsMessagesTotal++;
|
||||
if (messageQueue.remainingCapacity()>0) {
|
||||
messageQueue.put(event);
|
||||
} else {
|
||||
statsMessagesDropped++;
|
||||
}
|
||||
}
|
||||
|
||||
protected LoggingEvent pollLoggingEvent() throws InterruptedException {
|
||||
if (messageQueue==null) {
|
||||
throw new IllegalStateException("LogService is not started");
|
||||
}
|
||||
return messageQueue.poll(backendKeepAliveTimeout, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
// ============== MBean methods
|
||||
|
||||
/**
|
||||
* Resets the stats counters
|
||||
*/
|
||||
public void resetStatsCounters() {
|
||||
statsMessagesTotal = 0;
|
||||
statsMessagesDropped = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the statsMessagesTotal
|
||||
*/
|
||||
public int getStatsMessagesTotal() {
|
||||
return statsMessagesTotal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the statsMessagesDropped
|
||||
*/
|
||||
public int getStatsMessagesDropped() {
|
||||
return statsMessagesDropped;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendDataSource
|
||||
*/
|
||||
public String getBackendDataSource() {
|
||||
return backendDataSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendDataSource the backendDataSource to set
|
||||
*/
|
||||
public void setBackendDataSource(String backendDataSource) {
|
||||
this.backendDataSource = backendDataSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendLogQuery
|
||||
*/
|
||||
public String getBackendLogQuery() {
|
||||
return backendLogQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendLogQuery the backendLogQuery to set
|
||||
*/
|
||||
public void setBackendLogQuery(String backendLogQuery) {
|
||||
this.backendLogQuery = backendLogQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendLogQueryParameters
|
||||
*/
|
||||
public String getBackendLogQueryParameters() {
|
||||
return backendLogQueryParameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendLogQueryParameters the backendLogQueryParameters to set
|
||||
*/
|
||||
public void setBackendLogQueryParameters(String backendLogQueryParameters) {
|
||||
this.backendLogQueryParameters = backendLogQueryParameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendHostname
|
||||
*/
|
||||
public String getBackendHostname() {
|
||||
return backendHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendHostname the backendHostname to set
|
||||
*/
|
||||
public void setBackendHostname(String backendHostname) {
|
||||
this.backendHostname = backendHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendKeepAliveTimeout
|
||||
*/
|
||||
public int getBackendKeepAliveTimeout() {
|
||||
return backendKeepAliveTimeout;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendKeepAliveTimeout the backendKeepAliveTimeout to set
|
||||
*/
|
||||
public void setBackendKeepAliveTimeout(int backendKeepAliveTimeout) {
|
||||
this.backendKeepAliveTimeout = backendKeepAliveTimeout;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendKeepAliveQuery
|
||||
*/
|
||||
public String getBackendKeepAliveQuery() {
|
||||
return backendKeepAliveQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendKeepAliveQuery the backendKeepAliveQuery to set
|
||||
*/
|
||||
public void setBackendKeepAliveQuery(String backendKeepAliveQuery) {
|
||||
this.backendKeepAliveQuery = backendKeepAliveQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendThreads
|
||||
*/
|
||||
public int getBackendThreads() {
|
||||
return backendThreads;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendThreads the backendThreads to set
|
||||
*/
|
||||
public void setBackendThreads(int backendThreads) {
|
||||
this.backendThreads = backendThreads;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendMaxQueueSize
|
||||
*/
|
||||
public int getBackendMaxQueueSize() {
|
||||
return backendMaxQueueSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendMaxQueueSize the backendMaxQueueSize to set
|
||||
*/
|
||||
public void setBackendMaxQueueSize(int backendMaxQueueSize) {
|
||||
this.backendMaxQueueSize = backendMaxQueueSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendIdleMarkerTime
|
||||
*/
|
||||
public int getBackendIdleMarkerTime() {
|
||||
return backendIdleMarkerTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendIdleMarkerTime the backendIdleMarkerTime to set
|
||||
*/
|
||||
public void setBackendIdleMarkerTime(int backendIdleMarkerTime) {
|
||||
this.backendIdleMarkerTime = backendIdleMarkerTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendIdleMarkerMessage
|
||||
*/
|
||||
public String getBackendIdleMarkerMessage() {
|
||||
return backendIdleMarkerMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendIdleMarkerMessage the backendIdleMarkerMessage to set
|
||||
*/
|
||||
public void setBackendIdleMarkerMessage(String backendIdleMarkerMessage) {
|
||||
this.backendIdleMarkerMessage = backendIdleMarkerMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendStatisticsLog
|
||||
*/
|
||||
public boolean isBackendStatisticsLog() {
|
||||
return backendStatisticsLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendStatisticsLog the backendStatisticsLog to set
|
||||
*/
|
||||
public void setBackendStatisticsLog(boolean backendStatisticsLog) {
|
||||
this.backendStatisticsLog = backendStatisticsLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the backendStatisticsLogTime
|
||||
*/
|
||||
public int getBackendStatisticsLogTime() {
|
||||
return backendStatisticsLogTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param backendStatisticsLogTime the backendStatisticsLogTime to set
|
||||
*/
|
||||
public void setBackendStatisticsLogTime(int backendStatisticsLogTime) {
|
||||
this.backendStatisticsLogTime = backendStatisticsLogTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the log4jParseConfigResource
|
||||
*/
|
||||
public String getLog4jParseConfigResource() {
|
||||
return log4jParseConfigResource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param log4jParseConfigResource the log4jParseConfigResource to set
|
||||
*/
|
||||
public void setLog4jParseConfigResource(String log4jParseConfigResource) {
|
||||
this.log4jParseConfigResource = log4jParseConfigResource;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderName
|
||||
*/
|
||||
public String getLog4jAppenderName() {
|
||||
return log4jAppenderName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param log4jAppenderName the log4jAppenderName to set
|
||||
*/
|
||||
public void setLog4jAppenderName(String log4jAppenderName) {
|
||||
this.log4jAppenderName = log4jAppenderName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderAutoAdd
|
||||
*/
|
||||
public boolean isLog4jAppenderAutoAdd() {
|
||||
return log4jAppenderAutoAdd;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param log4jAppenderAutoAdd the log4jAppenderAutoAdd to set
|
||||
*/
|
||||
public void setLog4jAppenderAutoAdd(boolean log4jAppenderAutoAdd) {
|
||||
this.log4jAppenderAutoAdd = log4jAppenderAutoAdd;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderAutoAddOnlyOnceError
|
||||
*/
|
||||
public boolean isLog4jAppenderAutoAddOnlyOnceError() {
|
||||
return log4jAppenderAutoAddOnlyOnceError;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param log4jAppenderAutoAddOnlyOnceError the log4jAppenderAutoAddOnlyOnceError to set
|
||||
*/
|
||||
public void setLog4jAppenderAutoAddOnlyOnceError(
|
||||
boolean log4jAppenderAutoAddOnlyOnceError) {
|
||||
this.log4jAppenderAutoAddOnlyOnceError = log4jAppenderAutoAddOnlyOnceError;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderToRoot
|
||||
*/
|
||||
public boolean isLog4jAppenderToRoot() {
|
||||
return log4jAppenderToRoot;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param log4jAppenderToRoot the log4jAppenderToRoot to set
|
||||
*/
|
||||
public void setLog4jAppenderToRoot(boolean log4jAppenderToRoot) {
|
||||
this.log4jAppenderToRoot = log4jAppenderToRoot;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,198 @@
|
|||
|
||||
package net.forwardfire.logstats.jboss.log4j;
|
||||
|
||||
import org.jboss.system.ServiceMBean;
|
||||
|
||||
/**
|
||||
* Defines all configable options of the log service MBean
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 09, 2010
|
||||
*/
|
||||
public interface DataSourceLogServiceMBean extends ServiceMBean {
|
||||
|
||||
/**
|
||||
* Resets the stats counters
|
||||
*/
|
||||
public void resetStatsCounters();
|
||||
|
||||
/**
|
||||
* @return the statsMessagesTotal
|
||||
*/
|
||||
public int getStatsMessagesTotal();
|
||||
|
||||
/**
|
||||
* @return the statsMessagesDropped
|
||||
*/
|
||||
public int getStatsMessagesDropped();
|
||||
|
||||
/**
|
||||
* @return the backendDataSource
|
||||
*/
|
||||
public String getBackendDataSource();
|
||||
|
||||
/**
|
||||
* @param backendDataSource the backendDataSource to set
|
||||
*/
|
||||
public void setBackendDataSource(String backendDataSource);
|
||||
|
||||
/**
|
||||
* @return the backendLogQuery
|
||||
*/
|
||||
public String getBackendLogQuery();
|
||||
|
||||
/**
|
||||
* @param backendLogQuery the backendLogQuery to set
|
||||
*/
|
||||
public void setBackendLogQuery(String backendLogQuery);
|
||||
|
||||
/**
|
||||
* @return the backendLogQueryParameters
|
||||
*/
|
||||
public String getBackendLogQueryParameters();
|
||||
|
||||
/**
|
||||
* @param backendLogQueryParameters the backendLogQueryParameters to set
|
||||
*/
|
||||
public void setBackendLogQueryParameters(String backendLogQueryParameters);
|
||||
|
||||
/**
|
||||
* @return the backendHostname
|
||||
*/
|
||||
public String getBackendHostname();
|
||||
|
||||
/**
|
||||
* @param backendHostname the backendHostname to set
|
||||
*/
|
||||
public void setBackendHostname(String backendHostname);
|
||||
|
||||
/**
|
||||
* @return the backendKeepAliveTimeout
|
||||
*/
|
||||
public int getBackendKeepAliveTimeout();
|
||||
|
||||
/**
|
||||
* @param backendKeepAliveTimeout the backendKeepAliveTimeout to set
|
||||
*/
|
||||
public void setBackendKeepAliveTimeout(int backendKeepAliveTimeout);
|
||||
|
||||
/**
|
||||
* @return the backendKeepAliveQuery
|
||||
*/
|
||||
public String getBackendKeepAliveQuery();
|
||||
|
||||
/**
|
||||
* @param backendKeepAliveQuery the backendKeepAliveQuery to set
|
||||
*/
|
||||
public void setBackendKeepAliveQuery(String backendKeepAliveQuery);
|
||||
|
||||
/**
|
||||
* @return the backendThreads
|
||||
*/
|
||||
public int getBackendThreads();
|
||||
|
||||
/**
|
||||
* @param backendThreads the backendThreads to set
|
||||
*/
|
||||
public void setBackendThreads(int backendThreads);
|
||||
|
||||
/**
|
||||
* @return the backendMaxQueueSize
|
||||
*/
|
||||
public int getBackendMaxQueueSize();
|
||||
|
||||
/**
|
||||
* @param backendMaxQueueSize the backendMaxQueueSize to set
|
||||
*/
|
||||
public void setBackendMaxQueueSize(int backendMaxQueueSize);
|
||||
|
||||
/**
|
||||
* @return the backendIdleMarkerTime
|
||||
*/
|
||||
public int getBackendIdleMarkerTime();
|
||||
|
||||
/**
|
||||
* @param backendIdleMarkerTime the backendIdleMarkerTime to set
|
||||
*/
|
||||
public void setBackendIdleMarkerTime(int backendIdleMarkerTime);
|
||||
|
||||
/**
|
||||
* @return the backendIdleMarkerMessage
|
||||
*/
|
||||
public String getBackendIdleMarkerMessage();
|
||||
|
||||
/**
|
||||
* @param backendIdleMarkerMessage the backendIdleMarkerMessage to set
|
||||
*/
|
||||
public void setBackendIdleMarkerMessage(String backendIdleMarkerMessage);
|
||||
|
||||
/**
|
||||
* @return the backendStatisticsLog
|
||||
*/
|
||||
public boolean isBackendStatisticsLog();
|
||||
|
||||
/**
|
||||
* @param backendStatisticsLog the backendStatisticsLog to set
|
||||
*/
|
||||
public void setBackendStatisticsLog(boolean backendStatisticsLog);
|
||||
|
||||
/**
|
||||
* @return the backendStatisticsLogTime
|
||||
*/
|
||||
public int getBackendStatisticsLogTime();
|
||||
|
||||
/**
|
||||
* @param backendStatisticsLogTime the backendStatisticsLogTime to set
|
||||
*/
|
||||
public void setBackendStatisticsLogTime(int backendStatisticsLogTime);
|
||||
|
||||
/**
|
||||
* @return the log4jParseConfigResource
|
||||
*/
|
||||
public String getLog4jParseConfigResource();
|
||||
|
||||
/**
|
||||
* @param log4jParseConfigResource the log4jParseConfigResource to set
|
||||
*/
|
||||
public void setLog4jParseConfigResource(String log4jParseConfigResource);
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderName
|
||||
*/
|
||||
public String getLog4jAppenderName();
|
||||
|
||||
/**
|
||||
* @param log4jAppenderName the log4jAppenderName to set
|
||||
*/
|
||||
public void setLog4jAppenderName(String log4jAppenderName);
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderAutoAdd
|
||||
*/
|
||||
public boolean isLog4jAppenderAutoAdd();
|
||||
|
||||
/**
|
||||
* @param log4jAppenderAutoAdd the log4jAppenderAutoAdd to set
|
||||
*/
|
||||
public void setLog4jAppenderAutoAdd(boolean log4jAppenderAutoAdd);
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderAutoAddOnlyOnceError
|
||||
*/
|
||||
public boolean isLog4jAppenderAutoAddOnlyOnceError();
|
||||
|
||||
/**
|
||||
* @param log4jAppenderAutoAddOnlyOnceError the log4jAppenderAutoAddOnlyOnceError to set
|
||||
*/
|
||||
public void setLog4jAppenderAutoAddOnlyOnceError(boolean log4jAppenderAutoAddOnlyOnceError);
|
||||
|
||||
/**
|
||||
* @return the log4jAppenderToRoot
|
||||
*/
|
||||
public boolean isLog4jAppenderToRoot();
|
||||
|
||||
/**
|
||||
* @param log4jAppenderToRoot the log4jAppenderToRoot to set
|
||||
*/
|
||||
public void setLog4jAppenderToRoot(boolean log4jAppenderToRoot);
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE server PUBLIC "-//JBoss//DTD MBean Service 4.2//EN" "jboss-service_4_2.dtd">
|
||||
<server>
|
||||
<mbean name="jboss.system:service=Logging,type=DataSourceLogService"
|
||||
code="net.forwardfire.logstats.jboss.log4j.DataSourceLogService"
|
||||
interface="net.forwardfire.logstats.jboss.log4j.DataSourceLogServiceMBean">
|
||||
|
||||
<attribute name="BackendDataSource">java:DataSourceLogServiceDS</attribute>
|
||||
|
||||
<depends>jboss.jca:service=DataSourceBinding,name=DataSourceLogServiceDS</depends>
|
||||
</mbean>
|
||||
|
||||
|
||||
<!-- Minimal config
|
||||
<mbean code="net.forwardfire.logstats.jboss.log4j.DataSourceLogService"
|
||||
name="logging:service=DataSourceLogService,type=Private"
|
||||
interface="net.forwardfire.logstats.jboss.log4j.DataSourceLogServiceMBean">
|
||||
<attribute name="BackendDataSource">java:DataSourceLogServiceDS</attribute>
|
||||
<depends>jboss.jca:service=DataSourceBinding,name=DataSourceLogServiceDS</depends>
|
||||
</mbean>
|
||||
-->
|
||||
|
||||
<!-- Maximal config
|
||||
<mbean code="net.forwardfire.logstats.jboss.log4j.DataSourceLogService"
|
||||
name="logging:service=DataSourceLogService,type=Private"
|
||||
interface="net.forwardfire.logstats.jboss.log4j.DataSourceLogServiceMBean">
|
||||
|
||||
<attribute name="BackendDataSource">java:DataSourceLogServiceDS</attribute>
|
||||
|
||||
<attribute name="BackendLogQuery">INSERT INTO log_data (log_date, log_level,hostname, source, message, text_search_vector) VALUES (?,?,?,?,?,to_tsvector('pg_catalog.english',?))</attribute>
|
||||
<attribute name="BackendLogQueryParameters">time,level,host,source,message,message</attribute>
|
||||
|
||||
<attribute name="BackendThreads">5</attribute>
|
||||
<attribute name="BackendMaxQueueSize">5000</attribute>
|
||||
<attribute name="BackendHostname">myhost-jboss-extra5</attribute>
|
||||
|
||||
<attribute name="BackendKeepAliveTimeout">3600</attribute>
|
||||
<attribute name="BackendKeepAliveQuery">SELECT 1</attribute>
|
||||
|
||||
<attribute name="BackendIdleMarkerTime">10000</attribute>
|
||||
<attribute name="BackendIdleMarkerMessage">** Mark **</attribute>
|
||||
|
||||
<attribute name="BackendStatisticsLog">true</attribute>
|
||||
<attribute name="BackendStatisticsLogTime">300</attribute>
|
||||
|
||||
<attribute name="Log4jParseConfigResource">META-INF/logstats-log4j.xml</attribute>
|
||||
<attribute name="Log4jAppenderName">LOGSTATS</attribute>
|
||||
<attribute name="Log4jAppenderAutoAdd">true</attribute>
|
||||
<attribute name="Log4jAppenderAutoAddOnlyOnceError">true</attribute>
|
||||
<attribute name="Log4jAppenderToRoot">true</attribute>
|
||||
|
||||
<depends>jboss.jca:service=DataSourceBinding,name=DataSourceLogServiceDS</depends>
|
||||
</mbean>
|
||||
-->
|
||||
</server>
|
166
logstats-jboss-sar/src/main/resources/META-INF/log4j.dtd
Normal file
166
logstats-jboss-sar/src/main/resources/META-INF/log4j.dtd
Normal file
|
@ -0,0 +1,166 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<!-- Authors: Chris Taylor, Ceki Gulcu. -->
|
||||
|
||||
<!-- Version: 1.2 -->
|
||||
|
||||
<!-- A configuration element consists of optional renderer
|
||||
elements,appender elements, categories and an optional root
|
||||
element. -->
|
||||
|
||||
<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,root?,
|
||||
categoryFactory?)>
|
||||
|
||||
<!-- The "threshold" attribute takes a level value such that all -->
|
||||
<!-- logging statements with a level equal or below this value are -->
|
||||
<!-- disabled. -->
|
||||
|
||||
<!-- Setting the "debug" enable the printing of internal log4j logging -->
|
||||
<!-- statements. -->
|
||||
|
||||
<!-- By default, debug attribute is "null", meaning that we not do touch -->
|
||||
<!-- internal log4j logging settings. The "null" value for the threshold -->
|
||||
<!-- attribute can be misleading. The threshold field of a repository -->
|
||||
<!-- cannot be set to null. The "null" value for the threshold attribute -->
|
||||
<!-- simply means don't touch the threshold field, the threshold field -->
|
||||
<!-- keeps its old value. -->
|
||||
|
||||
<!ATTLIST log4j:configuration
|
||||
xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/"
|
||||
threshold (all|debug|info|warn|error|fatal|off|null) "null"
|
||||
debug (true|false|null) "null"
|
||||
>
|
||||
|
||||
<!-- renderer elements allow the user to customize the conversion of -->
|
||||
<!-- message objects to String. -->
|
||||
|
||||
<!ELEMENT renderer EMPTY>
|
||||
<!ATTLIST renderer
|
||||
renderedClass CDATA #REQUIRED
|
||||
renderingClass CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!-- Appenders must have a name and a class. -->
|
||||
<!-- Appenders may contain an error handler, a layout, optional parameters -->
|
||||
<!-- and filters. They may also reference (or include) other appenders. -->
|
||||
<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*)>
|
||||
<!ATTLIST appender
|
||||
name ID #REQUIRED
|
||||
class CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT layout (param*)>
|
||||
<!ATTLIST layout
|
||||
class CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT filter (param*)>
|
||||
<!ATTLIST filter
|
||||
class CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!-- ErrorHandlers can be of any class. They can admit any number of -->
|
||||
<!-- parameters. -->
|
||||
|
||||
<!ELEMENT errorHandler (param*, root-ref?, logger-ref*, appender-ref?)>
|
||||
<!ATTLIST errorHandler
|
||||
class CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT root-ref EMPTY>
|
||||
|
||||
<!ELEMENT logger-ref EMPTY>
|
||||
<!ATTLIST logger-ref
|
||||
ref IDREF #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT param EMPTY>
|
||||
<!ATTLIST param
|
||||
name CDATA #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
|
||||
<!-- The priority class is org.apache.log4j.Level by default -->
|
||||
<!ELEMENT priority (param*)>
|
||||
<!ATTLIST priority
|
||||
class CDATA #IMPLIED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!-- The level class is org.apache.log4j.Level by default -->
|
||||
<!ELEMENT level (param*)>
|
||||
<!ATTLIST level
|
||||
class CDATA #IMPLIED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
|
||||
<!-- If no level element is specified, then the configurator MUST not -->
|
||||
<!-- touch the level of the named category. -->
|
||||
<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
|
||||
<!ATTLIST category
|
||||
class CDATA #IMPLIED
|
||||
name CDATA #REQUIRED
|
||||
additivity (true|false) "true"
|
||||
>
|
||||
|
||||
<!-- If no level element is specified, then the configurator MUST not -->
|
||||
<!-- touch the level of the named logger. -->
|
||||
<!ELEMENT logger (level?,appender-ref*)>
|
||||
<!ATTLIST logger
|
||||
name ID #REQUIRED
|
||||
additivity (true|false) "true"
|
||||
>
|
||||
|
||||
|
||||
<!ELEMENT categoryFactory (param*)>
|
||||
<!ATTLIST categoryFactory
|
||||
class CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT appender-ref EMPTY>
|
||||
<!ATTLIST appender-ref
|
||||
ref IDREF #REQUIRED
|
||||
>
|
||||
|
||||
<!-- If no priority element is specified, then the configurator MUST not -->
|
||||
<!-- touch the priority of root. -->
|
||||
<!-- The root category always exists and cannot be subclassed. -->
|
||||
<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
|
||||
|
||||
|
||||
<!-- ==================================================================== -->
|
||||
<!-- A logging event -->
|
||||
<!-- ==================================================================== -->
|
||||
<!ELEMENT log4j:eventSet (log4j:event*)>
|
||||
<!ATTLIST log4j:eventSet
|
||||
xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/"
|
||||
version (1.1|1.2) "1.2"
|
||||
includesLocationInfo (true|false) "true"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?,
|
||||
log4j:locationInfo?) >
|
||||
|
||||
<!-- The timestamp format is application dependent. -->
|
||||
<!ATTLIST log4j:event
|
||||
logger CDATA #REQUIRED
|
||||
level CDATA #REQUIRED
|
||||
thread CDATA #REQUIRED
|
||||
timestamp CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT log4j:message (#PCDATA)>
|
||||
<!ELEMENT log4j:NDC (#PCDATA)>
|
||||
|
||||
<!ELEMENT log4j:throwable (#PCDATA)>
|
||||
|
||||
<!ELEMENT log4j:locationInfo EMPTY>
|
||||
<!ATTLIST log4j:locationInfo
|
||||
class CDATA #REQUIRED
|
||||
method CDATA #REQUIRED
|
||||
file CDATA #REQUIRED
|
||||
line CDATA #REQUIRED
|
||||
>
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE log4j:configuration SYSTEM "META-INF/log4j.dtd">
|
||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
|
||||
|
||||
<!-- Lets create a category so we log ourselfs automaticly -->
|
||||
<category name="net.forwardfire.logstats.jboss.log4j">
|
||||
<priority value="DEBUG"/>
|
||||
<appender-ref ref="LOGSTATS"/>
|
||||
</category>
|
||||
|
||||
<!-- Optinaly add other category here to add appender dynamicly -->
|
||||
|
||||
</log4j:configuration>
|
16
logstats-war/.classpath
Normal file
16
logstats-war/.classpath
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/main/webapp"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
42
logstats-war/.project
Normal file
42
logstats-war/.project
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-war</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
12
logstats-war/.settings/.jsdtscope
Normal file
12
logstats-war/.settings/.jsdtscope
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src/main/webapp"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||
<attributes>
|
||||
<attribute name="hide" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||
<classpathentry kind="output" path=""/>
|
||||
</classpath>
|
8
logstats-war/.settings/org.eclipse.core.resources.prefs
Normal file
8
logstats-war/.settings/org.eclipse.core.resources.prefs
Normal file
|
@ -0,0 +1,8 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/main/webapp=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
13
logstats-war/.settings/org.eclipse.jdt.core.prefs
Normal file
13
logstats-war/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,13 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
5
logstats-war/.settings/org.eclipse.m2e.core.prefs
Normal file
5
logstats-war/.settings/org.eclipse.m2e.core.prefs
Normal file
|
@ -0,0 +1,5 @@
|
|||
#Mon Jan 02 23:18:47 CET 2012
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -0,0 +1 @@
|
|||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -0,0 +1 @@
|
|||
Window
|
9
logstats-war/.settings/org.maven.ide.eclipse.prefs
Normal file
9
logstats-war/.settings/org.maven.ide.eclipse.prefs
Normal file
|
@ -0,0 +1,9 @@
|
|||
#Wed Jun 09 21:37:03 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
158
logstats-war/pom.xml
Normal file
158
logstats-war/pom.xml
Normal file
|
@ -0,0 +1,158 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>logstats</artifactId>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>logstats-war</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>logstats-war</name>
|
||||
<description>logstats-war</description>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
</testResource>
|
||||
<testResource>
|
||||
<directory>src/main/webapp</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</testResource>
|
||||
</testResources>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet.jsp</groupId>
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<version>2.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>taglibs</groupId>
|
||||
<artifactId>standard</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.ejb</groupId>
|
||||
<artifactId>ejb-api</artifactId>
|
||||
<version>3.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>persistence-api</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.faces</groupId>
|
||||
<artifactId>jsf-api</artifactId>
|
||||
<version>1.2_12</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.faces</groupId>
|
||||
<artifactId>jsf-impl</artifactId>
|
||||
<version>1.2_12</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Vasc depency -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-frontend-web-jsf</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-ri</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-api</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.facelets</groupId>
|
||||
<artifactId>jsf-facelets</artifactId>
|
||||
<version>1.1.15.B1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- RichFaces libraries -->
|
||||
<dependency>
|
||||
<groupId>org.richfaces.framework</groupId>
|
||||
<artifactId>richfaces-api</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.richfaces.framework</groupId>
|
||||
<artifactId>richfaces-impl</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.richfaces.ui</groupId>
|
||||
<artifactId>richfaces-ui</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.bliki.wiki</groupId>
|
||||
<artifactId>bliki-core</artifactId>
|
||||
<version>3.0.13</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-ejb</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>ejb</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-annotations</artifactId>
|
||||
<version>3.4.0.GA</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,235 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
import javax.faces.model.SelectItem;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
import net.forwardfire.logstats.ejb.services.LoginManagerRemote;
|
||||
import net.forwardfire.logstats.ejb.services.ServerManagerRemote;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jul 06, 2010
|
||||
*/
|
||||
public class RealTimeController implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private boolean pollEnabled = true;
|
||||
private boolean reversedTail = false;
|
||||
private String filterHostname = null;
|
||||
private Integer filterLevel = null;
|
||||
private String filterRegex = null;
|
||||
private Pattern filterRegexPattern = null;
|
||||
private int messageRows = 40;
|
||||
private int messageCols = 260;
|
||||
|
||||
@EJB()
|
||||
LoginManagerRemote loginManager;
|
||||
|
||||
@EJB()
|
||||
ServerManagerRemote serverManager;
|
||||
|
||||
private StringBuilder getStartBuffer(List<LogData> data) {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
int size = data.size();
|
||||
for (int i=0;i<size;i++) {
|
||||
LogData d = data.get(i);
|
||||
if (filterLevel!=null && filterLevel.equals(d.getLogLevel())==false) {
|
||||
continue;
|
||||
}
|
||||
if (filterHostname!=null && filterHostname.equals(d.getLogLevel())==false) {
|
||||
continue;
|
||||
}
|
||||
if (filterRegexPattern!=null && filterRegexPattern.matcher(d.getMessage()).matches()==false) {
|
||||
continue;
|
||||
}
|
||||
buf.append(d.getLogDate());
|
||||
buf.append(' ');
|
||||
buf.append(d.getHostname());
|
||||
buf.append(' ');
|
||||
buf.append(d.getLogLevel());
|
||||
buf.append(' ');
|
||||
buf.append(d.getSource());
|
||||
buf.append(' ');
|
||||
buf.append(d.getMessage());
|
||||
buf.append('\n');
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
public String getMessageLogData() {
|
||||
List<LogData> data = serverManager.getRealTimeLogData();
|
||||
if (reversedTail) {
|
||||
Collections.reverse(data);
|
||||
}
|
||||
StringBuilder buf = getStartBuffer(data);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public void setMessageLogData(String voidData) {
|
||||
// method so jsf is oke.
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pollEnabled
|
||||
*/
|
||||
public boolean isPollEnabled() {
|
||||
return pollEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pollEnabled the pollEnabled to set
|
||||
*/
|
||||
public void setPollEnabled(boolean pollEnabled) {
|
||||
this.pollEnabled = pollEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the reversedTail
|
||||
*/
|
||||
public boolean isReversedTail() {
|
||||
return reversedTail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param reversedTail the reversedTail to set
|
||||
*/
|
||||
public void setReversedTail(boolean reversedTail) {
|
||||
this.reversedTail = reversedTail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterHostname
|
||||
*/
|
||||
public String getFilterHostname() {
|
||||
return filterHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterHostname the filterHostname to set
|
||||
*/
|
||||
public void setFilterHostname(String filterHostname) {
|
||||
this.filterHostname = filterHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterLevel
|
||||
*/
|
||||
public Integer getFilterLevel() {
|
||||
return filterLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterLevel the filterLevel to set
|
||||
*/
|
||||
public void setFilterLevel(Integer filterLevel) {
|
||||
this.filterLevel = filterLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterRegex
|
||||
*/
|
||||
public String getFilterRegex() {
|
||||
return filterRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterRegex the filterRegex to set
|
||||
*/
|
||||
public void setFilterRegex(String filterRegex) {
|
||||
this.filterRegex = filterRegex;
|
||||
if (filterRegex!=null && filterRegex.isEmpty()==false) {
|
||||
try {
|
||||
filterRegexPattern = Pattern.compile(filterRegex);
|
||||
} catch (PatternSyntaxException pse) {
|
||||
filterRegexPattern = null; // remove old regex
|
||||
pse.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
filterRegexPattern = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the messageRows
|
||||
*/
|
||||
public int getMessageRows() {
|
||||
return messageRows;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param messageRows the messageRows to set
|
||||
*/
|
||||
public void setMessageRows(int messageRows) {
|
||||
this.messageRows = messageRows;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the messageCols
|
||||
*/
|
||||
public int getMessageCols() {
|
||||
return messageCols;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param messageCols the messageCols to set
|
||||
*/
|
||||
public void setMessageCols(int messageCols) {
|
||||
this.messageCols = messageCols;
|
||||
}
|
||||
|
||||
public List<SelectItem> getMessageRowsSelectItems() {
|
||||
List<SelectItem> result = new ArrayList<SelectItem>(5);
|
||||
result.add(new SelectItem(10, "10"));
|
||||
result.add(new SelectItem(20, "20"));
|
||||
result.add(new SelectItem(40, "40"));
|
||||
result.add(new SelectItem(60, "60"));
|
||||
result.add(new SelectItem(80, "80"));
|
||||
result.add(new SelectItem(102, "100")); // to remove scroll bar 102, buf is 100
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<SelectItem> getMessageColsSelectItems() {
|
||||
List<SelectItem> result = new ArrayList<SelectItem>(5);
|
||||
result.add(new SelectItem(80, "80"));
|
||||
result.add(new SelectItem(120, "120"));
|
||||
result.add(new SelectItem(150, "150"));
|
||||
result.add(new SelectItem(200, "200"));
|
||||
result.add(new SelectItem(240, "240"));
|
||||
result.add(new SelectItem(260, "260"));
|
||||
result.add(new SelectItem(280, "280"));
|
||||
result.add(new SelectItem(300, "300"));
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogUser;
|
||||
import net.forwardfire.logstats.ejb.services.LoginManagerRemote;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 1, 2009
|
||||
*/
|
||||
public class UserController implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private LogUser logUser = null;
|
||||
private List<LogRightRole> logRightRoles = null;
|
||||
|
||||
@EJB()
|
||||
LoginManagerRemote loginManager;
|
||||
|
||||
public void loginFilter() {
|
||||
try {
|
||||
logUser = loginManager.getUser();
|
||||
logRightRoles = loginManager.getClientRoles();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void logoutFilter() {
|
||||
logUser = null;
|
||||
logRightRoles = null;
|
||||
}
|
||||
|
||||
public boolean isUserLoggedin() {
|
||||
if (logUser==null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public LogUser getUser() {
|
||||
return logUser;
|
||||
}
|
||||
|
||||
public List<LogRightRole> getRightRoles() {
|
||||
return logRightRoles;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.core.VascController;
|
||||
import net.forwardfire.vasc.frontends.web.jsf.AbstractJSFVascFacesController;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 1, 2009
|
||||
*/
|
||||
public class VascFacesController extends AbstractJSFVascFacesController {
|
||||
|
||||
public String getVascSericeManagerJNDI() {
|
||||
return "logstats-jboss/ejb/vascSericeManager/remote";
|
||||
}
|
||||
public String getResourceBundleWEB() {
|
||||
return "net/forwardfire/logstats/resources/i18n/LogstatsBundleWAR";
|
||||
}
|
||||
public boolean getDisableI18N() {
|
||||
return false;
|
||||
}
|
||||
public VascUserInfo getVascUserInfo() {
|
||||
VascUserInfo vui = new VascUserInfo(new Long(34l),"s", new String[] {"rol1"});
|
||||
return vui;
|
||||
}
|
||||
public List<String> getVascAdminEntries() {
|
||||
List<String> result = new ArrayList<String>(50);
|
||||
VascController v = getVascController();
|
||||
for (String e:v.getVascEntryController().getVascEntryIds()) {
|
||||
if (e.endsWith("Link")==false) {
|
||||
result.add(e);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.filters;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import net.forwardfire.logstats.web.beans.UserController;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Filter in and out logs of users.
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 12, 2009
|
||||
*/
|
||||
public class UserFilter implements Filter {
|
||||
|
||||
private static final long serialVersionUID = 10l;
|
||||
private Logger logger = null;
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#destroy()
|
||||
*/
|
||||
public void destroy() {
|
||||
logger = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
|
||||
*/
|
||||
public void init(FilterConfig config) throws ServletException {
|
||||
logger = Logger.getLogger(UserFilter.class.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
|
||||
*/
|
||||
public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain chain) throws IOException, ServletException {
|
||||
|
||||
HttpServletRequest request = (HttpServletRequest)servletRequest;
|
||||
HttpServletResponse response = (HttpServletResponse)servletResponse;
|
||||
|
||||
// Let all anymous user to next filter
|
||||
if (request.getUserPrincipal()==null) {
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
UserController userController = (UserController)request.getSession().getAttribute("userController");
|
||||
if (userController==null) {
|
||||
logger.info("Can't create userController for first request auth: "+request.getUserPrincipal());
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
if (userController.isUserLoggedin()==false) {
|
||||
userController.loginFilter();
|
||||
|
||||
// size session time to 20min
|
||||
request.getSession().setMaxInactiveInterval(20*60*1000);
|
||||
}
|
||||
|
||||
// Check for logout
|
||||
String path = request.getRequestURI();
|
||||
if (path.endsWith("login/logout.jsf")) {
|
||||
userController.logoutFilter();
|
||||
request.getSession().invalidate();
|
||||
}
|
||||
|
||||
// do rest of chain.
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
#Colors
|
||||
headerBackgroundColor=\#EAEAEA
|
||||
headerGradientColor=\#E0E0E0
|
||||
headerTextColor=#282828
|
||||
headerWeightFont=bold
|
||||
|
||||
generalBackgroundColor=#FFFFFF
|
||||
generalTextColor=#282828
|
||||
generalSizeFont=11px
|
||||
generalFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
controlTextColor=#282828
|
||||
controlBackgroundColor=#ffffff
|
||||
additionalBackgroundColor=#ffffff
|
||||
|
||||
shadowBackgroundColor=#000000
|
||||
shadowOpacity=1
|
||||
|
||||
panelBorderColor=#BED6F8
|
||||
subBorderColor=#ffffff
|
||||
|
||||
tabBackgroundColor=#C6DEFF
|
||||
tabDisabledTextColor=#ffffff
|
||||
|
||||
trimColor=#D6E6FB
|
||||
|
||||
tipBackgroundColor=\#FAE6B0
|
||||
tipBorderColor=\#E5973E
|
||||
|
||||
selectControlColor=#E79A00
|
||||
|
||||
|
||||
generalLinkColor=#004DEB
|
||||
hoverLinkColor=#004DEB
|
||||
visitedLinkColor=#004DEB
|
||||
|
||||
# Fonts
|
||||
headerSizeFont=11px
|
||||
headerFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
tabSizeFont=11
|
||||
tabFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
buttonSizeFont=11
|
||||
buttonFamilyFont=Arial, Verdana, sans-serif
|
||||
|
||||
|
||||
tableBackgroundColor=#FFFFFF
|
||||
tableFooterBackgroundColor=#FFFFFF
|
||||
tableSubfooterBackgroundColor=#FFFFFF
|
||||
|
||||
|
||||
#Calendar colors
|
||||
calendarWeekBackgroundColor=#F5F5F5
|
||||
|
||||
calendarHolidaysBackgroundColor=#FFEBDA
|
||||
calendarHolidaysTextColor=#FF7800
|
||||
|
||||
calendarCurrentBackgroundColor=#FF7800
|
||||
calendarCurrentTextColor=#FFEBDA
|
||||
|
||||
calendarSpecBackgroundColor=#E4F5E2
|
||||
calendarSpecTextColor=#000000
|
||||
|
||||
|
||||
warningColor=#282828
|
||||
warningBackgroundColor=##EE0000
|
||||
|
||||
editorBackgroundColor=#F1F1F1
|
||||
editBackgroundColor=#FEFFDA
|
||||
|
||||
#Gradients
|
||||
gradientType=plain
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
# Temp jsf
|
||||
generic.vasc.jsf.listOption.header = Searchoptions
|
||||
generic.vasc.jsf.listOption.search = Searh\:
|
||||
generic.vasc.jsf.listOption.sumbit = Search
|
||||
generic.vasc.jsf.pager.previous = Previous
|
||||
generic.vasc.jsf.pager.next = Next
|
||||
generic.vasc.jsf.table.rows = Row Numbers\:
|
||||
generic.vasc.jsf.table.pagerDirect = Go to\:
|
||||
generic.vasc.jsf.table.downloadDirect = Download\:
|
||||
generic.vasc.jsf.table.resultText = Results {0}-{1} from {2} rows
|
||||
generic.vasc.jsf.table.download.img = Save table data.
|
||||
generic.vasc.jsf.table.printer.img = Shows the table in printer friendly format.
|
||||
generic.vasc.jsf.table.export.select = ...
|
||||
generic.vasc.jsf.table.export.select.alt = Select Export
|
||||
generic.vasc.jsf.table.page.select = ...
|
||||
generic.vasc.jsf.table.page.select.alt = Select Page
|
||||
generic.vasc.jsf.table.page.name = Page:
|
||||
generic.vasc.jsf.table.page.description = Goto page:
|
||||
generic.vasc.jsf.tableHeader.fields = Fields
|
||||
generic.vasc.jsf.tableHeader.links = Links
|
||||
generic.vasc.jsf.tableHeader.actions = Actions
|
||||
generic.vasc.jsf.multiAction.selectAll = Select all:
|
||||
generic.vasc.jsf.multiAction.name = ...
|
||||
generic.vasc.jsf.multiAction.description = Select Action
|
||||
generic.vasc.jsf.action.save = Save
|
||||
generic.vasc.jsf.action.cancel = Cancel
|
||||
generic.vasc.jsf.action.back = Back
|
||||
generic.vasc.jsf.parentSelected = Selected:
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
# Temp jsf
|
||||
generic.vasc.jsf.listOption.header = Searchoptions
|
||||
generic.vasc.jsf.listOption.search = Searh\:
|
||||
generic.vasc.jsf.listOption.sumbit = Search
|
||||
generic.vasc.jsf.pager.previous = Previous
|
||||
generic.vasc.jsf.pager.next = Next
|
||||
generic.vasc.jsf.table.rows = Row Numbers\:
|
||||
generic.vasc.jsf.table.pagerDirect = Go to\:
|
||||
generic.vasc.jsf.table.downloadDirect = Download\:
|
||||
generic.vasc.jsf.table.resultText = Results {0}-{1} from {2} rows
|
||||
generic.vasc.jsf.table.download.img = Save table data.
|
||||
generic.vasc.jsf.table.printer.img = Shows the table in printer friendly format.
|
||||
generic.vasc.jsf.table.export.select = ...
|
||||
generic.vasc.jsf.table.export.select.alt = Select Export
|
||||
generic.vasc.jsf.table.page.select = ...
|
||||
generic.vasc.jsf.table.page.select.alt = Select Page
|
||||
generic.vasc.jsf.table.page.name = Page:
|
||||
generic.vasc.jsf.table.page.description = Goto page:
|
||||
generic.vasc.jsf.tableHeader.fields = Fields
|
||||
generic.vasc.jsf.tableHeader.links = Links
|
||||
generic.vasc.jsf.tableHeader.actions = Actions
|
||||
generic.vasc.jsf.multiAction.selectAll = Select all:
|
||||
generic.vasc.jsf.multiAction.name = ...
|
||||
generic.vasc.jsf.multiAction.description = Select Action
|
||||
generic.vasc.jsf.action.save = Save
|
||||
generic.vasc.jsf.action.cancel = Cancel
|
||||
generic.vasc.jsf.action.back = Back
|
||||
generic.vasc.jsf.parentSelected = Selected:
|
47
logstats-war/src/main/webapp/WEB-INF/faces.xml
Normal file
47
logstats-war/src/main/webapp/WEB-INF/faces.xml
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
|
||||
<faces-config>
|
||||
|
||||
<application>
|
||||
<locale-config>
|
||||
<default-locale>en</default-locale>
|
||||
</locale-config>
|
||||
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
|
||||
</application>
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls the Users</description>
|
||||
<managed-bean-name>realTimeController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.RealTimeController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls the Users</description>
|
||||
<managed-bean-name>userController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.UserController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
<!--
|
||||
<managed-bean>
|
||||
<description>Controls the Wiki</description>
|
||||
<managed-bean-name>wikiPageController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.one.laig.web.beans.WikiPageController</managed-bean-class>
|
||||
<managed-bean-scope>request</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>requestWikiPage</property-name>
|
||||
<value>#{requestScopeWikiName}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
-->
|
||||
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls Vasc Faces</description>
|
||||
<managed-bean-name>vascFacesController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.VascFacesController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
</faces-config>
|
9
logstats-war/src/main/webapp/WEB-INF/jboss-web.xml
Normal file
9
logstats-war/src/main/webapp/WEB-INF/jboss-web.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
|
||||
<jboss-web>
|
||||
<class-loading>
|
||||
<loader-repository>net.forwardfire.logstats:archive=logstats-war</loader-repository>
|
||||
</class-loading>
|
||||
<!--
|
||||
<security-domain>java:/jaas/LogStatsSecurity</security-domain>
|
||||
-->
|
||||
</jboss-web>
|
203
logstats-war/src/main/webapp/WEB-INF/web.xml
Normal file
203
logstats-war/src/main/webapp/WEB-INF/web.xml
Normal file
|
@ -0,0 +1,203 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="2.5"
|
||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
|
||||
|
||||
<display-name>Logstats Web Application</display-name>
|
||||
<welcome-file-list>
|
||||
<welcome-file>/jsp/index_jsp.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
<session-config>
|
||||
<session-timeout>4</session-timeout>
|
||||
<!-- An 4min session, we increase it after login to 20min. -->
|
||||
</session-config>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>XHTML</web-resource-name>
|
||||
<url-pattern>*.xhtml</url-pattern>
|
||||
</web-resource-collection>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>Include files</web-resource-name>
|
||||
<description>No direct access to include files.</description>
|
||||
<url-pattern>/jsp/includes/*</url-pattern>
|
||||
<http-method>POST</http-method>
|
||||
<http-method>GET</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<description>No direct browser access to include files.</description>
|
||||
<role-name>inaccessible</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<!--
|
||||
<security-constraint>
|
||||
<display-name>User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>User pages</web-resource-name>
|
||||
<url-pattern>/jsp/user/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>user</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<display-name>Admin User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>Admin pages</web-resource-name>
|
||||
<url-pattern>/jsp/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>admin-company</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<display-name>Sytem User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>System pages</web-resource-name>
|
||||
<url-pattern>/jsp/system/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>admin-system</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
-->
|
||||
|
||||
<login-config>
|
||||
<auth-method>FORM</auth-method>
|
||||
<realm-name>LogstatsSecurity</realm-name>
|
||||
<form-login-config>
|
||||
<form-login-page>/jsp/login/login.jsf</form-login-page>
|
||||
<form-error-page>/jsp/login/login-error.jsf</form-error-page>
|
||||
</form-login-config>
|
||||
</login-config>
|
||||
|
||||
<security-role>
|
||||
<role-name>user</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>admin-company</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>admin-system</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>inaccessible</role-name>
|
||||
</security-role>
|
||||
|
||||
<!-- =============== USER CONFIG =================================== -->
|
||||
<filter>
|
||||
<display-name>User Filter</display-name>
|
||||
<filter-name>userFilter</filter-name>
|
||||
<filter-class>net.forwardfire.logstats.web.filters.UserFilter</filter-class>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>userFilter</filter-name>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
|
||||
<!-- =============== JSF CONFIG =================================== -->
|
||||
<context-param>
|
||||
<description>
|
||||
Comma separated list of URIs of (additional) faces
|
||||
config files.(e.g./WEB-INF/my-config.xml) See JSF1.0 PRD 2,10.3.2
|
||||
</description>
|
||||
<param-name>javax.faces.CONFIG_FILES</param-name>
|
||||
<param-value>/WEB-INF/faces.xml</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
|
||||
<param-value>server</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
|
||||
<param-value>.xhtml</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>facelets.REFRESH_PERIOD</param-name>
|
||||
<param-value>2</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>facelets.DEVELOPMENT</param-name>
|
||||
<param-value>true</param-value>
|
||||
</context-param>
|
||||
<!--
|
||||
<context-param>
|
||||
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
|
||||
<param-value>true</param-value>
|
||||
</context-param>
|
||||
-->
|
||||
|
||||
<listener>
|
||||
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<description>The JSF Servlet</description>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<url-pattern>*.jsf</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Plugin our own richfaces skin -->
|
||||
<context-param>
|
||||
<param-name>org.richfaces.SKIN</param-name>
|
||||
<param-value>logstats</param-value>
|
||||
</context-param>
|
||||
|
||||
<!-- Making the RichFaces skin spread to standard HTML controls -->
|
||||
<context-param>
|
||||
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
|
||||
<param-value>enable</param-value>
|
||||
</context-param>
|
||||
|
||||
<!-- Defining and mapping the RichFaces filter -->
|
||||
<filter>
|
||||
<display-name>RichFaces Filter</display-name>
|
||||
<filter-name>richfaces</filter-name>
|
||||
<filter-class>org.ajax4jsf.Filter</filter-class>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>richfaces</filter-name>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
<dispatcher>FORWARD</dispatcher>
|
||||
<dispatcher>INCLUDE</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- =============== VASC CONFIG =================================== -->
|
||||
<filter>
|
||||
<display-name>VASC Filter</display-name>
|
||||
<filter-name>vascFilter</filter-name>
|
||||
<filter-class>net.forwardfire.vasc.frontends.web.jsf.VascRequestFacesFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>templateFile</param-name>
|
||||
<param-value>/jsp/includes/vasc-template.jsf</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>resourceBundle</param-name>
|
||||
<param-value>/net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>vascFilter</filter-name>
|
||||
<url-pattern>/vasc/*</url-pattern>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
</web-app>
|
8
logstats-war/src/main/webapp/css/ie6_fixes.css
Normal file
8
logstats-war/src/main/webapp/css/ie6_fixes.css
Normal file
|
@ -0,0 +1,8 @@
|
|||
|
||||
/* CSS fixes for IE6 */
|
||||
|
||||
/*
|
||||
#page_menu_left {
|
||||
overflow: visible;
|
||||
}
|
||||
*/
|
8
logstats-war/src/main/webapp/css/ie7_fixes.css
Normal file
8
logstats-war/src/main/webapp/css/ie7_fixes.css
Normal file
|
@ -0,0 +1,8 @@
|
|||
|
||||
/* CSS fixes for IE7 */
|
||||
|
||||
/*
|
||||
#page_menu_left {
|
||||
overflow: visible;
|
||||
}
|
||||
*/
|
4
logstats-war/src/main/webapp/css/ie8_fixes.css
Normal file
4
logstats-war/src/main/webapp/css/ie8_fixes.css
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
/* CSS fixes for IE8 */
|
||||
|
||||
/* Yet to come */
|
538
logstats-war/src/main/webapp/css/site.css
Normal file
538
logstats-war/src/main/webapp/css/site.css
Normal file
|
@ -0,0 +1,538 @@
|
|||
|
||||
/* HTML STYLES */
|
||||
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 15px;
|
||||
color: #000000;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size:1.2em;
|
||||
font-weight:bold;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
display:block;
|
||||
font-size:1.0em;
|
||||
font-weight:bold;
|
||||
padding:10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
a {
|
||||
color:#004DEB;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
p {
|
||||
margin:10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-left:10px;
|
||||
}
|
||||
|
||||
/* DIVS */
|
||||
|
||||
#page_wrap{
|
||||
margin:10px;
|
||||
margin-top:0px;
|
||||
float:none;
|
||||
}
|
||||
|
||||
#page_header{
|
||||
height:80px;
|
||||
font-size:18px;
|
||||
border-bottom:1px solid #DDCCCC;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#page_header a img{
|
||||
border:none;
|
||||
padding-right:10px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
#page_content {
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
#page_footer {
|
||||
margin-top:35px;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
border-color:#e5e5e5;
|
||||
border-style:solid;
|
||||
border-width:1px 1px 1px 1px;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
}
|
||||
|
||||
/* MENU */
|
||||
|
||||
#page_menu_left,#page_menu_right {
|
||||
border-color:#DDCCCC;
|
||||
border-style:solid;
|
||||
border-width:0 0 1px 0;
|
||||
vertical-align:bottom;
|
||||
display:inline;
|
||||
}
|
||||
|
||||
#page_menu_right {
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
right:0;
|
||||
}
|
||||
|
||||
#page_menu_left a,#page_menu_right a {
|
||||
border:1px solid #e0e0e0;
|
||||
background-color:#DDCCCC;
|
||||
border-bottom-width:0px;
|
||||
text-align:center;
|
||||
-moz-border-radius-topleft:3xp;
|
||||
-moz-border-radius-topright:3xp;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
color:#000;
|
||||
margin:0px 5px 0px 0px;
|
||||
padding:3px 15px 2px 15px;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
#page_menu_left a:hover,#page_menu_right a:hover {
|
||||
text-decoration:none;
|
||||
background-color:#fff;
|
||||
border-color:#e0e0e0;
|
||||
}
|
||||
|
||||
#page_menu_left a.active,#page_menu_left a.active {
|
||||
background-color:#fff;
|
||||
font-weight:700;
|
||||
}
|
||||
|
||||
#page_user_info {
|
||||
padding:5px;
|
||||
position:absolute;
|
||||
right:0;
|
||||
top:0;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
|
||||
.actionbox{
|
||||
background-color:#DDCCCC;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
border:none;
|
||||
-moz-border-radius-topleft:0;
|
||||
-webkit-border-top-left-radius:0;
|
||||
-khtml-border-radius-topleft:0;
|
||||
clear:both;
|
||||
padding:3px 0 3px 3px;
|
||||
display:block;
|
||||
}
|
||||
.actionbox label{display:inline;}
|
||||
ul.actionboxtab{margin:0;padding:0;}
|
||||
ul.actionboxtab li{list-style-type:none;float:left;margin:0;padding:0;}
|
||||
ul.actionboxtab li a {
|
||||
border:solid 1px #ddd;
|
||||
border-bottom-width:0;
|
||||
-moz-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
font-weight:700;
|
||||
display:block;
|
||||
margin-right:5px;color:#000;
|
||||
padding:3px 15px;
|
||||
}
|
||||
ul.actionboxtab li a.active{background-color:#DDCCCC;border:solid 1px #DDCCCC;text-decoration:none;}
|
||||
ul.actionboxtab li a:hover{background-color:#DDCCCC;border:solid 1px #DDCCCC;text-decoration:none;}
|
||||
td.tableactions{border-bottom-color:#bbb;text-align:left;}
|
||||
|
||||
|
||||
ul.paging{
|
||||
clear:both;
|
||||
margin-bottom:5px;
|
||||
margin-top:5px;
|
||||
display:block;
|
||||
float:left;
|
||||
padding-top:3px;
|
||||
padding-bottom:3px;
|
||||
width:100%;
|
||||
list-style:none;
|
||||
}
|
||||
ul.paging li,ul.paging span{float:left;margin:0 2px 0 2px;}
|
||||
.paging_thispage{font-weight:700;padding:0 6px;}
|
||||
ul.paging .paging_atstart{margin-right:10px;}ul.paging .paging_atend{margin-left:10px;}
|
||||
ul.paging .paging_atstart a,ul.paging .nolink.paging_atstart{
|
||||
padding-left:15px;
|
||||
}
|
||||
ul.paging .paging_atend a,ul.paging .nolink.paging_atend{
|
||||
padding-right:15px;
|
||||
}
|
||||
ul.paging .paging_next{
|
||||
margin-left:20px;
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
|
||||
ul.paging .paging_prev{
|
||||
margin-right:20px;
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
ul.paging a,ul.paging .paging_link{
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
ul.paging .paging_break{
|
||||
font-weight:700;padding:2px 6px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* TABLES */
|
||||
/*
|
||||
#m_content table {
|
||||
text-align: left;
|
||||
}
|
||||
*/
|
||||
|
||||
table.table5, table.rating_table {
|
||||
border-collapse:collapse;
|
||||
font-size:11px;
|
||||
width:100%;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
table.table5 th, table.rating_table th {
|
||||
padding-top:5px;
|
||||
padding-bottom:5px;
|
||||
font-weight:700;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
table.table5 td, table.rating_table td {
|
||||
vertical-align:top;
|
||||
padding-top:5px;
|
||||
padding-bottom:5px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
.dataTableHeaderRow {
|
||||
border:1px solid #e0e0e0;
|
||||
background-color:#e4e4e4;
|
||||
border-bottom-width:0;
|
||||
}
|
||||
|
||||
.dataTableHeaderRow th, td {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
table input,table select {
|
||||
font-size: 11px;
|
||||
margin-left:6px;
|
||||
margin-right:6px;
|
||||
}
|
||||
|
||||
table.table5 tr:nth-child(even) {
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
|
||||
.table_options_top {
|
||||
-moz-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
background-color:#DDCCCC;
|
||||
font-size:12px;
|
||||
font-weight:700;
|
||||
padding:6px 15px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.table_options_bottom {
|
||||
-moz-border-radius-bottomleft:3px;
|
||||
-moz-border-radius-bottomright:3px;
|
||||
background-color:#DDCCCC;
|
||||
font-size:12px;
|
||||
font-weight:700;
|
||||
padding:6px 15px;
|
||||
display: block;
|
||||
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
|
||||
.table_sub_header {
|
||||
-moz-border-radius-topleft:5px;
|
||||
-moz-border-radius-topright:5px;
|
||||
background-color:#EEEEEE;
|
||||
border:1px solid #BBBBBB;
|
||||
display:block;
|
||||
font-size:14px;
|
||||
font-weight:700;
|
||||
margin:0 2px;
|
||||
padding:3px 6px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
|
||||
.rich-table-subheader {
|
||||
background-color:#DDCCCC;
|
||||
border-top: 1px solid #C0C0C0;
|
||||
border-left: 1px solid #C0C0C0;
|
||||
}
|
||||
|
||||
.rich-table {
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.rich-table-row {
|
||||
border-left: 1px solid #C0C0C0;
|
||||
}
|
||||
|
||||
.rich-table-headercell,.rich-table-footercell {
|
||||
background-color: #FFF;
|
||||
border: none;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
font-weight: none;
|
||||
}
|
||||
|
||||
.rich-table-thead {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.rich-table-header {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.homepage_stats {
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
.homepage_stats_big {
|
||||
color:#004DEB;
|
||||
margin-top:5px;
|
||||
margin-bottom:5px;
|
||||
font-size: 20px;
|
||||
display:block;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* MESSAGES */
|
||||
|
||||
.message_info,
|
||||
.message_1 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #a0ff7d;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #a0ff7d;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_warning,
|
||||
.message_2 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #ffae4c;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #ffae4c;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_error,
|
||||
.message_3 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #ff5b43;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #ff5b43;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_4 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #fc9200;
|
||||
background-color: #fc9200;
|
||||
-moz-border-radius-topleft:3px;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
padding: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.message_1 input, .message_1 button, .message_2 input, .message_2 button, .message_3 input, .message_3 button {
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
.message_4 h2 {
|
||||
margin: 0px;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.message_4 input {
|
||||
margin: 0px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
padding: 2px 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* LOGINBOX */
|
||||
|
||||
|
||||
/* Text styles */
|
||||
|
||||
.text_justify {
|
||||
text-align:justify;
|
||||
}
|
||||
|
||||
.text_left {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
.text_right {
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
.text_center {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.text_middle {
|
||||
vertical-align:middle!important;
|
||||
}
|
||||
|
||||
.text_top {
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
/* OTHER STYLES */
|
||||
|
||||
.no_wrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.no_border {
|
||||
border:none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** WIKI styles
|
||||
*/
|
||||
|
||||
#toc,
|
||||
.toc,
|
||||
.mw-warning {
|
||||
border: 1px solid #aaa;
|
||||
background-color: #f9f9f9;
|
||||
padding: 5px;
|
||||
font-size: 95%;
|
||||
}
|
||||
#toc h2,
|
||||
.toc h2 {
|
||||
display: inline;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
#toc #toctitle,
|
||||
.toc #toctitle,
|
||||
#toc .toctitle,
|
||||
.toc .toctitle {
|
||||
text-align: center;
|
||||
}
|
||||
#toc ul,
|
||||
.toc ul {
|
||||
list-style-type: none;
|
||||
list-style-image: none;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
text-align: left;
|
||||
}
|
||||
#toc ul ul,
|
||||
.toc ul ul {
|
||||
margin: 0 0 0 2em;
|
||||
}
|
||||
#toc .toctoggle,
|
||||
.toc .toctoggle {
|
||||
font-size: 94%;
|
||||
}
|
||||
|
||||
.thumbcaption {
|
||||
border: none;
|
||||
text-align: left;
|
||||
line-height: 1.4em;
|
||||
padding: 3px !important;
|
||||
font-size: 94%;
|
||||
}
|
||||
|
||||
.location-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
border-width: .5em 0 .8em 1.4em;
|
||||
}
|
||||
.location-left {
|
||||
float: left;
|
||||
clear: left;
|
||||
margin-right: .5em;
|
||||
border-width: .5em 1.4em .8em 0;
|
||||
}
|
||||
|
BIN
logstats-war/src/main/webapp/img/icon_download.png
Normal file
BIN
logstats-war/src/main/webapp/img/icon_download.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 175 B |
BIN
logstats-war/src/main/webapp/img/icon_print.png
Normal file
BIN
logstats-war/src/main/webapp/img/icon_print.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 172 B |
BIN
logstats-war/src/main/webapp/img/logstats-logo.png
Normal file
BIN
logstats-war/src/main/webapp/img/logstats-logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
22
logstats-war/src/main/webapp/jsp/admin/index.xhtml
Normal file
22
logstats-war/src/main/webapp/jsp/admin/index.xhtml
Normal file
|
@ -0,0 +1,22 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:composition template="/jsp/includes/layout.xhtml">
|
||||
<ui:define name="title">Vasc Admin</ui:define>
|
||||
<ui:define name="content">
|
||||
<rich:panel style="width:90%;margin-top:2em;">
|
||||
<f:facet name="header">
|
||||
<h:outputText value="Vasc Admin" />
|
||||
</f:facet>
|
||||
<rich:dataList var="info" value="#{vascFacesController.vascAdminEntries}">
|
||||
<h:column>
|
||||
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/vasc/#{info}/list.jsf"><h:outputText value="#{info}"/></h:outputLink>
|
||||
</h:column>
|
||||
</rich:dataList>
|
||||
</rich:panel>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
10
logstats-war/src/main/webapp/jsp/help.xhtml
Normal file
10
logstats-war/src/main/webapp/jsp/help.xhtml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Help</ui:define>
|
||||
<ui:define name="content"><h:outputText value="Help"/></ui:define>
|
||||
</ui:composition>
|
15
logstats-war/src/main/webapp/jsp/includes/index-pulic.xhtml
Normal file
15
logstats-war/src/main/webapp/jsp/includes/index-pulic.xhtml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<ui:composition
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<rich:panel header="User Greeter" style="width: 315px">
|
||||
<h2><h:outputText value="Hello User" /></h2>
|
||||
<h:outputLink value="user/index.jsf">
|
||||
<h:outputText value="Login" />
|
||||
</h:outputLink>
|
||||
<h:outputText value="Already Loggedin."/>
|
||||
</rich:panel>
|
||||
</ui:composition>
|
16
logstats-war/src/main/webapp/jsp/includes/index-user.xhtml
Normal file
16
logstats-war/src/main/webapp/jsp/includes/index-user.xhtml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<ui:composition
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<rich:panel header="User Greeter" style="width: 315px">
|
||||
<h2><h:outputText value="Hello User" /></h2>
|
||||
<h:outputText value="Name: " />
|
||||
<h:outputText value="#{userController.flowUser.username}" />
|
||||
<rich:dataList value="#{userController.rightRoles}" var="role">
|
||||
<h:outputText value="#{role.roleKey}" />
|
||||
</rich:dataList>
|
||||
</rich:panel>
|
||||
</ui:composition>
|
71
logstats-war/src/main/webapp/jsp/includes/layout.xhtml
Normal file
71
logstats-war/src/main/webapp/jsp/includes/layout.xhtml
Normal file
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
|
||||
<meta name="robots" content="noodp"/>
|
||||
<meta http-equiv="Pragma" content="no-cache"/>
|
||||
<meta name="description" content="logstats"/>
|
||||
<meta name="keywords" content="logstats,log,log4j,jboss,index,statistics,forwardfire,x4o,vasc,java"/>
|
||||
<title><ui:insert name="title">Default title</ui:insert></title>
|
||||
<link href="#{facesContext.externalContext.requestContextPath}/css/site.css" rel="stylesheet" type="text/css"/>
|
||||
<!--[if IE 6]><link href="#{facesContext.externalContext.requestContextPath}/css/ie6_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
<!--[if IE 7]><link href="#{facesContext.externalContext.requestContextPath}/css/ie7_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
<!--[if IE 8]><link href="#{facesContext.externalContext.requestContextPath}/css/ie8_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<f:view>
|
||||
<div id="page_wrap">
|
||||
<div id="page_header">
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/index.jsf"><img src="#{facesContext.externalContext.requestContextPath}/img/logstats-logo.png" alt="LogStats Logo" /></a>
|
||||
<div id="page_menu_left">
|
||||
</div>
|
||||
<div id="page_menu_right">
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/index.jsf" class="active">Home</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/reports.jsf">Reports</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/realtime.jsf">Log</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/help.jsf">Help</a>
|
||||
<h:outputLink rendered="#{userController.userLoggedin}" value="#{facesContext.externalContext.requestContextPath}/jsp/admin/index.jsf">
|
||||
<h:outputText value="Admin"/>
|
||||
</h:outputLink>
|
||||
</div>
|
||||
<div id="page_user_info">
|
||||
<h:outputLink rendered="#{userController.userLoggedin == false}" value="#{facesContext.externalContext.requestContextPath}/jsp/admin/index.jsf">
|
||||
<h:outputText value="Login"/>
|
||||
</h:outputLink>
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == true}">
|
||||
<h:outputText value="#{userController.user.username}"/>
|
||||
<h:outputText value=" - "/>
|
||||
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/jsp/login/logout.jsf">
|
||||
<h:outputText value="Logout"/>
|
||||
</h:outputLink>
|
||||
</h:panelGroup>
|
||||
</div>
|
||||
</div>
|
||||
<div id="page_content">
|
||||
<h1><ui:insert name="title" /></h1>
|
||||
<ui:insert name="content"/>
|
||||
</div>
|
||||
<div class="spacer"> </div>
|
||||
<div id="page_footer">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td colspan="4" class="text_center">LogStats for logging your stats.</td>
|
||||
</tr>
|
||||
<tr class="copyright">
|
||||
<td colspan="2" class="text_left">Copyright © none</td>
|
||||
<td colspan="2" class="text_right">
|
||||
Versie 0.8Beta -rXxx
|
||||
<i>(2010-06-26 01:07)</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</f:view>
|
||||
</body>
|
||||
</html>
|
318
logstats-war/src/main/webapp/jsp/includes/vasc-template.xhtml
Normal file
318
logstats-war/src/main/webapp/jsp/includes/vasc-template.xhtml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:v="http://vasc.forwardfire.net/vasc.tld"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:composition template="/jsp/includes/layout.xhtml">
|
||||
<ui:define name="title">
|
||||
<h:outputText value="#{requestScopeVascEntityNameI18n}" />
|
||||
</ui:define>
|
||||
<ui:define name="content">
|
||||
<script language="javascript" type="text/javascript">
|
||||
<![CDATA[
|
||||
function selectAllCheckboxes(x) {
|
||||
for (var i=0,l=x.form.length; i<l; i++) {
|
||||
if (x.form[i].type == 'checkbox' && (!x.form[i].disabled) && x!=x.form[i] ) {
|
||||
x.form[i].checked=!x.form[i].checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
<v:vascEntry vascController="#{vascFacesController.vascController}"
|
||||
vascFrontendData="#{vascFacesController.newVascFrontendData}"
|
||||
entryName="#{requestScopeVascEntityName}"
|
||||
entrySupportVar="entrySupport"
|
||||
tableRecordVar="tableRecord"
|
||||
injectEditFieldsId="injectEditFieldsId"
|
||||
injectTableOptionsId="injectTableOptionsId"
|
||||
injectTableColumnsId="injectTableColumnsId"
|
||||
disableLinkColumns="true"
|
||||
>
|
||||
<f:facet name="deleteView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.deleteDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.selectedDisplayName}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<h:commandButton actionListener="#{entrySupport.deleteAction}" value="#{entrySupport.i18nMap['vasc.action.deleteRowAction.name']}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="exportView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.exportDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="editView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.editDescription]}" escape="false" rendered="#{!entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.createDescription]}" escape="false" rendered="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<ul class="actionboxtab">
|
||||
<li><a class="active"><h:outputText value="#{entrySupport.i18nMap['vasc.action.editRowAction.name']}"/></a></li>
|
||||
<ui:repeat var="link" value="#{entrySupport.vascLinkEntriesEditTab}" rendered="#{!entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<li><h:commandLink actionListener="#{entrySupport.linkEditAction}" value="#{entrySupport.i18nMap[link.name]}" type="#{link.id}"/></li>
|
||||
</ui:repeat>
|
||||
</ul>
|
||||
<h:panelGrid columns="1" styleClass="actionbox" width="100%">
|
||||
<h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
</h:panelGrid>
|
||||
</h:form>
|
||||
<br/>
|
||||
<h:form>
|
||||
<h:panelGrid columns="3" id="injectEditFieldsId" styleClass="actionbox"/>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.saveAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.save']}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</p>
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="listView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.listDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.addAction}"
|
||||
rendered="#{entrySupport.vascEntry.vascAdminCreate}"
|
||||
value="#{entrySupport.i18nMap['vasc.action.addRowAction.name']}"
|
||||
title="#{entrySupport.i18nMap['vasc.action.addRowAction.description']}"
|
||||
/>
|
||||
<h:commandButton actionListener="#{entrySupport.backAction}"
|
||||
rendered="#{entrySupport.renderBackAction}"
|
||||
value="#{entrySupport.i18nMap['generic.vasc.jsf.action.back']}"
|
||||
/>
|
||||
|
||||
</p>
|
||||
</h:form>
|
||||
<h:form>
|
||||
<rich:dataTable id="injectTableColumnsId" var="tableRecord" value="#{entrySupport.tableDataModel}" rowClasses="odd,even">
|
||||
<f:facet name="header">
|
||||
<rich:columnGroup>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left">
|
||||
<ul class="actionboxtab">
|
||||
<li>
|
||||
<h:panelGroup rendered="#{!entrySupport.renderBackAction}">
|
||||
<a class="active"><h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.header']}"/></a>
|
||||
</h:panelGroup>
|
||||
<h:commandLink actionListener="#{entrySupport.backEditAction}" value="#{entrySupport.i18nMap['vasc.action.editRowAction.name']}" rendered="#{entrySupport.renderBackEditAction}"/>
|
||||
</li>
|
||||
<ui:repeat var="link" value="#{entrySupport.vascLinkEntriesEditTabParentState}">
|
||||
<li><h:commandLink actionListener="#{entrySupport.linkListAction}" value="#{entrySupport.i18nMap[link.name]}" type="#{link.id}" styleClass="#{link.vascEntryId==entrySupport.vascEntry.id?'active':''}"/></li>
|
||||
</ui:repeat>
|
||||
</ul>
|
||||
<h:panelGrid columns="1" styleClass="actionbox" width="100%">
|
||||
<h:panelGrid columns="2" id="injectTableOptionsId"/>
|
||||
<h:panelGroup>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.search']}"/>
|
||||
<h:inputText value="#{entrySupport.searchString}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.searchAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.sumbit']}"/>
|
||||
</h:panelGroup>
|
||||
</h:panelGrid>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<ul class="paging">
|
||||
<li class="paging_atstart">
|
||||
<h:commandLink rendered="#{entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}"
|
||||
actionListener="#{entrySupport.pagePreviousAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}" />
|
||||
</li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesDataModel}" rendered="#{!entrySupport.hasExtendedPageMode}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageMode}">
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedBegin}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageModeCenter}">
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedCenter}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedEnd}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li class="paging_atend">
|
||||
<h:commandLink rendered="#{entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}"
|
||||
actionListener="#{entrySupport.pageNextAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}" />
|
||||
</li>
|
||||
</ul>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<h:panelGroup styleClass="table_options_top">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.rows']}" />
|
||||
<h:inputText required="false" value="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.vascBackendState.pageSize}" size="4"/>
|
||||
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.pagerDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedDirectPage}" valueChangeListener="#{entrySupport.processDirectPageChange}">
|
||||
<f:selectItems value="#{entrySupport.directPageItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_download.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.download.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.downloadDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedExporterAction}" valueChangeListener="#{entrySupport.processDirectDownloadChange}">
|
||||
<f:selectItems value="#{entrySupport.globalExportItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_print.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.printer.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap['generic.vasc.jsf.table.resultText']}">
|
||||
<f:param value="#{entrySupport.pageStartCount}" />
|
||||
<f:param value="#{entrySupport.pageStopCount}" />
|
||||
<f:param value="#{entrySupport.pageTotalRecordCount}" />
|
||||
</h:outputFormat>
|
||||
</h:panelGroup>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true" rendered="#{entrySupport.hasMultiRowActions}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.multiAction.selectAll']}"/>
|
||||
<h:selectBooleanCheckbox id="selectAllBox" required="false" onchange="javascript:selectAllCheckboxes(this);return false;" value="#{entrySupport.selectAllValue}"/>
|
||||
<h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:selectOneMenu id="multiAction" required="false" value="#{entrySupport.selectedMultiRowAction}" onchange="javascript:this.form.submit(); return false;" valueChangeListener="#{entrySupport.processMultiRowActionChange}">
|
||||
<f:selectItems value="#{entrySupport.multiRowActionItems}" />
|
||||
</h:selectOneMenu>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalFieldColumnCount}" breakBefore="true">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.fields']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalLinkColumnCount}" rendered="#{entrySupport.totalLinkColumnCount != 0}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.links']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalActionColumnCount}" rendered="#{entrySupport.totalActionColumnCount != 0}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.actions']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
</rich:columnGroup>
|
||||
</f:facet>
|
||||
<f:facet name="footer">
|
||||
<rich:columnGroup>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left">
|
||||
<h:panelGroup styleClass="table_options_bottom">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.rows']}" />
|
||||
<h:inputText required="false" value="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.vascBackendState.pageSize}" size="4"/>
|
||||
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.pagerDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedDirectPage}" valueChangeListener="#{entrySupport.processDirectPageChange}">
|
||||
<f:selectItems value="#{entrySupport.directPageItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_download.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.download.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.downloadDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedExporterAction}" valueChangeListener="#{entrySupport.processDirectDownloadChange}">
|
||||
<f:selectItems value="#{entrySupport.globalExportItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_print.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.printer.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap['generic.vasc.jsf.table.resultText']}">
|
||||
<f:param value="#{entrySupport.pageStartCount}" />
|
||||
<f:param value="#{entrySupport.pageStopCount}" />
|
||||
<f:param value="#{entrySupport.pageTotalRecordCount}" />
|
||||
</h:outputFormat>
|
||||
</h:panelGroup>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<ul class="paging">
|
||||
<li class="paging_atstart">
|
||||
<h:commandLink rendered="#{entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}"
|
||||
actionListener="#{entrySupport.pagePreviousAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}" />
|
||||
</li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesDataModel}" rendered="#{!entrySupport.hasExtendedPageMode}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageMode}">
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedBegin}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageModeCenter}">
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedCenter}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedEnd}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li class="paging_atend">
|
||||
<h:commandLink rendered="#{entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}"
|
||||
actionListener="#{entrySupport.pageNextAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}" />
|
||||
</li>
|
||||
</ul>
|
||||
</rich:column>
|
||||
</rich:columnGroup>
|
||||
</f:facet>
|
||||
</rich:dataTable>
|
||||
</h:form>
|
||||
<h:form>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.addAction}"
|
||||
rendered="#{entrySupport.vascEntry.vascAdminCreate}"
|
||||
value="#{entrySupport.i18nMap['vasc.action.addRowAction.name']}"
|
||||
title="#{entrySupport.i18nMap['vasc.action.addRowAction.description']}"/>
|
||||
</p>
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
</v:vascEntry>
|
||||
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html">
|
||||
<ui:define name="title">
|
||||
<h:outputText value="#{wikiPageController.wikiTitle}" />
|
||||
</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="#{wikiPageController.wikiContent}" escape="false"/>
|
||||
</ui:define>
|
||||
</ui:composition>
|
20
logstats-war/src/main/webapp/jsp/index.xhtml
Normal file
20
logstats-war/src/main/webapp/jsp/index.xhtml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Index</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Test etsdfjs "/>
|
||||
<!--
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == false}">
|
||||
<ui:include src="/jsp/includes/index-public.xhtml"/>
|
||||
</h:panelGroup>
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == true}">
|
||||
<ui:include src="/jsp/includes/index-user.xhtml"/>
|
||||
</h:panelGroup
|
||||
-->
|
||||
</ui:define>
|
||||
</ui:composition>
|
2
logstats-war/src/main/webapp/jsp/index_jsp.jsp
Normal file
2
logstats-war/src/main/webapp/jsp/index_jsp.jsp
Normal file
|
@ -0,0 +1,2 @@
|
|||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<c:redirect url="jsp/index.jsf"/>
|
11
logstats-war/src/main/webapp/jsp/login/login-error.xhtml
Normal file
11
logstats-war/src/main/webapp/jsp/login/login-error.xhtml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<ui:define name="title">Error</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Could not login" />
|
||||
</ui:define>
|
||||
</ui:composition>
|
11
logstats-war/src/main/webapp/jsp/login/login-forgot.xhtml
Normal file
11
logstats-war/src/main/webapp/jsp/login/login-forgot.xhtml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<ui:define name="title">Forgot</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Could forgot my login, send it to me" />
|
||||
</ui:define>
|
||||
</ui:composition>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue