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
84654d51
Unverified
Commit
84654d51
authored
Oct 31, 2018
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
⬆
在 Latke 框架内回收可能泄露的 DB 连接
parent
023fc9c4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
58 additions
and
68 deletions
+58
-68
pom.xml
pom.xml
+2
-2
src/main/java/org/b3log/solo/SoloServletListener.java
src/main/java/org/b3log/solo/SoloServletListener.java
+1
-4
src/main/java/org/b3log/solo/processor/OAuthGitHubProcessor.java
...n/java/org/b3log/solo/processor/OAuthGitHubProcessor.java
+1
-3
src/main/java/org/b3log/solo/service/ImportService.java
src/main/java/org/b3log/solo/service/ImportService.java
+54
-59
No files found.
pom.xml
View file @
84654d51
<?xml version="1.0" encoding="UTF-8"?>
<!--
Description: Solo POM.
Version: 3.18.3.3
1, Oct 27
, 2018
Version: 3.18.3.3
2, Oct 31
, 2018
Author: <a href="http://88250.b3log.org">Liang Ding</a>
Author: <a href="http://www.annpeter.cn">Ann Peter</a>
Author: <a href="http://vanessa.b3log.org">Vanessa</a>
...
...
@@ -75,7 +75,7 @@
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<org.b3log.latke.version>
2.4.2
3
</org.b3log.latke.version>
<org.b3log.latke.version>
2.4.2
5
</org.b3log.latke.version>
<servlet.version>
3.1.0
</servlet.version>
<slf4j.version>
1.7.5
</slf4j.version>
...
...
src/main/java/org/b3log/solo/SoloServletListener.java
View file @
84654d51
...
...
@@ -29,7 +29,6 @@ import org.b3log.latke.logging.Logger;
import
org.b3log.latke.plugin.PluginManager
;
import
org.b3log.latke.plugin.ViewLoadEventHandler
;
import
org.b3log.latke.repository.Transaction
;
import
org.b3log.latke.repository.jdbc.JdbcRepository
;
import
org.b3log.latke.servlet.AbstractServletListener
;
import
org.b3log.latke.util.Requests
;
import
org.b3log.latke.util.Stopwatchs
;
...
...
@@ -52,7 +51,7 @@ import javax.servlet.http.HttpSessionEvent;
* Solo Servlet listener.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.10.0.
1, Oct 24
, 2018
* @version 1.10.0.
2, Oct 31
, 2018
* @since 0.3.1
*/
public
final
class
SoloServletListener
extends
AbstractServletListener
{
...
...
@@ -91,8 +90,6 @@ public final class SoloServletListener extends AbstractServletListener {
final
ImportService
importService
=
beanManager
.
getReference
(
ImportService
.
class
);
importService
.
importMarkdowns
();
JdbcRepository
.
dispose
();
final
OptionRepository
optionRepository
=
beanManager
.
getReference
(
OptionRepository
.
class
);
final
Transaction
transaction
=
optionRepository
.
beginTransaction
();
try
{
...
...
src/main/java/org/b3log/solo/processor/OAuthGitHubProcessor.java
View file @
84654d51
...
...
@@ -28,7 +28,6 @@ import org.b3log.latke.logging.Level;
import
org.b3log.latke.logging.Logger
;
import
org.b3log.latke.model.Role
;
import
org.b3log.latke.model.User
;
import
org.b3log.latke.repository.jdbc.JdbcRepository
;
import
org.b3log.latke.servlet.HTTPRequestMethod
;
import
org.b3log.latke.servlet.annotation.RequestProcessing
;
import
org.b3log.latke.servlet.annotation.RequestProcessor
;
...
...
@@ -56,7 +55,7 @@ import java.util.concurrent.ConcurrentHashMap;
* </ul>
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.
0, Sep 2
1, 2018
* @version 1.0.0.
1, Oct 3
1, 2018
* @since 2.9.5
*/
@RequestProcessor
...
...
@@ -204,7 +203,6 @@ public class OAuthGitHubProcessor {
addUserReq
.
put
(
UserExt
.
USER_AVATAR
,
userAvatar
);
addUserReq
.
put
(
User
.
USER_ROLE
,
Role
.
VISITOR_ROLE
);
userMgmtService
.
addUser
(
addUserReq
);
JdbcRepository
.
dispose
();
}
}
...
...
src/main/java/org/b3log/solo/service/ImportService.java
View file @
84654d51
...
...
@@ -24,7 +24,6 @@ import org.b3log.latke.Keys;
import
org.b3log.latke.ioc.Inject
;
import
org.b3log.latke.logging.Level
;
import
org.b3log.latke.logging.Logger
;
import
org.b3log.latke.repository.jdbc.JdbcRepository
;
import
org.b3log.latke.service.annotation.Service
;
import
org.b3log.latke.util.Strings
;
import
org.b3log.solo.SoloServletListener
;
...
...
@@ -40,7 +39,7 @@ import java.util.*;
* Import service.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.
2, Sep 16
, 2018
* @version 1.0.1.
3, Oct 31
, 2018
* @since 2.2.0
*/
@Service
...
...
@@ -74,76 +73,72 @@ public class ImportService {
*/
public
void
importMarkdowns
()
{
new
Thread
(()
->
{
final
ServletContext
servletContext
=
SoloServletListener
.
getServletContext
();
final
String
markdownsPath
=
servletContext
.
getRealPath
(
"markdowns"
);
LOGGER
.
debug
(
"Import directory ["
+
markdownsPath
+
"]"
);
JSONObject
admin
;
try
{
final
ServletContext
servletContext
=
SoloServletListener
.
getServletContext
();
final
String
markdownsPath
=
servletContext
.
getRealPath
(
"markdowns"
);
LOGGER
.
debug
(
"Import directory ["
+
markdownsPath
+
"]"
);
admin
=
userQueryService
.
getAdmin
();
}
catch
(
final
Exception
e
)
{
return
;
}
JSONObject
admin
;
try
{
admin
=
userQueryService
.
getAdmin
();
}
catch
(
final
Exception
e
)
{
return
;
}
if
(
null
==
admin
)
{
// Not init yet
return
;
}
if
(
null
==
admin
)
{
// Not init yet
return
;
}
final
String
adminId
=
admin
.
optString
(
Keys
.
OBJECT_ID
);
final
String
adminId
=
admin
.
optString
(
Keys
.
OBJECT_ID
);
int
succCnt
=
0
,
failCnt
=
0
;
final
Set
<
String
>
failSet
=
new
TreeSet
<>();
final
Collection
<
File
>
mds
=
FileUtils
.
listFiles
(
new
File
(
markdownsPath
),
new
String
[]{
"md"
},
true
);
if
(
null
==
mds
||
mds
.
isEmpty
())
{
return
;
}
int
succCnt
=
0
,
failCnt
=
0
;
final
Set
<
String
>
failSet
=
new
TreeSet
<>();
final
Collection
<
File
>
mds
=
FileUtils
.
listFiles
(
new
File
(
markdownsPath
),
new
String
[]{
"md"
},
true
);
if
(
null
==
mds
||
mds
.
isEmpty
())
{
return
;
for
(
final
File
md
:
mds
)
{
final
String
fileName
=
md
.
getName
();
if
(
StringUtils
.
equalsIgnoreCase
(
fileName
,
"README.md"
))
{
continue
;
}
for
(
final
File
md
:
mds
)
{
final
String
fileName
=
md
.
getName
();
if
(
StringUtils
.
equalsIgnoreCase
(
fileName
,
"README.md"
))
{
continue
;
}
try
{
final
String
fileContent
=
FileUtils
.
readFileToString
(
md
,
"UTF-8"
);
final
JSONObject
article
=
parseArticle
(
fileName
,
fileContent
);
article
.
put
(
Article
.
ARTICLE_AUTHOR_ID
,
adminId
);
final
JSONObject
request
=
new
JSONObject
();
request
.
put
(
Article
.
ARTICLE
,
article
);
final
String
id
=
articleMgmtService
.
addArticle
(
request
);
FileUtils
.
moveFile
(
md
,
new
File
(
md
.
getPath
()
+
"."
+
id
));
LOGGER
.
info
(
"Imported article ["
+
article
.
optString
(
Article
.
ARTICLE_TITLE
)
+
"]"
);
succCnt
++;
}
catch
(
final
Exception
e
)
{
LOGGER
.
log
(
Level
.
ERROR
,
"Import file ["
+
fileName
+
"] failed"
,
e
);
failCnt
++;
failSet
.
add
(
fileName
);
}
}
try
{
final
String
fileContent
=
FileUtils
.
readFileToString
(
md
,
"UTF-8"
);
final
JSONObject
article
=
parseArticle
(
fileName
,
fileContent
);
article
.
put
(
Article
.
ARTICLE_AUTHOR_ID
,
adminId
);
final
JSONObject
request
=
new
JSONObject
();
request
.
put
(
Article
.
ARTICLE
,
article
);
final
String
id
=
articleMgmtService
.
addArticle
(
request
);
FileUtils
.
moveFile
(
md
,
new
File
(
md
.
getPath
()
+
"."
+
id
));
LOGGER
.
info
(
"Imported article ["
+
article
.
optString
(
Article
.
ARTICLE_TITLE
)
+
"]"
);
succCnt
++;
}
catch
(
final
Exception
e
)
{
LOGGER
.
log
(
Level
.
ERROR
,
"Import file ["
+
fileName
+
"] failed"
,
e
);
if
(
0
==
succCnt
&&
0
==
failCnt
)
{
return
;
failCnt
++;
failSet
.
add
(
fileName
)
;
}
}
if
(
0
==
succCnt
&&
0
==
failCnt
)
{
return
;
}
final
StringBuilder
logBuilder
=
new
StringBuilder
();
logBuilder
.
append
(
"["
).
append
(
succCnt
).
append
(
"] imported, ["
).
append
(
failCnt
).
append
(
"] failed"
);
if
(
failCnt
>
0
)
{
logBuilder
.
append
(
": "
).
append
(
Strings
.
LINE_SEPARATOR
);
final
StringBuilder
logBuilder
=
new
StringBuilder
();
logBuilder
.
append
(
"["
).
append
(
succCnt
).
append
(
"] imported, ["
).
append
(
failCnt
).
append
(
"] failed"
);
if
(
failCnt
>
0
)
{
logBuilder
.
append
(
": "
).
append
(
Strings
.
LINE_SEPARATOR
);
for
(
final
String
fail
:
failSet
)
{
logBuilder
.
append
(
" "
).
append
(
fail
).
append
(
Strings
.
LINE_SEPARATOR
);
}
}
else
{
logBuilder
.
append
(
" :p"
);
for
(
final
String
fail
:
failSet
)
{
logBuilder
.
append
(
" "
).
append
(
fail
).
append
(
Strings
.
LINE_SEPARATOR
);
}
LOGGER
.
info
(
logBuilder
.
toString
());
}
finally
{
JdbcRepository
.
dispose
();
}
else
{
logBuilder
.
append
(
" :p"
);
}
LOGGER
.
info
(
logBuilder
.
toString
());
}).
start
();
}
...
...
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