/Exercicio5.iml |
---|
File deleted |
\ No newline at end of file |
/libs.xml |
---|
File deleted |
\ No newline at end of file |
/build.properties |
---|
File deleted |
\ No newline at end of file |
/teste.log.2018-10-22 |
---|
File deleted |
/teste.log.2018-10-23 |
---|
File deleted |
/build.xml |
---|
File deleted |
\ No newline at end of file |
/teste.log |
---|
File deleted |
/es2018/18058/Exercicio5.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/jmachado/Exercicio5.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/jmachado/conf/contexto.xml |
---|
1,5 → 1,5 |
<Context path="/project" docBase="C:/Users/jmachado/Documents/workspace/Exercicio5/build/ant/war" |
<Context path="/project" docBase="/workspace/bacoAlunos/es2018/jmachado/build/ant/war" |
debug="0"> |
<!-- Link to the user database we will get roles from --> |
<ResourceLink name="users" global="UserDatabase" |
/es2018/jmachado/conf/web/web.xml |
---|
29,6 → 29,11 |
</servlet> |
<servlet> |
<servlet-name>LoginRest</servlet-name> |
<servlet-class>pt.estgp.es.exemplos.hibernate.web.login.LoginRest</servlet-class> |
</servlet> |
<servlet> |
<servlet-name>PaginasDeleteServlet</servlet-name> |
<servlet-class>pt.estgp.es.exemplos.hibernate.web.PaginasDeleteServlet</servlet-class> |
</servlet> |
70,6 → 75,10 |
<url-pattern>/paginas</url-pattern> |
</servlet-mapping> |
<servlet-mapping> |
<servlet-name>LoginRest</servlet-name> |
<url-pattern>/ws/api/login</url-pattern> |
</servlet-mapping> |
<servlet-mapping> |
<servlet-name>PaginasDeleteServlet</servlet-name> |
<url-pattern>/paginasDelete</url-pattern> |
</servlet-mapping> |
/es2018/jmachado/local.properties |
---|
1,3 → 1,7 |
pt.estgp.es.exemplos.hibernate.web.pluginSession.RegisterSession=pt.estgp.es.exemplos.hibernate.web.pluginSession.DevelopRegisterSession |
pt.estgp.es.exemplos.hibernate.web.pluginSession.RegisterSession=pt.estgp.es.exemplos.hibernate.web.pluginSession.DevelopRegisterSession |
tomcat.home=/workspace/Servers/apache-tomcat-9.0.0.M6 |
database.username=root |
database.password= |
/es2018/jmachado/lib/json/genson-1.4.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:executable |
+ * |
Added: svn:mime-type |
+ application/octet-stream |
/es2018/jmachado/lib/json/org.json-20120521.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:executable |
+ * |
Added: svn:mime-type |
+ application/octet-stream |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/services/ServicoSessoes.java |
---|
23,7 → 23,7 |
SecurityContextProvider.getInstance().registerSessionContext(requester); |
UserSession session; |
try { |
session = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class, requester); |
session = (UserSession) HibernateUtils.getCurrentSession().get(UserSession.class, requester); |
if(session == null) |
{ |
session = new UserSessionImpl(); |
38,6 → 38,7 |
session.setCookie(requester); |
HibernateUtils.getCurrentSession().save(session); |
} |
session = (UserSession) HibernateUtils.narrow(session); |
return session; |
} |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/utils/StreamsUtils.java |
---|
New file |
0,0 → 1,140 |
package pt.estgp.es.exemplos.hibernate.utils; |
import java.io.*; |
import java.security.DigestInputStream; |
import java.security.MessageDigest; |
import java.security.NoSuchAlgorithmException; |
/** |
* @author Jorge Machado |
* @date 27/Mai/2008 |
* @see jomm.utils |
*/ |
public class StreamsUtils |
{ |
public static byte[] readBytes(InputStream stream) throws IOException |
{ |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = stream.read(buf)) > 0) |
{ |
b.write(buf, 0, readedBytes); |
} |
b.close(); |
return b.toByteArray(); |
} |
public static String readString(InputStream stream) throws IOException |
{ |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = stream.read(buf)) > 0) |
{ |
b.write(buf, 0, readedBytes); |
} |
b.close(); |
return b.toString(); |
} |
public static void inputStream2File(InputStream stream, File f) throws IOException |
{ |
f.getParentFile().mkdirs(); |
FileOutputStream out = new FileOutputStream(f); |
inputStream2OutputStream(stream,out); |
} |
/** |
* ATENTION this method does not close the given stream |
* @param stream |
* @param f |
* @return |
* @throws IOException |
*/ |
public static String inputStream2FileGetMd5(InputStream stream, File f) throws IOException |
{ |
f.getParentFile().mkdirs(); |
FileOutputStream out = new FileOutputStream(f); |
return inputStream2OutputStreamGetMd5(stream, out); |
} |
public static void inputStream2OutputStream(InputStream stream, OutputStream out) throws IOException |
{ |
inputStream2OutputStream(stream,out,true,true); |
} |
public static void inputStream2OutputStream(InputStream stream, OutputStream out,boolean closeOut,boolean closeIn) throws IOException |
{ |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = stream.read(buf)) > 0) |
{ |
out.write(buf, 0, readedBytes); |
} |
if(closeIn) |
stream.close(); |
if(closeOut) |
out.close(); |
} |
/** |
* Return digest Md5 from consumed bytes |
* * ATENTION this method does not close the given stream |
* @param stream |
* @param out |
* @return Md5 HEX |
* @throws IOException |
*/ |
public static String inputStream2OutputStreamGetMd5(InputStream stream, OutputStream out) throws IOException |
{ |
MessageDigest messageDigest = null; |
try { |
messageDigest = MessageDigest.getInstance("MD5"); |
} catch (NoSuchAlgorithmException e) { |
e.printStackTrace(); |
} |
DigestInputStream digestInputStream = new DigestInputStream(stream, messageDigest); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = digestInputStream.read(buf)) > 0) |
{ |
out.write(buf, 0, readedBytes); |
} |
messageDigest = digestInputStream.getMessageDigest(); |
String md5 = BytesUtils.toHex(messageDigest.digest()); |
out.close(); |
return md5; |
} |
/** |
* Return digest Md5 from consumed bytes |
* * ATENTION this method does not close the given stream |
* @param stream |
* @param out |
* @return Md5 HEX |
* @throws IOException |
*/ |
public static String getFileMd5(File f) throws IOException |
{ |
MessageDigest messageDigest = null; |
try { |
messageDigest = MessageDigest.getInstance("MD5"); |
} catch (NoSuchAlgorithmException e) { |
e.printStackTrace(); |
} |
DigestInputStream digestInputStream = new DigestInputStream(new FileInputStream(f), messageDigest); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = digestInputStream.read(buf)) > 0) |
{ |
//nottinhg to do only calculate nd5 |
} |
messageDigest = digestInputStream.getMessageDigest(); |
String md5 = BytesUtils.toHex(messageDigest.digest()); |
digestInputStream.close(); |
return md5; |
} |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/utils/BytesUtils.java |
---|
New file |
0,0 → 1,268 |
package pt.estgp.es.exemplos.hibernate.utils; |
import org.apache.commons.lang.RandomStringUtils; |
import org.apache.log4j.Logger; |
import java.io.*; |
import java.math.BigInteger; |
import java.rmi.dgc.VMID; |
import java.security.MessageDigest; |
import java.security.NoSuchAlgorithmException; |
import java.util.Random; |
/** |
* |
* @author Jorge Machado |
*/ |
public class BytesUtils { |
private static int counter = 0; |
private static Random random = new Random(); |
private static VMID vmid = new VMID(); |
private static Logger logger = Logger.getLogger(BytesUtils.class); |
/** Private Constructor */ |
private BytesUtils () {} |
public static String getMd5FromFile(String filepath) |
{ |
return getMD5(getBytes(filepath)); |
} |
public static byte[] getBytes(String fileName) |
{ |
byte[] data = null; |
try{ |
FileInputStream r = new FileInputStream(fileName); |
File f = new File(fileName); |
//this value is never bigger than a integer |
int len =(int) f.length(); |
data = new byte[len]; |
int bytesRead = 0; |
bytesRead = r.read(data); |
r.close(); |
if(bytesRead == -1) |
return null; |
} |
catch(FileNotFoundException e) |
{ |
logger.error("Files getBytes()",e); |
return null; |
} |
catch(IOException e) |
{ |
logger.error("Files getData()",e); |
return null; |
} |
return data; |
} |
public static String getMD5(String data) |
{ |
return getMD5(data.getBytes()); |
} |
public static String getMD5(byte[] data) |
{ |
return toHex(getMD5Bytes(data)); |
} |
public static String getDigestMD5Hex(String str){ |
byte[] digest = getDigestMD5(str.getBytes()); |
if(digest != null) |
return toHex(digest); |
return null; |
} |
public static byte[] getDigestMD5(byte[] data) |
{ |
byte[] result = null; |
try{ |
MessageDigest md5 = MessageDigest.getInstance("MD5"); |
md5.update(data); |
result = md5.digest(); |
} |
catch(NoSuchAlgorithmException e) |
{ |
//this never hapens beacause MD5 is a correct algoritm |
logger.fatal("MD5 function does not exists",e); |
} |
return result; |
} |
/********************************************************* |
*Returns true if the two digests are equal |
* |
*******************************************************/ |
public static boolean isDigestEqual(byte[] b1,byte[] b2) |
{ |
try{ |
MessageDigest md5 = MessageDigest.getInstance("MD5"); |
return md5.isEqual(b1,b2); |
} |
catch(NoSuchAlgorithmException e) |
{ |
//this never hapens beacause MD5 is a correct algoritm |
logger.fatal("MD5 function does not exists",e); |
} |
return false; |
} |
public static byte[] getMD5Bytes(byte[] data) |
{ |
try |
{ |
MessageDigest digest = MessageDigest.getInstance("MD5"); |
return digest.digest(data); |
} |
catch (NoSuchAlgorithmException e) |
{ |
logger.fatal("MD5 function does not exists",e); |
} |
return null; |
} |
/** |
* Return a hex representation of the byte array |
* |
* @param data The data to transform. |
* @return A hex representation of the data. |
*/ |
public static String toHex(byte[] data) |
{ |
if ((data == null) || (data.length == 0)) |
return null; |
StringBuffer result = new StringBuffer(); |
// This is far from the most efficient way to do things... |
for (int i = 0; i < data.length; i++) |
{ |
int low = (int) (data[i] & 0x0F); |
int high = (int) (data[i] & 0xF0); |
result.append(Integer.toHexString(high).substring(0, 1)); |
result.append(Integer.toHexString(low)); |
} |
return result.toString(); |
} |
/** |
* Generate a unique key. |
* The key is a long (length 38 to 40) sequence of digits. |
* |
* @return A unique key as a long sequence of base-10 digits. |
*/ |
public static String generateKey() |
{ |
return new BigInteger(generateBytesKey()).abs().toString(); |
} |
/** |
* Generate a unique key. |
* The key is a 32-character long sequence of hex digits. |
* |
* @return A unique key as a long sequence of hex digits. |
*/ |
public static String generateHexKey() |
{ |
return toHex(generateBytesKey()); |
} |
/** |
* Generate a unique key as a byte array. |
* |
* @return A unique key as a byte array. |
*/ |
public static synchronized byte[] generateBytesKey() |
{ |
byte[] junk = new byte[16]; |
random.nextBytes(junk); |
String input = new StringBuffer().append(vmid).append(new java.util.Date()).append(junk).append(counter++).toString(); |
return getMD5Bytes(input.getBytes()); |
} |
// The following two methods are taken from the Jakarta IOUtil class. |
/** |
* Copy stream-data from source to destination. This method does not |
* buffer, flush or close the streams, as to do so would require making |
* non-portable assumptions about the streams' origin and further use. If |
* you wish to perform a buffered copy, use {@link #bufferedCopy}. |
* |
* @param input The InputStream to obtain data from. |
* @param output The OutputStream to copy data to. |
*/ |
public static void copy( final InputStream input, final OutputStream output ) |
throws IOException |
{ |
final int BUFFER_SIZE = 1024 * 4; |
final byte[] buffer = new byte[ BUFFER_SIZE ]; |
while( true ) |
{ |
final int count = input.read( buffer, 0, BUFFER_SIZE ); |
if( -1 == count ) break; |
// write out those same bytes |
output.write( buffer, 0, count ); |
} |
//needed to flush cache |
//output.flush(); |
} |
public static void bufferedCopy( final InputStream source, final OutputStream destination ) |
throws IOException |
{ |
final BufferedInputStream input = new BufferedInputStream( source ); |
final BufferedOutputStream output = new BufferedOutputStream( destination ); |
copy( input, output ); |
output.flush(); |
} |
public static int gen5DigitsKey() { |
Random r = new Random( System.currentTimeMillis() ); |
return 10000 + r.nextInt(20000); |
} |
public static String genCharsDigitsKey(int number) { |
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~`!@#$%^&*()-_=+[{]},<.>?"; |
return RandomStringUtils.random(number, characters); |
} |
public static void main(String[] args) |
{ |
System.out.println(gen5DigitsKey()); |
} |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/HibernateUtils.java |
---|
5,6 → 5,7 |
import org.hibernate.Session; |
import org.hibernate.SessionFactory; |
import org.hibernate.cfg.Configuration; |
import org.hibernate.proxy.HibernateProxy; |
public class HibernateUtils { |
61,4 → 62,23 |
return getSessionFactory().getCurrentSession(); |
} |
/** |
* |
* @param o |
* @return |
*/ |
public static Object narrow(Object o) |
{ |
if(o == null) |
return null; |
if (o instanceof HibernateProxy) |
{ |
return ((HibernateProxy)o).getHibernateLazyInitializer().getImplementation(); |
} |
return o; |
} |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/web/pluginSession/DevelopRegisterSession.java |
---|
28,7 → 28,8 |
UserSession session; |
HibernateUtils.getCurrentSession().beginTransaction(); |
try { |
session = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class, request.getSession().getId()); |
//TODO Mudar par get em vez de load como demonstra a imagem |
session = (UserSession) HibernateUtils.getCurrentSession().get(UserSession.class, request.getSession().getId()); |
if(session == null) |
{ |
session = new UserSessionImpl(); |
41,8 → 42,13 |
session.setCookie(request.getSession().getId()); |
HibernateUtils.getCurrentSession().save(session); |
} |
User u = (User) HibernateUtils.getCurrentSession().load(User.class, new Long(1)); |
User u = (User) HibernateUtils.getCurrentSession().get(User.class, new Long(1)); |
u = (User) HibernateUtils.narrow(u); |
session.setUser(u); |
session = (UserSession) HibernateUtils.narrow(session); |
HibernateUtils.getCurrentSession().getTransaction().commit(); |
return session; |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/web/login/LoginRest.java |
---|
New file |
0,0 → 1,25 |
package pt.estgp.es.exemplos.hibernate.web.login; |
import org.json.JSONException; |
import org.json.JSONObject; |
import pt.estgp.es.exemplos.hibernate.web.rest.AbstractRestServlet; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
public class LoginRest extends AbstractRestServlet |
{ |
public JSONObject login(JSONObject data, HttpServletRequest req, HttpServletResponse resp) throws JSONException |
{ |
String username = data.getString("username"); |
String password = data.getString("password"); |
System.out.println(username); |
System.out.println(password); |
JSONObject js = new JSONObject(); |
js.put("result","ok"); |
return js; |
} |
} |
/es2018/jmachado/src/java/pt/estgp/es/exemplos/hibernate/web/rest/AbstractRestServlet.java |
---|
New file |
0,0 → 1,82 |
package pt.estgp.es.exemplos.hibernate.web.rest; |
import org.json.JSONException; |
import org.json.JSONObject; |
import pt.estgp.es.exemplos.hibernate.utils.StreamsUtils; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServlet; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.IOException; |
import java.io.InputStream; |
import java.io.OutputStream; |
import java.io.PrintWriter; |
import java.lang.reflect.InvocationTargetException; |
import java.lang.reflect.Method; |
public abstract class AbstractRestServlet extends HttpServlet |
{ |
@Override |
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
process(req,resp); |
} |
@Override |
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
process(req,resp); |
} |
protected void process(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException |
{ |
JSONObject requestObj; |
if(req.getContentType().equalsIgnoreCase("application/json")) |
{ |
InputStream content = req.getInputStream(); |
if(content != null) |
{ |
String json = StreamsUtils.readString(content); |
try { |
requestObj = new JSONObject(json); |
System.out.println("REQUEST JSON:"); |
System.out.println(requestObj.toString()); |
String service = requestObj.getString("service"); |
String data = requestObj.has("data") ? requestObj.getString("data") : null; |
Method innerMethod = this.getClass().getMethod(service,new Class[]{ |
JSONObject.class, |
HttpServletRequest.class, |
HttpServletResponse.class}); |
JSONObject obj = (JSONObject) innerMethod.invoke(this,new Object[]{data,req,resp}); |
JSONObject response = new JSONObject(); |
response.put("service","ok"); |
response.put("response",obj); |
resp.setContentType("application/json"); |
PrintWriter pw = resp.getWriter(); |
pw.write(obj.toString()); |
} catch (Throwable e) { |
e.printStackTrace(); |
JSONObject response = new JSONObject(); |
try { |
response.put("service","error"); |
response.put("cause",e.toString()); |
resp.setContentType("application/json"); |
PrintWriter pw = resp.getWriter(); |
pw.write(response.toString()); |
} catch (JSONException e1) { |
e1.printStackTrace(); |
} |
} |
} |
} |
} |
} |
/es2018/jmachado/src/web/teste.jsp |
---|
1,4 → 1,4 |
<%@ page import="teste.Teste" %> |
<%@ page import="pt.estgp.es.Teste" %> |
<%@page language="java" contentType="UTF-8" %> |
<% |
/es2018/jmachado/src/web/listaPaginas.jsp |
---|
10,7 → 10,7 |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="UserSession" type="pt.estgp.es.exemplos.hibernate.UserSession"/> |
<jsp:useBean id="UserSession" type="pt.estgp.es.exemplos.hibernate.UserSessionImpl" scope="request"/> |
<ul><%-- Inicio de uma lista de HTML--%> |
<% |
/es2018/jmachado/src/web/errors/403.jsp |
---|
1,4 → 1,4 |
<%@ page import="teste.Teste" %> |
<%@ page import="pt.estgp.es.Teste" %> |
<%@page language="java" contentType="UTF-8" %> |
<% |
/es2018/jmachado/src/web/errors/404.jsp |
---|
1,4 → 1,4 |
<%@ page import="teste.Teste" %> |
<%@ page import="pt.estgp.es.Teste" %> |
<%@page language="java" contentType="UTF-8" %> |
POagina nao encontrada |
/es2018/jmachado/src/web/js/rest-layer.js |
---|
New file |
0,0 → 1,47 |
function rest(restAction,serviceName,data,webMessagesContainer,handlerOk,handlerFail) |
{ |
var request = |
{ |
data : data, |
service : serviceName |
} |
$.ajax({ |
url: restAction, |
type: "POST", |
contentType: "application/json", |
data: request, |
dataType: "json", |
success: function(resposta) |
{ |
$(webMessagesContainer).find(".web-messages").html(""); |
if(resposta.service == "error") |
{ |
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">' + resposta.exception + '</div>'); |
if(handlerFail != undefined) |
{ |
handlerFail(resposta.exception); |
} |
} |
else if(resposta.service == "ok") |
{ |
for(var msg in resposta.messages) |
{ |
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>'); |
} |
if(handlerOk != undefined) |
handlerOk(resposta.response); |
} |
}, |
error: function(resposta) { |
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>'); |
if(handlerFail != undefined) |
{ |
handlerFail(resposta.exception); |
} |
} |
}); |
} |
/es2018/jmachado/libs.xml |
---|
22,6 → 22,9 |
<fileset dir="lib/log4j"> |
<include name="*.jar" /> |
</fileset> |
<fileset dir="lib/json"> |
<include name="*.jar" /> |
</fileset> |
<fileset dir="lib/hibernate/mysql"> |
<include name="*.jar" /> |
</fileset> |
/es2018/jmachado/build.properties |
---|
46,7 → 46,7 |
# <property name="hibernate.connection.password">@database.password@</property> |
# <property name="show_sql">@hibernate.show.sql@</property> |
# |
#3 - adicionar esta configuração ao compile no final da tarefa |
#3 - adicionar esta configura��o ao compile no final da tarefa |
# <copy file="conf/jdbc.properties" todir="build/ant/classes/pt/estgp/es/exemplos/hibernate"/> |
# <replace file="build/ant/classes/pt/estgp/es/exemplos/hibernate/jdbc.properties"> |
# <replacefilter token="@database.username@" value="${database.username}"/> |
116,9 → 116,9 |
# </replace> |
#</target> |
# |
# 5 - Adicionar a pasta src/gen às sources no IntelliJ |
# 5 - Adicionar a pasta src/gen �s sources no IntelliJ |
# |
# 6 - Adicionar a pasta src/gen à compilação no build.xml alterando o iajc para isto: |
# 6 - Adicionar a pasta src/gen � compila��o no build.xml alterando o iajc para isto: |
#<iajc source="1.8" target="1.8" destdir="build/ant/classes" classpath="lib/aspectj/aspectjrt.jar" classpathref="pathref"> |
# <sourceroots> |
# <pathelement location="src/java"/> |
136,7 → 136,7 |
hibernate.show.sql=false |
database.host=localhost |
database.port=3306 |
database.catalog=teste |
database.catalog=bacoalunos |
database.username=root |
database.password=root |
database.connection.url=jdbc:mysql://${database.host}:${database.port}/${database.catalog}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true |
/es2018/jmachado/metricas-desenho-ckjm.txt |
---|
28,7 → 28,7 |
pt.estgp.es.exemplos.hibernate.Main 2 1 0 10 32 1 0 2 |
pt.estgp.es.exemplos.hibernate.Seccao 11 0 1 2 12 45 3 11 |
pt.estgp.es.exemplos.hibernate.UserSessionImpl 1 0 0 1 2 0 2 1 |
teste.Teste 2 1 0 0 3 1 0 2 |
pt.estgp.es.Teste 2 1 0 0 3 1 0 2 |
pt.estgp.es.exemplos.hibernate.services.ServicoSessoes 2 1 0 6 10 1 1 2 |
pt.estgp.es.exemplos.hibernate.security.logic.PrintParameterExample 1 1 0 0 1 0 1 1 |
pt.estgp.es.exemplos.hibernate.web.pluginSession.PluginFactory 3 1 0 0 12 1 1 2 |
/es2018/jmachado/build.xml |
---|
112,6 → 112,9 |
<fileset dir="lib/log4j"> |
<include name="*.*"/> |
</fileset> |
<fileset dir="lib/json"> |
<include name="*.*"/> |
</fileset> |
<fileset dir="lib/hibernate/hibernate3"> |
<include name="*.*"/> |
</fileset> |
/es2018/17210/Exercicio5.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/18497/Exercicio5.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/18497/Projeto.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/18497/teste.log |
---|
File deleted |
/es2018/18497/local.properties |
---|
File deleted |
\ No newline at end of file |
/es2018/18497/FicheirosDeProjeto.iml |
---|
File deleted |
\ No newline at end of file |
/es2018/18497/teste.log.2018-12-11 |
---|
File deleted |
/es2018/18497/src/FicheirosDeProjeto.iml |
---|
File deleted |
\ No newline at end of file |