[slf4j-dev] Rearranging classes
John E. Conlon
jconlon at verticon.com
Tue Feb 6 00:38:20 CET 2007
Ceki Gülcü wrote:
> At 11:35 PM 2/5/2007, John E. Conlon wrote:
> [snip]
>
>
>>> There would be a cyclical dependence between
>>> the two jars.
>>>
>> This coupling is what got me thinking about the build time copying of
>> packages I suggested using the plugin.
>>
>>> Do you think that could be a problem?
>>>
>>>
>> Potential concern(S) if we went with this approach.
>> 1. Would we have a build problem with this? Which project would be
>> first to build?
>>
>
> D'oh. You are of course right. I can't believe I missed this.
>
> We could get slf4j-api to compile by providing a bogus project providing
> the classes needed. However, the approach does not seem very elegant and I
> can't think of anything better.
>
>
>> 2. Would like to test it in all the OSGi frameworks to make sure both
>> bundles would resolve.
>> BTW - I currently have a test environment based on Spring-OSGi ready to
>> go that is using the current layout with Require-Bundle. (It is just
>> not committed yet. I will wait for you to proceed with the refactoring
>> of packages.)
>>
>
> No, no. It was a half-baked idea.
>
> [snip]
>
>
>>> If slf4j-api.jar is included within slf4j-<impl>.jar, wouldn't this be an
>>> OSGi-only solution?
>>>
>>>
>> No slf4j-api.jar would not be copied, but the classes themselves would
>> be copied into the slf4j-<impl>.jar.
>> Non-OSGi users would have fully functional log impls jars that would
>> also be offering the org.slf4j classes. Only now they would need just
>> one jar instead of two.
>>
>
>
>>> Given that you seem to support the rearrangement, let me start with that.
>>> We can build on top of those changes to integrate steps 2 and 3 you
>>>
>> outlined.
>>
>>> How does that sound?
>>>
>>>
>> I am having second thoughts about the refactoring the packages. Because
>> of the Build issues I suspect we will have.
>>
>> Alternative idea:
>> What if we did NOT do the refactorings at all?!
>> Just use the plugin to do the class copying with the packages and
>> classes as they are now?... Wait let me try this...
>>
>> Yep that works!
>> Tested this (in the testsuite that I mentioned above) and it works. Here
>> is what the slf4j-simple pom.xml build looks like using the plugin:
>> <build>
>> <plugins>
>> <plugin>
>> <groupId>org.apache.felix</groupId>
>> <artifactId>maven-bundle-plugin</artifactId>
>> <extensions>true</extensions>
>> <configuration>
>> <instructions>
>> <Export-Package>org.slf4j;version=1.3</Export-Package>
>> <Private-Package>org.slf4j.impl,
>> org.slf4j.spi</Private-Package>
>> <Import-Package>!org.slf4j.*</Import-Package>
>> </instructions>
>> </configuration>
>> </plugin>
>> </plugins>
>> </build>
>>
>> Integration Test:
>> OSGi Integration test are deploying:
>> "org.slf4j"; "slf4j-simple",
>> "org.slf4j";"jcl104-over-slf4j",
>> "org.slf4j"; "slf4j-osgi-test-bundle",
>>
>> All bundles resolve (finding all imports and exports),
>> Note: the slf4j-osgi-test-bundle uses both org.slf4j and jcl logging.
>>
>>
>> Summary:
>> No changes to classes, all projects are the same except fewer number of
>> files.
>> No manifest.mf files,
>> The slf4j-simple.jar contains the superset of classes in org.slf4j and
>> org.slffj.impl from both the slf4j-api.jar and its own jar.
>> (This will be the same for all the bindings jars.)
>>
>> If you like I can do the modifications to all the projects as suggested
>> above, or
>> I can wait for you ( if you do not see a problem with the cyclical deps
>> for the builds and want to do the refactoring).
>>
>
> Go for it. :-)
>
>
Will need to change release to 1.3.0-SNAPSHOT on parent pom.xml. Okay?
John
More information about the slf4j-dev
mailing list