Java Collections Framework Architectural Flaw

Here is this flaw (or miss) on design level:
public interface Set<E>
extends Collection<E>My opinion is that Set<E> should extend List<E> because a List, can BE also (or have the semantics of) a Set.
(After all a list CAN have distinct elements)
I.e.
List extends Collection
Set extends List
Is there some argument for this proposal ?
Edited by: javaUserMuser on Aug 13, 2008 4:04 PM

A Set can be a list, because, although the former has not an "order", its elements could be logically accessed by means of 1st, 2nd, 3rd etc.But a List is ordered by definition.
After all it has an iterator, which i dont like in general, because of its sequential access semanticsBut a List is ordered by definition.
and would prefer a List implementation (and its get(int) method),which provides random access...But a List is ordered by definition.
I.e. A Set extends the semantics of a List (which has 1st, 2nd, semantics, although not orderedBut a List is ordered by definition.
the order i talk about is arbitrary)But a List is ordered by definition.
...and of course the Set has this property too... why not ?But a List is ordered by definition.
A Set could be possibly passed to a method when a List was required, and function properlyBut a List is ordered by definition.
there is this substitution principle satisfied .. provided that:
List Javadoc:
An ordered collection (also known as a sequence)...this is not present there.But a List is ordered by definition.
i.e. a subset of all List implementations should be ordered. I.e. A list should offer 1st, 2nd semantics and not (necessarily) Comparable one, But a List is an ordered sequence, by definition.
I.E. A set should BE an unordered List. this is what I mean
lets brainstormLet's not.

Similar Messages

  • Redesigning the Collections Framework

    Hi!
    I'm sort of an experienced Java programmer, in the sense that I program regularly in Java. However, I am not experienced enough to understand the small design specifics of the Collections Framework (or other parts of Javas standard library).
    There's been a number of minor things that bugged me about the framework, and all these minor things added up to a big annoyance, after which I've decided to (try to) design and implement my own framework.
    The thing is however, that since I don't understand many design specifics about the Collection Framework and the individual collection implementations, I risk coming up short with my own.
    (And if you are still reading this, then I thank you for your time, because already now I know that this entry is going to be long. : ) )
    Since I'm doing my Collection framework nearly from scratch, I don't have to worry too much about the issue of backwards compatibility (altough I should consider making some parts similar to the collection framework as it is today, and provide a wrapper that implements the original collection interfaces).
    I also have certain options of optimizing several of the collections, but then again, there may be very specific design issues concerning performance and usability that the developers of the framework (or other more experienced Java progammers) knew about, that I don't know.
    So I'm going to share all of my thoughts here. I hope this will start an interesting discussion : )
    (I'm also not going to make a fuss about the source code of my progress. I will happily share it with anyone who is interested. It is probably even neccessary in order for others to understand how I've intended to solve my annoyances (or understand what these annoyances were in the first place). ).
    (I've read the "Java Collections API Design FAQ", btw).
    Below, I'm going to go through all of the things that I've thought about, and what I've decided to do.
    1.
    The Collections class is a class that consists only of static utility methods.
    Several of them return wrapper classes. However the majority of them work on collections implementing the List interface.
    So why weren't they built into the List interface (same goes for methods working only with the Collection interface only, etc)? Several of them can even be implemented more efficiently. For example calling rotate for a LinkedList.
    If the LinkedList is circular, using a sentry node connecting the head and tail, rotate is done simply by relocating the sentry node (rotating with one element would require one single operation). The Collections class makes several calls to the reverse method instead (because it lacks access to the internal workings of a LinkedList).
    If it were done this way, the Collections class would be much smaller, and contain mostly methods that return wrapped classes.
    After thinking about it a while, I think I can answer this question myself. The List interface would become rather bloated, and would force an implementation of methods that the user may not need.
    At any rate, I intend to try to do some sort of clean-up. Exactly how, is something I'm still thinking about. Maybe two versions of List interfaces (one "light", and the other advanced), or maybe making the internal fields package private and generally more accessible to other package members, so that methods in other classes can do some optimizations with the additional information.
    2.
    At one point, I realized that the PriorityQueue didn't support increase\decrease key operations. Of course, elements would need to know where in the backing data structure it was located, and this is implementation specific. However, I was rather dissapointed that this wasn't supported somehow, so i figured out a way to support this anyway, and implemented it.
    Basically, I've wrapped the elements in a class that contains this info, and if the element would want to increase its key, it would call a method on the wrapping class it was contained in. It worked fine.
    It may cause some overhead, but at least I don't have to re-implement such a datastructure and fiddle around so much with the element-classes just because I want to try something with a PriorityQueue.
    I can do the same thing to implement a reusable BinomialHeap, FibonacciHeap, and other datastructures, that usually require that the elements contain some implementation-specific fields and methods.
    And this would all become part of the framework.
    3.
    This one is difficult ot explain.
    It basically revolves around the first question in the "Java Collections API Design FAQ".
    It has always bothered me that the Collection interface contained methods, that "maybe" would be implemented.
    To me it didn't make sense. The Collection should only contain methods that are general for all Collections, such as the contains method. All methods that request, and manipulate the Collection, belonged in other interfaces.
    However, I also realized that the whole smart thing about the current Collection interface, is that you can transfer elements from one Collection to another, without needing to know what type of Collection you were transferring from\to.
    But I still felt it violated "something" out there, even if it was in the name of convenience. If this convenience was to be provided, it should be done by making a separate wrapper interface with the purpose of grouping the various Collection types together.
    If you don't know what I'm trying to say then you might have to see the interfaces I've made.
    And while I as at it, I also fiddled with the various method names.
    For example, add( int index, E element), I felt it should be insert( int index, E element). This type of minor things caused a lot of confusion for me back then, so I cared enough about this to change it to somthing I thought more appropriate. But I have no idea how appropriate my approach may seem to others. : )
    4.
    I see an iterator as something that iterates through a collection, and nothing else.
    Therefor, it bothered me that the Iterator interface had an optional remove method.
    I myself have never needed it, so maybe I just don't know how to appreciate it. How much is it used? If its heavily used, I guess I'm going to have to include it somehow.
    5.
    A LinkedList doesnt' support random access. But true random access is when you access randomly relative to the first index.
    Iterating from the first to the last with a for statement isn't really random access, but it still causes bad performance in the current LinkedList implementation. One would have to use the ListIterator to achieve this.
    But even here, if you want a ListIterator that starts in the middle of the list, you still need to traverse the list to reach that point.
    So I've come up with LinkedList that remembers the last accessed element using the basic methods get, set, remove etc, and can use it to access elements relatively from it.
    Basically, there is now an special interal "ListIterator" that is used to access elements when the basic methods are used. This gives way for several improvements (although that may depend how you look at it).
    It introduces some overhead in the form of if-else statemenets, but otherwise, I'm hoping that it will generally outperform the current LinkedList class (when using lists with a large nr of elements).
    6.
    I've also played around with the ArrayList class.
    I've implemented it in a way, that is something like a random-access Deque. This has made it possible to improvement certain methods, like inserting an element\Collection at some index.
    Instead of always shifting subsequent element to the right, elements can be shifted left as well. That means that inserting at index 0 only requires a single operation, instead of k * the length of the list.
    Again, this intrduces some overhead with if-else statements, but is still better in many cases (again, the List must be large for this to pay off).
    7.
    I'm also trying to do a hybrid between an ArrayList and a Linked list, hopefully allowing mostly constant insertion, but constant true random access as well. It requires more than twice the memory, since it is backed by both an ArrayList and a LinkedList.
    The overhead introduced , and the fact that worst case random access is no better than that of a pure LinkedList (which occurs when elelements are inserted at the same index many times, and you then try to access these elements), may make this class infeasible.
    It was mostly the first three points that pushed my over the edge, and made me throw myself at this project.
    You're free to comment as much as you like.
    If no real discussion starts, thats ok.
    Its not like I'm not having fun with this thing on my own : )
    I've started from scratch several times because of design problems discovered too late, so if you request to see some of the source code, it is still in the works and I would have to scurry off and add a lot of java-comments as well, to explain code.
    Great. Thanks!

    This sort of reply has great value : )
    Some of them show me that I need to take some other things into consideration. Some of them however, aren't resolved yet, some because I'm probably misunderstanding some of your arguments.
    Here goes:
    1.
    a)
    Are you saying that they're were made static, and therefor were implemented in a utility class? Isn't it the other way around? Suppose that I did put them into the List interface, that would mean they don't need to be static anymore, right?
    b)
    A bloated List interface is a problem. Many of them will however have a default not-so-alwyas-efficient implementation in a abstract base class.
    Many of the list-algorithms dump sequential lists in an array, execute the algorithm, and dump the finished list back into a sequential list.
    I believe that there are several of them where one of the "dumps" can be avoided.
    And even if other algorithms would effectively just be moved around, it wouldn't neccesarily be in the name of performance (some of them cannot really be done better), but in the name of consistency\convenience.
    Regarding convenience, I'm getting the message that some may think it more convenient to have these "extra" methods grouped in a utility class. That can be arranged.
    But when it comes to consistency with method names (which conacerns usability as well), I felt it is something else entirely.
    For example take the two methods fill and replaceAll in the Collections class. They both set specific elements (or all of them) to some value. So they're both related to the set method, but use method names that are very distinguished. For me it make sense to have a method called setAll(...), and overload it. And since the List interface has a set method, I would very much like to group all these related methods together.
    Can you follow my idea?
    And well, the Collections class would become smaller. If you ask me, it's rather bloated right now, and supports a huge mixed bag of related and unrelated utitlity methods. If we should take this to the extreme, then The Collections class and the Arrays class should be merged.
    No, right? That would be hell : )
    2,
    At a first glance, your route might do the trick. But there's several things here that aren't right
    a)
    In order to delete an object, you need to know where it is. The only remove method supported by PriorityQueue actually does a linear search. Increase and decrease operations are supposed to be log(n). Doing a linear search would ruin that.
    You need a method something like removeAt( int i), where i would be the index in the backing array (assuming you're using an array). The elemeny itself would need to know that int, meaning that it needs an internal int field, even though this field only is required due to the internal workings of PriorityQueue. Every time you want to insert some element, you need to add a field, that really has nothing to with that element from an object-oriented view.
    b)
    Even if you had such a remove method, using it to increase\decrease key would use up to twice the operations neccesary.
    Increasing a key, for example, only requires you to float the element up the heap. You don't need to remove it first, which would require an additional log(n) operations.
    3.
    I've read the link before, and I agree with them. But I feel that there are other ways to avoid an insane nr of interfaces. I also think I know why I arrive at other design choices.
    The Collection interface as it is now, is smart because it can covers a wide range of collection types with add and remove methods. This is useful because you can exchange elements between collections without knowing the type of the collection.
    The drawback is of course that not all collection are, e.g modifiable.
    What I think the problem is, is that the Collection interface is trying to be two things at once.
    On one side, it wants to be the base interface. But on the other side, it wants to cast a wide net over all the collection types.
    So what I've done is make a Collection interface that is infact a true base interface, only supporting methods that all collection types have in common.
    Then I have a separate interface that tries to support methods for exchanging elements between collections of unknown type.
    There isn't neccesarily any performance benefit (actually, it may even introduces some overhead), but in certainly is easier to grasp, for me at least, since it is more logically grouped.
    I know, that I'm basically challenging the design choices of Java programmers that have much more experience than me. Hell, they probably already even have considered and rejected what I'm considering now. In that case, I defend myself by mentioning that it isn't described as a possiblity in the FAQ : )
    4.
    This point is actually related to point 3., becausue if I want the Collection interface to only support common methods, then I can't have an Iterator with a remove method.
    But okay....I need to support it somehow. No way around it .
    5. 6. & 7.
    The message I'm getting here, is that if I implement these changes to LinkedList and ArrayList, then they aren't really LinkedList and ArrayList anymore.
    And finally, why do that, when I'm going to do a class that (hopefully) can simulate both anyway?
    I hadn't thought of the names as being the problem.
    My line of thought was, that okay, you have this arraylist that performs lousy insertion and removal, and so you avoid it.
    But occasionally, you need it (don't ask me how often this type of situation arises. Rarely?), and so you would appreciate it if performed "ok". It would still be linear, but would often perform much better (in extreme cases it would be in constant time).
    But these improvements would almost certainly change the way one would use LinkedList and ArrayList, and I guess that requires different names for them.
    Great input. That I wouldn't have thought of. Thanks.
    There is however some comments I should comment:
    "And what happens if something is suibsequently inserted or removed between that element and the one you want?"
    Then it would perform just like one would expect from a LinkedList. However if that index were closer to the last indexed position, it would be faster. As it is now, LinkedList only chooses either the first index or the last to start the traversal from.
    If you're working with a small number of elements, then this is definitely not worth it.
    "It sounds to me like this (the hybrid list) is what you really want and indeed all you really need."
    You may be right. I felt that since the hybrid list would use twice as much memory, it would not always be the best choice.
    I going to think about that one. Thanks.

  • Java technology/framework suggestions required for solution.

    Hi,
    I'm a C/PRO*C developer (for the past 12 years) and have been asked to do some Java ( which I haven't touched for 13 years).
    I would like you input on the 'correct' solution (kind of like an architectural overview) of the technologies I should be looking at.
    There are two parts to this.
    I need to write a web browser/Application that picks up a file locally on windows PC and reads the contents of the file to populate some url parameters which go to a specific web sevice via HTTPS.
    I then need a web service or some kind of servlet (I guess) that on receipt of the request by the client then stores (to a database) the request for auditing and then creates a soap message (using the data receieved) to an external third party( WSDL provided by thirdpparty). Once the thirdparty responds the web server then generates a web page for the client which includes a number of options and details retrieved from the thirdparty are displayed and on the client selecting them the result is sent to the server and the selected option is stored.
    Part of this must be that the server must be capable of running as a number of instances. It must be highly secure.
    What java technologies/frameworks should be looked out? Is my very rough design fundamentally floored?
    Thanks in advance.
    OFN

    OldFashionedNewbie wrote:
    So should I use servlets as opposed to JSP? or JCF?Servlets are not opposed to JSP. (JCF? Do you mean JSF?) You can and would use both Servlets and JSP, however, I have grown to believe that JSPs are awful and you should use Velocity instead. From what I've heard of JSF, I'd avoid that too.
    Essentially then create a servlet that accepts HTTP request and manipulates a call to the thirdparty, audits data to database, and returns a page back to client which then accepts the option.The server accepts the HTTP request and deals with that lower-level stuff for you, then it invokes your servlet.
    The servlet shouldn't call the third party, etc.; it should invoke other code (that you'd write) to do all that. You need a layer of abstraction between your business logic and the web tier. Among other things this will make it much easier to test.
    If I were wanting to run this as a in multiple instances then I create a connection pool to the database. But could multiple app instances be able to use one network connection to the ThirdParty?I suppose they could but it seems like more trouble than it's worth and a whole layer of infrastructure that I wouldn't bother with unless (a) you've demonstrated that it's a problem during profiling, and (b) you find that there's some preferably open-source library that handles this for you.

  • Use of transient fields in Collections Framework?

    Hi all,
    I've been playing around with the reflection API for introspecting various members of the Collection Framework (CF).
    It turns out that many of the fields used by the members of the CF use the transient fields for their data-storage. For example: ArrayLists stored their elements in a transient field named elementData.
    Following the Java Language Specification, the transient fields are therefore not part of the object's persistent state. As a consequence, it is "not" possible to make such an object persistent (although, from what I understood, you could serialize such an object including its element data).
    Is there any particular reason why those fields are defined as transient?

    Hi all,
    I've been playing around with the reflection API for
    introspecting various members of the Collection
    Framework (CF).
    It turns out that many of the fields used by the
    members of the CF use the transient fields for
    their data-storage. For example: ArrayLists stored
    their elements in a transient field named
    elementData.
    Following the Java Language Specification, the
    transient fields are therefore not part of the
    object's persistent state. As a consequence, it is
    "not" possible to make such an object persistent
    (although, from what I understood, you could serialize
    such an object including its element data).
    Is there any particular reason why those fields are
    defined as transient?You need to distinguish between the data logically contained by a Collections object (or indeed any other), and how that data is represented both in memory, and in the persisted form. A class marks a field transient simply to inform the default serialization mechanism that the field does not form part of the persistent representation. Typically this is either because it is only used for cacheing purposes, or because the class itself takes responsibility for the persisted form.
    The Collections classes often have a complexity in their memory representation that is related to their performance requirements, but which serves no purpose in their persisted form. Consider a TreeMap, for example. Its memory representation involves a tree, but the only things that need to be persisted are the key/value pairs. Persisting the tree would be wasteful in both time and peristent storage.
    Sylvia.

  • The Collections Framework

    When I first learned the java Collectins framework, I was struck by its elegance.I was also impressed by the Sun advice: use thisframework, not the older one.
    Sun has now gone on to extend the framework by making it desirable to add object descriptions.This ,to me is increasing the amount of stuff I have to learn without helping me in any great way ( A programmer should know what object he is putting in a Collection).
    I had hoped that Sun would add the beautiful "store' and "load" methods of the Properties class into its HashSet (although Properties now extends HashSet it's not quite the same thing).
    More importantly, once you start coding on the Server side, you can't get away from enumerations which I thought would be obsolete by now,given the advantage of iterators.
    Any comments?

    When I first learned the java Collectins framework, I
    was struck by its elegance.I was also impressed by
    the Sun advice: use thisframework, not the
    older one.
    Sun has now gone on to extend the framework by making
    it desirable to add object descriptions.This
    ,to me is increasing the amount of stuff I have to
    learn without helping me in any great way ( A
    programmer should know what object he is putting in a
    Collection).What are you talking about? Generics? You don't have to use them, and if you do, sometimes it's nice to be able to get rid of all the casting.
    I had hoped that Sun would add the beautiful "store'
    and "load" methods of the Properties class into its
    HashSet (although Properties now extends HashSet it's
    not quite the same thing).What for? HashMaps are basically serializable, but you cannot guarantee them to contain non-serializable data. So any attempt to store them could fail. Properties OTOH only contain Strings.
    More importantly, once you start coding on the Server
    side, you can't get away from enumerations which I
    thought would be obsolete by now,given the advantage
    of iterators.
    Any comments?They are obsolete. Read the Enumeration API - use of Iterator is encouraged.

  • Why new collection framework

    can somebody tell me Why sun people has created new collection framework and restructured all the classes and interfaces?

    Please refer to:
    http://java.sun.com/j2se/1.4.2/docs/guide/collections/overview.html
    http://java.sun.com/docs/books/tutorial/collections/index.html

  • One to many relationship using java collections

    I am facing issue on how to store and then retrieve data . In my program which is simple java class i am retrieving data at 3 places from an xml. i need to store this temporarly in particular fashion as data is related and needed to be used later on at end program to generate report.
    first data i am retireving is employee names eg Tom , Reggie, Martha.
    Second data is department (Each employee belongs to 1 or many department ) so in this case
    Tom : Billing
    Reggie : Admin , HR
    Martha : IT
    Third data is Department number (This has 1 : 1 relationship with Department )
    Billing :01
    Admin :02
    HR:03
    IT:04
    So when i am parsing xml first i am getting employee data, then department and lastly department number. I need to store it in collection in such way later on i can retireve and link data and use it.....
    Which java collections i should use....
    Any hints or guidance ....

    Well, the simplest approach is to initially load the employees objects into a List<Employee>. Initially they store the department number only. Then load the departments, probably into a Map<Integer, Department>. Having popluated such a map you then loop through the Employee list, connecting looking up the deparment number in the map and connecting Employee to Department as you wish. (An Employee would probably had a reference to the Department, the Department might contain a List<Employee>).
    The implementations to use depend on how you'll use them. HashMaps are faster than TreeMaps, but a TreeMap orders. LinkedLists are faster to process in sequence than ArrayList, slower to process at random.

  • Why hashMap is not the part of collection framework

    why hashMap is not the part of collection framework ??
    why Map start its own new hierarchy??
    thanks

    A Map is not simply a collection of stuff, it is a mapping from stuff to stuff.
    It doesn't make any sense to "add stuff to a map", unless you tell it both a key and a value.
    It doesn't make any sense to ask "does this contain stuff", unless you tell it to look in its keys or in its values.
    Those (and similar) reason explain why a Map is not a Collection.
    Note that there are views of the keys and the values that do behave like Collections (for example you can take the keys() view of the Map and tell it to remove stuff from it and it will do what you'd expect). But the Map as a whole is not a Collection of stuff. It is a mapping of stuff.
    (I hereby declare "stuff" to be a technical term).

  • SAP data collection framework - owner change

    Hi,
    in the data collection framework there is an owner assigned to all data collectors. In general the owner is the SID system itself.
    If another system (i.e. solman) is connected to the system, the owner of the data collector changes to that system.
    The data collection does not work any longer and creates a lot of errors.
    I can change back the owner, but it changes immediately to the connected system.
    Why does the data collector not work with the "foreign" owner? And why does the owner change at all?
    Best regards
    Arne

    Dear Mr. Knoeller,
    Your SAP_BASIS SP and release would be helpful, both for SolMan and the managed system.
    Until then, could you please check the following notes and KBAs, in this order:
    1927012 - SYB: DBACockpit shows warnings about data collectors not
    being properly set up or having a different version
    1972114 - SYB: Error in DCF ownership transfer - should solve your issue in my opinion
    1712802 - SYB: Change ownership of Data Collection Framework /
    ATM
    1623182 - SYB: Authorization issues in DBACockpit
    In case this is a test system, if the mentioned notes do not offer you a propper resolution, I would also drop all the collectors (Framework Collecter would be the last one, of course) and reassign it to Solution Manager. This also depends on your NW release, SP and DBA Cockpit rellease.
    Relevant notes regarding DBA Cockpit version known by me:
    1757928 - SYB: DBA Cockpit Release Notes 7.02 SP11, 7.30 SP6, 7.31
    SP2
    1758182 - SYB: DBA Cockpit Release Notes 7.02 SP12, 7.30 SP8, 7.31
    SP5
    1758496 - SYB: DBA Cockpit Release Notes 7.02 SP13, 7.30 SP9, 7.31
    SP7
    1814258 - SYB: DBA Cockpit Release Notes 7.02 SP14, 7.30 SP10, 7.31
    SP9, 7.40 SP4
    Kind Regards,
    Ionut

  • Possible to keep contents of Java Collection after closing program??

    Hiya
    Is there any classes in the java library that allows you to save contents of a collection such as HashMap/ArrayList etc into a so called offline collection so that next time when start up of program the contents wont disappear? Because i know when you close a program, the contents of the collections is obviously discarded and resetted for next start up of the program.
    Or is there a way to do that?
    In general i want to keep contents that are in a java collection during its use in a program session so that next time starting the program up again the collection content is still there.
    Thanks.

    Also, remember when u serialize a class every element of it should be serializable .What happens if the class elements not all are serializable? Does that mean i cant serialise that class?
    *all i want is to serialise a class which has a HashMap. The hashmap is the object which i want to serialise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Java Media Framework fails on Windows 7

    I wrote a Java program to manage and play my MP3 files. This program works fine on Windows XT and Windows Vista but does not work on the new laptop I just purchased with Windows 7. The Java Media Framework cannot play my MP3 files running on Windows 7. Does anyone know of a fix? I saw some very old forum posts where the poster asked if anyone knew how to obtain the source code for the Java Media Framework. If I could get my hands on the source, I would debug the problem and provide the fix to the Java community. So does anyone know of a fix to Windows 7 problems or know how to get the Java Media Framework source code????

    I believe you are right. I didn't know how much native support the JMF code requires but that must be the problem because it doesn't work on Windows 7. I think I would get some other error if the native libraries needed by JMF were not available on Windows 7. Appears that the native code is invoked but fails for some reason resulting in the JMF ControllerEventError that I get when attempting to play my MP3 files. I always had an error on a very few MP3 files that I have downloaded using LimeWire but the songs were playable by Windows Media. So whatever native support JMF uses, it is not the same as Windows Media or JMF is just not using the native MP3 support correctly. I guess I will just have to keep my Music Library on one of my older computers and not use my Java program on Windows 7 to play my MP3 files. Do you have any idea if the programmers who wrote the JMF code are still maintaining it? Perhaps they would be interested in fixing the Windows 7 problem in a new release??

  • Support for Java Activation Framework?

    Hi,
    Can anyone quickly tell me which version of JAF (java activation framework)in
    WLS 7.0 ?
    thanks a lot in advance
    manoj

    Hello Kumar,
    Yes, these are part of HTTP 1.1 extensions. In case this is not currently supported, would really appreciate if you could let me know if it is planned in the future releases.
    Regards,
    Prasad Shetty
    Kumar Allamraju <[email protected]> wrote in message news:[email protected]..
    Are these extensions part of HTTP 1.1?
    Prasad Shetty wrote:
    Hi,
    I need to use some headers defined in HTTP Extension Framework
    (RFC 2274). Does Weblogic provide support for this extension
    framework ? If so which version of Weblogic should i be using ?
    Thanks & Regards,
    Prasad Shetty
    [att1.html]

  • Which is the best java /j2ee framework

    Hi all
    Anyone can tell me which framework is the best java/j2ee framework? and Which framework is the best implementation of the core j2ee pattern?
    Thanks

    thanks for the support.
    now on to the other correct answers for this thread:
    which is the best IDE: the one in March
    which is the best TV show: Welcome Back Kotter
    radio show: none, that's why t.v. was invented
    song of all time: 'Afternoon Delight' by Starland
    Vocal Band
    dlgrasseNow here I would disagree
    which is the best TV show: Everybody loves Raymond
    radio show: none, Howard Stern
    song of all time: Hotel California
    &#9824

  • Suitability of Java EE Connector Architecture

    Hi
    I'm designing the architecture for an enterprise system which will be essentially "information and control" in nature, in that it will be required to interact with a large number of external systems that will provide/accept information and/or accept control requests. For example, my system will be connected via TCP to a number of devices that are constantly feeding in realtime information, and will also be connected via UDP to a number of devices that can be controlled. For each interface, the message transfer/content protocol will generally be a proprietary format. There will be any number of such external systems using any number of different message protocols.
    My system will use Java EE technology. My understanding of the Java EE Connector Architecture (JCA) is that it is intended to support integration between Java EE app servers and EISs. What I'm wondering is whether in my environment, I could/should consider my "external systems" to be EISs. Looking at the JCA spec and elsewhere, a typical EIS is an ERP or a mainframe transaction processing system or a legacy database - whereas my external systems are just "things" with which my system will exchange messages. Are the two things the same? Is it practical to go for a JCA solution on the assumption that:
    - I'll have to write all of my own resource adaptors, one for each type of interface;
    - I can dispense with a lot of the 'fancy' JCA features such as transactions and security (if I can see no need for them).
    Any suggestions or guidance gratefully received.

    Yes, your architecture is well suited to the java connector approach. It doesn't really
    matter whether your backend external system is categorized as an "EIS". The fact
    that it communicates via a proprietary format means you don't want to have to
    write application code in a Java EE component that directly processes it. The
    advantage of the inbound portion of the Java Connector architecture is that it
    lets you plug in a piece of system code specifically tailored to communicate with
    your backend system. Because it's a piece of system code, you have access to
    many lower-level plumbing services such as threads that would not be available
    to application code.
    Likewise, once you process the appropriate lower-level communication details,
    it's much more desirable to delegate to an application component in the
    form of a Message-Driven bean that can then perform the business logic
    needed in the enterprise tier.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Java Caching Framework

    Hi All,
    I m in process of evaluating some open source java caching framework which can help our web application to reduce response time.
    Though i have some open source caching framework in my list like
    JCS
    OSCache
    JOCache
    But i have never used any one of the caching framework.If any one in the group have used them in past or is working on some open source based framework,please do share there experience so that it can help us in deciding the best available solution.
    Thanks in advance
    -Umesh

    You may want to check out Hazelcast . It is an open source distributed, transactional distributed cache for Java. Hibernate second level cache plug-in is also available .
    Hazelcast is released under Apache license. It also have distributed lock, topic, multimap, queue and executor service implementations. [This 10 minute video|http://www.hazelcast.com/screencast.jsp] is very good to get started.
    -talip
    Edited by: talip_ozturk on May 2, 2010 1:59 PM
    Edited by: talip_ozturk on May 2, 2010 2:16 PM

Maybe you are looking for

  • Fcp 7.0.3 won't open

    Using fcp 7.0.3. When I open it quits stating a problem with Boris continuum Shaders plug-in. Any suggestions?

  • Thanks for the help; new problem with printer

    Thanks to those who replied to my pleas for help.  I was finally successfully in connecting my router and can now access the internet from both computers; HOWEVER, now I cannot get my printer to work from the computer that it is not hard wired to.  I

  • Hwo to see the Consumed matererial in sap

    Dear Gugrus,                     Is there any report to see the high and low consumed materials in SAP. regards, R.Rajakarthik

  • Where is the Tools tab on Firefox 5.0 so I can make Google my homepage?

    I want Google as my homepage, but can't find the Tools tab on the latest Firefox. My husband disliked the new browser so much, he reinstalled the older version of Firefox. I'm sure it's something simple, but I'm still in the intermediate stage of com

  • Unable to Sync my iPhone with my iTunes on my Windows 7 laptop

    My iphone4 is not recognized on itunes on my windows 7 computer, so they won't sync. My computer only recognizes my phone as a camera and will sync photos automatically, but not my music. Anyone else have this problem?  I cannot manually sync either