Skip to content

Commit

Permalink
Release KPM v3
Browse files Browse the repository at this point in the history
  • Loading branch information
PeyaPeyaPeyang authored Mar 2, 2023
2 parents c234bf0 + 3be83e7 commit 4e2f405
Show file tree
Hide file tree
Showing 406 changed files with 26,900 additions and 5,546 deletions.
57 changes: 28 additions & 29 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ name: "CodeQL"

on:
push:
branches: [ stable, develop ]
branches: [stable, develop]
pull_request:
# The branches below must be a subset of the branches above
branches: [ develop ]
branches: [develop]
schedule:
- cron: '31 8 * * 4'

Expand All @@ -28,40 +28,39 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'java' ]
language: ['java']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
31 changes: 18 additions & 13 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,29 @@ name: Java CI with Maven

on:
push:
branches: [develop, stable]
pull_request:
branches: [develop, stable]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- uses: actions/cache@v1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- name: Build with Maven
run: mvn -B package --file pom.xml
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- uses: actions/cache@v1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- name: Build with Maven
run: mvn -B package --file pom.xml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TOKEN: "dummy_token_114514" # for maven test
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
# IntelliJ
out/


>>>>>>> origin/main
# Compiled class file
*.class

Expand Down
14 changes: 8 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

## 私たちの約束

メンバー、コントリビューター、およびリーダーとして、年齢、体の大きさ、目に見えるまたは目に見えない障害、民族性、性別、 性同一性、表現、経験のレベル、教育、社会経済的地位、国籍、人格、人種、宗教、または性的同一性と指向に関係なく、
メンバー、コントリビューター、およびリーダーとして、年齢、体の大きさ、目に見えるまたは目に見えない障害、民族性、性別、
性同一性、表現、経験のレベル、教育、社会経済的地位、国籍、人格、人種、宗教、または性的同一性と指向に関係なく、
コミュニティへの参加をハラスメントのない体験にすることを誓います。

私たちは、オープンで親しみやすく、多様で包括的で健全なコミュニティに貢献する方法で行動し、交流することを誓います。
Expand Down Expand Up @@ -48,7 +49,7 @@

## 執行

虐待的、嫌がらせ、またはその他の許容できない行動の事例は、執行を担当するコミュニティリーダーに対してプライベートコミュニティで報告される場合があります
虐待的、嫌がらせ、またはその他の許容できない行動の事例は、執行を担当するコミュニティリーダーに対して報告される場合があります
すべての苦情は迅速かつ公正にレビューおよび調査されます。

すべてのコミュニティリーダーは、問題の報告者のプライバシーとセキュリティを尊重する義務があります。
Expand All @@ -67,14 +68,16 @@

**コミュニティへの影響**: 単一の出来事または一連の動作による違反。

**帰結**: 持続的な行動の結果を伴う警告。 指定された期間、行動規範の実施者との一方的な対話を含め、関係者との対話はありません。 これには、コミュニティスペースやソーシャルメディアなどの外部チャネルでの相互作用の回避が含まれます。
**帰結**: 持続的な行動の結果を伴う警告。 指定された期間、行動規範の実施者との一方的な対話を含め、関係者との対話はありません。
これには、コミュニティスペースやソーシャルメディアなどの外部チャネルでの相互作用の回避が含まれます。
これらの条件に違反すると、一時的または永続的に禁止される場合があります。

### 3. 一時的な禁止

**コミュニティへの影響**: 持続的で不適切な行動を含む、コミュニティ標準の重大な違反。

**帰結**: 指定された期間のコミュニティとのあらゆる種類の相互関係または公的なコミュニケーションの一時的な禁止。 この期間中、行動規範を実施する人々との一方的な対話を含め、関係する人々との公的または私的な対話は許可されません。
**帰結**: 指定された期間のコミュニティとのあらゆる種類の相互関係または公的なコミュニケーションの一時的な禁止。
この期間中、行動規範を実施する人々との一方的な対話を含め、関係する人々との公的または私的な対話は許可されません。
これらの条件に違反すると、永久的に禁止される場合があります。

### 4. 永久的な禁止
Expand All @@ -85,8 +88,7 @@

## 帰属

この行動規範は、[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]
で利用可能な [Contributor Covenant][homepage]
この行動規範は、[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0] で利用可能な [Contributor Covenant][homepage]
バージョン2.0を基に作成されています。

コミュニティへの影響ガイドラインは[Mozilla's code of conduct enforcement ladder][Mozilla CoC] に適合しています。
Expand Down
41 changes: 41 additions & 0 deletions KPMAlias/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.kunlab.kpm</groupId>
<artifactId>TeamKunPluginManager</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>KPMAlias</artifactId>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>org.kunlab.kpm</groupId>
<artifactId>KPMCommon</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.kunlab.kpm</groupId>
<artifactId>KPMModels</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.kunlab.kpm</groupId>
<artifactId>KPMResolver</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
139 changes: 139 additions & 0 deletions KPMAlias/src/main/java/org/kunlab/kpm/alias/AliasProviderImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
package org.kunlab.kpm.alias;

import com.zaxxer.hikari.HikariDataSource;
import lombok.AccessLevel;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.kunlab.kpm.alias.interfaces.Alias;
import org.kunlab.kpm.alias.interfaces.AliasProvider;
import org.kunlab.kpm.alias.interfaces.AliasSource;
import org.kunlab.kpm.db.ResultRow;
import org.kunlab.kpm.db.Transaction;

import java.nio.file.Path;
import java.sql.Statement;

public class AliasProviderImpl implements AliasProvider
{
@Getter(AccessLevel.PACKAGE)
private final HikariDataSource db;

public AliasProviderImpl(@NotNull Path path)
{
this.db = Transaction.createDataSource(path);

this.initializeTables();
}

private void initializeTables()
{
Transaction.create(this.db)
.doTransaction((tr) -> {
Statement stmt = tr.getConnection().createStatement();

stmt.execute("CREATE TABLE IF NOT EXISTS alias(" +
"alias TEXT NOT NULL PRIMARY KEY," +
"query TEXT NOT NULL," +
"source_id TEXT NOT NULL" +
")");

stmt.execute("CREATE TABLE IF NOT EXISTS source(" +
"name TEXT PRIMARY KEY NOT NULL," +
"source TEXT NOT NULL," +
"type TEXT NOT NULL" +
")");
});
}

@Override
public void close()
{
this.db.close();
}

@Override
public AliasUpdaterImpl createUpdater(@NotNull String sourceName, @NotNull String sourceURL)
{
return new AliasUpdaterImpl(sourceName, sourceURL, this);
}

/**
* エイリアスが存在するかどうかを返します。
*
* @param query エイリアス対象のkueri
* @return エイリアスが存在するかどうか
*/
@Override
public boolean hasAlias(@NotNull String query)

{
return Transaction.create(this.db, "SELECT COUNT(*) FROM alias WHERE query = ?")
.set(1, query)
.isExists();
}

@Override
public boolean hasSource(String id)
{
return Transaction.create(this.db, "SELECT COUNT(*) FROM source WHERE name = ?")
.set(1, id)
.isExists();
}

@Override
public AliasSource getSource(String id)
{
try (Transaction transaction = Transaction.create(this.db, "SELECT * FROM source WHERE name = ?")
.set(1, id);
ResultRow row = transaction
.executeQuery()
.stream()
.findFirst().orElse(null))
{
if (row == null)
return null;

return new AliasSourceImpl(
row.getString("name"),
row.getString("source"),
AliasSourceType.valueOf(row.getString("type"))
);
}
}

@Override
@Nullable
public Alias getQueryByAlias(String alias)
{
try (Transaction transaction = Transaction.create(this.db, "SELECT * FROM alias WHERE alias = ?")
.set(1, alias);
ResultRow row = transaction
.executeQuery()
.stream()
.findFirst().orElse(null))
{
if (row == null)
return null;

return new AliasRecord(
row.getString("alias"),
row.getString("query"),
row.getString("source_id")
);
}
}

@Override
public int countAliases()
{
try (Transaction transaction = Transaction.create(this.db, "SELECT COUNT(alias) FROM alias"))
{
return transaction.executeQuery().stream()
.findFirst()
.map(row -> row.getInt("COUNT(alias)"))
.orElse(0);
}
}

}
17 changes: 17 additions & 0 deletions KPMAlias/src/main/java/org/kunlab/kpm/alias/AliasSourceImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.kunlab.kpm.alias;

import lombok.Value;
import org.jetbrains.annotations.NotNull;
import org.kunlab.kpm.alias.interfaces.AliasSource;

@Value
class AliasSourceImpl implements AliasSource
{
@NotNull
String name;
@NotNull
String source;

@NotNull
AliasSourceType type;
}
Loading

0 comments on commit 4e2f405

Please sign in to comment.