In the SVN repository, the core implementation of the recommender system is in the folder /components/xhinter. This code has no dependencies in other libraries related to the client or the interface.
The client specific core implementation is available in the folder \core\com\limegroup\gnutella\recommendation. This code has dependencies with the core client, and it uses core components as SearchServices, FileManager and ConnectionManager. These components are used internally with dependency injection, and I think that if there is in Phex components that have the same funcionality, the components can be replaced with the Phex implementations. You can take a look in the RecommendationService interface and RecommendationServiceImpl. This code has dependencies only with the core components, and no dependencies with the interface.
The interface implementation is available in the folder \gui\com\limegroup\gnutella\gui\recommender, and uses the core components. This part should be completely reimplemented. The main class is RecommendationMediator, which references the core components.
The documentation should be improved, and I'm currently working on this. |