Akila created STRATOS-1623:
------------------------------

             Summary: Refactoring pom files and fixing OSGi imports/exports
                 Key: STRATOS-1623
                 URL: https://issues.apache.org/jira/browse/STRATOS-1623
             Project: Stratos
          Issue Type: Improvement
          Components: Autoscaler, CEP, Cloud Controller, Messaging, Metadata 
API, Mock IaaS, Stratos Manager
    Affects Versions: 4.1.4, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.0
            Reporter: Akila
            Assignee: Akila
             Fix For: 4.1.5


Currently Stratos components do not properly import/export packages to/from 
OSGi bundles. This might lead to unexpected behaviors in an OSGi runtime. Also 
dependency versions in pom files are currently hard-coded which is less 
maintainable. I've done a refactoring of all pom files to fix the above issues. 
Following is a summary of changes done;

 - Removed hard-coded maven dependency versions and moved everything to parent 
pom

 - Parameterized dependency versions with maven properties

 - Added OSGi import ranges for external dependencies which are set from parent 
pom as a maven property

 - Added OSGi import version for Stratos internal dependencies as 
project.version. This will ensure only intended component will always

 - Upgraded commons-collections dependency to version 3.2.2 to mitigate the 
security vulnerability as reported in [1]


While working on this I found several issues in the code base;

 - Incorrect import of Arrays class in [2]. 

 - CloudController imports a private package of StratosCommon component [3]

 - Incorrect dependency to org.wso2.carbon.identity.oauth.stub component at 
[4,5] resulting unrunnable code at [6, 7]
This is because actual identity.oauth.stub bundle version packed into the 
distribution is 4.2.3 and the dependency version defined in the Stratos 
component is 4.2.0.

 - Metadata service webapp imports a private package of StratosCommon component 
[8]

 - Stratos rest endpoint webapp imports a private package of StratosManager 
component [9]
To fix this I've added a new boolean; "isActive" to indicate whether 
StratosManager component is activated. This field has a public getter method 
but no setters. The variable is updated via a ComponentSynchronizer listener.

 - Unnecessary Activator class in Autoscaler component [10]. 
Removed the class and reference in maven-bundle-plugin Bundle-Activator 
directive.

[1] https://issues.apache.org/jira/browse/COLLECTIONS-580

[2] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java#L21

[3] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java#L26

[4] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.metadata.service/pom.xml#L99

[5] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.rest.endpoint/pom.xml#L101

[6] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/oauth2/ValidationServiceClient.java#L54

[7] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/oauth2/ValidationServiceClient.java#L53

[8] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java#L253

[9] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/ComponentSynchronizerHandler.java#L28

[10] 
https://github.com/apache/stratos/blob/4.1.4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/ASBundleActivater.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to