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
d8608b5c
Commit
d8608b5c
authored
Aug 31, 2017
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🐛
修复数据库连接泄露
parent
60c2350d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
54 deletions
+59
-54
src/main/java/org/b3log/solo/service/ImportService.java
src/main/java/org/b3log/solo/service/ImportService.java
+59
-54
No files found.
src/main/java/org/b3log/solo/service/ImportService.java
View file @
d8608b5c
...
...
@@ -22,6 +22,7 @@ import org.b3log.latke.ioc.inject.Inject;
import
org.b3log.latke.logging.Level
;
import
org.b3log.latke.logging.Logger
;
import
org.b3log.latke.model.User
;
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
;
...
...
@@ -37,7 +38,7 @@ import java.util.*;
* Import service.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.
0.2, Jul 3
, 2017
* @version 1.0.
1.0, Aug 31
, 2017
* @since 2.2.0
*/
@Service
...
...
@@ -71,72 +72,76 @@ 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
{
admin
=
userQueryService
.
getAdmin
();
}
catch
(
final
Exception
e
)
{
return
;
}
if
(
null
==
admin
)
{
// Not init yet
return
;
}
final
ServletContext
servletContext
=
SoloServletListener
.
getServletContext
();
final
String
markdownsPath
=
servletContext
.
getRealPath
(
"markdowns"
);
LOGGER
.
debug
(
"Import directory ["
+
markdownsPath
+
"]"
);
final
String
adminEmail
=
admin
.
optString
(
User
.
USER_EMAIL
);
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
;
JSONObject
admin
;
try
{
admin
=
userQueryService
.
getAdmin
();
}
catch
(
final
Exception
e
)
{
return
;
}
try
{
final
String
fileContent
=
FileUtils
.
readFileToString
(
md
,
"UTF-8"
);
final
JSONObject
article
=
parseArticle
(
fileName
,
fileContent
);
article
.
put
(
Article
.
ARTICLE_AUTHOR_EMAIL
,
adminEmail
);
if
(
null
==
admin
)
{
// Not init yet
return
;
}
final
JSONObject
request
=
new
JSONObject
();
request
.
put
(
Article
.
ARTICLE
,
article
);
final
String
adminEmail
=
admin
.
optString
(
User
.
USER_EMAIL
);
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
);
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
;
}
failCnt
++;
failSet
.
add
(
fileName
);
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_EMAIL
,
adminEmail
);
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
);
}
}
}
if
(
0
==
succCnt
&&
0
==
failCnt
)
{
return
;
}
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
);
for
(
final
String
fail
:
failSet
)
{
logBuilder
.
append
(
" "
).
append
(
fail
).
append
(
Strings
.
LINE_SEPARATOR
);
}
}
else
{
logBuilder
.
append
(
" :p"
);
}
}
else
{
logBuilder
.
append
(
" :p"
);
LOGGER
.
info
(
logBuilder
.
toString
());
}
finally
{
JdbcRepository
.
dispose
();
}
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