[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rhq-commits
Subject:    [rhq] Branch 'rhq-on-as7' - 3 commits - etc/eclipse-tools modules/core modules/enterprise
From:       jshaughn () fedoraproject ! org (Jay Shaughnessy)
Date:       2012-09-27 18:46:11
Message-ID: 20120927184611.578622329 () hosted02 ! fedoraproject ! org
[Download RAW message or body]

 etc/eclipse-tools/maven/RHQ                                                          \
|    2   modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java \
|    8 --  modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractSchedulesView.java \
|    5 -  modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/SchedulesDataSource.java \
|    8 +-  modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java \
|   24 +++++---  modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java \
|   29 ++++++++--  6 files changed, 50 insertions(+), 26 deletions(-)

New commits:
commit 4b3ddf84f87f6c3324f53e0a8b2e94d65e5af11c
Author: Jay Shaughnessy <jshaughn at jshaughn.csb>
Date:   Thu Sep 27 14:44:59 2012 -0400

    [Bug 814305 - Dealing with singletons in inventory]
    Fix an issue with the previous fix to handle the case where the parent
    did not actually have to worry about singleton children. Also, defer
    calling super's onInit until the subclass is done with it's work.

diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java \
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
 index 265778b..36e0939 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
                
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
 @@ -86,7 +86,6 @@ public class ResourceCompositeSearchView extends \
ResourceSearchView {  
     @Override
     protected void onInit() {
-        super.onInit();
 
         // To properly filter Create Child and Import menus we need existing \
                singleton child resources. If the
         // user has create permission and the parent type has singleton child types \
and creatable or importable child @@ -99,7 +98,19 @@ public class \
ResourceCompositeSearchView extends ResourceSearchView {  importableChildTypes = \
getImportableChildTypes(parentType);  hasCreatableTypes = \
!creatableChildTypes.isEmpty();  hasImportableTypes = \
                !importableChildTypes.isEmpty();
-        refreshSingletons(parentResource, null);
+        refreshSingletons(parentResource, new AsyncCallback<PageList<Resource>>() {
+
+            public void onFailure(Throwable caught) {
+                ResourceCompositeSearchView.super.onInit();
+                initialized = true;
+            }
+
+            public void onSuccess(PageList<Resource> result) {
+                ResourceCompositeSearchView.super.onInit();
+                initialized = true;
+            }
+
+        });
         
     }
     
@@ -117,7 +128,6 @@ public class ResourceCompositeSearchView extends \
ResourceSearchView {  @Override
                 public void onSuccess(PageList<Resource> result) {
                     singletonChildren = result;
-                    initialized = true;
                     if (callback != null) {
                         callback.onSuccess(result);
                     }
@@ -126,14 +136,15 @@ public class ResourceCompositeSearchView extends \
ResourceSearchView {  @Override
                 public void onFailure(Throwable caught) {
                     Log.error("Failed to load child resources for [" + \
                parentResource + "]", caught);
-                    initialized = true;
                     if (callback != null) {
                         callback.onFailure(caught);
                     }
                 }
             });
         } else {
-            initialized = true;
+            if (callback != null) {
+                callback.onSuccess(new PageList<Resource>());
+            }
         }
     }
 
@@ -143,7 +154,7 @@ public class ResourceCompositeSearchView extends \
ResourceSearchView {  }
 
     // suppress unchecked warnings because the superclass has different generic \
                types for the datasource
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     @Override
     protected RPCDataSource getDataSourceInstance() {
         return ResourceCompositeDataSource.getInstance();
@@ -213,7 +224,6 @@ public class ResourceCompositeSearchView extends \
ResourceSearchView {  private void addImportAndCreateButtons(boolean override) {
 
         final Resource parentResource = parentResourceComposite.getResource();
-        ResourceType parentType = parentResource.getResourceType();
 
         // Create Child Menu and Manual Import Menu
         if (canCreate && (hasCreatableTypes || hasImportableTypes)) {


commit 0ba8c5fc50d40c3f5d5577351506f8ff8522ccd3
Author: Jay Shaughnessy <jshaughn at jshaughn.csb>
Date:   Thu Sep 27 14:41:33 2012 -0400

    Fix an issue in getMeasurementScheduleCompositesByContext due to Hibernate4
    changes (which require some more strict handling on JPQL).
    - Also, remove some unnecessary and misused constants in in \
MeasurementScheduleCriteria

diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java \
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
 index 9bd7e1f..f82a2cd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
                
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
 @@ -39,15 +39,9 @@ import org.rhq.core.domain.util.PageOrdering;
 public class MeasurementScheduleCriteria extends Criteria {
     private static final long serialVersionUID = 1L;
 
-    // sort fields from the MeasurementSchedule itself    
-    public static final String SORT_FIELD_ENABLED = "enabled";
-    public static final String SORT_FIELD_INTERVAL = "interval";
-
     // sort fields from the MeasurementSchedule's MeasurementDefinition
-    public static final String SORT_FIELD_DEFINITION_ID = "definitionId";
     public static final String SORT_FIELD_NAME = "name";
     public static final String SORT_FIELD_DISPLAY_NAME = "displayName";
-    public static final String SORT_FIELD_DESCRIPTION = "description";
     public static final String SORT_FIELD_DATA_TYPE = "dataType";
 
     // filter fields
@@ -95,10 +89,8 @@ public class MeasurementScheduleCriteria extends Criteria {
             + "   WHERE parent.id = ? )");
         filterOverrides.put(FILTER_FIELD_RESOURCE_TYPE_ID, "resource.type.id = ?");
 
-        sortOverrides.put(SORT_FIELD_DEFINITION_ID, "definition.id");
         sortOverrides.put(SORT_FIELD_NAME, "definition.name");
         sortOverrides.put(SORT_FIELD_DISPLAY_NAME, "definition.displayName");
-        sortOverrides.put(SORT_FIELD_DESCRIPTION, "definition.description");
         sortOverrides.put(SORT_FIELD_DATA_TYPE, "definition.dataType");
     }
 
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractSchedulesView.java \
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractSchedulesView.java
 index f5e4dbb..386413c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractSchedulesView.java
                
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractSchedulesView.java
 @@ -135,8 +135,7 @@ public abstract class AbstractSchedulesView extends \
Table<SchedulesDataSource> {  int[] measurementDefinitionIds = new \
                int[records.length];
         for (int i = 0, selectionLength = records.length; i < selectionLength; i++) \
{  ListGridRecord record = records[i];
-            Integer measurementDefinitionId = record
-                .getAttributeAsInt(MeasurementScheduleCriteria.SORT_FIELD_DEFINITION_ID);
 +            Integer measurementDefinitionId = \
record.getAttributeAsInt(SchedulesDataSource.ATTR_DEFINITION_ID);  \
measurementDefinitionIds[i] = measurementDefinitionId;  }
         return measurementDefinitionIds;
@@ -146,7 +145,7 @@ public abstract class AbstractSchedulesView extends \
Table<SchedulesDataSource> {  ListGridRecord[] records = \
                getListGrid().getSelectedRecords();
         List<String> displayNames = new ArrayList<String>(records.length);
         for (ListGridRecord record : records) {
-            String displayName = \
record.getAttributeAsString(MeasurementScheduleCriteria.SORT_FIELD_DISPLAY_NAME); +   \
String displayName = \
record.getAttributeAsString(SchedulesDataSource.ATTR_DISPLAY_NAME);  \
displayNames.add(displayName);  }
         return displayNames;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/SchedulesDataSource.java \
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/SchedulesDataSource.java
 index e73cb66..74cdbe0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/SchedulesDataSource.java
                
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/SchedulesDataSource.java
 @@ -51,11 +51,11 @@ public class SchedulesDataSource extends \
RPCDataSource<MeasurementScheduleCompos  
     public static final String ATTR_ID = "id";
     public static final String ATTR_DATA_TYPE = \
                MeasurementScheduleCriteria.SORT_FIELD_DATA_TYPE;
-    public static final String ATTR_DEFINITION_ID = \
                MeasurementScheduleCriteria.SORT_FIELD_DEFINITION_ID;
-    public static final String ATTR_DESCRIPTION = \
MeasurementScheduleCriteria.SORT_FIELD_DESCRIPTION; +    public static final String \
ATTR_DEFINITION_ID = "definitionId"; +    public static final String ATTR_DESCRIPTION \
                = "description";
     public static final String ATTR_DISPLAY_NAME = \
                MeasurementScheduleCriteria.SORT_FIELD_DISPLAY_NAME;
-    public static final String ATTR_ENABLED = \
                MeasurementScheduleCriteria.SORT_FIELD_ENABLED;
-    public static final String ATTR_INTERVAL = \
MeasurementScheduleCriteria.SORT_FIELD_INTERVAL; +    public static final String \
ATTR_ENABLED = "enabled"; +    public static final String ATTR_INTERVAL = "interval";
 
     private MeasurementDataGWTServiceAsync measurementService = \
GWTServiceLookup.getMeasurementDataService();  
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java \
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
 index 134bf21..2e4eeda 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
                
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
 @@ -1396,7 +1396,6 @@ public class MeasurementScheduleManagerBean implements \
MeasurementScheduleManage  @SuppressWarnings("unchecked")
     public PageList<MeasurementScheduleComposite> \
getMeasurementScheduleCompositesByContext(Subject subject,  EntityContext context, \
                PageControl pc) {
-        pc.addDefaultOrderingField("definition.displayName");
 
         // check authorization up front, so that criteria-based queries can run \
without authz checks  switch (context.type) {
@@ -1441,7 +1440,7 @@ public class MeasurementScheduleManagerBean implements \
MeasurementScheduleManage  } else {
             // Do general criteria setup.
             MeasurementScheduleCriteria criteria = new \
                MeasurementScheduleCriteria();
-            //criteria.addFilterDefinitionIds(measurementDefinitionIds);
+
             switch (context.type) {
             case Resource:
                 criteria.addFilterResourceId(context.resourceId);
@@ -1454,12 +1453,36 @@ public class MeasurementScheduleManagerBean implements \
                MeasurementScheduleManage
                 criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
                 break;
             }
+
             criteria.setPageControl(pc); // for primary return list, use passed \
PageControl +            pc.addDefaultOrderingField("definition.displayName");
 
             // Get the core definitions.
             CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, \
criteria);  
-            generator.alterProjection(" distinct measurementschedule.definition ");
+            // We previously used the following altered projection for the criteria \
query:  +            //
+            //   generator.alterProjection(" distinct orderingField0");
+            //
+            // Hibernate4 no longer allowed for the generated criteria JPQL for this \
projection: +            //
+            //    SELECT distinct measurementschedule.definition 
+            //      FROM MeasurementSchedule measurementschedule
+            // LEFT JOIN measurementschedule.definition orderingField0
+            //     WHERE ( measurementschedule.resource.id IN ( :resourceId ) )
+            //  ORDER BY orderingField0.displayName ASC
+            //
+            // It causes:
+            //   SQLGrammarException: ERROR: for SELECT DISTINCT, ORDER BY \
expressions must appear in select list +            // 
+            // In essence, using DISTINCT now requires that we use the LEFT JOIN \
alias in the select +            // list.  To support this we could probably have \
made some tricky coding changes to the +            // generator. But seeing that \
this would be to support non-default criteria queries (i.e +            // the \
altered projection using DISTINCT), of which this is the only one in the code base, + \
// and we are in control of the order by clause, and therefore are predictably \
working with +            // the JPQL above, I've chosen to just make a change to the \
custom altered projection, using +            // the JPQL to guide me.
+            generator.alterProjection(" distinct orderingField0");
             CriteriaQueryRunner<MeasurementDefinition> queryRunner = new \
CriteriaQueryRunner(criteria, generator,  entityManager);
             definitions = queryRunner.execute();


commit af42f234b12ee159276b4c85dfbbb39953ff2f30
Author: Jay Shaughnessy <jshaughn at jshaughn.csb>
Date:   Thu Sep 27 12:34:24 2012 -0400

    Eclipse generated a change but I'm not sure why.

diff --git a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch \
b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch index \
                c839e78..f4a8c06 100644
--- a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch	
+++ b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch	
@@ -5,7 +5,7 @@
 <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
 <listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
 </listAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" \
value="${env_var:M2_HOME}/bin/${MAVEN_EXE}"/> +<stringAttribute \
key="org.eclipse.ui.externaltools.ATTR_LOCATION" \
value="${build_files}${env_var:M2_HOME}/bin/${MAVEN_EXE}"/>  <stringAttribute \
key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-o \
-Dmaven.test.skip=true gwt:debug -DcoreGuiParams=?rpcTimeout=600#Reports"/>  \
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" \
value="${workspace_loc:/rhq/modules/enterprise/gui/coregui}"/>  \
</launchConfiguration>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic