Skip to content

Commit e9bf9df

Browse files
committed
Add initial maven project structure
0 parents  commit e9bf9df

File tree

80 files changed

+1617
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+1617
-0
lines changed

pom.xml

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<groupId>me.tamkungz.codecmedia</groupId>
9+
<artifactId>codecmedia</artifactId>
10+
<version>1.0.0</version>
11+
<packaging>jar</packaging>
12+
13+
<name>CodecMedia</name>
14+
<description>
15+
Universal media processing library for Java.
16+
Supports probing, metadata reading/writing, container parsing,
17+
audio/video extraction and format conversion.
18+
</description>
19+
<url>https://github.com/TamKungZ/codecmedia</url>
20+
21+
<organization>
22+
<name>TamKungZ_</name>
23+
<url>https://www.tamkungz.me/</url>
24+
</organization>
25+
26+
<inceptionYear>2026</inceptionYear>
27+
28+
<issueManagement>
29+
<system>GitHub Issues</system>
30+
<url>https://github.com/TamKungZ/codecmedia/issues</url>
31+
</issueManagement>
32+
33+
<ciManagement>
34+
<system>GitHub Actions</system>
35+
<url>https://github.com/TamKungZ/codecmedia/actions</url>
36+
</ciManagement>
37+
38+
<licenses>
39+
<license>
40+
<name>MIT License</name>
41+
<url>https://opensource.org/licenses/MIT</url>
42+
<distribution>repo</distribution>
43+
</license>
44+
</licenses>
45+
46+
<developers>
47+
<developer>
48+
<id>tamkungz</id>
49+
<name>TamKungZ_</name>
50+
<email>kittiwut.pimpromma@gmail.com</email>
51+
<roles>
52+
<role>owner</role>
53+
<role>developer</role>
54+
<role>maintainer</role>
55+
</roles>
56+
<timezone>Asia/Bangkok</timezone>
57+
</developer>
58+
</developers>
59+
60+
<scm>
61+
<connection>scm:git:git://github.com/TamKungZ/codecmedia.git</connection>
62+
<developerConnection>scm:git:ssh://github.com:TamKungZ/codecmedia.git</developerConnection>
63+
<url>https://github.com/TamKungZ/codecmedia</url>
64+
</scm>
65+
66+
<distributionManagement>
67+
<repository>
68+
<id>central</id>
69+
<url>https://central.sonatype.com/api/v1/publisher</url>
70+
</repository>
71+
</distributionManagement>
72+
73+
<properties>
74+
<maven.compiler.release>17</maven.compiler.release>
75+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
76+
<project.build.outputTimestamp>${maven.build.timestamp}</project.build.outputTimestamp>
77+
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
78+
79+
<gpg.keyname>7311416EAA9848E4</gpg.keyname>
80+
</properties>
81+
82+
<dependencies>
83+
<dependency>
84+
<groupId>org.junit.jupiter</groupId>
85+
<artifactId>junit-jupiter-api</artifactId>
86+
<version>6.0.2</version>
87+
<scope>test</scope>
88+
</dependency>
89+
90+
<dependency>
91+
<groupId>org.junit.jupiter</groupId>
92+
<artifactId>junit-jupiter</artifactId>
93+
<version>6.0.2</version>
94+
<scope>test</scope>
95+
</dependency>
96+
97+
<dependency>
98+
<groupId>org.junit.jupiter</groupId>
99+
<artifactId>junit-jupiter-engine</artifactId>
100+
<version>6.0.2</version>
101+
<scope>test</scope>
102+
</dependency>
103+
104+
<dependency>
105+
<groupId>org.junit.jupiter</groupId>
106+
<artifactId>junit-jupiter-params</artifactId>
107+
<version>6.0.2</version>
108+
<scope>test</scope>
109+
</dependency>
110+
</dependencies>
111+
112+
<build>
113+
<plugins>
114+
115+
<!-- Compiler -->
116+
<plugin>
117+
<groupId>org.apache.maven.plugins</groupId>
118+
<artifactId>maven-compiler-plugin</artifactId>
119+
<version>3.15.0</version>
120+
<configuration>
121+
<release>17</release>
122+
</configuration>
123+
</plugin>
124+
125+
<!-- Tests -->
126+
<plugin>
127+
<groupId>org.apache.maven.plugins</groupId>
128+
<artifactId>maven-surefire-plugin</artifactId>
129+
<version>3.5.5</version>
130+
</plugin>
131+
132+
<!-- JAR Manifest -->
133+
<plugin>
134+
<groupId>org.apache.maven.plugins</groupId>
135+
<artifactId>maven-jar-plugin</artifactId>
136+
<version>3.5.0</version>
137+
<configuration>
138+
<archive>
139+
<manifest>
140+
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
141+
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
142+
</manifest>
143+
<manifestEntries>
144+
<Built-By>TamKungZ_</Built-By>
145+
<Implementation-Version>${project.version}</Implementation-Version>
146+
<Implementation-Title>${project.name}</Implementation-Title>
147+
</manifestEntries>
148+
</archive>
149+
</configuration>
150+
</plugin>
151+
152+
<!-- Sources -->
153+
<plugin>
154+
<groupId>org.apache.maven.plugins</groupId>
155+
<artifactId>maven-source-plugin</artifactId>
156+
<version>3.4.0</version>
157+
<executions>
158+
<execution>
159+
<id>attach-sources</id>
160+
<phase>verify</phase>
161+
<goals>
162+
<goal>jar-no-fork</goal>
163+
</goals>
164+
</execution>
165+
</executions>
166+
</plugin>
167+
168+
<!-- Javadoc -->
169+
<plugin>
170+
<groupId>org.apache.maven.plugins</groupId>
171+
<artifactId>maven-javadoc-plugin</artifactId>
172+
<version>3.12.0</version>
173+
<configuration>
174+
<doclint>none</doclint>
175+
</configuration>
176+
<executions>
177+
<execution>
178+
<id>attach-javadocs</id>
179+
<phase>verify</phase>
180+
<goals>
181+
<goal>jar</goal>
182+
</goals>
183+
</execution>
184+
</executions>
185+
</plugin>
186+
187+
<!-- GPG -->
188+
<plugin>
189+
<groupId>org.apache.maven.plugins</groupId>
190+
<artifactId>maven-gpg-plugin</artifactId>
191+
<version>3.2.8</version>
192+
<executions>
193+
<execution>
194+
<id>sign-artifacts</id>
195+
<phase>verify</phase>
196+
<goals>
197+
<goal>sign</goal>
198+
</goals>
199+
</execution>
200+
</executions>
201+
</plugin>
202+
203+
<!-- Central Publishing -->
204+
<plugin>
205+
<groupId>org.sonatype.central</groupId>
206+
<artifactId>central-publishing-maven-plugin</artifactId>
207+
<version>0.10.0</version>
208+
<extensions>true</extensions>
209+
</plugin>
210+
211+
</plugins>
212+
</build>
213+
214+
</project>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package me.tamkungz.codecmedia;
2+
3+
import me.tamkungz.codecmedia.internal.StubCodecMediaEngine;
4+
5+
/**
6+
* Entry point for creating CodecMedia engine instances.
7+
*/
8+
public final class CodecMedia {
9+
10+
private CodecMedia() {
11+
}
12+
13+
public static CodecMediaEngine createDefault() {
14+
return new StubCodecMediaEngine();
15+
}
16+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package me.tamkungz.codecmedia;
2+
3+
import java.nio.file.Path;
4+
import me.tamkungz.codecmedia.model.ConversionResult;
5+
import me.tamkungz.codecmedia.model.ExtractionResult;
6+
import me.tamkungz.codecmedia.model.Metadata;
7+
import me.tamkungz.codecmedia.model.ProbeResult;
8+
import me.tamkungz.codecmedia.model.ValidationResult;
9+
import me.tamkungz.codecmedia.options.AudioExtractOptions;
10+
import me.tamkungz.codecmedia.options.ConversionOptions;
11+
import me.tamkungz.codecmedia.options.ValidationOptions;
12+
13+
public interface CodecMediaEngine {
14+
15+
ProbeResult probe(Path input) throws CodecMediaException;
16+
17+
Metadata readMetadata(Path input) throws CodecMediaException;
18+
19+
void writeMetadata(Path input, Metadata metadata) throws CodecMediaException;
20+
21+
ExtractionResult extractAudio(Path input, Path outputDir, AudioExtractOptions options) throws CodecMediaException;
22+
23+
ConversionResult convert(Path input, Path output, ConversionOptions options) throws CodecMediaException;
24+
25+
ValidationResult validate(Path input, ValidationOptions options) throws CodecMediaException;
26+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package me.tamkungz.codecmedia;
2+
3+
public class CodecMediaException extends Exception {
4+
5+
public CodecMediaException(String message) {
6+
super(message);
7+
}
8+
9+
public CodecMediaException(String message, Throwable cause) {
10+
super(message, cause);
11+
}
12+
}

0 commit comments

Comments
 (0)