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)