Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo-1
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo-1
Commits
7f555a70
Unverified
Commit
7f555a70
authored
Apr 18, 2019
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🎨
#12764 升级程序
parent
709d643e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
0 deletions
+139
-0
src/main/java/org/b3log/solo/upgrade/V350_360.java
src/main/java/org/b3log/solo/upgrade/V350_360.java
+139
-0
No files found.
src/main/java/org/b3log/solo/upgrade/V350_360.java
0 → 100644
View file @
7f555a70
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-present, b3log.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package
org
.
b3log
.
solo
.
upgrade
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.ioc.BeanManager
;
import
org.b3log.latke.logging.Level
;
import
org.b3log.latke.logging.Logger
;
import
org.b3log.latke.repository.FilterOperator
;
import
org.b3log.latke.repository.PropertyFilter
;
import
org.b3log.latke.repository.Query
;
import
org.b3log.latke.repository.Transaction
;
import
org.b3log.solo.model.*
;
import
org.b3log.solo.repository.CommentRepository
;
import
org.b3log.solo.repository.OptionRepository
;
import
org.b3log.solo.repository.PageRepository
;
import
org.b3log.solo.repository.UserRepository
;
import
org.b3log.solo.service.ArticleMgmtService
;
import
org.json.JSONObject
;
import
java.util.List
;
/**
* Upgrade script from v3.5.0 to v3.6.0.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.0, Apr 18, 2019
* @since 3.6.0
*/
public
final
class
V350_360
{
/**
* Logger.
*/
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
V350_360
.
class
);
/**
* Performs upgrade from v3.5.0 to v3.6.0.
*
* @throws Exception upgrade fails
*/
public
static
void
perform
()
throws
Exception
{
final
String
fromVer
=
"3.5.0"
;
final
String
toVer
=
"3.6.0"
;
LOGGER
.
log
(
Level
.
INFO
,
"Upgrading from version ["
+
fromVer
+
"] to version ["
+
toVer
+
"]...."
);
final
BeanManager
beanManager
=
BeanManager
.
getInstance
();
final
OptionRepository
optionRepository
=
beanManager
.
getReference
(
OptionRepository
.
class
);
try
{
convertPagesToArticles
();
final
Transaction
transaction
=
optionRepository
.
beginTransaction
();
final
JSONObject
versionOpt
=
optionRepository
.
get
(
Option
.
ID_C_VERSION
);
versionOpt
.
put
(
Option
.
OPTION_VALUE
,
toVer
);
optionRepository
.
update
(
Option
.
ID_C_VERSION
,
versionOpt
);
transaction
.
commit
();
LOGGER
.
log
(
Level
.
INFO
,
"Upgraded from version ["
+
fromVer
+
"] to version ["
+
toVer
+
"] successfully"
);
}
catch
(
final
Exception
e
)
{
LOGGER
.
log
(
Level
.
ERROR
,
"Upgrade failed!"
,
e
);
throw
new
Exception
(
"Upgrade failed from version ["
+
fromVer
+
"] to version ["
+
toVer
+
"]"
);
}
}
/**
* 去掉自定义页面 https://github.com/b3log/solo/issues/12764
*/
private
static
void
convertPagesToArticles
()
throws
Exception
{
final
BeanManager
beanManager
=
BeanManager
.
getInstance
();
final
PageRepository
pageRepository
=
beanManager
.
getReference
(
PageRepository
.
class
);
final
CommentRepository
commentRepository
=
beanManager
.
getReference
(
CommentRepository
.
class
);
final
ArticleMgmtService
articleMgmtService
=
beanManager
.
getReference
(
ArticleMgmtService
.
class
);
final
UserRepository
userRepository
=
beanManager
.
getReference
(
UserRepository
.
class
);
final
JSONObject
admin
=
userRepository
.
getAdmin
();
final
List
<
JSONObject
>
pages
=
pageRepository
.
getList
(
new
Query
().
setFilter
(
new
PropertyFilter
(
Page
.
PAGE_TYPE
,
FilterOperator
.
EQUAL
,
Page
.
PAGE
)));
for
(
final
JSONObject
page
:
pages
)
{
final
String
title
=
page
.
optString
(
Page
.
PAGE_TITLE
);
final
String
content
=
page
.
optString
(
Page
.
PAGE_CONTENT
);
final
int
commentCnt
=
page
.
optInt
(
Page
.
PAGE_COMMENT_COUNT
);
final
String
permalink
=
page
.
optString
(
Page
.
PAGE_PERMALINK
);
final
boolean
commentable
=
page
.
optBoolean
(
Page
.
PAGE_COMMENTABLE
);
final
JSONObject
article
=
new
JSONObject
();
article
.
put
(
Article
.
ARTICLE_AUTHOR_ID
,
admin
.
optString
(
Keys
.
OBJECT_ID
));
article
.
put
(
Article
.
ARTICLE_TITLE
,
title
);
article
.
put
(
Article
.
ARTICLE_ABSTRACT
,
Article
.
getAbstractText
(
content
));
article
.
put
(
Article
.
ARTICLE_COMMENT_COUNT
,
commentCnt
);
if
(
"/my-github-repos"
.
equals
(
permalink
))
{
article
.
put
(
Article
.
ARTICLE_TAGS_REF
,
"开源,GitHub"
);
}
article
.
put
(
Article
.
ARTICLE_PERMALINK
,
permalink
);
article
.
put
(
Article
.
ARTICLE_COMMENTABLE
,
commentable
);
article
.
put
(
Article
.
ARTICLE_CONTENT
,
content
);
article
.
put
(
Article
.
ARTICLE_VIEW_PWD
,
""
);
article
.
put
(
Article
.
ARTICLE_STATUS
,
Article
.
ARTICLE_STATUS_C_PUBLISHED
);
article
.
put
(
Common
.
POST_TO_COMMUNITY
,
false
);
final
JSONObject
addArticleReq
=
new
JSONObject
();
addArticleReq
.
put
(
Article
.
ARTICLE
,
article
);
final
String
articleId
=
articleMgmtService
.
addArticle
(
addArticleReq
);
final
String
pageId
=
page
.
optString
(
Keys
.
OBJECT_ID
);
final
List
<
JSONObject
>
comments
=
commentRepository
.
getList
(
new
Query
().
setFilter
(
new
PropertyFilter
(
Comment
.
COMMENT_ON_ID
,
FilterOperator
.
EQUAL
,
pageId
)));
final
Transaction
transaction
=
pageRepository
.
beginTransaction
();
for
(
final
JSONObject
comment
:
comments
)
{
comment
.
put
(
Comment
.
COMMENT_ON_ID
,
articleId
);
comment
.
put
(
Comment
.
COMMENT_ON_TYPE
,
Article
.
ARTICLE
);
final
String
commentId
=
comment
.
optString
(
Keys
.
OBJECT_ID
);
commentRepository
.
update
(
commentId
,
comment
);
}
page
.
put
(
Page
.
PAGE_TYPE
,
"link"
);
pageRepository
.
update
(
pageId
,
page
);
transaction
.
commit
();
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment