[rhq] Branch 'linux-config' - 5 commits - modules/core modules/enterprise modules/plugins
by Partha Aji
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java | 17 ++++++---
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java | 5 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 8 ++--
modules/plugins/netservices/pom.xml | 18 +++++++---
4 files changed, 34 insertions(+), 14 deletions(-)
New commits:
commit a98637975ee9a36b3c1ef1574bed5a5b947bdc78
Merge: 073abeb... 3705350...
Author: Partha Aji <paji(a)redhat.com>
Date: Thu Feb 25 10:19:06 2010 -0500
Merge branch 'master' into linux-config
commit 37053500c05ec42b23740e4612899f2c56a21864
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 11:27:51 2010 +0100
BZ 568275 - add commons-codec which is needed with commons-httpclient 3
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 58087fa..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -33,6 +33,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </dependency>
</dependencies>
@@ -58,6 +63,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</artifactItem>
+ <artifactItem>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </artifactItem>
</artifactItems>
<outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
</configuration>
@@ -202,13 +212,13 @@
<id>deploy-jar-meta-inf</id>
<phase>package</phase>
<configuration>
- <tasks>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
+ <tasks>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
<echo>*** Updating META-INF dir in ${deployment.file}...</echo>
<unjar src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.outputDirectory}">
<patternset><include name="META-INF/**" /></patternset>
</unjar>
- <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
+ <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
</jar>
</tasks>
</configuration>
@@ -216,7 +226,7 @@
<goal>run</goal>
</goals>
</execution>
-
+
<execution>
<id>undeploy</id>
<phase>clean</phase>
commit b32fab5ccf90e3f6bc5c9c16e78daeb069f62675
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 10:59:56 2010 +0100
Persisting a new resource is no error ...
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 6755733..3af7a35 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -188,7 +188,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
}
entityManager.persist(resource);
- log.error("********* resource persisted ************");
+ log.debug("********* resource persisted ************");
// Execute sub-methods as overlord to bypass additional security checks.
Subject overlord = this.subjectManager.getOverlord();
updateImplicitMembership(overlord, resource);
@@ -366,7 +366,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_0,
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_1, // first delete the config objects
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_2, // then the history objects wrapping those configs
- AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
+ AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
AlertNotificationLog.QUERY_DELETE_BY_RESOURCES, // alter
Alert.QUERY_DELETE_BY_RESOURCES, // order
AlertCondition.QUERY_DELETE_BY_RESOURCES, // of
@@ -2134,7 +2134,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
parent = null;
break;
}
-
+
} while (parent != null);
if (resource != null) {
if (!authorizationManager.canViewResource(subject, resource.getId())) {
@@ -2164,7 +2164,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
IntExtractor<? super T> extractor) {
-
+
if (results.isEmpty()) {
return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
false);
commit 810993311fa5e22495be1eb9cfebb154a0e3a3ef
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 24 12:21:24 2010 -0500
don't bother looping/logging if debug not enabled.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index ef27906..dd943e0 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -125,8 +125,11 @@ public abstract class Criteria implements Serializable {
results.put(getCleansedFieldName(filterField, 6), filterFieldValue);
}
}
- for (Map.Entry<String, Object> entries : results.entrySet()) {
- LOG.debug("Filter: (" + entries.getKey() + ", " + entries.getValue() + ")");
+
+ if (LOG.isDebugEnabled()) {
+ for (Map.Entry<String, Object> entries : results.entrySet()) {
+ LOG.debug("Filter: (" + entries.getKey() + ", " + entries.getValue() + ")");
+ }
}
return results;
}
@@ -160,8 +163,10 @@ public abstract class Criteria implements Serializable {
}
}
}
- for (String entry : results) {
- LOG.debug("Fetch: (" + entry + ")");
+ if (LOG.isDebugEnabled()) {
+ for (String entry : results) {
+ LOG.debug("Fetch: (" + entry + ")");
+ }
}
return results;
}
@@ -283,7 +288,9 @@ public abstract class Criteria implements Serializable {
}
}
}
- LOG.debug("Page Control: " + pc);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Page Control: " + pc);
+ }
return pc;
}
commit 7f4d76951a1e2686aa4d104477765d9b4d350dad
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Feb 24 18:13:05 2010 +0100
BZ 566749 - fixing the NPE when adding platforms (that don't have a parent) to a resource group.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
index 698cb5a..808f331 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
@@ -201,7 +201,10 @@ public class AddGroupResourcesFormPrepareAction extends Action {
Resource resource = dr.getOriginal();
Resource parent = resource.getParentResource();
- parent.setName(buildLineage(dr.getParents()));
+ //platforms don't have parents, need to check for null here
+ if (parent != null) {
+ parent.setName(buildLineage(dr.getParents()));
+ }
convertedResults.add(resource);
}
14 years, 4 months
[rhq] Branch 'alertPlugin' - 4 commits - modules/core modules/enterprise modules/plugins
by Heiko W. Rupp
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java | 17 ++++++---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 8 ++--
modules/plugins/netservices/pom.xml | 18 +++++++---
3 files changed, 30 insertions(+), 13 deletions(-)
New commits:
commit 95ab39239a9d3d2f4081a49c8edcdc51acdacbfc
Merge: c8338b8... 3705350...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 14:31:21 2010 +0100
Merge branch 'master' into alertPlugin
commit 37053500c05ec42b23740e4612899f2c56a21864
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 11:27:51 2010 +0100
BZ 568275 - add commons-codec which is needed with commons-httpclient 3
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 58087fa..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -33,6 +33,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </dependency>
</dependencies>
@@ -58,6 +63,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</artifactItem>
+ <artifactItem>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </artifactItem>
</artifactItems>
<outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
</configuration>
@@ -202,13 +212,13 @@
<id>deploy-jar-meta-inf</id>
<phase>package</phase>
<configuration>
- <tasks>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
+ <tasks>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
<echo>*** Updating META-INF dir in ${deployment.file}...</echo>
<unjar src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.outputDirectory}">
<patternset><include name="META-INF/**" /></patternset>
</unjar>
- <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
+ <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
</jar>
</tasks>
</configuration>
@@ -216,7 +226,7 @@
<goal>run</goal>
</goals>
</execution>
-
+
<execution>
<id>undeploy</id>
<phase>clean</phase>
commit b32fab5ccf90e3f6bc5c9c16e78daeb069f62675
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 10:59:56 2010 +0100
Persisting a new resource is no error ...
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 6755733..3af7a35 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -188,7 +188,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
}
entityManager.persist(resource);
- log.error("********* resource persisted ************");
+ log.debug("********* resource persisted ************");
// Execute sub-methods as overlord to bypass additional security checks.
Subject overlord = this.subjectManager.getOverlord();
updateImplicitMembership(overlord, resource);
@@ -366,7 +366,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_0,
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_1, // first delete the config objects
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_2, // then the history objects wrapping those configs
- AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
+ AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
AlertNotificationLog.QUERY_DELETE_BY_RESOURCES, // alter
Alert.QUERY_DELETE_BY_RESOURCES, // order
AlertCondition.QUERY_DELETE_BY_RESOURCES, // of
@@ -2134,7 +2134,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
parent = null;
break;
}
-
+
} while (parent != null);
if (resource != null) {
if (!authorizationManager.canViewResource(subject, resource.getId())) {
@@ -2164,7 +2164,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
IntExtractor<? super T> extractor) {
-
+
if (results.isEmpty()) {
return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
false);
commit 810993311fa5e22495be1eb9cfebb154a0e3a3ef
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 24 12:21:24 2010 -0500
don't bother looping/logging if debug not enabled.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index ef27906..dd943e0 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -125,8 +125,11 @@ public abstract class Criteria implements Serializable {
results.put(getCleansedFieldName(filterField, 6), filterFieldValue);
}
}
- for (Map.Entry<String, Object> entries : results.entrySet()) {
- LOG.debug("Filter: (" + entries.getKey() + ", " + entries.getValue() + ")");
+
+ if (LOG.isDebugEnabled()) {
+ for (Map.Entry<String, Object> entries : results.entrySet()) {
+ LOG.debug("Filter: (" + entries.getKey() + ", " + entries.getValue() + ")");
+ }
}
return results;
}
@@ -160,8 +163,10 @@ public abstract class Criteria implements Serializable {
}
}
}
- for (String entry : results) {
- LOG.debug("Fetch: (" + entry + ")");
+ if (LOG.isDebugEnabled()) {
+ for (String entry : results) {
+ LOG.debug("Fetch: (" + entry + ")");
+ }
}
return results;
}
@@ -283,7 +288,9 @@ public abstract class Criteria implements Serializable {
}
}
}
- LOG.debug("Page Control: " + pc);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Page Control: " + pc);
+ }
return pc;
}
14 years, 4 months
[rhq] 2 commits - modules/enterprise modules/plugins
by Heiko W. Rupp
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 8 ++--
modules/plugins/netservices/pom.xml | 18 +++++++---
2 files changed, 18 insertions(+), 8 deletions(-)
New commits:
commit 37053500c05ec42b23740e4612899f2c56a21864
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 11:27:51 2010 +0100
BZ 568275 - add commons-codec which is needed with commons-httpclient 3
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 58087fa..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -33,6 +33,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </dependency>
</dependencies>
@@ -58,6 +63,11 @@
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</artifactItem>
+ <artifactItem>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.2</version>
+ </artifactItem>
</artifactItems>
<outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
</configuration>
@@ -202,13 +212,13 @@
<id>deploy-jar-meta-inf</id>
<phase>package</phase>
<configuration>
- <tasks>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
+ <tasks>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
<echo>*** Updating META-INF dir in ${deployment.file}...</echo>
<unjar src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.outputDirectory}">
<patternset><include name="META-INF/**" /></patternset>
</unjar>
- <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
+ <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
</jar>
</tasks>
</configuration>
@@ -216,7 +226,7 @@
<goal>run</goal>
</goals>
</execution>
-
+
<execution>
<id>undeploy</id>
<phase>clean</phase>
commit b32fab5ccf90e3f6bc5c9c16e78daeb069f62675
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Feb 25 10:59:56 2010 +0100
Persisting a new resource is no error ...
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 6755733..3af7a35 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -188,7 +188,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
}
entityManager.persist(resource);
- log.error("********* resource persisted ************");
+ log.debug("********* resource persisted ************");
// Execute sub-methods as overlord to bypass additional security checks.
Subject overlord = this.subjectManager.getOverlord();
updateImplicitMembership(overlord, resource);
@@ -366,7 +366,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_0,
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_1, // first delete the config objects
PluginConfigurationUpdate.QUERY_DELETE_BY_RESOURCES_2, // then the history objects wrapping those configs
- AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
+ AlertConditionLog.QUERY_DELETE_BY_RESOURCES, // Don't
AlertNotificationLog.QUERY_DELETE_BY_RESOURCES, // alter
Alert.QUERY_DELETE_BY_RESOURCES, // order
AlertCondition.QUERY_DELETE_BY_RESOURCES, // of
@@ -2134,7 +2134,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
parent = null;
break;
}
-
+
} while (parent != null);
if (resource != null) {
if (!authorizationManager.canViewResource(subject, resource.getId())) {
@@ -2164,7 +2164,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
IntExtractor<? super T> extractor) {
-
+
if (results.isEmpty()) {
return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
false);
14 years, 4 months
[rhq] Branch 'gwt' - 4 commits - modules/core modules/enterprise
by ips
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java | 6
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/RoleCriteria.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/DemoCanvas.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java | 112 ++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java | 139 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java | 40 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java | 22 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java | 39 ++
modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml | 16 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java | 13
15 files changed, 374 insertions(+), 59 deletions(-)
New commits:
commit c0b8bd768f4d48d8eab05e1b9d1cf82eae42f550
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Feb 25 00:47:32 2010 -0500
start of GWT impl of Alert>History tab
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index c0dd45a..62a2fa2 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -220,5 +220,9 @@ public abstract class Criteria implements Serializable {
return pc;
}
-
+ public String getAlias() {
+ String className = getPersistentClass().getName();
+ String simpleClassName = className.substring(className.lastIndexOf(".") + 1);
+ return simpleClassName.toLowerCase();
+ }
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/RoleCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/RoleCriteria.java
index 4a1e41e..3fe5c87 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/RoleCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/RoleCriteria.java
@@ -94,7 +94,7 @@ public class RoleCriteria extends Criteria {
/**
* Requires MANAGE_SECURITY
- * @param fetchSubjects
+ * @param fetchResourceGroups
*/
public void setFetchResourceGroups(boolean fetchResourceGroups) {
this.fetchResourceGroups = fetchResourceGroups;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index b3373cc..864feb3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -20,9 +20,7 @@ package org.rhq.enterprise.gui.coregui.client.admin.roles;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.criteria.RoleCriteria;
-import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.RoleGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
@@ -75,9 +73,8 @@ public class RolesDataSource extends RPCDataSource {
public void executeFetch(final String requestId, final DSRequest request, final DSResponse response) {
final long start = System.currentTimeMillis();
-
RoleCriteria criteria = new RoleCriteria();
- criteria.setPageControl(getPageControl(request));
+ criteria.setPageControl(getPageControl(request, criteria.getAlias()));
roleService.findRolesByCriteria(criteria, new AsyncCallback<PageList<Role>>() {
public void onFailure(Throwable caught) {
@@ -97,8 +94,6 @@ public class RolesDataSource extends RPCDataSource {
ListGridRecord record = new ListGridRecord();
record.setAttribute("id", role.getId());
record.setAttribute("name", role.getName());
-
-
record.setAttribute("permissions", role.getPermissions());
records[x] = record;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index c5e7e2f..5de4698 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -20,9 +20,7 @@ package org.rhq.enterprise.gui.coregui.client.admin.users;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.SubjectCriteria;
-import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.SubjectGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
@@ -93,8 +91,7 @@ public class UsersDataSource extends RPCDataSource {
final long start = System.currentTimeMillis();
SubjectCriteria criteria = new SubjectCriteria();
- criteria.setPageControl(getPageControl(request));
-
+ criteria.setPageControl(getPageControl(request, criteria.getAlias()));
subjectService.findSubjectsByCriteria(criteria, new AsyncCallback<PageList<Subject>>() {
public void onFailure(Throwable caught) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
index f675a66..838a3d4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
@@ -30,7 +30,6 @@ import com.smartgwt.client.rpc.RPCResponse;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.criteria.AlertCriteria;
-import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.AlertGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
@@ -45,10 +44,10 @@ public class AlertDataSource extends RPCDataSource {
private static final String NAME = "Alert";
private static final DateTimeFormat DATE_TIME_FORMAT = DateTimeFormat.getMediumDateTimeFormat();
- private AlertGWTServiceAsync alertService = GWTServiceLookup.getAlertService();
-
private static AlertDataSource INSTANCE;
+ private AlertGWTServiceAsync alertService = GWTServiceLookup.getAlertService();
+
public static AlertDataSource getInstance() {
if (INSTANCE == null) {
INSTANCE = new AlertDataSource();
@@ -63,9 +62,10 @@ public class AlertDataSource extends RPCDataSource {
idDataField.setPrimaryKey(true);
idDataField.setHidden(true);
- DataSourceTextField nameField = new DataSourceTextField("name", "Name");
+ DataSourceTextField nameField = new DataSourceTextField("alertDefinition.name", "Name", 100);
- DataSourceTextField priorityField = new DataSourceTextField("priority", "Priority");
+ // TODO: Use DataSourceEnumField here?
+ DataSourceTextField priorityField = new DataSourceTextField("alertDefinition.priority", "Priority", 15);
DataSourceTextField ctimeField = new DataSourceTextField("ctime", "Creation Time");
@@ -78,14 +78,7 @@ public class AlertDataSource extends RPCDataSource {
AlertCriteria criteria = new AlertCriteria();
criteria.fetchAlertDefinition(true);
- PageControl pageControl;
- if (request.getStartRow() != null && request.getEndRow() != null) {
- pageControl = PageControl.getExplicitPageControl(request.getStartRow(),
- request.getEndRow() - request.getStartRow());
- } else {
- pageControl = PageControl.getSingleRowInstance();
- }
- criteria.setPageControl(pageControl);
+ criteria.setPageControl(getPageControl(request, criteria.getAlias()));
this.alertService.findAlertsByCriteria(criteria, new AsyncCallback<PageList<Alert>>() {
public void onFailure(Throwable caught) {
@@ -103,14 +96,15 @@ public class AlertDataSource extends RPCDataSource {
Alert alert = result.get(i);
ListGridRecord record = new ListGridRecord();
record.setAttribute("id", alert.getId());
- record.setAttribute("name", alert.getAlertDefinition().getName());
- record.setAttribute("priority", alert.getAlertDefinition().getPriority().name());
+ record.setAttribute("alertDefinition.name", alert.getAlertDefinition().getName());
+ record.setAttribute("alertDefinition.priority", alert.getAlertDefinition().getPriority().name());
record.setAttribute("ctime", DATE_TIME_FORMAT.format(new Date(alert.getCtime())));
records[i] = record;
}
response.setData(records);
- response.setTotalRows(result.getTotalSize()); // for paging to work we have to specify size of full result set
+ // For paging to work, we have to specify size of full result set.
+ response.setTotalRows(result.getTotalSize());
processResponse(requestId, response);
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index 38ee5fe..9d65377 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -37,7 +37,6 @@ import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.rpc.RPCResponse;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-
/**
* @author Greg Hinkle
*/
@@ -59,7 +58,8 @@ public class ResourceDatasource extends RPCDataSource {
DataSourceTextField descriptionDataField = new DataSourceTextField("description", "Description");
descriptionDataField.setCanEdit(false);
- DataSourceImageField availabilityDataField = new DataSourceImageField("currentAvailability", "Availability", 20);
+ DataSourceImageField availabilityDataField = new DataSourceImageField("currentAvailability.availabilityType",
+ "Availability", 20);
availabilityDataField.setCanEdit(false);
setFields(idDataField, nameDataField, descriptionDataField, availabilityDataField);
@@ -78,9 +78,8 @@ public class ResourceDatasource extends RPCDataSource {
final long start = System.currentTimeMillis();
ResourceCriteria criteria = new ResourceCriteria();
- criteria.setPageControl(getPageControl(request));
- criteria.addFilterName(query);
-
+ criteria.setPageControl(getPageControl(request, criteria.getAlias()));
+ criteria.addFilterName(this.query);
resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() {
public void onFailure(Throwable caught) {
@@ -98,11 +97,11 @@ public class ResourceDatasource extends RPCDataSource {
for (int x=0; x<result.size(); x++) {
Resource res = result.get(x);
ListGridRecord record = new ListGridRecord();
- record.setAttribute("resouce",res);
+ record.setAttribute("resource",res);
record.setAttribute("id",res.getId());
record.setAttribute("name",res.getName());
record.setAttribute("description",res.getDescription());
- record.setAttribute("currentAvailability",
+ record.setAttribute("currentAvailability.availabilityType",
res.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP
? "/images/icons/availability_green_16.png"
: "/images/icons/availability_red_16.png");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
index 26baefb..b1a8012 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
@@ -32,26 +32,20 @@ import com.smartgwt.client.types.DSProtocol;
*/
public abstract class RPCDataSource extends DataSource {
-
public RPCDataSource() {
setClientOnly(false);
setDataProtocol(DSProtocol.CLIENTCUSTOM);
setDataFormat(DSDataFormat.CUSTOM);
-
}
-
public RPCDataSource(String name) {
System.out.println("Trying to build DS: " + name);
setID(name);
setClientOnly(false);
setDataProtocol(DSProtocol.CLIENTCUSTOM);
setDataFormat(DSDataFormat.CUSTOM);
-
-
}
-
@Override
protected Object transformRequest(DSRequest request) {
String requestId = request.getRequestId();
@@ -88,22 +82,22 @@ public abstract class RPCDataSource extends DataSource {
* @param request the request to turn into a page control
* @return the page control for passing to criteria and other queries
*/
- protected PageControl getPageControl(DSRequest request) {
-
+ protected PageControl getPageControl(DSRequest request, String alias) {
+ // Initialize paging.
PageControl pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow());
+ // Initialize sorting.
String sortBy = request.getAttribute("sortBy");
if (sortBy != null) {
String[] sorts = sortBy.split(",");
-
for (String sort : sorts) {
- if (sort.startsWith("-")) {
- pageControl.addDefaultOrderingField(sort.substring(1), PageOrdering.DESC);
- } else {
- pageControl.addDefaultOrderingField(sort, PageOrdering.ASC);
- }
+ PageOrdering ordering = (sort.startsWith("-")) ? PageOrdering.DESC : PageOrdering.ASC;
+ String columnName = (ordering == PageOrdering.DESC) ? sort.substring(1) : sort;
+ String fieldName = alias + "." + columnName;
+ pageControl.addDefaultOrderingField(fieldName, ordering);
}
}
+
return pageControl;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
index 239073e..7d88f60 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
@@ -76,17 +76,8 @@ public final class CriteriaQueryGenerator {
public CriteriaQueryGenerator(Criteria criteria) {
this.criteria = criteria;
-
- String criteriaClassName = criteria.getClass().getSimpleName();
- className = criteriaClassName.substring(0, criteriaClassName.length() - 8);
-
- StringBuilder aliasBuilder = new StringBuilder();
- for (char c : this.className.toCharArray()) {
- if (Character.isUpperCase(c)) {
- aliasBuilder.append(Character.toLowerCase(c));
- }
- }
- this.alias = aliasBuilder.toString();
+ this.className = criteria.getPersistentClass().getSimpleName();
+ this.alias = this.criteria.getAlias();
}
public void setAuthorizationResourceFragment(AuthorizationTokenType type, int subjectId) {
commit 29c15ed8c90b61fcab1450d221b143a9ca062963
Merge: 37fc223... f7b08c6...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Feb 24 23:24:35 2010 -0500
Merge branch 'gwt' of ssh://git.fedorahosted.org/git/rhq/rhq into gwt
commit 37fc223be787d425d8c89b9910f525ce0dd6f9a9
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Feb 24 23:23:16 2010 -0500
start of GWT impl of Alert>History tab
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/DemoCanvas.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/DemoCanvas.java
index 350cc71..1156167 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/DemoCanvas.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/DemoCanvas.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.gui.coregui.client;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.enterprise.gui.coregui.client.alert.AlertsView;
import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceTreeView;
@@ -57,6 +58,7 @@ public class DemoCanvas extends Canvas {
Tab tableTab = new Tab("Resource Search Table");
Tab treeTab = new Tab("Resource Tree");
final Tab configTab = new Tab("Configuration Editor");
+ Tab alertHistoryTab = new Tab("Alert History");
// Agent: resource (10005) type (10060)
@@ -66,12 +68,12 @@ public class DemoCanvas extends Canvas {
configTab.setPane(new ConfigurationEditor(10005, 10060, ConfigurationEditor.ConfigType.plugin));
treeTab.setPane(new ResourceTreeView(new Resource(10001)));
tableTab.setPane(new ResourceSearchView());
-
+ alertHistoryTab.setPane(new AlertsView());
topTabSet.addTab(configTab);
topTabSet.addTab(tableTab);
topTabSet.addTab(treeTab);
-
+ topTabSet.addTab(alertHistoryTab);
final Menu configSelectMenu = new Menu();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
new file mode 100644
index 0000000..f675a66
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
@@ -0,0 +1,118 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.alert;
+
+import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.DataSourceField;
+import com.smartgwt.client.data.fields.DataSourceIntegerField;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.rpc.RPCResponse;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.alert.Alert;
+import org.rhq.core.domain.criteria.AlertCriteria;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.gwt.AlertGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+
+import java.util.Date;
+
+/**
+ * @author Ian Springer
+ */
+public class AlertDataSource extends RPCDataSource {
+ private static final String NAME = "Alert";
+ private static final DateTimeFormat DATE_TIME_FORMAT = DateTimeFormat.getMediumDateTimeFormat();
+
+ private AlertGWTServiceAsync alertService = GWTServiceLookup.getAlertService();
+
+ private static AlertDataSource INSTANCE;
+
+ public static AlertDataSource getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new AlertDataSource();
+ }
+ return INSTANCE;
+ }
+
+ protected AlertDataSource() {
+ super(NAME);
+
+ DataSourceField idDataField = new DataSourceIntegerField("id", "Id");
+ idDataField.setPrimaryKey(true);
+ idDataField.setHidden(true);
+
+ DataSourceTextField nameField = new DataSourceTextField("name", "Name");
+
+ DataSourceTextField priorityField = new DataSourceTextField("priority", "Priority");
+
+ DataSourceTextField ctimeField = new DataSourceTextField("ctime", "Creation Time");
+
+ setFields(idDataField, nameField, priorityField, ctimeField);
+ }
+
+ public void executeFetch(final String requestId, final DSRequest request, final DSResponse response) {
+ final long start = System.currentTimeMillis();
+
+ AlertCriteria criteria = new AlertCriteria();
+ criteria.fetchAlertDefinition(true);
+
+ PageControl pageControl;
+ if (request.getStartRow() != null && request.getEndRow() != null) {
+ pageControl = PageControl.getExplicitPageControl(request.getStartRow(),
+ request.getEndRow() - request.getStartRow());
+ } else {
+ pageControl = PageControl.getSingleRowInstance();
+ }
+ criteria.setPageControl(pageControl);
+
+ this.alertService.findAlertsByCriteria(criteria, new AsyncCallback<PageList<Alert>>() {
+ public void onFailure(Throwable caught) {
+ Window.alert("Failed to fetch Alerts - cause: " + caught);
+ System.err.println("Failed to fetch Alerts - cause: " + caught);
+ response.setStatus(RPCResponse.STATUS_FAILURE);
+ processResponse(requestId, response);
+ }
+
+ public void onSuccess(PageList<Alert> result) {
+ System.out.println(result.size() + " Alerts fetched in: " + (System.currentTimeMillis() - start) + "ms");
+
+ ListGridRecord[] records = new ListGridRecord[result.size()];
+ for (int i = 0; i < result.size(); i++) {
+ Alert alert = result.get(i);
+ ListGridRecord record = new ListGridRecord();
+ record.setAttribute("id", alert.getId());
+ record.setAttribute("name", alert.getAlertDefinition().getName());
+ record.setAttribute("priority", alert.getAlertDefinition().getPriority().name());
+ record.setAttribute("ctime", DATE_TIME_FORMAT.format(new Date(alert.getCtime())));
+ records[i] = record;
+ }
+
+ response.setData(records);
+ response.setTotalRows(result.getTotalSize()); // for paging to work we have to specify size of full result set
+ processResponse(requestId, response);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
index fdfd974..dce235f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -75,18 +75,6 @@ public class AlertsView extends SectionStack {
listGrid.setUseAllDataSourceFields(true);
-// ListGridField idField = new ListGridField("id", "Id", 55);
-// idField.setType(ListGridFieldType.INTEGER);
-//
-// ListGridField nameField = new ListGridField("username", "Name", 100);
-//
-//
-// ListGridField descriptionField = new ListGridField("name", "Name", 150);
-// ListGridField emailField = new ListGridField("email", "Email Address", 100);
-//
-// listGrid.setFields(idField, nameField, descriptionField, emailField);
-
-
gridHolder.addMember(listGrid);
ToolStrip toolStrip = new ToolStrip();
@@ -123,20 +111,18 @@ public class AlertsView extends SectionStack {
}
});
- SectionStackSection topSection = new SectionStackSection("Roles");
+ SectionStackSection topSection = new SectionStackSection("Alerts");
topSection.setExpanded(true);
topSection.setItems(gridHolder);
addSection(topSection);
-
final RoleEditView roleEditor = new RoleEditView();
- final SectionStackSection detailSection = new SectionStackSection("Edit Role");
+ final SectionStackSection detailSection = new SectionStackSection("Selected Role");
detailSection.setItems(roleEditor);
addSection(detailSection);
-
listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java
index 9f37184..66cffe3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -30,10 +30,11 @@ import org.rhq.core.domain.util.PageList;
*/
public interface AlertGWTService extends RemoteService {
/**
- * Find the alerts that match the specified criteria.
+ * Find all alerts that match the specified criteria.
*
- * @param criteria
- * @return
+ * @param criteria the criteria
+ *
+ * @return all alerts that match the specified criteria
*/
PageList<Alert> findAlertsByCriteria(AlertCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java
index 77cb6b8..36538f8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
index fa79885..46a6a67 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
+++ b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
@@ -68,4 +68,8 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI MeasurementDataGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/MeasurementDataGWTService</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI AlertGWTService</servlet-name>
+ <url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/AlertGWTService</url-pattern>
+ </servlet-mapping>
</web-app>
commit bd392c629297324f389f6850b84bfdc3e6ff3c2c
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Feb 24 18:08:53 2010 -0500
start of GWT impl of Alert>History tab
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index 0dcfef8..080f9b2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -1,7 +1,7 @@
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6//EN"
"http://google-web-toolkit.googlecode.com/svn/releases/1.6/distro-source/c...">
-<module>
+<module>
<inherits name='com.google.gwt.user.User'/>
<inherits name='org.rhq.core.RHQDomain'/>
@@ -18,7 +18,6 @@
<when-type-assignable class="org.rhq.core.domain.util.Recordizable"/>
</generate-with>-->
-
<set-property name="user.agent" value="safari"/>
<entry-point class='org.rhq.enterprise.gui.coregui.client.CoreGUI'/>
@@ -30,5 +29,6 @@
<servlet path="/ConfigurationGwtService" class="org.rhq.enterprise.gui.coregui.server.gwt.ConfigurationGWTServiceImpl"/>
<servlet path="/ResourceTypeGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ResourceTypeGWTServiceImpl"/>
<servlet path="/MeasurementDataGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.MeasurementDataGWTServiceImpl"/>
+ <servlet path="/AlertGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertGWTServiceImpl"/>
</module>
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
new file mode 100644
index 0000000..fdfd974
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
@@ -0,0 +1,153 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.alert;
+
+import com.smartgwt.client.types.Autofit;
+import com.smartgwt.client.types.SelectionAppearance;
+import com.smartgwt.client.types.SelectionStyle;
+import com.smartgwt.client.types.VisibilityMode;
+import com.smartgwt.client.util.BooleanCallback;
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.IButton;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.grid.ListGrid;
+import com.smartgwt.client.widgets.grid.events.SelectionChangedHandler;
+import com.smartgwt.client.widgets.grid.events.SelectionEvent;
+import com.smartgwt.client.widgets.layout.LayoutSpacer;
+import com.smartgwt.client.widgets.layout.SectionStack;
+import com.smartgwt.client.widgets.layout.SectionStackSection;
+import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.toolbar.ToolStrip;
+import org.rhq.enterprise.gui.coregui.client.admin.roles.RoleEditView;
+
+/**
+ * A view that displays a paginated table of fired {@link org.rhq.core.domain.alert.Alert alert}s, along with the
+ * ability to filter or sort those alerts, click on an alert to view details about that alert, or delete selected
+ * alerts.
+ *
+ * @author Ian Springer
+ */
+public class AlertsView extends SectionStack {
+
+ @Override
+ protected void onInit() {
+ super.onInit();
+
+ setVisibilityMode(VisibilityMode.MULTIPLE);
+ setWidth100();
+ setHeight100();
+
+ final AlertDataSource dataSource = AlertDataSource.getInstance();
+
+ VLayout gridHolder = new VLayout();
+ gridHolder.setWidth100();
+ gridHolder.setHeight100();
+
+ final ListGrid listGrid = new ListGrid();
+ listGrid.setWidth100();
+ listGrid.setHeight100();
+ listGrid.setDataSource(dataSource);
+ listGrid.setAutoFetchData(true);
+ listGrid.setAutoFitData(Autofit.HORIZONTAL);
+ listGrid.setAlternateRecordStyles(true);
+ listGrid.setSelectionType(SelectionStyle.SIMPLE);
+ listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
+
+ listGrid.setShowFilterEditor(true);
+
+ listGrid.setUseAllDataSourceFields(true);
+
+// ListGridField idField = new ListGridField("id", "Id", 55);
+// idField.setType(ListGridFieldType.INTEGER);
+//
+// ListGridField nameField = new ListGridField("username", "Name", 100);
+//
+//
+// ListGridField descriptionField = new ListGridField("name", "Name", 150);
+// ListGridField emailField = new ListGridField("email", "Email Address", 100);
+//
+// listGrid.setFields(idField, nameField, descriptionField, emailField);
+
+
+ gridHolder.addMember(listGrid);
+
+ ToolStrip toolStrip = new ToolStrip();
+ toolStrip.setMembersMargin(15);
+
+ final IButton removeButton = new IButton("Delete");
+ removeButton.setDisabled(true);
+ removeButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ SC.confirm("Are you sure you want to delete " + listGrid.getSelection().length + " alerts?",
+ new BooleanCallback() {
+ public void execute(Boolean aBoolean) {
+
+ }
+ }
+ );
+ }
+ });
+
+ final Label tableInfo = new Label("Total: " + listGrid.getTotalRows());
+ tableInfo.setWrap(false);
+
+ toolStrip.addMember(removeButton);
+ toolStrip.addMember(new LayoutSpacer());
+ toolStrip.addMember(tableInfo);
+
+ gridHolder.addMember(toolStrip);
+
+ listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+ public void onSelectionChanged(SelectionEvent selectionEvent) {
+ int selectedCount = ((ListGrid) selectionEvent.getSource()).getSelection().length;
+ tableInfo.setContents("Total: " + listGrid.getTotalRows() + " (" + selectedCount + " selected)");
+ removeButton.setDisabled(selectedCount == 0);
+ }
+ });
+
+ SectionStackSection topSection = new SectionStackSection("Roles");
+ topSection.setExpanded(true);
+ topSection.setItems(gridHolder);
+
+ addSection(topSection);
+
+
+ final RoleEditView roleEditor = new RoleEditView();
+
+ final SectionStackSection detailSection = new SectionStackSection("Edit Role");
+ detailSection.setItems(roleEditor);
+ addSection(detailSection);
+
+
+ listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+ public void onSelectionChanged(SelectionEvent selectionEvent) {
+ if (selectionEvent.getState()) {
+ expandSection(1);
+ roleEditor.editRecord(selectionEvent.getRecord());
+ } else
+ collapseSection(1);
+ roleEditor.editNone();
+ }
+ });
+
+
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java
new file mode 100644
index 0000000..9f37184
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertGWTService.java
@@ -0,0 +1,39 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.gwt;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import org.rhq.core.domain.alert.Alert;
+import org.rhq.core.domain.authz.Role;
+import org.rhq.core.domain.criteria.AlertCriteria;
+import org.rhq.core.domain.criteria.RoleCriteria;
+import org.rhq.core.domain.util.PageList;
+
+/**
+ * @author Ian Springer
+ */
+public interface AlertGWTService extends RemoteService {
+ /**
+ * Find the alerts that match the specified criteria.
+ *
+ * @param criteria
+ * @return
+ */
+ PageList<Alert> findAlertsByCriteria(AlertCriteria criteria);
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
index 03ad07b..bf28cf5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
@@ -18,14 +18,13 @@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
-
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.rpc.RpcRequestBuilder;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
/**
- * This lookup service retreives each RPC service and sets a
+ * This lookup service retrieves each RPC service and sets a
* custom RpcRequestBuilder that adds the login session id to
* be security checked on the server.
*
@@ -35,7 +34,6 @@ public class GWTServiceLookup {
public static final String SESSION_NAME = "RHQ_Sesssion";
-
public static ConfigurationGWTServiceAsync getConfigurationService() {
return secure(ConfigurationGWTServiceAsync.Util.getInstance());
}
@@ -64,6 +62,9 @@ public class GWTServiceLookup {
return secure(MeasurementDataGWTServiceAsync.Util.getInstance());
}
+ public static AlertGWTServiceAsync getAlertService() {
+ return secure(AlertGWTServiceAsync.Util.getInstance());
+ }
private static <T> T secure(Object sdt) {
if (!(sdt instanceof ServiceDefTarget)) return null;
@@ -73,7 +74,6 @@ public class GWTServiceLookup {
return (T) sdt;
}
-
public static void registerSession(String sessionId) {
Cookies.setCookie(SESSION_NAME, sessionId);
}
@@ -91,5 +91,4 @@ public class GWTServiceLookup {
}
}
-
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java
new file mode 100644
index 0000000..77cb6b8
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertGWTServiceImpl.java
@@ -0,0 +1,39 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.server.gwt;
+
+import org.rhq.core.domain.alert.Alert;
+import org.rhq.core.domain.criteria.AlertCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.gwt.AlertGWTService;
+import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
+import org.rhq.enterprise.server.alert.AlertManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author Ian Springer
+ */
+public class AlertGWTServiceImpl extends AbstractGWTServiceImpl implements AlertGWTService {
+ private AlertManagerLocal alertManager = LookupUtil.getAlertManager();
+
+ public PageList<Alert> findAlertsByCriteria(AlertCriteria criteria) {
+ return SerialUtility.prepare(alertManager.findAlertsByCriteria(getSessionSubject(), criteria),
+ "AlertService.findAlertsByCriteria");
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
index c35f36b..fa79885 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
+++ b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<web-app 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
@@ -13,7 +14,6 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI SubjectGWTService</servlet-name>
<servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.SubjectGWTServiceImpl</servlet-class>
</servlet>
-
<servlet>
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI ResourceGroupGWTService</servlet-name>
<servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.ResourceGroupGWTServiceImpl</servlet-class>
@@ -34,20 +34,20 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI MeasurementDataGWTService</servlet-name>
<servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.MeasurementDataGWTServiceImpl</servlet-class>
</servlet>
-
-
+ <servlet>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI AlertGWTService</servlet-name>
+ <servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.AlertGWTServiceImpl
+ </servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI RoleGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/RoleGWTService</url-pattern>
</servlet-mapping>
-
<servlet-mapping>
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI SubjectGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/SubjectGWTService</url-pattern>
</servlet-mapping>
-
-
<servlet-mapping>
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI ResourceGroupGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/ResourceGroupGWTService</url-pattern>
14 years, 4 months
[rhq] Branch 'gwt' - modules/enterprise
by Greg Hinkle
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java | 12 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 103 ----------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java | 40 +++
4 files changed, 42 insertions(+), 123 deletions(-)
New commits:
commit f7b08c624d9c2bfa6d24cadb0f5758f2e5e71b33
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Wed Feb 24 22:42:40 2010 -0500
Base datasource class can now populate PageControl for pagination and the sort columns and order
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index 12af5ab..b3373cc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -77,16 +77,8 @@ public class RolesDataSource extends RPCDataSource {
RoleCriteria criteria = new RoleCriteria();
-// criteria.addFilterName(query);
-
- if (request.getStartRow() != null && request.getEndRow() != null) {
- criteria.setPageControl(PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow()));
- } else {
- criteria.setPageControl(PageControl.getSingleRowInstance());
- }
-
-// criteria.addSortAgentName(PageOrdering.ASC);
-
+ criteria.setPageControl(getPageControl(request));
+
roleService.findRolesByCriteria(criteria, new AsyncCallback<PageList<Role>>() {
public void onFailure(Throwable caught) {
Window.alert("Failed to load " + caught.getMessage());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index e61f103..c5e7e2f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -93,15 +93,7 @@ public class UsersDataSource extends RPCDataSource {
final long start = System.currentTimeMillis();
SubjectCriteria criteria = new SubjectCriteria();
- // criteria.addFilterName(query);
-
- if (request.getStartRow() != null && request.getEndRow() != null) {
- criteria.setPageControl(PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow()));
- } else {
- criteria.setPageControl(PageControl.getSingleRowInstance());
- }
-
- // criteria.addSortAgentName(PageOrdering.ASC);
+ criteria.setPageControl(getPageControl(request));
subjectService.findSubjectsByCriteria(criteria, new AsyncCallback<PageList<Subject>>() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index 662e002..38ee5fe 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -21,33 +21,27 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
-import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.fields.DataSourceImageField;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.rpc.RPCResponse;
-import com.smartgwt.client.types.DSDataFormat;
-import com.smartgwt.client.types.DSProtocol;
import com.smartgwt.client.widgets.grid.ListGridRecord;
/**
* @author Greg Hinkle
*/
-public class ResourceDatasource extends DataSource {
- private boolean initialized = false;
-
+public class ResourceDatasource extends RPCDataSource {
private String query;
@@ -55,9 +49,6 @@ public class ResourceDatasource extends DataSource {
public ResourceDatasource() {
- setClientOnly(false);
- setDataProtocol(DSProtocol.CLIENTCUSTOM);
- setDataFormat(DSDataFormat.CUSTOM);
DataSourceField idDataField = new DataSourceIntegerField("id", "ID", 20);
idDataField.setPrimaryKey(true);
@@ -71,8 +62,6 @@ public class ResourceDatasource extends DataSource {
DataSourceImageField availabilityDataField = new DataSourceImageField("currentAvailability", "Availability", 20);
availabilityDataField.setCanEdit(false);
-// nameDataField.setType(FieldType.);
-
setFields(idDataField, nameDataField, descriptionDataField, availabilityDataField);
}
@@ -84,43 +73,13 @@ public class ResourceDatasource extends DataSource {
this.query = query;
}
- @Override
- protected Object transformRequest(DSRequest request) {
- String requestId = request.getRequestId();
- DSResponse response = new DSResponse();
- response.setAttribute("clientContext", request.getAttributeAsObject("clientContext"));
- // Asume success
- response.setStatus(0);
- switch (request.getOperationType()) {
- case ADD:
- //executeAdd(lstRec, true);
- break;
- case FETCH:
- executeFetch(requestId, request, response);
- break;
- case REMOVE:
- //executeRemove(lstRec);
- break;
- case UPDATE:
- //executeAdd(lstRec, false);
- break;
-
- default:
- break;
- }
-
- return request.getData();
- }
public void executeFetch(final String requestId, final DSRequest request, final DSResponse response) {
final long start = System.currentTimeMillis();
-
ResourceCriteria criteria = new ResourceCriteria();
+ criteria.setPageControl(getPageControl(request));
criteria.addFilterName(query);
- criteria.setPageControl(PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow()));
-
-// criteria.addSortAgentName(PageOrdering.ASC);
resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() {
@@ -132,21 +91,6 @@ public class ResourceDatasource extends DataSource {
}
public void onSuccess(PageList<Resource> result) {
-// mainPanel.clear();
-//
-// FlexTable table = new FlexTable();
-// mainPanel.add(table);
-//
-// int r = 0;
-// int c = 0;
-//
-// table.setText(r,c++,"id");
-// table.setText(r,c++,"name");
-// table.setText(r,c++,"description");
-// table.setText(r,c++,"type");
-// table.setText(r,c++,"availability");
-//
-// mainPanel.add(table);
System.out.println("Data retrieved in: " + (System.currentTimeMillis() - start));
@@ -168,48 +112,7 @@ public class ResourceDatasource extends DataSource {
response.setData(records);
response.setTotalRows(result.getTotalSize()); // for paging to work we have to specify size of full result set
processResponse(requestId, response);
-
-
-// for (Resource res : result) {
-// if (initialized) {
-// updateData(new ResourceRow(res));
-// } else {
-// addData(new ResourceRow(res));
-// }
-//
-// if (!initialized) initialized = true;
-// r++;
-// c=0;
-// table.setText(r,c++, String.valueOf(res.getId()));
-// table.setText(r,c++, res.getName());
-// table.setText(r,c++, res.getDescription());
-// table.setText(r,c++, String.valueOf(res.getResourceType().getId()));
-// table.setText(r,c++, String.valueOf(res.getCurrentAvailability().getAvailabilityType().getName()));
-
-// }
}
});
}
-
- private static class ResourceRow extends ListGridRecord {
-
- private Resource resource;
-
- private ResourceRow(Resource resource) {
- this.resource = resource;
-// DataTools.setProperties
-
- }
-
-
- public Resource getResource() {
- return resource;
- }
-
- public void setResource(Resource resource) {
- this.resource = resource;
- }
-
-
- }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
index e903a46..26baefb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
@@ -18,6 +18,9 @@
*/
package org.rhq.enterprise.gui.coregui.client.util;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageOrdering;
+
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
import com.smartgwt.client.data.DataSource;
@@ -30,7 +33,12 @@ import com.smartgwt.client.types.DSProtocol;
public abstract class RPCDataSource extends DataSource {
-
+ public RPCDataSource() {
+ setClientOnly(false);
+ setDataProtocol(DSProtocol.CLIENTCUSTOM);
+ setDataFormat(DSDataFormat.CUSTOM);
+
+ }
public RPCDataSource(String name) {
@@ -43,10 +51,8 @@ public abstract class RPCDataSource extends DataSource {
}
-
-
- @Override
+ @Override
protected Object transformRequest(DSRequest request) {
String requestId = request.getRequestId();
DSResponse response = new DSResponse();
@@ -75,6 +81,32 @@ public abstract class RPCDataSource extends DataSource {
}
+ /**
+ * Returns a prepopulated PageControl based on the provided DSRequest. This will set sort fields,
+ * pagination, but *not* filter fields.
+ *
+ * @param request the request to turn into a page control
+ * @return the page control for passing to criteria and other queries
+ */
+ protected PageControl getPageControl(DSRequest request) {
+
+ PageControl pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow());
+
+ String sortBy = request.getAttribute("sortBy");
+ if (sortBy != null) {
+ String[] sorts = sortBy.split(",");
+
+ for (String sort : sorts) {
+ if (sort.startsWith("-")) {
+ pageControl.addDefaultOrderingField(sort.substring(1), PageOrdering.DESC);
+ } else {
+ pageControl.addDefaultOrderingField(sort, PageOrdering.ASC);
+ }
+ }
+ }
+ return pageControl;
+ }
+
public abstract void executeFetch(final String requestId, final DSRequest request, final DSResponse response);
}
14 years, 4 months
[rhq] Branch 'ldap' - modules/core
by Partha Aji
modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml | 1 -
1 file changed, 1 deletion(-)
New commits:
commit 59a906f82c207c0128ad5be30dfc4c112775dbf9
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Feb 24 19:41:44 2010 -0500
Removed the unused is_ldap column from RHQ_SUBJECT_ROLE_MAP since we are using RHQ_SUBJECT_ROLE_LDAP_MAP for that information
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
index 1eaa6f8..6e0a31e 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
@@ -72,7 +72,6 @@
<table name="RHQ_SUBJECT_ROLE_MAP">
<column name="SUBJECT_ID" required="true" type="INTEGER" references="RHQ_SUBJECT"/>
<column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
- <column name="IS_LDAP" required="true" type="BOOLEAN" default="false"/>
<constraint name="RHQ_SUBJECT_ROLE_MAPPING_KEY">
<primaryKey>
14 years, 4 months
[rhq] Branch 'ldap' - 2 commits - modules/core
by Partha Aji
modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml | 10
modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java | 71 ++----
modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRoleEntity.java | 117 ----------
modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRolePK.java | 46 ---
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java | 76 +++---
5 files changed, 81 insertions(+), 239 deletions(-)
New commits:
commit b9287ab8a2ff37eed95fc7883504db0a7130c7c1
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Feb 24 19:32:04 2010 -0500
Mapping For Solution 2 Done
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
index c7d895b..9b991cd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
@@ -40,7 +40,6 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.QueryHint;
import javax.persistence.SequenceGenerator;
@@ -228,18 +227,19 @@ public class Subject implements Externalizable {
@OneToOne(cascade = { CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE })
private Configuration configuration;
- @OneToMany(mappedBy = "subject")
- private Set<SubjectRoleEntity> subjectRoles;
+ @JoinTable(name = "RHQ_SUBJECT_ROLE_MAP", joinColumns = { @JoinColumn(name = "SUBJECT_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
+ @ManyToMany
+ private java.util.Set<Role> roles;
+ @JoinTable(name = "RHQ_SUBJECT_ROLE_LDAP_MAP", joinColumns = { @JoinColumn(name = "SUBJECT_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
@ManyToMany
- @JoinTable(name = "RHQ_SUBJECT_ROLE_MAP", joinColumns = { @JoinColumn(name = "SUBJECT_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
- private Set<Role> roles = new HashSet<Role>();
+ private java.util.Set<Role> ldapRoles;
@Transient
private Integer sessionId = null;
private void init() {
- subjectRoles = new HashSet<SubjectRoleEntity>();
+ roles = new HashSet<Role>();
}
/**
@@ -364,51 +364,44 @@ public class Subject implements Externalizable {
this.configuration = configuration;
}
- public Set<SubjectRoleEntity> getSubjectRoles() {
- if (subjectRoles == null) {
- subjectRoles = new HashSet<SubjectRoleEntity>();
+ public java.util.Set<Role> getRoles() {
+ if (this.roles == null) {
+ this.roles = new HashSet<Role>();
}
- return subjectRoles;
- }
-
- public void setSubjectRoles(Set<SubjectRoleEntity> subjectRolesIn) {
- subjectRoles = subjectRolesIn;
- }
- public Set<Role> getRoles() {
- if (roles == null) {
- roles = new HashSet<Role>();
- }
- return roles;
+ return this.roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
- public void addRole(Role role, boolean ldap) {
- SubjectRoleEntity s = new SubjectRoleEntity();
- s.setSubject(this);
- s.setRole(role);
- s.setLdap(ldap);
- getSubjectRoles().add(s);
- }
-
public void addRole(Role role) {
- addRole(role, false);
+ getRoles().add(role);
}
public void removeRole(Role role) {
- SubjectRoleEntity toRemove = null;
- for (SubjectRoleEntity s : getSubjectRoles()) {
- if (s.getSubject().equals(this) && s.getRole().equals(role)) {
- toRemove = s;
- break;
- }
- }
- if (toRemove != null) {
- getSubjectRoles().remove(toRemove);
+ getRoles().remove(role);
+ }
+
+ public java.util.Set<Role> getLdapRoles() {
+ if (this.ldapRoles == null) {
+ this.ldapRoles = new HashSet<Role>();
}
+
+ return this.ldapRoles;
+ }
+
+ public void setLdapRoles(Set<Role> roles) {
+ this.ldapRoles = roles;
+ }
+
+ public void addLdapRole(Role role) {
+ getLdapRoles().add(role);
+ }
+
+ public void removeLdapRole(Role role) {
+ getLdapRoles().remove(role);
}
@Override
@@ -517,7 +510,7 @@ public class Subject implements Externalizable {
this.factive = in.readBoolean();
this.fsystem = in.readBoolean();
this.configuration = (Configuration) in.readObject();
- setRoles((Set<Role>) in.readObject());
+ this.roles = (Set<Role>) in.readObject();
this.sessionId = in.readInt();
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRoleEntity.java b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRoleEntity.java
deleted file mode 100644
index 3636fb5..0000000
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRoleEntity.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.rhq.core.domain.auth;
-
-import java.io.Serializable;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.IdClass;
-import javax.persistence.Table;
-
-import org.rhq.core.domain.authz.Role;
-
-@Entity
-(a)IdClass(SubjectRolePK.class)
-@Table(name = "RHQ_SUBJECT_ROLE_MAP")
-public class SubjectRoleEntity implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- @Id
- private Subject subject;
-
- @Id
- private Role role;
-
- @Column(name = "IS_LDAP")
- private boolean isLdap;
-
- public Subject getSubject() {
- return subject;
- }
-
- public void setSubject(Subject subject) {
- this.subject = subject;
- }
-
- public Role getRole() {
- return role;
- }
-
- public void setRole(Role role) {
- this.role = role;
- }
-
- public boolean isLdap() {
- return isLdap;
- }
-
- public void setLdap(boolean isLdap) {
- this.isLdap = isLdap;
- }
-
- @Override
- public int hashCode() {
- final int PRIME = 31;
- int result = 1;
- result = (PRIME * result) + ((subject == null) ? 0 : subject.hashCode());
- result = (PRIME * result) + ((role == null) ? 0 : role.hashCode());
- result = (PRIME * result) + ((isLdap) ? 0 : PRIME);
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if ((obj == null) || !(obj instanceof SubjectRoleEntity)) {
- return false;
- }
-
- final SubjectRoleEntity other = (SubjectRoleEntity) obj;
- if (subject == null) {
- if (other.subject != null) {
- return false;
- }
- } else if (!subject.equals(other.subject)) {
- return false;
- }
-
- if (role == null) {
- if (other.role != null) {
- return false;
- }
- } else if (!role.equals(other.role)) {
- return false;
- }
-
- return isLdap == other.isLdap;
- }
-}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRolePK.java b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRolePK.java
deleted file mode 100644
index 8b6259c..0000000
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/SubjectRolePK.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2009 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.core.domain.auth;
-
-import java.io.Serializable;
-
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-
-import org.rhq.core.domain.authz.Role;
-
-/**
- * @author paji
- *
- */
-public class SubjectRolePK implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- @ManyToOne
- @JoinColumn(name = "USER_ID", referencedColumnName = "ID")
- private Subject subject;
-
- @ManyToOne
- @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID")
- private Role role;
-}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index 5267fca..b7004bd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -37,7 +37,6 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@@ -47,7 +46,6 @@ import org.hibernate.annotations.CollectionOfElements;
import org.jetbrains.annotations.NotNull;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.auth.SubjectRoleEntity;
/**
* A role has zero or more {@link org.rhq.core.domain.resource.group.ResourceGroup}s assigned to it. You can assign a
@@ -106,11 +104,11 @@ public class Role implements Serializable {
@Column(name = "FSYSTEM")
private Boolean fsystem;
- @OneToMany(mappedBy = "role")
- private java.util.Set<SubjectRoleEntity> roleSubjects;
-
@ManyToMany(mappedBy = "roles")
- private Set<Subject> subjects = new HashSet<Subject>();
+ private java.util.Set<Subject> subjects = new HashSet<Subject>();
+
+ @ManyToMany(mappedBy = "ldapRoles")
+ private java.util.Set<Subject> ldapSubjects = new HashSet<Subject>();
@ManyToMany(mappedBy = "roles")
private java.util.Set<org.rhq.core.domain.resource.group.ResourceGroup> resourceGroups = new HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
@@ -183,52 +181,56 @@ public class Role implements Serializable {
return this.permissions.remove(permission);
}
- public Set<SubjectRoleEntity> getRoleSubjects() {
- if (roleSubjects == null) {
- roleSubjects = new HashSet<SubjectRoleEntity>();
- }
- return roleSubjects;
+ public java.util.Set<Subject> getSubjects() {
+ return subjects;
}
- public void setRoleSubjects(Set<SubjectRoleEntity> subjectsIn) {
- roleSubjects = subjectsIn;
+ public void setSubjects(Set<Subject> subjects) {
+ this.subjects = subjects;
}
- public java.util.Set<Subject> getSubjects() {
- if (subjects == null) {
- subjects = new HashSet<Subject>();
+ public void addSubject(Subject subject) {
+ if (this.subjects == null) {
+ this.subjects = new HashSet<Subject>();
}
- return subjects;
+
+ subject.addRole(this);
+ this.subjects.add(subject);
}
- public void setSubjects(Set<Subject> subjects) {
- this.subjects = subjects;
+ public void removeSubject(Subject subject) {
+ if (this.subjects == null) {
+ this.subjects = new HashSet<Subject>();
+ }
+
+ subject.removeRole(this);
+ this.subjects.remove(subject);
}
- public void addSubject(Subject subject, boolean ldap) {
- SubjectRoleEntity s = new SubjectRoleEntity();
- s.setSubject(subject);
- s.setRole(this);
- s.setLdap(ldap);
- getRoleSubjects().add(s);
+ public java.util.Set<Subject> getLdapSubjects() {
+ return ldapSubjects;
}
- public void addSubject(Subject subject) {
- addSubject(subject, false);
+ public void setLdapSubjects(Set<Subject> subjects) {
+ this.ldapSubjects = subjects;
}
- public void removeSubject(Subject subject) {
- SubjectRoleEntity toRemove = null;
- for (SubjectRoleEntity s : getRoleSubjects()) {
- if (s.getSubject().equals(subject) && s.getRole().equals(this)) {
- toRemove = s;
- break;
- }
+ public void addLdapSubject(Subject subject) {
+ if (this.ldapSubjects == null) {
+ this.ldapSubjects = new HashSet<Subject>();
}
- if (toRemove != null) {
- getRoleSubjects().remove(toRemove);
- subject.removeRole(this);
+
+ subject.addLdapRole(this);
+ this.ldapSubjects.add(subject);
+ }
+
+ public void removeLdapSubject(Subject subject) {
+ if (this.ldapSubjects == null) {
+ this.ldapSubjects = new HashSet<Subject>();
}
+
+ subject.removeLdapRole(this);
+ this.ldapSubjects.remove(subject);
}
public Set<org.rhq.core.domain.resource.group.ResourceGroup> getResourceGroups() {
commit 8d87c981864acc5720869f0f651c9890f8653b0b
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Feb 24 19:05:22 2010 -0500
Initial commit for solution 2
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
index dcb993b..1eaa6f8 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/authz-schema.xml
@@ -82,4 +82,14 @@
</constraint>
</table>
+ <table name="RHQ_SUBJECT_ROLE_LDAP_MAP">
+ <column name="SUBJECT_ID" required="true" type="INTEGER" references="RHQ_SUBJECT"/>
+ <column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
+ <constraint name="RHQ_SUBJECT_ROLE_LDAP_MAPPING_KEY">
+ <primaryKey>
+ <field ref="SUBJECT_ID"/>
+ <field ref="ROLE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
</dbsetup>
14 years, 4 months
[rhq] Branch 'gwt' - modules/core
by Greg Hinkle
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverter.java | 360 ----------
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverterClient.java | 360 ++++++++++
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementOOBComposite.java | 8
modules/core/domain/src/main/java/org/rhq/core/server/MeasurementParser.java | 1
modules/core/domain/src/test/java/org/rhq/core/domain/util/units/test/MeasurementConverterTest.java | 14
5 files changed, 371 insertions(+), 372 deletions(-)
New commits:
commit 7884dfdb3110b4951d285b454d8a73cffba021c2
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Wed Feb 24 17:43:27 2010 -0500
Now have two separate MeasurementConverters. One for gwt and one for the rest of the server side stuff. May not be a great long term solution, but fixes the issues in the JSF pages
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverter.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverter.java
deleted file mode 100644
index 0a2c1d4..0000000
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverter.java
+++ /dev/null
@@ -1,360 +0,0 @@
- /*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- package org.rhq.core.domain.measurement;
-
- import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
- import org.rhq.core.domain.measurement.util.MeasurementConversionException;
-
- import com.google.gwt.i18n.client.NumberFormat;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class MeasurementConverter {
- private static final int MAX_PRECISION_DIGITS = 4;
- private static final String NULL_OR_NAN_FORMATTED_VALUE = "--no data available--";
-
-
- private static NumberFormat getDefaultNumberFormat() {
- NumberFormat nf = NumberFormat.getFormat("0.0");
-
- return nf;
- }
-
- public static Double scale(MeasurementNumericValueAndUnits origin, MeasurementUnits targetUnits)
- throws MeasurementConversionException {
- MeasurementUnits originUnits = origin.getUnits();
- Double originValue = origin.getValue();
-
- return originValue * MeasurementUnits.calculateOffset(originUnits, targetUnits);
- }
-
- public static Double scale(Double origin, MeasurementUnits targetUnits) throws MeasurementConversionException {
- boolean wasNegative = false;
- if (origin < 0) {
- wasNegative = true;
- origin = -origin;
- }
-
- MeasurementUnits baseUnit = targetUnits.getBaseUnits();
- MeasurementNumericValueAndUnits valueAndUnits = new MeasurementNumericValueAndUnits(origin, baseUnit);
-
- Double results = scale(valueAndUnits, targetUnits);
- if (wasNegative) {
- results = -results;
- }
-
- return results;
- }
-
- public static String format(String value, MeasurementUnits targetUnits) {
- if (targetUnits == null) {
- return value;
- } else {
- return value + targetUnits;
- }
- }
-
- /**
- * Formats the given array of double values: determines the necessary precision such that when formatted, they are
- * distinct and reasonable to look at. For example, for values { 1.45 1.46 1.47 1.48 1.49 } the desired precision is
- * 2 - less precision loses significant digits, and more precision provides no added benefit. Max precision is
- * bounded for presentation considerations.
- *
- * @param values the values to be formatted
- * @param targetUnits the target units for the values
- * @param bestFit whether or not to use a normalized scale for the family of units
- *
- * @return the formatted values
- */
- public static String[] formatToSignificantPrecision(double[] values, MeasurementUnits targetUnits, boolean bestFit) {
- if ((null == values) || (values.length == 0)) {
- return null;
- }
-
- MeasurementUnits originalUnits = targetUnits;
-
- /*
- * in the overwhelming majority of cases, you're going to want to apply a bestFit
- * to the passed data, but it's not required; it's perfectly possible to allow a
- * list of doubles to be formatted without being fit, in which case the targetUnits
- * will be part of the formatted display for each result element
- */
- if (bestFit) {
- // find bestFit units by taking the average
- Double average = 0.0;
-
- for (int i = 0, sz = values.length; i < sz; i++) {
- /*
- * adding fractional amount iterative leads to greater
- * error, but prevents overflow on large data sets
- */
- average += (values[i] / sz);
- }
-
- MeasurementNumericValueAndUnits fittedAverage = fit(average, targetUnits);
- //noinspection UnnecessaryLocalVariable
- MeasurementUnits fittedUnits = fittedAverage.getUnits();
-
- /*
- * and change the local reference to targetUnits, so that the same logic
- * can be used both for the bestFit and non-bestFit computations
- */
- targetUnits = fittedUnits;
- }
-
- @SuppressWarnings("unused")
- Set<String> existingStrings; // technically this *is* unused because
- int precisionDigits = 0;
- boolean scaleWithMorePrecision = true;
- String[] results = new String[values.length];
- NumberFormat nf = getDefaultNumberFormat();
-
- /*
- * we scale at most to MAX_PRECISION_DIGITS to allow for presentation limits
- *
- * increase the maxPrecisionDigits in the while condition
- * itself to ensure it gets done for every loop
- */
- while (scaleWithMorePrecision && (++precisionDigits <= MAX_PRECISION_DIGITS)) {
- /*
- * make the assumption that we no longer need to scale beyond this iteration
- */
- scaleWithMorePrecision = false;
-
- /*
- * we need to record the uniquely formatted values so we can determine
- */
- existingStrings = new HashSet<String>();
- nf = NumberFormat.getFormat(getFormat(0, precisionDigits));
-
- Double[] scaledValues = new Double[values.length];
-
- for (int i = 0; i < scaledValues.length; i++) {
- /*
- * For relative units apply the scale now, prior to the nf.format(), since we are not using format( Double...).
- * Otherwise, apply standard multi-unit scaling.
- */
- if (MeasurementUnits.Family.RELATIVE == originalUnits.getFamily()) {
- scaledValues[i] = MeasurementUnits.scaleUp(values[i], originalUnits);
- } else {
- scaledValues[i] = scale(new MeasurementNumericValueAndUnits(values[i], originalUnits), targetUnits);
- }
- }
-
- for (int i = 0; i < results.length; i++) {
- /*
- * JUST get the formatted value, specifically DON'T tack on the formatted units yet;
- * we do this to see how many units we'll have to scale to afterwards (outside this
- * while loop) to make the array of values passed to us unique
- */
- String formatted = nf.format(scaledValues[i]);
-
- /*
- * check whether formatted value was in the set or not; if it was, we have to
- * loop, but only if we're not not already at our maximum precision
- */
- boolean wasNewElement = existingStrings.add(formatted);
-
- if ((!wasNewElement) && (precisionDigits < MAX_PRECISION_DIGITS)) {
- scaleWithMorePrecision = true;
- break;
- }
-
- results[i] = formatted;
- }
- }
-
- /*
- * we did the best we could in terms of trying to find a precision that adds the most
- * uniqueness to the given set of values, NOW tack on the formatted value for the units
- */
- for (int i = 0; i < results.length; i++) {
- results[i] = format(results[i], targetUnits);
- }
-
- return results;
- }
-
- public static String format(Double value, MeasurementUnits targetUnits, boolean bestFit) {
- return format(value, targetUnits, bestFit, null, null);
- }
-
- public static String format(Double value, MeasurementUnits targetUnits, boolean bestFit,
- Integer minimumFractionDigits, Integer maximumFractionDigits) {
- if (value == null || Double.isNaN(value)) {
- return NULL_OR_NAN_FORMATTED_VALUE;
- }
- if (bestFit) {
- MeasurementNumericValueAndUnits valueAndUnits = fit(value, targetUnits);
-
- value = valueAndUnits.getValue();
- targetUnits = valueAndUnits.getUnits();
- }
-
- // apply relative scale at presentation time
- if (MeasurementUnits.Family.RELATIVE == targetUnits.getFamily()) {
- value = MeasurementUnits.scaleUp(value, targetUnits);
- }
-
- NumberFormat numberFormat =
- NumberFormat.getFormat(
- getFormat(
- minimumFractionDigits != null ? minimumFractionDigits : 1,
- maximumFractionDigits != null ? maximumFractionDigits : 1));
-
- String formatted = numberFormat.format(value);
-
- return format(formatted, targetUnits);
- }
-
- public static String scaleAndFormat(Double origin, MeasurementSchedule targetSchedule, boolean bestFit)
- throws MeasurementConversionException {
- MeasurementUnits targetUnits = targetSchedule.getDefinition().getUnits();
-
- return scaleAndFormat(origin, targetUnits, bestFit, null, null);
- }
-
- public static String scaleAndFormat(Double origin, MeasurementUnits targetUnits, boolean bestFit)
- throws MeasurementConversionException {
-
- return scaleAndFormat(origin, targetUnits, bestFit, null, null);
- }
-
- public static String scaleAndFormat(Double origin, MeasurementUnits targetUnits, boolean bestFit,
- Integer minimumFractionDigits, Integer maximumFractionDigits) throws MeasurementConversionException {
-
- MeasurementUnits baseUnits = targetUnits.getBaseUnits();
- MeasurementNumericValueAndUnits valueAndUnits = new MeasurementNumericValueAndUnits(origin, baseUnits);
- Double scaledMagnitude = scale(valueAndUnits, targetUnits);
-
- return format(scaledMagnitude, targetUnits, bestFit);
- }
-
- public static MeasurementNumericValueAndUnits fit(Double origin, MeasurementUnits units) {
- return fit(origin, units, null, null);
- }
-
- public static MeasurementNumericValueAndUnits fit(Double origin, MeasurementUnits units, MeasurementUnits lowUnits,
- MeasurementUnits highUnits) {
-
- // work-around for the various Chart descendants not properly setting their units field;
- if (null == units) {
- return new MeasurementNumericValueAndUnits(origin, units);
- }
-
- // by definition, absolutely specified units don't scale to anything
- if ((MeasurementUnits.Family.ABSOLUTE == units.getFamily())
- || (MeasurementUnits.Family.DURATION == units.getFamily())) {
- return new MeasurementNumericValueAndUnits(origin, units);
- }
-
- // by definition relative-valued units are self-scaled (converted at formatting)
- if (MeasurementUnits.Family.RELATIVE == units.getFamily()) {
- return new MeasurementNumericValueAndUnits(origin, units);
- }
-
- if (MeasurementUnits.Family.TEMPERATURE == units.getFamily()) {
- return new MeasurementNumericValueAndUnits(origin, units);
- }
-
- // if the magnitude is zero, the best-fit also will spin around forever since it won't change
- if (Math.abs(origin) < 1e-9) {
- return new MeasurementNumericValueAndUnits(origin, units);
- }
-
- boolean wasNegative = false;
-
- if (origin < 0) {
- wasNegative = true;
- origin = -origin;
- }
-
- MeasurementNumericValueAndUnits currentValueAndUnits;
- MeasurementNumericValueAndUnits nextValueAndUnits = new MeasurementNumericValueAndUnits(origin, units);
-
- // first, make the value smaller if it's too big
- int maxOrdinal = (highUnits != null) ? (highUnits.ordinal() + 1) : MeasurementUnits.values().length;
-
- do {
- currentValueAndUnits = nextValueAndUnits;
-
- int nextOrdinal = currentValueAndUnits.getUnits().ordinal() + 1;
- if (nextOrdinal == maxOrdinal) {
- // we could theoretically get bigger, but we don't have any units to represent that
- break;
- }
-
- MeasurementUnits biggerUnits = MeasurementUnits.values()[nextOrdinal];
- if (biggerUnits.getFamily() != currentValueAndUnits.getUnits().getFamily()) {
- // we're as big as we can get, break out of the loop so we can return
- break;
- }
-
- Double smallerValue = scale(currentValueAndUnits, biggerUnits);
-
- nextValueAndUnits = new MeasurementNumericValueAndUnits(smallerValue, biggerUnits);
- } while (nextValueAndUnits.getValue() > 1.0);
-
- // next, make the value bigger if it's too small
- int minOrdinal = (lowUnits != null) ? (lowUnits.ordinal() - 1) : -1;
-
- while (currentValueAndUnits.getValue() < 1.0) {
- int nextOrdinal = currentValueAndUnits.getUnits().ordinal() - 1;
- if (nextOrdinal == minOrdinal) {
- // we could theoretically get smaller, but we don't have any units to represent that
- break;
- }
-
- MeasurementUnits smallerUnits = MeasurementUnits.values()[nextOrdinal];
- if (smallerUnits.getFamily() != currentValueAndUnits.getUnits().getFamily()) {
- // we're as small as we can get, break out of the loop so we can return
- break;
- }
-
- Double biggerValue = scale(currentValueAndUnits, smallerUnits);
-
- nextValueAndUnits = new MeasurementNumericValueAndUnits(biggerValue, smallerUnits);
-
- currentValueAndUnits = nextValueAndUnits;
- }
-
- if (wasNegative) {
- return new MeasurementNumericValueAndUnits(-currentValueAndUnits.getValue(), currentValueAndUnits
- .getUnits());
- }
-
- return currentValueAndUnits;
- }
-
- public static String getFormat(int minDigits, int maxDigits) {
- StringBuilder buf = new StringBuilder("0.");
- for (int i = 0; i < minDigits;i++) {
- buf.append("0");
- }
- for (int i = 0; i < (maxDigits-minDigits);i++) {
- buf.append("#");
- }
- return buf.toString();
- }
-}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverterClient.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverterClient.java
new file mode 100644
index 0000000..f78b62c
--- /dev/null
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementConverterClient.java
@@ -0,0 +1,360 @@
+ /*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser General Public License along with this program;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+ package org.rhq.core.domain.measurement;
+
+ import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
+ import org.rhq.core.domain.measurement.util.MeasurementConversionException;
+
+ import com.google.gwt.i18n.client.NumberFormat;
+
+ import java.util.HashSet;
+ import java.util.Set;
+
+ public class MeasurementConverterClient {
+ private static final int MAX_PRECISION_DIGITS = 4;
+ private static final String NULL_OR_NAN_FORMATTED_VALUE = "--no data available--";
+
+
+ private static NumberFormat getDefaultNumberFormat() {
+ NumberFormat nf = NumberFormat.getFormat("0.0");
+
+ return nf;
+ }
+
+ public static Double scale(MeasurementNumericValueAndUnits origin, MeasurementUnits targetUnits)
+ throws MeasurementConversionException {
+ MeasurementUnits originUnits = origin.getUnits();
+ Double originValue = origin.getValue();
+
+ return originValue * MeasurementUnits.calculateOffset(originUnits, targetUnits);
+ }
+
+ public static Double scale(Double origin, MeasurementUnits targetUnits) throws MeasurementConversionException {
+ boolean wasNegative = false;
+ if (origin < 0) {
+ wasNegative = true;
+ origin = -origin;
+ }
+
+ MeasurementUnits baseUnit = targetUnits.getBaseUnits();
+ MeasurementNumericValueAndUnits valueAndUnits = new MeasurementNumericValueAndUnits(origin, baseUnit);
+
+ Double results = scale(valueAndUnits, targetUnits);
+ if (wasNegative) {
+ results = -results;
+ }
+
+ return results;
+ }
+
+ public static String format(String value, MeasurementUnits targetUnits) {
+ if (targetUnits == null) {
+ return value;
+ } else {
+ return value + targetUnits;
+ }
+ }
+
+ /**
+ * Formats the given array of double values: determines the necessary precision such that when formatted, they are
+ * distinct and reasonable to look at. For example, for values { 1.45 1.46 1.47 1.48 1.49 } the desired precision is
+ * 2 - less precision loses significant digits, and more precision provides no added benefit. Max precision is
+ * bounded for presentation considerations.
+ *
+ * @param values the values to be formatted
+ * @param targetUnits the target units for the values
+ * @param bestFit whether or not to use a normalized scale for the family of units
+ *
+ * @return the formatted values
+ */
+ public static String[] formatToSignificantPrecision(double[] values, MeasurementUnits targetUnits, boolean bestFit) {
+ if ((null == values) || (values.length == 0)) {
+ return null;
+ }
+
+ MeasurementUnits originalUnits = targetUnits;
+
+ /*
+ * in the overwhelming majority of cases, you're going to want to apply a bestFit
+ * to the passed data, but it's not required; it's perfectly possible to allow a
+ * list of doubles to be formatted without being fit, in which case the targetUnits
+ * will be part of the formatted display for each result element
+ */
+ if (bestFit) {
+ // find bestFit units by taking the average
+ Double average = 0.0;
+
+ for (int i = 0, sz = values.length; i < sz; i++) {
+ /*
+ * adding fractional amount iterative leads to greater
+ * error, but prevents overflow on large data sets
+ */
+ average += (values[i] / sz);
+ }
+
+ MeasurementNumericValueAndUnits fittedAverage = fit(average, targetUnits);
+ //noinspection UnnecessaryLocalVariable
+ MeasurementUnits fittedUnits = fittedAverage.getUnits();
+
+ /*
+ * and change the local reference to targetUnits, so that the same logic
+ * can be used both for the bestFit and non-bestFit computations
+ */
+ targetUnits = fittedUnits;
+ }
+
+ @SuppressWarnings("unused")
+ Set<String> existingStrings; // technically this *is* unused because
+ int precisionDigits = 0;
+ boolean scaleWithMorePrecision = true;
+ String[] results = new String[values.length];
+ NumberFormat nf = getDefaultNumberFormat();
+
+ /*
+ * we scale at most to MAX_PRECISION_DIGITS to allow for presentation limits
+ *
+ * increase the maxPrecisionDigits in the while condition
+ * itself to ensure it gets done for every loop
+ */
+ while (scaleWithMorePrecision && (++precisionDigits <= MAX_PRECISION_DIGITS)) {
+ /*
+ * make the assumption that we no longer need to scale beyond this iteration
+ */
+ scaleWithMorePrecision = false;
+
+ /*
+ * we need to record the uniquely formatted values so we can determine
+ */
+ existingStrings = new HashSet<String>();
+ nf = NumberFormat.getFormat(getFormat(0, precisionDigits));
+
+ Double[] scaledValues = new Double[values.length];
+
+ for (int i = 0; i < scaledValues.length; i++) {
+ /*
+ * For relative units apply the scale now, prior to the nf.format(), since we are not using format( Double...).
+ * Otherwise, apply standard multi-unit scaling.
+ */
+ if (MeasurementUnits.Family.RELATIVE == originalUnits.getFamily()) {
+ scaledValues[i] = MeasurementUnits.scaleUp(values[i], originalUnits);
+ } else {
+ scaledValues[i] = scale(new MeasurementNumericValueAndUnits(values[i], originalUnits), targetUnits);
+ }
+ }
+
+ for (int i = 0; i < results.length; i++) {
+ /*
+ * JUST get the formatted value, specifically DON'T tack on the formatted units yet;
+ * we do this to see how many units we'll have to scale to afterwards (outside this
+ * while loop) to make the array of values passed to us unique
+ */
+ String formatted = nf.format(scaledValues[i]);
+
+ /*
+ * check whether formatted value was in the set or not; if it was, we have to
+ * loop, but only if we're not not already at our maximum precision
+ */
+ boolean wasNewElement = existingStrings.add(formatted);
+
+ if ((!wasNewElement) && (precisionDigits < MAX_PRECISION_DIGITS)) {
+ scaleWithMorePrecision = true;
+ break;
+ }
+
+ results[i] = formatted;
+ }
+ }
+
+ /*
+ * we did the best we could in terms of trying to find a precision that adds the most
+ * uniqueness to the given set of values, NOW tack on the formatted value for the units
+ */
+ for (int i = 0; i < results.length; i++) {
+ results[i] = format(results[i], targetUnits);
+ }
+
+ return results;
+ }
+
+ public static String format(Double value, MeasurementUnits targetUnits, boolean bestFit) {
+ return format(value, targetUnits, bestFit, null, null);
+ }
+
+ public static String format(Double value, MeasurementUnits targetUnits, boolean bestFit,
+ Integer minimumFractionDigits, Integer maximumFractionDigits) {
+ if (value == null || Double.isNaN(value)) {
+ return NULL_OR_NAN_FORMATTED_VALUE;
+ }
+ if (bestFit) {
+ MeasurementNumericValueAndUnits valueAndUnits = fit(value, targetUnits);
+
+ value = valueAndUnits.getValue();
+ targetUnits = valueAndUnits.getUnits();
+ }
+
+ // apply relative scale at presentation time
+ if (MeasurementUnits.Family.RELATIVE == targetUnits.getFamily()) {
+ value = MeasurementUnits.scaleUp(value, targetUnits);
+ }
+
+ NumberFormat numberFormat =
+ NumberFormat.getFormat(
+ getFormat(
+ minimumFractionDigits != null ? minimumFractionDigits : 1,
+ maximumFractionDigits != null ? maximumFractionDigits : 1));
+
+ String formatted = numberFormat.format(value);
+
+ return format(formatted, targetUnits);
+ }
+
+ public static String scaleAndFormat(Double origin, MeasurementSchedule targetSchedule, boolean bestFit)
+ throws MeasurementConversionException {
+ MeasurementUnits targetUnits = targetSchedule.getDefinition().getUnits();
+
+ return scaleAndFormat(origin, targetUnits, bestFit, null, null);
+ }
+
+ public static String scaleAndFormat(Double origin, MeasurementUnits targetUnits, boolean bestFit)
+ throws MeasurementConversionException {
+
+ return scaleAndFormat(origin, targetUnits, bestFit, null, null);
+ }
+
+ public static String scaleAndFormat(Double origin, MeasurementUnits targetUnits, boolean bestFit,
+ Integer minimumFractionDigits, Integer maximumFractionDigits) throws MeasurementConversionException {
+
+ MeasurementUnits baseUnits = targetUnits.getBaseUnits();
+ MeasurementNumericValueAndUnits valueAndUnits = new MeasurementNumericValueAndUnits(origin, baseUnits);
+ Double scaledMagnitude = scale(valueAndUnits, targetUnits);
+
+ return format(scaledMagnitude, targetUnits, bestFit);
+ }
+
+ public static MeasurementNumericValueAndUnits fit(Double origin, MeasurementUnits units) {
+ return fit(origin, units, null, null);
+ }
+
+ public static MeasurementNumericValueAndUnits fit(Double origin, MeasurementUnits units, MeasurementUnits lowUnits,
+ MeasurementUnits highUnits) {
+
+ // work-around for the various Chart descendants not properly setting their units field;
+ if (null == units) {
+ return new MeasurementNumericValueAndUnits(origin, units);
+ }
+
+ // by definition, absolutely specified units don't scale to anything
+ if ((MeasurementUnits.Family.ABSOLUTE == units.getFamily())
+ || (MeasurementUnits.Family.DURATION == units.getFamily())) {
+ return new MeasurementNumericValueAndUnits(origin, units);
+ }
+
+ // by definition relative-valued units are self-scaled (converted at formatting)
+ if (MeasurementUnits.Family.RELATIVE == units.getFamily()) {
+ return new MeasurementNumericValueAndUnits(origin, units);
+ }
+
+ if (MeasurementUnits.Family.TEMPERATURE == units.getFamily()) {
+ return new MeasurementNumericValueAndUnits(origin, units);
+ }
+
+ // if the magnitude is zero, the best-fit also will spin around forever since it won't change
+ if (Math.abs(origin) < 1e-9) {
+ return new MeasurementNumericValueAndUnits(origin, units);
+ }
+
+ boolean wasNegative = false;
+
+ if (origin < 0) {
+ wasNegative = true;
+ origin = -origin;
+ }
+
+ MeasurementNumericValueAndUnits currentValueAndUnits;
+ MeasurementNumericValueAndUnits nextValueAndUnits = new MeasurementNumericValueAndUnits(origin, units);
+
+ // first, make the value smaller if it's too big
+ int maxOrdinal = (highUnits != null) ? (highUnits.ordinal() + 1) : MeasurementUnits.values().length;
+
+ do {
+ currentValueAndUnits = nextValueAndUnits;
+
+ int nextOrdinal = currentValueAndUnits.getUnits().ordinal() + 1;
+ if (nextOrdinal == maxOrdinal) {
+ // we could theoretically get bigger, but we don't have any units to represent that
+ break;
+ }
+
+ MeasurementUnits biggerUnits = MeasurementUnits.values()[nextOrdinal];
+ if (biggerUnits.getFamily() != currentValueAndUnits.getUnits().getFamily()) {
+ // we're as big as we can get, break out of the loop so we can return
+ break;
+ }
+
+ Double smallerValue = scale(currentValueAndUnits, biggerUnits);
+
+ nextValueAndUnits = new MeasurementNumericValueAndUnits(smallerValue, biggerUnits);
+ } while (nextValueAndUnits.getValue() > 1.0);
+
+ // next, make the value bigger if it's too small
+ int minOrdinal = (lowUnits != null) ? (lowUnits.ordinal() - 1) : -1;
+
+ while (currentValueAndUnits.getValue() < 1.0) {
+ int nextOrdinal = currentValueAndUnits.getUnits().ordinal() - 1;
+ if (nextOrdinal == minOrdinal) {
+ // we could theoretically get smaller, but we don't have any units to represent that
+ break;
+ }
+
+ MeasurementUnits smallerUnits = MeasurementUnits.values()[nextOrdinal];
+ if (smallerUnits.getFamily() != currentValueAndUnits.getUnits().getFamily()) {
+ // we're as small as we can get, break out of the loop so we can return
+ break;
+ }
+
+ Double biggerValue = scale(currentValueAndUnits, smallerUnits);
+
+ nextValueAndUnits = new MeasurementNumericValueAndUnits(biggerValue, smallerUnits);
+
+ currentValueAndUnits = nextValueAndUnits;
+ }
+
+ if (wasNegative) {
+ return new MeasurementNumericValueAndUnits(-currentValueAndUnits.getValue(), currentValueAndUnits
+ .getUnits());
+ }
+
+ return currentValueAndUnits;
+ }
+
+ public static String getFormat(int minDigits, int maxDigits) {
+ StringBuilder buf = new StringBuilder("0.");
+ for (int i = 0; i < minDigits;i++) {
+ buf.append("0");
+ }
+ for (int i = 0; i < (maxDigits-minDigits);i++) {
+ buf.append("#");
+ }
+ return buf.toString();
+ }
+}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementOOBComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementOOBComposite.java
index 1f5419b..32271fe 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementOOBComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementOOBComposite.java
@@ -18,7 +18,7 @@
*/
package org.rhq.core.domain.measurement.composite;
-import org.rhq.core.domain.measurement.MeasurementConverter;
+import org.rhq.core.domain.measurement.MeasurementConverterClient;
import org.rhq.core.domain.measurement.MeasurementDataNumeric1H;
import org.rhq.core.domain.measurement.MeasurementUnits;
@@ -163,8 +163,8 @@ public class MeasurementOOBComposite implements Serializable {
public String getFormattedBaseband() {
- String min = MeasurementConverter.format(blMin, units, true);
- String max = MeasurementConverter.format(blMax, units, true);
+ String min = MeasurementConverterClient.format(blMin, units, true);
+ String max = MeasurementConverterClient.format(blMax, units, true);
String result = min + ", " + max ;
@@ -172,7 +172,7 @@ public class MeasurementOOBComposite implements Serializable {
}
public String getFormattedOutlier() {
- return MeasurementConverter.format(outlier, units, true);
+ return MeasurementConverterClient.format(outlier, units, true);
}
@Override
diff --git a/modules/core/domain/src/main/java/org/rhq/core/server/MeasurementParser.java b/modules/core/domain/src/main/java/org/rhq/core/server/MeasurementParser.java
index 2f8bb84..b6e3400 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/server/MeasurementParser.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/server/MeasurementParser.java
@@ -18,7 +18,6 @@
*/
package org.rhq.core.server;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/util/units/test/MeasurementConverterTest.java b/modules/core/domain/src/test/java/org/rhq/core/domain/util/units/test/MeasurementConverterTest.java
index e98acf5..4f6a28f 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/util/units/test/MeasurementConverterTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/util/units/test/MeasurementConverterTest.java
@@ -22,7 +22,7 @@
*/
package org.rhq.core.domain.util.units.test;
- import org.rhq.core.domain.measurement.MeasurementConverter;
+ import org.rhq.core.domain.measurement.MeasurementConverterClient;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
import org.rhq.core.domain.measurement.util.MeasurementConversionException;
@@ -95,7 +95,7 @@ package org.rhq.core.domain.util.units.test;
MeasurementUnits expectedUnits) {
incrementPrecisionScalingTestCount();
- String[] results = MeasurementConverter.formatToSignificantPrecision(values, units, true);
+ String[] results = MeasurementConverterClient.formatToSignificantPrecision(values, units, true);
for (int i = 0; i < results.length; i++) {
String expected = expectedResults[i];
String actual = results[i];
@@ -106,7 +106,7 @@ package org.rhq.core.domain.util.units.test;
Locale.setDefault(Locale.US);
MeasurementNumericValueAndUnits vu = MeasurementParser.parse(expected, expectedUnits);
Locale.setDefault(defaultLocale);
- expected = MeasurementConverter.format(vu.getValue(), expectedUnits, false, null, 4);
+ expected = MeasurementConverterClient.format(vu.getValue(), expectedUnits, false, null, 4);
}
assert actual.equals(expected) : "Test " + precisionScalingTestCount.get() + ": " + "Index " + i + ", "
@@ -146,7 +146,7 @@ package org.rhq.core.domain.util.units.test;
}
for (String unitVariation : unitsVariations) {
- String original = MeasurementConverter.format(POSITIVE, units, false);
+ String original = MeasurementConverterClient.format(POSITIVE, units, false);
String toBeTested = magnitudeVariation.trim() + unitVariation.trim();
assert original.equals(toBeTested) : "Error constructing whitespace string: " + "Expected '"
@@ -170,7 +170,7 @@ package org.rhq.core.domain.util.units.test;
}
for (String unitVariation : unitsVariations) {
- String original = MeasurementConverter.format(-POSITIVE, units, false);
+ String original = MeasurementConverterClient.format(-POSITIVE, units, false);
String toBeTested = "-" + magnitudeVariation.trim() + unitVariation.trim();
assert original.equals(toBeTested) : "Error constructing whitespace string: " + "Expected '"
@@ -255,7 +255,7 @@ package org.rhq.core.domain.util.units.test;
private void validateScale(double fromValue, MeasurementUnits fromUnits, double toValue, MeasurementUnits toUnits) {
MeasurementNumericValueAndUnits valueAndUnits = new MeasurementNumericValueAndUnits(fromValue, fromUnits);
try {
- double derived = MeasurementConverter.scale(valueAndUnits, toUnits);
+ double derived = MeasurementConverterClient.scale(valueAndUnits, toUnits);
assert Math.abs(toValue - derived) < 1e-9 : "Scale conversion error: " +
"From value '" + fromValue + "', " + "with units of '" + fromUnits.name() + "', " + "displayed as '"
@@ -283,7 +283,7 @@ package org.rhq.core.domain.util.units.test;
private void validateFormatConvert(double passedValue, double expectedValue, MeasurementUnits units) {
try {
- String intermediate = MeasurementConverter.format(passedValue, units, false);
+ String intermediate = MeasurementConverterClient.format(passedValue, units, false);
MeasurementNumericValueAndUnits results = MeasurementParser.parse(intermediate, units);
assert (Math.abs(results.getValue() - expectedValue) < 1e-9 && results.getUnits() == units) : "double input was '"
14 years, 4 months
[rhq] Branch 'gwt' - 2 commits - modules/enterprise
by Greg Hinkle
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java | 78 ++++++++++
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css | 43 +++++
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html | 10 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListAlertHistoryUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListGroupAlertHistoryUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/BaselineDescriber.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/ThresholdDescriber.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/HorizontalChart.java | 8 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/VerticalChart.java | 12 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/AlertDefUtil.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/condition/MeasurementConverterValidator.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/ViewChartFormPrepareAction.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/MetricDisplayTag.java | 17 +-
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/MetricDecorator.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/table/recentOOBs.xhtml | 2
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java | 62 +++----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementFormatter.java | 2
21 files changed, 192 insertions(+), 66 deletions(-)
New commits:
commit 92d9fd4abdee8f56cbe8810141c43c181e04ef7a
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Wed Feb 24 17:42:15 2010 -0500
Now have two separate MeasurementConverters. One for gwt and one for the rest of the server side stuff. May not be a great long term solution, but fixes the issues in the JSF pages
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListAlertHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListAlertHistoryUIBean.java
index 5f3e110..716009d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListAlertHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListAlertHistoryUIBean.java
@@ -40,12 +40,12 @@ import org.rhq.core.domain.alert.AlertPriority;
import org.rhq.core.domain.alert.composite.AlertWithLatestConditionLog;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.IntegerOptionItem;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.core.gui.util.StringUtility;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.common.converter.SelectItemUtils;
import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListGroupAlertHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListGroupAlertHistoryUIBean.java
index cd36869..2c169cf 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListGroupAlertHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/ListGroupAlertHistoryUIBean.java
@@ -41,13 +41,13 @@ import org.rhq.core.domain.alert.composite.AlertWithLatestConditionLog;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.IntegerOptionItem;
import org.rhq.core.domain.criteria.AlertCriteria;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.core.gui.util.StringUtility;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.common.converter.SelectItemUtils;
import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/BaselineDescriber.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/BaselineDescriber.java
index f66175d..33fefdb 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/BaselineDescriber.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/BaselineDescriber.java
@@ -20,8 +20,8 @@ package org.rhq.enterprise.gui.alert.description;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.server.measurement.util.MeasurementFormatter;
/**
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/ThresholdDescriber.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/ThresholdDescriber.java
index b0c9115..495a0d5 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/ThresholdDescriber.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/description/ThresholdDescriber.java
@@ -21,7 +21,7 @@ package org.rhq.enterprise.gui.alert.description;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.core.domain.measurement.MeasurementConverter;
+import org.rhq.core.server.MeasurementConverter;
/**
* Describes <code>THRESHOLD </code> {@link AlertCondition}s.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/HorizontalChart.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/HorizontalChart.java
index d177c7b..a5afb1f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/HorizontalChart.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/HorizontalChart.java
@@ -18,15 +18,15 @@
*/
package org.rhq.enterprise.gui.image.chart;
+import org.rhq.core.server.MeasurementConverter;
+import org.rhq.enterprise.gui.image.data.IDataPoint;
+import org.rhq.enterprise.gui.image.data.IDisplayDataPoint;
+
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.Iterator;
-import org.rhq.core.domain.measurement.MeasurementConverter;
-import org.rhq.enterprise.gui.image.data.IDataPoint;
-import org.rhq.enterprise.gui.image.data.IDisplayDataPoint;
-
public class HorizontalChart extends Chart {
private Rectangle m_rect;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/VerticalChart.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/VerticalChart.java
index c6be083..9e823a2 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/VerticalChart.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/image/chart/VerticalChart.java
@@ -18,6 +18,12 @@
*/
package org.rhq.enterprise.gui.image.chart;
+import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.core.server.MeasurementConverter;
+import org.rhq.enterprise.gui.image.data.IDataPoint;
+import org.rhq.enterprise.gui.image.data.IDisplayDataPoint;
+import org.rhq.enterprise.gui.image.data.IHighLowDataPoint;
+
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
@@ -25,12 +31,6 @@ import java.awt.Rectangle;
import java.util.Collection;
import java.util.Iterator;
-import org.rhq.core.domain.measurement.MeasurementConverter;
-import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.enterprise.gui.image.data.IDataPoint;
-import org.rhq.enterprise.gui.image.data.IDisplayDataPoint;
-import org.rhq.enterprise.gui.image.data.IHighLowDataPoint;
-
public class VerticalChart extends Chart {
protected static final Color[] DEFAULT_COLORS = { new Color(0x00, 0x00, 0xFF), new Color(0xFF, 0x00, 0x00),
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/AlertDefUtil.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/AlertDefUtil.java
index 8e1b3a7..cad7ed3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/AlertDefUtil.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/AlertDefUtil.java
@@ -37,8 +37,8 @@ import org.rhq.core.domain.alert.AlertDefinitionContext;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.operation.OperationDefinition;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.action.resource.ResourceForm.FormContext;
import org.rhq.enterprise.gui.legacy.beans.AlertConditionBean;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
index d176a9c..7f4bafe 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
@@ -44,7 +44,7 @@ import org.rhq.core.domain.alert.AlertConditionLog;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementDefinition;
-import org.rhq.core.domain.measurement.MeasurementConverter;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.legacy.AttrConstants;
import org.rhq.enterprise.gui.legacy.beans.AlertConditionBean;
import org.rhq.enterprise.gui.legacy.util.RequestUtils;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/condition/MeasurementConverterValidator.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/condition/MeasurementConverterValidator.java
index 13aeb70..93e7590 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/condition/MeasurementConverterValidator.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/condition/MeasurementConverterValidator.java
@@ -25,11 +25,11 @@ import org.apache.struts.action.ActionMessage;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
import org.rhq.core.domain.measurement.util.MeasurementConversionException;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.core.server.MeasurementParser;
import org.rhq.core.util.NumberUtil;
import org.rhq.enterprise.gui.legacy.action.resource.common.monitor.alerts.config.ConditionBean;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/ViewChartFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/ViewChartFormPrepareAction.java
index af9d61d..368c4eb 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/ViewChartFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/ViewChartFormPrepareAction.java
@@ -38,7 +38,6 @@ import org.rhq.core.clientapi.util.ArrayUtil;
import org.rhq.core.clientapi.util.StringUtil;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementBaseline;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
@@ -49,6 +48,7 @@ import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.Group;
import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.common.servlet.HighLowMetricValue;
import org.rhq.enterprise.gui.legacy.AttrConstants;
import org.rhq.enterprise.gui.legacy.DefaultConstants;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/MetricDisplayTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/MetricDisplayTag.java
index 01e362e..dd91f1a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/MetricDisplayTag.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/MetricDisplayTag.java
@@ -18,17 +18,20 @@
*/
package org.rhq.enterprise.gui.legacy.taglib;
-import java.io.IOException;
-import java.text.NumberFormat;
-import java.util.Locale;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.TagSupport;
+import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.core.server.MeasurementConverter;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.util.RequestUtils;
import org.apache.taglibs.standard.tag.el.core.ExpressionUtil;
-import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.core.domain.measurement.MeasurementConverter;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import java.io.IOException;
+import java.text.NumberFormat;
+import java.util.Locale;
/**
* This is a locale aware tag for displaying metrics and units. Suppose you have a metricDisplaySummary.setMin(9234289)
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/MetricDecorator.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/MetricDecorator.java
index 673db6b..f431449 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/MetricDecorator.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/MetricDecorator.java
@@ -33,8 +33,8 @@ import org.rhq.core.clientapi.util.units.ScaleConstants;
import org.rhq.core.clientapi.util.units.UnitNumber;
import org.rhq.core.clientapi.util.units.UnitsConstants;
import org.rhq.core.clientapi.util.units.UnitsFormat;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.core.server.MeasurementConverter;
/**
* This class is a two in one decorator/tag for use within the <code>TableTag</code>; it is a <code>
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
index 6253c8d..730802a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
@@ -196,7 +196,7 @@ public class ResourceTreeModelUIBean {
AutoGroupComposite compositeParent = (AutoGroupComposite) parentNode.getData();
Map<Object, List<Resource>> children = new HashMap<Object, List<Resource>>();
- log.error("composite parent" + compositeParent);
+ log.trace("composite parent" + compositeParent);
if (compositeParent != null) {
for (Resource res : compositeParent.getParentResource().getChildResources()) {
if (compositeParent.getSubcategory() != null) {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
index 7d1b7dd..28369a2 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
@@ -32,10 +32,10 @@ import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.alert.AlertConditionLog;
import org.rhq.core.domain.alert.composite.AlertHistoryComposite;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.FacesContextUtility;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.common.converter.SelectItemUtils;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/table/recentOOBs.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/table/recentOOBs.xhtml
index 184ebad..a696306 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/table/recentOOBs.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/table/recentOOBs.xhtml
@@ -30,8 +30,6 @@
</h:outputText>
<br/>
<div style="text-indent: 30px;">
- <h:outputText value="value= ${item.formattedOutlier}"/>
- <h:outputText value="; band= ( ${item.formattedBaseband} )"/>
</div>
<br />
</div>
diff --git a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
index bf00de2..d1ff605 100644
--- a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
+++ b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
@@ -45,7 +45,6 @@ import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.MeasurementCategory;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementUnits;
@@ -57,6 +56,7 @@ import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.domain.util.Summary;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.client.RemoteClient;
import org.rhq.enterprise.client.ClientMain;
import org.rhq.enterprise.client.utility.LazyLoadScenario;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
index 84e1863..057ce4d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
@@ -18,36 +18,6 @@
*/
package org.rhq.enterprise.server.alert;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.ejb.TransactionAttribute;
-import javax.ejb.TransactionAttributeType;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.sql.DataSource;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.quartz.SchedulerException;
-import org.quartz.SimpleTrigger;
-
-import org.jboss.annotation.IgnoreDependency;
-import org.jboss.annotation.ejb.TransactionTimeout;
-
import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
@@ -63,12 +33,12 @@ import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.core.domain.measurement.MeasurementConverter;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.core.server.PersistenceUtility;
import org.rhq.core.util.collection.ArrayUtils;
import org.rhq.core.util.jdbc.JDBCUtil;
@@ -94,6 +64,36 @@ import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
import org.rhq.enterprise.server.util.LookupUtil;
+import org.jboss.annotation.IgnoreDependency;
+import org.jboss.annotation.ejb.TransactionTimeout;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.SchedulerException;
+import org.quartz.SimpleTrigger;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.sql.DataSource;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
/**
* @author Joseph Marques
* @author Ian Springer
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementFormatter.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementFormatter.java
index 4988e54..9bf5ec7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementFormatter.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementFormatter.java
@@ -21,7 +21,7 @@ package org.rhq.enterprise.server.measurement.util;
import org.rhq.core.domain.measurement.MeasurementBaseline;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.util.MeasurementConversionException;
-import org.rhq.core.domain.measurement.MeasurementConverter;
+import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.server.legacy.measurement.MeasurementConstants;
public class MeasurementFormatter {
commit 7a63f079f65b80dabe539ebc64f3103e5e39ce93
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Wed Feb 24 17:41:15 2010 -0500
New loading page, new "simple" collapsible panel
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
new file mode 100644
index 0000000..84d7c8c
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
@@ -0,0 +1,78 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.components;
+
+import com.smartgwt.client.types.SelectionType;
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+/**
+ * @author Greg Hinkle
+ */
+public class SimpleCollapsiblePanel extends VLayout {
+
+
+ private Canvas content;
+ private String title;
+
+ private boolean expanded = true;
+
+
+ public SimpleCollapsiblePanel(String title, Canvas content) {
+ this.content = content;
+ this.title = title;
+ setWidth100();
+ }
+
+
+ @Override
+ protected void onInit() {
+ super.onInit();
+
+ final Button button = new Button(title);
+ button.setShowRollOver(false);
+ button.setActionType(SelectionType.RADIO);
+ button.setBorder(null);
+
+
+ button.setIcon("[skin]/images/SectionHeader/opener_opened.png");
+ button.setBaseStyle("SimpleButton");
+
+ button.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ expanded = !expanded;
+ if (expanded) {
+ button.setIcon("[skin]/images/SectionHeader/opener_opened.png");
+ content.show();
+ } else {
+ button.setIcon("[skin]/images/SectionHeader/opener_closed.png");
+ content.hide();
+ }
+ markForRedraw();
+ }
+ });
+
+
+ addMember(button);
+ addMember(content);
+ }
+}
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
index 3674615..76cd9c5 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
@@ -138,4 +138,47 @@ z
.SubTabButtonSelectedFocusedOver,
.SubTabButtonSelectedDisabled {
font-weight: bold;
+}
+
+
+
+.SimpleButton,
+.SimpleButtonOver,
+.SimpleButtonFocused,
+.SimpleButtonFocusedOver,
+.SimpleButtonDown,
+.SimpleButtonFocusedDown,
+.SimpleButtonSelected,
+.SimpleButtonSelectedFocused,
+.SimpleButtonSelectedDown,
+.SimpleButtonSelectedFocusedDown,
+.SimpleButtonSelectedOver,
+.SimpleButtonSelectedFocusedOver,
+.SimpleButtonDisabled,
+.SimpleButtonSelectedDisabled,
+.SimpleButtonDisabled,
+.SimpleButtonDisabled,
+.SimpleButtonSelectedDisabled,
+.SimpleButtonFocused,
+.SimpleButtonFocusedOver,
+.SimpleButtonSelectedFocused,
+.SimpleButtonSelectedFocusedOver,
+.SimpleButtonSelectedFocusedDown ,
+.SimpleButtonOver,
+.SimpleButtonFocusedOver,
+.SimpleButtonSelectedFocused,
+.SimpleButtonSelectedFocusedOver ,
+.SimpleButtonDown,
+.SimpleButtonFocusedDown,
+.SimpleButtonSelectedDown,
+.SimpleButtonSelectedFocusedDown ,
+.SimpleButtonSelected,
+.SimpleButtonSelectedFocused,
+.SimpleButtonSelectedOver,
+.SimpleButtonSelectedFocusedOver,
+.SimpleButtonSelectedDisabled{
+ font-family: Arial, Verdana, Bitstream Vera Sans, sans-serif;
+ font-size: 11px;
+ padding: 2px;
+ font-weight: bold;
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
index 722fdc0..f7b8df4 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
@@ -10,9 +10,13 @@
<script type="text/javascript" language="javascript"
src="org.rhq.enterprise.gui.coregui.CoreGUI/org.rhq.enterprise.gui.coregui.CoreGUI.nocache.js"></script>
-<div id="Loading-Panel" style="width: 210px;height: 80px; top: 300px; margin-left: auto;margin-right: auto;">
- <img src="images/rhq_logo_animated_100px.gif" alt="loading" style="border: 1px solid gray; margin: 5px;">
- <div>
+<div id="Loading-Panel" style="width: 214px;height: 90px; margin-top: 300px; margin-left: auto;margin-right: auto;">
+
+ <div style="text-align: center; border: 3px solid lightgray;">
+ <img src="images/rhq_logo_animated_100px.gif" alt="loading" style="margin: 5px;">
+ Loading...
+ </div>
+</div>
<iframe src="javascript:''" id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
14 years, 4 months
[rhq] Branch 'ldap' - modules/core
by Partha Aji
modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java | 24 ++++------
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java | 19 ++-----
2 files changed, 18 insertions(+), 25 deletions(-)
New commits:
commit 04fad7aae80087e6c5a0e9981d1115159873af8f
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Feb 24 16:06:01 2010 -0500
Added back the Many To Many roles magic to preserve roles variable
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
index 73d074a..c7d895b 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
@@ -36,6 +36,8 @@ import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
@@ -229,6 +231,10 @@ public class Subject implements Externalizable {
@OneToMany(mappedBy = "subject")
private Set<SubjectRoleEntity> subjectRoles;
+ @ManyToMany
+ @JoinTable(name = "RHQ_SUBJECT_ROLE_MAP", joinColumns = { @JoinColumn(name = "SUBJECT_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
+ private Set<Role> roles = new HashSet<Role>();
+
@Transient
private Integer sessionId = null;
@@ -370,22 +376,14 @@ public class Subject implements Externalizable {
}
public Set<Role> getRoles() {
- Set<Role> r = new HashSet<Role>();
- for (SubjectRoleEntity s : getSubjectRoles()) {
- r.add(s.getRole());
+ if (roles == null) {
+ roles = new HashSet<Role>();
}
- return r;
+ return roles;
}
public void setRoles(Set<Role> roles) {
- Set<SubjectRoleEntity> sroles = getSubjectRoles();
- sroles.clear();
- for (Role r : roles) {
- SubjectRoleEntity s = new SubjectRoleEntity();
- s.setSubject(this);
- s.setRole(r);
- sroles.add(s);
- }
+ this.roles = roles;
}
public void addRole(Role role, boolean ldap) {
@@ -501,7 +499,7 @@ public class Subject implements Externalizable {
out.writeBoolean(factive);
out.writeBoolean(fsystem);
out.writeObject(configuration);
- out.writeObject(getRoles());
+ out.writeObject(roles);
// not supplied by remote: subjectNotifications
out.writeInt(this.sessionId == null ? 0 : this.sessionId);
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index d549027..5267fca 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -110,6 +110,9 @@ public class Role implements Serializable {
private java.util.Set<SubjectRoleEntity> roleSubjects;
@ManyToMany(mappedBy = "roles")
+ private Set<Subject> subjects = new HashSet<Subject>();
+
+ @ManyToMany(mappedBy = "roles")
private java.util.Set<org.rhq.core.domain.resource.group.ResourceGroup> resourceGroups = new HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
@Cascade( { CascadeType.ALL })
@@ -192,22 +195,14 @@ public class Role implements Serializable {
}
public java.util.Set<Subject> getSubjects() {
- Set<Subject> s = new HashSet<Subject>();
- for (SubjectRoleEntity sre : getRoleSubjects()) {
- s.add(sre.getSubject());
+ if (subjects == null) {
+ subjects = new HashSet<Subject>();
}
- return s;
+ return subjects;
}
public void setSubjects(Set<Subject> subjects) {
- Set<SubjectRoleEntity> sroles = getRoleSubjects();
- sroles.clear();
- for (Subject subject : subjects) {
- SubjectRoleEntity s = new SubjectRoleEntity();
- s.setRole(this);
- s.setSubject(subject);
- sroles.add(s);
- }
+ this.subjects = subjects;
}
public void addSubject(Subject subject, boolean ldap) {
14 years, 4 months