mrAsacura
3 years ago
18 changed files with 945 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||||||
|
{ |
||||||
|
"java.configuration.updateBuildConfiguration": "automatic" |
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<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> |
||||||
|
|
||||||
|
<groupId>ru.egspt.moodle</groupId> |
||||||
|
<artifactId>anyreport</artifactId> |
||||||
|
<version>0.1</version> |
||||||
|
|
||||||
|
<name>anyreport</name> |
||||||
|
<!-- FIXME change it to the project's website --> |
||||||
|
<url>http://www.example.com</url> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||||
|
<maven.compiler.source>1.8</maven.compiler.source> |
||||||
|
<maven.compiler.target>1.8</maven.compiler.target> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.poi</groupId> |
||||||
|
<artifactId>poi</artifactId> |
||||||
|
<version>5.2.2</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.poi</groupId> |
||||||
|
<artifactId>poi-ooxml</artifactId> |
||||||
|
<version>5.2.2</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.poi</groupId> |
||||||
|
<artifactId>poi-ooxml-schemas</artifactId> |
||||||
|
<version>4.1.2</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.poi</groupId> |
||||||
|
<artifactId>poi-scratchpad</artifactId> |
||||||
|
<version>5.2.2</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.poi</groupId> |
||||||
|
<artifactId>ooxml-schemas</artifactId> |
||||||
|
<version>1.1</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.logging.log4j</groupId> |
||||||
|
<artifactId>log4j-to-slf4j</artifactId> |
||||||
|
<version>2.8.2</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId> org.apache.cassandra</groupId> |
||||||
|
<artifactId>cassandra-all</artifactId> |
||||||
|
<version>4.0.3</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>junit</groupId> |
||||||
|
<artifactId>junit</artifactId> |
||||||
|
<version>4.11</version> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>mysql</groupId> |
||||||
|
<artifactId>mysql-connector-java</artifactId> |
||||||
|
<version>8.0.28</version> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<build> |
||||||
|
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> |
||||||
|
<plugins> |
||||||
|
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-clean-plugin</artifactId> |
||||||
|
<version>3.1.0</version> |
||||||
|
</plugin> |
||||||
|
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-resources-plugin</artifactId> |
||||||
|
<version>3.0.2</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||||
|
<version>3.8.0</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-surefire-plugin</artifactId> |
||||||
|
<version>2.22.1</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-jar-plugin</artifactId> |
||||||
|
<version>3.0.2</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-install-plugin</artifactId> |
||||||
|
<version>2.5.2</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-deploy-plugin</artifactId> |
||||||
|
<version>2.8.2</version> |
||||||
|
</plugin> |
||||||
|
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-site-plugin</artifactId> |
||||||
|
<version>3.7.1</version> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-project-info-reports-plugin</artifactId> |
||||||
|
<version>3.0.0</version> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</pluginManagement> |
||||||
|
</build> |
||||||
|
</project> |
Binary file not shown.
@ -0,0 +1,19 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
public class Access { |
||||||
|
private static String userName = "esoe"; |
||||||
|
private static String password = "psalm6912"; |
||||||
|
private static String url = "jdbc:MySQL://45.128.206.87:3306/moodle"; |
||||||
|
|
||||||
|
//если значение userName отсутствует, запросить его у пользователя
|
||||||
|
public static String getUserName(){ |
||||||
|
return userName; |
||||||
|
} |
||||||
|
public static String getPassword(){ |
||||||
|
return password; |
||||||
|
} |
||||||
|
public static String getURL(){ |
||||||
|
return url; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
/** |
||||||
|
* графический интерфейс для |
||||||
|
* moodle.anyreport |
||||||
|
* |
||||||
|
*/ |
||||||
|
public class App |
||||||
|
{ |
||||||
|
public static void main( String[] args ) |
||||||
|
{ |
||||||
|
System.out.println( "Работает подготовщик отчетов по результатам тестирования пользователей ..." ); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,503 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.FileOutputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.nio.file.Files; |
||||||
|
import java.nio.file.Path; |
||||||
|
import java.nio.file.Paths; |
||||||
|
|
||||||
|
/** |
||||||
|
* Класс предоставляет методы работы с базой данных |
||||||
|
* передает данные классам-пользователям |
||||||
|
* Включает: |
||||||
|
* - подключение к серверу баз данных |
||||||
|
* - подключение к базе данных |
||||||
|
* - подключение к таблице базы данных |
||||||
|
* - запрос данных из таблицы |
||||||
|
* - |
||||||
|
*/ |
||||||
|
|
||||||
|
import java.sql.Connection; |
||||||
|
import java.sql.DriverManager; |
||||||
|
import java.sql.ResultSet; |
||||||
|
import java.sql.Statement; |
||||||
|
import java.time.LocalTime; |
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.Cell; |
||||||
|
import org.apache.poi.ss.usermodel.Row; |
||||||
|
import org.apache.poi.xssf.usermodel.XSSFSheet; |
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
||||||
|
import java.util.ArrayList; |
||||||
|
|
||||||
|
import javax.swing.JOptionPane; |
||||||
|
|
||||||
|
public class Base { |
||||||
|
private ArrayList<User> users; |
||||||
|
private ArrayList<Result> results; |
||||||
|
private ArrayList<Quiz> quizes; |
||||||
|
|
||||||
|
/** |
||||||
|
* @return the quizes |
||||||
|
*/ |
||||||
|
public ArrayList<Quiz> getQuizes() { |
||||||
|
return quizes; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param quizes the quizes to set |
||||||
|
*/ |
||||||
|
public void setQuizes(Connection conn, Base base) { |
||||||
|
ArrayList<Quiz> quizList = new ArrayList<>(); |
||||||
|
try{ |
||||||
|
Statement stmt = conn.createStatement(); |
||||||
|
//берем данные о результатах тестирования на сервере
|
||||||
|
ResultSet rs = stmt.executeQuery("SELECT id, name, timelimit FROM mdl_quiz"); |
||||||
|
while(rs.next()){ |
||||||
|
int id = rs.getInt("id"); |
||||||
|
String name = rs.getString("name"); |
||||||
|
//перебираем результаты тестирований, пишем в класс.
|
||||||
|
int i = 0;//
|
||||||
|
while (i < base.getResults().size()){ |
||||||
|
if (base.getResults().get(i).getQuizid() == id){ |
||||||
|
Quiz q = new Quiz(); |
||||||
|
q.setId(id); |
||||||
|
q.setName(name); |
||||||
|
int j = 0; |
||||||
|
boolean b = false; |
||||||
|
while (j < quizList.size()){ |
||||||
|
if (q.getId() == quizList.get(j).getId()){ |
||||||
|
b = true; |
||||||
|
} |
||||||
|
j++; |
||||||
|
} |
||||||
|
if (b != true){ |
||||||
|
quizList.add(q); |
||||||
|
} |
||||||
|
} |
||||||
|
i++; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.err.println ("Подключение к серверу баз данных не установлено ... "); |
||||||
|
ex.printStackTrace(); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
this.quizes = quizList; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the users |
||||||
|
*/ |
||||||
|
public ArrayList<User> getUsers() { |
||||||
|
return users; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param users the users to set |
||||||
|
*/ |
||||||
|
public void setUsers(ArrayList<User> users) { |
||||||
|
this.users = users; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the results |
||||||
|
*/ |
||||||
|
public ArrayList<Result> getResults() { |
||||||
|
return results; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param results the results to set |
||||||
|
* @throws IOException |
||||||
|
*/ |
||||||
|
|
||||||
|
public void createExcellReport(Connection conn, Base base) throws IOException{ |
||||||
|
System.out.println("Формирование report.xlsx ..."); |
||||||
|
// создание самого excel файла в памяти
|
||||||
|
XSSFWorkbook book = new XSSFWorkbook(); |
||||||
|
// создание листа
|
||||||
|
XSSFSheet sheet = book.createSheet("Report"); |
||||||
|
|
||||||
|
|
||||||
|
//формируем заголовки
|
||||||
|
System.out.println("Формируем заголовки таблицы ..."); |
||||||
|
ArrayList<Object> header = new ArrayList<Object>(); |
||||||
|
header.add("login"); |
||||||
|
header.add("mail"); |
||||||
|
//пишем названия тестов в заголовки xlsx
|
||||||
|
System.out.println("Пишем названия тестов в заголовки xlsx ..."); |
||||||
|
System.out.println("Количество пройденных тестов участниками выборки составило: " + base.getQuizes().size()); |
||||||
|
int i = 0; |
||||||
|
while (i < base.getQuizes().size()){ |
||||||
|
header.add(base.getQuizes().get(i).getName()); |
||||||
|
//System.out.println("Пишем заголовок: " + base.getQuizes().get(i).getName());
|
||||||
|
header.add(""); |
||||||
|
i++; |
||||||
|
} |
||||||
|
int row = 0;//строка
|
||||||
|
int col = 0;//столбец
|
||||||
|
Row r = sheet.createRow(row); |
||||||
|
while (col < header.size()){ |
||||||
|
r.createCell(col).setCellValue(header.get(col).toString()); |
||||||
|
//System.out.println(header.get(col));
|
||||||
|
col++; |
||||||
|
} |
||||||
|
System.out.println("Заголовки в report.xlsx сформированы."); |
||||||
|
|
||||||
|
//построчно формируем отчет
|
||||||
|
System.out.println("Построчно формируем отчет .... "); |
||||||
|
row++; |
||||||
|
//строк в отчете будет столько же, сколько пользователей попало в выборку (плюс строка- заголовков)
|
||||||
|
int userCurr = 0; |
||||||
|
while (userCurr < base.getUsers().size()){ |
||||||
|
col = 0; |
||||||
|
r = sheet.createRow(row); |
||||||
|
//заполняем данные пользователя (имя и почту)
|
||||||
|
Cell cname = r.createCell(col); |
||||||
|
cname.setCellValue(base.getUsers().get(userCurr).getName()); |
||||||
|
col++; |
||||||
|
Cell cmail = r.createCell(col); |
||||||
|
cmail.setCellValue(base.getUsers().get(userCurr).getMail()); |
||||||
|
col++; |
||||||
|
//Заполняем результаты тестирвоания пользователя
|
||||||
|
//Перебираем результаты, получаем результаты текущего пользователя
|
||||||
|
int resultCurr = 0; |
||||||
|
while (resultCurr < base.getResults().size()){ |
||||||
|
if (base.getResults().get(resultCurr).getUserid() == base.getUsers().get(userCurr).getId()){ |
||||||
|
//если текущий результат относится к текущему пользователю
|
||||||
|
//взять индекс теста из результата и сопоставить с полями заголовков (определить номер ячейки для формирования записи)
|
||||||
|
String quizname = ""; |
||||||
|
int quizCurr = 0; |
||||||
|
while (quizCurr < base.getQuizes().size()){ |
||||||
|
if (base.getResults().get(resultCurr).getQuizid() == base.getQuizes().get(quizCurr).getId()){ |
||||||
|
quizname = base.getQuizes().get(quizCurr).getName(); |
||||||
|
} |
||||||
|
quizCurr++; |
||||||
|
} |
||||||
|
//поиск индекса ячейки, куда писать результаты
|
||||||
|
int ihead = 0; |
||||||
|
int headerCurr = 0;//номер ячейки в которую писать результаты тестирования (+2)
|
||||||
|
while (ihead < header.size()){ |
||||||
|
if (quizname.equals(header.get(ihead))){ |
||||||
|
headerCurr = ihead; |
||||||
|
} |
||||||
|
ihead++; |
||||||
|
} |
||||||
|
//формируем ячейку grade
|
||||||
|
Cell cGrade = r.createCell(headerCurr); |
||||||
|
cGrade.setCellValue(base.getResults().get(resultCurr).getGrade()); |
||||||
|
//формируем ячейку time
|
||||||
|
Cell cTime = r.createCell(headerCurr + 1); |
||||||
|
//Time t = new Time(base.getResults().get(resultCurr).getTime());
|
||||||
|
//cTime.setCellValue(t.toString());
|
||||||
|
Long time = base.getResults().get(resultCurr).getTime(); |
||||||
|
String t = LocalTime.MIN.plusSeconds(time).toString(); |
||||||
|
cTime.setCellValue(t); |
||||||
|
} |
||||||
|
resultCurr++; |
||||||
|
} |
||||||
|
row++; |
||||||
|
userCurr++; |
||||||
|
} |
||||||
|
//пишем книгу в файл
|
||||||
|
String location = System.getProperty("user.dir") + "\\report.xlsx"; |
||||||
|
Path path = Paths.get(location); |
||||||
|
if (Files.exists(path)) { |
||||||
|
try (FileOutputStream out = new FileOutputStream(location)) { |
||||||
|
book.write(out); |
||||||
|
book.close(); |
||||||
|
out.close(); |
||||||
|
System.out.println("Excel файл успешно перезаписан!"); |
||||||
|
System.out.println(location); |
||||||
|
} |
||||||
|
catch (IOException e){ |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
else { |
||||||
|
try (FileOutputStream out = new FileOutputStream(new File(location))) { |
||||||
|
book.write(out); |
||||||
|
book.close(); |
||||||
|
out.close(); |
||||||
|
System.out.println("Excel файл успешно создан!"); |
||||||
|
System.out.println(location); |
||||||
|
} |
||||||
|
catch (IOException e){ |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
public void setResults(Connection conn, ArrayList<User> uFiltered) { |
||||||
|
ArrayList<Result> rList = new ArrayList<>(); |
||||||
|
try{ |
||||||
|
Statement stmt = conn.createStatement(); |
||||||
|
//берем данные о результатах тестирования на сервере
|
||||||
|
System.out.println("Берем с сервера данные о результатах тестирования ...."); |
||||||
|
ResultSet rs = stmt.executeQuery("SELECT id, quiz, userid, grade, timemodified FROM mdl_quiz_grades"); |
||||||
|
while(rs.next()){ |
||||||
|
int id = rs.getInt("id"); |
||||||
|
int quizid = rs.getInt("quiz"); |
||||||
|
/** |
||||||
|
* если пользователь с таким ящиком уже существует в выборке, |
||||||
|
* удаляем пользователя из выборки и пишем старый id пользователя в result |
||||||
|
* либо переписать результаты |
||||||
|
* надо в результате указать старый id пользователя. Остальные данные результата при этом сохранить. |
||||||
|
* надо удалить пользователя в случае изменения данных результата |
||||||
|
*/ |
||||||
|
int userid = rs.getInt("userid");//проверить почтовый ящик
|
||||||
|
double grade = rs.getDouble("grade"); |
||||||
|
//преобразование данных о времени сдачи теста
|
||||||
|
long time = 0; |
||||||
|
//перебираем результаты тестирования, пишем в класс.
|
||||||
|
int i = 0;//
|
||||||
|
while (i < uFiltered.size()){ |
||||||
|
if (uFiltered.get(i).getId() == userid){ |
||||||
|
Result res = new Result(); |
||||||
|
res.setId(id); |
||||||
|
res.setQuizid(quizid); |
||||||
|
res.setUserid(userid); |
||||||
|
res.setGrade(grade); |
||||||
|
res.setTime(time); |
||||||
|
rList.add(res); |
||||||
|
} |
||||||
|
i++; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.err.println ("Подключение к серверу баз данных не установлено ... "); |
||||||
|
ex.printStackTrace(); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
|
||||||
|
try { |
||||||
|
//берем данные о попытках с сервера, пишем корректное время сдачи теста
|
||||||
|
System.out.println("Берем данные о попытках с сервера, запоминаем результаты последней попытки ...."); |
||||||
|
Statement stmt = conn.createStatement(); |
||||||
|
ResultSet at = stmt.executeQuery("SELECT id, quiz, userid, attempt, timestart, timefinish, timemodified, sumgrades FROM mdl_quiz_attempts"); |
||||||
|
while (at.next()){ |
||||||
|
int quizidAt = at.getInt("quiz"); |
||||||
|
int useridAt = at.getInt("userid"); |
||||||
|
Long timestartAt = at.getLong("timestart"); |
||||||
|
Long timefinishAt = at.getLong("timefinish"); |
||||||
|
double sumgradesAt = at.getDouble("sumgrades"); |
||||||
|
int rCurr = 0; |
||||||
|
while (rCurr < rList.size()){ |
||||||
|
if (rList.get(rCurr).getUserid() == useridAt){ |
||||||
|
if (rList.get(rCurr).getQuizid() == quizidAt){ |
||||||
|
rList.get(rCurr).setTime(timefinishAt - timestartAt); |
||||||
|
rList.get(rCurr).setGrade(sumgradesAt); |
||||||
|
} |
||||||
|
} |
||||||
|
rCurr++; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.err.println ("Подключение к серверу баз данных не установлено ... "); |
||||||
|
ex.printStackTrace(); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
this.results = rList; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @param conn |
||||||
|
* @param teg |
||||||
|
*/ |
||||||
|
public void setUsersByTeg(Connection conn){ |
||||||
|
ArrayList<User> uList = new ArrayList<User>(); |
||||||
|
String teg = ""; |
||||||
|
int b = 0; |
||||||
|
while (b != 2){ |
||||||
|
try{ |
||||||
|
teg = JOptionPane.showInputDialog("Укажите тег для поиска пользователей:"); |
||||||
|
Statement stmt = conn.createStatement(); |
||||||
|
//берем данные о базах данных на сервере
|
||||||
|
ResultSet rs = stmt.executeQuery("SELECT id, username, email FROM mdl_user"); |
||||||
|
while(rs.next()){ |
||||||
|
//фильтруем выборку user
|
||||||
|
int id = rs.getInt("id"); |
||||||
|
String username = rs.getString("username"); |
||||||
|
String email = rs.getString("email"); |
||||||
|
//проверяем соответствие тега и записи в таблице
|
||||||
|
if (username.contains(teg)){ |
||||||
|
User u = new User(); |
||||||
|
u.setId(id); |
||||||
|
u.setMail(email); |
||||||
|
u.setName(username); |
||||||
|
uList.add(u); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.err.println ("Подключение к серверу баз данных не установлено ... "); |
||||||
|
ex.printStackTrace(); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
b = JOptionPane.showConfirmDialog(null, "Добавить еще тег?", "try", JOptionPane.OK_CANCEL_OPTION); |
||||||
|
System.out.println("Сделан выбор: " + b); |
||||||
|
} |
||||||
|
this.users = uList; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Фильтруем пользователей, находим дубли почтовых ящиков |
||||||
|
* когда ящик совпал, перебираем результаты и заменяем ID пользователя в результате |
||||||
|
* |
||||||
|
* удаляем пользователей, для которых отсутствуют результаты. |
||||||
|
* |
||||||
|
* @param base |
||||||
|
*/ |
||||||
|
public void filterByMail (ArrayList<User> users, ArrayList<Result> results){ |
||||||
|
ArrayList<User> fusers = new ArrayList<>();//отфильтрованные пользователи
|
||||||
|
//ArrayList<Result> fresults = new ArrayList<>();//исправленные результаты
|
||||||
|
//перебираем юзеров
|
||||||
|
//Stream<ArrayList<User>> streamUsers = Stream.of(users);
|
||||||
|
//streamUsers.filter(predicate)
|
||||||
|
int currentUser = 0; |
||||||
|
while (currentUser < users.size()){ |
||||||
|
User user = users.get(currentUser); |
||||||
|
ArrayList<User> userList= new ArrayList<>();//список аккаунтов пользователя с одинаковыми mail
|
||||||
|
//формируем список аккаунтов пользователя
|
||||||
|
int c = 0; |
||||||
|
//сравниваем почтовый ящик текущего пользователя с пользователями по списку, запоминаем все повторения.
|
||||||
|
while (c < users.size()){ |
||||||
|
if (user.getMail().equals(users.get(c).getMail())){ |
||||||
|
userList.add(users.get(c));//список аккаунтов текущего пользователя
|
||||||
|
} |
||||||
|
c++; |
||||||
|
} |
||||||
|
//если у пользователя больше одного аккаунта,
|
||||||
|
if (userList.size() != 1){ |
||||||
|
//System.out.println("Пользователь: " + userList.get(0).getMail() + "количество аккаунтов: " + userList.size());
|
||||||
|
/** |
||||||
|
* переписываем результаты тестирования текущего пользователя |
||||||
|
* заменяем в старых результатах id пользователя |
||||||
|
* перебираем список дублирующихся аккаунтов |
||||||
|
* */ |
||||||
|
//перебираем список дублирующихся аккаунтов
|
||||||
|
int uacc = 0; |
||||||
|
while (uacc < userList.size()){ |
||||||
|
//если аккаунт не первый
|
||||||
|
if (uacc != 0){ |
||||||
|
//перебираем результаты
|
||||||
|
int rCurr = 0; |
||||||
|
while (rCurr < results.size()){ |
||||||
|
if (userList.get(uacc).getId() == results.get(rCurr).getUserid()){ |
||||||
|
results.get(rCurr).setUserid(userList.get(0).getId());//сменили id пользователя в строке результата
|
||||||
|
} |
||||||
|
rCurr++; |
||||||
|
} |
||||||
|
} |
||||||
|
uacc++; |
||||||
|
} |
||||||
|
} |
||||||
|
//формирование списка пользователей, без дублирований
|
||||||
|
if (userList.size() != 1){//tесли есть дублирования
|
||||||
|
if (user.getId() == userList.get(0).getId()){//и пользователь первый в списке дублей
|
||||||
|
fusers.add(user); |
||||||
|
} |
||||||
|
} |
||||||
|
else{ |
||||||
|
fusers.add(user);//нет дублирований
|
||||||
|
} |
||||||
|
currentUser++;//переходим к следующему пользователю
|
||||||
|
} |
||||||
|
|
||||||
|
//Вычисляем пользователей, которые не проходили тестирование (нет результатов)
|
||||||
|
/** |
||||||
|
* |
||||||
|
*/ |
||||||
|
//перебираем список не дублирующихся пользователей
|
||||||
|
ArrayList<User> balbesers = new ArrayList<>(); |
||||||
|
int uClear = 0; |
||||||
|
while (uClear < fusers.size()){ |
||||||
|
//список пользователей, не сдававших тесты
|
||||||
|
//перебираем результаты
|
||||||
|
int rClear = 0; |
||||||
|
int num = 0; |
||||||
|
while (rClear < results.size()){ |
||||||
|
if (fusers.get(uClear).getId() == results.get(rClear).getUserid()){ |
||||||
|
num++;//считаем количество тестов пройденных пользователем
|
||||||
|
} |
||||||
|
rClear++; |
||||||
|
} |
||||||
|
if (num == 0){ |
||||||
|
balbesers.add(fusers.get(uClear)); |
||||||
|
} |
||||||
|
uClear++; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* формирование отчетов |
||||||
|
* |
||||||
|
*/ |
||||||
|
System.out.println("Учетных записей: " + users.size()); |
||||||
|
System.out.println("Пользователей (без дублирований): " + fusers.size()); |
||||||
|
System.out.println("Пользователей (balbesers): " + balbesers.size()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Главный метод, для проверки кода |
||||||
|
* @param args |
||||||
|
*/ |
||||||
|
public static void main (String[] args){ |
||||||
|
System.out.println("Подключение к серверу баз данных ..."); |
||||||
|
Connection conn = null; |
||||||
|
try{ |
||||||
|
//данные аккаунта
|
||||||
|
String userName = Access.getUserName(); |
||||||
|
String password = Access.getPassword(); |
||||||
|
String url = Access.getURL(); |
||||||
|
conn = DriverManager.getConnection (url, userName, password); |
||||||
|
System.out.println ("Подключение к серверу баз данных установлено ... "); |
||||||
|
|
||||||
|
//Формирование перечня пользователей, по которым нужно подготовить отчет
|
||||||
|
//использование метода setUsersByTeg
|
||||||
|
Base b = new Base(); |
||||||
|
b.setUsersByTeg(conn); |
||||||
|
System.out.println("Перечень пользователей для формирования отчета установлен ... "); |
||||||
|
|
||||||
|
//Формирование результатов тестирования, для указанных пользователей
|
||||||
|
b.setResults(conn, b.getUsers()); |
||||||
|
System.out.println("Результаты тестирования пользователей получены из базы данных ... "); |
||||||
|
|
||||||
|
//расшифровка данных о пройденных пользователями тестах
|
||||||
|
b.setQuizes(conn, b); |
||||||
|
|
||||||
|
//выгрузка отчета в xlsx (по результатам обучения группы, содержащий дублирования и прогульщиков)
|
||||||
|
b.createExcellReport(conn, b); |
||||||
|
|
||||||
|
// выводим отчет в консоль
|
||||||
|
//Выводим перечень тестов в консоль
|
||||||
|
System.out.println("Всего тестов: " + b.getQuizes().size()); |
||||||
|
System.out.println("Всего записано на тестирование человек: " + b.getUsers().size()); |
||||||
|
System.out.println("Всего результатов (человеко-тестов): " + b.getResults().size()); |
||||||
|
|
||||||
|
/** |
||||||
|
* Фильтрация результатов по уникальному почтовому ящику |
||||||
|
* отчет общий по статистике обучения |
||||||
|
*/ |
||||||
|
b.filterByMail(b.getUsers(), b.getResults()); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.err.println ("Подключение к серверу баз данных не установлено ... "); |
||||||
|
ex.printStackTrace(); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
finally{ |
||||||
|
if (conn != null){ |
||||||
|
try{ |
||||||
|
System.out.println("Попытка отключения от базы данных ... "); |
||||||
|
conn.close (); |
||||||
|
System.out.println ("Подключение к базе данных завершено. "); |
||||||
|
} |
||||||
|
catch (Exception ex){ |
||||||
|
System.out.println ("Подключение к серверу баз данных уже отсутствует."); |
||||||
|
System.out.println (ex); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
/** |
||||||
|
* Данные об опросе для подстановки в отчет наименований, вместо id опроса |
||||||
|
* - наименование |
||||||
|
* - id |
||||||
|
* |
||||||
|
*/ |
||||||
|
public class Quiz { |
||||||
|
private int id; |
||||||
|
private String name; |
||||||
|
|
||||||
|
/** |
||||||
|
* @param id the id to set |
||||||
|
*/ |
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param name the name to set |
||||||
|
*/ |
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the id |
||||||
|
*/ |
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the name |
||||||
|
*/ |
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
/** |
||||||
|
* Результат тестирования |
||||||
|
* - набранные баллы |
||||||
|
* - длительность сдачи теста |
||||||
|
*/ |
||||||
|
public class Result { |
||||||
|
private int id; |
||||||
|
private int quizid; |
||||||
|
private int userid; |
||||||
|
private double grade; |
||||||
|
private Long time; |
||||||
|
|
||||||
|
/** |
||||||
|
* @return the id |
||||||
|
*/ |
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param id the id to set |
||||||
|
*/ |
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the quiz |
||||||
|
*/ |
||||||
|
public int getQuizid() { |
||||||
|
return quizid; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param quiz the quiz to set |
||||||
|
*/ |
||||||
|
public void setQuizid(int quizid) { |
||||||
|
this.quizid = quizid; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the userid |
||||||
|
*/ |
||||||
|
public int getUserid() { |
||||||
|
return userid; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param userid the userid to set |
||||||
|
*/ |
||||||
|
public void setUserid(int userid) { |
||||||
|
this.userid = userid; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the grade |
||||||
|
*/ |
||||||
|
public double getGrade() { |
||||||
|
return grade; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param grade the grade to set |
||||||
|
*/ |
||||||
|
public void setGrade(double grade) { |
||||||
|
this.grade = grade; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the time |
||||||
|
*/ |
||||||
|
public Long getTime() { |
||||||
|
return time; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param time2 the time to set |
||||||
|
*/ |
||||||
|
public void setTime(Long time2) { |
||||||
|
this.time = time2; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
/** |
||||||
|
* Данные пользователей |
||||||
|
* - уникальный номер |
||||||
|
* - имя |
||||||
|
* - почта |
||||||
|
* - |
||||||
|
* |
||||||
|
*/ |
||||||
|
public class User { |
||||||
|
private int id; |
||||||
|
private String name; |
||||||
|
private String mail; |
||||||
|
|
||||||
|
/** |
||||||
|
* @return the id |
||||||
|
*/ |
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the mail |
||||||
|
*/ |
||||||
|
public String getMail() { |
||||||
|
return mail; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @return the name |
||||||
|
*/ |
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param id the id to set |
||||||
|
*/ |
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param mail the mail to set |
||||||
|
*/ |
||||||
|
public void setMail(String mail) { |
||||||
|
this.mail = mail; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param name the name to set |
||||||
|
*/ |
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package ru.egspt.moodle; |
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
/** |
||||||
|
* Unit test for simple App. |
||||||
|
*/ |
||||||
|
public class AppTest |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Rigorous Test :-) |
||||||
|
*/ |
||||||
|
@Test |
||||||
|
public void shouldAnswerWithTrue() |
||||||
|
{ |
||||||
|
assertTrue( true ); |
||||||
|
} |
||||||
|
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,107 @@ |
|||||||
|
digraph "ru.egspt.moodle:anyreport:jar:0.1" { |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-ooxml:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-scratchpad:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:ooxml-schemas:jar:1.1:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:openxml4j:jar:1.0-beta:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.logging.log4j:log4j-to-slf4j:jar:2.8.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.cassandra:cassandra-all:jar:0.8.1:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "junit:junit:jar:4.11:test" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "mysql:mysql-connector-java:jar:8.0.28:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "commons-codec:commons-codec:jar:1.15:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.commons:commons-collections4:jar:4.4:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.commons:commons-math3:jar:3.6.1:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "commons-io:commons-io:jar:2.11.0:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "com.zaxxer:SparseBitSet:jar:1.2:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.logging.log4j:log4j-api:jar:2.17.2:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.xmlbeans:xmlbeans:jar:5.0.3:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.commons:commons-compress:jar:1.21:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "com.github.virtuald:curvesapi:jar:1.07:compile" ; |
||||||
|
"org.apache.poi:openxml4j:jar:1.0-beta:compile" -> "dom4j:dom4j:jar:1.6.1:compile" ; |
||||||
|
"org.apache.poi:openxml4j:jar:1.0-beta:compile" -> "log4j:log4j:jar:1.2.8:compile" ; |
||||||
|
"dom4j:dom4j:jar:1.6.1:compile" -> "xml-apis:xml-apis:jar:1.0.b2:compile" ; |
||||||
|
"org.apache.logging.log4j:log4j-to-slf4j:jar:2.8.2:compile" -> "org.slf4j:slf4j-api:jar:1.7.24:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.google.guava:guava:jar:r08:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-cli:commons-cli:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-collections:commons-collections:jar:3.2.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-lang:commons-lang:jar:2.4:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.antlr:antlr:jar:3.2:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.cassandra.deps:avro:jar:1.4.0-cassandra-1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.codehaus.jackson:jackson-core-asl:jar:1.4.0:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.codehaus.jackson:jackson-mapper-asl:jar:1.4.0:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "jline:jline:jar:0.9.94:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.googlecode.json-simple:json-simple:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.github.stephenc.high-scale-lib:high-scale-lib:jar:1.1.2:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.yaml:snakeyaml:jar:1.6:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.thrift:libthrift:jar:0.6.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.cassandra:cassandra-thrift:jar:0.8.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.github.stephenc:jamm:jar:0.2.2:compile" ; |
||||||
|
"org.antlr:antlr:jar:3.2:compile" -> "org.antlr:antlr-runtime:jar:3.2:compile" ; |
||||||
|
"org.antlr:antlr-runtime:jar:3.2:compile" -> "org.antlr:stringtemplate:jar:3.2:compile" ; |
||||||
|
"org.antlr:stringtemplate:jar:3.2:compile" -> "antlr:antlr:jar:2.7.7:compile" ; |
||||||
|
"org.apache.cassandra.deps:avro:jar:1.4.0-cassandra-1:compile" -> "org.mortbay.jetty:jetty:jar:6.1.22:compile" ; |
||||||
|
"org.mortbay.jetty:jetty:jar:6.1.22:compile" -> "org.mortbay.jetty:jetty-util:jar:6.1.22:compile" ; |
||||||
|
"org.mortbay.jetty:jetty:jar:6.1.22:compile" -> "org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile" ; |
||||||
|
"org.apache.thrift:libthrift:jar:0.6.1:compile" -> "javax.servlet:servlet-api:jar:2.5:compile" ; |
||||||
|
"org.apache.thrift:libthrift:jar:0.6.1:compile" -> "org.apache.httpcomponents:httpclient:jar:4.0.1:compile" ; |
||||||
|
"org.apache.httpcomponents:httpclient:jar:4.0.1:compile" -> "org.apache.httpcomponents:httpcore:jar:4.0.1:compile" ; |
||||||
|
"org.apache.httpcomponents:httpclient:jar:4.0.1:compile" -> "commons-logging:commons-logging:jar:1.1.1:compile" ; |
||||||
|
"junit:junit:jar:4.11:test" -> "org.hamcrest:hamcrest-core:jar:1.3:test" ; |
||||||
|
"mysql:mysql-connector-java:jar:8.0.28:compile" -> "com.google.protobuf:protobuf-java:jar:3.11.4:compile" ; |
||||||
|
} digraph "ru.egspt.moodle:anyreport:jar:0.1" { |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-ooxml:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:poi-scratchpad:jar:5.2.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:ooxml-schemas:jar:1.1:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.poi:openxml4j:jar:1.0-beta:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.logging.log4j:log4j-to-slf4j:jar:2.8.2:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "org.apache.cassandra:cassandra-all:jar:0.8.1:compile" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "junit:junit:jar:4.11:test" ; |
||||||
|
"ru.egspt.moodle:anyreport:jar:0.1" -> "mysql:mysql-connector-java:jar:8.0.28:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "commons-codec:commons-codec:jar:1.15:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.commons:commons-collections4:jar:4.4:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.commons:commons-math3:jar:3.6.1:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "commons-io:commons-io:jar:2.11.0:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "com.zaxxer:SparseBitSet:jar:1.2:compile" ; |
||||||
|
"org.apache.poi:poi:jar:5.2.2:compile" -> "org.apache.logging.log4j:log4j-api:jar:2.17.2:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.xmlbeans:xmlbeans:jar:5.0.3:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "org.apache.commons:commons-compress:jar:1.21:compile" ; |
||||||
|
"org.apache.poi:poi-ooxml:jar:5.2.2:compile" -> "com.github.virtuald:curvesapi:jar:1.07:compile" ; |
||||||
|
"org.apache.poi:openxml4j:jar:1.0-beta:compile" -> "dom4j:dom4j:jar:1.6.1:compile" ; |
||||||
|
"org.apache.poi:openxml4j:jar:1.0-beta:compile" -> "log4j:log4j:jar:1.2.8:compile" ; |
||||||
|
"dom4j:dom4j:jar:1.6.1:compile" -> "xml-apis:xml-apis:jar:1.0.b2:compile" ; |
||||||
|
"org.apache.logging.log4j:log4j-to-slf4j:jar:2.8.2:compile" -> "org.slf4j:slf4j-api:jar:1.7.24:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.google.guava:guava:jar:r08:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-cli:commons-cli:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-collections:commons-collections:jar:3.2.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "commons-lang:commons-lang:jar:2.4:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.antlr:antlr:jar:3.2:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.cassandra.deps:avro:jar:1.4.0-cassandra-1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.codehaus.jackson:jackson-core-asl:jar:1.4.0:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.codehaus.jackson:jackson-mapper-asl:jar:1.4.0:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "jline:jline:jar:0.9.94:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.googlecode.json-simple:json-simple:jar:1.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.github.stephenc.high-scale-lib:high-scale-lib:jar:1.1.2:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.yaml:snakeyaml:jar:1.6:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.thrift:libthrift:jar:0.6.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "org.apache.cassandra:cassandra-thrift:jar:0.8.1:compile" ; |
||||||
|
"org.apache.cassandra:cassandra-all:jar:0.8.1:compile" -> "com.github.stephenc:jamm:jar:0.2.2:compile" ; |
||||||
|
"org.antlr:antlr:jar:3.2:compile" -> "org.antlr:antlr-runtime:jar:3.2:compile" ; |
||||||
|
"org.antlr:antlr-runtime:jar:3.2:compile" -> "org.antlr:stringtemplate:jar:3.2:compile" ; |
||||||
|
"org.antlr:stringtemplate:jar:3.2:compile" -> "antlr:antlr:jar:2.7.7:compile" ; |
||||||
|
"org.apache.cassandra.deps:avro:jar:1.4.0-cassandra-1:compile" -> "org.mortbay.jetty:jetty:jar:6.1.22:compile" ; |
||||||
|
"org.mortbay.jetty:jetty:jar:6.1.22:compile" -> "org.mortbay.jetty:jetty-util:jar:6.1.22:compile" ; |
||||||
|
"org.mortbay.jetty:jetty:jar:6.1.22:compile" -> "org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile" ; |
||||||
|
"org.apache.thrift:libthrift:jar:0.6.1:compile" -> "javax.servlet:servlet-api:jar:2.5:compile" ; |
||||||
|
"org.apache.thrift:libthrift:jar:0.6.1:compile" -> "org.apache.httpcomponents:httpclient:jar:4.0.1:compile" ; |
||||||
|
"org.apache.httpcomponents:httpclient:jar:4.0.1:compile" -> "org.apache.httpcomponents:httpcore:jar:4.0.1:compile" ; |
||||||
|
"org.apache.httpcomponents:httpclient:jar:4.0.1:compile" -> "commons-logging:commons-logging:jar:1.1.1:compile" ; |
||||||
|
"junit:junit:jar:4.11:test" -> "org.hamcrest:hamcrest-core:jar:1.3:test" ; |
||||||
|
"mysql:mysql-connector-java:jar:8.0.28:compile" -> "com.google.protobuf:protobuf-java:jar:3.11.4:compile" ; |
||||||
|
} |
Binary file not shown.
Loading…
Reference in new issue