Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-platform-dev] [EXTERNAL] Re: Seeking 1:1 with Scott Stark to get wave list into steady state (Betriebsfähigwellebeschreibungausgabe)
  • From: Edward Burns <Edward.Burns@xxxxxxxxxxxxx>
  • Date: Thu, 20 Jul 2023 02:21:47 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SvjwjnlCS5orbYFBsCFFQqEePFLguEq9Jg0iwRU2ai0=; b=W5j0oRCHuG8ARVAEuQKOYFQ6z4bXXJqDaFI19YRNjZnkJqdtbs/pY9M4mOeBUzC8mEXwWSIH3weICykvhWAhFvVlgqUS32LcwSEDLvihKjHIqAXwiSpE7xvUJim8GNBqhpF0IKHRWXV/d6H05zr3llMt0gB7vAT/x2bYtGqHLyXIzfFSc6uzIEKCVRtnFe1rl3IiIYOrfj8BCZ+qwWnQm8oQMMwdbZ1Fngea/sYT4PNfJRXD8SpJaLsz2Py0Ne/K0kRIGtx4iiqrhYxozJF36+PnSIGIpq+PbYnmHaroPk/a8R38YYggcbHW2yKpKahXXGPrNrCZzLtVL4nTN/l5Qg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=la3bTdfvwb8MFCYkgskJM6fGAhqyPR7mfh/meqi0hHrSgJV4u0mrzTEaILdX/snVys12aSAeZx/Ga2HeS/UEODby2SiiEymlZhmC7O93j6lgSGIJ2ntBgfbOX/HwQCIxIbFAtS7iFsPz/4Z08DWnum3UPuudOnT5Jq5nXEXBCHcgf9EH8JvGIx8lqbwuqSPrVV36xibNzlc7ZZB1+hYSjxnYJyC7vWp+aAdgQPPUdhxwI3KEuZxAugxLIGOVjRTPFKJYcI57lJRMdLaarlatRU3c4wfOfE7QIxlxxFbI5O7cTP+LtnFl0KfWMMrwUKvCn6IAUPL0W7R+hu+if1OGAw==
  • Delivered-to: jakartaee-platform-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/jakartaee-platform-dev/>
  • List-help: <mailto:jakartaee-platform-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev>, <mailto:jakartaee-platform-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/jakartaee-platform-dev>, <mailto:jakartaee-platform-dev-request@eclipse.org?subject=unsubscribe>
  • Msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=a8e6f6e2-bad8-4606-a041-221750b69c80; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2023-07-20T02:20:56Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
  • Thread-index: AQHZtpOzNFvCcje3E0aTPFPS2mVQqK/BT0WAgAAAO9CAAJglgIAADNRw
  • Thread-topic: [jakartaee-platform-dev] [EXTERNAL] Re: Seeking 1:1 with Scott Stark to get wave list into steady state (Betriebsfähigwellebeschreibungausgabe)

Such things as you list are way far down the road. I’m just talking to Scott as a follow up to my talk to Jan on Friday about circular dependencies and what we can do about them in EE 11, if anything.

 

Thanks,

 

Ed

 

 

| edburns@xxxxxxxxxxxxx | office: +1 954 727 1095

| Calendar Booking: https://aka.ms/meetedburns

|

| Please don't feel obliged to read or reply to this e-mail outside

| of your normal working hours.

|

| Reply anonymously to this email: https://purl.oclc.org/NET/edburns/contact

 

From: hantsy bai <hantsy@xxxxxxxxx>
Sent: Wednesday, July 19, 2023 9:35 PM
To: jakartaee-platform developer discussions <jakartaee-platform-dev@xxxxxxxxxxx>
Cc: Scott Stark <sstark@xxxxxxxxxx>; Edward Burns <Edward.Burns@xxxxxxxxxxxxx>
Subject: Re: [jakartaee-platform-dev] [EXTERNAL] Re: Seeking 1:1 with Scott Stark to get wave list into steady state (Betriebsfähigwellebeschreibungausgabe)

 

What does this mean? CDI will be split into new small specs? CDI core will take over JSR 330 and work on Java SE?

---

Regards,

Hantsy Bai

Self-employed consultant, fullstack developer, agile coach, freelancer/remote worker

GitHub: https://github.com/hantsy

Twitter: https://twitter.com/@hantsy

Medium: https://medium.com/@hantsy

 

 

On Thu, Jul 20, 2023 at 12:31 AM Edward Burns via jakartaee-platform-dev <jakartaee-platform-dev@xxxxxxxxxxx> wrote:

Thanks. I really appreciate it.

 

Can you please select a 30 minute window to meet 1:1 with me using the Calendar Booking link in my .signature?

 

Ed

 

 

| edburns@xxxxxxxxxxxxx | office: +1 954 727 1095

| Calendar Booking: https://aka.ms/meetedburns

|

| Please don't feel obliged to read or reply to this e-mail outside

| of your normal working hours.

|

| Reply anonymously to this email: https://purl.oclc.org/NET/edburns/contact

 

From: Scott Stark <sstark@xxxxxxxxxx>
Sent: Wednesday, July 19, 2023 12:30 PM
To: Edward Burns <Edward.Burns@xxxxxxxxxxxxx>
Cc: jakartaee-platform-dev@xxxxxxxxxxx
Subject: [EXTERNAL] Re: Seeking 1:1 with Scott Stark to get wave list into steady state (Betriebsfähigwellebeschreibungausgabe)

 

A CDI issue has been created to discuss how we might move forward with the current circular references:

 

On Fri, Jul 14, 2023 at 2:44 PM Edward Burns <Edward.Burns@xxxxxxxxxxxxx> wrote:

Hello Scott,

 

Sending to list for transparency.

 

Jan and I met 1:1 for over ninety minutes today and I have a better understanding of the challenges in arriving at a clean Wave list. As spec lead for CDI, I believe your buy-in is critical to improving the situation.

 

My notes from the meeting with Jan are in Task 98: Ed has 1:1 with Jan to understand how to get the Wave Discussion into a steady state.  and included below for convenience.

 

I hope you have some time on your Monday to meet with me 1:1 so I can be better prepared for the meeting on Tuesday. Please select a time from https://aka.ms/meetedburns if you have availability on your Monday. I am also available to meet Monday evening until 21:00 EDT.

 

I hope we can talk Monday.

 

Thanks,

 

Ed

 

 

| edburns@xxxxxxxxxxxxx | office: +1 954 727 1095

| Calendar Booking: https://aka.ms/meetedburns

|

| Please don't feel obliged to read or reply to this e-mail outside

| of your normal working hours.

|

| Reply anonymously to this email: https://purl.oclc.org/NET/edburns/contact

 

 

 

## jea-98

 

- In order to complete the Wave discussion we must find a way to deal

  with the existing circular dependencies.

 

- There are several different approaches. Let us enumerate them on a

  spectrum from "the most correct way" to "least correct way".

 

### Describe the problem exactly

 

- Consider this POM from the **cdi-tck** repository, in the **web** directory.

 

   - https://github.com/jakartaee/cdi-tck/blob/master/web/pom.xml

  

   - This POM has problematic dependencies.  Ideally, this POM should

     only have dependencies on

     

        - technologies in the Core profile.

        - technical dependencies to allow the TCK to actually run.

 

     However, it currently has dependencies on technologies in the Web

     and Platform profiles, as show here.

    

Core

 

```xml

<dependency>

    <groupId>jakarta.ws.rs</groupId>

    <artifactId>jakarta.ws.rs-api</artifactId>

    <version>${jaxrs.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.interceptor</groupId>

    <artifactId>jakarta.interceptor-api</artifactId>

</dependency>

<dependency>

    <groupId>jakarta.annotation</groupId>

    <artifactId>jakarta.annotation-api</artifactId>

</dependency>

<dependency>

    <groupId>jakarta.inject</groupId>

    <artifactId>jakarta.inject-api</artifactId>

</dependency>

```

 

Core (optional)

 

```xml

<dependency>

    <groupId>jakarta.el</groupId>

    <artifactId>jakarta.el-api</artifactId>

</dependency>

```

 

Web

 

```xml

<dependency>

    <groupId>jakarta.servlet</groupId>

    <artifactId>jakarta.servlet-api</artifactId>

    <version>${servlet.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.servlet.jsp</groupId>

    <artifactId>jakarta.servlet.jsp-api</artifactId>

    <version>${jsp.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.transaction</groupId>

    <artifactId>jakarta.transaction-api</artifactId>

    <version>${jta.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.faces</groupId>

    <artifactId>jakarta.faces-api</artifactId>

    <version>${jsf.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.persistence</groupId>

    <artifactId>jakarta.persistence-api</artifactId>

    <version>${jpa.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.ejb</groupId>

    <artifactId>jakarta.ejb-api</artifactId>

    <version>${ejb.api.version}</version>

</dependency>

```

 

Platform

    

```xml

<dependency>

    <groupId>jakarta.jms</groupId>

    <artifactId>jakarta.jms-api</artifactId>

    <version>${jms.api.version}</version>

</dependency>

<dependency>

    <groupId>jakarta.resource</groupId>

    <artifactId>jakarta.resource-api</artifactId>

    <version>${jca.api.version}</version>

</dependency>

```

  

Technical dependencies to allow the TCK to actually run

 

```xml

<dependency>

    <groupId>jakarta.enterprise</groupId>

    <artifactId>cdi-tck-core-impl</artifactId>

    <version>${project.version}</version>

</dependency>

 

<dependency>

    <groupId>jakarta.enterprise</groupId>

    <artifactId>jakarta.enterprise.cdi-api</artifactId>

</dependency>

<dependency>

    <groupId>jakarta.enterprise</groupId>

    <artifactId>cdi-tck-api</artifactId>

</dependency>

 

<dependency>

    <groupId>jakarta.enterprise</groupId>

    <artifactId>cdi-tck-ext-lib</artifactId>

</dependency>

 

<dependency>

    <groupId>org.jboss.arquillian.testng</groupId>

    <artifactId>arquillian-testng-container</artifactId>

</dependency>

 

<dependency>

    <groupId>org.jboss.arquillian.container</groupId>

    <artifactId>container-se-api</artifactId>

</dependency>

 

<dependency>

    <groupId>org.jboss.shrinkwrap.descriptors</groupId>

    <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>

</dependency>

 

<dependency>

    <groupId>org.testng</groupId>

    <artifactId>testng</artifactId>

</dependency>

 

<dependency>

    <groupId>commons-httpclient</groupId>

    <artifactId>commons-httpclient</artifactId>

</dependency>

 

<dependency>

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>selenium-java</artifactId>

</dependency>

 

<dependency>

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>selenium-chrome-driver</artifactId>

</dependency>

 

<dependency>

    <groupId>io.github.bonigarcia</groupId>

    <artifactId>webdrivermanager</artifactId>

</dependency>

 

<dependency>

    <groupId>net.sourceforge.htmlunit</groupId>

    <artifactId>htmlunit</artifactId>

</dependency>

 

<dependency>

    <groupId>commons-lang</groupId>

    <artifactId>commons-lang</artifactId>

    <version>2.2</version>

    <scope>test</scope>

</dependency>

```

  

   on technologies that **are not** in the

     Jakarta EE Web Profile.

 

### The most correct way: The complete CDI split option

 

Creating top-level Jakarta EE specifications for CDI-core, CDI-web,

CDI-platform. This would including splitting up the APIs into separate

API jar artifacts and spliting up the corresponding TCKs.

 

#### CDI TCK

 

https://github.com/jakartaee/cdi-tck is refactored into something like

 

- cdi/core-tck

 

- cdi/web-tck

 

- cdi/platform-tck

 

#### CDI spec

 

https://github.com/jakartaee/cdi is refactored into something like

 

- cdi/core

 

- cdi/web

 

### A little less correct way: TCK only split option

 

Split up only the TCKs, not the specification (and therefore also API).

 

Create two new top-level Jakarta EE specifications: CDI-web-TCK-only,

CDI-platform-TCK-only.

 

- Each of these are essentially a top-level Jakarta EE specification

  that references the existing top-level Jakarta CDI specification

  but includes its own TCK.

 

- To satisfy the requirement to have a compatible implementation, each

  of these simply uses the corresponding implementation of the

  existing top-level CDI Jakarta EE specification. (Not CDI-lite

  only).

 

- To satisfy the TCK requirements

 

   - The TCK of the existing top-level CDI Jakarta EE specification

     would be reduced. The web and platform profile tests would be removed

     from this TCK and moved into the corresponding web and platform

     TCK-only specifications.

 

### Even less correct way: Discover "the violating set" and move tests around

 

#### Context

 

Core

 

A

 

B

 

Web

 

C

 

Platform

 

D

 

Dependencies

 

C -> B

 

B -> A

 

Regarding "integration-test" style TCK tests, the most important rule

is that "integration-test" style TCK tests in a component spec must

obey the dependency graph. There are component spec TCK tests that

violate this rule. For discussion, all such tests are called "members

of the violating set". This violation makes it impossible to separate

the TCK tests in a way that allows the best Wave list ordering. This

makes it impossible to release the specs independently (within each

wave).

 

#### Solution

 

Instead of creating separate CDI specifications, with separated TCKs,

we only separate the tests and put them in the TCK for the Web Profile

and Core Profile specs.

 

Moving the tests that violate the dependency rule "up" in the

dependency graph.

 

Let's say we have a test in A that uses functionality in B, the

problem can be solved by moving that test from A to B.

 

To solve the problem without creating any new specifications, we move

the violating tests from where currently are (wherever that may be)

"up" from the component spec to either the TCK for an umbrella spec

(web, core, platform) **or** the other component spec.

 

#### Challenges to this option

 

- We do not have a good handle on what exact tests are members "the

  violating set".

 

### The least correct way: do nothing

 

We accept that, when doing the waves, when we get to higher waves,

specs that were in lower waves will have to be updated and

re-released **or** will have dependencies on outdated versions.

 

## What is the business benefit of trying to solve this problem?

 

- Bugs stay more within their own "bulkheads".

 

- Release management is less complicated.

 

   - Less effort in release management can mean

   

      - a more agile cadence.

     

      - less risk in the schedule.

  

   

 

_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev


Back to the top