You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Alex Karasulu <ak...@apache.org> on 2011/03/08 00:09:48 UTC

[Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Hi all,

I just looked through the schema packages and noticed that it has
become another hives nest of inter-dependency. I'm not blaming anyone
here so please don't get the wrong idea. I just want to avoid these
trends because they cause more complexity and lead more unnecessary
work. Let me show y'all some code to be clear.

There once were clean simple schema entity interfaces like
AttributeType that were used to shield the API from getting
contaminated by irrelevant implementation methods and functionality.
[0] shows an example of a clean interface which was there earlier that
most of the code handled. This was removed and replaced by a class.
Now look here [1] to see the big 1800 line file mixed with all sorts
of functionality [1] like addToRegistries(). This method has no place
in this object which is now used globally. As a result,
interdependencies have increased through and through inside these
packages as well as in the server which now depends on these out of
place methods. It's going to be a PITA to clean this up and the work
will be twice, maybe more, as hard as when the interfaces were
removed. The rest of the code base now has come to depend on these
non-essential methods specific to some function or use case associated
with implementation details.

I'm trying to get some traction with making schema loadable and this
is yet another surprise to have to contend with. Please let's not
remove interfaces just because they seem unappealing. When in doubt,
leave the interface where it is, it can't hurt, but the opposite can
hurt a lot. I'm sitting here starring at this nest and wondering what
the heck I should do first.

Best Regards,
Alex

[0] - http://goo.gl/2j5dT
[1] - http://goo.gl/G7wBV

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Tue, Mar 8, 2011 at 10:09 AM, Pierre-Arnaud Marcelot <pa...@marcelot.net>wrote:

> Hi Alex,
>
> That's something I had also noticed a few weeks ago.
> See [1].
>
> I wanted to decouple the SchemaObjects from the SchemaManager, but I guess
> I ran into other work and couldn't complete it.
>
> AFAIR there are around 5 methods in the SchemaObject interface/abstract
> class that needed to be removed and added in the SchemaManager utilities.
> I'm not sure they are that much used outside of SchemaManager related
> classes.
>
> On the lack of interfaces for schema objects, it's probably a little more
> complex to move them back and requires more refactoring from depending
> parts.
>
> Tell me if I can be of any help about those two matters.
>
> Regards,
> Pierre-Arnaud
>
> [1] - http://directory.markmail.org/thread/mq2yerlo7b7dcd4m
>
>
OK thanks Pierre for your assistance. I'm just trying to get my build back
to normal now after merging in from trunks and confronting this
maven-bundle-plugin issue discussed in the other thread.

I want to clean up my build and then start analyzing a bit more, we can post
ideas on the ML too but at the same time I want to experiment with some of
the refactorings to see how it will look. Will keep everyone informed of my
findings and thoughts.

Thanks,
Alex


> On 8 mars 2011, at 00:09, Alex Karasulu wrote:
>
> Hi all,
>
> I just looked through the schema packages and noticed that it has
> become another hives nest of inter-dependency. I'm not blaming anyone
> here so please don't get the wrong idea. I just want to avoid these
> trends because they cause more complexity and lead more unnecessary
> work. Let me show y'all some code to be clear.
>
> There once were clean simple schema entity interfaces like
> AttributeType that were used to shield the API from getting
> contaminated by irrelevant implementation methods and functionality.
> [0] shows an example of a clean interface which was there earlier that
> most of the code handled. This was removed and replaced by a class.
> Now look here [1] to see the big 1800 line file mixed with all sorts
> of functionality [1] like addToRegistries(). This method has no place
> in this object which is now used globally. As a result,
> interdependencies have increased through and through inside these
> packages as well as in the server which now depends on these out of
> place methods. It's going to be a PITA to clean this up and the work
> will be twice, maybe more, as hard as when the interfaces were
> removed. The rest of the code base now has come to depend on these
> non-essential methods specific to some function or use case associated
> with implementation details.
>
> I'm trying to get some traction with making schema loadable and this
> is yet another surprise to have to contend with. Please let's not
> remove interfaces just because they seem unappealing. When in doubt,
> leave the interface where it is, it can't hurt, but the opposite can
> hurt a lot. I'm sitting here starring at this nest and wondering what
> the heck I should do first.
>
> Best Regards,
> Alex
>
> [0] - http://goo.gl/2j5dT
> [1] - http://goo.gl/G7wBV
>
>
>

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Wed, Mar 9, 2011 at 4:20 PM, Emmanuel Lécharny <el...@apache.org>wrote:

> On 3/9/11 3:02 PM, Alex Karasulu wrote:
>
>> On Wed, Mar 9, 2011 at 3:52 PM, Emmanuel Lécharny<elecharny@apache.org
>> >wrote:
>>
>>  On 3/9/11 2:29 PM, Alex Karasulu wrote:
>>>
>>>  On Tue, Mar 8, 2011 at 6:12 PM, Alex Karasulu<ak...@apache.org>
>>>>  wrote:
>>>>
>>>>  Let's be exact here. Are you saying that you were crucified?
>>>>
>>>>>  I'd like a clear answer to this question.
>>>>>
>>>> You seem to be saying this too frequently and on public mailing lists
>>>> for
>>>> me
>>>> to ignore. The same insinuation last occurring over some IP issue I
>>>> discovered with a release. Again crucification was the word used. So
>>>> either
>>>> stop the passive aggressive insinuations or just say what you're
>>>> thinking
>>>> directly: I'm more than willing to work with you to be as gentle as you
>>>> want
>>>> me to be with you.
>>>>
>>>>  Alex, please *stop* being paranoid.
>>>
>>>
>>>  OK this is yet another insinuation. I don't appreciate then. In a dry
>> non
>> accusatory fashion I should be able to point out technical trends made by
>> developers here that are not help us. This should not insight these kinds
>> of
>> insinuations period.
>>
> It was not an insinuation, you *are* getting paranoid from time to time,
> and trust me, this is fucking boring. I'm tired of such a behavior, and I'm
> not the only one. Swallow it, or control this behavior.
>


First off you need to control yourself. The fact that you have reached
consensus with others on this team is no reason for you to talk in such a
fashion. Why loose your cool? I'm saying I don't want to use these kinds of
words that stigmatize this community. It's not evil, wrong, or paranoid.

Bottom line these crucifixion commentaries need to stop. They are not
helping. There's no paranoia on my side here. This is the 2nd instance of
your using the same word. Both times when I pointed out something wrong you
came by and dropped it. This is reality and people that are paranoid are not
founded on reality.

I don't care if you have everyone on this project thinking the same as you.
We still have a right as individuals to calmly and politely express why we
are not liking the behaviors of others. There's no reason to explode.

I am having a conversation not an argument with you.

You were the one bringing this discussion to the dev mailing list, and
> that's a problem. Now, I can't either ignore it.
>
>
I'm sorry but you said we don't need to crucify the second time. You can't
keep saying that there's a crucifixion going on every time something wrong
is pointed out. Even if you don't use a name, it's still easy to form
associations.

You can say Alex you're attacking here stop it. This is why I came out and
clearly asked, "Are you saying I am crucifying?" Because if that's what
you're saying then I need to figure out what I am doing wrong right?

Politely and respectfully any issue can be discussed between people without
name calling and attacking each other.


>
>
>>  This was a general sentence targeting no one, as your initial mail
>>> contained a similar one :
>>>
>>> "...I'm not blaming anyone here so please don't get the wrong idea..."
>>>
>>> At some point, you have to realize that you are working in a community
>>> where most of us are not native english speakers, and that reflects in
>>> the
>>> sentence we use and the word we pick to express an idea.
>>>
>>>
>>>  OK we gotta stop using the lack of not being native speakers as an
>> issue.
>>
>> I don't like this excessively sensitive situation here where we have to
>> keep
>> quite when something wrong happens in the code. It's something that will
>> inhibit progress in the end.
>>
>
> <SNIP/>
>
>
>
>>  If I have to call someone specifically names, I have some way to express
>>> that feeling. Look at my first sentence, for instance.
>>>
>>>
>>>  OK say it was general. Forget for now my taking it as if it were
>> directed
>> towards me. But even generally it's making people in the community think
>> something is not right.
>>
>
> *if* only you weren't bringing what you thought was a personal attack on
> the dev list, people around it weren't asking themselves if the community is
> sane, or not.
>
>
Look I don't want insinuations about my being a crucifier on public lists.
So when you post that I have to defend myself in the same ML you posted to.

It's not good to leave things hanging. Plus I thought maybe I am doing
something wrong here. Let's get to the bottom of it. So I asked directly who
is crucifying? If it is me I will take steps to stop once I understand what
you mean and if it is in fact the case.


> <snip the remaining non-sense>
>
> Now, either we stop these stupid and useless discussion here, and consider
> that it was just a blurb of BS, or we continue. I haven't started it, and I
> don't want to continue either. I'm just fed up.
>
>
Dude you showed up and said a crucification was going on. Who else would you
be referring to? You can't say this to someone then run away from it.

These are light almost unnoticeable insinuations designed to slowly
formulate a negative image of someone in the community. I want it stopped.

Have a nice day.
>
>
Oh most certainly, I'm not the one angry here. Also I'm ready for a
discussion whenever you are on this present Schema refactoring we need to
do.

Perhaps we can discuss this on IRC then report to the ML. I have been
waiting for you here for 1hr when you said give me 10 minutes. If you need
to cool off I understand. I can do something else today if need be. Just let
me know on or off list what you'd like to do.

Thanks,
Alex

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Emmanuel Lécharny <el...@apache.org>.
On 3/9/11 3:02 PM, Alex Karasulu wrote:
> On Wed, Mar 9, 2011 at 3:52 PM, Emmanuel Lécharny<el...@apache.org>wrote:
>
>> On 3/9/11 2:29 PM, Alex Karasulu wrote:
>>
>>> On Tue, Mar 8, 2011 at 6:12 PM, Alex Karasulu<ak...@apache.org>
>>>   wrote:
>>>
>>>   Let's be exact here. Are you saying that you were crucified?
>>>>   I'd like a clear answer to this question.
>>> You seem to be saying this too frequently and on public mailing lists for
>>> me
>>> to ignore. The same insinuation last occurring over some IP issue I
>>> discovered with a release. Again crucification was the word used. So
>>> either
>>> stop the passive aggressive insinuations or just say what you're thinking
>>> directly: I'm more than willing to work with you to be as gentle as you
>>> want
>>> me to be with you.
>>>
>> Alex, please *stop* being paranoid.
>>
>>
> OK this is yet another insinuation. I don't appreciate then. In a dry non
> accusatory fashion I should be able to point out technical trends made by
> developers here that are not help us. This should not insight these kinds of
> insinuations period.
It was not an insinuation, you *are* getting paranoid from time to time, 
and trust me, this is fucking boring. I'm tired of such a behavior, and 
I'm not the only one. Swallow it, or control this behavior.

You were the one bringing this discussion to the dev mailing list, and 
that's a problem. Now, I can't either ignore it.

>
>> This was a general sentence targeting no one, as your initial mail
>> contained a similar one :
>>
>> "...I'm not blaming anyone here so please don't get the wrong idea..."
>>
>> At some point, you have to realize that you are working in a community
>> where most of us are not native english speakers, and that reflects in the
>> sentence we use and the word we pick to express an idea.
>>
>>
> OK we gotta stop using the lack of not being native speakers as an issue.
>
> I don't like this excessively sensitive situation here where we have to keep
> quite when something wrong happens in the code. It's something that will
> inhibit progress in the end.

<SNIP/>

>
>> If I have to call someone specifically names, I have some way to express
>> that feeling. Look at my first sentence, for instance.
>>
>>
> OK say it was general. Forget for now my taking it as if it were directed
> towards me. But even generally it's making people in the community think
> something is not right.

*if* only you weren't bringing what you thought was a personal attack on 
the dev list, people around it weren't asking themselves if the 
community is sane, or not.

<snip the remaining non-sense>

Now, either we stop these stupid and useless discussion here, and 
consider that it was just a blurb of BS, or we continue. I haven't 
started it, and I don't want to continue either. I'm just fed up.

Have a nice day.

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Wed, Mar 9, 2011 at 3:52 PM, Emmanuel Lécharny <el...@apache.org>wrote:

> On 3/9/11 2:29 PM, Alex Karasulu wrote:
>
>> On Tue, Mar 8, 2011 at 6:12 PM, Alex Karasulu<ak...@apache.org>
>>  wrote:
>>
>>  Let's be exact here. Are you saying that you were crucified?
>>>
>>>  I'd like a clear answer to this question.
>>
>> You seem to be saying this too frequently and on public mailing lists for
>> me
>> to ignore. The same insinuation last occurring over some IP issue I
>> discovered with a release. Again crucification was the word used. So
>> either
>> stop the passive aggressive insinuations or just say what you're thinking
>> directly: I'm more than willing to work with you to be as gentle as you
>> want
>> me to be with you.
>>
>
> Alex, please *stop* being paranoid.
>
>
OK this is yet another insinuation. I don't appreciate then. In a dry non
accusatory fashion I should be able to point out technical trends made by
developers here that are not help us. This should not insight these kinds of
insinuations period.


> This was a general sentence targeting no one, as your initial mail
> contained a similar one :
>
> "...I'm not blaming anyone here so please don't get the wrong idea..."
>
> At some point, you have to realize that you are working in a community
> where most of us are not native english speakers, and that reflects in the
> sentence we use and the word we pick to express an idea.
>
>
OK we gotta stop using the lack of not being native speakers as an issue.

I don't like this excessively sensitive situation here where we have to keep
quite when something wrong happens in the code. It's something that will
inhibit progress in the end.


> If I have to call someone specifically names, I have some way to express
> that feeling. Look at my first sentence, for instance.
>
>
OK say it was general. Forget for now my taking it as if it were directed
towards me. But even generally it's making people in the community think
something is not right. Someone or something is crucifying. Why say that? It
just makes me not want to voice any sort of technical opinion even in the
lightest tone imaginable.

Why am I here then?  Why are you here if you're not going to grow together
from the good and the bad. We learn more from mistakes than from successes.

So let's go the opposite direction. Let's embrace our mistakes and learn
from them. Let's stop saying these kinds of negative words like crucify. We
can crucify if you like just to demonstrate the difference between the
gentle approach we have now.

Paranoia is also an insinuation and now it's being directed personally to
me. Look I'm sitting here and a few times I could have posted things that I
found to be wrong. I held back because of this environment where people want
to think their shit never stinks.

Fact is we all produce things that are not always right. Together we find
the mistakes, learn and progress. We can't be putting up barriers because to
that or else this code base will start to stink.

Thanks,
Alex

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Emmanuel Lécharny <el...@apache.org>.
On 3/9/11 2:29 PM, Alex Karasulu wrote:
> On Tue, Mar 8, 2011 at 6:12 PM, Alex Karasulu<ak...@apache.org>  wrote:
>
>> Let's be exact here. Are you saying that you were crucified?
>>
> I'd like a clear answer to this question.
>
> You seem to be saying this too frequently and on public mailing lists for me
> to ignore. The same insinuation last occurring over some IP issue I
> discovered with a release. Again crucification was the word used. So either
> stop the passive aggressive insinuations or just say what you're thinking
> directly: I'm more than willing to work with you to be as gentle as you want
> me to be with you.

Alex, please *stop* being paranoid.

This was a general sentence targeting no one, as your initial mail 
contained a similar one :

"...I'm not blaming anyone here so please don't get the wrong idea..."

At some point, you have to realize that you are working in a community 
where most of us are not native english speakers, and that reflects in 
the sentence we use and the word we pick to express an idea.

If I have to call someone specifically names, I have some way to express 
that feeling. Look at my first sentence, for instance.

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Tue, Mar 8, 2011 at 6:12 PM, Alex Karasulu <ak...@apache.org> wrote:

> On Tue, Mar 8, 2011 at 2:58 PM, Emmanuel Lecharny <el...@gmail.com>wrote:
>
>> On 3/8/11 9:09 AM, Pierre-Arnaud Marcelot wrote:
>>
>>> Hi Alex,
>>>
>>> That's something I had also noticed a few weeks ago.
>>> See [1].
>>>
>>> I wanted to decouple the SchemaObjects from the SchemaManager, but I
>>> guess I ran into other work and couldn't complete it.
>>>
>>> AFAIR there are around 5 methods in the SchemaObject interface/abstract
>>> class that needed to be removed and added in the SchemaManager utilities.
>>> I'm not sure they are that much used outside of SchemaManager related
>>> classes.
>>>
>>> On the lack of interfaces for schema objects, it's probably a little more
>>> complex to move them back and requires more refactoring from depending
>>> parts.
>>>
>>
>>
>>
> SNIP ...
>
>
>> This was a choice, may be not the best one, but it helped me to get this
>> refactoring done.
>
>
> It's not important what's done is done. What can we learn from that is the
> key. Having too many casts is not enough justification to remove these
> interfaces.
>
>
>> Remember that it took me 3 months to get the SchemaManager working fine in
>> the server, with the extra benefit of being usable in Studio, even if
>> Pierre-Arnaud has spent one week to get it working as expected for his need.
>>
>>
> Not saying we did not have gains. You did some great work there. We just
> want to maximize gains. This is not a crucifixion. We made a mistake, let's
> learn from it and move on.  I should have been more vocal at that time but I
> was not so I failed too just as much. But I am trying now. This is the best
> we can all do.
>
> No one can say we're perfect and we don't fall below optimal solutions. Yes
> we fall short sometimes and make the wrong choices. This does not have any
> moral connotation. All of us do that. The key is to learn from them and move
> on.
>
> So what did we learn from this? When in doubt leave the interface alone.
> Additional casting or and extra Java files in a congested package is not
> sufficient justification. We're not always going be able to work communally
> on everything. Otherwise everyone needs to know everything about everything
> right? So if we see each other learning together then we know we're healthy
> which builds trust and confidence.
>
> So let's carry on, this is not a crucifixion. Please let's not insinuate
> that one of us is trying to hit others over the head with a club. That just
> impedes constructive criticism which is important.
>
>  No need to crucify anyone for such things.
>>
>>
> Let's be exact here. Are you saying that you were crucified?
>

I'd like a clear answer to this question.

You seem to be saying this too frequently and on public mailing lists for me
to ignore. The same insinuation last occurring over some IP issue I
discovered with a release. Again crucification was the word used. So either
stop the passive aggressive insinuations or just say what you're thinking
directly: I'm more than willing to work with you to be as gentle as you want
me to be with you.

Thanks,
Alex

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Tue, Mar 8, 2011 at 2:58 PM, Emmanuel Lecharny <el...@gmail.com>wrote:

> On 3/8/11 9:09 AM, Pierre-Arnaud Marcelot wrote:
>
>> Hi Alex,
>>
>> That's something I had also noticed a few weeks ago.
>> See [1].
>>
>> I wanted to decouple the SchemaObjects from the SchemaManager, but I guess
>> I ran into other work and couldn't complete it.
>>
>> AFAIR there are around 5 methods in the SchemaObject interface/abstract
>> class that needed to be removed and added in the SchemaManager utilities.
>> I'm not sure they are that much used outside of SchemaManager related
>> classes.
>>
>> On the lack of interfaces for schema objects, it's probably a little more
>> complex to move them back and requires more refactoring from depending
>> parts.
>>
>
>
>
SNIP ...


> This was a choice, may be not the best one, but it helped me to get this
> refactoring done.


It's not important what's done is done. What can we learn from that is the
key. Having too many casts is not enough justification to remove these
interfaces.


> Remember that it took me 3 months to get the SchemaManager working fine in
> the server, with the extra benefit of being usable in Studio, even if
> Pierre-Arnaud has spent one week to get it working as expected for his need.
>
>
Not saying we did not have gains. You did some great work there. We just
want to maximize gains. This is not a crucifixion. We made a mistake, let's
learn from it and move on.  I should have been more vocal at that time but I
was not so I failed too just as much. But I am trying now. This is the best
we can all do.

No one can say we're perfect and we don't fall below optimal solutions. Yes
we fall short sometimes and make the wrong choices. This does not have any
moral connotation. All of us do that. The key is to learn from them and move
on.

So what did we learn from this? When in doubt leave the interface alone.
Additional casting or and extra Java files in a congested package is not
sufficient justification. We're not always going be able to work communally
on everything. Otherwise everyone needs to know everything about everything
right? So if we see each other learning together then we know we're healthy
which builds trust and confidence.

So let's carry on, this is not a crucifixion. Please let's not insinuate
that one of us is trying to hit others over the head with a club. That just
impedes constructive criticism which is important.

 No need to crucify anyone for such things.
>
>
Let's be exact here. Are you saying that you were crucified?

We can't have people accusing others of trying to crucifying people every
time they give constructive criticism to help put things on track.

I hope you understand where I am coming from here. I'm not trying to
belittle anyones involvement but just trying to increase efficiency. We have
lots of work to do so let's not be too sensitive and carry on with it.

Thanks,
Alex

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Emmanuel Lecharny <el...@gmail.com>.
On 3/8/11 9:09 AM, Pierre-Arnaud Marcelot wrote:
> Hi Alex,
>
> That's something I had also noticed a few weeks ago.
> See [1].
>
> I wanted to decouple the SchemaObjects from the SchemaManager, but I guess I ran into other work and couldn't complete it.
>
> AFAIR there are around 5 methods in the SchemaObject interface/abstract class that needed to be removed and added in the SchemaManager utilities.
> I'm not sure they are that much used outside of SchemaManager related classes.
>
> On the lack of interfaces for schema objects, it's probably a little more complex to move them back and requires more refactoring from depending parts.

Just for the record, the reason why we don't have anymore interfaces for 
AT, OC etc is dur to some heavy refactoring back in august 2009, when 
the Interfaces were just make it overly complex to get the schema 
manager refactored. We had classes  that were holding schema information 
AttributeTypeDescription), plus some other classes used in Studio, plus 
another class named AttributeTypeImpl.

Back then, removing the AttributeType interface was dictated by the need 
to simplify the merge of those 3 classes into one single class that can 
be used everywhere. Also this class was not expected to be exposed to 
the public.

This was a choice, may be not the best one, but it helped me to get this 
refactoring done. Remember that it took me 3 months to get the 
SchemaManager working fine in the server, with the extra benefit of 
being usable in Studio, even if Pierre-Arnaud has spent one week to get 
it working as expected for his need.

Now that we want to expose the SchemaManager to the users, sure, the 
lack of interface starts to hurt. It's most certainly time to get those 
interface back in the code, something that will cost some time, but at 
least, the current AT/OC... classes are quite clean, and such a 
refactoring should be easier to conduct than it was 2 years ago...

I want to state here that I haven't removed those interfaces because I 
'hate' interfaces, because it's simply not right. I just get rid of the 
casts I had to apply everywhere when we were using Interfaces, casts 
that were a PITA in the context of the initial SchemaManager refactoring.

Things change, decisions taken 2 years ago can appears now to be wrong, 
but the context has changed too. Back then, it was not *that* stupid...

I also want to say that I didn't do that in my corner, I think I 
carefully expressed the options I selected and informed the project 
about them. Anyone who could have thought about such a change to be a 
bad thing 2 years ago could have emitted an opinion. I don't remember 
having heard about any complaint. Now, I'm quite sure that with the huge 
number of modifications done every week, it's very hard to check 
everything, and some bad decisions will still go through into the code. 
That's life. No need to crucify anyone for such things.


-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Pierre-Arnaud Marcelot <pa...@marcelot.net>.
Hi Alex,

That's something I had also noticed a few weeks ago.
See [1].

I wanted to decouple the SchemaObjects from the SchemaManager, but I guess I ran into other work and couldn't complete it.

AFAIR there are around 5 methods in the SchemaObject interface/abstract class that needed to be removed and added in the SchemaManager utilities.
I'm not sure they are that much used outside of SchemaManager related classes.

On the lack of interfaces for schema objects, it's probably a little more complex to move them back and requires more refactoring from depending parts.

Tell me if I can be of any help about those two matters.

Regards,
Pierre-Arnaud

[1] - http://directory.markmail.org/thread/mq2yerlo7b7dcd4m


On 8 mars 2011, at 00:09, Alex Karasulu wrote:

> Hi all,
> 
> I just looked through the schema packages and noticed that it has
> become another hives nest of inter-dependency. I'm not blaming anyone
> here so please don't get the wrong idea. I just want to avoid these
> trends because they cause more complexity and lead more unnecessary
> work. Let me show y'all some code to be clear.
> 
> There once were clean simple schema entity interfaces like
> AttributeType that were used to shield the API from getting
> contaminated by irrelevant implementation methods and functionality.
> [0] shows an example of a clean interface which was there earlier that
> most of the code handled. This was removed and replaced by a class.
> Now look here [1] to see the big 1800 line file mixed with all sorts
> of functionality [1] like addToRegistries(). This method has no place
> in this object which is now used globally. As a result,
> interdependencies have increased through and through inside these
> packages as well as in the server which now depends on these out of
> place methods. It's going to be a PITA to clean this up and the work
> will be twice, maybe more, as hard as when the interfaces were
> removed. The rest of the code base now has come to depend on these
> non-essential methods specific to some function or use case associated
> with implementation details.
> 
> I'm trying to get some traction with making schema loadable and this
> is yet another surprise to have to contend with. Please let's not
> remove interfaces just because they seem unappealing. When in doubt,
> leave the interface where it is, it can't hurt, but the opposite can
> hurt a lot. I'm sitting here starring at this nest and wondering what
> the heck I should do first.
> 
> Best Regards,
> Alex
> 
> [0] - http://goo.gl/2j5dT
> [1] - http://goo.gl/G7wBV


Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Emmanuel Lécharny <el...@apache.org>.
On 3/8/11 12:38 AM, Alex Karasulu wrote:
> On Tue, Mar 8, 2011 at 1:22 AM, Emmanuel Lecharny<el...@gmail.com>  wrote:
>> On 3/8/11 12:09 AM, Alex Karasulu wrote:
>>> I'm sitting here starring at this nest and wondering what
>>> the heck I should do first.
>> Wait for M2 to be out ... :)
> Why?
>
> First I am in a personal branch and second I merged that last time to
> prep for M2 so nothing will be merged to impact the M2. This work is
> for M3. We already check pointed M2.
>
>> keep in mind that the SchemaManager and all the classes were modified in
>> order to allow a better schema handling.
> OK I'm not going to bother here. I'll just fix the problems I see.
>
> Now, we are facing some new issues
>> because we want to allow schema objects to be loadable, which is a different
>> target, and for sure needs some heavy refactoring.
> OK.
>
>> I suggest we close M2 now, and then discuss about what to do with the
>> SchemaManager.
> Again this has no bearing. Please see above.
Np at all. I thought you where working on trunks. No reason to stop 
anything if you are in a branch.

For the record, yes, we have to refactoring this code now that we are exposing the Schema.



-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Alex Karasulu <ak...@apache.org>.
On Tue, Mar 8, 2011 at 1:22 AM, Emmanuel Lecharny <el...@gmail.com> wrote:
> On 3/8/11 12:09 AM, Alex Karasulu wrote:
>>
>> I'm sitting here starring at this nest and wondering what
>> the heck I should do first.
>
> Wait for M2 to be out ... :)

Why?

First I am in a personal branch and second I merged that last time to
prep for M2 so nothing will be merged to impact the M2. This work is
for M3. We already check pointed M2.

> keep in mind that the SchemaManager and all the classes were modified in
> order to allow a better schema handling.

OK I'm not going to bother here. I'll just fix the problems I see.

Now, we are facing some new issues
> because we want to allow schema objects to be loadable, which is a different
> target, and for sure needs some heavy refactoring.

OK.

> I suggest we close M2 now, and then discuss about what to do with the
> SchemaManager.

Again this has no bearing. Please see above.

Regards,
Alex

Re: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType?

Posted by Emmanuel Lecharny <el...@gmail.com>.
On 3/8/11 12:09 AM, Alex Karasulu wrote:
> I'm sitting here starring at this nest and wondering what
> the heck I should do first.
Wait for M2 to be out ... :)

keep in mind that the SchemaManager and all the classes were modified in 
order to allow a better schema handling. Now, we are facing some new 
issues because we want to allow schema objects to be loadable, which is 
a different target, and for sure needs some heavy refactoring.

I suggest we close M2 now, and then discuss about what to do with the 
SchemaManager.


-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com