gluu
公開メンバ関数 | 静的公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl クラス
org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl の継承関係図
Inheritance graph
org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl 連携図
Collaboration graph

公開メンバ関数

 SqlPersistenceServiceImpl (SqlPersistenceProvider provider)
 
void create ()
 
boolean create (Rp rp)
 
boolean update (Rp rp)
 
Rp getRp (String oxdId)
 
boolean removeAllRps ()
 
Set< RpgetRps ()
 
void destroy ()
 
boolean remove (String oxdId)
 

静的公開メンバ関数

static void rollbackSilently (Connection conn)
 

非公開メンバ関数

void createSchema ()
 

非公開変数類

SqlPersistenceProvider provider
 

静的非公開変数類

static final Logger LOG = LoggerFactory.getLogger(SqlPersistenceServiceImpl.class)
 

詳解

著者
yuriyz

構築子と解体子

◆ SqlPersistenceServiceImpl()

org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.SqlPersistenceServiceImpl ( SqlPersistenceProvider  provider)
inline
28  {
29  this.provider = provider;
30  }
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25

関数詳解

◆ create() [1/2]

void org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.create ( )
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

32  {
34 
35  createSchema();
36  }
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
void createSchema()
Definition: SqlPersistenceServiceImpl.java:38

◆ create() [2/2]

boolean org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.create ( Rp  rp)
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

60  {
61  Connection conn = null;
62  try {
63  conn = provider.getConnection();
64  conn.setAutoCommit(false);
65  PreparedStatement query = conn.prepareStatement("insert into rp(id, data) values(?, ?)");
66  query.setString(1, rp.getOxdId());
67  query.setString(2, Jackson.asJson(rp));
68  query.executeUpdate();
69  query.close();
70 
71  conn.commit();
72  LOG.debug("RP created successfully. RP : " + rp);
73  return true;
74  } catch (Exception e) {
75  LOG.error("Failed to create RP: " + rp, e);
76  rollbackSilently(conn);
77  return false;
78  } finally {
79  IOUtils.closeSilently(conn);
80  }
81  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ createSchema()

void org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.createSchema ( )
inlineprivate
38  {
39  Connection conn = null;
40  try {
41  conn = provider.getConnection();
42  conn.setAutoCommit(false);
43 
44  PreparedStatement createRpTable = conn.prepareStatement(
45  "create table if not exists rp(id varchar(36) primary key, data varchar(65534))");
46  createRpTable.executeUpdate();
47  createRpTable.close();
48 
49  conn.commit();
50  LOG.debug("Schema created successfully.");
51  } catch (Exception e) {
52  LOG.error("Failed to create schema. Error: " + e.getMessage(), e);
53  rollbackSilently(conn);
54  throw new RuntimeException(e);
55  } finally {
56  IOUtils.closeSilently(conn);
57  }
58  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ destroy()

void org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.destroy ( )
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

202  {
204  }
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25

◆ getRp()

Rp org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.getRp ( String  oxdId)
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

106  {
107  Connection conn = null;
108  try {
109  conn = provider.getConnection();
110  conn.setAutoCommit(false);
111 
112  PreparedStatement query = conn.prepareStatement("select id, data from rp where id = ?");
113  query.setString(1, oxdId);
114  ResultSet rs = query.executeQuery();
115 
116  rs.next();
117  String data = rs.getString("data");
118  query.close();
119  conn.commit();
120 
121  Rp rp = MigrationService.parseRp(data);
122  if (rp != null) {
123  LOG.debug("Found RP id: " + oxdId + ", RP : " + rp);
124  return rp;
125  } else {
126  LOG.error("Failed to fetch RP by id: " + oxdId);
127  return null;
128  }
129  } catch (Exception e) {
130  LOG.error("Failed to find RP by id: " + oxdId + ". Error: " + e.getMessage(), e);
131  rollbackSilently(conn);
132  return null;
133  } finally {
134  IOUtils.closeSilently(conn);
135  }
136  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ getRps()

Set<Rp> org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.getRps ( )
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

159  {
160  Connection conn = null;
161  try {
162  conn = provider.getConnection();
163  conn.setAutoCommit(false);
164 
165  PreparedStatement query = conn.prepareStatement("select id, data from rp");
166  ResultSet rs = query.executeQuery();
167 
168  Set<Rp> result = new HashSet<>();
169  while (rs.next()) {
170  String id = rs.getString("id");
171  String data = rs.getString("data");
172 
173  Rp rp = MigrationService.parseRp(data);
174  if (rp != null) {
175  result.add(rp);
176  } else {
177  LOG.error("Failed to parse rp, id: " + id);
178  }
179  }
180 
181  query.close();
182  conn.commit();
183  LOG.info("Loaded " + result.size() + " RPs.");
184  return result;
185  } catch (Exception e) {
186  LOG.error("Failed to fetch rps. Error: " + e.getMessage(), e);
187  rollbackSilently(conn);
188  throw new RuntimeException(e);
189  } finally {
190  IOUtils.closeSilently(conn);
191  }
192  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ remove()

boolean org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.remove ( String  oxdId)
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

207  {
208  Connection conn = null;
209  try {
210  conn = provider.getConnection();
211  conn.setAutoCommit(false);
212 
213  PreparedStatement query = conn.prepareStatement("delete from rp where id = ?");
214  query.setString(1, oxdId);
215  query.executeUpdate();
216  query.close();
217 
218  conn.commit();
219  LOG.debug("Removed rp successfully. oxdId: " + oxdId);
220  return true;
221  } catch (Exception e) {
222  LOG.error("Failed to remove rp with oxdId: " + oxdId, e);
223  rollbackSilently(conn);
224  return false;
225  } finally {
226  IOUtils.closeSilently(conn);
227  }
228  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ removeAllRps()

boolean org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.removeAllRps ( )
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

138  {
139  Connection conn = null;
140  try {
141  conn = provider.getConnection();
142  conn.setAutoCommit(false);
143  PreparedStatement query = conn.prepareStatement("delete from rp");
144  query.executeUpdate();
145  query.close();
146 
147  conn.commit();
148  LOG.debug("All RPs are removed successfully.");
149  return true;
150  } catch (Exception e) {
151  LOG.error("Failed to drop all RPs", e);
152  rollbackSilently(conn);
153  return false;
154  } finally {
155  IOUtils.closeSilently(conn);
156  }
157  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

◆ rollbackSilently()

static void org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.rollbackSilently ( Connection  conn)
inlinestatic
194  {
195  try {
196  conn.rollback();
197  } catch (SQLException e) {
198  LOG.error("Failed to rollback transaction, error: " + e.getMessage(), e);
199  }
200  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23

◆ update()

boolean org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.update ( Rp  rp)
inline

org.xdi.oxd.server.persistence.PersistenceServiceを実装しています。

83  {
84  Connection conn = null;
85  try {
86  conn = provider.getConnection();
87  conn.setAutoCommit(false);
88  PreparedStatement query = conn.prepareStatement("update rp set data = ? where id = ?");
89  query.setString(1, Jackson.asJson(rp));
90  query.setString(2, rp.getOxdId());
91  query.executeUpdate();
92  query.close();
93 
94  conn.commit();
95  LOG.debug("RP updated successfully. RP : " + rp);
96  return true;
97  } catch (Exception e) {
98  LOG.error("Failed to update RP: " + rp, e);
99  rollbackSilently(conn);
100  return false;
101  } finally {
102  IOUtils.closeSilently(conn);
103  }
104  }
static final Logger LOG
Definition: SqlPersistenceServiceImpl.java:23
SqlPersistenceProvider provider
Definition: SqlPersistenceServiceImpl.java:25
static void rollbackSilently(Connection conn)
Definition: SqlPersistenceServiceImpl.java:194

メンバ詳解

◆ LOG

final Logger org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.LOG = LoggerFactory.getLogger(SqlPersistenceServiceImpl.class)
staticprivate

◆ provider

SqlPersistenceProvider org.xdi.oxd.server.persistence.SqlPersistenceServiceImpl.provider
private

このクラス詳解は次のファイルから抽出されました: