|
From: Vance K. <va...@us...> - 2007-01-24 04:33:38
|
User: vancek
Date: 07/01/23 20:33:39
Added: samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain
TimecardDaoImpl.java UserDaoImpl.java Timecard.java
UserRoleDaoImpl.java
samples/timetracker-ejb3/core/src/test/resources log4j.xml
testBeanRefFactory.xml testng.xml
samples/timetracker-ejb3/mda/src/main/uml timetracker.xmi
samples/timetracker-ejb3/core/src/test/java/org/andromda/timetracker/service
TimeTrackingServiceTest.java UserServiceTest.java
samples/timetracker-ejb3 pom.xml .project .classpath
.cvsignore readme.txt
samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/service
UserServiceBean.java TimeTrackingServiceBean.java
samples/timetracker-ejb3/app pom.xml .cvsignore
samples/timetracker-ejb3/common .cvsignore pom.xml
samples/timetracker-ejb3/mda pom.xml .cvsignore
samples/timetracker-ejb3/app/src/main/config
timetracker-ds.xml auth.conf
samples/timetracker-ejb3/common/src/main/java/org/andromda/timetracker/vo
UserVOComparator.java
samples/timetracker-ejb3/client .cvsignore pom.xml
samples/timetracker-ejb3/app/src/main/application/META-INF
timetracker-login-config.xml jboss-app.xml
timetracker-login-service.xml
samples/timetracker-ejb3/web/src/main/java/org/andromda/timetracker/web/timecardsearch
SearchControllerImpl.java
samples/timetracker-ejb3/client/src/main/java/org/andromda/timetracker/client
Client.java
samples/timetracker-ejb3/mda/src/main/config/mappings
WebMergeMappings.xml
samples/timetracker-ejb3/core .cvsignore pom.xml
samples/timetracker-ejb3/mda/src/main/config andromda.xml
samples/timetracker-ejb3/web/src/main/css custom.css
samples/timetracker-ejb3/web pom.xml .cvsignore
samples/timetracker-ejb3/web/src/main/properties
messages.properties
Log:
sample timetracker using EJB3 and JSF cartridges
Revision Changes Path
1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/TimecardDaoImpl.java
Index: TimecardDaoImpl.java
===================================================================
// license-header java merge-point
/**
* This is only generated once! It will never be overwritten.
* You can (and have to!) safely modify it by hand.
*/
package org.andromda.timetracker.domain;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
/**
* @see org.andromda.timetracker.domain.Timecard
*/
public class TimecardDaoImpl
extends org.andromda.timetracker.domain.TimecardDaoBase
{
private Log logger = LogFactory.getLog(TimecardDaoImpl.class);
/**
* @see org.andromda.timetracker.domain.TimecardDao#findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO)
*/
protected java.util.List handleFindByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria)
{
// Create the timecard criteria
Criteria timecardCriteria = hibernateSession.createCriteria(Timecard.class);
timecardCriteria.setFetchMode("submitter", FetchMode.JOIN);
timecardCriteria.setFetchMode("approver", FetchMode.JOIN);
// Add sumitter criteria
if (criteria.getSubmitterId() != null)
{
timecardCriteria.createCriteria("submitter").add(Restrictions.idEq(criteria.getSubmitterId()));
}
// Add approver criteria
if (criteria.getApproverId() != null)
{
timecardCriteria.createCriteria("approver").add(Restrictions.idEq(criteria.getApproverId()));
}
// Add status criteria
if (criteria.getStatus() != null)
{
timecardCriteria.add(Restrictions.eq("status", criteria.getStatus()));
}
// Add startDateMin criteria
if (criteria.getStartDateMin() != null)
{
timecardCriteria.add(Restrictions.ge("startDate", criteria.getStartDateMin()));
}
// Add startDateMax criteria
if (criteria.getStartDateMax() != null)
{
timecardCriteria.add(Restrictions.le("startDate", criteria.getStartDateMax()));
}
List timecards = timecardCriteria.list();
if (logger.isDebugEnabled())
{
logger.debug(timecards.size() + " timecards found");
}
return timecards;
}
/**
* @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard, org.andromda.timetracker.vo.TimecardSummaryVO)
*/
public void toTimecardSummaryVO(
org.andromda.timetracker.domain.Timecard sourceEntity,
org.andromda.timetracker.vo.TimecardSummaryVO targetVO)
{
// ${toDoTag} verify behavior of toTimecardSummaryVO
super.toTimecardSummaryVO(sourceEntity, targetVO);
// add the related entities
targetVO.setSubmitterName(sourceEntity.getSubmitter().getUsername());
if (sourceEntity.getApprover() != null)
{
targetVO.setApproverName(sourceEntity.getApprover().getUsername());
}
}
/**
* @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard)
*/
public org.andromda.timetracker.vo.TimecardSummaryVO toTimecardSummaryVO(final org.andromda.timetracker.domain.Timecard entity)
{
// ${toDoTag} verify behavior of toTimecardSummaryVO
return super.toTimecardSummaryVO(entity);
}
/**
* Retrieves the entity object that is associated with the specified value object
* from the object store. If no such entity object exists in the object store,
* a new, blank entity is created
*/
private org.andromda.timetracker.domain.Timecard loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO)
{
// ${toDoTag} implement loadTimecardFromTimecardSummaryVO
throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO) not yet implemented.");
/* A typical implementation looks like this:
org.andromda.timetracker.domain.Timecard timecard = this.load(timecardSummaryVO.getId());
if (timecard == null)
{
timecard = org.andromda.timetracker.domain.Timecard.Factory.newInstance();
}
return timecard;
*/
}
/**
* @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO)
*/
public org.andromda.timetracker.domain.Timecard timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO)
{
// ${toDoTag} verify behavior of timecardSummaryVOToEntity
org.andromda.timetracker.domain.Timecard entity = this.loadTimecardFromTimecardSummaryVO(timecardSummaryVO);
this.timecardSummaryVOToEntity(timecardSummaryVO, entity, true);
return entity;
}
/**
* @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO, org.andromda.timetracker.domain.Timecard)
*/
public void timecardSummaryVOToEntity(
org.andromda.timetracker.vo.TimecardSummaryVO sourceVO,
org.andromda.timetracker.domain.Timecard targetEntity,
boolean copyIfNull)
{
// ${toDoTag} verify behavior of timecardSummaryVOToEntity
super.timecardSummaryVOToEntity(sourceVO, targetEntity, copyIfNull);
}
}
1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserDaoImpl.java
Index: UserDaoImpl.java
===================================================================
// license-header java merge-point
/**
* This is only generated once! It will never be overwritten.
* You can (and have to!) safely modify it by hand.
*/
package org.andromda.timetracker.domain;
import java.util.Collection;
import java.util.Set;
import java.util.TreeSet;
import org.andromda.timetracker.vo.UserDetailsVO;
import org.andromda.timetracker.vo.UserRoleVO;
/**
* @see org.andromda.timetracker.domain.User
*/
public class UserDaoImpl
extends org.andromda.timetracker.domain.UserDaoBase
{
/**
* @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserVO)
*/
public void toUserVO(
org.andromda.timetracker.domain.User sourceEntity,
org.andromda.timetracker.vo.UserVO targetVO)
{
// ${toDoTag} verify behavior of toUserVO
super.toUserVO(sourceEntity, targetVO);
// WARNING! No conversion for targetVO.id (can't convert sourceEntity.getId():java.lang.Long to java.lang.Long
// WARNING! No conversion for targetVO.username (can't convert sourceEntity.getUsername():java.lang.String to java.lang.String
// WARNING! No conversion for targetVO.firstName (can't convert sourceEntity.getFirstName():java.lang.String to java.lang.String
// WARNING! No conversion for targetVO.lastName (can't convert sourceEntity.getLastName():java.lang.String to java.lang.String
}
/**
* @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User)
*/
public org.andromda.timetracker.vo.UserVO toUserVO(final org.andromda.timetracker.domain.User entity)
{
// ${toDoTag} verify behavior of toUserVO
return super.toUserVO(entity);
}
/**
* Retrieves the entity object that is associated with the specified value object
* from the object store. If no such entity object exists in the object store,
* a new, blank entity is created
*/
private org.andromda.timetracker.domain.User loadUserFromUserVO(org.andromda.timetracker.vo.UserVO userVO)
{
// ${toDoTag} implement loadUserFromUserVO
throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadUserFromUserVO(org.andromda.timetracker.vo.UserVO) not yet implemented.");
/* A typical implementation looks like this:
org.andromda.timetracker.domain.User user = this.load(userVO.getId());
if (user == null)
{
user = org.andromda.timetracker.domain.User.Factory.newInstance();
}
return user;
*/
}
/**
* @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO)
*/
public org.andromda.timetracker.domain.User userVOToEntity(org.andromda.timetracker.vo.UserVO userVO)
{
// ${toDoTag} verify behavior of userVOToEntity
org.andromda.timetracker.domain.User entity = this.loadUserFromUserVO(userVO);
this.userVOToEntity(userVO, entity, true);
return entity;
}
/**
* @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO, org.andromda.timetracker.domain.User)
*/
public void userVOToEntity(
org.andromda.timetracker.vo.UserVO sourceVO,
org.andromda.timetracker.domain.User targetEntity,
boolean copyIfNull)
{
// ${toDoTag} verify behavior of userVOToEntity
super.userVOToEntity(sourceVO, targetEntity, copyIfNull);
// No conversion for targetEntity.username (can't convert sourceVO.getUsername():java.lang.String to java.lang.String
// No conversion for targetEntity.firstName (can't convert sourceVO.getFirstName():java.lang.String to java.lang.String
// No conversion for targetEntity.lastName (can't convert sourceVO.getLastName():java.lang.String to java.lang.String
}
/**
* @see org.andromda.timetracker.domain.UserDao#toUserDetailsVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserDetailsVO)
*/
public void toUserDetailsVO(
org.andromda.timetracker.domain.User sourceEntity,
org.andromda.timetracker.vo.UserDetailsVO targetVO)
{
super.toUserDetailsVO(sourceEntity, targetVO);
// Convert roles
Collection srcRoles = sourceEntity.getRoles();
UserRoleVO[] targetRoles = new UserRoleVO[srcRoles.size()];
int i=0;
for (Object srcRole : srcRoles)
{
targetRoles[i] = getUserRoleDao().toUserRoleVO((UserRole)srcRole);
i++;
}
targetVO.setRoles(targetRoles);
}
/**
* Retrieves the entity object that is associated with the specified value object
* from the object store. If no such entity object exists in the object store,
* a new, blank entity is created
*/
private org.andromda.timetracker.domain.User loadUserFromUserDetailsVO(org.andromda.timetracker.vo.UserDetailsVO userDetailsVO)
{
org.andromda.timetracker.domain.User user = null;
if (userDetailsVO != null && userDetailsVO.getId() != null)
{
try
{
user = this.load(userDetailsVO.getId());
}
catch (UserDaoException e)
{
// user id no set - OK to ignore
}
}
if (user == null)
{
user = new User();
}
return user;
}
/**
* @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO)
*/
public User userDetailsVOToEntity(UserDetailsVO userDetailsVO)
{
org.andromda.timetracker.domain.User entity = this.loadUserFromUserDetailsVO(userDetailsVO);
this.userDetailsVOToEntity(userDetailsVO, entity, true);
return entity;
}
/**
* @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO, org.andromda.timetracker.domain.User)
*/
public void userDetailsVOToEntity(
org.andromda.timetracker.vo.UserDetailsVO sourceVO,
org.andromda.timetracker.domain.User targetEntity,
boolean copyIfNull)
{
// @todo verify behavior of userDetailsVOToEntity
super.userDetailsVOToEntity(sourceVO, targetEntity, copyIfNull);
if (sourceVO.getRoles().length > 0)
{
Set<UserRole> roles = new TreeSet<UserRole>();
for (UserRoleVO userRoleVO : sourceVO.getRoles())
{
System.out.println(" user role : " + userRoleVO.getRole());
roles.add(this.getUserRoleDao().userRoleVOToEntity(userRoleVO));
}
targetEntity.setRoles(roles);
}
}
}
1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/Timecard.java
Index: Timecard.java
===================================================================
// license-header java merge-point
//
// Attention: Generated code! Do not modify by hand!
// Generated by: Entity.vsl in andromda-ejb3-cartridge.
//
package org.andromda.timetracker.domain;
/**
* Autogenerated POJO EJB3 implementation class for Timecard.
*
* Add any manual implementation within this class. This class will NOT
* be overwritten with incremental changes.
*
*
*
*/
@javax.persistence.Entity
// Uncomment to enable seam component name
// @org.jboss.seam.annotations.Name("timecard")
// Uncomment to set specific component scope type
//@org.jboss.seam.annotations.Scope(org.jboss.seam.ScopeType.CONVERSATION)
@javax.persistence.Table(name = "TIMECARD")
// Uncomment to enable entity listener for Timecard
// @javax.persistence.EntityListeners({org.andromda.timetracker.domain.TimecardListener.class})
// Uncomment to enable caching for Timecard
// @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.TRANSACTIONAL)
@javax.persistence.NamedQuery(name = "Timecard.findAll", query = "select timecard from Timecard AS timecard")
public class Timecard
extends org.andromda.timetracker.domain.TimecardEmbeddable
implements java.io.Serializable, Comparable<Timecard>
{
/**
* The serial version UID of this class required for serialization.
*/
private static final long serialVersionUID = -2301368423761775897L;
// --------------- constructors -----------------
/**
* Default Timecard constructor
*/
public Timecard()
{
super();
}
/**
* Implementation for the constructor with all POJO attributes except auto incremented identifiers.
* This method sets all POJO fields defined in this/super class to the
* values provided by the parameters.
*
*/
public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments)
{
super(status, startDate, comments);
}
/**
* Constructor with all POJO attribute values and CMR relations.
*
* @param status Value for the status property
* @param startDate Value for the startDate property
* @param comments Value for the comments property
* @param submitter Value for the submitter relation role
* @param approver Value for the approver relation role
*/
public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments, org.andromda.timetracker.domain.User submitter, org.andromda.timetracker.domain.User approver)
{
super(status, startDate, comments, submitter, approver);
}
// -------------- Entity Methods -----------------
/**
*
*/
@javax.persistence.Transient
public static java.util.List findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria)
{
// TODO put your implementation here.
return null;
}
// --------------- Lifecycle callbacks -----------------
/**
* @see java.lang.Comparable#compareTo(T)
*/
public int compareTo(Timecard o)
{
int cmp = 0;
if (this.getId() != null)
{
cmp = this.getId().compareTo(o.getId());
}
else
{
if (this.getStatus() != null)
{
cmp = (cmp != 0 ? cmp : this.getStatus().compareTo(o.getStatus()));
}
if (this.getStartDate() != null)
{
cmp = (cmp != 0 ? cmp : this.getStartDate().compareTo(o.getStartDate()));
}
if (this.getComments() != null)
{
cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments()));
}
}
return cmp;
}
}
1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserRoleDaoImpl.java
Index: UserRoleDaoImpl.java
===================================================================
// license-header java merge-point
/**
* This is only generated once! It will never be overwritten.
* You can (and have to!) safely modify it by hand.
*/
package org.andromda.timetracker.domain;
/**
* @see org.andromda.timetracker.domain.UserRole
*/
public class UserRoleDaoImpl
extends org.andromda.timetracker.domain.UserRoleDaoBase
{
/**
* @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole, org.andromda.timetracker.vo.UserRoleVO)
*/
public void toUserRoleVO(
org.andromda.timetracker.domain.UserRole sourceEntity,
org.andromda.timetracker.vo.UserRoleVO targetVO)
{
// ${toDoTag} verify behavior of toUserRoleVO
super.toUserRoleVO(sourceEntity, targetVO);
}
/**
* @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole)
*/
public org.andromda.timetracker.vo.UserRoleVO toUserRoleVO(final org.andromda.timetracker.domain.UserRole entity)
{
// ${toDoTag} verify behavior of toUserRoleVO
return super.toUserRoleVO(entity);
}
/**
* Retrieves the entity object that is associated with the specified value object
* from the object store. If no such entity object exists in the object store,
* a new, blank entity is created
*/
private org.andromda.timetracker.domain.UserRole loadUserRoleFromUserRoleVO(org.andromda.timetracker.vo.UserRoleVO userRoleVO)
{
org.andromda.timetracker.domain.UserRole userRole = null;
if (userRoleVO != null && userRoleVO.getId() != null)
{
try
{
userRole = this.load(userRoleVO.getId());
}
catch (UserRoleDaoException e)
{
// ok to continue
}
}
if (userRole == null)
{
userRole = new UserRole();
}
return userRole;
}
/**
* @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO)
*/
public org.andromda.timetracker.domain.UserRole userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO userRoleVO)
{
// ${toDoTag} verify behavior of userRoleVOToEntity
org.andromda.timetracker.domain.UserRole entity = this.loadUserRoleFromUserRoleVO(userRoleVO);
this.userRoleVOToEntity(userRoleVO, entity, true);
return entity;
}
/**
* @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO, org.andromda.timetracker.domain.UserRole)
*/
public void userRoleVOToEntity(
org.andromda.timetracker.vo.UserRoleVO sourceVO,
org.andromda.timetracker.domain.UserRole targetEntity,
boolean copyIfNull)
{
// ${toDoTag} verify behavior of userRoleVOToEntity
super.userRoleVOToEntity(sourceVO, targetEntity, copyIfNull);
}
}
1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/log4j.xml
Index: log4j.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!--
******************************************************************************
* Log4j Configuration
*
* Logging levels (higest to lowest):
* off, fatal, error, warn, info, debug, all
* A logging request is enabled if its level is
* higher than or equal to the level of its logger.
******************************************************************************
-->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- ******************************************************************* -->
<!-- ConsoleAppender -->
<!-- ******************************************************************* -->
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="warn"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- Conversion pattern: Message\n -->
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
<!-- ******************************************************************* -->
<!-- FileAppender -->
<!-- ******************************************************************* -->
<appender name="FileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="timetracker-test.log"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- Conversion pattern: Time Priority - Message\n -->
<param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p - %m%n"/>
<!-- Alternate Conversion pattern: Time Priority - Class[Line] - Message\n -->
<!--
<param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p %50C[%4L] - %m%n"/>
-->
</layout>
</appender>
<!-- ******************************************************************* -->
<!-- Low Level Loggers -->
<!-- ******************************************************************* -->
<!-- Log hibernate messages -->
<logger name="org.hibernate">
<level value="warn"/>
</logger>
<!-- Log HQL query parser activity -->
<logger name="org.hibernate.hql.ast.AST">
<level value="warn"/>
</logger>
<!-- Log just the SQL -->
<logger name="org.hibernate.SQL">
<level value="debug"/>
</logger>
<!-- Log JDBC bind parameters -->
<logger name="org.hibernate.type">
<level value="debug"/>
</logger>
<!-- Log schema export/update -->
<logger name="org.hibernate.tool.hbm2ddl">
<level value="warn"/>
</logger>
<!-- Log HQL parse trees -->
<logger name="org.hibernate.hql">
<level value="warn"/>
</logger>
<!-- Log cache activity -->
<logger name="org.hibernate.cache">
<level value="warn"/>
</logger>
<!-- Log transaction activity -->
<logger name="org.hibernate.transaction">
<level value="warn"/>
</logger>
<!-- Log JDBC resource acquisition -->
<logger name="org.hibernate.jdbc">
<level value="warn"/>
</logger>
<!-- Track down connection leakages when using DriverManagerConnectionProvider -->
<logger name="org.hibernate.connection.DriverManagerConnectionProvider">
<level value="warn"/>
</logger>
<!-- Log TimeTracker messages -->
<logger name="org.andromda.timetracker">
<level value="debug"/>
</logger>
<!-- ******************************************************************* -->
<!-- Root Logger -->
<!-- ******************************************************************* -->
<!-- Allow warning and higher messages from everyone to go to console and file -->
<root>
<level value="warn"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="FileAppender"/>
</root>
</log4j:configuration>
1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testBeanRefFactory.xml
Index: testBeanRefFactory.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans
PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="beanRefFactory"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>applicationContext.xml</value>
<value>applicationContext-localDataSource.xml</value>
<!-- beanRefFactory merge-point -->
</list>
</constructor-arg>
</bean>
</beans>
1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testng.xml
Index: testng.xml
===================================================================
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TimeTracker Test Suite" verbose="1">
<test name="Services Test">
<classes>
<!--
<class name="org.andromda.timetracker.service.UserServiceTest" />
<class name="org.andromda.timetracker.service.TimeTrackingServiceTest" />
-->
</classes>
</test>
</suite>
1.1 plugins/samples/timetracker-ejb3/mda/src/main/uml/timetracker.xmi
Index: timetracker.xmi
===================================================================
<?xml version='1.0' encoding='UTF-8'?>
<!-- <!DOCTYPE XMI SYSTEM "uml14xmi12.dtd"> -->
<XMI xmi.version='1.2' timestamp='Wed Jan 24 13:07:05 GMT+08:00 2007' xmlns:UML='omg.org/UML/1.4'>
<XMI.header>
<XMI.documentation>
<XMI.exporter>MagicDraw UML</XMI.exporter>
<XMI.exporterVersion>9.5</XMI.exporterVersion>
</XMI.documentation>
<XMI.metamodel xmi.name='UML' xmi.version='1.4'/>
</XMI.header>
<XMI.content>
<UML:Model xmi.id='eee_1045467100313_135436_1' name='Data' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:ModelElement.comment>
<UML:Comment xmi.id='_24400562_1092013275546_280654_0' name='Author:Administrator. Created:8/8/04 8:58 PM. Title:. Comment:. '/>
</UML:ModelElement.comment>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<ignoredInModule xmi.value='true'/>
</XMI.extension>
<UML:Namespace.ownedElement>
<UML:Package xmi.id='eee_1045467100313_365297_7' name='Component View' isRoot='false' isLeaf='false' isAbstract='false'/>
<UML:Package href='andromda-profile-3.3-SNAPSHOT.xml.zip|_8a70287_1078771814628_224704_589'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='::org.andromda.profile'/>
</XMI.extension>
</UML:Package>
<UML:Package xmi.id='_9_0_2_12ab03bf_1125323139546_169312_1' name='Data types' isRoot='false' isLeaf='false' isAbstract='false'/>
<UML:Model xmi.id='_9_5_1_8c50279_1169284943593_621983_0' name='TimeTracker' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:Namespace.ownedElement>
<UML:Package xmi.id='_9_5_1_8c50279_1169285020671_442512_1' name='org.andromda.timetracker' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:Namespace.ownedElement>
<UML:Package xmi.id='_9_5_1_8c50279_1169285069296_549214_2' name='vo' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:Namespace.ownedElement>
<UML:Class xmi.id='_9_5_1_8c50279_1169285116546_935256_4' name='UserVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'>
<UML:ModelElement.comment>
<UML:Comment xmi.id='_9_5_1_8c50279_1169285297375_133209_28' name='This class represents a value object that carries information about a TimeTracker user.'/>
</UML:ModelElement.comment>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::ValueObject'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169285180765_139981_20' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_276612_832'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Long'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169285257984_178002_22' name='username' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_386979_833'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169285269828_95519_24' name='firstName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_902312_834'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169285277593_284551_26' name='lastName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_86443_835'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
<UML:Class xmi.id='_9_5_1_8c50279_1169285311500_838087_119' name='UserVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/>
<UML:Class xmi.id='_9_5_1_8c50279_1169364049578_435363_114' name='TimecardSummaryVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::ValueObject'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364076812_527125_130' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Long'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364079546_909254_132' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114' type='_9_5_1_8c50279_1169363855234_636472_0'/>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364086890_611960_134' name='startDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Date'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364092609_869542_136' name='comments' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364096843_508570_138' name='submitterName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364104015_862185_140' name='approverName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
<UML:Class xmi.id='_9_5_1_8c50279_1169364119234_263956_142' name='TimecardSummaryVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/>
<UML:Class xmi.id='_9_5_1_8c50279_1169364152171_496868_160' name='TimecardSearchCriteriaVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::ValueObject'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364170015_93052_176' name='submitterId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_707081_186'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_190054_187' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Long'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364181265_854013_178' name='approverId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_218543_189'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_666772_190' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Long'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364190437_16846_180' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160' type='_9_5_1_8c50279_1169363855234_636472_0'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_562937_192'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_740411_193' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364199515_845291_182' name='startDateMin' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_170391_195'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_683169_196' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Date'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169364208640_522460_184' name='startDateMax' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_59154_198'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_560927_199' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Date'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
<UML:Class xmi.id='_9_5_1_8c50279_1169562456859_157459_687' name='UserDetailsVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' generalization='_9_5_1_8c50279_1169562535046_945830_717'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::ValueObject'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562470406_823011_703' name='password' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_795989_836'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562477031_255224_705' name='email' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_215926_837'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562481953_212399_707' name='isActive' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_655427_838'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_736816_6'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::boolean'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562489843_563027_709' name='creationDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_874748_839'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Date'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562502531_38451_711' name='comment' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id='_9_5_1_8c50279_1169562788046_134443_840'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169562788046_481615_841' lower='0' upper='1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_900348_842'/>
</UML:Attribute.initialValue>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::String'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562512984_189574_713' name='roles' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687' type='_9_5_1_8c50279_1169562608640_540814_805'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_397077_843'/>
</UML:Attribute.initialValue>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization xmi.id='_9_5_1_8c50279_1169562535046_945830_717' child='_9_5_1_8c50279_1169562456859_157459_687' parent='_9_5_1_8c50279_1169285116546_935256_4'/>
<UML:Class xmi.id='_9_5_1_8c50279_1169562568156_910485_774' name='UserRoleVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::ValueObject'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562581812_130339_790' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774'>
<UML:StructuralFeature.type>
<UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='datatype::Long'/>
</XMI.extension>
</UML:Classifier>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute xmi.id='_9_5_1_8c50279_1169562587046_819984_792' name='role' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774' type='_9_5_1_8c50279_1169561392937_952991_572'>
<UML:Attribute.initialValue>
<UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_949192_844'/>
</UML:Attribute.initialValue>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
<UML:Class xmi.id='_9_5_1_8c50279_1169562608640_540814_805' name='UserRoleVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Package xmi.id='_9_5_1_8c50279_1169285569687_156903_153' name='service' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:Namespace.ownedElement>
<UML:Class xmi.id='_9_5_1_8c50279_1169285587500_873918_164' name='UserService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169288699328_180606_363'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::service::Service'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Operation xmi.id='_9_5_1_8c50279_1169285605734_285967_181' name='getAllUsers' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'>
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id='_9_5_1_8c50279_1169285668281_781419_183' kind='return' type='_9_5_1_8c50279_1169285311500_838087_119'/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation xmi.id='_9_5_1_8c50279_1169607055218_374842_908' name='registerUser' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'>
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_566687_906' name='userDetailVO' kind='inout' type='_9_5_1_8c50279_1169562456859_157459_687'/>
<UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_231021_907' kind='return' type='_9_5_1_8c50279_1169562456859_157459_687'/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Dependency xmi.id='_9_5_1_8c50279_1169288699328_180606_363' client='_9_5_1_8c50279_1169285587500_873918_164' supplier='_9_5_1_8c50279_1169288267218_362608_214'/>
<UML:Class xmi.id='_9_5_1_8c50279_1169364265078_632331_210' name='TimeTrackingService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169395300312_487935_567'>
<UML:ModelElement.stereotype>
<UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'>
<XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'>
<referentPath xmi.value='org.andromda.profile::service::Service'/>
</XMI.extension>
</UML:Stereotype>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Operation xmi.id='_9_5_1_8c50279_1169364307531_927180_228' name='findTimecards' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169364265078_632331_210'>
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_983235_226' name='criteria' kind='inout' type='_9_5_1_8c50279_1169364152171_496868_160'/>
<UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_864968_227' kind='return' type='_9_5_1_8c50279_1169364119234_263956_142'/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Dependency xmi.id='_9_5_1_8c50279_1169395300312_487935_567' client='_9_5_1_8c50279_1169364265078_632331_210' supplier='_9_5_1_8c50279_1169393103765_703156_231'/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Package xmi.id='_9_5_1_8c50279_1169288239437_239811_203' name='domain' isRoot='false' isLeaf='false' isAbstract='false'>
<UML:Namespace.ownedElement>
<UML:Class xmi.id='_9_5_1_8c50279_1169288267218_362608_214' name='User' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'>
<UML:ModelElement.clientDependency>
<UML:Dependenc...
[truncated message content] |