> On Oct. 10, 2014, 5:10 p.m., Tom Beerbower wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java,
> >  lines 225-227
> > <https://reviews.apache.org/r/26568/diff/1/?file=717581#file717581line225>
> >
> >     This fact that this is not supported is a problem for a query string 
> > like '!name.in(foo,bar)'.  I think that the ambari predicate would come to 
> > the RP as NOT(name=foo OR name=bar) and you would end up with a JPA 
> > predicate of name=foo OR name=bar.

CriteriaBuilder does support NOT and its variations; I just didn't implement it 
for alerts yet since I can't see an use cases for using NOT.


> On Oct. 10, 2014, 5:10 p.m., Tom Beerbower wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java,
> >  line 387
> > <https://reviews.apache.org/r/26568/diff/1/?file=717585#file717585line387>
> >
> >     I guess that {clusterName}/alert_histories looks a little funny.  Is 
> > that why you use {clusterName}/alert_history here?  The pattern has always 
> > been to use the plural resource name.
> >     
> >     I'm surprised that {clusterName}/alert_history works since you 
> > specified 'alert_histories' as the plural name in the definition.

alert_histories is funny looking. I would rather the endpoint be 
{clusterName}/alert_history; but in that case, what would the singular version 
be? I'm open to suggestions on naming of the REST endpoint and the resource 
type.


> On Oct. 10, 2014, 5:10 p.m., Tom Beerbower wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/controller/AlertHistoryRequest.java,
> >  line 27
> > <https://reviews.apache.org/r/26568/diff/1/?file=717586#file717586line27>
> >
> >     Is this class needed?  Why not just pass the predicate?  Are you 
> > planning on adding sort and page requests here as well?

I am planning on including the pagination and sorting information on this class.


> On Oct. 10, 2014, 5:10 p.m., Tom Beerbower wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/controller/AlertHistoryRequest.java,
> >  line 32
> > <https://reviews.apache.org/r/26568/diff/1/?file=717586#file717586line32>
> >
> >     Is there a reason that this should be public and not private final?  It 
> > seems like the request object should be immutable.

I can't see a reason that it would need to be mutable; this is actually a 
pattern that I've followed for a while where encapsulation objects typically 
have public fields without setters/getters unless there is something specific 
that needs to be protected. With that said, I can't see the problem with 
changing a request after its been created.


> On Oct. 10, 2014, 5:10 p.m., Tom Beerbower wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity_.java,
> >  line 37
> > <https://reviews.apache.org/r/26568/diff/1/?file=717592#file717592line37>
> >
> >     I don't think that I've ever seen a trailing underscore for a class 
> > name before.

This is the standard JPA Metamodel pattern; "For each managed class X in 
package p, a metamodel class X_ in package p is created."


- Jonathan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/26568/#review56214
-----------------------------------------------------------


On Oct. 10, 2014, 2:48 p.m., Jonathan Hurley wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/26568/
> -----------------------------------------------------------
> 
> (Updated Oct. 10, 2014, 2:48 p.m.)
> 
> 
> Review request for Ambari, Nate Cole and Tom Beerbower.
> 
> 
> Bugs: AMBARI-7734
>     https://issues.apache.org/jira/browse/AMBARI-7734
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Alert history is exposed as read-only. Since this data can grow without 
> bounds, the current API model of manipulating the entire result set in memory 
> is not viable long term. 
> 
> This patch will pass the Ambari Predicate down to the DAO which will then 
> turn the Predicate into a JPA Predicate capable of being handed to a 
> CriteriaQuery. This will allow JPA to do most of the work in reducing the 
> requested result set.
> 
> Missing from this are pagination and sorting. That will be a separate change 
> coming next where the ResourceProviders are given both, and if possible, can 
> apply them to the result set they return.
> 
> 
> Diffs
> -----
> 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java
>  PRE-CREATION 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/resources/AlertHistoryResourceDefinition.java
>  PRE-CREATION 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
>  74580a4 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java
>  PRE-CREATION 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java
>  a56bcbf 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/AlertHistoryRequest.java
>  PRE-CREATION 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
>  e0de383 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java
>  5810633 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java
>  PRE-CREATION 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/spi/Resource.java
>  f51375b 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java 
> f2161f3 
>   
> ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity_.java
>  PRE-CREATION 
>   ambari-server/src/main/resources/key_properties.json 085dc11 
>   ambari-server/src/main/resources/properties.json 8a0a58a 
>   
> ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProviderTest.java
>  PRE-CREATION 
>   
> ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java
>  a2023d8 
> 
> Diff: https://reviews.apache.org/r/26568/diff/
> 
> 
> Testing
> -------
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 23:24 min
> [INFO] Finished at: 2014-10-10T14:45:44-04:00
> [INFO] Final Memory: 29M/230M
> [INFO] 
> ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Jonathan Hurley
> 
>

Reply via email to