Thomas Watson created FELIX-5251:
------------------------------------

             Summary: Resolver impl is in need of extensive cleanup
                 Key: FELIX-5251
                 URL: https://issues.apache.org/jira/browse/FELIX-5251
             Project: Felix
          Issue Type: Bug
          Components: Resolver
    Affects Versions: resolver-1.8.0
         Environment: All
            Reporter: Thomas Watson
            Assignee: Thomas Watson


The Resolver implementation has undergone a lot of changes since it was first 
contributed.  Over the coarse of development the code has deteriorated a bit.  
This is not to blame the contributors to the codebase.  The codebase and 
overall problem is complicated and already hard enough to understand.

I have been looking to implement some upcoming changes that are being proposed 
for the OSGi R7 specification.  Before I start that work I have been spending 
significant time scrubbing the resolver code and trying to make it a little 
more understandable.  Here are the main things I have done:

1) Create a common code path for dynamic resolution and regular resolution.  
2) Extract common code and greatly reduce the number of lines contained in 
complicated do/while loops.
3) Make proper use of the existing ResolveSession class to keep track of state 
during the resolution process.   This keeps the maintenance of state in one 
place.  The code had evolved into many separate options being passed around to 
methods, each maintaining some kind of state.



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

Reply via email to