Skip to content

ATLAS-5207: Atlas webapp module to support rest-notification endpoint#622

Open
UmeshPatil-1 wants to merge 24 commits into
apache:masterfrom
UmeshPatil-1:ATLAS-5207
Open

ATLAS-5207: Atlas webapp module to support rest-notification endpoint#622
UmeshPatil-1 wants to merge 24 commits into
apache:masterfrom
UmeshPatil-1:ATLAS-5207

Conversation

@UmeshPatil-1

@UmeshPatil-1 UmeshPatil-1 commented May 7, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Overview

This pull request introduces the rest-notification-webapp module to open source (ported from the internal CDH branch) and adds a new atlas-server-common Maven module that holds server-side infrastructure shared by both webapp and rest-notification-webapp. The goal is to eliminate duplicated, nearly identical code between the two web modules while keeping module-specific behavior in each module.

  1. New rest-notification-webapp module
  2. New atlas-server-common module (server-common)
    • A new shared JAR (org.apache.atlas:atlas-server-common) containing 49 Java classes extracted from duplicated code in webapp and rest-notification-webapp:
    • Both webapp and rest-notification-webapp now depend on atlas-server-common and import shared classes from org.apache.atlas.server.common.*.
  3. Refactoring of webapp module
    • Removes duplicate classes now provided by atlas-server-common
    • Updates imports across REST resources, security config, filters, services, and tests to use the shared module
    • Introduces module-specific implementations wired via SPI/config:
    • Updates spring-security.xml, web.xml, and test Spring configs to reference shared filter/security classes.
  4. Build and compatibility fixes
    • Jersey 2 --> Jersey 1 migration for rest-notification-webapp to align with the open-source webapp stack (com.sun.jersey instead of org.glassfish.jersey).
    • Servlet 3.1 compatibility: removed Servlet 4.0-only methods from NullServletContext that broke override compilation with javax.servlet-api 3.1.
    • Method visibility adjustments in shared classes
    • Checkstyle fixes across webapp and server-common modules

How was this patch tested?

  1. Unit tests
  2. Specific test failures resolved during development:
    • UserAuthorityGranter.grant() null return --> fixed to return proper authorities instead of null.
    • WebappAdminAuditHookTest / ServiceStateChangeAuditHandlerTest --> aligned resultCount assertion with long type.
    • UserDaoTest.testMergePasswordAndSalt_EmptySalt --> method visibility adjusted in shared UserDao.
    • Servlet 3.1 compile errors --> removed Servlet 4.0-only overrides from NullServletContext.
    • Checkstyle --> resolved across webapp and server-common modules.
  3. Build verification
    • Compile server-common and dependents
    • Full module build (webapp + rest-notification-webapp + server-common)
  4. Manual testing
    • Build and start Atlas webapp
    • Build and start REST notification server
  5. UI changes
    • No UI changes in this pull request

… rest-notification-webapp in parent pom, replacing the old private SNAPSHOT to map with parent,updated from jersy2->jersy1, Removed Servlet 4.0-only methods that are not on ServletContext in Servlet 3.1 (they were breaking @OverRide) etc
…sses from webapp and rest-notification webapp, updated imports to use server-common module,updated paren pom and xml wiring's etc.
….ServletException and in rest-notification webapp NullServletContext method does not override or implement a method from a supertype, these was because javax.servlet-api 3.1 and there is no support for methods which are using servlet-4.0.
…ebapp and rest-notification-webapp and Updating method visibility to resolve compile time error for UserDaoTest (testMergePasswordAndSalt_EmptySalt) method.
…common module for both webapp and rest-notification webapp.
…rn; align WebappAdminAuditHookTest with long resultCount
…ile-gate test security, split filter beans, Curator only if HA.
Comment thread dev-support/atlas-docker/scripts/atlas-hive-application.properties Outdated
Comment thread dev-support/atlas-docker/scripts/atlas-kafka-application.properties Outdated
Comment thread rest-notification-webapp/pom.xml
Comment thread webapp/src/main/java/org/apache/atlas/web/ha/WebappHighAvailabilitySupport.java Outdated
Comment thread webapp/src/main/java/org/apache/atlas/web/metrics/WebappAdminAuditHook.java Outdated
Comment thread webapp/src/main/java/org/apache/atlas/web/metrics/WebappServiceMetricsHook.java Outdated

@pareshddevalia pareshddevalia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants