Thinking more about it, I can solve my immediate problem by just
copy-pasting the classes I need into my own project packages (KISS
like here<https://github.com/Filirom1/solr-test-exemple>
).

I'd however suggest to refactor Solr code structure to be much more
defaults-compliant making it easier for external developers to understand,
and hopefully easier to maintain for committers (with fewer special-needs
configurations). I've done some of those refactorings on my local copy of
Solr and would be glad to contribute.

For this particular problem the KISS solution would be to create yet one
more module for Tests which depend on Solr Core and on the Test Framework.
The org burden of that extra module, versus the ease of building
configuration, I believe, outweights.



On Tue, May 17, 2011 at 7:11 PM, Gabriele Kahlout
<gabri...@mysimpatico.com>wrote:

>
> http://stackoverflow.com/questions/6034513/can-i-avoid-a-dependency-cycle-with-one-edge-being-a-test-dependency
>
>
> On Tue, May 17, 2011 at 6:49 PM, Gabriele Kahlout <
> gabri...@mysimpatico.com> wrote:
>
>>
>>
>>
>> On Tue, May 17, 2011 at 3:52 PM, Gabriele Kahlout <
>> gabri...@mysimpatico.com> wrote:
>>
>>>
>>>
>>> On Tue, May 17, 2011 at 3:44 PM, Steven A Rowe <sar...@syr.edu> wrote:
>>>
>>>> Hi Gabriele,
>>>>
>>>> On 5/17/2011 at 9:34 AM, Gabriele Kahlout wrote:
>>>> > Solr Core should declare a test dependency on Solr Test Framework.
>>>>
>>>> I agree:
>>>>
>>>> - Solr Core should have a test-scope dependency on Solr Test Framework.
>>>> - Solr Test Framework should have a compile-scope dependency on Solr
>>>> Core.
>>>>
>>>> But Maven views this as a circular dependency.
>>>>
>>>
>>> I've seen, but adding it with <scope> test </scope> works. The logic:
>>> the src is compiled first and then re-used (I'm assuming maven does
>>> something smart about not including the full jar).
>>>
>>
>> Not quite. I've tried a demo and the reactor complains. I'll try to see if
>> maven could become 'smarter', or if the 2-build phase solution will work.
>>
>> The projects in the reactor contain a cyclic reference: Edge between
>> 'Vertex{label='com.mysimpatico:TestFramework:1.0-SNAPSHOT'}' and
>> 'Vertex{label='org.apache:DummyCore:1.0-SNAPSHOT'}' introduces to cycle in
>> the graph org.apache:DummyCore:1.0-SNAPSHOT -->
>> com.mysimpatico:TestFramework:1.0-SNAPSHOT -->
>> org.apache:DummyCore:1.0-SNAPSHOT -> [Help 1]
>>
>>
>>
>>>
>>>
>>>
>>>
>>>> The workaround: Solr Core includes the source of Solr Test Framework as
>>>> part of its test source code.  It's not pretty, but it works.
>>>>
>>>> I'd be happy to entertain other (functional) approaches.
>>>>
>>>
>>> In dp4j.com pom.xml I build in 2 phases to compile with the same
>>> annotations in the project itself (but i don't think we need that here)
>>>
>>>
>>>>
>>>> Steve
>>>>
>>>>
>>>
>>>
>>> --
>>> Regards,
>>> K. Gabriele
>>>
>>> --- unchanged since 20/9/10 ---
>>> P.S. If the subject contains "[LON]" or the addressee acknowledges the
>>> receipt within 48 hours then I don't resend the email.
>>> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>>> time(x) < Now + 48h) ⇒ ¬resend(I, this).
>>>
>>> If an email is sent by a sender that is not a trusted contact or the
>>> email does not contain a valid code then the email is not received. A valid
>>> code starts with a hyphen and ends with "X".
>>> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>>> L(-[a-z]+[0-9]X)).
>>>
>>>
>>
>>
>> --
>> Regards,
>> K. Gabriele
>>
>> --- unchanged since 20/9/10 ---
>> P.S. If the subject contains "[LON]" or the addressee acknowledges the
>> receipt within 48 hours then I don't resend the email.
>> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>> time(x) < Now + 48h) ⇒ ¬resend(I, this).
>>
>> If an email is sent by a sender that is not a trusted contact or the email
>> does not contain a valid code then the email is not received. A valid code
>> starts with a hyphen and ends with "X".
>> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>> L(-[a-z]+[0-9]X)).
>>
>>
>
>
> --
> Regards,
> K. Gabriele
>
> --- unchanged since 20/9/10 ---
> P.S. If the subject contains "[LON]" or the addressee acknowledges the
> receipt within 48 hours then I don't resend the email.
> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
> time(x) < Now + 48h) ⇒ ¬resend(I, this).
>
> If an email is sent by a sender that is not a trusted contact or the email
> does not contain a valid code then the email is not received. A valid code
> starts with a hyphen and ends with "X".
> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> L(-[a-z]+[0-9]X)).
>
>


-- 
Regards,
K. Gabriele

--- unchanged since 20/9/10 ---
P.S. If the subject contains "[LON]" or the addressee acknowledges the
receipt within 48 hours then I don't resend the email.
subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
< Now + 48h) ⇒ ¬resend(I, this).

If an email is sent by a sender that is not a trusted contact or the email
does not contain a valid code then the email is not received. A valid code
starts with a hyphen and ends with "X".
∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
L(-[a-z]+[0-9]X)).

Reply via email to