Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
0866a60
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Nov 1, 2016
552d60a
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Nov 20, 2016
3b50057
Add third task
vanderwardan Nov 21, 2016
da7781b
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Nov 21, 2016
10c6e3d
Third task
vanderwardan Nov 21, 2016
2f58fa2
Codestyle changes
vanderwardan Nov 21, 2016
a9c4c95
add synchronised
vanderwardan Nov 21, 2016
a9f1fc8
Review changes
vanderwardan Nov 27, 2016
f530f07
code style changes
vanderwardan Nov 27, 2016
83ecff4
try do smth, that travis test my project
vanderwardan Nov 27, 2016
6446586
tried again
vanderwardan Nov 27, 2016
181536f
add cleaning storage not only in close()
vanderwardan Nov 27, 2016
af9170b
code style changes
vanderwardan Nov 27, 2016
a9a52c0
revert
vanderwardan Nov 27, 2016
f95b2d3
some bugs fixed
vanderwardan Nov 27, 2016
a85598c
try find what's wrong with travis
vanderwardan Nov 27, 2016
0ccfc8a
code style
vanderwardan Nov 27, 2016
e81d659
and here we go
vanderwardan Nov 27, 2016
81e49f0
optimise little bit
vanderwardan Nov 28, 2016
12319c8
oops
vanderwardan Nov 29, 2016
b1b8e2b
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Dec 4, 2016
e328d85
try to pass new tests
vanderwardan Dec 4, 2016
8722b58
fix problems with seek
vanderwardan Dec 5, 2016
89423e5
fix problems with files
vanderwardan Dec 5, 2016
6c53bd8
code style changes
vanderwardan Dec 5, 2016
eacb2e4
fix constructor
vanderwardan Dec 5, 2016
edcfe73
back to the right version of lector's file
vanderwardan Dec 9, 2016
47dde1d
fucking IDEA auto fixes
vanderwardan Dec 9, 2016
92b97c6
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Dec 12, 2016
01adfbe
Merge remote-tracking branch 'refs/remotes/fediq/master'
vanderwardan Dec 16, 2016
1b212dc
add task 4
vanderwardan Dec 21, 2016
d1f045e
CODESTYLE
vanderwardan Dec 21, 2016
afbc3b2
We need more codestyle changes
vanderwardan Dec 21, 2016
2731357
may be now....
vanderwardan Dec 21, 2016
00fdc27
still trying
vanderwardan Dec 21, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added homework-g595-manucharyan/Database.db.mv.db
Binary file not shown.
39 changes: 38 additions & 1 deletion homework-g595-manucharyan/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,57 @@
<modelVersion>4.0.0</modelVersion>

<artifactId>homework-g595-manucharyan</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>

<properties>
<spring.boot.version>1.4.2.RELEASE</spring.boot.version>
</properties>

<dependencies>
<dependency>
<groupId>ru.mipt.java2016</groupId>
<artifactId>homework-base</artifactId>
<version>1.0.0</version>
</dependency>

<dependency>
<groupId>net.sourceforge.jeval</groupId>
<artifactId>jeval</artifactId>
<version>0.9.4</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.193</version>
</dependency>

<dependency>
<groupId>ru.mipt.java2016</groupId>
<artifactId>homework-tests</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package ru.mipt.java2016.homework.g595.manucharyan.task4;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.annotation.PostConstruct;
import javax.sql.DataSource;


@Repository
public class BillingDao {
private static final Logger LOG = LoggerFactory.getLogger(BillingDao.class);

@Autowired
private DataSource dataSource;

private JdbcTemplate jdbcTemplate;

@PostConstruct
public void postConstruct() {
jdbcTemplate = new JdbcTemplate(dataSource, false);
initSchema();
}

public void initSchema() {
LOG.trace("Initializing schema");
jdbcTemplate.execute("CREATE SCHEMA IF NOT EXISTS billing");
jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS billing.users " +
"(username VARCHAR PRIMARY KEY, password VARCHAR, enabled BOOLEAN)");
try {
jdbcTemplate.update("INSERT INTO billing.users VALUES ('username', 'password', TRUE)");
} catch (Exception e) {
System.out.print("");
}
}


public BillingUser loadUser(String username) throws EmptyResultDataAccessException {
LOG.trace("Querying for user " + username);
return jdbcTemplate.queryForObject(
"SELECT username, password, enabled FROM billing.users WHERE username = ?",
new Object[]{username},
new RowMapper<BillingUser>() {
@Override
public BillingUser mapRow(ResultSet rs, int rowNum) throws SQLException {
return new BillingUser(
rs.getString("username"),
rs.getString("password"),
rs.getBoolean("enabled")
);
}
}
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ru.mipt.java2016.homework.g595.manucharyan.task4;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class BillingDatabaseConfiguration {
@Bean
public DataSource billingDataSource() {
HikariConfig config = new HikariConfig();
config.setDriverClassName(org.h2.Driver.class.getName());
config.setJdbcUrl("jdbc:h2:C:\\Users\\op\\Documents\\GitHub\\mipt-java-2016\\" +
"homework-g595-manucharyan\\Database.db");
config.setUsername("");
config.setPassword("");
return new HikariDataSource(config);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package ru.mipt.java2016.homework.g595.manucharyan.task4;

public class BillingUser {
private final String username;
private final String password;
private final boolean enabled;

public BillingUser(String username, String password, boolean enabled) {
if (username == null) {
throw new IllegalArgumentException("Null username is not allowed");
}
if (password == null) {
throw new IllegalArgumentException("Null password is not allowed");
}
this.username = username;
this.password = password;
this.enabled = enabled;
}

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}

public boolean isEnabled() {
return enabled;
}

@Override
public String toString() {
return "BillingUser{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", enabled=" + enabled +
'}';
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}

BillingUser that = (BillingUser) o;

if (enabled != that.enabled) {
return false;
}
if (!username.equals(that.username)) {
return false;
}
return password.equals(that.password);

}

@Override
public int hashCode() {
int result = username.hashCode();
result = 31 * result + password.hashCode();
result = 31 * result + (enabled ? 1 : 0);
return result;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package ru.mipt.java2016.homework.g595.manucharyan.task4;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import ru.mipt.java2016.homework.base.task1.Calculator;
import ru.mipt.java2016.homework.base.task1.ParsingException;

@RestController
public class CalculatorController {
private static final Logger LOG = LoggerFactory.getLogger(CalculatorController.class);
@Autowired
private Calculator calculator;

@RequestMapping(path = "/ping", method = RequestMethod.GET, produces = "text/plain")
public String echo() {
return "OK\n";
}

@RequestMapping(path = "/", method = RequestMethod.GET, produces = "text/html")
public String main(@RequestParam(required = false) String name) {
if (name == null) {
name = "world";
}
return "<html>" +
"<head><title>FediqApp</title></head>" +
"<body><h1>Hello, " + name + "!</h1></body>" +
"</html>";
}

@RequestMapping(path = "/eval", method = RequestMethod.POST, consumes = "text/plain", produces = "text/plain")
public String eval(@RequestBody String expression) throws ParsingException {
LOG.debug("Evaluation request: [" + expression + "]");
double result = calculator.calculate(expression);
LOG.trace("Result: " + result);
return Double.toString(result) + "\n";
}
}
Loading