Skip to content
Closed
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
100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,106 @@ TransactionData result = processor.process();
- ✅ **Compile-time**: Type checking for target classes
- ✅ **Runtime**: Automatic instantiation and binding

## Build & Development

### Prerequisites

- **JDK 25** (required)
- **Gradle 9.0.0** (included via Gradle Wrapper)

### Build Commands (Run Serially)

```bash
# 1. Clean previous build artifacts
./gradlew clean

# 2. Compile all modules
./gradlew compileJava

# 3. Run all tests
./gradlew test

# 4. Build all modules (compile + test + jar)
./gradlew build

# 5. Publish to Maven Local Repository
./gradlew :lib:publishToMavenLocal
```

### Single Command (Clean Build + Maven Local Publish)

```bash
# All-in-one: clean, build, test, and publish to Maven Local
./gradlew clean build :lib:publishToMavenLocal
```

### Maven Local Artifact Location

After publishing, artifacts are available at:
```
~/.m2/repository/io/github/anamitraupadhyay/lib/1.0.0-SNAPSHOT/
├── lib-1.0.0-SNAPSHOT.jar
├── lib-1.0.0-SNAPSHOT-sources.jar
├── lib-1.0.0-SNAPSHOT-javadoc.jar
├── lib-1.0.0-SNAPSHOT.pom
└── lib-1.0.0-SNAPSHOT.module
```

### Use as Dependency

After publishing to Maven Local, add to your project:

**Gradle:**
```groovy
repositories {
mavenLocal()
}

dependencies {
implementation 'io.github.anamitraupadhyay:lib:1.0.0-SNAPSHOT'
}
```

**Maven:**
```xml
<dependency>
<groupId>io.github.anamitraupadhyay</groupId>
<artifactId>lib</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
```

### Additional Gradle Tasks

```bash
# View all available publishing tasks
./gradlew tasks --group=publishing

# Verify publication configuration
./gradlew :lib:verifyPublication

# Generate Javadoc
./gradlew :lib:javadoc

# Create source JAR
./gradlew :lib:sourcesJar

# Create Javadoc JAR
./gradlew :lib:javadocJar
```

### Gradle Wrapper

The project uses Gradle Wrapper (gradlew) version 9.0.0. No manual Gradle installation required.

```bash
# Check Gradle version
./gradlew --version

# Update Gradle Wrapper (if needed)
./gradlew wrapper --gradle-version=9.0.0
```

## Running the Demo

```bash
Expand Down
6 changes: 6 additions & 0 deletions Threadimpl/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ plugins {
group = 'org.javaweb'
version = 'unspecified'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}

repositories {
mavenCentral()
}
Expand Down
6 changes: 6 additions & 0 deletions Webserver/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ plugins {
group = 'org.javaweb'
version = 'unspecified'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}

repositories {
mavenCentral()
}
Expand Down
13 changes: 7 additions & 6 deletions examples/servlet-app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id 'java'
id 'io.quarkus' version '3.12.0'
id 'io.quarkus' version '3.30.1'
}

repositories {
Expand All @@ -10,7 +10,7 @@ repositories {
}

dependencies {
implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.12.0')
implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.30.1')
implementation 'io.quarkus:quarkus-undertow'
implementation 'io.quarkus:quarkus-arc'

Expand All @@ -20,8 +20,8 @@ dependencies {

testImplementation 'io.quarkus:quarkus-junit5'

compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'
compileOnly 'org.projectlombok:lombok:1.18.42'
annotationProcessor 'org.projectlombok:lombok:1.18.42'

// Your library
implementation "io.github.anamitraupadhyay:lib:1.0.0-SNAPSHOT"
Expand All @@ -31,8 +31,9 @@ group 'org.example'
version '1.0.0-SNAPSHOT'

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}

test {
Expand Down
4 changes: 2 additions & 2 deletions examples/servlet-app/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#Gradle properties
quarkusPlatformGroupId=io.quarkus.platform
quarkusPlatformArtifactId=quarkus-bom
quarkusPlatformVersion=3.12.0
quarkusPlatformVersion=3.30.1

# Plugin properties (if you want to use variables in settings.gradle)
quarkusPluginId=io.quarkus
quarkusPluginVersion=3.12.0
quarkusPluginVersion=3.30.1
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion examples/spring-app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description = 'Demo project for Spring Boot'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(25)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Empty file modified examples/spring-app/gradlew
100644 → 100755
Empty file.
13 changes: 7 additions & 6 deletions examples/undertow-app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id 'java'
id 'io.quarkus' version '3.12.0'
id 'io.quarkus' version '3.30.1'
}

repositories {
Expand All @@ -10,7 +10,7 @@ repositories {
}

dependencies {
implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.12.0')
implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.30.1')
implementation 'io.quarkus:quarkus-undertow'
implementation 'io.quarkus:quarkus-arc'

Expand All @@ -20,8 +20,8 @@ dependencies {

testImplementation 'io.quarkus:quarkus-junit5'

compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'
compileOnly 'org.projectlombok:lombok:1.18.42'
annotationProcessor 'org.projectlombok:lombok:1.18.42'

// Your library
implementation "io.github.anamitraupadhyay:lib:1.0.0-SNAPSHOT"
Expand All @@ -31,8 +31,9 @@ group 'org.example'
version '1.0.0-SNAPSHOT'

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}

test {
Expand Down
4 changes: 2 additions & 2 deletions examples/undertow-app/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Gradle properties

quarkusPluginId=io.quarkus
quarkusPluginVersion=3.15.7
quarkusPluginVersion=3.30.1
quarkusPlatformGroupId=io.quarkus.platform
quarkusPlatformArtifactId=quarkus-bom
quarkusPlatformVersion=3.15.7
quarkusPlatformVersion=3.30.1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Empty file modified examples/undertow-app/gradlew
100644 → 100755
Empty file.
4 changes: 2 additions & 2 deletions lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ dependencies {
testImplementation 'org.mockito:mockito-core:5.7.0'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.10.2'

implementation platform("io.quarkus:quarkus-bom:3.12.0")
implementation platform("io.quarkus:quarkus-bom:3.30.1")

implementation 'io.quarkus:quarkus-arc'
implementation 'io.quarkus:quarkus-undertow'
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(25)
}
withSourcesJar()
withJavadocJar()
Expand Down
3 changes: 1 addition & 2 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,5 @@ rootProject.name = "Quarklets"
include("lib")
// include("examples:servlet-app") // comment this out temporarily

include 'guiceimpl'
include 'Webserver'
include 'Threadimpl'
include 'Threadimpl'