Browse Source

curr

master
mrAsacura 3 years ago
parent
commit
3d9198ad62
  1. 3
      .vscode/settings.json
  2. 115
      pom.xml
  3. BIN
      report.xlsx
  4. 19
      src/main/java/ru/egspt/moodle/Access.java
  5. 14
      src/main/java/ru/egspt/moodle/App.java
  6. 503
      src/main/java/ru/egspt/moodle/Base.java
  7. 37
      src/main/java/ru/egspt/moodle/Quiz.java
  8. 75
      src/main/java/ru/egspt/moodle/Result.java
  9. 52
      src/main/java/ru/egspt/moodle/User.java
  10. 20
      src/test/java/ru/egspt/moodle/AppTest.java
  11. BIN
      target/classes/ru/egspt/moodle/Access.class
  12. BIN
      target/classes/ru/egspt/moodle/App.class
  13. BIN
      target/classes/ru/egspt/moodle/Base.class
  14. BIN
      target/classes/ru/egspt/moodle/Quiz.class
  15. BIN
      target/classes/ru/egspt/moodle/Result.class
  16. BIN
      target/classes/ru/egspt/moodle/User.class
  17. 107
      target/dependencies.txt
  18. BIN
      target/test-classes/ru/egspt/moodle/AppTest.class

3
.vscode/settings.json vendored

@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "automatic"
}

115
pom.xml

@ -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>

BIN
report.xlsx

Binary file not shown.

19
src/main/java/ru/egspt/moodle/Access.java

@ -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;
}
}

14
src/main/java/ru/egspt/moodle/App.java

@ -0,0 +1,14 @@
package ru.egspt.moodle;
/**
* графический интерфейс для
* moodle.anyreport
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Работает подготовщик отчетов по результатам тестирования пользователей ..." );
}
}

503
src/main/java/ru/egspt/moodle/Base.java

@ -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);
}
}
}
}
}

37
src/main/java/ru/egspt/moodle/Quiz.java

@ -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;
}
}

75
src/main/java/ru/egspt/moodle/Result.java

@ -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;
}
}

52
src/main/java/ru/egspt/moodle/User.java

@ -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;
}
}

20
src/test/java/ru/egspt/moodle/AppTest.java

@ -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 );
}
}

BIN
target/classes/ru/egspt/moodle/Access.class

Binary file not shown.

BIN
target/classes/ru/egspt/moodle/App.class

Binary file not shown.

BIN
target/classes/ru/egspt/moodle/Base.class

Binary file not shown.

BIN
target/classes/ru/egspt/moodle/Quiz.class

Binary file not shown.

BIN
target/classes/ru/egspt/moodle/Result.class

Binary file not shown.

BIN
target/classes/ru/egspt/moodle/User.class

Binary file not shown.

107
target/dependencies.txt

@ -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" ;
}

BIN
target/test-classes/ru/egspt/moodle/AppTest.class

Binary file not shown.
Loading…
Cancel
Save