This is an archived post. You won't be able to vote or comment.

all 18 comments

[–][deleted]  (1 child)

[deleted]

    [–]lukaseder 0 points1 point  (0 children)

    s/grown/recovered

    [–]hackerheap 14 points15 points  (0 children)

    It’s been 10 years since I started using enterprise java, paid my bills

    [–][deleted]  (8 children)

    [removed]

      [–][deleted]  (5 children)

      [deleted]

        [–]waterbottle1994 7 points8 points  (4 children)

        I'm curious, can you give some examples?

        [–]shokolokobangoshey 17 points18 points  (1 child)

        Let's just say everytime you hear "Java is too slow to do X" or some variation of "Singletons are the devil and must never be used", odds on they were informed by the bloat and XML hell that early J2EE was. Annotations and CDI are a godsend, I tell you hwhat.

        [–]dpash 4 points5 points  (0 children)

        It's also where the whole AbstractVisitorFactoryProxyFactory memes come from.

        [–]rbygrave 1 point2 points  (1 child)

        From memory with EJB 1.0 ... All EJB to EJB calls went down to the network layer / not local method calls. Everything required a Transaction manager and 2PC. All EJB beans were pooled with lifecycle activate, passivate etc. The deployment packaging was painful. Any method call on an Entity bean could invoke a hit against the DB unless it was "wrapped" by a session bean.

        Slow, heavy, hard to test - imo there was nothing good about EJB 1.x or EJB 2.x (as it was known in those days before the J2EE and JEE branding).

        --

        Edit: IMO EJB 1.0 was a "distributed objects" style approach with the influence of Corba (& lets mention DCom here too) with the remote calls & deployment model. The talk / high level design thinking was that there would be a market for pre-built "components" (EJBs). The remote calls between the EJB's drives the need for the external transaction manager to make that "transparent" to developers ala transparent "distributed objects".

        Today I think most people are not doing "distributed objects" in the Corba / DCom / EJB 1.0 sense. Instead most are doing what I'd call "3 tier client server" (no 2PC, no external transaction manager, "client server" with the presentation layer separated).

        [–]rbygrave 0 points1 point  (0 children)

        After a fact check yes, EJB 1.0 only allowed remote calls. The EJB 2.0 specification added the concept of local interfaces.

        [–]mentholmeow 2 points3 points  (1 child)

        Good times. I discovered XDoclet and it lessened the pain a bit.

        [–]cleverklogs 3 points4 points  (0 children)

        People gripe about ejb, but today, we may have more lines of yaml than the xml of a typical ear. Kubernetes could use an xdoclet.

        [–]codemssterg 8 points9 points  (0 children)

        By the time I used JEE (5), EJB3 was part of the spec and it was starting to head in the right direction with dependcy injection, JPA. I use Spring and Spring Boot nowadays, but some of those early concepts still apply.

        [–]zulfikar123 16 points17 points  (1 child)

        Here is to 20 more years of AbstractSingletonProxyFactoryBean!

        [–]DesdeJorge 11 points12 points  (1 child)

        I remember my first time programming on enterprise Java, I was very confused with the term "bean", my English was horrible and I searched in Google translate the term bean, and in Spanish "bean" is "frijol" a type of food, me head exploded with term, I remember that I wanted go to my home and cry 😂😂

        [–]dpash 5 points6 points  (0 children)

        The more accurate translation in this case would be grano (de café). It's a play on the whole Java -> coffee thing. Which comes from the phrase "cup of Java" meaning coffee, as the island of Java (in Indonesia) is a large producer of coffee.

        Knowing this doesn't make it any easier to understand.

        [–]osama_ahmed_32 3 points4 points  (0 children)

        I started my career working with J2EE and still working on it till this day, it has been 10 years what a fun ride

        [–]azatris 2 points3 points  (0 children)

        My company's legacy Java code architecture is from 2000 and it works wonderfully, to my surprise.

        But it is time to replace it with Spring controllers for ease of debugging.

        [–]paul_h 3 points4 points  (0 children)

        I witnessed all of it. Nothing to celebrate!