first commit
This commit is contained in:
commit
494499eadb
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="src/main/assembly"/>
|
||||
<classpathentry kind="src" path="src/main/resource"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -0,0 +1,2 @@
|
|||
/target/
|
||||
/log/*
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>project_manager</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,4 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding/<project>=UTF-8
|
|
@ -0,0 +1,5 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
|
@ -0,0 +1,4 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.GatherProjects apache_projects_to_gather_projects >>log/apache_projects_to_gather_projects.log 2>&1 &
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.GatherProjects freecode_projects_to_gather_projects >>log/freecode_projects_to_gather_projects.log 2>&1 &
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.GatherProjects openhub_projects_to_gather_projects >>log/openhub_projects_to_gather_projects.log 2>&1 &
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.GatherProjects oschina_projects_to_gather_projects >>log/oschina_projects_to_gather_projects.log 2>&1 &
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>IK Analyzer 扩展配置</comment>
|
||||
<!--用户可以在这里配置自己的扩展字典 -->
|
||||
<entry key="ext_dict">ext.dic;</entry>
|
||||
|
||||
<!--用户可以在这里配置自己的扩展停止词字典-->
|
||||
<entry key="ext_stopwords">stopword_1.dic;code_keywords.dic;stopword.dic</entry>
|
||||
|
||||
</properties>
|
|
@ -0,0 +1,2 @@
|
|||
配置文件和main2012, quantitifier要在ik文件夹下
|
||||
停用词要在src文件夹下
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc
|
||||
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
<context:annotation-config/>
|
||||
|
||||
<context:component-scan base-package="com.ossean"/>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/tx
|
||||
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
|
||||
|
||||
<!--SourceData -->
|
||||
<bean id="dataSourceOne" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
destroy-method="close">
|
||||
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
|
||||
<property name="url"
|
||||
value="jdbc:mysql://192.168.80.104:3306/extract_result?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true" />
|
||||
<property name="username" value="influx" />
|
||||
<property name="password" value="influx1234" />
|
||||
<property name="validationQuery" value="SELECT 1" />
|
||||
<property name="testOnBorrow" value="true"/>
|
||||
</bean>
|
||||
<bean id="sqlSessionFactoryOne" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSourceOne" />
|
||||
</bean>
|
||||
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||||
<property name="basePackage" value="com.ossean.databaseSource" />
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactoryOne"></property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!--DestData -->
|
||||
<bean id="dataSourceTwo" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
destroy-method="close">
|
||||
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
|
||||
<property name="url"
|
||||
value="jdbc:mysql://192.168.80.130:3306/ossean_production?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true" />
|
||||
<property name="username" value="trustie" />
|
||||
<property name="password" value="1234" />
|
||||
<property name="validationQuery" value="SELECT 1" />
|
||||
<property name="testOnBorrow" value="true"/>
|
||||
</bean>
|
||||
<bean id="sqlSessionFactoryTwo" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSourceTwo" />
|
||||
</bean>
|
||||
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||||
<property name="basePackage" value="com.ossean.databaseDest" />
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactoryTwo"></property>
|
||||
</bean>
|
||||
|
||||
<tx:annotation-driven transaction-manager="transactionManager"/>
|
||||
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||
<property name="dataSource" ref="dataSourceOne" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,697 @@
|
|||
private
|
||||
protected
|
||||
public
|
||||
abstract
|
||||
class
|
||||
extends
|
||||
final
|
||||
implements
|
||||
interface
|
||||
native
|
||||
new
|
||||
static
|
||||
strictfp
|
||||
synchronized
|
||||
transient
|
||||
volatile
|
||||
break
|
||||
continue
|
||||
return
|
||||
do
|
||||
while
|
||||
if
|
||||
else
|
||||
for
|
||||
instanceof
|
||||
switch
|
||||
case
|
||||
defult
|
||||
catch
|
||||
finally
|
||||
throw
|
||||
throws
|
||||
try
|
||||
import
|
||||
package
|
||||
boolean
|
||||
byte
|
||||
char
|
||||
double
|
||||
float
|
||||
int
|
||||
long
|
||||
short
|
||||
null
|
||||
true
|
||||
false
|
||||
super
|
||||
this
|
||||
void
|
||||
form
|
||||
do
|
||||
sourceforge
|
||||
com
|
||||
cn
|
||||
www
|
||||
http
|
||||
js
|
||||
script
|
||||
a
|
||||
test
|
||||
error
|
||||
exception
|
||||
about
|
||||
website
|
||||
able
|
||||
abstract
|
||||
console
|
||||
sql
|
||||
windows
|
||||
exe
|
||||
txt
|
||||
doc
|
||||
xls
|
||||
local
|
||||
net
|
||||
web
|
||||
server
|
||||
from
|
||||
using
|
||||
error
|
||||
can
|
||||
date
|
||||
file
|
||||
xml
|
||||
can
|
||||
system
|
||||
url
|
||||
value
|
||||
create
|
||||
text
|
||||
set
|
||||
get
|
||||
list
|
||||
table
|
||||
select
|
||||
distinct
|
||||
object
|
||||
open
|
||||
close
|
||||
clear
|
||||
all
|
||||
time
|
||||
have
|
||||
org
|
||||
main
|
||||
start
|
||||
end
|
||||
version
|
||||
private
|
||||
public
|
||||
index
|
||||
api
|
||||
method
|
||||
source
|
||||
root
|
||||
content
|
||||
write
|
||||
read
|
||||
view
|
||||
one
|
||||
page
|
||||
run
|
||||
log
|
||||
win
|
||||
bin
|
||||
first
|
||||
next
|
||||
src
|
||||
app
|
||||
request
|
||||
println
|
||||
namespace
|
||||
printf
|
||||
button
|
||||
title
|
||||
local
|
||||
define
|
||||
lib
|
||||
make
|
||||
files
|
||||
help
|
||||
article
|
||||
bool
|
||||
boolean
|
||||
config
|
||||
load
|
||||
args
|
||||
date
|
||||
thread
|
||||
cpu
|
||||
more
|
||||
document
|
||||
util
|
||||
info
|
||||
home
|
||||
style
|
||||
body
|
||||
print
|
||||
hello
|
||||
world
|
||||
find
|
||||
left
|
||||
std
|
||||
debug
|
||||
etc
|
||||
like
|
||||
top
|
||||
now
|
||||
map
|
||||
context
|
||||
other
|
||||
post
|
||||
format
|
||||
client
|
||||
encoding
|
||||
session
|
||||
program
|
||||
datebase
|
||||
control
|
||||
language
|
||||
base
|
||||
process
|
||||
want
|
||||
values
|
||||
used
|
||||
status
|
||||
project
|
||||
color
|
||||
array
|
||||
loaclhost
|
||||
please
|
||||
click
|
||||
integer
|
||||
example
|
||||
archive
|
||||
response
|
||||
command
|
||||
event
|
||||
param
|
||||
what
|
||||
core
|
||||
build
|
||||
link
|
||||
display
|
||||
copy
|
||||
stdio
|
||||
release
|
||||
mode
|
||||
after
|
||||
check
|
||||
cpp
|
||||
c
|
||||
port
|
||||
target
|
||||
should
|
||||
library
|
||||
lib
|
||||
tcp
|
||||
udp
|
||||
state
|
||||
sum
|
||||
free
|
||||
last
|
||||
connect
|
||||
configuration
|
||||
none
|
||||
download
|
||||
software
|
||||
buffer
|
||||
query
|
||||
bit
|
||||
temp
|
||||
word
|
||||
block
|
||||
two
|
||||
send
|
||||
device
|
||||
layout
|
||||
sdk
|
||||
cache
|
||||
alert
|
||||
see
|
||||
change
|
||||
work
|
||||
kernel
|
||||
filter
|
||||
handel
|
||||
save
|
||||
tools
|
||||
min
|
||||
count
|
||||
header
|
||||
level
|
||||
framework
|
||||
sys
|
||||
email
|
||||
push
|
||||
pull
|
||||
heap
|
||||
stack
|
||||
user
|
||||
must
|
||||
demo
|
||||
just
|
||||
serach
|
||||
res
|
||||
tmp
|
||||
down
|
||||
option
|
||||
img
|
||||
network
|
||||
model
|
||||
stop
|
||||
problem
|
||||
position
|
||||
node
|
||||
space
|
||||
login
|
||||
font
|
||||
todo
|
||||
background
|
||||
resource
|
||||
mac
|
||||
bytes
|
||||
ios
|
||||
empty
|
||||
note
|
||||
self
|
||||
tag
|
||||
column
|
||||
studio
|
||||
red
|
||||
done
|
||||
baidu
|
||||
sleep
|
||||
convert
|
||||
global
|
||||
field
|
||||
reference
|
||||
way
|
||||
settings
|
||||
simple
|
||||
ctrl
|
||||
wait
|
||||
meta
|
||||
edit
|
||||
runtime
|
||||
store
|
||||
equals
|
||||
services
|
||||
bean
|
||||
ftp
|
||||
exec
|
||||
non
|
||||
enter
|
||||
lock
|
||||
admin
|
||||
configure
|
||||
png
|
||||
jpg
|
||||
abc
|
||||
loop
|
||||
vector
|
||||
setup
|
||||
mail
|
||||
flag
|
||||
machine
|
||||
sample
|
||||
share
|
||||
image
|
||||
ref
|
||||
join
|
||||
where
|
||||
parameter
|
||||
users
|
||||
contain
|
||||
know
|
||||
template
|
||||
class
|
||||
math
|
||||
pdf
|
||||
parse
|
||||
timeout
|
||||
cat
|
||||
through
|
||||
basic
|
||||
invoke
|
||||
resources
|
||||
media
|
||||
uri
|
||||
paltform
|
||||
err
|
||||
sudo
|
||||
range
|
||||
menu
|
||||
mapping
|
||||
tables
|
||||
master
|
||||
memset
|
||||
reset
|
||||
environment
|
||||
pop
|
||||
commit
|
||||
report
|
||||
task
|
||||
active
|
||||
domain
|
||||
good
|
||||
step
|
||||
setting
|
||||
day
|
||||
hash
|
||||
move
|
||||
collections
|
||||
phone
|
||||
engine
|
||||
callback
|
||||
datetime
|
||||
objects
|
||||
mobile
|
||||
profile
|
||||
always
|
||||
storage
|
||||
alt
|
||||
trim
|
||||
applications
|
||||
via
|
||||
design
|
||||
nothing
|
||||
makefile
|
||||
clean
|
||||
small
|
||||
solution
|
||||
custom
|
||||
people
|
||||
projects
|
||||
family
|
||||
attributes
|
||||
enum
|
||||
own
|
||||
works
|
||||
messages
|
||||
low
|
||||
signal
|
||||
browser
|
||||
give
|
||||
aaa
|
||||
event
|
||||
assert
|
||||
look
|
||||
company
|
||||
person
|
||||
either
|
||||
case
|
||||
desktop
|
||||
touch
|
||||
book
|
||||
unit
|
||||
docs
|
||||
params
|
||||
dump
|
||||
pool
|
||||
feature
|
||||
hashmap
|
||||
seconds
|
||||
owner
|
||||
goto
|
||||
keys
|
||||
editor
|
||||
env
|
||||
month
|
||||
year
|
||||
loading
|
||||
changes
|
||||
black
|
||||
fetch
|
||||
guide
|
||||
enterprise
|
||||
multi
|
||||
foundation
|
||||
reflect
|
||||
unique
|
||||
upload
|
||||
play
|
||||
idea
|
||||
exist
|
||||
elements
|
||||
account
|
||||
numbers
|
||||
examples
|
||||
plain
|
||||
solid
|
||||
game
|
||||
hide
|
||||
apps
|
||||
symbol
|
||||
layer
|
||||
least
|
||||
weight
|
||||
beta
|
||||
jpeg
|
||||
attr
|
||||
refresh
|
||||
apply
|
||||
focus
|
||||
fun
|
||||
cfg
|
||||
threads
|
||||
receive
|
||||
recieved
|
||||
easy
|
||||
hard
|
||||
mode
|
||||
logs
|
||||
password
|
||||
passwd
|
||||
packages
|
||||
ignore
|
||||
scripts
|
||||
cell
|
||||
later
|
||||
plus
|
||||
his
|
||||
pub
|
||||
going
|
||||
logging
|
||||
channel
|
||||
think
|
||||
serial
|
||||
things
|
||||
loader
|
||||
player
|
||||
libs
|
||||
team
|
||||
backup
|
||||
conector
|
||||
side
|
||||
utf8
|
||||
speed
|
||||
doing
|
||||
price
|
||||
timestamp
|
||||
repository
|
||||
init
|
||||
HelloWorld
|
||||
tesing
|
||||
scan
|
||||
components
|
||||
speed
|
||||
unlock
|
||||
products
|
||||
mid
|
||||
said
|
||||
token
|
||||
optional
|
||||
today
|
||||
rest
|
||||
pack
|
||||
coding
|
||||
contain
|
||||
points
|
||||
days
|
||||
safe
|
||||
typeof
|
||||
community
|
||||
others
|
||||
manual
|
||||
sets
|
||||
closed
|
||||
fine
|
||||
groups
|
||||
specify
|
||||
sources
|
||||
workder
|
||||
problems
|
||||
perform
|
||||
servers
|
||||
articles
|
||||
skip
|
||||
blocks
|
||||
connections
|
||||
related
|
||||
notify
|
||||
onload
|
||||
known
|
||||
assembly
|
||||
useful
|
||||
monitor
|
||||
thing
|
||||
forum
|
||||
come
|
||||
notification
|
||||
rules
|
||||
developers
|
||||
cross
|
||||
notice
|
||||
soft
|
||||
progress
|
||||
fork
|
||||
hosts
|
||||
logger
|
||||
role
|
||||
everything
|
||||
future
|
||||
references
|
||||
jni
|
||||
locale
|
||||
follow
|
||||
words
|
||||
updates
|
||||
necessary
|
||||
writer
|
||||
mouse
|
||||
sign
|
||||
repoter
|
||||
containing
|
||||
route
|
||||
analysis
|
||||
four
|
||||
comments
|
||||
programs
|
||||
maps
|
||||
turn
|
||||
versions
|
||||
drive
|
||||
parser
|
||||
track
|
||||
money
|
||||
utils
|
||||
reload
|
||||
decimal
|
||||
resume
|
||||
behavior
|
||||
hand
|
||||
board
|
||||
light
|
||||
regex
|
||||
terminal
|
||||
reduce
|
||||
requests
|
||||
fff
|
||||
0xfffff
|
||||
strong
|
||||
edge
|
||||
schedule
|
||||
pair
|
||||
swf
|
||||
tom
|
||||
dependency
|
||||
rule
|
||||
escape
|
||||
hook
|
||||
temporary
|
||||
issues
|
||||
exchange
|
||||
review
|
||||
various
|
||||
life
|
||||
friend
|
||||
face
|
||||
complex
|
||||
readme
|
||||
prop
|
||||
expert
|
||||
extend
|
||||
often
|
||||
automatic
|
||||
capture
|
||||
difference
|
||||
scheme
|
||||
develop
|
||||
together
|
||||
steps
|
||||
reply
|
||||
beginning
|
||||
understand
|
||||
identified
|
||||
wall
|
||||
along
|
||||
market
|
||||
minute
|
||||
hour
|
||||
university
|
||||
plan
|
||||
templates
|
||||
codes
|
||||
ccc
|
||||
diff
|
||||
ppt
|
||||
study
|
||||
abcd
|
||||
lost
|
||||
choice
|
||||
explain
|
||||
likely
|
||||
guid
|
||||
taken
|
||||
period
|
||||
FAQ
|
||||
symbols
|
||||
thus
|
||||
tips
|
||||
compute
|
||||
school
|
||||
languages
|
||||
describe
|
||||
resolution
|
||||
deal
|
||||
detect
|
||||
yellow
|
||||
hope
|
||||
visit
|
||||
xyz
|
||||
iii
|
||||
dog
|
||||
jump
|
||||
knowledge
|
||||
publish
|
||||
inserted
|
||||
levels
|
||||
chip
|
||||
preference
|
||||
done
|
||||
adjust
|
||||
earth
|
||||
expressions
|
||||
house
|
||||
central
|
||||
rich
|
||||
chat
|
||||
sessions
|
||||
deep
|
||||
when
|
||||
where
|
||||
how
|
||||
who
|
||||
仅供参考
|
|
@ -0,0 +1,5 @@
|
|||
sql server
|
||||
web server
|
||||
http server
|
||||
linux kernel
|
||||
face++
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>TableFlow</comment>
|
||||
<entry key="pointerTableName">edd_pointers</entry>
|
||||
<entry key="migrationTask">gather_tasks</entry>
|
||||
<entry key="sourceTableName">freecode_projects</entry>
|
||||
<entry key="targetTableName">gather_projects</entry>
|
||||
<entry key="sourceFields">deal_name,projectTitle,description,last_update_time,registered_time,followers_num,url,MD5(url),null,implementation,tags,null,null,null,null,visit_num,category,crawled_time,history,"FreeCode",license,operateSystem</entry>
|
||||
<!-- <entry key="targetFields">url,crawled_time,tags,license,name,description,language,platform,source,registered_time,urlMD5</entry> -->
|
||||
<entry key="targetFields">deal_name,name,description,last_update_time,registered_time,followers_num,url,urlMD5,pageMD5,language,tags,contributors_num,monitor,status,download_num,visit_num,category,crawled_time,history,source,license,platform</entry>
|
||||
<entry key="waitDataTime">3600000</entry>
|
||||
<entry key="andWhere"> AND projectTitle is not null AND description IS NOT NULL and projectTitle != '' and description != ''</entry>
|
||||
<entry key="idsBegin">1</entry>
|
||||
<entry key="idsEnd">500000</entry>
|
||||
<entry key="idsIncrement">500</entry>
|
||||
</properties>
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
||||
|
||||
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="MAIL" class="org.apache.log4j.net.SMTPAppender">
|
||||
<param name="threshold" value="info" />
|
||||
<param name="BufferSize" value="512" />
|
||||
<param name="From" value="gcm365111@126.com" />
|
||||
<param name="SMTPHost" value="SMTP.126.com" />
|
||||
<param name="Subject" value="this is test" />
|
||||
<param name="SMTPUsername" value="gcm365111@126.com" />
|
||||
<param name="SMTPPassword" value="03023651gcm" />
|
||||
<param name="to" value="gcm3651@126.com" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
|
||||
<param name="File" value="./log/info.log" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
|
||||
|
||||
<root>
|
||||
<level value="info" />
|
||||
<appender-ref ref="file" />
|
||||
<appender-ref ref="stdout" />
|
||||
</root>
|
||||
|
||||
</log4j:configuration>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE configuration
|
||||
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
|
||||
|
||||
<environments default="development">
|
||||
<environment id="development">
|
||||
<transactionManager type="JDBC"/>
|
||||
|
||||
<dataSource type="POOLED">
|
||||
</dataSource>
|
||||
</environment>
|
||||
</environments>
|
||||
|
||||
</configuration>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>TableFlow</comment>
|
||||
<entry key="pointerTableName">edd_pointers</entry>
|
||||
<entry key="migrationTask">gather_tasks</entry>
|
||||
<entry key="sourceTableName">openhub_project</entry>
|
||||
<entry key="targetTableName">gather_projects</entry>
|
||||
<entry key="sourceFields">null,name,description,last_update_time,firstCommitTime,followers_num,Url,MD5(Url),null,null,tags,contributorNum,null,null,null,null,null,null,null,"OpenHub",license,null</entry>
|
||||
<entry key="targetFields">deal_name,name,description,last_update_time,registered_time,followers_num,url,urlMD5,pageMD5,language,tags,contributors_num,monitor,status,download_num,visit_num,category,crawled_time,history,source,license,platform</entry>
|
||||
<entry key="waitDataTime">3600000</entry>
|
||||
<entry key="andWhere"> and name is not null and description is not null and name != '' and description != '' and codeLocation not like '%add a code location%' </entry>
|
||||
<entry key="idsBegin">1</entry>
|
||||
<entry key="idsEnd">500000</entry>
|
||||
<entry key="idsIncrement">500</entry>
|
||||
</properties>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>TableFlow</comment>
|
||||
<entry key="pointerTableName">edd_pointers</entry>
|
||||
<entry key="migrationTask">gather_tasks</entry>
|
||||
<entry key="sourceTableName">oschina_project</entry>
|
||||
<entry key="targetTableName">gather_projects</entry>
|
||||
<entry key="sourceFields">deal_name,projectTitle,description,last_update_time,IncludedTime,followers_num,url,MD5(Url),pageMD5,language,tags,contributors_num,monitor,status,download_num,visit_num,category,crawled_time,history,"OSChina",license,projectOS</entry>
|
||||
<!-- <entry key="targetFields">url,crawled_time,tags,license,name,description,language,platform,source,registered_time,urlMD5</entry> -->
|
||||
<entry key="targetFields">deal_name,name,description,last_update_time,registered_time,followers_num,url,urlMD5,pageMD5,language,tags,contributors_num,monitor,status,download_num,visit_num,category,crawled_time,history,source,license,platform</entry>
|
||||
<entry key="waitDataTime">3600000</entry>
|
||||
<entry key="andWhere"> and projectTitle is not null and description is not null and projectTitle != '' and description != '' </entry>
|
||||
<entry key="idsBegin">1</entry>
|
||||
<entry key="idsEnd">500000</entry>
|
||||
<entry key="idsIncrement">500</entry>
|
||||
</properties>
|
|
@ -0,0 +1,316 @@
|
|||
丈
|
||||
下
|
||||
世
|
||||
世纪
|
||||
两
|
||||
个
|
||||
中
|
||||
串
|
||||
亩
|
||||
人
|
||||
介
|
||||
付
|
||||
代
|
||||
件
|
||||
任
|
||||
份
|
||||
伏
|
||||
伙
|
||||
位
|
||||
位数
|
||||
例
|
||||
倍
|
||||
像素
|
||||
元
|
||||
克
|
||||
克拉
|
||||
公亩
|
||||
公克
|
||||
公分
|
||||
公升
|
||||
公尺
|
||||
公担
|
||||
公斤
|
||||
公里
|
||||
公顷
|
||||
具
|
||||
册
|
||||
出
|
||||
刀
|
||||
分
|
||||
分钟
|
||||
分米
|
||||
划
|
||||
列
|
||||
则
|
||||
刻
|
||||
剂
|
||||
剑
|
||||
副
|
||||
加仑
|
||||
勺
|
||||
包
|
||||
匙
|
||||
匹
|
||||
区
|
||||
千克
|
||||
千米
|
||||
升
|
||||
卷
|
||||
厅
|
||||
厘
|
||||
厘米
|
||||
双
|
||||
发
|
||||
口
|
||||
句
|
||||
只
|
||||
台
|
||||
叶
|
||||
号
|
||||
名
|
||||
吨
|
||||
听
|
||||
员
|
||||
周
|
||||
周年
|
||||
品
|
||||
回
|
||||
团
|
||||
圆
|
||||
圈
|
||||
地
|
||||
场
|
||||
块
|
||||
坪
|
||||
堆
|
||||
声
|
||||
壶
|
||||
处
|
||||
夜
|
||||
大
|
||||
天
|
||||
头
|
||||
套
|
||||
女
|
||||
孔
|
||||
字
|
||||
宗
|
||||
室
|
||||
家
|
||||
寸
|
||||
对
|
||||
封
|
||||
尊
|
||||
小时
|
||||
尺
|
||||
尾
|
||||
局
|
||||
层
|
||||
届
|
||||
岁
|
||||
师
|
||||
帧
|
||||
幅
|
||||
幕
|
||||
幢
|
||||
平方
|
||||
平方公尺
|
||||
平方公里
|
||||
平方分米
|
||||
平方厘米
|
||||
平方码
|
||||
平方米
|
||||
平方英寸
|
||||
平方英尺
|
||||
平方英里
|
||||
平米
|
||||
年
|
||||
年代
|
||||
年级
|
||||
度
|
||||
座
|
||||
式
|
||||
引
|
||||
张
|
||||
成
|
||||
战
|
||||
截
|
||||
户
|
||||
房
|
||||
所
|
||||
扇
|
||||
手
|
||||
打
|
||||
批
|
||||
把
|
||||
折
|
||||
担
|
||||
拍
|
||||
招
|
||||
拨
|
||||
拳
|
||||
指
|
||||
掌
|
||||
排
|
||||
撮
|
||||
支
|
||||
文
|
||||
斗
|
||||
斤
|
||||
方
|
||||
族
|
||||
日
|
||||
时
|
||||
曲
|
||||
月
|
||||
月份
|
||||
期
|
||||
本
|
||||
朵
|
||||
村
|
||||
束
|
||||
条
|
||||
来
|
||||
杯
|
||||
枚
|
||||
枝
|
||||
枪
|
||||
架
|
||||
柄
|
||||
柜
|
||||
栋
|
||||
栏
|
||||
株
|
||||
样
|
||||
根
|
||||
格
|
||||
案
|
||||
桌
|
||||
档
|
||||
桩
|
||||
桶
|
||||
梯
|
||||
棵
|
||||
楼
|
||||
次
|
||||
款
|
||||
步
|
||||
段
|
||||
毛
|
||||
毫
|
||||
毫升
|
||||
毫米
|
||||
毫克
|
||||
池
|
||||
洲
|
||||
派
|
||||
海里
|
||||
滴
|
||||
炮
|
||||
点
|
||||
点钟
|
||||
片
|
||||
版
|
||||
环
|
||||
班
|
||||
瓣
|
||||
瓶
|
||||
生
|
||||
男
|
||||
画
|
||||
界
|
||||
盆
|
||||
盎司
|
||||
盏
|
||||
盒
|
||||
盘
|
||||
相
|
||||
眼
|
||||
石
|
||||
码
|
||||
碗
|
||||
碟
|
||||
磅
|
||||
种
|
||||
科
|
||||
秒
|
||||
秒钟
|
||||
窝
|
||||
立方公尺
|
||||
立方分米
|
||||
立方厘米
|
||||
立方码
|
||||
立方米
|
||||
立方英寸
|
||||
立方英尺
|
||||
站
|
||||
章
|
||||
笔
|
||||
等
|
||||
筐
|
||||
筒
|
||||
箱
|
||||
篇
|
||||
篓
|
||||
篮
|
||||
簇
|
||||
米
|
||||
类
|
||||
粒
|
||||
级
|
||||
组
|
||||
维
|
||||
缕
|
||||
缸
|
||||
罐
|
||||
网
|
||||
群
|
||||
股
|
||||
脚
|
||||
船
|
||||
艇
|
||||
艘
|
||||
色
|
||||
节
|
||||
英亩
|
||||
英寸
|
||||
英尺
|
||||
英里
|
||||
行
|
||||
袋
|
||||
角
|
||||
言
|
||||
课
|
||||
起
|
||||
趟
|
||||
路
|
||||
车
|
||||
转
|
||||
轮
|
||||
辆
|
||||
辈
|
||||
连
|
||||
通
|
||||
遍
|
||||
部
|
||||
里
|
||||
重
|
||||
针
|
||||
钟
|
||||
钱
|
||||
锅
|
||||
门
|
||||
间
|
||||
队
|
||||
阶段
|
||||
隅
|
||||
集
|
||||
页
|
||||
顶
|
||||
顷
|
||||
项
|
||||
顿
|
||||
颗
|
||||
餐
|
||||
首
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>TableFlow</comment>
|
||||
<entry key="pointerTableName">edd_pointers</entry>
|
||||
<entry key="migrationTask">gather_tasks</entry>
|
||||
<entry key="sourceTableName">sourceforge_project</entry>
|
||||
<entry key="targetTableName">gather_projects</entry>
|
||||
<entry key="sourceFields">null,name,description,last_update_time,registered_time,null,url,MD5(url),pageMd5,programmingLanguage,null,null,null,null,download_num,null,category,null,history,"SourceForge",license,platform</entry>
|
||||
<entry key="targetFields">deal_name,name,description,last_update_time,registered_time,followers_num,url,urlMD5,pageMD5,language,tags,contributors_num,monitor,status,download_num,visit_num,category,crawled_time,history,source,license,platform</entry>
|
||||
<entry key="waitDataTime">3600000</entry>
|
||||
<entry key="andWhere"> and name is not null and description is not null and name != '' and description != '' and (download_num>0 or stars>0) </entry>
|
||||
<entry key="idsBegin">1</entry>
|
||||
<entry key="idsEnd">500000</entry>
|
||||
<entry key="idsIncrement">500</entry>
|
||||
</properties>
|
|
@ -0,0 +1,36 @@
|
|||
a
|
||||
an
|
||||
and
|
||||
are
|
||||
as
|
||||
at
|
||||
be
|
||||
but
|
||||
by
|
||||
for
|
||||
if
|
||||
in
|
||||
into
|
||||
is
|
||||
it
|
||||
no
|
||||
not
|
||||
of
|
||||
on
|
||||
or
|
||||
such
|
||||
that
|
||||
the
|
||||
their
|
||||
then
|
||||
there
|
||||
these
|
||||
they
|
||||
this
|
||||
to
|
||||
was
|
||||
will
|
||||
with
|
||||
小
|
||||
一个
|
||||
的
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.GatherProjects sourceforge_projects_to_gather_projects >>log/sourceforge_projects_to_gather_projects.log 2>&1 &
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
sh bin/openhub_projects_to_gather_projects.sh
|
||||
sh bin/sourceforge_projects_to_gather_projects.sh
|
||||
sh bin/freecode_projects_to_gather_projects.sh
|
||||
sh bin/oschina_projects_to_gather_projects.sh
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.MergeProjects >>log/merge_projects.log 2>&1 &
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
find ./target/classes -name "*.properties"|xargs rm -f
|
||||
find ./target/classes -name "*.xml"|xargs rm -f
|
||||
find ./target/classes -name "*.dic"|xargs rm -f
|
||||
|
||||
#export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
|
||||
|
||||
tmp='./target/classes':$tmp
|
||||
tmp='./target/EDBD-0.0.1-SNAPSHOT-jar-with-dependencies-without-resources/*':$tmp
|
||||
tmp='./bin/resources':$tmp
|
||||
CLASSPATH=$tmp:$CLASSPATH
|
||||
|
||||
|
||||
echo $CLASSPATH
|
||||
JVM_ARGS="-Xmn98m -Xmx512m -Xms512m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=2"
|
||||
#echo JVM_ARGS=$JVM_ARGS
|
||||
#ulimit -n 400000
|
||||
#echo "" > nohup.out
|
||||
java $JVM_ARGS -classpath $CLASSPATH com.ossean.TransferProjects >>log/transfer_projects.log 2>&1 &
|
|
@ -0,0 +1,98 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
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>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<groupId>cn.edu.zhanyun</groupId>
|
||||
<artifactId>project_manager</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>project_manager</name>
|
||||
<build>
|
||||
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${basedir}/src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>*.xml</exclude>
|
||||
<exclude>*.properties</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>com.alan.myfunction.ProcedureTag</mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
<descriptors>
|
||||
<descriptor>src/main/assembly/assembly.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.30</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>4.1.4.RELEASE</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>c3p0</groupId>
|
||||
<artifactId>c3p0</artifactId>
|
||||
<version>0.9.1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>1.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis-spring</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,25 @@
|
|||
<assembly
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
|
||||
<!-- TODO: a jarjar format would be better -->
|
||||
<id>jar-with-dependencies-without-resources</id>
|
||||
<formats>
|
||||
<format>dir</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>false</useProjectArtifact>
|
||||
<unpack>false</unpack>
|
||||
<scope>runtime</scope>
|
||||
</dependencySet>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>false</useProjectArtifact>
|
||||
<unpack>false</unpack>
|
||||
<scope>system</scope>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
|
@ -0,0 +1,257 @@
|
|||
package com.ossean.projectmanager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ossean.projectmanager.hotwords.InsertHotwords;
|
||||
import com.ossean.projectmanager.hotwords.MapSort;
|
||||
import com.ossean.projectmanager.hotwords.StringHandler;
|
||||
import com.ossean.projectmanager.hotwords.UpdateTagsAndTaggings;
|
||||
import com.ossean.projectmanager.lasttabledao.OpenSourceProjectDao;
|
||||
import com.ossean.projectmanager.lasttabledao.PointersDao;
|
||||
import com.ossean.projectmanager.lasttabledao.RelativeMemoDao;
|
||||
import com.ossean.projectmanager.lasttabledao.RelativeMemoToOpenSourceProjectDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TagDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TaggingsDao;
|
||||
import com.ossean.projectmanager.model.Hotword;
|
||||
import com.ossean.projectmanager.model.OpenSourceProject;
|
||||
import com.ossean.projectmanager.model.RelativeMemo;
|
||||
import com.ossean.projectmanager.model.RelativeMemoToOpenSourceProject;
|
||||
|
||||
@Component
|
||||
public class HotwordsMain {
|
||||
Logger logger = Logger.getLogger(this.getClass());
|
||||
@Resource
|
||||
private PointersDao pointersDao;
|
||||
@Resource
|
||||
private OpenSourceProjectDao ospDao;
|
||||
@Resource
|
||||
private RelativeMemoToOpenSourceProjectDao memoToOspDao;
|
||||
@Resource
|
||||
private TaggingsDao taggingsDao;
|
||||
@Resource
|
||||
private RelativeMemoDao memoDao;
|
||||
@Resource
|
||||
private TagDao tagsDao;
|
||||
@Qualifier("updatetagsandtaggings")
|
||||
@Autowired
|
||||
private UpdateTagsAndTaggings updateClass;
|
||||
@Qualifier("inserthotwords")
|
||||
@Autowired
|
||||
private InsertHotwords insertClass;
|
||||
private static String sourceTableName = "open_source_projects";
|
||||
private static String targetTableName = "hot_words";
|
||||
|
||||
private static int batchSize = 10;// 一次处理项目数量
|
||||
public void start(){
|
||||
while(true){
|
||||
//读取断点位置
|
||||
int startId = 1;
|
||||
try {
|
||||
startId = pointersDao.readPointer(sourceTableName, targetTableName);
|
||||
} catch (Exception e){
|
||||
//表示还没有该记录
|
||||
pointersDao.insertPointer(sourceTableName, targetTableName);
|
||||
}
|
||||
//根据断点位置和批处理数量读取项目对象列表
|
||||
List<OpenSourceProject> projects = ospDao.getProjectsByBatch(startId, batchSize);
|
||||
if(projects.size() == 0){
|
||||
//如果没有独处项目信息 表示没有需要处理的项目
|
||||
logger.info("no projects! Sleep 3600s");
|
||||
try {
|
||||
Thread.sleep(3600*1000L);
|
||||
continue;
|
||||
} catch (InterruptedException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
for(OpenSourceProject project:projects){
|
||||
//循环处理所有的项目
|
||||
logger.info("匹配项目:" + project.getName() + " id:" + project.getId());
|
||||
//读取relative_memo_to_open_source_projects表中当前项目对应的帖子
|
||||
int prjId = project.getId();
|
||||
List<RelativeMemoToOpenSourceProject> mtps = memoToOspDao.getHighWeightMatchResult(prjId, getTargetTable(prjId));
|
||||
//定义存储标签name和标签权重的map 每个project一个map对象
|
||||
Map<String, Float> tagWeightMap = new LinkedHashMap<String,Float>();
|
||||
//定义存储标签name和标签词频的map 每个project一个map对象
|
||||
Map<String, Integer> tagCountMap = new HashMap<String, Integer>();
|
||||
//遍历每一个关联结果 即遍历每一个关联的帖子
|
||||
for(RelativeMemoToOpenSourceProject item:mtps){
|
||||
//读取帖子id
|
||||
int memoId = item.getRelative_memo_id();
|
||||
//获取RelativeMemo对象
|
||||
RelativeMemo memo = memoDao.getById(memoId);
|
||||
//将RelativeMemos对象中的tags属性转换成List<String>
|
||||
List<String> memoTagList = new ArrayList<String>();
|
||||
try{
|
||||
memoTagList = StringHandler.changeTagsToTagList(memo.getTags());
|
||||
}catch(Exception e){
|
||||
//logger.info("没有找到对应的tags标签 memo_id:" + memoId);
|
||||
continue;
|
||||
}
|
||||
//循环遍历每个tagName 将对应的权重计算出来 得到最终的map
|
||||
for(String tagName:memoTagList){
|
||||
if(tagWeightMap.containsKey(tagName)){
|
||||
//表示map中已经存在该标签 需要将原来标签的权重取出并加上相应的taggings表中记录的匹配权重
|
||||
tagWeightMap.put(tagName, tagWeightMap.get(tagName) + item.getMatch_weight());
|
||||
tagCountMap.put(tagName, tagCountMap.get(tagName) + 1);
|
||||
}else{
|
||||
//表示map中没有该标签名
|
||||
tagWeightMap.put(tagName, item.getMatch_weight());
|
||||
tagCountMap.put(tagName,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
//将map根据值从大到小排序
|
||||
tagWeightMap = MapSort.sort(tagWeightMap);
|
||||
//构造hotwords的List
|
||||
List<Hotword> hotwordsList = new ArrayList<Hotword>();
|
||||
Set<String> tagNames = tagWeightMap.keySet();
|
||||
Iterator<String> iterator = tagNames.iterator();
|
||||
int count_hotwords = 0;
|
||||
while(iterator.hasNext() && count_hotwords < 20){
|
||||
String tagName = iterator.next();//读取标签的名字
|
||||
Hotword hotwords = new Hotword();
|
||||
hotwords.setOsp_id(project.getId());
|
||||
hotwords.setName(tagName);
|
||||
hotwords.setWeight(tagWeightMap.get(tagName));
|
||||
count_hotwords++;
|
||||
hotwordsList.add(hotwords);
|
||||
}
|
||||
|
||||
//读取该项目的tags属性并转换成List
|
||||
List<String> projectTagList = StringHandler.changeTagsToTagList(project.getTags());
|
||||
//记录需要修改disagree_num的标签名
|
||||
List<String> updateDisagreeNumTagNameList = new ArrayList<String>();
|
||||
if(projectTagList.size() < 10){
|
||||
//表示如果项目标签数量小于10 向里面添加5填新的标签记录
|
||||
//遍历项目关联的所有标签
|
||||
Set<String> keys = tagWeightMap.keySet();
|
||||
Iterator<String> it = keys.iterator();
|
||||
int count = 0;//用于对新添加到项目中的标签进行计数
|
||||
//最多增加5个新的标签 最多增加到10个
|
||||
while(it.hasNext() && count < 5){
|
||||
String tagName = it.next();//取出标签的名字
|
||||
if(StringHandler.isTagExist(tagName, projectTagList)){
|
||||
//表示当前关联到的标签在项目标签中存在 需要对taggings表中disagree_num增加该标签出现的词频
|
||||
updateDisagreeNumTagNameList.add(tagName);//将需要修改的标签名先存储到列表中 在事物处理的时候统一处理
|
||||
continue;
|
||||
}else{
|
||||
//表示当前关联到的标签在项目原标签中不存在
|
||||
projectTagList.add(tagName);//将新标签添加到项目标签列表中
|
||||
count++;//每添加一个新标签 count计数器加1
|
||||
}
|
||||
}
|
||||
//如果count > 0 表示tags属性需要更新,taggings需要插入记录 同时需要向热词表中插入20条数据
|
||||
if(count > 0){
|
||||
String tagsNew = StringHandler.changeTagListToTags(projectTagList);
|
||||
logger.info("正在进行更新项目标签信息和taggings表信息操作,请勿中断程序");
|
||||
updateClass.update(project, projectTagList, tagsNew, count, sourceTableName, targetTableName, hotwordsList, updateDisagreeNumTagNameList, tagCountMap);
|
||||
}
|
||||
else{
|
||||
//表示没有新增的标签 只需要向热词表中添加20条热词
|
||||
insertClass.insert(hotwordsList, sourceTableName, targetTableName, project.getId() + 1, updateDisagreeNumTagNameList, tagCountMap, project);
|
||||
logger.info("当前项目" + project.getName() + "没有标签更新操作,只插入了热词和更新disagree_num标签");
|
||||
}
|
||||
}
|
||||
else{
|
||||
//表示项目已经存在10条记录 需要再添加3个标签 已经存在的标签不算在3个内
|
||||
//遍历项目关联的所有标签
|
||||
Set<String> keys = tagWeightMap.keySet();
|
||||
Iterator<String> it = keys.iterator();
|
||||
int count = 0;//用于对新添加到项目中的标签进行计数
|
||||
//最多增加5个新的标签 最多增加到10个
|
||||
while(it.hasNext() && count < 3){
|
||||
String tagName = it.next();//取出标签的名字
|
||||
if(StringHandler.isTagExist(tagName, projectTagList)){
|
||||
//表示当前关联到的标签在项目标签中存在 需要对taggings表中disagree_num增加该标签出现的词频
|
||||
updateDisagreeNumTagNameList.add(tagName);//将需要修改的标签名先存储到列表中 在事物处理的时候统一处理
|
||||
continue;
|
||||
}else{
|
||||
//表示当前关联到的标签在项目原标签中不存在
|
||||
projectTagList.add(tagName);//将新标签添加到项目标签列表中
|
||||
count++;//每添加一个新标签 count计数器加1
|
||||
}
|
||||
}
|
||||
//如果count > 0 表示tags属性需要更新,taggings需要插入记录 同时需要向热词表中插入20条数据
|
||||
if(count > 0){
|
||||
String tagsNew = StringHandler.changeTagListToTags(projectTagList);
|
||||
logger.info("正在进行更新项目标签信息和taggings表信息操作,请勿中断程序");
|
||||
updateClass.update(project, projectTagList, tagsNew, count, sourceTableName, targetTableName, hotwordsList, updateDisagreeNumTagNameList, tagCountMap);
|
||||
}
|
||||
else{
|
||||
//表示没有新增的标签 只需要向热词表中添加20条热词
|
||||
insertClass.insert(hotwordsList, sourceTableName, targetTableName, project.getId() + 1, updateDisagreeNumTagNameList, tagCountMap, project);
|
||||
logger.info("当前项目" + project.getName() + "只插入了热词和更新disagree_num标签");
|
||||
}
|
||||
insertClass.insert(hotwordsList, sourceTableName, targetTableName, project.getId() + 1, updateDisagreeNumTagNameList, tagCountMap, project);
|
||||
logger.info("当前项目" + project.getName() + "只插入了热词和更新disagree_num标签");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get the match result table's name
|
||||
* @param osp_id
|
||||
* @return
|
||||
*/
|
||||
public static String getTargetTable(int osp_id){
|
||||
String targetTableName = "";
|
||||
if (osp_id < 500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_1";
|
||||
}
|
||||
else if (osp_id >= 500 && osp_id < 1000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_2";
|
||||
}
|
||||
else if (osp_id >= 1000 && osp_id < 1500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_3";
|
||||
}
|
||||
else if (osp_id >= 1500 && osp_id < 2000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_4";
|
||||
}
|
||||
else if (osp_id >= 2000 && osp_id < 3000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_5";
|
||||
}
|
||||
else if (osp_id >= 3000 && osp_id < 5000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_6";
|
||||
}
|
||||
else if (osp_id >= 5000 && osp_id < 7500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_7";
|
||||
}
|
||||
else if (osp_id >= 7500 && osp_id < 10000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_8";
|
||||
}
|
||||
else if (osp_id >= 10000 && osp_id < 310000) {
|
||||
int a = 7 + osp_id/5000;
|
||||
targetTableName = "relative_memo_to_open_source_projects_" + a;
|
||||
}
|
||||
else if (osp_id >= 310000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_70";
|
||||
}
|
||||
return targetTableName;
|
||||
}
|
||||
|
||||
public static void main(String[] args){
|
||||
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/applicationContext*.xml");
|
||||
HotwordsMain mainClass = applicationContext.getBean(HotwordsMain.class);
|
||||
mainClass.start();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.ossean.projectmanager;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ossean.projectmanager.projectsfilter.ProjectsFilter;
|
||||
|
||||
@Component
|
||||
public class ProjectsFilterMain {
|
||||
@Qualifier("projectsFilter")
|
||||
@Autowired
|
||||
private ProjectsFilter projectsFilter;
|
||||
|
||||
public void start(){
|
||||
projectsFilter.filtratePrjs();
|
||||
}
|
||||
|
||||
public static void main(String[] args){
|
||||
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/applicationContext*.xml");
|
||||
ProjectsFilterMain mainClass = applicationContext.getBean(ProjectsFilterMain.class);
|
||||
mainClass.start();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package com.ossean.projectmanager.hotwords;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ossean.projectmanager.lasttabledao.HotwordDao;
|
||||
import com.ossean.projectmanager.lasttabledao.PointersDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TagDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TaggingsDao;
|
||||
import com.ossean.projectmanager.model.Hotword;
|
||||
import com.ossean.projectmanager.model.OpenSourceProject;
|
||||
|
||||
@Component("inserthotwords")
|
||||
public class InsertHotwords {
|
||||
|
||||
@Resource
|
||||
private HotwordDao hotwordsDao;
|
||||
@Resource
|
||||
private PointersDao pointersDao;
|
||||
@Resource
|
||||
private TagDao tagsDao;
|
||||
@Resource
|
||||
private TaggingsDao taggingsDao;
|
||||
|
||||
@Transactional(propagation=Propagation.REQUIRES_NEW)
|
||||
public void insert(List<Hotword> hotwordsList, String sourceTableName, String targetTableName, int pointer, List<String> updateDisagreeNumTagNameList, Map<String, Integer> tagCountMap, OpenSourceProject project){
|
||||
int count = 0;//用于纪录插入了多少个热词
|
||||
for(int i = 0; i < hotwordsList.size() && count < 20; i++){
|
||||
Hotword hotwords = hotwordsList.get(i);
|
||||
//首先检查该osp_id和name的hotwords记录是否存在
|
||||
List<Hotword> tmp = hotwordsDao.findItem(hotwords);
|
||||
if(tmp.size() != 0){
|
||||
//表示当前的记录存在
|
||||
continue;
|
||||
}
|
||||
//循环插入每一个hotwords对象
|
||||
hotwordsDao.insertItem(hotwords);
|
||||
count++;
|
||||
}
|
||||
|
||||
//修改需要增加disagree_num的词频
|
||||
for(int i = 0; i < updateDisagreeNumTagNameList.size(); i++){
|
||||
String tagName = updateDisagreeNumTagNameList.get(i);
|
||||
//根据tagName查找tagId
|
||||
List<Integer> ids = tagsDao.getIdByName(tagName);
|
||||
if(ids.size() == 0){
|
||||
//表示并不存在该标签 需要在tags表中增加这条记录
|
||||
tagsDao.insertTag(tagName);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
int tag_id = ids.get(0);
|
||||
int taggable_id = project.getId();
|
||||
String taggable_type = "OpenSourceProject";
|
||||
int value = taggingsDao.getDisagreeNum(tag_id, taggable_id, taggable_type);
|
||||
value = value + tagCountMap.get(tagName);//增加标签在帖子中出现的次数
|
||||
taggingsDao.updateDisagreeNum(value, taggable_id, taggable_type, tag_id);
|
||||
}
|
||||
|
||||
pointersDao.updatePointer(sourceTableName, targetTableName, pointer);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.ossean.projectmanager.hotwords;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class MapSort {
|
||||
|
||||
public static Map<String, Float> sort(Map<String, Float> oldMap){
|
||||
ArrayList<Map.Entry<String, Float>> list = new ArrayList<Map.Entry<String, Float>>(oldMap.entrySet());
|
||||
Collections.sort(list, new Comparator<Map.Entry<String, Float>>() {
|
||||
|
||||
public int compare(Entry<String, Float> arg0,
|
||||
Entry<String, Float> arg1) {
|
||||
if(arg0.getValue() - arg1.getValue() > 0)
|
||||
return -1;
|
||||
else if(arg0.getValue() - arg1.getValue() < 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
Map<String,Float> newMap = new LinkedHashMap<String,Float>();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
newMap.put(list.get(i).getKey(), list.get(i).getValue());
|
||||
}
|
||||
return newMap;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package com.ossean.projectmanager.hotwords;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class StringHandler {
|
||||
|
||||
//将tags字符串转换成List<String>
|
||||
public static List<String> changeTagsToTagList(String tags){
|
||||
List<String> result = new ArrayList<String>();
|
||||
if(tags != null && !"".equals(tags)){
|
||||
String[] strings = tags.split(",");
|
||||
for(String str:strings){
|
||||
int index1 = str.indexOf("<");
|
||||
int index2 = str.indexOf(">");
|
||||
if(index2 > index1 && index1 >= 0){
|
||||
//读取当前的标签
|
||||
String tag = str.substring(index1 + 1, index2);
|
||||
if(!"".equals(tag) )
|
||||
result.add(tag);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//将tagList转换成字符串
|
||||
public static String changeTagListToTags(List<String> tagList){
|
||||
String result = "";
|
||||
for(String tag:tagList){
|
||||
result += "<" + tag + ">,";
|
||||
}
|
||||
if(!"".equals(result)){
|
||||
//表示需要转换的标签数量不为0
|
||||
result = result.substring(0, result.length() - 1);
|
||||
}else{
|
||||
//表示没有需要转换的标签
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//判断标签在List中是否存在
|
||||
public static boolean isTagExist(String tag, List<String> tags){
|
||||
for(int i = 0; i < tags.size(); i++){
|
||||
String tagName = tags.get(i);
|
||||
if(tagName.equals(tag)){
|
||||
//表示存在相同的标签
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;//遍历完还没有返回true 就表示没有相同名称的标签
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
package com.ossean.projectmanager.hotwords;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ossean.projectmanager.lasttabledao.OpenSourceProjectDao;
|
||||
import com.ossean.projectmanager.lasttabledao.PointersDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TagDao;
|
||||
import com.ossean.projectmanager.lasttabledao.TaggingsDao;
|
||||
import com.ossean.projectmanager.model.Hotword;
|
||||
import com.ossean.projectmanager.model.OpenSourceProject;
|
||||
import com.ossean.projectmanager.model.Taggings;
|
||||
|
||||
@Component("updatetagsandtaggings")
|
||||
public class UpdateTagsAndTaggings {
|
||||
Logger logger = Logger.getLogger(this.getClass());
|
||||
|
||||
@Resource
|
||||
private TaggingsDao taggingsDao;
|
||||
@Resource
|
||||
private OpenSourceProjectDao ospDao;
|
||||
@Resource
|
||||
private TagDao tagsDao;
|
||||
@Resource
|
||||
private PointersDao pointersDao;
|
||||
@Qualifier("inserthotwords")
|
||||
@Autowired
|
||||
private InsertHotwords insertClass;
|
||||
|
||||
@Transactional(propagation=Propagation.REQUIRES_NEW)
|
||||
public void update(OpenSourceProject project, List<String> projectTagList, String tagsNew, int count, String sourceTableName, String targetTableName, List<Hotword> hotwordsList, List<String> updateDisagreeNumTagNameList, Map<String, Integer> tagCountMap){
|
||||
//对新的项目标签(tags)属性进行更新
|
||||
ospDao.updateTagsOfProject(project.getId(), tagsNew);
|
||||
//对新加的标签进行遍历
|
||||
for(int i = projectTagList.size() - 1; i >= projectTagList.size() - count; i--){
|
||||
String tagName = projectTagList.get(i);
|
||||
//取出相应tagName的标签
|
||||
List<Integer> tagIds = tagsDao.getIdByName(tagName);
|
||||
if(tagIds.size() == 0){
|
||||
//表示tag不存在
|
||||
logger.fatal("tag: " + tagName + " doesn't exist! We will insert one");
|
||||
tagsDao.insertTag(tagName);
|
||||
i++;
|
||||
continue;
|
||||
}else{
|
||||
//表示标签存在
|
||||
int tagId = tagIds.get(0);
|
||||
//构造taggings对象
|
||||
Taggings taggings = new Taggings();
|
||||
taggings.setTag_id(tagId);
|
||||
taggings.setTaggable_id(project.getId());
|
||||
taggings.setDisagree_num(0);//初始化的disagree_num为0
|
||||
taggings.setTaggable_type("OpenSourceProject");
|
||||
taggings.setContext("tags");
|
||||
taggings.setTag_source("FromRelativeMemo");
|
||||
List<Taggings> tmp = taggingsDao.findTaggings(taggings);
|
||||
if(tmp.size() != 0){
|
||||
//表示已经存在相应的taggings记录
|
||||
continue;
|
||||
}else{
|
||||
//将新记录插入taggings表中
|
||||
taggingsDao.insertTaggings(taggings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//将项目对应的热词插入hotwords表 在insert函数中进行指针的更新 同时更新已经存在在项目标签属性中的标签disagree_num值
|
||||
insertClass.insert(hotwordsList, sourceTableName, targetTableName, project.getId() + 1, updateDisagreeNumTagNameList, tagCountMap, project);
|
||||
|
||||
logger.info("当前项目" + project.getName() + "的更新操作完成");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import com.ossean.projectmanager.model.Hotword;
|
||||
|
||||
public interface HotwordDao {
|
||||
|
||||
//向热词表中添加数据
|
||||
@Insert("insert into hot_words (`osp_id`,`name`,`weight`,`created_at`,`updated_at`) values (#{item.osp_id},#{item.name},#{item.weight},now(),now())")
|
||||
public void insertItem(@Param("item") Hotword item);
|
||||
|
||||
|
||||
//查看是否存在osp_id和name对应的记录
|
||||
@Select("select * from hot_words where osp_id=#{item.osp_id} and name=#{item.name}")
|
||||
public List<Hotword> findItem(@Param("item") Hotword item);
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import com.ossean.projectmanager.model.OpenSourceProject;
|
||||
|
||||
public interface OpenSourceProjectDao {
|
||||
|
||||
// 读取一定数量的项目信息
|
||||
@Select("select * from open_source_projects where id>=#{start} limit #{size}")
|
||||
public List<OpenSourceProject> getProjectsByBatch(
|
||||
@Param("start") int start, @Param("size") int size);
|
||||
|
||||
// 对项目标签属性进行更新
|
||||
@Update("update open_source_projects set tags=#{tags} where id=#{id}")
|
||||
public void updateTagsOfProject(@Param("id") int id,
|
||||
@Param("tags") String tags);
|
||||
|
||||
// 批量获取项目
|
||||
@Select("select id,source,url,filtration from open_source_projects limit #{batchSize}")
|
||||
public List<OpenSourceProject> getBatchPrjs(@Param("batchSize") int batchSize);
|
||||
|
||||
// filtration为1表示保留,为2表示之前保留的且已处理,为0表示不保留
|
||||
@Update("update open_source_projects set filtration = #{filtration} where id = #{prjId}")
|
||||
public void updateFiltratedPrj(@Param("prjId") int prjId,
|
||||
@Param("filtration") int filtration);
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
public interface PointersDao {
|
||||
|
||||
//读取pointers表中对应sourceTableName和targetTableNamed的指针
|
||||
@Select("select Pointer from pointers where SourceTableName=#{source} and TargetTableName=#{target}")
|
||||
public int readPointer(@Param("source") String source, @Param("target") String target);
|
||||
|
||||
//初始化指针 初始化大小为1
|
||||
@Insert("insert into pointers (SourceTableName, TargetTableName, Pointer) values (#{source}, #{target}, 1)")
|
||||
public void insertPointer(@Param("source") String source, @Param("target") String target);
|
||||
|
||||
|
||||
//更新指针
|
||||
@Update("update pointers set Pointer=#{pointer} where SourceTableName=#{source} and TargetTableName=#{target}")
|
||||
public void updatePointer(@Param("source") String source, @Param("target") String target, @Param("pointer") int pointer);
|
||||
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import com.ossean.projectmanager.model.RelativeMemo;
|
||||
|
||||
public interface RelativeMemoDao {
|
||||
|
||||
//根据帖子id获取帖子对象
|
||||
@Select("select * from relative_memos where id=#{id}")
|
||||
public RelativeMemo getById(@Param("id") int id);
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import com.ossean.projectmanager.model.RelativeMemoToOpenSourceProject;
|
||||
|
||||
public interface RelativeMemoToOpenSourceProjectDao {
|
||||
|
||||
// 读取项目id对应的匹配权重较大的所有关联的帖子
|
||||
@Select("select * from ${targetTableName} where osp_id = #{osp_id} and match_weight > 2")
|
||||
public List<RelativeMemoToOpenSourceProject> getHighWeightMatchResult(
|
||||
@Param("osp_id") int osp_id,
|
||||
@Param("targetTableName") String targetTableName);
|
||||
|
||||
// 读取项目id对应的所有关联的帖子
|
||||
@Select("select * from relative_memo_to_open_source_projects_new where osp_id=#{osp_id}")
|
||||
public List<RelativeMemoToOpenSourceProject> getRelativeMemosByOspId(
|
||||
@Param("osp_id") int osp_id);
|
||||
|
||||
// 删除指定项目的所有匹配结果
|
||||
@Delete("delete from ${targetTableName} where osp_id = ${ospId}")
|
||||
public void deleteMatchResult(
|
||||
@Param("targetTableName") String targetTableName,
|
||||
@Param("ospId") int ospId);
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
public interface TagDao {
|
||||
|
||||
//根据标签名 取出标签id
|
||||
@Select("select id from tags where name=#{name}")
|
||||
public List<Integer> getIdByName(@Param("name") String name);
|
||||
|
||||
|
||||
//向tags表插入数据
|
||||
@Insert("insert into tags (name) values (#{name})")
|
||||
public void insertTag(@Param("name") String name);
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.ossean.projectmanager.lasttabledao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import com.ossean.projectmanager.model.Taggings;
|
||||
|
||||
public interface TaggingsDao {
|
||||
|
||||
//根据帖子id读取taggings表中与帖子相关联的taggings记录
|
||||
@Select("select * from taggings where taggable_id=#{memoId} and taggable_type='RelativeMemo'")
|
||||
public List<Taggings> getByMemoId(@Param("memoId") int memoId);
|
||||
|
||||
|
||||
//向taggings表中插入由匹配帖子标签得到的新项目标签
|
||||
@Insert("insert into taggings (tag_id,taggable_id,taggable_type,disagree_num,context,created_at,tag_source) values (#{item.tag_id},#{item.taggable_id},#{item.taggable_type},#{item.disagree_num},#{item.context},now(),#{item.tag_source})")
|
||||
public void insertTaggings(@Param("item") Taggings item);
|
||||
|
||||
|
||||
//查看taggings表中是否存在要查询的标签
|
||||
@Select("select * from taggings where tag_id=#{item.tag_id} and taggable_type=#{item.taggable_type} and taggable_id=#{item.taggable_id}")
|
||||
public List<Taggings> findTaggings(@Param("item") Taggings item);
|
||||
|
||||
//修改disagree_num值
|
||||
@Update("update taggings set disagree_num=#{value} where taggable_id=#{taggable_id} AND taggable_type=#{taggable_type} AND tag_id=#{tag_id} ")
|
||||
public void updateDisagreeNum(@Param("value") int value, @Param("taggable_id") int taggable_id, @Param("taggable_type") String taggable_type, @Param("tag_id") int tag_id);
|
||||
|
||||
|
||||
//获取disagree_num值
|
||||
@Select("select disagree_num from taggings where tag_id=#{tag_id} and taggable_id=#{taggable_id} and taggable_type=#{taggable_type}")
|
||||
public int getDisagreeNum(@Param("tag_id") int tag_id, @Param("taggable_id") int taggable_id, @Param("taggable_type") String taggable_type);
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class Hotword {
|
||||
|
||||
private int id;
|
||||
private int osp_id;
|
||||
private String name;
|
||||
private float weight;
|
||||
private String created_at;
|
||||
private String updated_at;
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
public int getOsp_id() {
|
||||
return osp_id;
|
||||
}
|
||||
public void setOsp_id(int osp_id) {
|
||||
this.osp_id = osp_id;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public float getWeight() {
|
||||
return weight;
|
||||
}
|
||||
public void setWeight(float weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
public String getCreated_at() {
|
||||
return created_at;
|
||||
}
|
||||
public void setCreated_at(String created_at) {
|
||||
this.created_at = created_at;
|
||||
}
|
||||
public String getUpdated_at() {
|
||||
return updated_at;
|
||||
}
|
||||
public void setUpdated_at(String updated_at) {
|
||||
this.updated_at = updated_at;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,140 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class OpenSourceProject {
|
||||
private int id;
|
||||
private String url;
|
||||
private String name;
|
||||
private String source;
|
||||
private int filration;
|
||||
private int followers_num;
|
||||
private String language;
|
||||
private int download_num;
|
||||
private int view_num_crawled;
|
||||
private String category;
|
||||
private String crawled_time;
|
||||
private int view_num_local;
|
||||
private String created_at;
|
||||
private String updated_at;
|
||||
private int ossean_score;
|
||||
private int relative_memos_num;
|
||||
private String created_time;
|
||||
private String updated_time;
|
||||
private String tags;
|
||||
|
||||
public String getUrl(){
|
||||
return url;
|
||||
}
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getSource() {
|
||||
return source;
|
||||
}
|
||||
public void setSource(String source) {
|
||||
this.source = source;
|
||||
}
|
||||
public int getFilration() {
|
||||
return filration;
|
||||
}
|
||||
public void setFilration(int filration) {
|
||||
this.filration = filration;
|
||||
}
|
||||
public int getFollowers_num() {
|
||||
return followers_num;
|
||||
}
|
||||
public void setFollowers_num(int followers_num) {
|
||||
this.followers_num = followers_num;
|
||||
}
|
||||
public String getLanguage() {
|
||||
return language;
|
||||
}
|
||||
public void setLanguage(String language) {
|
||||
this.language = language;
|
||||
}
|
||||
public int getDownload_num() {
|
||||
return download_num;
|
||||
}
|
||||
public void setDownload_num(int download_num) {
|
||||
this.download_num = download_num;
|
||||
}
|
||||
public int getView_num_crawled() {
|
||||
return view_num_crawled;
|
||||
}
|
||||
public void setView_num_crawled(int view_num_crawled) {
|
||||
this.view_num_crawled = view_num_crawled;
|
||||
}
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
public String getCrawled_time() {
|
||||
return crawled_time;
|
||||
}
|
||||
public void setCrawled_time(String crawled_time) {
|
||||
this.crawled_time = crawled_time;
|
||||
}
|
||||
public int getView_num_local() {
|
||||
return view_num_local;
|
||||
}
|
||||
public void setView_num_local(int view_num_local) {
|
||||
this.view_num_local = view_num_local;
|
||||
}
|
||||
public String getCreated_at() {
|
||||
return created_at;
|
||||
}
|
||||
public void setCreated_at(String created_at) {
|
||||
this.created_at = created_at;
|
||||
}
|
||||
public String getUpdated_at() {
|
||||
return updated_at;
|
||||
}
|
||||
public void setUpdated_at(String updated_at) {
|
||||
this.updated_at = updated_at;
|
||||
}
|
||||
public int getOssean_score() {
|
||||
return ossean_score;
|
||||
}
|
||||
public void setOssean_score(int ossean_score) {
|
||||
this.ossean_score = ossean_score;
|
||||
}
|
||||
public int getRelative_memos_num() {
|
||||
return relative_memos_num;
|
||||
}
|
||||
public void setRelative_memos_num(int relative_memos_num) {
|
||||
this.relative_memos_num = relative_memos_num;
|
||||
}
|
||||
public String getCreated_time() {
|
||||
return created_time;
|
||||
}
|
||||
public void setCreated_time(String created_time) {
|
||||
this.created_time = created_time;
|
||||
}
|
||||
public String getUpdated_time() {
|
||||
return updated_time;
|
||||
}
|
||||
public void setUpdated_time(String updated_time) {
|
||||
this.updated_time = updated_time;
|
||||
}
|
||||
public String getTags() {
|
||||
return tags;
|
||||
}
|
||||
public void setTags(String tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class OpenhubProject {
|
||||
private String description;
|
||||
private String name;
|
||||
private String codeLocation;
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getCodeLocation() {
|
||||
return codeLocation;
|
||||
}
|
||||
public void setCodeLocation(String codeLocation) {
|
||||
this.codeLocation = codeLocation;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,209 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class RelativeMemo {
|
||||
|
||||
private int id;
|
||||
private int osp_id;
|
||||
private String subject;
|
||||
private String content;
|
||||
private String author;
|
||||
private int replies_num;
|
||||
private int lock;
|
||||
private int sticky;
|
||||
private String created_time;
|
||||
private String updated_time;
|
||||
private String url;
|
||||
private int view_num_crawled;
|
||||
private int vote_up_num;
|
||||
private int collection_num;
|
||||
private String abstractText;
|
||||
private String memo_type;
|
||||
private String source;
|
||||
private String category;
|
||||
private int view_num_trustie;
|
||||
private int author_id;
|
||||
private int parent_id;
|
||||
private int last_reply_id;
|
||||
private int is_quote;
|
||||
private String username;
|
||||
private String userhomeurl;
|
||||
private String crawled_time;
|
||||
private String author_url;
|
||||
private String url_md5;
|
||||
private String tags;
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
public int getOsp_id() {
|
||||
return osp_id;
|
||||
}
|
||||
public void setOsp_id(int osp_id) {
|
||||
this.osp_id = osp_id;
|
||||
}
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
public String getAuthor() {
|
||||
return author;
|
||||
}
|
||||
public void setAuthor(String author) {
|
||||
this.author = author;
|
||||
}
|
||||
public int getReplies_num() {
|
||||
return replies_num;
|
||||
}
|
||||
public void setReplies_num(int replies_num) {
|
||||
this.replies_num = replies_num;
|
||||
}
|
||||
public int getLock() {
|
||||
return lock;
|
||||
}
|
||||
public void setLock(int lock) {
|
||||
this.lock = lock;
|
||||
}
|
||||
public int getSticky() {
|
||||
return sticky;
|
||||
}
|
||||
public void setSticky(int sticky) {
|
||||
this.sticky = sticky;
|
||||
}
|
||||
public String getCreated_time() {
|
||||
return created_time;
|
||||
}
|
||||
public void setCreated_time(String created_time) {
|
||||
this.created_time = created_time;
|
||||
}
|
||||
public String getUpdated_time() {
|
||||
return updated_time;
|
||||
}
|
||||
public void setUpdated_time(String updated_time) {
|
||||
this.updated_time = updated_time;
|
||||
}
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
public int getView_num_crawled() {
|
||||
return view_num_crawled;
|
||||
}
|
||||
public void setView_num_crawled(int view_num_crawled) {
|
||||
this.view_num_crawled = view_num_crawled;
|
||||
}
|
||||
public int getVote_up_num() {
|
||||
return vote_up_num;
|
||||
}
|
||||
public void setVote_up_num(int vote_up_num) {
|
||||
this.vote_up_num = vote_up_num;
|
||||
}
|
||||
public int getCollection_num() {
|
||||
return collection_num;
|
||||
}
|
||||
public void setCollection_num(int collection_num) {
|
||||
this.collection_num = collection_num;
|
||||
}
|
||||
public String getAbstractText() {
|
||||
return abstractText;
|
||||
}
|
||||
public void setAbstractText(String abstractText) {
|
||||
this.abstractText = abstractText;
|
||||
}
|
||||
public String getMemo_type() {
|
||||
return memo_type;
|
||||
}
|
||||
public void setMemo_type(String memo_type) {
|
||||
this.memo_type = memo_type;
|
||||
}
|
||||
public String getSource() {
|
||||
return source;
|
||||
}
|
||||
public void setSource(String source) {
|
||||
this.source = source;
|
||||
}
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
public int getView_num_trustie() {
|
||||
return view_num_trustie;
|
||||
}
|
||||
public void setView_num_trustie(int view_num_trustie) {
|
||||
this.view_num_trustie = view_num_trustie;
|
||||
}
|
||||
public int getAuthor_id() {
|
||||
return author_id;
|
||||
}
|
||||
public void setAuthor_id(int author_id) {
|
||||
this.author_id = author_id;
|
||||
}
|
||||
public int getParent_id() {
|
||||
return parent_id;
|
||||
}
|
||||
public void setParent_id(int parent_id) {
|
||||
this.parent_id = parent_id;
|
||||
}
|
||||
public int getLast_reply_id() {
|
||||
return last_reply_id;
|
||||
}
|
||||
public void setLast_reply_id(int last_reply_id) {
|
||||
this.last_reply_id = last_reply_id;
|
||||
}
|
||||
public int getIs_quote() {
|
||||
return is_quote;
|
||||
}
|
||||
public void setIs_quote(int is_quote) {
|
||||
this.is_quote = is_quote;
|
||||
}
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
public String getUserhomeurl() {
|
||||
return userhomeurl;
|
||||
}
|
||||
public void setUserhomeurl(String userhomeurl) {
|
||||
this.userhomeurl = userhomeurl;
|
||||
}
|
||||
public String getCrawled_time() {
|
||||
return crawled_time;
|
||||
}
|
||||
public void setCrawled_time(String crawled_time) {
|
||||
this.crawled_time = crawled_time;
|
||||
}
|
||||
public String getAuthor_url() {
|
||||
return author_url;
|
||||
}
|
||||
public void setAuthor_url(String author_url) {
|
||||
this.author_url = author_url;
|
||||
}
|
||||
public String getUrl_md5() {
|
||||
return url_md5;
|
||||
}
|
||||
public void setUrl_md5(String url_md5) {
|
||||
this.url_md5 = url_md5;
|
||||
}
|
||||
public String getTags() {
|
||||
return tags;
|
||||
}
|
||||
public void setTags(String tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RelativeMemoToOpenSourceProject {
|
||||
|
||||
private int id;
|
||||
private int osp_id;
|
||||
private int relative_memo_id;
|
||||
private float match_weight;
|
||||
private String created_time;
|
||||
private List<Integer> tagIds;
|
||||
private int replies_num;
|
||||
private int view_num_crawled;
|
||||
private String memo_type;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
public int getOsp_id() {
|
||||
return osp_id;
|
||||
}
|
||||
public void setOsp_id(int osp_id) {
|
||||
this.osp_id = osp_id;
|
||||
}
|
||||
public int getRelative_memo_id() {
|
||||
return relative_memo_id;
|
||||
}
|
||||
public void setRelative_memo_id(int relative_memo_id) {
|
||||
this.relative_memo_id = relative_memo_id;
|
||||
}
|
||||
public float getMatch_weight() {
|
||||
return match_weight;
|
||||
}
|
||||
public void setMatch_weight(float match_weight) {
|
||||
this.match_weight = match_weight;
|
||||
}
|
||||
public String getCreated_time() {
|
||||
return created_time;
|
||||
}
|
||||
public void setCreated_time(String created_time) {
|
||||
this.created_time = created_time;
|
||||
}
|
||||
public List<Integer> getTagIds() {
|
||||
return tagIds;
|
||||
}
|
||||
public void setTagIds(List<Integer> tagIds) {
|
||||
this.tagIds = tagIds;
|
||||
}
|
||||
public int getReplies_num() {
|
||||
return replies_num;
|
||||
}
|
||||
public void setReplies_num(int replies_num) {
|
||||
this.replies_num = replies_num;
|
||||
}
|
||||
public int getView_num_crawled() {
|
||||
return view_num_crawled;
|
||||
}
|
||||
public void setView_num_crawled(int view_num_crawled) {
|
||||
this.view_num_crawled = view_num_crawled;
|
||||
}
|
||||
public String getMemo_type() {
|
||||
return memo_type;
|
||||
}
|
||||
public void setMemo_type(String memo_type) {
|
||||
this.memo_type = memo_type;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class SourceForgeProject {
|
||||
private String description;
|
||||
private String name;
|
||||
private int download_num;
|
||||
private int stars;
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public int getDownload_num() {
|
||||
return download_num;
|
||||
}
|
||||
public void setDownload_num(int download_num) {
|
||||
this.download_num = download_num;
|
||||
}
|
||||
public int getStars() {
|
||||
return stars;
|
||||
}
|
||||
public void setStars(int stars) {
|
||||
this.stars = stars;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
package com.ossean.projectmanager.model;
|
||||
|
||||
public class Taggings {
|
||||
private int id;
|
||||
private int tag_id;
|
||||
private int taggable_id;
|
||||
private String taggable_type;
|
||||
private int tagger_id;
|
||||
private String tagger_type;
|
||||
private String context;
|
||||
private String created_at;
|
||||
private int disagree_num;
|
||||
private String tag_source;
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
public int getTag_id() {
|
||||
return tag_id;
|
||||
}
|
||||
public void setTag_id(int tag_id) {
|
||||
this.tag_id = tag_id;
|
||||
}
|
||||
public int getTaggable_id() {
|
||||
return taggable_id;
|
||||
}
|
||||
public void setTaggable_id(int taggable_id) {
|
||||
this.taggable_id = taggable_id;
|
||||
}
|
||||
public String getTaggable_type() {
|
||||
return taggable_type;
|
||||
}
|
||||
public void setTaggable_type(String taggable_type) {
|
||||
this.taggable_type = taggable_type;
|
||||
}
|
||||
public int getTagger_id() {
|
||||
return tagger_id;
|
||||
}
|
||||
public void setTagger_id(int tagger_id) {
|
||||
this.tagger_id = tagger_id;
|
||||
}
|
||||
public String getTagger_type() {
|
||||
return tagger_type;
|
||||
}
|
||||
public void setTagger_type(String tagger_type) {
|
||||
this.tagger_type = tagger_type;
|
||||
}
|
||||
public String getContext() {
|
||||
return context;
|
||||
}
|
||||
public void setContext(String context) {
|
||||
this.context = context;
|
||||
}
|
||||
public String getCreated_at() {
|
||||
return created_at;
|
||||
}
|
||||
public void setCreated_at(String created_at) {
|
||||
this.created_at = created_at;
|
||||
}
|
||||
public int getDisagree_num() {
|
||||
return disagree_num;
|
||||
}
|
||||
public void setDisagree_num(int disagree_num) {
|
||||
this.disagree_num = disagree_num;
|
||||
}
|
||||
public String getTag_source() {
|
||||
return tag_source;
|
||||
}
|
||||
public void setTag_source(String tag_source) {
|
||||
this.tag_source = tag_source;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.ossean.projectmanager.parttabledao;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import com.ossean.projectmanager.model.OpenhubProject;
|
||||
import com.ossean.projectmanager.model.SourceForgeProject;
|
||||
|
||||
|
||||
public interface PartProjectDao {
|
||||
|
||||
@Select("select name,description,codeLocation from openhub_project where url = #{url}")
|
||||
public OpenhubProject getOpenHubPrjByUrl( @Param("url") String url);
|
||||
|
||||
@Select("select name,description,download_num,stars from sourceforge_project where url = #{url}")
|
||||
public SourceForgeProject getSourceForgePrjByUrl( @Param("url") String url);
|
||||
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
package com.ossean.projectmanager.projectsfilter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ossean.projectmanager.lasttabledao.OpenSourceProjectDao;
|
||||
import com.ossean.projectmanager.lasttabledao.RelativeMemoToOpenSourceProjectDao;
|
||||
import com.ossean.projectmanager.model.OpenhubProject;
|
||||
import com.ossean.projectmanager.model.OpenSourceProject;
|
||||
import com.ossean.projectmanager.model.SourceForgeProject;
|
||||
import com.ossean.projectmanager.parttabledao.PartProjectDao;
|
||||
|
||||
@Component("projectsFilter")
|
||||
public class ProjectsFilter {
|
||||
@Resource
|
||||
private OpenSourceProjectDao lastProjectDao;
|
||||
|
||||
@Resource
|
||||
private PartProjectDao partProjectDao;
|
||||
|
||||
@Resource
|
||||
private RelativeMemoToOpenSourceProjectDao matchResultDao;
|
||||
|
||||
/**
|
||||
* 对项目总表根据各个社区的特定字段做筛选
|
||||
*/
|
||||
public void filtratePrjs() {
|
||||
//
|
||||
List<OpenSourceProject> prjsList = lastProjectDao.getBatchPrjs(10000000);
|
||||
for(OpenSourceProject project : prjsList){
|
||||
String prjUrl = project.getUrl();
|
||||
String source = "";
|
||||
String url="";
|
||||
if(prjUrl.contains("|,|")){ //即url中包含多个项目来源
|
||||
String firstUrl = StringUtils.splitByWholeSeparator(prjUrl, "|,|")[0];//只对第一个,即去重时保留的最热的项目来源做筛选。
|
||||
source = StringUtils.splitByWholeSeparator(firstUrl, "|:|")[0]; //从url字段中取得第一个来源社区。
|
||||
url = StringUtils.splitByWholeSeparator(firstUrl, "|:|")[1]; //获得第一个url
|
||||
}
|
||||
else{ //url只有一个项目来源
|
||||
source = StringUtils.splitByWholeSeparator(prjUrl, "|,|")[0];
|
||||
url = StringUtils.splitByWholeSeparator(prjUrl, "|,|")[1];
|
||||
}
|
||||
if(source.equals("OpenHub")){
|
||||
OpenhubProject openhubProject = partProjectDao.getOpenHubPrjByUrl(url); //根据url从openhub的项目分表获得项目信息
|
||||
if(openhubProject.getName()!=null&&openhubProject.getName()!=""&&
|
||||
openhubProject.getDescription()!=null&&openhubProject.getDescription()!=""&&
|
||||
!openhubProject.getCodeLocation().contains("add a code location")){ //openhub的筛选条件为name、description不为空,且该项目有版本库
|
||||
if(project.getFilration()==0){
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 1); //筛选标识从0变为1,表示该项目经过筛选新增的
|
||||
matchResultDao.deleteMatchResult(getTargetTable(project.getId()), project.getId()); //删除该项目的匹配结果,确保无之前的匹配结果
|
||||
}
|
||||
else{
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 2); //筛选标识由1或2变为2,表示该项目之前就是筛选作为保留的
|
||||
}
|
||||
}
|
||||
else{
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 0); //筛选标识变为0,表示该项目不保留
|
||||
matchResultDao.deleteMatchResult(getTargetTable(project.getId()), project.getId()); //删除该项目的匹配结果
|
||||
}
|
||||
}
|
||||
else if(source.equals("SourceForge")){
|
||||
SourceForgeProject sourceforgeProject = partProjectDao.getSourceForgePrjByUrl(url); //根据url从SourceForge的项目分表获得项目信息
|
||||
if(sourceforgeProject.getName()!=null&&sourceforgeProject.getName()!=""&&
|
||||
sourceforgeProject.getDescription()!=null&&sourceforgeProject.getDescription()!=""&&
|
||||
((sourceforgeProject.getDownload_num()>0) || (sourceforgeProject.getStars()>0))){
|
||||
if(project.getFilration()==0){
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 1); //筛选标识从0变为1,表示该项目经过筛选新增的
|
||||
matchResultDao.deleteMatchResult(getTargetTable(project.getId()), project.getId()); //删除该项目的匹配结果,确保无之前的匹配结果
|
||||
}
|
||||
else{
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 2); //筛选标识由1或2变为2,表示该项目之前就是筛选作为保留的
|
||||
}
|
||||
}
|
||||
else{
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 0); //筛选标识变为0,表示该项目不保留
|
||||
matchResultDao.deleteMatchResult(getTargetTable(project.getId()), project.getId()); //删除该项目的匹配结果
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(project.getFilration()==0){
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 1); //筛选标识从0变为1,表示该项目经过筛选新增的
|
||||
matchResultDao.deleteMatchResult(getTargetTable(project.getId()), project.getId()); //删除该项目的匹配结果,确保无之前的匹配结果
|
||||
}
|
||||
else{
|
||||
lastProjectDao.updateFiltratedPrj(project.getId(), 2); //筛选标识由1或2变为2,表示该项目之前就是筛选作为保留的
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get the match result table's name
|
||||
* @param osp_id
|
||||
* @return
|
||||
*/
|
||||
public static String getTargetTable(int osp_id){
|
||||
String targetTableName = "";
|
||||
if (osp_id < 500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_1";
|
||||
}
|
||||
else if (osp_id >= 500 && osp_id < 1000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_2";
|
||||
}
|
||||
else if (osp_id >= 1000 && osp_id < 1500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_3";
|
||||
}
|
||||
else if (osp_id >= 1500 && osp_id < 2000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_4";
|
||||
}
|
||||
else if (osp_id >= 2000 && osp_id < 3000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_5";
|
||||
}
|
||||
else if (osp_id >= 3000 && osp_id < 5000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_6";
|
||||
}
|
||||
else if (osp_id >= 5000 && osp_id < 7500) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_7";
|
||||
}
|
||||
else if (osp_id >= 7500 && osp_id < 10000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_8";
|
||||
}
|
||||
else if (osp_id >= 10000 && osp_id < 310000) {
|
||||
int a = 7 + osp_id/5000;
|
||||
targetTableName = "relative_memo_to_open_source_projects_" + a;
|
||||
}
|
||||
else if (osp_id >= 310000) {
|
||||
targetTableName = "relative_memo_to_open_source_projects_70";
|
||||
}
|
||||
return targetTableName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/tx
|
||||
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
|
||||
|
||||
<!--SourceData -->
|
||||
<bean id="dataSourceOne" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
destroy-method="close">
|
||||
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
|
||||
<property name="url"
|
||||
value="jdbc:mysql://localhost:3306/ossean_production?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true" />
|
||||
<property name="username" value="root" />
|
||||
<property name="password" value="1234" />
|
||||
<property name="validationQuery" value="SELECT 1" />
|
||||
<property name="testOnBorrow" value="true"/>
|
||||
</bean>
|
||||
<bean id="sqlSessionFactoryOne" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSourceOne" />
|
||||
</bean>
|
||||
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||||
<property name="basePackage" value="com.ossean.projectmanager.parttabledao" />
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactoryOne"></property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!--DestData -->
|
||||
<bean id="dataSourceTwo" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
destroy-method="close">
|
||||
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
|
||||
<property name="url"
|
||||
value="jdbc:mysql://localhost:3306/ossean_production?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true" />
|
||||
<property name="username" value="root" />
|
||||
<property name="password" value="1234" />
|
||||
<property name="validationQuery" value="SELECT 1" />
|
||||
<property name="testOnBorrow" value="true"/>
|
||||
</bean>
|
||||
<bean id="sqlSessionFactoryTwo" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSourceTwo" />
|
||||
</bean>
|
||||
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||||
<property name="basePackage" value="com.ossean.projectmanager.lasttabledao" />
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactoryTwo"></property>
|
||||
</bean>
|
||||
|
||||
<tx:annotation-driven transaction-manager="transactionManager"/>
|
||||
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||
<property name="dataSource" ref="dataSourceOne" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc
|
||||
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
<context:annotation-config/>
|
||||
|
||||
<context:component-scan base-package="com.ossean.projectmanager"/>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
||||
|
||||
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="threshold" value="ERROR" />
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
|
||||
<param name="File" value="./log/error.log" />
|
||||
<param name="threshold" value="ERROR" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="file_log" class="org.apache.log4j.DailyRollingFileAppender">
|
||||
<param name="File" value="./log/webmagic.log" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 邮件(只有ERROR时才会发送!) -->
|
||||
<appender name="MAIL" class="org.apache.log4j.net.SMTPAppender">
|
||||
<param name="threshold" value="debug" />
|
||||
<!-- 日志的错误级别 <param name="threshold" value="fatal"/> -->
|
||||
<!-- 缓存文件大小,日志达到512K时发送Email -->
|
||||
<param name="BufferSize" value="1" />
|
||||
<!-- 单位K -->
|
||||
<param name="From" value="ossean_debug@163.com" />
|
||||
<param name="SMTPHost" value="smtp.163.com" />
|
||||
<param name="Subject" value="ossean-crawler-debug-log4jMessage" />
|
||||
<param name="To" value="gcm3651@126.com" />
|
||||
<param name="SMTPUsername" value="ossean_debug" />
|
||||
<param name="SMTPPassword" value="goodwell123" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!-- 数据库状态-->
|
||||
<appender name="DATABASE" class="org.apache.log4j.jdbc.JDBCAppender">
|
||||
<param name="URL" value="jdbc:mysql://127.0.0.1:3306/webmagic?characterEncoding=UTF-8"/>
|
||||
<param name="driver" value="com.mysql.jdbc.Driver"/>
|
||||
<param name="user" value="root"/>
|
||||
<param name="password" value="1234"/>
|
||||
<param name="sql" value="INSERT INTO log4j(stamp,thread,info_level,class,message,logger) VALUES ('%d{yyyy-MM-dd HH:mm:ss}','%t','%p','%c','%m','%l')"/>
|
||||
<!-- <layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="INSERT INTO log4j(stamp,thread,info_level,class,message,logger) VALUES ('%d{yyyy-MM-dd HH:mm:ss}','%t','%.50p','%.50c','%.1000m','%.50l')" />
|
||||
</layout>-->
|
||||
<!-- 过滤输出时Log内容,在这里,LevelMin是ERROR,LevelMax都 FATAL,所以输出DEBUG级别到FATAL级别的LOG数据-->
|
||||
<filter class="org.apache.log4j.varia.LevelRangeFilter">
|
||||
<param name="LevelMin" value="DEBUG"/>
|
||||
<param name="LevelMax" value="FATAL"/>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<logger name="org.apache" additivity="false">
|
||||
<level value="warn" />
|
||||
<appender-ref ref="stdout" />
|
||||
</logger>
|
||||
|
||||
<root>
|
||||
<level value="info" />
|
||||
<appender-ref ref="stdout" />
|
||||
<appender-ref ref="file" />
|
||||
<appender-ref ref="file_log" />
|
||||
<!-- <appender-ref ref="MAIL" />-->
|
||||
<!-- <appender-ref ref="DATABASE" /> -->
|
||||
</root>
|
||||
|
||||
</log4j:configuration>
|
Loading…
Reference in New Issue