From f3bbe651c92c6ebd17752ce2085a85a6e7c13195 Mon Sep 17 00:00:00 2001 From: Bill O'Neil Date: Sat, 23 Jun 2018 20:01:10 -0400 Subject: [PATCH 1/5] Write scripts to copy hardcoded data into the database --- .../com/stubbornjava/webapp/post/Post.java | 1 + .../com/stubbornjava/webapp/post/Posts.java | 32 +++++++++++++++++++ .../com/stubbornjava/webapp/post/Tags.java | 15 +++++++++ 3 files changed, 48 insertions(+) diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java index 1edde563..bf4b738c 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java @@ -11,4 +11,5 @@ public class Post { @JsonUnwrapped private final PostMeta postMeta; private final String content; + private final String contentTemplate; } diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java index 0265341e..84295f10 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java @@ -14,7 +14,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; +import com.stubbornjava.cms.server.CmsDSLs; +import com.stubbornjava.common.Resources; import com.stubbornjava.common.Templating; +import com.stubbornjava.webapp.WebappBoostrap; import com.stubbornjava.webapp.github.FileContent; import com.stubbornjava.webapp.github.GitHubSource; import com.stubbornjava.webapp.post.TagOrLibrary.Type; @@ -126,9 +129,38 @@ private static Post postFromMeta(PostRaw postRaw) { .toMap(fc -> fc.getName()); String content = Templating.instance().renderTemplate("templates/src/posts/" + postRaw.getSlug(), fileContents); + String template = Resources.asString("templates/src/posts/" + postRaw.getSlug() + ".hbs"); return Post.builder() .postMeta(meta) .content(content) + .contentTemplate(template) .build(); } + + public static void main(String[] args) { + WebappBoostrap.run(() -> { + List posts = Seq.seq(PostData.getPosts()) + .map(Posts::postFromMeta) + .toList(); + + for (Post post : posts) { + PostMeta meta = post.getPostMeta(); + com.stubbornjava.cms.server.post.FullPost newPost = new com.stubbornjava.cms.server.post.FullPost( + null, + 1, + meta.getTitle(), + meta.getSlug(), + meta.getMetaDesc(), + "PUBLISHED", + meta.getDateCreated(), + meta.getDateCreated(), + meta.getDateCreated().toLocalDate(), + post.getContentTemplate(), + Seq.seq(meta.getTagOrLibraries()).filter(tl -> tl.getType() == Type.Tag).map(x -> x.getName()).toSet()); + CmsDSLs.transactional().transaction(ctx -> { + com.stubbornjava.cms.server.post.FullPost created = com.stubbornjava.cms.server.post.Posts.create(ctx, 1, newPost); + }); + } + }); + } } diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Tags.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Tags.java index 8381ad52..cf78472f 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Tags.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Tags.java @@ -1,9 +1,15 @@ package com.stubbornjava.webapp.post; +import java.time.LocalDateTime; import java.util.List; import com.google.common.collect.Lists; +import com.stubbornjava.cms.server.CMSBootstrap; +import com.stubbornjava.cms.server.CmsDSLs; +import com.stubbornjava.cms.server.post.PostTag; +import com.stubbornjava.cms.server.post.PostTags; +@Deprecated public class Tags { private static final List TAGS = Lists.newArrayList(); public static final Tag JSON = addTag(new Tag(811790051562631559L, "JSON")); @@ -41,4 +47,13 @@ private static Tag addTag(Tag tag) { public static List getTags() { return TAGS; } + + public static void main(String[] args) { + CMSBootstrap.run(() -> { + for (Tag tag : TAGS) { + PostTag postTag = new PostTag(null, 1, tag.getName(), LocalDateTime.now()); + CmsDSLs.transactional().transaction((ctx) -> PostTags.create(ctx, postTag)); + } + }); + } } From f932cfc0fe1c7f70141cf37cb40181d4fcd33794 Mon Sep 17 00:00:00 2001 From: Bill O'Neil Date: Sun, 24 Jun 2018 00:18:05 -0400 Subject: [PATCH 2/5] WIP --- .../cms/server/post/PostMeta.java | 19 +++ .../cms/server/post/PostSearch.java | 16 +++ .../cms/server/post/PostTags.java | 38 +++++- .../stubbornjava/cms/server/post/Posts.java | 129 ++++++++++++++++-- .../com/stubbornjava/common/Multimaps.java | 18 +++ .../webapp/post/JavaLibRoutes.java | 1 + .../com/stubbornjava/webapp/post/Post.java | 1 + .../stubbornjava/webapp/post/PostMeta.java | 23 ---- .../stubbornjava/webapp/post/PostRoutes.java | 1 + .../com/stubbornjava/webapp/post/Posts.java | 7 +- 10 files changed, 210 insertions(+), 43 deletions(-) create mode 100644 stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java create mode 100644 stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostSearch.java create mode 100644 stubbornjava-common/src/main/java/com/stubbornjava/common/Multimaps.java delete mode 100644 stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java new file mode 100644 index 00000000..8c2d06e3 --- /dev/null +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java @@ -0,0 +1,19 @@ +package com.stubbornjava.cms.server.post; + +import java.time.LocalDate; +import java.util.List; + +import lombok.Builder; +import lombok.Singular; +import lombok.Value; + +@Value +@Builder(toBuilder=true) +public class PostMeta { + private final long postId; + private final int appId; + private final String title; + private final String slug; + private final LocalDate dateCreated; + @Singular private final List tags; +} diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostSearch.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostSearch.java new file mode 100644 index 00000000..ae98008c --- /dev/null +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostSearch.java @@ -0,0 +1,16 @@ +package com.stubbornjava.cms.server.post; + +import java.util.Set; + +import lombok.Builder; +import lombok.Data; +import lombok.Singular; + +@Data +@Builder(toBuilder=true) +public class PostSearch { + private final int appId; + @Singular private final Set excludePostIds; + @Singular private final Set tagNames; + private final Integer limit; +} diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostTags.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostTags.java index da9b9fc5..5293ef6b 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostTags.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostTags.java @@ -1,19 +1,32 @@ package com.stubbornjava.cms.server.post; +import java.util.Arrays; +import java.util.Collection; import java.util.List; -import java.util.Set; +import java.util.Map; import org.jooq.DSLContext; +import org.jooq.Field; import org.jooq.lambda.Seq; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; +import com.stubbornjava.cms.server.CMSBootstrap; +import com.stubbornjava.cms.server.CmsDSLs; import com.stubbornjava.cms.server.generated.Tables; +import com.stubbornjava.cms.server.generated.tables.PostTable; +import com.stubbornjava.cms.server.generated.tables.PostTagLinksTable; import com.stubbornjava.cms.server.generated.tables.PostTagTable; import com.stubbornjava.cms.server.generated.tables.records.PostTagLinksRecord; import com.stubbornjava.cms.server.generated.tables.records.PostTagRecord; +import com.stubbornjava.common.Multimaps; import com.stubbornjava.common.db.Dao; public class PostTags { private PostTags() {} + private static final PostTable post = Tables.POST; + private static final PostTagTable postTag = Tables.POST_TAG; + private static final PostTagLinksTable postTagLinks = Tables.POST_TAG_LINKS; private static final Dao postTagDao = new Dao<>(Tables.POST_TAG, PostTags::fromRecord, PostTags::toRecord); @@ -21,11 +34,25 @@ public static PostTag create(DSLContext ctx, PostTag tag) { return postTagDao.insertReturning(ctx, tag); } - public static List findPostTagsByName(DSLContext ctx, int appId, Set tags) { + public static List findPostTagsByName(DSLContext ctx, int appId, Collection tags) { return postTagDao.fetch(ctx, pt -> pt.APP_ID.eq(appId) .and(pt.NAME.in(tags))); } + public static Multimap findTagsForPosts(DSLContext ctx, int appId, Collection postIds) { + List> fields = Lists.newArrayList(postTagLinks.POST_ID); + fields.addAll(Arrays.asList(postTag.fields())); + Map> tags = ctx.select(fields) + .from(postTag) + .join(postTagLinks) + .on(postTag.POST_TAG_ID.eq(postTagLinks.POST_TAG_ID)) + .where(postTagLinks.POST_ID.in(postIds)) + .fetchGroups(postTagLinks.POST_ID, record -> { + return PostTags.fromRecord(record.into(postTag)); + }); + return Multimaps.newListMultimap(tags); + } + /* * There are some race conditions here if there's two updates * at the same time but good enough for now. @@ -52,6 +79,11 @@ static PostTag fromRecord(PostTagRecord record) { } public static void main(String[] args) { - + CMSBootstrap.run(() -> { + CmsDSLs.transactional().transaction(ctx -> { + Multimap results = findTagsForPosts(ctx, 1, Lists.newArrayList(1L, 2L)); + System.out.println(); + }); + }); } } diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java index 52dff157..afc07673 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java @@ -1,41 +1,133 @@ package com.stubbornjava.cms.server.post; +import java.util.Collection; import java.util.List; +import java.util.Optional; import java.util.Set; +import org.jooq.Condition; import org.jooq.DSLContext; +import org.jooq.Field; +import org.jooq.impl.DSL; +import org.jooq.lambda.Seq; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import com.stubbornjava.cms.server.generated.Tables; import com.stubbornjava.cms.server.generated.tables.PostTable; +import com.stubbornjava.cms.server.generated.tables.PostTagLinksTable; +import com.stubbornjava.cms.server.generated.tables.PostTagTable; import com.stubbornjava.cms.server.generated.tables.records.PostRecord; import com.stubbornjava.common.db.Dao; public class Posts { private Posts() {} + private static final PostTable post = Tables.POST; + private static final PostTagTable postTag = Tables.POST_TAG; + private static final PostTagLinksTable postTagLinks = Tables.POST_TAG_LINKS; private static final Dao postDao = new Dao<>(Tables.POST, Posts::fromRecord, Posts::toRecord); + private static final List> postMetaFields = Lists.newArrayList(post.POST_ID, post.APP_ID, post.TITLE, post.SLUG, post.DATE_CREATED); + public static FullPost create(DSLContext ctx, int appId, FullPost fullPost) { Post post = postFromFull(fullPost); Post created = postDao.insertReturning(ctx, post); Set tags = fullPost.getTags(); List postTags = PostTags.findPostTagsByName(ctx, appId, tags); PostTags.linkTagsToPost(ctx, appId, created.getPostId(), postTags); - return buildFullPost(created); + return buildFullPost(created, postTags); + } + + + public static List getRecentPostsExcluding(DSLContext ctx, int appId, Set excludePostIds) { + PostSearch search = PostSearch.builder() + .appId(appId) + .excludePostIds(excludePostIds) + .limit(10) + .build(); + return postSearch(ctx, appId, search); + } + + public static List getRecentPosts(DSLContext ctx, int appId) { + return getRecentPosts(ctx, appId, 10); + } + + public static List getRecentPosts(DSLContext ctx, int appId, int num) { + PostSearch search = PostSearch.builder() + .appId(appId) + .limit(num) + .build(); + return postSearch(ctx, appId, search); + } + + public static List getRecentPostsWithTag(DSLContext ctx, int appId, String tag) { + PostSearch search = PostSearch.builder() + .appId(appId) + .tagName(tag) + .limit(50) + .build(); + return postSearch(ctx, appId, search); + } + + private static List postSearch(DSLContext ctx, int appId, PostSearch searchRequest) { + Condition condition = DSL.trueCondition(); + + if (!searchRequest.getExcludePostIds().isEmpty()) { + condition.and(post.POST_ID.notIn(searchRequest.getExcludePostIds())); + } + + if (!searchRequest.getTagNames().isEmpty()) { + condition.and(post.POST_ID.in(ctx.select(postTagLinks.POST_ID) + .from(postTag) + .where(postTag.NAME.in(searchRequest.getTagNames())))); + } + + int limit = Optional.ofNullable(searchRequest.getLimit()).orElse(50); + + List posts = ctx.select(postMetaFields) + .from(post) + .where(condition) + .orderBy(post.DATE_CREATED.desc(), post.DATE_CREATED_TS.desc()) + .limit(limit) + .fetch(record -> Posts.metaFromRecord(record.into(post))); + Multimap tagsByPostId = PostTags.findTagsForPosts(ctx, appId, metaIds(posts)); + + List postMetas = Seq.seq(posts).map(p -> { + List tagNames = Seq.seq(tagsByPostId.get(p.getPostId())).map(PostTag::getName).toList(); + return p.toBuilder() + .tags(tagNames) + .build(); + }).toList(); + return postMetas; + } + + private static Set ids(Collection posts) { + return Seq.seq(posts).map(Post::getPostId).toSet(); + } + + private static Set metaIds(Collection posts) { + return Seq.seq(posts).map(PostMeta::getPostId).toSet(); + } + + private static List buildFullPosts(DSLContext ctx, List posts, Multimap tagsByPostId) { + return Seq.seq(posts) + .map(post -> buildFullPost(post, tagsByPostId.get(post.getPostId()))) + .toList(); } - static FullPost buildFullPost(Post post) { + private static FullPost buildFullPost(Post post, Collection tags) { return new FullPost( - post.getPostId(), - post.getAppId(), - post.getTitle(), - post.getSlug(), - post.getMetadesc(), - post.getDraftStatus(), - post.getLastUpdateTs(), - post.getDateCreatedTs(), - post.getDateCreated(), - post.getContentTemplate(), - null); + post.getPostId(), + post.getAppId(), + post.getTitle(), + post.getSlug(), + post.getMetadesc(), + post.getDraftStatus(), + post.getLastUpdateTs(), + post.getDateCreatedTs(), + post.getDateCreated(), + post.getContentTemplate(), + Seq.seq(tags).map(PostTag::getName).toSet()); } static Post postFromFull(FullPost fullPost) { @@ -82,4 +174,15 @@ static Post fromRecord(PostRecord record) { record.getContentTemplate() ); } + + static PostMeta metaFromRecord(PostRecord record) { + return new PostMeta( + record.getPostId(), + record.getAppId(), + record.getTitle(), + record.getSlug(), + record.getDateCreated(), + null + ); + } } diff --git a/stubbornjava-common/src/main/java/com/stubbornjava/common/Multimaps.java b/stubbornjava-common/src/main/java/com/stubbornjava/common/Multimaps.java new file mode 100644 index 00000000..3e2fedbf --- /dev/null +++ b/stubbornjava-common/src/main/java/com/stubbornjava/common/Multimaps.java @@ -0,0 +1,18 @@ +package com.stubbornjava.common; + +import java.util.Map; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; + +public class Multimaps { + private Multimaps() {} + + public static Multimap newListMultimap(Map> input) { + Multimap multimap = ArrayListMultimap.create(); + for (Map.Entry> entry : input.entrySet()) { + multimap.putAll(entry.getKey(), entry.getValue()); + } + return multimap; + } +} diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java index fbe8c539..c6d9c8aa 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.stubbornjava.cms.server.post.PostMeta; import com.stubbornjava.common.undertow.Exchange; import com.stubbornjava.webapp.Response; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java index bf4b738c..1c4a1eaf 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java @@ -1,6 +1,7 @@ package com.stubbornjava.webapp.post; import com.fasterxml.jackson.annotation.JsonUnwrapped; +import com.stubbornjava.cms.server.post.PostMeta; import lombok.Builder; import lombok.Value; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java deleted file mode 100644 index f33866fc..00000000 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.stubbornjava.webapp.post; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.List; - -import lombok.Builder; -import lombok.Singular; -import lombok.Value; - -@Value -@Builder(toBuilder=true) -public class PostMeta { - private final long postId; - private final String title; - private final String metaDesc; - private final String slug; - @Singular private final List tagOrLibraries; - private final LocalDateTime dateCreated; - public LocalDate dateCreatedShort() { - return dateCreated.toLocalDate(); - } -} diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java index db7cfd78..fb1d525e 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java @@ -2,6 +2,7 @@ import java.util.List; +import com.stubbornjava.cms.server.post.PostMeta; import com.stubbornjava.common.undertow.Exchange; import com.stubbornjava.webapp.PageRoutes; import com.stubbornjava.webapp.Response; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java index 84295f10..ee78d674 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java @@ -15,6 +15,7 @@ import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.stubbornjava.cms.server.CmsDSLs; +import com.stubbornjava.cms.server.post.PostMeta; import com.stubbornjava.common.Resources; import com.stubbornjava.common.Templating; import com.stubbornjava.webapp.WebappBoostrap; @@ -55,10 +56,8 @@ public class Posts { } } - public static List getRecentPostsExcluding(Set excludeIds) { - return Seq.seq(recentPosts) - .filter(p -> !excludeIds.contains(p.getPostId())) - .limit(10).toList(); + public static List getRecentPostsExcluding(Set excludePostIds) { + return com.stubbornjava.cms.server.post.Posts.getRecentPostsExcluding(ctx, 1L, excludeIds); } public static List getRecentPosts() { From e6e5ef26861b387c101c0c18f2c04943653200c7 Mon Sep 17 00:00:00 2001 From: Bill O'Neil Date: Sun, 24 Jun 2018 19:30:22 -0400 Subject: [PATCH 3/5] WIP --- .../server/generated/tables/PostTable.java | 5 ++-- .../generated/tables/records/PostRecord.java | 27 +++++++++-------- .../cms/server/CMSMigrations.java | 6 ++++ .../cms/server/post/DraftStatus.java | 9 ++++++ .../cms/server/post/FullPost.java | 2 +- .../stubbornjava/cms/server/post/Post.java | 2 +- .../post/{PostMeta.java => PostInfo.java} | 2 +- .../stubbornjava/cms/server/post/Posts.java | 30 +++++++++---------- .../com/stubbornjava/common/HttpClient.java | 25 ++++++++++++++-- .../webapp/post/JavaLibRoutes.java | 1 - .../com/stubbornjava/webapp/post/Post.java | 1 - .../stubbornjava/webapp/post/PostMeta.java | 24 +++++++++++++++ .../stubbornjava/webapp/post/PostRoutes.java | 1 - .../com/stubbornjava/webapp/post/Posts.java | 25 ++++++++++------ 14 files changed, 113 insertions(+), 47 deletions(-) create mode 100644 stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/DraftStatus.java rename stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/{PostMeta.java => PostInfo.java} (94%) create mode 100644 stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java index d43ad122..2d5e4253 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java @@ -8,6 +8,7 @@ import com.stubbornjava.cms.server.generated.Keys; import com.stubbornjava.cms.server.generated.SjCms; import com.stubbornjava.cms.server.generated.tables.records.PostRecord; +import com.stubbornjava.cms.server.post.DraftStatus; import java.time.LocalDate; import java.time.LocalDateTime; @@ -42,7 +43,7 @@ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTable extends TableImpl { - private static final long serialVersionUID = 1003277514; + private static final long serialVersionUID = 204476478; /** * The reference instance of sj_cms.post @@ -85,7 +86,7 @@ public Class getRecordType() { /** * The column sj_cms.post.draft_status. */ - public final TableField DRAFT_STATUS = createField("draft_status", org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); + public final TableField DRAFT_STATUS = createField("draft_status", org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, "", new org.jooq.impl.EnumConverter(java.lang.String.class, com.stubbornjava.cms.server.post.DraftStatus.class)); /** * The column sj_cms.post.last_update_ts. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java index 21e39293..ed903d3a 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java @@ -5,6 +5,7 @@ import com.stubbornjava.cms.server.generated.tables.PostTable; +import com.stubbornjava.cms.server.post.DraftStatus; import java.time.LocalDate; import java.time.LocalDateTime; @@ -29,9 +30,9 @@ comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class PostRecord extends UpdatableRecordImpl implements Record10 { +public class PostRecord extends UpdatableRecordImpl implements Record10 { - private static final long serialVersionUID = 889636109; + private static final long serialVersionUID = 905926098; /** * Setter for sj_cms.post.post_id. @@ -106,15 +107,15 @@ public String getMetadesc() { /** * Setter for sj_cms.post.draft_status. */ - public void setDraftStatus(String value) { + public void setDraftStatus(DraftStatus value) { set(5, value); } /** * Getter for sj_cms.post.draft_status. */ - public String getDraftStatus() { - return (String) get(5); + public DraftStatus getDraftStatus() { + return (DraftStatus) get(5); } /** @@ -193,7 +194,7 @@ public Record1 key() { * {@inheritDoc} */ @Override - public Row10 fieldsRow() { + public Row10 fieldsRow() { return (Row10) super.fieldsRow(); } @@ -201,7 +202,7 @@ public Row10 valuesRow() { + public Row10 valuesRow() { return (Row10) super.valuesRow(); } @@ -249,7 +250,7 @@ public Field field5() { * {@inheritDoc} */ @Override - public Field field6() { + public Field field6() { return PostTable.POST.DRAFT_STATUS; } @@ -329,7 +330,7 @@ public String component5() { * {@inheritDoc} */ @Override - public String component6() { + public DraftStatus component6() { return getDraftStatus(); } @@ -409,7 +410,7 @@ public String value5() { * {@inheritDoc} */ @Override - public String value6() { + public DraftStatus value6() { return getDraftStatus(); } @@ -494,7 +495,7 @@ public PostRecord value5(String value) { * {@inheritDoc} */ @Override - public PostRecord value6(String value) { + public PostRecord value6(DraftStatus value) { setDraftStatus(value); return this; } @@ -539,7 +540,7 @@ public PostRecord value10(String value) { * {@inheritDoc} */ @Override - public PostRecord values(Long value1, Integer value2, String value3, String value4, String value5, String value6, LocalDateTime value7, LocalDateTime value8, LocalDate value9, String value10) { + public PostRecord values(Long value1, Integer value2, String value3, String value4, String value5, DraftStatus value6, LocalDateTime value7, LocalDateTime value8, LocalDate value9, String value10) { value1(value1); value2(value2); value3(value3); @@ -567,7 +568,7 @@ public PostRecord() { /** * Create a detached, initialised PostRecord */ - public PostRecord(Long postId, Integer appId, String title, String slug, String metadesc, String draftStatus, LocalDateTime lastUpdateTs, LocalDateTime dateCreatedTs, LocalDate dateCreated, String contentTemplate) { + public PostRecord(Long postId, Integer appId, String title, String slug, String metadesc, DraftStatus draftStatus, LocalDateTime lastUpdateTs, LocalDateTime dateCreatedTs, LocalDate dateCreated, String contentTemplate) { super(PostTable.POST); set(0, postId); diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java index f4de2958..7ca37637 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java @@ -16,6 +16,7 @@ import org.jooq.util.mysql.MySQLDatabase; import com.mysql.jdbc.Driver; +import com.stubbornjava.cms.server.post.DraftStatus; import com.stubbornjava.common.db.CustomGeneratorStrategy; import com.stubbornjava.common.db.JooqConfig; import com.zaxxer.hikari.HikariDataSource; @@ -36,6 +37,11 @@ public static void migrate() { public static void codegen() throws Exception { List forcedTypes = JooqConfig.defaultForcedTypes(); + forcedTypes.add(new ForcedType() + .withUserType(DraftStatus.class.getName()) + .withEnumConverter(true) + .withExpression(".*draft_status.*")); + HikariDataSource ds = CMSConnectionPools.processing(); Configuration configuration = new Configuration() diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/DraftStatus.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/DraftStatus.java new file mode 100644 index 00000000..b2df81e8 --- /dev/null +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/DraftStatus.java @@ -0,0 +1,9 @@ +package com.stubbornjava.cms.server.post; + +public enum DraftStatus { + DELETED, + DRAFT, + PUBLISHED, + REVIEW, + SCHEDULED +} diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/FullPost.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/FullPost.java index 1f5db5a5..baf95c24 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/FullPost.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/FullPost.java @@ -18,7 +18,7 @@ public class FullPost { private final String title; private final String slug; private final String metadesc; - private final String draftStatus; + private final DraftStatus draftStatus; private final LocalDateTime lastUpdateTs; private final LocalDateTime dateCreatedTs; private final LocalDate dateCreated; diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Post.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Post.java index b2d7377d..a7dbdce4 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Post.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Post.java @@ -16,7 +16,7 @@ public class Post { private final String title; private final String slug; private final String metadesc; - private final String draftStatus; + private final DraftStatus draftStatus; private final LocalDateTime lastUpdateTs; private final LocalDateTime dateCreatedTs; private final LocalDate dateCreated; diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostInfo.java similarity index 94% rename from stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java rename to stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostInfo.java index 8c2d06e3..54e0eef8 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostMeta.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/PostInfo.java @@ -9,7 +9,7 @@ @Value @Builder(toBuilder=true) -public class PostMeta { +public class PostInfo { private final long postId; private final int appId; private final String title; diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java index afc07673..15c68db7 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/post/Posts.java @@ -39,7 +39,7 @@ public static FullPost create(DSLContext ctx, int appId, FullPost fullPost) { } - public static List getRecentPostsExcluding(DSLContext ctx, int appId, Set excludePostIds) { + public static List getRecentPostsExcluding(DSLContext ctx, int appId, Set excludePostIds) { PostSearch search = PostSearch.builder() .appId(appId) .excludePostIds(excludePostIds) @@ -48,11 +48,11 @@ public static List getRecentPostsExcluding(DSLContext ctx, int appId, return postSearch(ctx, appId, search); } - public static List getRecentPosts(DSLContext ctx, int appId) { + public static List getRecentPosts(DSLContext ctx, int appId) { return getRecentPosts(ctx, appId, 10); } - public static List getRecentPosts(DSLContext ctx, int appId, int num) { + public static List getRecentPosts(DSLContext ctx, int appId, int num) { PostSearch search = PostSearch.builder() .appId(appId) .limit(num) @@ -60,16 +60,16 @@ public static List getRecentPosts(DSLContext ctx, int appId, int num) return postSearch(ctx, appId, search); } - public static List getRecentPostsWithTag(DSLContext ctx, int appId, String tag) { + public static List getRecentPostsWithTag(DSLContext ctx, int appId, String tag) { PostSearch search = PostSearch.builder() - .appId(appId) - .tagName(tag) - .limit(50) - .build(); + .appId(appId) + .tagName(tag) + .limit(50) + .build(); return postSearch(ctx, appId, search); } - private static List postSearch(DSLContext ctx, int appId, PostSearch searchRequest) { + private static List postSearch(DSLContext ctx, int appId, PostSearch searchRequest) { Condition condition = DSL.trueCondition(); if (!searchRequest.getExcludePostIds().isEmpty()) { @@ -84,7 +84,7 @@ private static List postSearch(DSLContext ctx, int appId, PostSearch s int limit = Optional.ofNullable(searchRequest.getLimit()).orElse(50); - List posts = ctx.select(postMetaFields) + List posts = ctx.select(postMetaFields) .from(post) .where(condition) .orderBy(post.DATE_CREATED.desc(), post.DATE_CREATED_TS.desc()) @@ -92,7 +92,7 @@ private static List postSearch(DSLContext ctx, int appId, PostSearch s .fetch(record -> Posts.metaFromRecord(record.into(post))); Multimap tagsByPostId = PostTags.findTagsForPosts(ctx, appId, metaIds(posts)); - List postMetas = Seq.seq(posts).map(p -> { + List postMetas = Seq.seq(posts).map(p -> { List tagNames = Seq.seq(tagsByPostId.get(p.getPostId())).map(PostTag::getName).toList(); return p.toBuilder() .tags(tagNames) @@ -105,8 +105,8 @@ private static Set ids(Collection posts) { return Seq.seq(posts).map(Post::getPostId).toSet(); } - private static Set metaIds(Collection posts) { - return Seq.seq(posts).map(PostMeta::getPostId).toSet(); + private static Set metaIds(Collection posts) { + return Seq.seq(posts).map(PostInfo::getPostId).toSet(); } private static List buildFullPosts(DSLContext ctx, List posts, Multimap tagsByPostId) { @@ -175,8 +175,8 @@ static Post fromRecord(PostRecord record) { ); } - static PostMeta metaFromRecord(PostRecord record) { - return new PostMeta( + static PostInfo metaFromRecord(PostRecord record) { + return new PostInfo( record.getPostId(), record.getAppId(), record.getTitle(), diff --git a/stubbornjava-common/src/main/java/com/stubbornjava/common/HttpClient.java b/stubbornjava-common/src/main/java/com/stubbornjava/common/HttpClient.java index 9cbbbcab..11d08218 100644 --- a/stubbornjava-common/src/main/java/com/stubbornjava/common/HttpClient.java +++ b/stubbornjava-common/src/main/java/com/stubbornjava/common/HttpClient.java @@ -18,6 +18,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import okhttp3.Authenticator; +import okhttp3.Credentials; import okhttp3.Dispatcher; import okhttp3.Interceptor; import okhttp3.Interceptor.Chain; @@ -26,6 +28,7 @@ import okhttp3.OkHttpClient.Builder; import okhttp3.Request; import okhttp3.Response; +import okhttp3.Route; import okhttp3.logging.HttpLoggingInterceptor; import okhttp3.logging.HttpLoggingInterceptor.Level; @@ -56,6 +59,10 @@ public static Interceptor getHeaderInterceptor(String name, String value) { }; } + public static Authenticator basicAuth(String username, String password) { + return new BasicAuthenticator(username, password); + } + // {{start:client}} private static final OkHttpClient client; static { @@ -71,8 +78,6 @@ public static Interceptor getHeaderInterceptor(String name, String value) { .build(); } - ; - /* * Global client that can be shared for common HTTP tasks. */ @@ -149,4 +154,20 @@ public boolean verify(String hostname, SSLSession session) { return builder.build(); } // {{end:trustAllSslClient}} + + private static final class BasicAuthenticator implements Authenticator { + private final String username; + private final String password; + + public BasicAuthenticator(String username, String password) { + this.username = username; + this.password = password; + } + + @Override + public Request authenticate(Route route, Response response) throws IOException { + String credential = Credentials.basic(username, password); + return response.request().newBuilder().header("Authorization", credential).build(); + } + } } diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java index c6d9c8aa..fbe8c539 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/JavaLibRoutes.java @@ -5,7 +5,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.stubbornjava.cms.server.post.PostMeta; import com.stubbornjava.common.undertow.Exchange; import com.stubbornjava.webapp.Response; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java index 1c4a1eaf..bf4b738c 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Post.java @@ -1,7 +1,6 @@ package com.stubbornjava.webapp.post; import com.fasterxml.jackson.annotation.JsonUnwrapped; -import com.stubbornjava.cms.server.post.PostMeta; import lombok.Builder; import lombok.Value; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java new file mode 100644 index 00000000..caae8d28 --- /dev/null +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostMeta.java @@ -0,0 +1,24 @@ +package com.stubbornjava.webapp.post; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +import lombok.Builder; +import lombok.Singular; +import lombok.Value; + +@Value +@Builder(toBuilder=true) +public class PostMeta { + private final long postId; + private final int appId; + private final String title; + private final String slug; + private final String metaDesc; + @Singular private final List tagOrLibraries; + private final LocalDateTime dateCreated; + public LocalDate dateCreatedShort() { + return dateCreated.toLocalDate(); + } +} diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java index fb1d525e..db7cfd78 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/PostRoutes.java @@ -2,7 +2,6 @@ import java.util.List; -import com.stubbornjava.cms.server.post.PostMeta; import com.stubbornjava.common.undertow.Exchange; import com.stubbornjava.webapp.PageRoutes; import com.stubbornjava.webapp.Response; diff --git a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java index ee78d674..5e71993d 100644 --- a/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java +++ b/stubbornjava-webapp/src/main/java/com/stubbornjava/webapp/post/Posts.java @@ -15,7 +15,8 @@ import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.stubbornjava.cms.server.CmsDSLs; -import com.stubbornjava.cms.server.post.PostMeta; +import com.stubbornjava.cms.server.post.DraftStatus; +import com.stubbornjava.cms.server.post.PostInfo; import com.stubbornjava.common.Resources; import com.stubbornjava.common.Templating; import com.stubbornjava.webapp.WebappBoostrap; @@ -56,16 +57,22 @@ public class Posts { } } - public static List getRecentPostsExcluding(Set excludePostIds) { - return com.stubbornjava.cms.server.post.Posts.getRecentPostsExcluding(ctx, 1L, excludeIds); + public static List getRecentPostsExcluding(Set excludePostIds) { + return CmsDSLs.transactional().transactionResult(ctx -> { + return com.stubbornjava.cms.server.post.Posts.getRecentPostsExcluding(ctx, 1, excludePostIds); + }); } - public static List getRecentPosts() { - return Seq.seq(recentPosts).limit(10).toList(); + public static List getRecentPosts() { + return CmsDSLs.transactional().transactionResult(ctx -> { + return com.stubbornjava.cms.server.post.Posts.getRecentPosts(ctx, 1); + }); } - public static List getRecentPosts(int num) { - return Seq.seq(recentPosts).limit(num).toList(); + public static List getRecentPosts(int num) { + return CmsDSLs.transactional().transactionResult(ctx -> { + return com.stubbornjava.cms.server.post.Posts.getRecentPosts(ctx, 1, num); + }); } public static List getRecentPostsWithTag(String tag) { @@ -113,11 +120,11 @@ private static PostMeta metaFromPost(PostRaw postRaw) { tagOrLibraries = Seq.seq(tagOrLibraries).sorted(e -> e.getName()).toList(); return PostMeta.builder() .postId(postRaw.getPostId()) + .metaDesc(postRaw.getMetaDesc()) .tagOrLibraries(tagOrLibraries) .dateCreated(postRaw.getDateCreated()) .title(postRaw.getTitle()) .slug(postRaw.getSlug()) - .metaDesc(postRaw.getMetaDesc()) .build(); } @@ -150,7 +157,7 @@ public static void main(String[] args) { meta.getTitle(), meta.getSlug(), meta.getMetaDesc(), - "PUBLISHED", + DraftStatus.PUBLISHED, meta.getDateCreated(), meta.getDateCreated(), meta.getDateCreated().toLocalDate(), From 9f5d60c62166210da4aa598a34e10487f4aa2b86 Mon Sep 17 00:00:00 2001 From: Bill O'Neil Date: Sun, 24 Jun 2018 20:20:57 -0400 Subject: [PATCH 4/5] bump jooq version --- gradle/dependencies.gradle | 2 +- .../cms/server/generated/DefaultCatalog.java | 6 +++--- .../cms/server/generated/Indexes.java | 4 ++-- .../cms/server/generated/Keys.java | 4 ++-- .../cms/server/generated/SjCms.java | 6 +++--- .../cms/server/generated/Tables.java | 4 ++-- .../cms/server/generated/tables/AppTable.java | 14 +++++++++---- .../server/generated/tables/PostTable.java | 17 +++++++++++---- .../generated/tables/PostTagLinksTable.java | 21 +++++++++++++++---- .../server/generated/tables/PostTagTable.java | 17 +++++++++++---- .../server/generated/tables/UserTable.java | 14 +++++++++---- .../server/generated/tables/_FlywayTable.java | 14 +++++++++---- .../generated/tables/records/AppRecord.java | 6 +++--- .../generated/tables/records/PostRecord.java | 6 +++--- .../tables/records/PostTagLinksRecord.java | 6 +++--- .../tables/records/PostTagRecord.java | 6 +++--- .../generated/tables/records/UserRecord.java | 6 +++--- .../tables/records/_FlywayRecord.java | 6 +++--- .../cms/server/CMSMigrations.java | 20 +++++++++--------- .../common/db/CustomGeneratorStrategy.java | 4 ++-- .../stubbornjava/common/db/JooqConfig.java | 2 +- 21 files changed, 117 insertions(+), 68 deletions(-) diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 8edf04ec..ffa92413 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -17,7 +17,7 @@ ext { aws : '1.11.221', // AWS Java SDK flyway : '4.2.0', // DB migrations connectorj : '5.1.44', // JDBC MYSQL driver - jooq : '3.10.7', // jOOQ + jooq : '3.11.1', // jOOQ hashids : '1.0.3', // Id hashing failsafe : '1.0.4', // retry and circuit breakers jsoup : '1.10.3', // DOM parsing library diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/DefaultCatalog.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/DefaultCatalog.java index f3f5696f..91eecdc1 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/DefaultCatalog.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/DefaultCatalog.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated; @@ -20,14 +20,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 2021664633; + private static final long serialVersionUID = -781331110; /** * The reference instance of diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Indexes.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Indexes.java index f12b2401..ecb7fb8e 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Indexes.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Indexes.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated; @@ -24,7 +24,7 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Keys.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Keys.java index d642ce17..8ea012c3 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Keys.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Keys.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated; @@ -32,7 +32,7 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/SjCms.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/SjCms.java index 560dc26a..5e840812 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/SjCms.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/SjCms.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated; @@ -28,14 +28,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class SjCms extends SchemaImpl { - private static final long serialVersionUID = 805517808; + private static final long serialVersionUID = -2100339815; /** * The reference instance of sj_cms diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Tables.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Tables.java index 2d742240..42f0b863 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Tables.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/Tables.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated; @@ -20,7 +20,7 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/AppTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/AppTable.java index a7e578cf..5ea3d8e5 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/AppTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/AppTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -16,9 +16,11 @@ import javax.annotation.Generated; import org.jooq.Field; +import org.jooq.ForeignKey; import org.jooq.Identity; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -33,14 +35,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class AppTable extends TableImpl { - private static final long serialVersionUID = 459811499; + private static final long serialVersionUID = 1835385312; /** * The reference instance of sj_cms.app @@ -96,7 +98,11 @@ private AppTable(Name alias, Table aliased) { } private AppTable(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public AppTable(Table child, ForeignKey key) { + super(child, key, APP); } /** diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java index 2d5e4253..2fb8f054 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -22,6 +22,7 @@ import org.jooq.Identity; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -36,14 +37,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTable extends TableImpl { - private static final long serialVersionUID = 204476478; + private static final long serialVersionUID = -136999325; /** * The reference instance of sj_cms.post @@ -134,7 +135,11 @@ private PostTable(Name alias, Table aliased) { } private PostTable(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public PostTable(Table child, ForeignKey key) { + super(child, key, POST); } /** @@ -185,6 +190,10 @@ public List> getKeys() { return Arrays.>asList(Keys.POST_APP_ID_FK); } + public AppTable app() { + return new AppTable(this, Keys.POST_APP_ID_FK); + } + /** * {@inheritDoc} */ diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagLinksTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagLinksTable.java index fe25f49c..85e35e69 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagLinksTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagLinksTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -18,6 +18,7 @@ import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -32,14 +33,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTagLinksTable extends TableImpl { - private static final long serialVersionUID = 267947263; + private static final long serialVersionUID = -1848210335; /** * The reference instance of sj_cms.post_tag_links @@ -90,7 +91,11 @@ private PostTagLinksTable(Name alias, Table aliased) { } private PostTagLinksTable(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public PostTagLinksTable(Table child, ForeignKey key) { + super(child, key, POST_TAG_LINKS); } /** @@ -133,6 +138,14 @@ public List> getKeys() { return Arrays.>asList(Keys.POST_TAG_LINKS_POST_ID_FK, Keys.POST_TAG_LINKS_POST_TAG_ID_FK); } + public PostTable post() { + return new PostTable(this, Keys.POST_TAG_LINKS_POST_ID_FK); + } + + public PostTagTable postTag() { + return new PostTagTable(this, Keys.POST_TAG_LINKS_POST_TAG_ID_FK); + } + /** * {@inheritDoc} */ diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagTable.java index 331b11e6..9ee0d812 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/PostTagTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -20,6 +20,7 @@ import org.jooq.Identity; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -34,14 +35,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTagTable extends TableImpl { - private static final long serialVersionUID = 1272857439; + private static final long serialVersionUID = 1255493924; /** * The reference instance of sj_cms.post_tag @@ -102,7 +103,11 @@ private PostTagTable(Name alias, Table aliased) { } private PostTagTable(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public PostTagTable(Table child, ForeignKey key) { + super(child, key, POST_TAG); } /** @@ -153,6 +158,10 @@ public List> getKeys() { return Arrays.>asList(Keys.POST_TAG_APP_ID_FK); } + public AppTable app() { + return new AppTable(this, Keys.POST_TAG_APP_ID_FK); + } + /** * {@inheritDoc} */ diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/UserTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/UserTable.java index b47543b1..e92ea920 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/UserTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/UserTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -16,9 +16,11 @@ import javax.annotation.Generated; import org.jooq.Field; +import org.jooq.ForeignKey; import org.jooq.Identity; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -33,14 +35,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class UserTable extends TableImpl { - private static final long serialVersionUID = 1153318743; + private static final long serialVersionUID = -334397364; /** * The reference instance of sj_cms.user @@ -111,7 +113,11 @@ private UserTable(Name alias, Table aliased) { } private UserTable(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public UserTable(Table child, ForeignKey key) { + super(child, key, USER); } /** diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/_FlywayTable.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/_FlywayTable.java index 51b82d13..92db0391 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/_FlywayTable.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/_FlywayTable.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables; @@ -16,8 +16,10 @@ import javax.annotation.Generated; import org.jooq.Field; +import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; +import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -32,14 +34,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class _FlywayTable extends TableImpl<_FlywayRecord> { - private static final long serialVersionUID = -278345391; + private static final long serialVersionUID = 783815642; /** * The reference instance of sj_cms._flyway @@ -130,7 +132,11 @@ private _FlywayTable(Name alias, Table<_FlywayRecord> aliased) { } private _FlywayTable(Name alias, Table<_FlywayRecord> aliased, Field[] parameters) { - super(alias, null, aliased, parameters, ""); + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public _FlywayTable(Table child, ForeignKey key) { + super(child, key, _FLYWAY); } /** diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/AppRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/AppRecord.java index 0f211cd1..62bf1998 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/AppRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/AppRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -23,14 +23,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class AppRecord extends UpdatableRecordImpl implements Record3 { - private static final long serialVersionUID = -116866134; + private static final long serialVersionUID = 1017870689; /** * Setter for sj_cms.app.app_id. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java index ed903d3a..98016aae 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -25,14 +25,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostRecord extends UpdatableRecordImpl implements Record10 { - private static final long serialVersionUID = 905926098; + private static final long serialVersionUID = -687257285; /** * Setter for sj_cms.post.post_id. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagLinksRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagLinksRecord.java index 8bf10d0e..d535be4b 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagLinksRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagLinksRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -20,14 +20,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTagLinksRecord extends UpdatableRecordImpl implements Record2 { - private static final long serialVersionUID = -1450313982; + private static final long serialVersionUID = 1793690979; /** * Setter for sj_cms.post_tag_links.post_id. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagRecord.java index 3cf6ed61..9fca373e 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/PostTagRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -23,14 +23,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class PostTagRecord extends UpdatableRecordImpl implements Record4 { - private static final long serialVersionUID = 1702429170; + private static final long serialVersionUID = 910558441; /** * Setter for sj_cms.post_tag.post_tag_id. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/UserRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/UserRecord.java index 49039774..e4a6c25d 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/UserRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/UserRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -23,14 +23,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class UserRecord extends UpdatableRecordImpl implements Record6 { - private static final long serialVersionUID = 1528164827; + private static final long serialVersionUID = 146483068; /** * Setter for sj_cms.user.user_id. diff --git a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/_FlywayRecord.java b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/_FlywayRecord.java index 7b154d1d..16f46468 100644 --- a/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/_FlywayRecord.java +++ b/stubbornjava-cms-server/src/generated/java/com/stubbornjava/cms/server/generated/tables/records/_FlywayRecord.java @@ -1,6 +1,6 @@ /* * This file is generated by jOOQ. -*/ + */ package com.stubbornjava.cms.server.generated.tables.records; @@ -23,14 +23,14 @@ @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.10.7" + "jOOQ version:3.11.1" }, comments = "This class is generated by jOOQ" ) @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class _FlywayRecord extends UpdatableRecordImpl<_FlywayRecord> implements Record10 { - private static final long serialVersionUID = 2003062080; + private static final long serialVersionUID = -1307989129; /** * Setter for sj_cms._flyway.installed_rank. diff --git a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java index 7ca37637..dc050e47 100644 --- a/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java +++ b/stubbornjava-cms-server/src/main/java/com/stubbornjava/cms/server/CMSMigrations.java @@ -3,17 +3,17 @@ import java.util.List; import org.flywaydb.core.Flyway; +import org.jooq.codegen.GenerationTool; import org.jooq.lambda.Unchecked; -import org.jooq.util.GenerationTool; -import org.jooq.util.jaxb.Configuration; -import org.jooq.util.jaxb.Database; -import org.jooq.util.jaxb.ForcedType; -import org.jooq.util.jaxb.Generate; -import org.jooq.util.jaxb.Generator; -import org.jooq.util.jaxb.Jdbc; -import org.jooq.util.jaxb.Strategy; -import org.jooq.util.jaxb.Target; -import org.jooq.util.mysql.MySQLDatabase; +import org.jooq.meta.jaxb.Configuration; +import org.jooq.meta.jaxb.Database; +import org.jooq.meta.jaxb.ForcedType; +import org.jooq.meta.jaxb.Generate; +import org.jooq.meta.jaxb.Generator; +import org.jooq.meta.jaxb.Jdbc; +import org.jooq.meta.jaxb.Strategy; +import org.jooq.meta.jaxb.Target; +import org.jooq.meta.mysql.MySQLDatabase; import com.mysql.jdbc.Driver; import com.stubbornjava.cms.server.post.DraftStatus; diff --git a/stubbornjava-common/src/main/java/com/stubbornjava/common/db/CustomGeneratorStrategy.java b/stubbornjava-common/src/main/java/com/stubbornjava/common/db/CustomGeneratorStrategy.java index 6504f3be..1df42a6b 100644 --- a/stubbornjava-common/src/main/java/com/stubbornjava/common/db/CustomGeneratorStrategy.java +++ b/stubbornjava-common/src/main/java/com/stubbornjava/common/db/CustomGeneratorStrategy.java @@ -1,7 +1,7 @@ package com.stubbornjava.common.db; -import org.jooq.util.DefaultGeneratorStrategy; -import org.jooq.util.Definition; +import org.jooq.codegen.DefaultGeneratorStrategy; +import org.jooq.meta.Definition; public class CustomGeneratorStrategy extends DefaultGeneratorStrategy { diff --git a/stubbornjava-common/src/main/java/com/stubbornjava/common/db/JooqConfig.java b/stubbornjava-common/src/main/java/com/stubbornjava/common/db/JooqConfig.java index 5559cdfc..e19e6ad1 100644 --- a/stubbornjava-common/src/main/java/com/stubbornjava/common/db/JooqConfig.java +++ b/stubbornjava-common/src/main/java/com/stubbornjava/common/db/JooqConfig.java @@ -9,7 +9,7 @@ import org.jooq.SQLDialect; import org.jooq.impl.DataSourceConnectionProvider; import org.jooq.impl.DefaultConfiguration; -import org.jooq.util.jaxb.ForcedType; +import org.jooq.meta.jaxb.ForcedType; import com.google.common.collect.Lists; From 6a755ea70f00c92018e05f37c3330f4b8b8b1d69 Mon Sep 17 00:00:00 2001 From: Bill O'Neil Date: Thu, 28 Jun 2018 04:26:08 -0400 Subject: [PATCH 5/5] test --- .../cms/migration/V_2018.02.16.1__initial-schema.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/stubbornjava-cms-server/src/main/resources/db/cms/migration/V_2018.02.16.1__initial-schema.sql b/stubbornjava-cms-server/src/main/resources/db/cms/migration/V_2018.02.16.1__initial-schema.sql index cb982041..4f6919fd 100644 --- a/stubbornjava-cms-server/src/main/resources/db/cms/migration/V_2018.02.16.1__initial-schema.sql +++ b/stubbornjava-cms-server/src/main/resources/db/cms/migration/V_2018.02.16.1__initial-schema.sql @@ -56,3 +56,13 @@ CREATE TABLE IF NOT EXISTS post_tag_links ( CONSTRAINT `post_tag_links_post_id_fk` FOREIGN KEY (`post_id`) REFERENCES `post` (`post_id`), CONSTRAINT `post_tag_links_post_tag_id_fk` FOREIGN KEY (`post_tag_id`) REFERENCES `post_tag` (`post_tag_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS post_github_file_links ( + post_id BIGINT NOT NULL, + github_owner varchar(255) NOT NULL, + github_repo varchar(255) NOT NULL, + name varchar(255) NOT NULL, + file_path TEXT NOT NULL, + PRIMARY KEY (post_id, github_owner, github_repo, name), + CONSTRAINT `post_tag_links_post_id_fk` FOREIGN KEY (`post_id`) REFERENCES `post` (`post_id`), +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;