Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,12 @@ services:
build:
context: ./services/ads/java
depends_on:
- postgres
- dd-agent
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
- POSTGRES_USER=${POSTGRES_USER:-postgres}
- POSTGRES_HOST=postgres
- DD_AGENT_HOST=dd-agent
- DD_SERVICE=store-ads
- DD_VERSION=${DD_VERSION_ADS:-1.0.0}
Expand Down
4 changes: 4 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,12 @@ services:
ads:
image: ghcr.io/datadog/storedog/ads-java:${STOREDOG_IMAGE_VERSION:-latest}
depends_on:
- postgres
- dd-agent
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
- POSTGRES_USER=${POSTGRES_USER:-postgres}
- POSTGRES_HOST=postgres
- DD_AGENT_HOST=dd-agent
- DD_SERVICE=store-ads
- DD_ENV=${DD_ENV:-production}
Expand Down
11 changes: 7 additions & 4 deletions services/ads/java/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ ARG DD_GIT_REPOSITORY_URL
ARG DD_GIT_COMMIT_SHA

ENV APP_HOME=/usr/app/ \
ADS_SERVER_PORT=3030 \
DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} \
DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
ADS_SERVER_PORT=3030 \
POSTGRES_PASSWORD=postgres \
POSTGRES_USER=postgres \
POSTGRES_HOST=postgres \
DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} \
DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}

WORKDIR $APP_HOME
COPY --from=temp_build_image $APP_HOME/build/libs/*.jar store-ads.jar

RUN wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'

ENTRYPOINT ["java", "-javaagent:/usr/app/dd-java-agent.jar", "-jar", "store-ads.jar"]
ENTRYPOINT ["java", "-javaagent:/usr/app/dd-java-agent.jar", "-jar", "store-ads.jar"]
7 changes: 5 additions & 2 deletions services/ads/java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@ repositories {
dependencies {
implementation (
'commons-io:commons-io:2.4',
'org.springframework.boot:spring-boot-starter-web'
'org.springframework.boot:spring-boot-starter-web',
'org.springframework.boot:spring-boot-starter-data-jpa'
)
runtimeOnly 'org.postgresql:postgresql'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
implementation 'net.logstash.logback:logstash-logback-encoder:7.0'
implementation 'net.logstash.logback:logstash-logback-encoder:7.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'com.h2database:h2'
}

bootJar {
Expand Down
42 changes: 23 additions & 19 deletions services/ads/java/src/main/java/adsjava/AdsJavaApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@
import org.springframework.web.bind.annotation.RequestParam;
import java.util.concurrent.TimeoutException;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.boot.CommandLineRunner;


@SpringBootApplication
Expand All @@ -26,6 +30,9 @@ public class AdsJavaApplication {

private static final Logger logger = LoggerFactory.getLogger(AdsJavaApplication.class);

@Autowired
private AdvertisementRepository advertisementRepository;

@RequestMapping("/")
public String home() {
logger.info("home url for ads called");
Expand All @@ -51,7 +58,7 @@ public String home() {
value = "/ads",
produces = MediaType.APPLICATION_JSON_VALUE
)
public HashMap[] ads(@RequestHeader HashMap<String, String> headers) {
public List<Advertisement> ads(@RequestHeader HashMap<String, String> headers) {
logger.info("/ads called");

boolean errorFlag = false;
Expand All @@ -74,28 +81,25 @@ public HashMap[] ads(@RequestHeader HashMap<String, String> headers) {
throw new RuntimeException(e);
}
} else {
HashMap<String, String> map1 = new HashMap<>();
map1.put("id", "1");
map1.put("name", "Discount Clothing");
map1.put("path", "1.jpg");

HashMap<String, String> map2 = new HashMap<>();
map2.put("id", "2");
map2.put("name", "Cool Hats");
map2.put("path", "2.jpg");

HashMap<String, String> map3 = new HashMap<>();
map3.put("id", "3");
map3.put("name", "Nic Bags");
map3.put("path", "3.jpg");
HashMap[] myArr = { map1, map2, map3 };
logger.info("Total responses available: " + myArr.length);
return myArr;
List<Advertisement> ads = advertisementRepository.findAll();
logger.info("Total ads available: " + ads.size());
return ads;
}
}
}

public static void main(String[] args) {
SpringApplication.run(AdsJavaApplication.class, args);
}

@Bean
public CommandLineRunner initDb(AdvertisementRepository repository) {
return args -> {
if (repository.count() == 0) {
repository.save(new Advertisement("Discount Clothing", "1.jpg"));
repository.save(new Advertisement("Cool Hats", "2.jpg"));
repository.save(new Advertisement("Nice Bags", "3.jpg"));
}
};
}

}
26 changes: 26 additions & 0 deletions services/ads/java/src/main/java/adsjava/Advertisement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package adsjava;

import javax.persistence.*;

@Entity
public class Advertisement {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String path;

public Advertisement() {}

public Advertisement(String name, String path) {
this.name = name;
this.path = path;
}

public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getPath() { return path; }
public void setPath(String path) { this.path = path; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package adsjava;

import org.springframework.data.jpa.repository.JpaRepository;

public interface AdvertisementRepository extends JpaRepository<Advertisement, Long> {
}
10 changes: 10 additions & 0 deletions services/ads/java/src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
server:
port: ${ADS_SERVER_PORT:3030}

spring:
datasource:
url: jdbc:postgresql://${POSTGRES_HOST:localhost}:5432/${POSTGRES_USER:postgres}
username: ${POSTGRES_USER:postgres}
password: ${POSTGRES_PASSWORD:postgres}
jpa:
hibernate:
ddl-auto: update
show-sql: true
10 changes: 10 additions & 0 deletions services/ads/java/src/test/resources/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
spring:
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: create-drop
show-sql: false