|
73 | 73 | <artifactId>drill-common</artifactId> |
74 | 74 | <version>${project.version}</version> |
75 | 75 | </dependency> |
| 76 | + <dependency> |
| 77 | + <groupId>org.apache.drill</groupId> |
| 78 | + <artifactId>drill-ranger-plugin</artifactId> |
| 79 | + <version>${project.version}</version> |
| 80 | + <exclusions> |
| 81 | + <exclusion> |
| 82 | + <groupId>org.glassfish.jersey.core</groupId> |
| 83 | + <artifactId>*</artifactId> |
| 84 | + </exclusion> |
| 85 | + <exclusion> |
| 86 | + <groupId>org.glassfish.jersey.inject</groupId> |
| 87 | + <artifactId>*</artifactId> |
| 88 | + </exclusion> |
| 89 | + <exclusion> |
| 90 | + <groupId>org.glassfish.hk2</groupId> |
| 91 | + <artifactId>*</artifactId> |
| 92 | + </exclusion> |
| 93 | + <exclusion> |
| 94 | + <groupId>org.glassfish.hk2.external</groupId> |
| 95 | + <artifactId>*</artifactId> |
| 96 | + </exclusion> |
| 97 | + <exclusion> |
| 98 | + <groupId>jakarta.ws.rs</groupId> |
| 99 | + <artifactId>jakarta.ws.rs-api</artifactId> |
| 100 | + </exclusion> |
| 101 | + <exclusion> |
| 102 | + <groupId>jakarta.annotation</groupId> |
| 103 | + <artifactId>jakarta.annotation-api</artifactId> |
| 104 | + </exclusion> |
| 105 | + <exclusion> |
| 106 | + <groupId>jakarta.inject</groupId> |
| 107 | + <artifactId>jakarta.inject-api</artifactId> |
| 108 | + </exclusion> |
| 109 | + </exclusions> |
| 110 | + </dependency> |
| 111 | + <!-- |
| 112 | + Ranger Admin service plugin (REST-based, JDK 8 bytecode, no Drill deps). |
| 113 | + Deployed into Ranger Admin's WEB-INF/lib. No shade/fat jar needed: |
| 114 | + the plugin uses only HttpURLConnection (JDK-standard) and Jackson |
| 115 | + (provided by Ranger Admin). |
| 116 | + --> |
| 117 | + <dependency> |
| 118 | + <groupId>org.apache.drill</groupId> |
| 119 | + <artifactId>ranger-drill-service</artifactId> |
| 120 | + <version>${project.version}</version> |
| 121 | + <type>jar</type> |
| 122 | + </dependency> |
76 | 123 | <dependency> |
77 | 124 | <groupId>org.apache.drill</groupId> |
78 | 125 | <artifactId>drill-yarn</artifactId> |
|
279 | 326 |
|
280 | 327 | <build> |
281 | 328 | <plugins> |
| 329 | + <plugin> |
| 330 | + <groupId>org.apache.maven.plugins</groupId> |
| 331 | + <artifactId>maven-dependency-plugin</artifactId> |
| 332 | + <executions> |
| 333 | + <execution> |
| 334 | + <id>copy-ranger-plugin-isolated-deps</id> |
| 335 | + <phase>prepare-package</phase> |
| 336 | + <goals> |
| 337 | + <goal>copy</goal> |
| 338 | + </goals> |
| 339 | + <configuration> |
| 340 | + <!-- |
| 341 | + Force-copy the 2.x versions of Jersey, HK2, JAX-RS API, |
| 342 | + and annotation APIs that Maven dependency mediation would |
| 343 | + otherwise resolve to 3.x (because Drill's own REST server |
| 344 | + depends on the 3.x versions at a shallower depth). |
| 345 | +
|
| 346 | + These jars go into the isolated ranger-drill-plugin-impl/ |
| 347 | + directory and are loaded by RangerPluginClassLoader, NOT |
| 348 | + the Drillbit classloader. Using maven-dependency-plugin:copy |
| 349 | + (not the assembly dependencySet) ensures we get the exact |
| 350 | + versions required by Jersey 2.35 / HK2 2.6.1, regardless of |
| 351 | + what Maven mediation picks for the main classpath. |
| 352 | + --> |
| 353 | + <artifactItems> |
| 354 | + <!-- JAX-RS 2.x API (javax.ws.rs.* package) --> |
| 355 | + <artifactItem> |
| 356 | + <groupId>jakarta.ws.rs</groupId> |
| 357 | + <artifactId>jakarta.ws.rs-api</artifactId> |
| 358 | + <version>${jaxrs.api.version}</version> |
| 359 | + <type>jar</type> |
| 360 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 361 | + </artifactItem> |
| 362 | + <!-- Jersey 2.x client runtime --> |
| 363 | + <artifactItem> |
| 364 | + <groupId>org.glassfish.jersey.core</groupId> |
| 365 | + <artifactId>jersey-client</artifactId> |
| 366 | + <version>${jersey.ranger.version}</version> |
| 367 | + <type>jar</type> |
| 368 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 369 | + </artifactItem> |
| 370 | + <artifactItem> |
| 371 | + <groupId>org.glassfish.jersey.core</groupId> |
| 372 | + <artifactId>jersey-common</artifactId> |
| 373 | + <version>${jersey.ranger.version}</version> |
| 374 | + <type>jar</type> |
| 375 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 376 | + </artifactItem> |
| 377 | + <artifactItem> |
| 378 | + <groupId>org.glassfish.jersey.inject</groupId> |
| 379 | + <artifactId>jersey-hk2</artifactId> |
| 380 | + <version>${jersey.ranger.version}</version> |
| 381 | + <type>jar</type> |
| 382 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 383 | + </artifactItem> |
| 384 | + <artifactItem> |
| 385 | + <groupId>org.glassfish.jersey.core</groupId> |
| 386 | + <artifactId>jersey-server</artifactId> |
| 387 | + <version>${jersey.ranger.version}</version> |
| 388 | + <type>jar</type> |
| 389 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 390 | + </artifactItem> |
| 391 | + <artifactItem> |
| 392 | + <groupId>org.glassfish.jersey.media</groupId> |
| 393 | + <artifactId>jersey-media-json-jackson</artifactId> |
| 394 | + <version>${jersey.ranger.version}</version> |
| 395 | + <type>jar</type> |
| 396 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 397 | + </artifactItem> |
| 398 | + <artifactItem> |
| 399 | + <groupId>org.glassfish.jersey.ext</groupId> |
| 400 | + <artifactId>jersey-entity-filtering</artifactId> |
| 401 | + <version>${jersey.ranger.version}</version> |
| 402 | + <type>jar</type> |
| 403 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 404 | + </artifactItem> |
| 405 | + <!-- HK2 2.6.1 (DI container used by Jersey 2.x) --> |
| 406 | + <artifactItem> |
| 407 | + <groupId>org.glassfish.hk2</groupId> |
| 408 | + <artifactId>hk2-locator</artifactId> |
| 409 | + <version>${hk2.ranger.version}</version> |
| 410 | + <type>jar</type> |
| 411 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 412 | + </artifactItem> |
| 413 | + <artifactItem> |
| 414 | + <groupId>org.glassfish.hk2</groupId> |
| 415 | + <artifactId>hk2-api</artifactId> |
| 416 | + <version>${hk2.ranger.version}</version> |
| 417 | + <type>jar</type> |
| 418 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 419 | + </artifactItem> |
| 420 | + <artifactItem> |
| 421 | + <groupId>org.glassfish.hk2</groupId> |
| 422 | + <artifactId>hk2-utils</artifactId> |
| 423 | + <version>${hk2.ranger.version}</version> |
| 424 | + <type>jar</type> |
| 425 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 426 | + </artifactItem> |
| 427 | + <artifactItem> |
| 428 | + <groupId>org.glassfish.hk2.external</groupId> |
| 429 | + <artifactId>aopalliance-repackaged</artifactId> |
| 430 | + <version>${hk2.ranger.version}</version> |
| 431 | + <type>jar</type> |
| 432 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 433 | + </artifactItem> |
| 434 | + <artifactItem> |
| 435 | + <groupId>org.glassfish.hk2</groupId> |
| 436 | + <artifactId>osgi-resource-locator</artifactId> |
| 437 | + <version>${osgi.resource.locator.version}</version> |
| 438 | + <type>jar</type> |
| 439 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 440 | + </artifactItem> |
| 441 | + <artifactItem> |
| 442 | + <groupId>jakarta.annotation</groupId> |
| 443 | + <artifactId>jakarta.annotation-api</artifactId> |
| 444 | + <version>${jakarta.annotation.api.version}</version> |
| 445 | + <type>jar</type> |
| 446 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 447 | + </artifactItem> |
| 448 | + <artifactItem> |
| 449 | + <groupId>jakarta.inject</groupId> |
| 450 | + <artifactId>jakarta.inject-api</artifactId> |
| 451 | + <version>${jakarta.inject.api.version}</version> |
| 452 | + <type>jar</type> |
| 453 | + <outputDirectory>${project.build.directory}/ranger-drill-plugin-impl</outputDirectory> |
| 454 | + </artifactItem> |
| 455 | + </artifactItems> |
| 456 | + </configuration> |
| 457 | + </execution> |
| 458 | + </executions> |
| 459 | + </plugin> |
282 | 460 | <plugin> |
283 | 461 | <artifactId>maven-assembly-plugin</artifactId> |
284 | 462 | <executions> |
|
0 commit comments