Merge remote-tracking branch 'origin/jenkins_with_weblogic'

# Conflicts:
#	build.gradle
This commit is contained in:
Rinjae
2025-11-10 18:00:11 +09:00
6 changed files with 126 additions and 50 deletions
+32 -35
View File
@@ -1,13 +1,12 @@
plugins {
id 'org.springframework.boot' version '2.7.17'
id 'io.spring.dependency-management' version '1.1.3'
id 'com.diffplug.eclipse.apt' version '3.41.1'
id 'java'
id 'java-library'
id 'java-library'
id 'eclipse-wtp'
id 'idea'
id 'war'
id 'com.diffplug.eclipse.apt' version '3.41.1'
// id "org.sonarqube" version "4.2.1.3168"
}
bootJar.enabled = true
@@ -18,6 +17,7 @@ version = '2.0.0'
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
configurations {
annotationProcessor
configureEach {
@@ -30,7 +30,6 @@ compileJava {
options.encoding = 'UTF-8'
}
war {
archiveFileName = "elink-test-master.war"
exclude '**/persistence.xml'
@@ -43,7 +42,7 @@ dependencies {
implementation 'org.mapstruct:mapstruct:1.5.5.Final'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.data:spring-data-envers'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-security'
@@ -54,6 +53,16 @@ dependencies {
implementation 'com.navercorp.lucy:lucy-xss-servlet:2.0.1'
implementation group: 'com.lmax', name: 'disruptor', version: '3.4.4'
if (project.hasProperty("profile") && project.property("profile") == "weblogic") {
// WebLogic 배포 시에는 톰캣을 WAR에 넣지 않음
implementation('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
}
providedCompile "javax:javaee-api:8.0"
} else {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
// implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation 'org.apache.httpcomponents:httpclient:4.5.14'
implementation 'com.hazelcast:hazelcast:4.2.8'
@@ -77,10 +86,12 @@ dependencies {
implementation 'org.mdkt.compiler:InMemoryJavaCompiler:1.3.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
// Weblogic 14.1.2(Java17) 대응 관련
// Nashorn(JavaScript 엔진, Java15이상 JRE System Library에서 제외됨) 대응, 대체용 검토필요.
implementation 'org.graalvm.js:js:25.0.0'
implementation 'org.graalvm.js:js-scriptengine:25.0.0'
// implementation 'org.graalvm.js:js:25.0.0'
// implementation 'org.graalvm.js:js-scriptengine:25.0.0'
implementation "org.openjdk.nashorn:nashorn-core:15.4"
}
bootJar {
@@ -91,31 +102,17 @@ test {
useJUnitPlatform()
}
//eclipse {
// wtp {
// component {
// contextPath = '/'
// }
// }
// synchronizationTasks settingEclipseEncoding, initDirs
//
// jdt {
// apt {
// // generated 된 패스 경로를 .setting/org.eclipse.jdt.apt.core.prefs 의 org.eclipse.jdt.apt.genSrcDir에 적용한다.
// // project > properties > Java Compiler > Annoation Processing 화면에서 확인 가능하다.
// genSrcDir = file(generatedJavaDir)
// }
// }
//
// project {
// natures = ['org.eclipse.buildship.core.gradleprojectnature',
// 'org.eclipse.jdt.core.javanature',
// 'org.eclipse.wst.common.project.facet.core.nature',
// 'org.eclipse.wst.common.modulecore.ModuleCoreNature',
// 'org.eclipse.jem.workbench.JavaEMFNature']
// buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder'
// buildCommand 'org.eclipse.wst.validation.validationbuilder'
// buildCommand 'org.eclipse.wst.common.project.facet.core.builder'
// buildCommand 'org.eclipse.jdt.core.javabuilder'
// }
//}
war {
// Set the name of the WAR file (optional)
archiveFileName = "elink-test-master.war"
// from('src/main/resources/jeus-web-dd.xml') { into 'WEB-INF' }
from('src/main/resources/weblogic.xml') { into 'WEB-INF' }
}
bootWar {
archiveFileName = "elink-test-master.war"
from('src/main/resources/weblogic.xml') { into 'WEB-INF' }
}
@@ -3,13 +3,19 @@ package com.eactive.testmaster;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication(exclude = {
UserDetailsServiceAutoConfiguration.class,
})
@ComponentScan("com.eactive")
public class ElinkTestMaster {
public class ElinkTestMaster extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ElinkTestMaster.class);
}
public static void main(String[] args) {
SpringApplication.run(ElinkTestMaster.class, args);
@@ -6,7 +6,9 @@ import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactor
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Profile("!weblogic")
@Configuration
public class ServletConfig {
@@ -7,24 +7,20 @@ import com.eactive.testmaster.client.dto.ApiResponse;
import com.eactive.testmaster.client.dto.internal.ScenarioNode;
import com.eactive.testmaster.client.service.ApiClientFactory;
import com.eactive.testmaster.loadtest.dto.LoadTestRequestAndResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.regex.Pattern;
import org.apache.commons.lang3.SerializationUtils;
import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import javax.script.SimpleBindings;
import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
import org.apache.commons.lang3.SerializationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.regex.Pattern;
public class VirtualUser implements Runnable {
@@ -0,0 +1,51 @@
logging:
level:
root: info
web: debug
com.eactive: debug
org:
springframework:
web:
socket: debug
server:
error.include-message: always
servlet:
session:
timeout: 180m
context-path: /
spring:
datasource:
url: jdbc:h2:file:./db/apidb
driverClassName: org.h2.Driver
username: sa
password:
hikari:
maximum-pool-size: 20
minimum-idle: 5
idle-timeout: 30000
max-lifetime: 60000
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: true
show-sql: false
database-platform: org.hibernate.dialect.H2Dialect
thymeleaf:
prefix: classpath:/templates/
check-template-location: true
suffix: .html
mode: HTML
cache: false
order: 0
h2:
console:
enabled: true
path: /h2-console
settings:
web-allow-others: true
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.6/weblogic-web-app.xsd">
<context-root>/</context-root>
<container-descriptor>
<prefer-application-packages>
<package-name>org.slf4j.*</package-name>
<package-name>ch.qos.logback.*</package-name>
<package-name>org.apache.log4j.*</package-name>
<package-name>org.apache.commons.logging.*</package-name>
</prefer-application-packages>
</container-descriptor>
<session-descriptor>
<timeout-secs>1800</timeout-secs>
<cookie-name>JSESSIONID_ONL</cookie-name>
<persistent-store-type>replicated_if_clustered</persistent-store-type>
</session-descriptor>
</weblogic-web-app>