You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by GitBox <gi...@apache.org> on 2018/09/01 10:59:01 UTC

[GitHub] rafaelweingartner commented on a change in pull request #2500: Restrict the number of managed clustered file systems per compute cluster

rafaelweingartner commented on a change in pull request #2500: Restrict the number of managed clustered file systems per compute cluster
URL: https://github.com/apache/cloudstack/pull/2500#discussion_r214510710
 
 

 ##########
 File path: engine/components-api/src/main/resources/META-INF/cloudstack/core/spring-engine-components-api-core-context.xml
 ##########
 @@ -25,6 +25,6 @@
                       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
                       http://www.springframework.org/schema/context/spring-context.xsd"
-                      >                     
-
+                      >
+    <bean id="storageUtil" class="com.cloud.storage.StorageUtil" />
 
 Review comment:
   Ok, let me provide you with some history.
   
   When Spring was first launched we defined all beans in XML; similarly to what you are doing. However, if you take a closer look, you are not declaring the “injection”  of the properties because the properties are annotated with “@Inject” in the class.
   
   If we were to do the creation of “storageUtil” only in XML we would use something like:
   ```
   <bean id="storageUtil" class="com.cloud.storage.StorageUtil" >
        <proerty name=”clusterDao” ref=”clusterDao” />
         <proerty name=”hostDao” ref=”hostDao” />
         <proerty name=”storagePoolDao” ref=”primaryDataStoreDao” />
         <proerty name=”vmInstanceDao” ref=”vmInstanceDao” />
         <proerty name=”volumeDao” ref=”volumeDao” />
   </bean>
   ```
   
   With time things evolved and annotations started to be used. Spring as other frameworks adopted it. The annotation form for the “bean” declaration in XML is “@Component”. There are other alternatives such as the “@Services”, ”@WebComponent”, and others. They are used as markers for beans that play a role in different layers of the application (Frontend layer, service layer, database and so on).
   
   The annotation to mark properties that need to be injected are the “@Inject” and “@Autowired”. In your case, you are not using the “property” element in XML because you applied the “@Inject” annotation in your class properties.
   
   I do prefer to use either everything in XML or everything in annotation form. Therefore, you can simply remove this line here, and annotate the class with “@Component”. Bear in mind that for the annotation to work we need to enable the annotation scan, but I think ACS is already doing that.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services