You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2021/11/04 04:34:36 UTC
[skywalking-showcase] 03/12: Finish song-service and set up project
structure
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-showcase.git
commit 542327a396754bdc7b8ecb85656a42e66e6a2db5
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Wed Oct 27 14:50:04 2021 +0800
Finish song-service and set up project structure
---
.gitignore | 4 ++
.../resources/application.properties => Makefile | 1 +
.../application.properties => Makefile.in | 3 ++
build.gradle | 23 -----------
buildSrc/build.gradle | 26 ------------
...ng.showcase.java-application-conventions.gradle | 26 ------------
...walking.showcase.java-common-conventions.gradle | 44 --------------------
...alking.showcase.java-library-conventions.gradle | 27 ------------
gradle/wrapper/gradle-wrapper.properties | 19 +--------
services/recommendation-service/build.gradle | 6 +++
.gitignore => services/song-service/Dockerfile | 18 +++++---
.gitignore => services/song-service/Makefile | 22 +++++++---
.../{java-service => song-service}/build.gradle | 1 +
.../song-service/gradle.properties | 2 +
.../song-service/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59536 bytes
.../gradle}/wrapper/gradle-wrapper.properties | 3 +-
gradlew => services/song-service/gradlew | 0
gradlew.bat => services/song-service/gradlew.bat | 0
.../song-service/settings.gradle | 5 +--
.../services/song/SongServiceApplication.java} | 6 +--
.../services/song/controller/SongController.java | 39 +++++++++++++++++
.../showcase/services/song/entity/Song.java | 46 +++++++++++++++++++++
.../showcase/services/song/repo/SongsRepo.java | 27 ++++++++++++
.../src/main/resources/application.yaml} | 6 +++
services/song-service/src/main/resources/data.sql | 33 +++++++++++++++
.../song}/JavaServicesApplicationTests.java | 2 +-
26 files changed, 205 insertions(+), 184 deletions(-)
diff --git a/.gitignore b/.gitignore
index f922fe7..d425778 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,7 @@ build
.idea
*.iml
+
+.venv
+
+.DS_Store
diff --git a/services/java-service/src/main/resources/application.properties b/Makefile
similarity index 99%
copy from services/java-service/src/main/resources/application.properties
copy to Makefile
index d0a78df..a4c0b62 100644
--- a/services/java-service/src/main/resources/application.properties
+++ b/Makefile
@@ -15,3 +15,4 @@
# specific language governing permissions and limitations
# under the License.
#
+
diff --git a/services/java-service/src/main/resources/application.properties b/Makefile.in
similarity index 90%
copy from services/java-service/src/main/resources/application.properties
copy to Makefile.in
index d0a78df..1a32095 100644
--- a/services/java-service/src/main/resources/application.properties
+++ b/Makefile.in
@@ -15,3 +15,6 @@
# specific language governing permissions and limitations
# under the License.
#
+
+HUB ?= ghcr.io/apache/skywalking-showcase
+TAG ?= $(shell git rev-parse --short HEAD)
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 9e986a6..0000000
--- a/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-allprojects {
- group 'org.apache.skywalking.showcase'
- version '1.0.0-SNAPSHOT'
-}
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
deleted file mode 100644
index 3d8de41..0000000
--- a/buildSrc/build.gradle
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-plugins {
- id 'groovy-gradle-plugin'
-}
-
-repositories {
- gradlePluginPortal()
-}
diff --git a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-application-conventions.gradle b/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-application-conventions.gradle
deleted file mode 100644
index f20a0d6..0000000
--- a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-application-conventions.gradle
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-plugins {
- // Apply the common convention plugin for shared build configuration between library and application projects.
- id 'org.apache.skywalking.showcase.java-common-conventions'
-
- // Apply the application plugin to add support for building a CLI application in Java.
- id 'application'
-}
diff --git a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-common-conventions.gradle b/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-common-conventions.gradle
deleted file mode 100644
index c96cd7b..0000000
--- a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-common-conventions.gradle
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-plugins {
- // Apply the java Plugin to add support for Java.
- id 'java'
-}
-
-repositories {
- // Use Maven Central for resolving dependencies.
- mavenCentral()
-}
-
-dependencies {
- constraints {
- // Define dependency versions as constraints
- implementation 'org.apache.commons:commons-text:1.9'
- }
-
- // Use JUnit Jupiter for testing.
- testImplementation 'org.junit.jupiter:junit-jupiter:5.7.2'
-}
-
-tasks.named('test') {
- // Use JUnit Platform for unit tests.
- useJUnitPlatform()
-}
diff --git a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-library-conventions.gradle b/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-library-conventions.gradle
deleted file mode 100644
index 059b2fa..0000000
--- a/buildSrc/src/main/groovy/org.apache.skywalking.showcase.java-library-conventions.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-plugins {
- // Apply the common convention plugin for shared build configuration between library and application projects.
- id 'org.apache.skywalking.showcase.java-common-conventions'
-
- // Apply the java-library plugin for API and implementation separation.
- id 'java-library'
-}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4cfc668..69a9715 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,22 +1,5 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/services/recommendation-service/build.gradle b/services/recommendation-service/build.gradle
new file mode 100644
index 0000000..6684127
--- /dev/null
+++ b/services/recommendation-service/build.gradle
@@ -0,0 +1,6 @@
+afterEvaluate {
+ exec {
+ commandLine 'python3', '-m', 'venv', '.venv'
+ ignoreExitValue true
+ }
+}
diff --git a/.gitignore b/services/song-service/Dockerfile
similarity index 72%
copy from .gitignore
copy to services/song-service/Dockerfile
index f922fe7..48e26d5 100644
--- a/.gitignore
+++ b/services/song-service/Dockerfile
@@ -15,11 +15,17 @@
# specific language governing permissions and limitations
# under the License.
#
-# Ignore Gradle project-specific cache directory
-.gradle
-# Ignore Gradle build output directory
-build
+FROM ghcr.io/apache/skywalking-java/jdk-11:latest as build
-.idea
-*.iml
+COPY . /workspace
+
+WORKDIR /workspace
+
+RUN ./gradlew build
+
+FROM ghcr.io/apache/skywalking-java/jdk-11:latest
+
+COPY --from=build /workspace/build/libs/skywalking-showcase-0.0.1-SNAPSHOT.jar /app.jar
+
+CMD ["java", "-jar", "/app.jar"]
diff --git a/.gitignore b/services/song-service/Makefile
similarity index 73%
copy from .gitignore
copy to services/song-service/Makefile
index f922fe7..47f6405 100644
--- a/.gitignore
+++ b/services/song-service/Makefile
@@ -15,11 +15,21 @@
# specific language governing permissions and limitations
# under the License.
#
-# Ignore Gradle project-specific cache directory
-.gradle
-# Ignore Gradle build output directory
-build
+include ../../Makefile.in
-.idea
-*.iml
+.PHONY: build clean
+build:
+ ./gradlew build
+clean:
+ ./gradlew clean
+
+.PHONY: docker docker.build docker.push
+
+docker: docker.push
+
+docker.build: clean
+ docker build . -t $(HUB)/song-service:$(TAG)
+
+docker.push: docker.build
+ docker push $(HUB)/song-service:$(TAG)
diff --git a/services/java-service/build.gradle b/services/song-service/build.gradle
similarity index 97%
rename from services/java-service/build.gradle
rename to services/song-service/build.gradle
index 703a247..c88e4f4 100644
--- a/services/java-service/build.gradle
+++ b/services/song-service/build.gradle
@@ -40,6 +40,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.kafka:spring-kafka'
+ implementation 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
diff --git a/gradle.properties b/services/song-service/gradle.properties
similarity index 96%
rename from gradle.properties
rename to services/song-service/gradle.properties
index d0a78df..e957a1d 100644
--- a/gradle.properties
+++ b/services/song-service/gradle.properties
@@ -15,3 +15,5 @@
# specific language governing permissions and limitations
# under the License.
#
+
+org.gradle.daemon=false
diff --git a/services/song-service/gradle/wrapper/gradle-wrapper.jar b/services/song-service/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..7454180
Binary files /dev/null and b/services/song-service/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/services/song-service/gradle/wrapper/gradle-wrapper.properties
similarity index 95%
copy from gradle/wrapper/gradle-wrapper.properties
copy to services/song-service/gradle/wrapper/gradle-wrapper.properties
index 4cfc668..3899240 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/services/song-service/gradle/wrapper/gradle-wrapper.properties
@@ -17,6 +17,7 @@
#
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+# PyGradle doesn't support 7
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/services/song-service/gradlew
similarity index 100%
rename from gradlew
rename to services/song-service/gradlew
diff --git a/gradlew.bat b/services/song-service/gradlew.bat
old mode 100644
new mode 100755
similarity index 100%
rename from gradlew.bat
rename to services/song-service/gradlew.bat
diff --git a/settings.gradle b/services/song-service/settings.gradle
similarity index 92%
rename from settings.gradle
rename to services/song-service/settings.gradle
index 4ec5775..d877293 100644
--- a/settings.gradle
+++ b/services/song-service/settings.gradle
@@ -19,7 +19,6 @@
*/
rootProject.name = 'skywalking-showcase'
-include(
- 'services:java-service'
-)
+include 'services:song-service'
+include 'services:recommendation-service'
diff --git a/services/java-service/src/main/java/org/apache/skywalking/showcase/services/j/JavaServicesApplication.java b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/SongServiceApplication.java
similarity index 86%
rename from services/java-service/src/main/java/org/apache/skywalking/showcase/services/j/JavaServicesApplication.java
rename to services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/SongServiceApplication.java
index 0becfa1..034a90f 100644
--- a/services/java-service/src/main/java/org/apache/skywalking/showcase/services/j/JavaServicesApplication.java
+++ b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/SongServiceApplication.java
@@ -17,16 +17,16 @@
* under the License.
*
*/
-package org.apache.skywalking.showcase.services.j;
+package org.apache.skywalking.showcase.services.song;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-public class JavaServicesApplication {
+public class SongServiceApplication {
public static void main(String[] args) {
- SpringApplication.run(JavaServicesApplication.class, args);
+ SpringApplication.run(SongServiceApplication.class, args);
}
}
diff --git a/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/controller/SongController.java b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/controller/SongController.java
new file mode 100644
index 0000000..6dcafb2
--- /dev/null
+++ b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/controller/SongController.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.showcase.services.song.controller;
+
+import java.util.List;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.showcase.services.song.entity.Song;
+import org.apache.skywalking.showcase.services.song.repo.SongsRepo;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/songs")
+public class SongController {
+ private final SongsRepo songsRepo;
+
+ @GetMapping
+ public List<Song> songs() {
+ return songsRepo.findAll();
+ }
+}
diff --git a/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/entity/Song.java b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/entity/Song.java
new file mode 100644
index 0000000..7d5a57a
--- /dev/null
+++ b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/entity/Song.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.showcase.services.song.entity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import lombok.Data;
+import lombok.ToString;
+
+import static javax.persistence.GenerationType.IDENTITY;
+
+@Data
+@Entity
+@ToString
+public class Song {
+ @Id
+ @GeneratedValue(strategy = IDENTITY)
+ private Integer id;
+
+ @Column(nullable = false)
+ private String name;
+
+ @Column
+ private String artist;
+
+ @Column
+ private String genre;
+}
diff --git a/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/repo/SongsRepo.java b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/repo/SongsRepo.java
new file mode 100644
index 0000000..7e12707
--- /dev/null
+++ b/services/song-service/src/main/java/org/apache/skywalking/showcase/services/song/repo/SongsRepo.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.showcase.services.song.repo;
+
+import org.apache.skywalking.showcase.services.song.entity.Song;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SongsRepo extends JpaRepository<Song, Integer> {
+}
diff --git a/services/java-service/src/main/resources/application.properties b/services/song-service/src/main/resources/application.yaml
similarity index 90%
rename from services/java-service/src/main/resources/application.properties
rename to services/song-service/src/main/resources/application.yaml
index d0a78df..92fbf21 100644
--- a/services/java-service/src/main/resources/application.properties
+++ b/services/song-service/src/main/resources/application.yaml
@@ -15,3 +15,9 @@
# specific language governing permissions and limitations
# under the License.
#
+server:
+ port: 8081
+
+spring:
+ jpa:
+ defer-datasource-initialization: true
diff --git a/services/song-service/src/main/resources/data.sql b/services/song-service/src/main/resources/data.sql
new file mode 100644
index 0000000..0bda17a
--- /dev/null
+++ b/services/song-service/src/main/resources/data.sql
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+--
+
+insert into song
+ (id, name, artist, genre)
+values (1, '倩女幽魂', '张国荣', 'HK-POP'),
+ (2, '沉默是金', '张国荣', 'HK-POP')
+;
diff --git a/services/java-service/src/test/java/org/apache/skywalking/showcase/services/j/JavaServicesApplicationTests.java b/services/song-service/src/test/java/org/apache/skywalking/showcase/services/song/JavaServicesApplicationTests.java
similarity index 94%
rename from services/java-service/src/test/java/org/apache/skywalking/showcase/services/j/JavaServicesApplicationTests.java
rename to services/song-service/src/test/java/org/apache/skywalking/showcase/services/song/JavaServicesApplicationTests.java
index 00846b2..8fda4b0 100644
--- a/services/java-service/src/test/java/org/apache/skywalking/showcase/services/j/JavaServicesApplicationTests.java
+++ b/services/song-service/src/test/java/org/apache/skywalking/showcase/services/song/JavaServicesApplicationTests.java
@@ -17,7 +17,7 @@
* under the License.
*
*/
-package org.apache.skywalking.showcase.services.j;
+package org.apache.skywalking.showcase.services.song;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;