diff --git b/.settings/org.hibernate.eclipse.console.prefs a/.settings/org.hibernate.eclipse.console.prefs new file mode 100644 index 0000000..1dea3f9 --- /dev/null +++ a/.settings/org.hibernate.eclipse.console.prefs @@ -0,0 +1,4 @@ +#Fri Feb 23 14:56:36 CET 2007 +default.configuration=seamTestInAction +eclipse.preferences.version=1 +hibernate3.enabled=true diff --git b/.settings/org.jboss.tools.seam.core.prefs a/.settings/org.jboss.tools.seam.core.prefs new file mode 100644 index 0000000..668ca31 --- /dev/null +++ a/.settings/org.jboss.tools.seam.core.prefs @@ -0,0 +1,16 @@ +#Wed Aug 06 19:35:32 BST 2008 +action.package=pl.labno.bernard.seamTestInAction +action.sources=/seamTestInAction/src/hot +eclipse.preferences.version=1 +model.package=pl.labno.bernard.seamTestInAction +model.sources=/seamTestInAction/src/main +seam.ejb.project=seamTestInAction +seam.project.connection.profile= +seam.project.deployment.type=war +seam.project.settings.version=1.1 +seam.project.web.root.folder=/seamTestInAction/view +seam.runtime.name= +seam.test.creating=true +seam.test.project=seamTestInAction +test.package=pl.labno.bernard.seamTestInAction.test +test.sources=/seamTestInAction/src/test diff --git b/bootstrap/META-INF/persistence.properties a/bootstrap/META-INF/persistence.properties new file mode 100644 index 0000000..4c600c7 --- /dev/null +++ a/bootstrap/META-INF/persistence.properties @@ -0,0 +1,17 @@ +hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup +#hibernate.connection.release_mode=after_statement +#hibernate.transaction.flush_before_completion=false +#hibernate.transaction.auto_close_session=false +#hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory +#hibernate.hbm2ddl.auto=create-drop +#hibernate.hbm2ddl.auto=create +hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider +# Clustered cache with TreeCache +#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook +#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache +#hibernate.dialect=org.hibernate.dialect.HSQLDialect +hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory +hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces +hibernate.bytecode.use_reflection_optimizer=false +# I don't think this is honored, but EJB3Deployer uses it +hibernate.bytecode.provider=javassist \ No newline at end of file diff --git b/bootstrap/commons-logging.properties a/bootstrap/commons-logging.properties new file mode 100644 index 0000000..fa93961 --- /dev/null +++ a/bootstrap/commons-logging.properties @@ -0,0 +1,5 @@ +# The Sun JSF RI bundles and wraps commons-logging, which, for unknown reasons, disables any other +# commons-logging (my guess: the LogFactoryImpl detection routine is broken). This configuration +# file makes it work again (also for unknown reasons). +org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl +org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger \ No newline at end of file diff --git b/bootstrap/conf/bootstrap-beans.xml a/bootstrap/conf/bootstrap-beans.xml new file mode 100644 index 0000000..c217e12 --- /dev/null +++ a/bootstrap/conf/bootstrap-beans.xml @@ -0,0 +1,238 @@ + + + + + + + + + + jboss.bind.address + 127.0.0.1 + + + com.arjuna.ats.arjuna.common.propertiesFile + ${jboss.home.dir}/conf/jbossjta-properties.xml + + + com.arjuna.ats.arjuna.objectstore.objectStoreDir + ${jboss.server.data.dir}/ObjectStore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .zip + .ear + .jar + .rar + .war + .sar + .har + .aop + .deployer + .beans + + + + + + + + + + + + + .class + + + + + + + + + + + + + + + -service.xml + -beans.xml + -ds.xml + -aop.xml + + + + + + + + beans + + + beans + + + + beans + + + + + sar + + + + sar + + + + sar + + + + + + #,%,\,,.,_$ + + #,$,%,~,\,v,.BAK,.bak,.old,.orig,.tmp,.rej,.sh + + .make.state,.nse_depinfo,CVS,CVS.admin,RCS,RCSLOG,SCCS,TAGS,core,tags + + + + + + + + + JNDI + + + + + + + + + + + + + + + + + ${jboss.embedded.bootstrap.resource.path}conf/jboss-service.xml + + + + + + + + + + + UserTransaction + false + + + + + + + + java:comp/UserTransaction + false + + + + + + + + + + + + + + + + ${jboss.embedded.bootstrap.resource.path}conf/jboss-service.xml/../deployers + + + + + + + + + + + + + + + + ${jboss.embedded.bootstrap.resource.path}conf/jboss-service.xml/../deploy + + + + diff --git b/bootstrap/conf/jboss-service.xml a/bootstrap/conf/jboss-service.xml new file mode 100644 index 0000000..8eb443b --- /dev/null +++ a/bootstrap/conf/jboss-service.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + jboss.system:service=MainDeployer + + + + + + + + jboss.security:service=XMLLoginConfig + jboss.security:service=XMLLoginConfig + + + ${jboss.embedded.bootstrap.resource.path}conf/login-config.xml + + + + + + true + org.jboss.security.plugins.JaasSecurityManager + anonymous + + 1800 + + 60 + + false + + + + + org.jboss.security.plugins.JBossAuthorizationManager + + + + + + + + + 300 + ${jboss.server.data.dir}/tx-object-store + + + + + WorkManager + + 1024 + + 100 + + 60000 + + + + jboss.jca:service=WorkManagerThreadPool + jboss:service=TransactionManager + + + + + jboss:service=TransactionManager + + + true + + + + + + jboss:service=HAJNDI + + + diff --git b/bootstrap/conf/jbossjta-properties.xml a/bootstrap/conf/jbossjta-properties.xml new file mode 100644 index 0000000..48163c4 --- /dev/null +++ a/bootstrap/conf/jbossjta-properties.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/bootstrap/conf/login-config.xml a/bootstrap/conf/login-config.xml new file mode 100644 index 0000000..aa96faf --- /dev/null +++ a/bootstrap/conf/login-config.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + sa + sa + + jboss.jca:service=LocalTxCM,name=DefaultDS + + + + + + + + guest + conf/props/messaging-users.properties + conf/props/messaging-roles.properties + + + + + + + + + + + true + + + + + + + + + + + + + diff --git b/bootstrap/conf/props/messaging-roles.properties a/bootstrap/conf/props/messaging-roles.properties new file mode 100644 index 0000000..c229b8f --- /dev/null +++ a/bootstrap/conf/props/messaging-roles.properties @@ -0,0 +1,4 @@ +# +# user=role1,role2,... +# +guest=guest diff --git b/bootstrap/conf/props/messaging-users.properties a/bootstrap/conf/props/messaging-users.properties new file mode 100644 index 0000000..0272c66 --- /dev/null +++ a/bootstrap/conf/props/messaging-users.properties @@ -0,0 +1,4 @@ +# +# user=password +# +guest=guest diff --git b/bootstrap/data/hypersonic/localDB.log a/bootstrap/data/hypersonic/localDB.log new file mode 100644 index 0000000..6c303ab --- /dev/null +++ a/bootstrap/data/hypersonic/localDB.log @@ -0,0 +1,24 @@ +/*C3*/SET SCHEMA PUBLIC +CONNECT USER SA +/*C4*/SET SCHEMA PUBLIC +CONNECT USER SA +SET AUTOCOMMIT FALSE +INSERT INTO JBM_DUAL VALUES(1) +COMMIT +DELETE FROM JBM_COUNTER WHERE NAME='MESSAGE_ID' +INSERT INTO JBM_COUNTER VALUES('MESSAGE_ID',20480) +COMMIT +DELETE FROM JBM_COUNTER WHERE NAME='CHANNEL_ID' +INSERT INTO JBM_COUNTER VALUES('CHANNEL_ID',50) +COMMIT +DELETE FROM JBM_COUNTER WHERE NAME='TRANSACTION_ID' +INSERT INTO JBM_COUNTER VALUES('TRANSACTION_ID',5120) +COMMIT +SET AUTOCOMMIT TRUE +drop table TAG if exists +create table TAG (ID bigint generated by default as identity (start with 1), NAME varchar(20) not null, VERSION integer, primary key (ID)) +drop table TAG if exists +create table TAG (ID bigint generated by default as identity (start with 1), NAME varchar(20) not null, VERSION integer, primary key (ID)) +SET AUTOCOMMIT FALSE +INSERT INTO TAG VALUES(1,'My new legal act',0) +COMMIT diff --git b/bootstrap/data/hypersonic/localDB.properties a/bootstrap/data/hypersonic/localDB.properties new file mode 100644 index 0000000..7ff71bc --- /dev/null +++ a/bootstrap/data/hypersonic/localDB.properties @@ -0,0 +1,17 @@ +#HSQL Database Engine 1.8.0.8 +#Wed Sep 23 12:01:20 CEST 2009 +hsqldb.script_format=0 +runtime.gc_interval=0 +sql.enforce_strict_size=false +hsqldb.cache_size_scale=8 +readonly=false +hsqldb.nio_data_file=true +hsqldb.cache_scale=14 +version=1.8.0 +hsqldb.default_table_type=memory +hsqldb.cache_file_scale=1 +hsqldb.log_size=200 +modified=yes +hsqldb.cache_version=1.7.0 +hsqldb.original_version=1.8.0 +hsqldb.compatible_version=1.8.0 diff --git b/bootstrap/data/hypersonic/localDB.script a/bootstrap/data/hypersonic/localDB.script new file mode 100644 index 0000000..a462460 --- /dev/null +++ a/bootstrap/data/hypersonic/localDB.script @@ -0,0 +1,45 @@ +CREATE SCHEMA PUBLIC AUTHORIZATION DBA +CREATE MEMORY TABLE JBM_DUAL(DUMMY INTEGER) +CREATE MEMORY TABLE JBM_MSG_REF(CHANNEL_ID BIGINT NOT NULL,MESSAGE_ID BIGINT NOT NULL,TRANSACTION_ID BIGINT,STATE CHAR(1),ORD BIGINT,PAGE_ORD BIGINT,DELIVERY_COUNT INTEGER,SCHED_DELIVERY BIGINT,PRIMARY KEY(CHANNEL_ID,MESSAGE_ID)) +CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF(TRANSACTION_ID) +CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF(ORD) +CREATE INDEX JBM_MSG_REF__PAGE_ORD ON JBM_MSG_REF(PAGE_ORD) +CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF(MESSAGE_ID) +CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF(SCHED_DELIVERY) +CREATE MEMORY TABLE JBM_MSG(MESSAGE_ID BIGINT NOT NULL PRIMARY KEY,RELIABLE CHAR(1),EXPIRATION BIGINT,TIMESTAMP BIGINT,PRIORITY TINYINT,TYPE TINYINT,INS_TIME BIGINT,HEADERS LONGVARBINARY,PAYLOAD LONGVARBINARY) +CREATE INDEX JBM_MSG_REF_TIMESTAMP ON JBM_MSG(TIMESTAMP) +CREATE MEMORY TABLE JBM_TX(NODE_ID INTEGER,TRANSACTION_ID BIGINT NOT NULL PRIMARY KEY,BRANCH_QUAL VARBINARY(254),FORMAT_ID INTEGER,GLOBAL_TXID VARBINARY(254)) +CREATE MEMORY TABLE JBM_COUNTER(NAME VARCHAR(255) NOT NULL PRIMARY KEY,NEXT_ID BIGINT) +CREATE MEMORY TABLE JBM_USER(USER_ID VARCHAR(32) NOT NULL PRIMARY KEY,PASSWD VARCHAR(32) NOT NULL,CLIENTID VARCHAR(128)) +CREATE MEMORY TABLE JBM_ROLE(ROLE_ID VARCHAR(32) NOT NULL,USER_ID VARCHAR(32) NOT NULL,PRIMARY KEY(USER_ID,ROLE_ID)) +CREATE MEMORY TABLE JBM_POSTOFFICE(POSTOFFICE_NAME VARCHAR(255) NOT NULL,NODE_ID INTEGER NOT NULL,QUEUE_NAME VARCHAR(255) NOT NULL,CONDITION VARCHAR(1023),SELECTOR VARCHAR(1023),CHANNEL_ID BIGINT,CLUSTERED CHAR(1),ALL_NODES CHAR(1),PRIMARY KEY(POSTOFFICE_NAME,NODE_ID,QUEUE_NAME)) +CREATE MEMORY TABLE TAG(ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,NAME VARCHAR(20) NOT NULL,VERSION INTEGER) +ALTER TABLE TAG ALTER COLUMN ID RESTART WITH 2 +CREATE USER SA PASSWORD "" +GRANT DBA TO SA +SET WRITE_DELAY 10 +SET SCHEMA PUBLIC +INSERT INTO JBM_DUAL VALUES(1) +INSERT INTO JBM_DUAL VALUES(1) +INSERT INTO JBM_DUAL VALUES(1) +INSERT INTO JBM_DUAL VALUES(1) +INSERT INTO JBM_COUNTER VALUES('CHANNEL_ID',40) +INSERT INTO JBM_COUNTER VALUES('MESSAGE_ID',16384) +INSERT INTO JBM_COUNTER VALUES('TRANSACTION_ID',4096) +INSERT INTO JBM_USER VALUES('dynsub','dynsub',NULL) +INSERT INTO JBM_USER VALUES('guest','guest',NULL) +INSERT INTO JBM_USER VALUES('j2ee','j2ee',NULL) +INSERT INTO JBM_USER VALUES('john','needle','DurableSubscriberExample') +INSERT INTO JBM_USER VALUES('nobody','nobody',NULL) +INSERT INTO JBM_ROLE VALUES('durpublisher','dynsub') +INSERT INTO JBM_ROLE VALUES('publisher','dynsub') +INSERT INTO JBM_ROLE VALUES('guest','guest') +INSERT INTO JBM_ROLE VALUES('j2ee','guest') +INSERT INTO JBM_ROLE VALUES('john','guest') +INSERT INTO JBM_ROLE VALUES('durpublisher','john') +INSERT INTO JBM_ROLE VALUES('publisher','john') +INSERT INTO JBM_ROLE VALUES('subscriber','john') +INSERT INTO JBM_ROLE VALUES('noacc','nobody') +INSERT INTO JBM_POSTOFFICE VALUES('JMS post office',0,'DLQ','queue.DLQ',NULL,0,'N','N') +INSERT INTO JBM_POSTOFFICE VALUES('JMS post office',0,'ExpiryQueue','queue.ExpiryQueue',NULL,1,'N','N') +INSERT INTO TAG VALUES(1,'My new legal act',0) diff --git b/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#215#/7f000001_b4ca_4ab9f06e_1 a/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#215#/7f000001_b4ca_4ab9f06e_1 new file mode 100644 index 0000000..0baf45a Binary files /dev/null and a/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#215#/7f000001_b4ca_4ab9f06e_1 differ diff --git b/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#87#/7f000001_8197_4ab9f160_1 a/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#87#/7f000001_8197_4ab9f160_1 new file mode 100644 index 0000000..0b0b417 Binary files /dev/null and a/bootstrap/data/tx-object-store/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/#87#/7f000001_8197_4ab9f160_1 differ diff --git b/bootstrap/deploy/ejb3-interceptors-aop.xml a/bootstrap/deploy/ejb3-interceptors-aop.xml new file mode 100644 index 0000000..acfaf87 --- /dev/null +++ a/bootstrap/deploy/ejb3-interceptors-aop.xml @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + @org.jboss.ejb3.annotation.Cache ("SimpleStatefulCache") + + + @org.jboss.ejb3.annotation.PersistenceManager ("StatefulSessionFilePersistenceManager") + + + @org.jboss.ejb3.annotation.CacheConfig (maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0) + + + + + @org.jboss.ejb3.annotation.Cache ("StatefulTreeCache") + + + @org.jboss.ejb3.annotation.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + @org.jboss.ejb3.annotation.Cache ("SimpleStatefulCache") + + + @org.jboss.ejb3.annotation.PersistenceManager ("StatefulSessionFilePersistenceManager") + + + @org.jboss.ejb3.annotation.CacheConfig (maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0) + + + + + @org.jboss.ejb3.annotation.Cache ("StatefulTreeCache") + + + @org.jboss.ejb3.annotation.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0) + + + + + + + @org.jboss.ejb3.annotation.Cache ("NoPassivationCache") + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=15, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=15, timeout=10000) + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.jboss.ejb3.annotation.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy.class) + + + + \ No newline at end of file diff --git b/bootstrap/deploy/hsqldb-ds.xml a/bootstrap/deploy/hsqldb-ds.xml new file mode 100644 index 0000000..4248179 --- /dev/null +++ a/bootstrap/deploy/hsqldb-ds.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + DefaultDS + + + + + jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB + + + org.hsqldb.jdbcDriver + + + sa + + + + + + + + + + 0 + + + 20 + + + + + 0 + + + + + + + + + + + + + + HsqlDbRealm + + + + + 32 + + + jboss:service=Hypersonic,database=localDB + + + + + + + + localDB + true + + + diff --git b/bootstrap/deploy/jboss-local-jdbc.rar a/bootstrap/deploy/jboss-local-jdbc.rar new file mode 100644 index 0000000..2b0a5d7 Binary files /dev/null and a/bootstrap/deploy/jboss-local-jdbc.rar differ diff --git b/bootstrap/deploy/jboss-xa-jdbc.rar a/bootstrap/deploy/jboss-xa-jdbc.rar new file mode 100644 index 0000000..1270a50 Binary files /dev/null and a/bootstrap/deploy/jboss-xa-jdbc.rar differ diff --git b/bootstrap/deploy/jms-ra.rar a/bootstrap/deploy/jms-ra.rar new file mode 100644 index 0000000..9c36b3e Binary files /dev/null and a/bootstrap/deploy/jms-ra.rar differ diff --git b/bootstrap/deploy/messaging/connection-factories-service.xml a/bootstrap/deploy/messaging/connection-factories-service.xml new file mode 100644 index 0000000..be3015c --- /dev/null +++ a/bootstrap/deploy/messaging/connection-factories-service.xml @@ -0,0 +1,149 @@ + + + + + + + + + jboss.messaging:service=ServerPeer + jboss.messaging:service=Connector,transport=bisocket + jboss.messaging:service=PostOffice + + + + /ConnectionFactory + /XAConnectionFactory + java:/ConnectionFactory + java:/XAConnectionFactory + + + + + + + jboss.messaging:service=ServerPeer + jboss.messaging:service=Connector,transport=bisocket + jboss.messaging:service=PostOffice + + + + /ClusteredConnectionFactory + /ClusteredXAConnectionFactory + java:/ClusteredConnectionFactory + java:/ClusteredXAConnectionFactory + + + + true + true + + + + + jboss.messaging:service=ServerPeer + jboss.messaging:service=Connector,transport=bisocket + jboss.messaging:service=PostOffice + false + false + + + + + \ No newline at end of file diff --git b/bootstrap/deploy/messaging/destinations-service.xml a/bootstrap/deploy/messaging/destinations-service.xml new file mode 100644 index 0000000..678e956 --- /dev/null +++ a/bootstrap/deploy/messaging/destinations-service.xml @@ -0,0 +1,36 @@ + + + + + + + + + + @org.jboss.system.deployers.managed.ManagementObjectClass(code=org.jboss.jms.server.destination.QueueServiceMO) + jboss.messaging:service=ServerPeer + jboss.messaging:service=PostOffice + + + + + + @org.jboss.system.deployers.managed.ManagementObjectClass(code=org.jboss.jms.server.destination.QueueServiceMO) + jboss.messaging:service=ServerPeer + jboss.messaging:service=PostOffice + + + + \ No newline at end of file diff --git b/bootstrap/deploy/messaging/hsqldb-persistence-service.xml a/bootstrap/deploy/messaging/hsqldb-persistence-service.xml new file mode 100644 index 0000000..84345bc --- /dev/null +++ a/bootstrap/deploy/messaging/hsqldb-persistence-service.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + jboss.jca:service=DataSourceBinding,name=DefaultDS + + jboss:service=TransactionManager + + + + java:/DefaultDS + + + + true + + + + false + + + + 500 + + + + + + + jboss.messaging:service=ServerPeer + + jboss.jca:service=DataSourceBinding,name=DefaultDS + + jboss:service=TransactionManager + + + + JMS post office + + + + java:/DefaultDS + + + + true + + + + false + + + + + + + jboss.jca:service=DataSourceBinding,name=DefaultDS + + jboss:service=TransactionManager + + java:/DefaultDS + + true + + + + + \ No newline at end of file diff --git b/bootstrap/deploy/messaging/jms-ds.xml a/bootstrap/deploy/messaging/jms-ds.xml new file mode 100644 index 0000000..c38c13e --- /dev/null +++ a/bootstrap/deploy/messaging/jms-ds.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + DefaultJMSProvider + org.jboss.jms.jndi.JNDIProviderAdapter + java:/XAConnectionFactory + java:/XAConnectionFactory + java:/XAConnectionFactory + + + + + JmsXA + + jms-ra.rar + org.jboss.resource.adapter.jms.JmsConnectionFactory + javax.jms.Topic + java:/DefaultJMSProvider + 20 + JmsXARealm + jboss.messaging:service=ServerPeer + + + diff --git b/bootstrap/deploy/messaging/legacy-service.xml a/bootstrap/deploy/messaging/legacy-service.xml new file mode 100644 index 0000000..130ecc3 --- /dev/null +++ a/bootstrap/deploy/messaging/legacy-service.xml @@ -0,0 +1,16 @@ + + + + + + jboss.messaging:service=ServerPeer + + + + diff --git b/bootstrap/deploy/messaging/messaging-service.xml a/bootstrap/deploy/messaging/messaging-service.xml new file mode 100644 index 0000000..8b04cd2 --- /dev/null +++ a/bootstrap/deploy/messaging/messaging-service.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + 0 + + + + /queue + + + + /topic + + jboss.messaging:service=PostOffice + + + + java:/jaas/messaging + + + + + + + + + + + + + + jboss.messaging.destination:service=Queue,name=DLQ + + + + 10 + + + + jboss.messaging.destination:service=Queue,name=ExpiryQueue + + + + 0 + + + + 5000 + + + + 60000 + + + + 300000 + + false + + + + -1 + + + + jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory + + + + + + + + false + + + + 300000 + + + + jboss.messaging:service=PersistenceManager + + jboss.messaging:service=JMSUserManager + + jboss.messaging:service=Connector,transport=bisocket + + + + diff --git b/bootstrap/deploy/messaging/remoting-service.xml a/bootstrap/deploy/messaging/remoting-service.xml new file mode 100644 index 0000000..b3faf2e --- /dev/null +++ a/bootstrap/deploy/messaging/remoting-service.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + org.jboss.jms.wireformat.JMSWireFormat + org.jboss.jms.wireformat.JMSWireFormat + jms + false + 0 + ${jboss.bind.address} + 4458 + org.jboss.jms.client.remoting.ClientSocketWrapper + org.jboss.jms.server.remoting.ServerSocketWrapper + 1 + 214748364 + 10 + org.jboss.jms.server.remoting.DirectThreadPool + + + + 10000 + + + 10 + + + 200 + + + + + + org.jboss.jms.server.remoting.JMSServerInvocationHandler + + + + + + diff --git b/bootstrap/deploy/remoting-service.xml a/bootstrap/deploy/remoting-service.xml new file mode 100644 index 0000000..3556e5b --- /dev/null +++ a/bootstrap/deploy/remoting-service.xml @@ -0,0 +1,15 @@ + + + + + socket://${jboss.bind.address}:3883 + + + org.jboss.aspects.remoting.AOPRemotingInvocationHandler + + + + diff --git b/bootstrap/deployers/aspect-deployer-beans.xml a/bootstrap/deployers/aspect-deployer-beans.xml new file mode 100644 index 0000000..bf05414 --- /dev/null +++ a/bootstrap/deployers/aspect-deployer-beans.xml @@ -0,0 +1,50 @@ + + + + + + + + + + ]]> + + + + false + + true + true + org.jboss.test., org.jboss.injbossaop. + org.jboss. + + true + false + + + + + + aop + + + + diff --git b/bootstrap/deployers/ejb-deployer-beans.xml a/bootstrap/deployers/ejb-deployer-beans.xml new file mode 100644 index 0000000..9326b4b --- /dev/null +++ a/bootstrap/deployers/ejb-deployer-beans.xml @@ -0,0 +1,54 @@ + + + + + + + ejb2x + false + 3000 + + + ejb2x + 3001 + false + true + + + + + jboss:service=TransactionManager + + jboss:service=WebService + + jboss.jca:service=CachedConnectionManager + + jboss.ejb:service=EJBTimerService + + false + + + anonymous + + + + + + + org.jboss.security.plugins.JBossSecurityContext + + + jboss-ejb-policy + + SecurityDeployer + + + + + + + diff --git b/bootstrap/deployers/ejb3-deployers-beans.xml a/bootstrap/deployers/ejb3-deployers-beans.xml new file mode 100644 index 0000000..240a8dc --- /dev/null +++ a/bootstrap/deployers/ejb3-deployers-beans.xml @@ -0,0 +1,259 @@ + + + + + + + + + + + ejb3x + + + + + + + + + + false + + + + snmp-adaptor.jar + otherimages.jar + applet.jar + jcommon.jar + console-mgr-classes.jar + jfreechart.jar + juddi-service.jar + wsdl4j.jar + commons-collections.jar + commons-pool.jar + juddi.jar + commons-discovery.jar + uddi4j.jar + axis.jar + commons-dbcp.jar + jboss-juddiaxis.jar + trove.jar + javassist.jar + jboss-aop-jdk50.jar + jboss-aspect-library-jdk50.jar + ejb3-persistence.jar + commons-validator-1.1.3.jar + commons-collections.jar + commons-fileupload.jar + commons-pool.jar + hibernate-entitymanager.jar + jboss-ejb3x.jar + commons-digester-1.6.jar + cglib-2.1.1.jar + commons-discovery.jar + jboss-annotations-ejb3.jar + jaxen-1.1-beta-4.jar + hibernate-annotations.jar + commons-httpclient.jar + commons-logging.jar + commons-vfs.jar + hibernate3.jar + commons-logging-api.jar + asm.jar + asm-attrs.jar + commons-lang-2.0.jar + commons-beanutils.jar + jboss-ejb3.jar + dom4j.jar + commons-codec-1.2.jar + wsdl4j.jar + xmlsec.jar + jbossws.jar + jboss-bean-deployer.jar + jboss-microcontainer.jar + jboss-dependency.jar + jboss-container.jar + tomcat-coyote.jar + commons-collections.jar + myfaces.jar + jstl.jar + commons-digester-1.6.jar + myfaces-impl.jar + commons-beanutils.jar + myfaces-jsf-api.jar + commons-codec-1.2.jar + catalina-optional.jar + tomcat-util.jar + jasper-compiler.jar + commons-el.jar + jasper-compiler-jdt.jar + tomcat-http.jar + catalina-manager.jar + jasper-runtime.jar + tomcat55-service.jar + servlets-invoker.jar + catalina.jar + naming-resources.jar + servlets-default.jar + tomcat-ajp.jar + commons-modeler.jar + tomcat-apr.jar + servlets-webdav.jar + + + AspectLibrary + + + AspectLibrary + + + + car + + AspectLibrary + + + + car + AppClientParsingDeployer + + + + JBossClientParsingDeployer + + + + car + + + + AspectLibrary + AppClientScanningDeployer + + + + + + + + + + NoPassivationCache + org.jboss.ejb3.cache.NoPassivationCacheFactory + + + + SimpleStatefulCache + org.jboss.ejb3.cache.simple.SimpleStatefulCacheFactory + + + + StatefulTreeCache + org.jboss.ejb3.cache.tree.StatefulTreeCacheFactory + + + + + + + + + + + + + ThreadlocalPool + org.jboss.ejb3.pool.ThreadlocalPoolFactory + + + + StrictMaxPool + org.jboss.ejb3.pool.StrictMaxPoolFactory + + + + + + + + + + + + + RemoteProxyFactory + org.jboss.ejb3.remoting.RemoteProxyFactory + + + + IORFactory + org.jboss.ejb3.iiop.IORFactory + + + + ServiceRemoteProxyFactory + org.jboss.ejb3.service.ServiceRemoteProxyFactory + + + + + + StatefulRemoteProxyFactory + org.jboss.ejb3.stateful.StatefulRemoteProxyFactory + + + + + + StatelessRemoteProxyFactory + org.jboss.ejb3.stateless.StatelessRemoteProxyFactory + + + + + + + + + + + + + StatefulSessionFilePersistenceManager + org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManagerFactory + + + + + + + + + + car + + + diff --git b/bootstrap/deployers/jboss-aspect-library-beans.xml a/bootstrap/deployers/jboss-aspect-library-beans.xml new file mode 100644 index 0000000..7dc0b41 --- /dev/null +++ a/bootstrap/deployers/jboss-aspect-library-beans.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git b/bootstrap/deployers/jca-deployers-beans.xml a/bootstrap/deployers/jca-deployers-beans.xml new file mode 100644 index 0000000..d7f4b5f --- /dev/null +++ a/bootstrap/deployers/jca-deployers-beans.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + rar + + + + jboss.jca:service=WorkManager + jboss:service=TransactionManager + rar + + + + + + + + + + + + + + + + + + -ds.xml + jca-ds + + + + + + + + + + + + + + jca-ds + + + + + + + + + LocalTxDataSourceTemplate + A template for datasource *-ds.xml deployments + local-tx-datasource + + + + + + + + XADataSourceTemplate + A template for xa-datasource *-ds.xml deployments + xa-datasource + + + + + + + + NoTxDataSourceTemplate + A template for no-tx-datasource *-ds.xml deployments + no-tx-datasource + + + + + + + + TxConnectionFactoryTemplate + A template for tx-connection-factory *-ds.xml deployments + tx-connection-factory + + + + + + + + NoTxConnectionFactoryTemplate + A template for no-tx-connection-factory *-ds.xml deployments + no-tx-connection-factory + + + + diff --git b/bootstrap/deployers/metadata-beans.xml a/bootstrap/deployers/metadata-beans.xml new file mode 100644 index 0000000..566c100 --- /dev/null +++ a/bootstrap/deployers/metadata-beans.xml @@ -0,0 +1,237 @@ + + + + + + + + + + true + + + + + + + + + + + application + org.jboss.metadata.ear.spec.Ear14MetaData + + + application_1_2.dtd + org.jboss.metadata.ear.spec.Ear13DTDMetaData + + + application_1_3.dtd + org.jboss.metadata.ear.spec.Ear13DTDMetaData + + + application_1_4.xsd + org.jboss.metadata.ear.spec.Ear14MetaData + + + application_5.xsd + org.jboss.metadata.ear.spec.Ear50MetaData + + + + jboss-app + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_3_0.dtd + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_3_2.dtd + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_4_0.dtd + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_4_2.dtd + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_5_0.dtd + org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData + + + jboss-app_5_0.xsd + org.jboss.metadata.ear.jboss.JBoss50AppMetaData + + + + + application-client + org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData + + + application-client_1_2.dtd + org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData + + + application-client_1_3.dtd + org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData + + + application-client_1_4.xsd + org.jboss.metadata.client.spec.ApplicationClient14MetaData + + + application-client_5.xsd + org.jboss.metadata.client.spec.ApplicationClient5MetaData + + + + jboss-client + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_3_0.dtd + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_3_2.dtd + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_4_0.dtd + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_4_2.dtd + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_5_0.dtd + org.jboss.metadata.client.jboss.JBossClient5DTDMetaData + + + jboss-client_5_0.xsd + org.jboss.metadata.client.jboss.JBossClient5MetaData + + + + + ejb-jar + org.jboss.metadata.ejb.spec.EjbJar20MetaData + + + ejb-jar_1_1.dtd + org.jboss.metadata.ejb.spec.EjbJar1xMetaData + + + ejb-jar_2_0.dtd + org.jboss.metadata.ejb.spec.EjbJar20MetaData + + + ejb-jar_2_1.xsd + org.jboss.metadata.ejb.spec.EjbJar21MetaData + + + ejb-jar_3_0.xsd + org.jboss.metadata.ejb.spec.EjbJar30MetaData + + + + + jboss + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_3_0.dtd + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_3_2.dtd + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_4_0.dtd + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_4_2.dtd + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_5_0.dtd + org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData + + + jboss_5_0.xsd + org.jboss.metadata.ejb.jboss.JBoss50MetaData + + + + + web-app + org.jboss.metadata.web.spec.Web23MetaData + + + web-app_2_2.dtd + org.jboss.metadata.web.spec.Web23MetaData + + + web-app_2_3.dtd + org.jboss.metadata.web.spec.Web23MetaData + + + web-app_2_4.xsd + org.jboss.metadata.web.spec.Web24MetaData + + + web-app_2_5.xsd + org.jboss.metadata.web.spec.Web25MetaData + + + + jboss-web + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_3_0.dtd + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_3_2.dtd + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_4_0.dtd + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_4_2.dtd + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_5_0.dtd + org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData + + + jboss-web_5_0.xsd + org.jboss.metadata.web.jboss.JBoss50WebMetaData + + + + + + diff --git b/bootstrap/deployers/security-deployer-beans.xml a/bootstrap/deployers/security-deployer-beans.xml new file mode 100644 index 0000000..8ddd3e5 --- /dev/null +++ a/bootstrap/deployers/security-deployer-beans.xml @@ -0,0 +1,30 @@ + + + + + + security + + + xml + beans + deployer + rar + properties + + + + + + + + + + + + + + + diff --git b/bootstrap/jndi.properties a/bootstrap/jndi.properties new file mode 100644 index 0000000..d0d7033 --- /dev/null +++ a/bootstrap/jndi.properties @@ -0,0 +1,4 @@ +# DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING +# +java.naming.factory.initial=org.jboss.naming.JBossRemotingContextFactory +java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces diff --git b/bootstrap/log4j.xml a/bootstrap/log4j.xml new file mode 100644 index 0000000..65c0d01 --- /dev/null +++ a/bootstrap/log4j.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/build-dev.properties a/build-dev.properties new file mode 100644 index 0000000..fe6ef8f --- /dev/null +++ a/build-dev.properties @@ -0,0 +1,2 @@ +debug=true +action.dir=/WEB-INF/dev diff --git b/build-prod.properties a/build-prod.properties new file mode 100644 index 0000000..fdb4857 --- /dev/null +++ a/build-prod.properties @@ -0,0 +1,4 @@ +debug=false + + + diff --git b/build.properties a/build.properties new file mode 100644 index 0000000..f8d8dfb --- /dev/null +++ a/build.properties @@ -0,0 +1,2 @@ +jboss.home = /home/bernard/jboss-4.2.2.GA +jboss.domain = default diff --git b/build.xml a/build.xml new file mode 100644 index 0000000..31d292c --- /dev/null +++ a/build.xml @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jboss.home not set + + + + + jboss.home not set + + + + + + + + + + + + + + + + + + + + + jboss.home not set + + + + + + + + + + + + + + + + + + jboss.home not set + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You are using an incompatible JDK 6. Please use Sun JDK 6 Update 4 (1.6.0_04) or newer or use Open JDK 6. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/debug-jboss-seamTestInAction.launch a/debug-jboss-seamTestInAction.launch new file mode 100644 index 0000000..ab6afc6 --- /dev/null +++ a/debug-jboss-seamTestInAction.launch @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git b/deployed-jars.list a/deployed-jars.list new file mode 100644 index 0000000..48c8b3f --- /dev/null +++ a/deployed-jars.list @@ -0,0 +1,17 @@ +antlr-runtime.jar +commons-beanutils.jar +commons-digester.jar +core.jar +drools-compiler.jar +drools-core.jar +janino.jar +jboss-el.jar +jboss-seam.jar +jboss-seam-*.jar +jbpm-jpdl.jar +jsf-facelets.jar +jxl.jar +mvel14.jar +richfaces-api.jar +richfaces-impl.jar +richfaces-ui.jar diff --git b/explode.launch a/explode.launch new file mode 100644 index 0000000..fe5f2b5 --- /dev/null +++ a/explode.launch @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git b/hibernate-console.properties a/hibernate-console.properties new file mode 100644 index 0000000..b951984 --- /dev/null +++ a/hibernate-console.properties @@ -0,0 +1,10 @@ +#File used by hibernate tools to override and other container specific settings in persistence.xml +hibernate.connection.password= +hibernate.connection.username=sa +hibernate.connection.driver_class=org.hsqldb.jdbcDriver +hibernate.dialect=org.hibernate.dialect.HSQLDialect +hibernate.connection.url=jdbc:hsqldb:. + +hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider +hibernate.datasource= +hibernate.transaction.manager_lookup_class= diff --git b/lib/activation.jar a/lib/activation.jar new file mode 100644 index 0000000..53f82a1 Binary files /dev/null and a/lib/activation.jar differ diff --git b/lib/ant-antlr.jar a/lib/ant-antlr.jar new file mode 100644 index 0000000..5b127f9 Binary files /dev/null and a/lib/ant-antlr.jar differ diff --git b/lib/antlr-runtime.jar a/lib/antlr-runtime.jar new file mode 100644 index 0000000..a0d648e Binary files /dev/null and a/lib/antlr-runtime.jar differ diff --git b/lib/antlr.jar a/lib/antlr.jar new file mode 100644 index 0000000..3702b64 Binary files /dev/null and a/lib/antlr.jar differ diff --git b/lib/asm-attrs.jar a/lib/asm-attrs.jar new file mode 100644 index 0000000..f07bcb2 Binary files /dev/null and a/lib/asm-attrs.jar differ diff --git b/lib/asm.jar a/lib/asm.jar new file mode 100644 index 0000000..ee0c7cc Binary files /dev/null and a/lib/asm.jar differ diff --git b/lib/bsh.jar a/lib/bsh.jar new file mode 100644 index 0000000..36fe03d Binary files /dev/null and a/lib/bsh.jar differ diff --git b/lib/cglib-nodep.jar a/lib/cglib-nodep.jar new file mode 100644 index 0000000..e9b17eb Binary files /dev/null and a/lib/cglib-nodep.jar differ diff --git b/lib/cglib.jar a/lib/cglib.jar new file mode 100644 index 0000000..ddfbdb0 Binary files /dev/null and a/lib/cglib.jar differ diff --git b/lib/commons-beanutils.jar a/lib/commons-beanutils.jar new file mode 100644 index 0000000..b1b89c9 Binary files /dev/null and a/lib/commons-beanutils.jar differ diff --git b/lib/commons-collections.jar a/lib/commons-collections.jar new file mode 100644 index 0000000..75580be Binary files /dev/null and a/lib/commons-collections.jar differ diff --git b/lib/commons-digester.jar a/lib/commons-digester.jar new file mode 100644 index 0000000..1110f0a Binary files /dev/null and a/lib/commons-digester.jar differ diff --git b/lib/commons-httpclient.jar a/lib/commons-httpclient.jar new file mode 100644 index 0000000..7c59774 Binary files /dev/null and a/lib/commons-httpclient.jar differ diff --git b/lib/commons-io.jar a/lib/commons-io.jar new file mode 100644 index 0000000..7affdef Binary files /dev/null and a/lib/commons-io.jar differ diff --git b/lib/commons-lang.jar a/lib/commons-lang.jar new file mode 100644 index 0000000..c33b353 Binary files /dev/null and a/lib/commons-lang.jar differ diff --git b/lib/commons-logging.jar a/lib/commons-logging.jar new file mode 100644 index 0000000..1deef14 Binary files /dev/null and a/lib/commons-logging.jar differ diff --git b/lib/concurrent.jar a/lib/concurrent.jar new file mode 100644 index 0000000..b46fbf1 Binary files /dev/null and a/lib/concurrent.jar differ diff --git b/lib/core.jar a/lib/core.jar new file mode 100644 index 0000000..e95e554 Binary files /dev/null and a/lib/core.jar differ diff --git b/lib/dbunit.jar a/lib/dbunit.jar new file mode 100644 index 0000000..07ea11a Binary files /dev/null and a/lib/dbunit.jar differ diff --git b/lib/dom4j.jar a/lib/dom4j.jar new file mode 100644 index 0000000..f1a2a84 Binary files /dev/null and a/lib/dom4j.jar differ diff --git b/lib/drools-compiler.jar a/lib/drools-compiler.jar new file mode 100644 index 0000000..3a0a213 Binary files /dev/null and a/lib/drools-compiler.jar differ diff --git b/lib/drools-core.jar a/lib/drools-core.jar new file mode 100644 index 0000000..ffd4483 Binary files /dev/null and a/lib/drools-core.jar differ diff --git b/lib/ehcache.jar a/lib/ehcache.jar new file mode 100644 index 0000000..0f8cd2c Binary files /dev/null and a/lib/ehcache.jar differ diff --git b/lib/ejb-api.jar a/lib/ejb-api.jar new file mode 100644 index 0000000..e9a86d1 Binary files /dev/null and a/lib/ejb-api.jar differ diff --git b/lib/el-api.jar a/lib/el-api.jar new file mode 100644 index 0000000..cab1d89 Binary files /dev/null and a/lib/el-api.jar differ diff --git b/lib/groovy-all.jar a/lib/groovy-all.jar new file mode 100644 index 0000000..dfaf064 Binary files /dev/null and a/lib/groovy-all.jar differ diff --git b/lib/gwt-servlet.jar a/lib/gwt-servlet.jar new file mode 100644 index 0000000..b321060 Binary files /dev/null and a/lib/gwt-servlet.jar differ diff --git b/lib/hibernate-annotations.jar a/lib/hibernate-annotations.jar new file mode 100644 index 0000000..4f9e622 Binary files /dev/null and a/lib/hibernate-annotations.jar differ diff --git b/lib/hibernate-commons-annotations.jar a/lib/hibernate-commons-annotations.jar new file mode 100644 index 0000000..8284aa2 Binary files /dev/null and a/lib/hibernate-commons-annotations.jar differ diff --git b/lib/hibernate-entitymanager.jar a/lib/hibernate-entitymanager.jar new file mode 100644 index 0000000..9d23ea9 Binary files /dev/null and a/lib/hibernate-entitymanager.jar differ diff --git b/lib/hibernate-search.jar a/lib/hibernate-search.jar new file mode 100644 index 0000000..ec5628f Binary files /dev/null and a/lib/hibernate-search.jar differ diff --git b/lib/hibernate-validator.jar a/lib/hibernate-validator.jar new file mode 100644 index 0000000..c27183c Binary files /dev/null and a/lib/hibernate-validator.jar differ diff --git b/lib/hibernate.jar a/lib/hibernate.jar new file mode 100644 index 0000000..a7aae28 Binary files /dev/null and a/lib/hibernate.jar differ diff --git b/lib/hsqldb.jar a/lib/hsqldb.jar new file mode 100644 index 0000000..546a997 Binary files /dev/null and a/lib/hsqldb.jar differ diff --git b/lib/htmlparser.jar a/lib/htmlparser.jar new file mode 100644 index 0000000..2981ca5 Binary files /dev/null and a/lib/htmlparser.jar differ diff --git b/lib/itext-rtf.jar a/lib/itext-rtf.jar new file mode 100644 index 0000000..3f6f50a Binary files /dev/null and a/lib/itext-rtf.jar differ diff --git b/lib/itext.jar a/lib/itext.jar new file mode 100644 index 0000000..b81af6e Binary files /dev/null and a/lib/itext.jar differ diff --git b/lib/janino.jar a/lib/janino.jar new file mode 100644 index 0000000..94337db Binary files /dev/null and a/lib/janino.jar differ diff --git b/lib/javassist.jar a/lib/javassist.jar new file mode 100644 index 0000000..d8d76e3 Binary files /dev/null and a/lib/javassist.jar differ diff --git b/lib/jaxb-api.jar a/lib/jaxb-api.jar new file mode 100644 index 0000000..be3d6dc Binary files /dev/null and a/lib/jaxb-api.jar differ diff --git b/lib/jaxrs-api.jar a/lib/jaxrs-api.jar new file mode 100644 index 0000000..b695d75 Binary files /dev/null and a/lib/jaxrs-api.jar differ diff --git b/lib/jaxws-api.jar a/lib/jaxws-api.jar new file mode 100644 index 0000000..9f937c0 Binary files /dev/null and a/lib/jaxws-api.jar differ diff --git b/lib/jboss-cache.jar a/lib/jboss-cache.jar new file mode 100644 index 0000000..9a79285 Binary files /dev/null and a/lib/jboss-cache.jar differ diff --git b/lib/jboss-common-core.jar a/lib/jboss-common-core.jar new file mode 100644 index 0000000..540fb37 Binary files /dev/null and a/lib/jboss-common-core.jar differ diff --git b/lib/jboss-deployers-client-spi.jar a/lib/jboss-deployers-client-spi.jar new file mode 100644 index 0000000..e25a7ed Binary files /dev/null and a/lib/jboss-deployers-client-spi.jar differ diff --git b/lib/jboss-deployers-core-spi.jar a/lib/jboss-deployers-core-spi.jar new file mode 100644 index 0000000..d1e851a Binary files /dev/null and a/lib/jboss-deployers-core-spi.jar differ diff --git b/lib/jboss-el.jar a/lib/jboss-el.jar new file mode 100644 index 0000000..6300e42 Binary files /dev/null and a/lib/jboss-el.jar differ diff --git b/lib/jboss-embedded-api.jar a/lib/jboss-embedded-api.jar new file mode 100644 index 0000000..ef38eca Binary files /dev/null and a/lib/jboss-embedded-api.jar differ diff --git b/lib/jboss-jmx.jar a/lib/jboss-jmx.jar new file mode 100644 index 0000000..ce55527 Binary files /dev/null and a/lib/jboss-jmx.jar differ diff --git b/lib/jboss-logging-spi.jar a/lib/jboss-logging-spi.jar new file mode 100644 index 0000000..f6806f3 Binary files /dev/null and a/lib/jboss-logging-spi.jar differ diff --git b/lib/jboss-seam-debug.jar a/lib/jboss-seam-debug.jar new file mode 100644 index 0000000..6db290c Binary files /dev/null and a/lib/jboss-seam-debug.jar differ diff --git b/lib/jboss-seam-excel.jar a/lib/jboss-seam-excel.jar new file mode 100644 index 0000000..f84f786 Binary files /dev/null and a/lib/jboss-seam-excel.jar differ diff --git b/lib/jboss-seam-ioc.jar a/lib/jboss-seam-ioc.jar new file mode 100644 index 0000000..e5e8874 Binary files /dev/null and a/lib/jboss-seam-ioc.jar differ diff --git b/lib/jboss-seam-jul.jar a/lib/jboss-seam-jul.jar new file mode 100644 index 0000000..eb7a88c Binary files /dev/null and a/lib/jboss-seam-jul.jar differ diff --git b/lib/jboss-seam-mail.jar a/lib/jboss-seam-mail.jar new file mode 100644 index 0000000..024cdb0 Binary files /dev/null and a/lib/jboss-seam-mail.jar differ diff --git b/lib/jboss-seam-pdf.jar a/lib/jboss-seam-pdf.jar new file mode 100644 index 0000000..90feb42 Binary files /dev/null and a/lib/jboss-seam-pdf.jar differ diff --git b/lib/jboss-seam-remoting.jar a/lib/jboss-seam-remoting.jar new file mode 100644 index 0000000..67824b3 Binary files /dev/null and a/lib/jboss-seam-remoting.jar differ diff --git b/lib/jboss-seam-rss.jar a/lib/jboss-seam-rss.jar new file mode 100644 index 0000000..e0678f9 Binary files /dev/null and a/lib/jboss-seam-rss.jar differ diff --git b/lib/jboss-seam-ui.jar a/lib/jboss-seam-ui.jar new file mode 100644 index 0000000..8f07c1f Binary files /dev/null and a/lib/jboss-seam-ui.jar differ diff --git b/lib/jboss-seam.jar a/lib/jboss-seam.jar new file mode 100644 index 0000000..05086e8 Binary files /dev/null and a/lib/jboss-seam.jar differ diff --git b/lib/jboss-system.jar a/lib/jboss-system.jar new file mode 100644 index 0000000..2121fa5 Binary files /dev/null and a/lib/jboss-system.jar differ diff --git b/lib/jboss-vfs.jar a/lib/jboss-vfs.jar new file mode 100644 index 0000000..6bd6977 Binary files /dev/null and a/lib/jboss-vfs.jar differ diff --git b/lib/jbosscache-core.jar a/lib/jbosscache-core.jar new file mode 100644 index 0000000..35662b2 Binary files /dev/null and a/lib/jbosscache-core.jar differ diff --git b/lib/jbpm-jpdl.jar a/lib/jbpm-jpdl.jar new file mode 100644 index 0000000..6495b33 Binary files /dev/null and a/lib/jbpm-jpdl.jar differ diff --git b/lib/jcommon.jar a/lib/jcommon.jar new file mode 100644 index 0000000..ca4f04a Binary files /dev/null and a/lib/jcommon.jar differ diff --git b/lib/jfreechart.jar a/lib/jfreechart.jar new file mode 100644 index 0000000..819338b Binary files /dev/null and a/lib/jfreechart.jar differ diff --git b/lib/jgroups.jar a/lib/jgroups.jar new file mode 100644 index 0000000..affc350 Binary files /dev/null and a/lib/jgroups.jar differ diff --git b/lib/jms.jar a/lib/jms.jar new file mode 100644 index 0000000..2cc1a47 Binary files /dev/null and a/lib/jms.jar differ diff --git b/lib/joda-time.jar a/lib/joda-time.jar new file mode 100644 index 0000000..351ad69 Binary files /dev/null and a/lib/joda-time.jar differ diff --git b/lib/jsf-api.jar a/lib/jsf-api.jar new file mode 100644 index 0000000..a118993 Binary files /dev/null and a/lib/jsf-api.jar differ diff --git b/lib/jsf-facelets.jar a/lib/jsf-facelets.jar new file mode 100644 index 0000000..5830289 Binary files /dev/null and a/lib/jsf-facelets.jar differ diff --git b/lib/jsf-impl.jar a/lib/jsf-impl.jar new file mode 100644 index 0000000..9b01f37 Binary files /dev/null and a/lib/jsf-impl.jar differ diff --git b/lib/jsp-api.jar a/lib/jsp-api.jar new file mode 100644 index 0000000..c0195af Binary files /dev/null and a/lib/jsp-api.jar differ diff --git b/lib/jsr181-api.jar a/lib/jsr181-api.jar new file mode 100644 index 0000000..91538a7 Binary files /dev/null and a/lib/jsr181-api.jar differ diff --git b/lib/jsr250-api.jar a/lib/jsr250-api.jar new file mode 100644 index 0000000..c1f29bf Binary files /dev/null and a/lib/jsr250-api.jar differ diff --git b/lib/jta.jar a/lib/jta.jar new file mode 100644 index 0000000..e0822a9 Binary files /dev/null and a/lib/jta.jar differ diff --git b/lib/jxl.jar a/lib/jxl.jar new file mode 100644 index 0000000..e120802 Binary files /dev/null and a/lib/jxl.jar differ diff --git b/lib/log4j.jar a/lib/log4j.jar new file mode 100644 index 0000000..6251307 Binary files /dev/null and a/lib/log4j.jar differ diff --git b/lib/lucene-core.jar a/lib/lucene-core.jar new file mode 100644 index 0000000..78cfdea Binary files /dev/null and a/lib/lucene-core.jar differ diff --git b/lib/mail.jar a/lib/mail.jar new file mode 100644 index 0000000..fd4555b Binary files /dev/null and a/lib/mail.jar differ diff --git b/lib/meldware-mailapi.jar a/lib/meldware-mailapi.jar new file mode 100644 index 0000000..5c3efc5 Binary files /dev/null and a/lib/meldware-mailapi.jar differ diff --git b/lib/meldware-mailjmx.jar a/lib/meldware-mailjmx.jar new file mode 100644 index 0000000..95e75c0 Binary files /dev/null and a/lib/meldware-mailjmx.jar differ diff --git b/lib/mvel14.jar a/lib/mvel14.jar new file mode 100644 index 0000000..01eb1d5 Binary files /dev/null and a/lib/mvel14.jar differ diff --git b/lib/openid4java.jar a/lib/openid4java.jar new file mode 100644 index 0000000..b0e8540 Binary files /dev/null and a/lib/openid4java.jar differ diff --git b/lib/openxri-client.jar a/lib/openxri-client.jar new file mode 100644 index 0000000..e3468cb Binary files /dev/null and a/lib/openxri-client.jar differ diff --git b/lib/openxri-syntax.jar a/lib/openxri-syntax.jar new file mode 100644 index 0000000..0818ca0 Binary files /dev/null and a/lib/openxri-syntax.jar differ diff --git b/lib/persistence-api.jar a/lib/persistence-api.jar new file mode 100644 index 0000000..fe5dbcd Binary files /dev/null and a/lib/persistence-api.jar differ diff --git b/lib/portlet-api.jar a/lib/portlet-api.jar new file mode 100644 index 0000000..b1dabd0 Binary files /dev/null and a/lib/portlet-api.jar differ diff --git b/lib/quartz.jar a/lib/quartz.jar new file mode 100644 index 0000000..fb653cc Binary files /dev/null and a/lib/quartz.jar differ diff --git b/lib/resteasy-jaxrs.jar a/lib/resteasy-jaxrs.jar new file mode 100644 index 0000000..25cc853 Binary files /dev/null and a/lib/resteasy-jaxrs.jar differ diff --git b/lib/richfaces-api.jar a/lib/richfaces-api.jar new file mode 100644 index 0000000..3d1f9be Binary files /dev/null and a/lib/richfaces-api.jar differ diff --git b/lib/richfaces-impl.jar a/lib/richfaces-impl.jar new file mode 100644 index 0000000..1bf3ba2 Binary files /dev/null and a/lib/richfaces-impl.jar differ diff --git b/lib/richfaces-ui.jar a/lib/richfaces-ui.jar new file mode 100644 index 0000000..be134d7 Binary files /dev/null and a/lib/richfaces-ui.jar differ diff --git b/lib/saaj-api.jar a/lib/saaj-api.jar new file mode 100644 index 0000000..a75a492 Binary files /dev/null and a/lib/saaj-api.jar differ diff --git b/lib/servlet-api.jar a/lib/servlet-api.jar new file mode 100644 index 0000000..46ae9ec Binary files /dev/null and a/lib/servlet-api.jar differ diff --git b/lib/slf4j-api.jar a/lib/slf4j-api.jar new file mode 100644 index 0000000..b848e46 Binary files /dev/null and a/lib/slf4j-api.jar differ diff --git b/lib/slf4j-log4j12.jar a/lib/slf4j-log4j12.jar new file mode 100644 index 0000000..b47ecda Binary files /dev/null and a/lib/slf4j-log4j12.jar differ diff --git b/lib/spring.jar a/lib/spring.jar new file mode 100644 index 0000000..88d4581 Binary files /dev/null and a/lib/spring.jar differ diff --git b/lib/src/jboss-seam-debug-sources.jar a/lib/src/jboss-seam-debug-sources.jar new file mode 100644 index 0000000..df39954 Binary files /dev/null and a/lib/src/jboss-seam-debug-sources.jar differ diff --git b/lib/src/jboss-seam-excel-sources.jar a/lib/src/jboss-seam-excel-sources.jar new file mode 100644 index 0000000..706a5a7 Binary files /dev/null and a/lib/src/jboss-seam-excel-sources.jar differ diff --git b/lib/src/jboss-seam-ioc-sources.jar a/lib/src/jboss-seam-ioc-sources.jar new file mode 100644 index 0000000..7ad2170 Binary files /dev/null and a/lib/src/jboss-seam-ioc-sources.jar differ diff --git b/lib/src/jboss-seam-mail-sources.jar a/lib/src/jboss-seam-mail-sources.jar new file mode 100644 index 0000000..5397fd0 Binary files /dev/null and a/lib/src/jboss-seam-mail-sources.jar differ diff --git b/lib/src/jboss-seam-pdf-sources.jar a/lib/src/jboss-seam-pdf-sources.jar new file mode 100644 index 0000000..445476a Binary files /dev/null and a/lib/src/jboss-seam-pdf-sources.jar differ diff --git b/lib/src/jboss-seam-remoting-sources.jar a/lib/src/jboss-seam-remoting-sources.jar new file mode 100644 index 0000000..1cbba64 Binary files /dev/null and a/lib/src/jboss-seam-remoting-sources.jar differ diff --git b/lib/src/jboss-seam-resteasy-sources.jar a/lib/src/jboss-seam-resteasy-sources.jar new file mode 100644 index 0000000..77740f6 Binary files /dev/null and a/lib/src/jboss-seam-resteasy-sources.jar differ diff --git b/lib/src/jboss-seam-rss-sources.jar a/lib/src/jboss-seam-rss-sources.jar new file mode 100644 index 0000000..1f77196 Binary files /dev/null and a/lib/src/jboss-seam-rss-sources.jar differ diff --git b/lib/src/jboss-seam-sources.jar a/lib/src/jboss-seam-sources.jar new file mode 100644 index 0000000..81040fa Binary files /dev/null and a/lib/src/jboss-seam-sources.jar differ diff --git b/lib/src/jboss-seam-ui-sources.jar a/lib/src/jboss-seam-ui-sources.jar new file mode 100644 index 0000000..b4b689b Binary files /dev/null and a/lib/src/jboss-seam-ui-sources.jar differ diff --git b/lib/src/jboss-seam-wicket-sources.jar a/lib/src/jboss-seam-wicket-sources.jar new file mode 100644 index 0000000..83d7901 Binary files /dev/null and a/lib/src/jboss-seam-wicket-sources.jar differ diff --git b/lib/stax-api.jar a/lib/stax-api.jar new file mode 100644 index 0000000..015169d Binary files /dev/null and a/lib/stax-api.jar differ diff --git b/lib/test/hibernate-all.jar a/lib/test/hibernate-all.jar new file mode 100644 index 0000000..a603982 Binary files /dev/null and a/lib/test/hibernate-all.jar differ diff --git b/lib/test/jboss-embedded-all.jar a/lib/test/jboss-embedded-all.jar new file mode 100644 index 0000000..ff202bd Binary files /dev/null and a/lib/test/jboss-embedded-all.jar differ diff --git b/lib/test/thirdparty-all.jar a/lib/test/thirdparty-all.jar new file mode 100644 index 0000000..39c8370 Binary files /dev/null and a/lib/test/thirdparty-all.jar differ diff --git b/lib/testng.jar a/lib/testng.jar new file mode 100644 index 0000000..bdb5be5 Binary files /dev/null and a/lib/testng.jar differ diff --git b/lib/urlrewritefilter.jar a/lib/urlrewritefilter.jar new file mode 100644 index 0000000..f5dd4d8 Binary files /dev/null and a/lib/urlrewritefilter.jar differ diff --git b/lib/wicket-datetime.jar a/lib/wicket-datetime.jar new file mode 100644 index 0000000..3e0edde Binary files /dev/null and a/lib/wicket-datetime.jar differ diff --git b/lib/wicket-extensions.jar a/lib/wicket-extensions.jar new file mode 100644 index 0000000..5c71ec3 Binary files /dev/null and a/lib/wicket-extensions.jar differ diff --git b/lib/wicket-ioc.jar a/lib/wicket-ioc.jar new file mode 100644 index 0000000..4f91348 Binary files /dev/null and a/lib/wicket-ioc.jar differ diff --git b/lib/wicket.jar a/lib/wicket.jar new file mode 100644 index 0000000..15606a0 Binary files /dev/null and a/lib/wicket.jar differ diff --git b/lib/yarfraw.jar a/lib/yarfraw.jar new file mode 100644 index 0000000..7f9158c Binary files /dev/null and a/lib/yarfraw.jar differ diff --git b/resources/META-INF/orm.xml a/resources/META-INF/orm.xml new file mode 100644 index 0000000..200a088 --- /dev/null +++ a/resources/META-INF/orm.xml @@ -0,0 +1,18 @@ + + + + + diff --git b/resources/META-INF/persistence-dev-war.xml a/resources/META-INF/persistence-dev-war.xml new file mode 100644 index 0000000..b005346 --- /dev/null +++ a/resources/META-INF/persistence-dev-war.xml @@ -0,0 +1,20 @@ + + + + + + org.hibernate.ejb.HibernatePersistence + java:/seamTestInActionDatasource + + + + + + + + + + diff --git b/resources/META-INF/persistence-prod-war.xml a/resources/META-INF/persistence-prod-war.xml new file mode 100644 index 0000000..01331c2 --- /dev/null +++ a/resources/META-INF/persistence-prod-war.xml @@ -0,0 +1,19 @@ + + + + + + org.hibernate.ejb.HibernatePersistence + java:/seamTestInActionDatasource + + + + + + + + + diff --git b/resources/META-INF/persistence-test-war.xml a/resources/META-INF/persistence-test-war.xml new file mode 100644 index 0000000..3c12c51 --- /dev/null +++ a/resources/META-INF/persistence-test-war.xml @@ -0,0 +1,19 @@ + + + + + + org.hibernate.ejb.HibernatePersistence + java:/DefaultDS + + + + + + + + + diff --git b/resources/WEB-INF/components.xml a/resources/WEB-INF/components.xml new file mode 100644 index 0000000..0720462 --- /dev/null +++ a/resources/WEB-INF/components.xml @@ -0,0 +1,62 @@ + + + + + + + *.seam + + + + + + + + + + /security.drl + + + + + + + + + + + + + + + + + + + diff --git b/resources/WEB-INF/faces-config.xml a/resources/WEB-INF/faces-config.xml new file mode 100644 index 0000000..ec35afc --- /dev/null +++ a/resources/WEB-INF/faces-config.xml @@ -0,0 +1,20 @@ + + + + + + en + bg + de + en + fr + it + tr + + com.sun.facelets.FaceletViewHandler + + + diff --git b/resources/WEB-INF/jboss-web.xml a/resources/WEB-INF/jboss-web.xml new file mode 100644 index 0000000..9e1b9d3 --- /dev/null +++ a/resources/WEB-INF/jboss-web.xml @@ -0,0 +1,12 @@ + + + + + + seam.jboss.org:loader=seamTestInAction + java2ParentDelegation=false + + + diff --git b/resources/WEB-INF/pages.xml a/resources/WEB-INF/pages.xml new file mode 100644 index 0000000..7bc7f5b --- /dev/null +++ a/resources/WEB-INF/pages.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + #{s:hasRole('ADMIN')} + + + + + Record not found + + + + + + Record not found + + + + + + Duplicate record + + + + + + + Another user changed the same data, please try again + + + + + + You don't have permission to access this resource + + + + + + #{messages['org.jboss.seam.NotLoggedIn']} + + + + + + Your session has timed out, please try again + + + + + + + + + + Unexpected error, please try again + + + + diff --git b/resources/WEB-INF/web.xml a/resources/WEB-INF/web.xml new file mode 100644 index 0000000..c39c4af --- /dev/null +++ a/resources/WEB-INF/web.xml @@ -0,0 +1,98 @@ + + + + + + + org.richfaces.SKIN + emeraldTown + + + + + + org.richfaces.CONTROL_SKINNING + disable + + + + org.richfaces.CONTROL_SKINNING_CLASSES + disable + + + + + + org.richfaces.LoadStyleStrategy + ALL + + + + org.richfaces.LoadScriptStrategy + ALL + + + + + + org.jboss.seam.servlet.SeamListener + + + + Seam Filter + org.jboss.seam.servlet.SeamFilter + + + + Seam Filter + /* + + + + Seam Resource Servlet + org.jboss.seam.servlet.SeamResourceServlet + + + + Seam Resource Servlet + /seam/resource/* + + + + + + facelets.DEVELOPMENT + true + + + + + + javax.faces.DEFAULT_SUFFIX + .xhtml + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + Faces Servlet + *.seam + + + + Restrict raw XHTML Documents + + XHTML + *.xhtml + + + + + diff --git b/resources/components-dev.properties a/resources/components-dev.properties new file mode 100644 index 0000000..6c88b06 --- /dev/null +++ a/resources/components-dev.properties @@ -0,0 +1,3 @@ +# These properties are used to replace Ant-style tokens in the component descriptor (components.xml) at runtime. +jndiPattern=seamTestInAction/#{ejbName}/local +debug=true diff --git b/resources/components-prod.properties a/resources/components-prod.properties new file mode 100644 index 0000000..18b03c0 --- /dev/null +++ a/resources/components-prod.properties @@ -0,0 +1,3 @@ +# These properties are used to replace Ant-style tokens in the component descriptor (components.xml) at runtime. +jndiPattern=seamTestInAction/#{ejbName}/local +debug=false diff --git b/resources/components-test.properties a/resources/components-test.properties new file mode 100644 index 0000000..a3afd4e --- /dev/null +++ a/resources/components-test.properties @@ -0,0 +1,3 @@ +# These properties are used to replace Ant-style tokens in the component descriptor (components.xml) at runtime. +jndiPattern=#{ejbName}/local +debug=true diff --git b/resources/import-dev.sql a/resources/import-dev.sql new file mode 100644 index 0000000..13399a6 --- /dev/null +++ a/resources/import-dev.sql @@ -0,0 +1,5 @@ +INSERT INTO TAG (ID,VERSION,NAME) VALUES (1,0,'Sport'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (2,0,'Business'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (3,0,'Politics'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (4,0,'Pets'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (5,0,'People'); \ No newline at end of file diff --git b/resources/import-prod.sql a/resources/import-prod.sql new file mode 100644 index 0000000..13399a6 --- /dev/null +++ a/resources/import-prod.sql @@ -0,0 +1,5 @@ +INSERT INTO TAG (ID,VERSION,NAME) VALUES (1,0,'Sport'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (2,0,'Business'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (3,0,'Politics'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (4,0,'Pets'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (5,0,'People'); \ No newline at end of file diff --git b/resources/import-test.sql a/resources/import-test.sql new file mode 100644 index 0000000..13399a6 --- /dev/null +++ a/resources/import-test.sql @@ -0,0 +1,5 @@ +INSERT INTO TAG (ID,VERSION,NAME) VALUES (1,0,'Sport'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (2,0,'Business'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (3,0,'Politics'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (4,0,'Pets'); +INSERT INTO TAG (ID,VERSION,NAME) VALUES (5,0,'People'); \ No newline at end of file diff --git b/resources/messages_bg.properties a/resources/messages_bg.properties new file mode 100644 index 0000000..3e40603 --- /dev/null +++ a/resources/messages_bg.properties @@ -0,0 +1,89 @@ +down = \u2193 + +javax.faces.component.UIInput.CONVERSION = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043D\u0430 \u043A\u044A\u043C \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u0438\u044F \u0442\u0438\u043F +javax.faces.component.UIInput.REQUIRED = \u043F\u043E\u043B\u0435\u0442\u043E \u0435 \u0437\u0430\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E +javax.faces.component.UIInput.UPDATE = \u0432\u044A\u0437\u043D\u0438\u043A\u043D\u0430\u043B\u0430 \u0435 \u0433\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0430\u0442\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F +javax.faces.component.UISelectMany.INVALID = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 +javax.faces.component.UISelectOne.INVALID = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 +javax.faces.converter.BigDecimalConverter.DECIMAL = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.BigDecimalConverter.DECIMAL_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E \u0441\u044A\u0441 \u0437\u043D\u0430\u043A, \u0441\u044A\u0441\u0442\u043E\u044F\u0449\u043E \u0441\u0435 \u043E\u0442 \u043D\u0443\u043B\u0430 \u0438\u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0446\u0438\u0444\u0440\u0438, \u0441\u043B\u0435\u0434\u0432\u0430\u043D\u043E \u043F\u043E \u0438\u0437\u0431\u043E\u0440 \u043E\u0442 \u0434\u0435\u0441\u0435\u0442\u0438\u0447\u043D\u0430 \u0437\u0430\u043F\u0435\u0442\u0430\u044F \u0438 \u0434\u0440\u043E\u0431\u043D\u0430 \u0447\u0430\u0441\u0442, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E \u0441\u044A\u0441 \u0437\u043D\u0430\u043A, \u0441\u044A\u0441\u0442\u043E\u044F\u0449\u043E \u0441\u0435 \u043E\u0442 \u043D\u0443\u043B\u0430 \u0438\u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0446\u0438\u0444\u0440\u0438 +javax.faces.converter.BooleanConverter.BOOLEAN = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 'true' \u0438\u043B\u0438 'false' +javax.faces.converter.BooleanConverter.BOOLEAN_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 'true' \u0438\u043B\u0438 'false' (\u0432\u0441\u044F\u043A\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u0430 \u043E\u0442 'true' \u0449\u0435 \u0441\u0435 \u0441\u043C\u044F\u0442\u0430 \u0437\u0430 'false') +javax.faces.converter.ByteConverter.BYTE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0434\u0436\u0443 0 \u0438 255 +javax.faces.converter.ByteConverter.BYTE_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0434\u0436\u0443 0 \u0438 255 +javax.faces.converter.CharacterConverter.CHARACTER = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0437\u043D\u0430\u043A +javax.faces.converter.CharacterConverter.CHARACTER_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0432\u0430\u043B\u0438\u0434\u0435\u043D ASCII \u0437\u043D\u0430\u043A +javax.faces.converter.DateTimeConverter.DATE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0434\u0430\u0442\u0430 +javax.faces.converter.DateTimeConverter.DATETIME = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0434\u0430\u0442\u0430 \u0438 \u0447\u0430\u0441 +javax.faces.converter.DateTimeConverter.DATETIME_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0434\u0430\u0442\u0430 \u0438 \u0447\u0430\u0441, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.DateTimeConverter.DATE_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0434\u0430\u0442\u0430, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0437\u0430\u0434\u0430\u0434\u0435\u043D \u043E\u0431\u0440\u0430\u0437\u0435\u0446 \u0438\u043B\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 type, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 +javax.faces.converter.DateTimeConverter.TIME = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043E\u0442 \u0442\u0438\u043F \u0447\u0430\u0441 +javax.faces.converter.DateTimeConverter.TIME_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043E\u0442 \u0442\u0438\u043F \u0447\u0430\u0441, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.DoubleConverter.DOUBLE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.DoubleConverter.DOUBLE_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0436\u0434\u0443 4.9E-324 \u0438 1.7976931348623157E308 +javax.faces.converter.EnumConverter.ENUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430 \u0434\u043E \u0438\u0437\u0431\u0440\u043E\u0435\u043D \u0442\u0438\u043F +javax.faces.converter.EnumConverter.ENUM_NO_CLASS = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430 \u043E\u0442 \u0438\u043B\u0438 \u0434\u043E \u0438\u0437\u0431\u0440\u043E\u0435\u043D \u0442\u0438\u043F, \u043D\u043E \u043D\u0435 \u0435 \u043F\u043E\u0434\u0430\u0434\u0435\u043D \u043A\u043B\u0430\u0441 \u043E\u0442 \u0442\u0430\u043A\u044A\u0432 \u0442\u0438\u043F +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430 \u043E\u0442 \u0438\u043B\u0438 \u0434\u043E \u0438\u0437\u0431\u0440\u043E\u0435\u043D \u0442\u0438\u043F, \u043D\u043E \u043D\u0435 \u0435 \u043F\u043E\u0434\u0430\u0434\u0435\u043D \u043A\u043B\u0430\u0441 \u043E\u0442 \u0442\u0430\u043A\u044A\u0432 \u0442\u0438\u043F +javax.faces.converter.EnumConverter.ENUM_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430 \u043E\u0442 \u0438\u043B\u0438 \u0434\u043E \u0438\u0437\u0431\u0440\u043E\u0435\u043D \u0442\u0438\u043F, \u043A\u043E\u0439\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430 \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430\u0442\u0430 {1} +javax.faces.converter.FloatConverter.FLOAT = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.FloatConverter.FLOAT_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0436\u0434\u0443 1.4E-45 \u0438 3.4028235E38 +javax.faces.converter.IntegerConverter.INTEGER = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.IntegerConverter.INTEGER_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0436\u0434\u0443 -2147483648 \u0438 2147483647 +javax.faces.converter.LongConverter.LONG = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.LongConverter.LONG_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0436\u0434\u0443 -9223372036854775808 \u0438 9223372036854775807 +javax.faces.converter.NumberConverter.CURRENCY = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0441\u0443\u043C\u0430 \u0432\u044A\u0432 \u0432\u0430\u043B\u0443\u0442\u0430 +javax.faces.converter.NumberConverter.CURRENCY_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0441\u0443\u043C\u0430 \u0432\u044A\u0432 \u0432\u0430\u043B\u0443\u0442\u0430, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.NumberConverter.NUMBER = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.NumberConverter.NUMBER_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.NumberConverter.PATTERN = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.NumberConverter.PATTERN_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.NumberConverter.PERCENT = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u043E\u0446\u0435\u043D\u0442 +javax.faces.converter.NumberConverter.PERCENT_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u043E\u0446\u0435\u043D\u0442, \u043D\u0430\u043F\u0440. {1} +javax.faces.converter.STRING = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u0435\u0432\u044A\u0440\u043D\u0430\u0442\u0430 \u0432 \u043D\u0438\u0437 \u043E\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u0438 +javax.faces.converter.ShortConverter.SHORT = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E +javax.faces.converter.ShortConverter.SHORT_detail = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E \u043C\u0435\u0436\u0434\u0443 -32768 \u0438 32767 +javax.faces.validator.DoubleRangeValidator.MAXIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u043C\u0430\u043B\u043A\u0430 \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u0430 \u043D\u0430 {0} +javax.faces.validator.DoubleRangeValidator.MINIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u0433\u043E\u043B\u044F\u043C\u0430 \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u0430 \u043D\u0430 {0} +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043C\u0435\u0436\u0434\u0443 {0} \u0438 {1} +javax.faces.validator.DoubleRangeValidator.TYPE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0435 \u0435 \u043E\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u0438\u044F \u0432\u0438\u0434 +javax.faces.validator.LengthValidator.MAXIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043D\u0435 \u043F\u043E-\u0434\u044A\u043B\u0433\u0430 \u043E\u0442 {0} \u0437\u043D\u0430\u043A\u0430 +javax.faces.validator.LengthValidator.MINIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u0434\u044A\u043B\u0433\u0430 \u043E\u0442 {0} \u0437\u043D\u0430\u043A\u0430 +javax.faces.validator.LongRangeValidator.MAXIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u043C\u0430\u043B\u043A\u0430 \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u0430 \u043D\u0430 {0} +javax.faces.validator.LongRangeValidator.MINIMUM = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u0433\u043E\u043B\u044F\u043C\u0430 \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u0430 \u043D\u0430 {0} +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043C\u0435\u0436\u0434\u0443 {0} \u0438 {1} +javax.faces.validator.LongRangeValidator.TYPE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0435 \u0435 \u043E\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u0438\u044F \u0432\u0438\u0434 +javax.faces.validator.NOT_IN_RANGE = \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043C\u0435\u0436\u0434\u0443 {0} \u0438 {1} + +left = \u2039 + +org.jboss.seam.IllegalNavigation = \u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F +org.jboss.seam.NoConversation = \u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044A\u0442 \u0435 \u043F\u0440\u0438\u043A\u043B\u044E\u0447\u0438\u043B, \u0438\u0437\u0442\u0435\u043A\u043B\u043E \u043C\u0443 \u0435 \u0432\u0440\u0435\u043C\u0435\u0442\u043E \u0438\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0432\u0430 \u0434\u0440\u0443\u0433\u0430 \u0437\u0430\u044F\u0432\u043A\u0430 +org.jboss.seam.ProcessEnded = \u041F\u0440\u043E\u0446\u0435\u0441 #0 \u0435 \u043F\u0440\u0438\u043A\u043B\u044E\u0447\u0438\u043B +org.jboss.seam.ProcessNotFound = \u041F\u0440\u043E\u0446\u0435\u0441 #0 \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D +org.jboss.seam.TaskEnded = \u0417\u0430\u0434\u0430\u0447\u0430 #0 \u0435 \u043F\u0440\u0438\u043A\u043B\u044E\u0447\u0438\u043B\u0430 +org.jboss.seam.TaskNotFound = \u0417\u0430\u0434\u0430\u0447\u0430 #0 \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0430 +org.jboss.seam.TransactionFailed = \u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F \u043D\u0435 \u0435 \u0443\u0441\u043F\u044F\u043B\u0430 +org.jboss.seam.NotLoggedIn = \u041C\u043E\u043B\u044F \u043F\u044A\u0440\u0432\u043E \u0441\u0435 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0439\u0442\u0435 + +org.jboss.seam.loginFailed = \u041D\u0435\u0443\u0441\u043F\u0435\u0448\u0435\u043D \u0432\u0445\u043E\u0434 +org.jboss.seam.loginSuccessful = \u0417\u0434\u0440\u0430\u0432\u0435\u0439, #0 + +right = \u203A + +up = \u2191 + +validator.assertFalse = \u0433\u0440\u0435\u0448\u043A\u0438 \u043F\u0440\u0438 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F +validator.assertTrue = \u0433\u0440\u0435\u0448\u043A\u0438 \u043F\u0440\u0438 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F +validator.email = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0432\u0430\u043B\u0438\u0434\u0435\u043D e-mail \u0430\u0434\u0440\u0435\u0441 +validator.future = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0431\u044A\u0434\u0435\u0449\u0430 \u0434\u0430\u0442\u0430 +validator.length = \u0434\u044A\u043B\u0436\u0438\u043D\u0430\u0442\u0430 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043C\u0435\u0436\u0434\u0443 {min} \u0438 {max} +validator.max = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u043C\u0430\u043B\u043A\u043E \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u043E \u043D\u0430 {value} +validator.min = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u043E-\u0433\u043E\u043B\u044F\u043C\u043E \u0438\u043B\u0438 \u0440\u0430\u0432\u043D\u043E \u043D\u0430 {value} +validator.notNull = \u0435 \u0437\u0430\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E +validator.past = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043C\u0438\u043D\u0430\u043B\u0430 \u0434\u0430\u0442\u0430\u0442\u0430 +validator.pattern = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430 \u043D\u0430 "{regex}" +validator.range = \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043C\u0435\u0436\u0434\u0443 {min} \u0438 {max} +validator.size = \u0440\u0430\u0437\u043C\u0435\u0440\u044A\u0442 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043C\u0435\u0436\u0434\u0443 {min} \u0438 {max} diff --git b/resources/messages_de.properties a/resources/messages_de.properties new file mode 100644 index 0000000..9c57c8d --- /dev/null +++ a/resources/messages_de.properties @@ -0,0 +1,88 @@ +up=\u2191 +down=\u2193 +left=\u2039 +right=\u203A + +validator.assertFalse=Validierung fehlgeschlagen +validator.assertTrue=Validierung fehlgeschlagen +validator.future=muss einem zuk\u00FCnfitigen Datum entsprechen +validator.length=die L\u00E4nge muss zwischen {min} und {max} liegen +validator.max=muss kleiner oder gleich {value} sein +validator.min=muss gr\u00F6\u00DFer oder gleich {value} sein +validator.notNull=darf nicht leer sein +validator.past=muss einem vergangenen Datum entsprechen +validator.pattern=muss dem regul\u00E4ren Ausdruck "{regex}" entsprechen +validator.range=muss im Wertebereich von {min} bis {max} liegen +validator.size=die Gr\u00F6\u00DFe muss zischen {min} und {max} liegen +validator.email=muss einer wohlgeformten E-Mailadresse entsprechen + +org.jboss.seam.loginFailed=Anmeldung fehlgeschlagen +org.jboss.seam.loginSuccessful=Willkommen, #0! + +org.jboss.seam.TransactionFailed=Transaktion fehlgeschlagen +org.jboss.seam.NoConversation=Der Vorgang wurde bereits beendet, verarbeitet eine andere Abfrage oder ergab eine Zeit\u00FCberschreitung +org.jboss.seam.IllegalNavigation=Unzul\u00E4ssige Navigation +org.jboss.seam.ProcessEnded=Prozess #0 wurde bereits beendet +org.jboss.seam.ProcessNotFound=Prozess #0 nicht gefunden +org.jboss.seam.TaskEnded=Funktion #0 wurde bereits beendet +org.jboss.seam.TaskNotFound=Funktion #0 nicht gefunden +org.jboss.seam.NotLoggedIn=Bitte melden Sie sich zun\u00E4chst an + +javax.faces.component.UIInput.CONVERSION=Wert konnte nicht in den erwarteten Typ umgewandelt werden +javax.faces.component.UIInput.REQUIRED=Wert erforderlich +javax.faces.component.UIInput.UPDATE=ein Fehler ist bei der Verarbeitung der von Ihnen gesendeten Daten aufgetreten +javax.faces.component.UISelectOne.INVALID=Wert ung\u00FCltig +javax.faces.component.UISelectMany.INVALID=Wert ung\u00FCltig + +javax.faces.converter.BigDecimalConverter.DECIMAL = ''{0}'' muss eine Dezimalzahl sein. +javax.faces.converter.BigDecimalConverter.DECIMAL_detail = ''{0}'' muss eine Dezimalzahl aus keinem oder mehr Zeichen gefolgt von einem optionalen Punkt und den Nachkommastellen sein. Beispiel: {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. Beispiel: {1} +javax.faces.converter.BooleanConverter.BOOLEAN = ''{0}'' muss 'true' oder 'false' sein. +javax.faces.converter.BooleanConverter.BOOLEAN_detail = ''{0}'' muss 'true' oder 'false' sein. Jeder Wert au\u00DFer 'true' wird als 'false' interpretiert. +javax.faces.converter.ByteConverter.BYTE = ''{0}'' muss eine Zahl zwischen 0 und 255 sein. +javax.faces.converter.ByteConverter.BYTE_detail = ''{0}'' muss eine Zahl zwischen 0 und 255 sein. Beispiel: {1} +javax.faces.converter.CharacterConverter.CHARACTER = ''{0}'' muss ein g\u00FCltiges Zeichen sein. +javax.faces.converter.CharacterConverter.CHARACTER_detail = ''{0}'' muss ein g\u00FCltiges ASCII Zeichen sein. +javax.faces.converter.DateTimeConverter.DATE = ''{0}'' konnte nicht als Datum erkannt werden. +javax.faces.converter.DateTimeConverter.DATE_detail = ''{0}'' konnte nicht als Datum erkannt werden. Beispiel: {1} +javax.faces.converter.DateTimeConverter.TIME = ''{0}'' konnte nicht als Zeit erkannt werden. +javax.faces.converter.DateTimeConverter.TIME_detail = ''{0}'' konnte nicht als Zeit erkannt werden. Beispiel: {1} +javax.faces.converter.DateTimeConverter.DATETIME = ''{0}'' konnte nicht als Datum und Zeit erkannt werden. +javax.faces.converter.DateTimeConverter.DATETIME_detail = ''{0}'' konnte nicht als Datum und Zeit erkannt werden. Beispiel: {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE = Ein 'pattern' oder 'type' Attribut muss angegeben werden um den Wert ''{0}'' zu konvertieren. +javax.faces.converter.DoubleConverter.DOUBLE = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.DoubleConverter.DOUBLE_detail = ''{0}'' muss eine Zahl zwischen 4.9E-324 und 1.7976931348623157E308 sein. Beispiel: {1} +javax.faces.converter.EnumConverter.ENUM = ''{0}'' muss in eine Enumeration konvertierbar sein. +javax.faces.converter.EnumConverter.ENUM_detail = ''{0}'' muss in eine Enumeration konvertierbar sein, welche die Konstante ''{1}'' enth\u00E4lt. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS = ''{0}'' muss in eine Enumeration konvertierbar sein, aber es wurde keine Klasse des Typs Enum bereitgestellt. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = ''{0}'' muss in eine Enumeration konvertierbar sein, aber es wurde keine Klasse des Typs Enum bereitgestellt. +javax.faces.converter.FloatConverter.FLOAT = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.FloatConverter.FLOAT_detail = ''{0}'' muss eine Zahl zwischen 1.4E-45 und 3.4028235E38 sein. Beispiel: {1} +javax.faces.converter.IntegerConverter.INTEGER = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.IntegerConverter.INTEGER_detail = ''{0}'' muss eine Zahl zwischen -2147483648 und 2147483647 sein. Beispiel: {1} +javax.faces.converter.LongConverter.LONG = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.LongConverter.LONG_detail = ''{0}'' muss eine Zahl zwischen -9223372036854775808 und 9223372036854775807 sein. Beispiel: {1} +javax.faces.converter.NumberConverter.CURRENCY = ''{0}'' konnte nicht als ein Geldbetrag erkannt werden. +javax.faces.converter.NumberConverter.CURRENCY_detail = ''{0}'' konnte nicht als ein Geldbetrag erkannt werden. Beispiel: {1} +javax.faces.converter.NumberConverter.PERCENT = ''{0}'' konnte nicht als ein Prozentanteil erkannt werden. +javax.faces.converter.NumberConverter.PERCENT_detail = ''{0}'' konnte nicht als ein Prozentanteil erkannt werden. Beispiel: {1} +javax.faces.converter.NumberConverter.NUMBER = ''{0}'' ist keine Zahl. +javax.faces.converter.NumberConverter.NUMBER_detail = ''{0}'' ist keine Zahl. Beispiel: {1} +javax.faces.converter.NumberConverter.PATTERN = ''{0}'' ist kein Zahlmuster. +javax.faces.converter.NumberConverter.PATTERN_detail = ''{0}'' ist kein Zahlmuster. Beispiel: {1} +javax.faces.converter.ShortConverter.SHORT = ''{0}'' muss eine Zahl aus ein oder mehr Ziffern sein. +javax.faces.converter.ShortConverter.SHORT_detail = ''{0}'' muss eine Zahl zwischen -32768 und 32767 sein. Beispiel: {1} +javax.faces.converter.STRING = Konnte ''{0}'' nicht in eine Zeichenkette konvertieren. + +javax.faces.validator.NOT_IN_RANGE = Validierungsfehler: Der Wert liegt nicht im erwarteten Wertebereich von {0} bis {1}. +javax.faces.validator.DoubleRangeValidator.MAXIMUM = Validierungsfehler: Der Wert ist gr\u00F6\u00DFer als das erlaubte Maximum von ''{0}'' +javax.faces.validator.DoubleRangeValidator.MINIMUM = Validierungsfehler: Der Wert ist kleiner als das erlaubte Minimum von ''{0}'' +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = Validierungsfehler: Der Wert ist nicht zwischen den erwarteten Werten von {0} und {1} +javax.faces.validator.DoubleRangeValidator.TYPE = Validierungsfehler: Der Wert ist nicht vom korrekten Typ +javax.faces.validator.LengthValidator.MAXIMUM = Validierungsfehler: Der Wert ist gr\u00F6\u00DFer als das erlaubte Maximum von ''{0}'' +javax.faces.validator.LengthValidator.MINIMUM = Validierungsfehler: Der Wert ist kleiner als das erlaubte Minimum von ''{0}'' +javax.faces.validator.LongRangeValidator.MAXIMUM = Validierungsfehler: Der Wert ist gr\u00F6\u00DFer als das erlaubte Maximum von ''{0}'' +javax.faces.validator.LongRangeValidator.MINIMUM = Validation Error: Der Wert ist kleiner als das erlaubte Minimum von ''{0}'' +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = Validierungsfehler: Der Wert ist nicht zwischen den erwarteten Werten von {0} und {1}. +javax.faces.validator.LongRangeValidator.TYPE = Validierungsfehler: Der Wert ist nicht vom korrekten Typ. diff --git b/resources/messages_en.properties a/resources/messages_en.properties new file mode 100644 index 0000000..b376f40 --- /dev/null +++ a/resources/messages_en.properties @@ -0,0 +1,103 @@ +tag=Tag +tag.id=Id +tag.name=Name +tag.version=Version +tagList=Tag list + +CRUD.create=Create +CRUD.save=Save +CRUD.cancel=Cancel +CRUD.done=Done +CRUD.edit=Edit +CRUD.remove=Remove + +up=\u2191 +down=\u2193 +left=\u2039 +right=\u203A + +validator.assertFalse=validation failed +validator.assertTrue=validation failed +validator.future=must be a future date +validator.length=length must be between {min} and {max} +validator.max=must be less than or equal to {value} +validator.min=must be greater than or equal to {value} +validator.notNull=may not be null +validator.past=must be a past date +validator.pattern=must match "{regex}" +validator.range=must be between {min} and {max} +validator.size=size must be between {min} and {max} +validator.email=must be a well-formed email address + +org.jboss.seam.loginFailed=Login failed +org.jboss.seam.loginSuccessful=Welcome, #0! + +org.jboss.seam.TransactionFailed=Transaction failed +org.jboss.seam.NoConversation=The conversation ended, timed out or was processing another request +org.jboss.seam.IllegalNavigation=Illegal navigation +org.jboss.seam.ProcessEnded=Process #0 already ended +org.jboss.seam.ProcessNotFound=Process #0 not found +org.jboss.seam.TaskEnded=Task #0 already ended +org.jboss.seam.TaskNotFound=Task #0 not found +org.jboss.seam.NotLoggedIn=Please log in first + +javax.faces.component.UIInput.CONVERSION=value could not be converted to the expected type +javax.faces.component.UIInput.REQUIRED=value is required +javax.faces.component.UIInput.UPDATE=an error occurred when processing your submitted information +javax.faces.component.UISelectOne.INVALID=value is not valid +javax.faces.component.UISelectMany.INVALID=value is not valid + +javax.faces.converter.BigDecimalConverter.DECIMAL=value must be a number +javax.faces.converter.BigDecimalConverter.DECIMAL_detail=value must be a signed decimal number consisting of zero or more digits, optionally followed by a decimal point and fraction, eg. {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=value must be an integer +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=value must be a signed integer number consisting of zero or more digits +javax.faces.converter.BooleanConverter.BOOLEAN=value must be true or false +javax.faces.converter.BooleanConverter.BOOLEAN_detail=value must be true or false (any value other than true will evaluate to false) +javax.faces.converter.ByteConverter.BYTE=value must be a number between 0 and 255 +javax.faces.converter.ByteConverter.BYTE_detail=value must be a number between 0 and 255 +javax.faces.converter.CharacterConverter.CHARACTER=value must be a character +javax.faces.converter.CharacterConverter.CHARACTER_detail=value must be a valid ASCII character +javax.faces.converter.DateTimeConverter.DATE=value must be a date +javax.faces.converter.DateTimeConverter.DATE_detail=value must be a date, eg. {1} +javax.faces.converter.DateTimeConverter.TIME=value must be a time +javax.faces.converter.DateTimeConverter.TIME_detail=value must be a time, eg. {1} +javax.faces.converter.DateTimeConverter.DATETIME=value must be a date and time +javax.faces.converter.DateTimeConverter.DATETIME_detail=value must be a date and time, eg. {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=a pattern or type attribute must be specified to convert the value +javax.faces.converter.DoubleConverter.DOUBLE=value must be a number +javax.faces.converter.DoubleConverter.DOUBLE_detail=value must be a number between 4.9E-324 and 1.7976931348623157E308 +javax.faces.converter.EnumConverter.ENUM=value must be convertible to an enum +javax.faces.converter.EnumConverter.ENUM_detail=value must be convertible to an enum or from the enum that contains the constant {1} +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=value must be convertible to an enum or from the enum, but no enum class provided +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=value must be convertible to an enum or from the enum, but no enum class provided +javax.faces.converter.FloatConverter.FLOAT=value must be a number +javax.faces.converter.FloatConverter.FLOAT_detail=value must be a number between 1.4E-45 and 3.4028235E38 +javax.faces.converter.IntegerConverter.INTEGER=value must be an integer +javax.faces.converter.IntegerConverter.INTEGER_detail=value must be an integer number between -2147483648 and 2147483647 +javax.faces.converter.LongConverter.LONG=value must be an integer +javax.faces.converter.LongConverter.LONG_detail=value must be an integer number between -9223372036854775808 and 9223372036854775807 +javax.faces.converter.NumberConverter.CURRENCY=value must be a currency amount +javax.faces.converter.NumberConverter.CURRENCY_detail=value must be a currency amount, eg. {1} +javax.faces.converter.NumberConverter.PERCENT=value must be a percentage amount +javax.faces.converter.NumberConverter.PERCENT_detail=value must be a percentage amount, eg. {1} +javax.faces.converter.NumberConverter.NUMBER=value must be a number +javax.faces.converter.NumberConverter.NUMBER_detail=value must be a number +javax.faces.converter.NumberConverter.PATTERN=value must be a number +javax.faces.converter.NumberConverter.PATTERN_detail=value must be a number +javax.faces.converter.ShortConverter.SHORT=value must be an integer +javax.faces.converter.ShortConverter.SHORT_detail=value must be an integer number between -32768 and 32767 + +javax.faces.validator.DoubleRangeValidator.MAXIMUM=value must be less than or equal to {0} +javax.faces.validator.DoubleRangeValidator.MINIMUM=value must be greater than or equal to {0} +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE=value must be between {0} and {1} +javax.faces.validator.DoubleRangeValidator.TYPE=value is not of the correct type +javax.faces.validator.LengthValidator.MAXIMUM=value must be shorter than or equal to {0} characters +javax.faces.validator.LengthValidator.MINIMUM=value must be longer than or equal to {0} characters +javax.faces.validator.LongRangeValidator.MAXIMUM=value must be less than or equal to {0} +javax.faces.validator.LongRangeValidator.MINIMUM=value must be greater than or equal to {0} +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=value must be between {0} and {1} +javax.faces.validator.LongRangeValidator.TYPE=value is not of the correct type + +javax.faces.validator.NOT_IN_RANGE=value must be between {0} and {1} +javax.faces.converter.STRING=value could not be converted to a string + diff --git b/resources/messages_fr.properties a/resources/messages_fr.properties new file mode 100644 index 0000000..48b7f0f --- /dev/null +++ a/resources/messages_fr.properties @@ -0,0 +1,98 @@ +up=\u2191 +down=\u2193 +left=\u2039 +right=\u203A + +javax.persistence.EntityNotFoundException = Entité introuvable +javax.persistence.OptimisticLockException = Un autre utilisateur a modifié les mêmes données. Veuillez essayer de nouveau. + +validator.assertFalse = La validation a échoué +validator.assertTrue = La validation a échoué +validator.future = doit être une date à venir. +validator.length = la longueur doit être comprise entre {min} et {max} +validator.max = doit être inférieur(e) ou égal(e) à {value} +validator.min = doit être supérieur(e) ou égal(e) à {value} +validator.notNull = ne peut être nul(le) +validator.past = doit être une date passée +validator.pattern = doit correspondre à "{regex}" +validator.range = doit être compris(e) entre {min} et {max} +validator.size = La taille doit être comprise entre {min} et {max} +validator.email = doit être une adresse email valide + +org.jboss.seam.framework.EntityNotFoundException = Entité introuvable +org.jboss.seam.security.AuthorizationException = Vous n'avez pas les autorisations nécessaires pour effectuer ceci +org.jboss.seam.security.NotLoggedInException = Veuillez d'abord vous connecter +org.jboss.seam.unexpected.error = Erreur inattendue. Veuillez essayez de nouveau. + +org.jboss.seam.loginFailed = La connexion a échoué. +org.jboss.seam.loginSuccessful = Bienvenue, {0}! + +org.jboss.seam.TransactionFailed = La transaction a échoué. +org.jboss.seam.NoConversation = La conversation s'est interrompue, a dépassé les délais ou traite une autre requête. +org.jboss.seam.IllegalNavigation = Navigation illégale +org.jboss.seam.ProcessEnded = Processus #0 déjà achevé +org.jboss.seam.ProcessNotFound = Le processus #0 n'a pas été trouvé. +org.jboss.seam.TaskEnded = Tâche #0 déjà achevée +org.jboss.seam.TaskNotFound = La tâche #0 n'a pas été trouvée. +org.jboss.seam.NotLoggedIn = Veuillez d'abord vous connecter. + +javax.faces.component.UIInput.CONVERSION = La valeur ne peut être convertie dans le type attendu +javax.faces.component.UIInput.REQUIRED = Une valeur est requise. +javax.faces.component.UIInput.UPDATE = Une erreur est survenue lors du traitement de l'information que vous avez fournie +javax.faces.component.UISelectMany.INVALID = La valeur n'est pas valide. +javax.faces.component.UISelectOne.INVALID = La valeur n'est pas valide. + +javax.faces.converter.BigDecimalConverter.DECIMAL = la valeur doit être un nombre +javax.faces.converter.BigDecimalConverter.DECIMAL_detail = la valeur doit être un nombre décimal signé comprenant zéro chiffre ou plus, éventuellement suivi par une virgule décimale et une faction, par ex. {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER = la valeur doit être un nombre +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = la valeur doit être un entier signé comprenant zéro chiffre ou plus +javax.faces.converter.BooleanConverter.BOOLEAN = la valeur doit être "vrai" ou "faux" +javax.faces.converter.BooleanConverter.BOOLEAN_detail = la valeur doit être "vrai" ou "faux" (toute valeur autre que "vrai" est évaluée à "faux") +javax.faces.converter.ByteConverter.BYTE = la valeur doit être un nombre entre 0 et 255 +javax.faces.converter.ByteConverter.BYTE_detail = la valeur doit être un nombre entre 0 et 255 +javax.faces.converter.CharacterConverter.CHARACTER = la valeur doit être un caractère +javax.faces.converter.CharacterConverter.CHARACTER_detail = la valeur doit être un caractère ASCII valide +javax.faces.converter.DateTimeConverter.DATE = la valeur doit être une date +javax.faces.converter.DateTimeConverter.DATE_detail = la valeur doit être une date, par ex. {1} +javax.faces.converter.DateTimeConverter.TIME = la valeur doit être une heure +javax.faces.converter.DateTimeConverter.TIME_detail = la valeur doit être une heure, par ex. {1} +javax.faces.converter.DateTimeConverter.DATETIME = la valeur doit être une date et une heure +javax.faces.converter.DateTimeConverter.DATETIME_detail = la valeur doit être une date et une heure, par ex. {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE = un attribut doit indiquer le modèle ou le type pour convertir la valeur +javax.faces.converter.DoubleConverter.DOUBLE = la valeur doit être un nombre +javax.faces.converter.DoubleConverter.DOUBLE_detail = la valeur doit être un nombre entre 4,9E-324 et 17976931348623157E308 +javax.faces.converter.EnumConverter.ENUM = la valeur doit être convertible en une énumération +javax.faces.converter.EnumConverter.ENUM_detail = la valeur doit être convertible en une énumération ou depuis l''énumération qui contient la constante {1} +javax.faces.converter.EnumConverter.ENUM_NO_CLASS = la valeur doit être convertible en une énumération ou depuis l'énumération, mais aucune classe d'énumération n'est fournie +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = la valeur doit être convertible en une énumération ou depuis l'énumération, mais aucune classe d'énumération n'est fournie +javax.faces.converter.FloatConverter.FLOAT = la valeur doit être un nombre +javax.faces.converter.FloatConverter.FLOAT_detail = la valeur doit être un nombre entre 1,4E-45 et 3,4028235E38 +javax.faces.converter.IntegerConverter.INTEGER = la valeur doit être un nombre +javax.faces.converter.IntegerConverter.INTEGER_detail = la valeur doit être un nombre entre -2147483648 et 2147483647 +javax.faces.converter.LongConverter.LONG = la valeur doit être un nombre +javax.faces.converter.LongConverter.LONG_detail = la valeur doit être un nombre entre -9223372036854775808 et 9223372036854775807 +javax.faces.converter.NumberConverter.CURRENCY = la valeur doit être un montant monétaire +javax.faces.converter.NumberConverter.CURRENCY_detail = la valeur doit être un montant monétaire, par ex. {1} +javax.faces.converter.NumberConverter.NUMBER = la valeur doit être un nombre +javax.faces.converter.NumberConverter.NUMBER_detail = la valeur doit être un nombre +javax.faces.converter.NumberConverter.PATTERN = la valeur doit être un nombre +javax.faces.converter.NumberConverter.PATTERN_detail = la valeur doit être un nombre +javax.faces.converter.NumberConverter.PERCENT = la valeur doit être un pourcentage +javax.faces.converter.NumberConverter.PERCENT_detail = la valeur doit être un pourcentage, par ex. {1} +javax.faces.converter.ShortConverter.SHORT = la valeur doit être un nombre +javax.faces.converter.ShortConverter.SHORT_detail = la valeur doit être comprise entre -32768 et 32767 + +javax.faces.validator.DoubleRangeValidator.MAXIMUM = La valeur doit être inférieure ou égale à {0} +javax.faces.validator.DoubleRangeValidator.MINIMUM = La valeur doit être supérieure ou égale à {0} +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = La valeur doit être comprise entre {0} et {1} +javax.faces.validator.DoubleRangeValidator.TYPE = La valeur n'est pas du type correct +javax.faces.validator.LengthValidator.MAXIMUM = La valeur doit comporter {0} caractères ou moins +javax.faces.validator.LengthValidator.MINIMUM = La valeur doit comporter {0} caractères ou plus +javax.faces.validator.LongRangeValidator.MAXIMUM = La valeur doit être inférieure ou égale à {0} +javax.faces.validator.LongRangeValidator.MINIMUM = La valeur doit être supérieure ou égale à {0} +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = La valeur doit être comprise entre {0} et {1} +javax.faces.validator.LongRangeValidator.TYPE = La valeur n'est pas du type correct + +javax.faces.validator.NOT_IN_RANGE = La valeur doit être comprise entre {0} et {1} +javax.faces.converter.STRING = La valeur ne peut être convertie en chaîne de caractères + diff --git b/resources/messages_it.properties a/resources/messages_it.properties new file mode 100644 index 0000000..8e76eb1 --- /dev/null +++ a/resources/messages_it.properties @@ -0,0 +1,90 @@ +up=\u2191 +down=\u2193 +left=\u2039 +right=\u203A + +validator.assertFalse=validazione fallita +validator.assertTrue=validazione corretta +validator.future=deve essere una data futura +validator.length=la lunghezza deve essere tra {min} e {max} +validator.max=deve essere minore o uguale a {value} +validator.min=deve essere maggiore o uguale a {value} +validator.notNull=non pu\u00F2 essere nullo +validator.past=deve essere una data passata +validator.pattern=deve corrispondere a "{regex}" +validator.range=deve essere tra {min} e {max} +validator.size=la grandezza deve essere tra {min} e {max} +validator.email=deve essere un indirizzo di posta elettronica + +org.jboss.seam.loginFailed=Autenticazione fallita +org.jboss.seam.loginSuccessful=Benvenuto/a, #0 + +org.jboss.seam.TransactionFailed=Transazione fallita +org.jboss.seam.NoConversation=La conversazione \u00E8 terminata, scaduta oppure \u00E8 stata processata un'altra richiesta +org.jboss.seam.IllegalNavigation=Navigazione illegale +org.jboss.seam.ProcessEnded=Il processo \#0 \u00E8 gi\u00E0\u00A0 terminato +org.jboss.seam.ProcessNotFound=Il processo \#0 non \u00E8 stato trovato +org.jboss.seam.TaskEnded=Il task \#0 \u00E8 gi\u00E0 terminato +org.jboss.seam.TaskNotFound=Il task \#0 non \u00E8 stato trovato +org.jboss.seam.NotLoggedIn=Per favore, eseguire la login + +javax.faces.component.UIInput.CONVERSION=il valore non pu\u00F2 essere convertito +javax.faces.component.UIInput.REQUIRED=\u00C8 richiesto un valore +javax.faces.component.UIInput.UPDATE=Si \u00E8 verificato un errore nell'elaborazione delle informazioni inviate +javax.faces.component.UISelectOne.INVALID=il valore non \u00E8 valido +javax.faces.component.UISelectMany.INVALID=il valore non \u00E8 valido + +javax.faces.converter.BigDecimalConverter.DECIMAL=il valore deve essere un numero +javax.faces.converter.BigDecimalConverter.DECIMAL_detail=il valore deve essere un numero decimale con zero o pi\u00F9 cifre, opzionalmente seguito da un punto e una frazione, es. {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=deve essere un intero +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=il valore deve essere un numero intero con zero o pi\u00F9 cifre +javax.faces.converter.BooleanConverter.BOOLEAN=deve essere vero o falso +javax.faces.converter.BooleanConverter.BOOLEAN_detail=il valore deve essere vero o falso (qualsiasi valore diverso da vero \u00E8 considerato falso) +javax.faces.converter.ByteConverter.BYTE=il valore deve essere un numero compreso tra 0 e 255 +javax.faces.converter.ByteConverter.BYTE_detail=il valore deve essere un numero compreso tra 0 e 255 +javax.faces.converter.CharacterConverter.CHARACTER=deve essere un carattere +javax.faces.converter.CharacterConverter.CHARACTER_detail=il valore deve essere un carattere ASCII valido +javax.faces.converter.DateTimeConverter.DATE=deve essere una data +javax.faces.converter.DateTimeConverter.DATE_detail=il valore deve essere una data, es. {1} +javax.faces.converter.DateTimeConverter.TIME=deve essere un orario +javax.faces.converter.DateTimeConverter.TIME_detail=il valore deve essere un orario, es. {1} +javax.faces.converter.DateTimeConverter.DATETIME=deve essere una data ed un orario +javax.faces.converter.DateTimeConverter.DATETIME_detail=il valore deve essere una data e un orario, es. {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=per convetire il valore devono essere specificati un pattern o un attributo tipo +javax.faces.converter.DoubleConverter.DOUBLE=deve essere un numero +javax.faces.converter.DoubleConverter.DOUBLE_detail=il valore deve essere un numero compreso tra 4.9E-324 e 1.7976931348623157E308 +javax.faces.converter.EnumConverter.ENUM=il valore deve essere convertibile in una enum +javax.faces.converter.EnumConverter.ENUM_detail=il valore deve essere convertibile in una enum o da enum che contiene la costante {1} +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=il valore deve essere convertibile in una enum o da enum, ma non \u00E8 stata fornita nessuna classe enum +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=il valore deve essere convertibile in una enum o da enum, ma non \u00E8 stata fornita nessuna classe enum +javax.faces.converter.FloatConverter.FLOAT=deve essere un numero +javax.faces.converter.FloatConverter.FLOAT_detail=il valore deve essere un numero compreso tra 1.4E-45 e 3.4028235E38 +javax.faces.converter.IntegerConverter.INTEGER=deve essere un numero intero +javax.faces.converter.IntegerConverter.INTEGER_detail=il valore deve essere un numero intero compreso tra -2147483648 e 2147483647 +javax.faces.converter.LongConverter.LONG=deve essere un numero intero +javax.faces.converter.LongConverter.LONG_detail=il valore deve essere un numero intero compreso tra -9223372036854775808 e 9223372036854775807 +javax.faces.converter.NumberConverter.CURRENCY=il valore deve essere una valuta +javax.faces.converter.NumberConverter.CURRENCY_detail=il valore deve essere una valuta, es. {1} +javax.faces.converter.NumberConverter.PERCENT=il valore deve essere una percentuale +javax.faces.converter.NumberConverter.PERCENT_detail=il valore deve essere una percentuale, es. {1} +javax.faces.converter.NumberConverter.NUMBER=deve essere un numero +javax.faces.converter.NumberConverter.NUMBER_detail=deve essere un numero +javax.faces.converter.NumberConverter.PATTERN=deve essere un numero +javax.faces.converter.NumberConverter.PATTERN_detail=deve essere un numero +javax.faces.converter.ShortConverter.SHORT=deve essere un numero intero +javax.faces.converter.ShortConverter.SHORT_detail=il valore deve essere un numero intero compreso -32768 e 32767 + +javax.faces.validator.DoubleRangeValidator.MAXIMUM=il valore deve essere minore o uguale a {0} +javax.faces.validator.DoubleRangeValidator.MINIMUM=il valore deve essere maggiore o uguale a {0} +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE=il valore deve essere compreso tra {0} e {1} +javax.faces.validator.DoubleRangeValidator.TYPE=il valore non \u00E8 del tipo corretto +javax.faces.validator.LengthValidator.MAXIMUM=il valore deve essere inferiore o uguale {0} caratteri +javax.faces.validator.LengthValidator.MINIMUM=il valore deve essere superiore o uguale {0} caratteri +javax.faces.validator.LongRangeValidator.MAXIMUM=il valore deve essere minore o uguale a {0} +javax.faces.validator.LongRangeValidator.MINIMUM=il valore deve essere superiore o uguale a {0} +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=il valore deve essere compreso tra {0} e {1} +javax.faces.validator.LongRangeValidator.TYPE=il valore non \u00E8 del tipo corretto + +javax.faces.validator.NOT_IN_RANGE=il valore deve essere compreso tra {0} e {1} +javax.faces.converter.STRING=il valore non pu\u00F2 essere convertito a stringa + diff --git b/resources/messages_tr.properties a/resources/messages_tr.properties new file mode 100644 index 0000000..f77b056 --- /dev/null +++ a/resources/messages_tr.properties @@ -0,0 +1,90 @@ +up=\u2191 +down=\u2193 +left=\u2039 +right=\u203a + +validator.assertFalse=do\u011frulanamad\u0131 +validator.assertTrue=do\u011frulanamad\u0131 +validator.future=gelecek bir tarih olmal\u0131d\u0131r +validator.length=girilen de\u011ferin uzunlu\u011fu {min} ile {max} aras\u0131nda olmal\u0131d\u0131r +validator.max=girilen de\u011fer {value} ya da daha k\u00fc\u00e7\u00fck olmal\u0131d\u0131r +validator.min=girilen de\u011fer {value} ya da daha b\u00fcy\u00fck olmal\u0131d\u0131r +validator.notNull=bir de\u011fer girilmesi gereklidir +validator.past=ge\u00e7mi\u015f bir tarih girilmelidir +validator.pattern=girilen de\u011fer "{regex}" tan\u0131mlamas\u0131na uymal\u0131d\u0131r +validator.range=girilen de\u011ferin b\u00fcy\u00fckl\u00fc\u011f\u00fc {min} ile {max} aras\u0131nda olmal\u0131d\u0131r +validator.size=girilen de\u011ferin boyut {min} ile {max} aras\u0131nda olmal\u0131d\u0131r +validator.email=girilen de\u011fer e-posta adresi format\u0131na uygun olmal\u0131d\u0131r + +org.jboss.seam.loginFailed=Oturum a\u00e7\u0131lamad\u0131 +org.jboss.seam.loginSuccessful=Ho\u015fgeldiniz, #0! + +org.jboss.seam.TransactionFailed=\u0130\u015flem tamamlanamad\u0131 +org.jboss.seam.NoConversation=Konu\u015fma sonland\u0131, zaman a\u015f\u0131m\u0131na u\u011frad\u0131 ya da ba\u015fka bir talebi i\u015fliyordu +org.jboss.seam.IllegalNavigation=Ge\u00e7ersiz y\u00f6nleme(navigasyon) +org.jboss.seam.ProcessEnded=#0 s\u00fcreci sonlanm\u0131\u015f +org.jboss.seam.ProcessNotFound=#0 s\u00fcreci bulunamad\u0131 +org.jboss.seam.TaskEnded=#0 g\u00f6revi sonlanm\u0131\u015f +org.jboss.seam.TaskNotFound=#0 g\u00f6revi bulunamad\u0131 +org.jboss.seam.NotLoggedIn=L\u00fctfen \u00f6ncelikle oturum a\u00e7\u0131n + +javax.faces.component.UIInput.CONVERSION=girilen de\u011fer, beklenen tipe d\u00f6n\u00fc\u015ft\u00fcr\u00fclemedi +javax.faces.component.UIInput.REQUIRED=bir de\u011fer girilmesi gereklidir +javax.faces.component.UIInput.UPDATE=talebiniz i\u015flenirken bir hata olu\u015ftu +javax.faces.component.UISelectOne.INVALID=ge\u00e7erli bir de\u011fer girilmelidir +javax.faces.component.UISelectMany.INVALID=ge\u00e7erli bir de\u011fer girilmelidir + +javax.faces.converter.BigDecimalConverter.DECIMAL=bir say\u0131 girilmelidir +javax.faces.converter.BigDecimalConverter.DECIMAL_detail=girilen de\u011fer, s\u0131f\u0131r ya da daha fazla basamak i\u00e7eren, ondal\u0131k ayrac\u0131 ve ondal\u0131k basamak i\u00e7erebilen i\u015faretli bir ondal\u0131k say\u0131 olmal\u0131d\u0131r, \u00f6rn. {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=bir tamsay\u0131 girilmelidir +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=girilen de\u011fer bir ya da daha fazla basamak i\u00e7eren bir tamsay\u0131 olmal\u0131d\u0131r +javax.faces.converter.BooleanConverter.BOOLEAN=girilen de\u011fer true ya da false olmal\u0131d\u0131r +javax.faces.converter.BooleanConverter.BOOLEAN_detail=girilen de\u011fer true ya da false olmal\u0131d\u0131r (true olmayan her de\u011fer false olarak de\u011ferlendirilecektir) +javax.faces.converter.ByteConverter.BYTE=girilen de\u011fer 0 ile 255 aras\u0131nda bir say\u0131 olmal\u0131d\u0131r +javax.faces.converter.ByteConverter.BYTE_detail=girilen de\u011fer 0 ile 255 aras\u0131nda bir say\u0131 olmal\u0131d\u0131r +javax.faces.converter.CharacterConverter.CHARACTER=girilen de\u011fer bir karakter olmal\u0131d\u0131r +javax.faces.converter.CharacterConverter.CHARACTER_detail=ge\u00e7erli bir ASCII karakter girilmelidir +javax.faces.converter.DateTimeConverter.DATE=girilen de\u011fer bir tarih olmal\u0131d\u0131r +javax.faces.converter.DateTimeConverter.DATE_detail=girilen de\u011fer bir tarih olmal\u0131d\u0131r, \u00f6rn. {1} +javax.faces.converter.DateTimeConverter.TIME=girilen de\u011fer bir zaman olmal\u0131d\u0131r +javax.faces.converter.DateTimeConverter.TIME_detail=girilen de\u011fer bir zaman olmal\u0131d\u0131r, \u00f6rn. {1} +javax.faces.converter.DateTimeConverter.DATETIME=girilen de\u011fer tarih ve zaman i\u00e7ermelidir +javax.faces.converter.DateTimeConverter.DATETIME_detail=girilen de\u011fer tarih ve zaman i\u00e7ermelidir, \u00f6rn. {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=girilen de\u011feri d\u00f6n\u00fc\u015ft\u00fcrebilmek i\u00e7in bir desen(pattern) ya da tip \u00f6zniteli\u011fi(attribute) tan\u0131mlanmal\u0131d\u0131r. +javax.faces.converter.DoubleConverter.DOUBLE=bir say\u0131 girilmelidir +javax.faces.converter.DoubleConverter.DOUBLE_detail=4.9E-324 ile 1.7976931348623157E308 aras\u0131nda bir say\u0131 girilmelidir +javax.faces.converter.EnumConverter.ENUM=girilen de\u011fer enum tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilmelidir +javax.faces.converter.EnumConverter.ENUM_detail=girilen de\u011fer sabit i\u00e7eren bir enum tipinden enum tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilmelidir {1} +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=girilen de\u011fer enum tipinden enum tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilmelidir. Ancak enum s\u0131n\u0131f\u0131(class) bulunamad\u0131 +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=girilen de\u011fer enum tipinden enum tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilmelidir. Ancak enum s\u0131n\u0131f\u0131(class) bulunamad\u0131 +javax.faces.converter.FloatConverter.FLOAT=bir say\u0131 girilmelidir +javax.faces.converter.FloatConverter.FLOAT_detail=1.4E-45 ile 3.4028235E38 aras\u0131nda bir say\u0131 girilmelidir +javax.faces.converter.IntegerConverter.INTEGER=bir tamsay\u0131 girilmelidir +javax.faces.converter.IntegerConverter.INTEGER_detail=-2147483648 ile 2147483647 aras\u0131nda bir tamsay\u0131 girilmelidir +javax.faces.converter.LongConverter.LONG=bir tamsay\u0131 girilmelidir +javax.faces.converter.LongConverter.LONG_detail=-9223372036854775808 ile 9223372036854775807 aras\u0131nda bir tamsay\u0131 girilmelidir +javax.faces.converter.NumberConverter.CURRENCY=para birimi tipinden bir de\u011fer girilmelidir +javax.faces.converter.NumberConverter.CURRENCY_detail=para birimi tipinden bir de\u011fer girilmelidir, \u00f6rn. {1} +javax.faces.converter.NumberConverter.PERCENT=y\u00fczdelik tipinden bir de\u011fer girilmelidir +javax.faces.converter.NumberConverter.PERCENT_detail=y\u00fczdelik tipinden bir de\u011fer girilmelidir, \u00f6rn. {1} +javax.faces.converter.NumberConverter.NUMBER=bir say\u0131 girilmelidir +javax.faces.converter.NumberConverter.NUMBER_detail=bir say\u0131 girilmelidir +javax.faces.converter.NumberConverter.PATTERN=bir say\u0131 girilmelidir +javax.faces.converter.NumberConverter.PATTERN_detail=bir say\u0131 girilmelidir +javax.faces.converter.ShortConverter.SHORT=bir tamsay\u0131 girilmelidir +javax.faces.converter.ShortConverter.SHORT_detail=-32768 ile 32767 aras\u0131nda bir tamsay\u0131 girilmelidir + +javax.faces.validator.DoubleRangeValidator.MAXIMUM=girilen de\u011fer {0} ya da daha k\u00fc\u00e7\u00fck olmal\u0131d\u0131r +javax.faces.validator.DoubleRangeValidator.MINIMUM=girilen de\u011fer {0} ya da daha b\u00fcy\u00fck olmal\u0131d\u0131r +javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE=girilen de\u011fer {0} ile {1} aras\u0131nda olmal\u0131d\u0131r +javax.faces.validator.DoubleRangeValidator.TYPE=girilen de\u011ferin tipi yanl\u0131\u015f +javax.faces.validator.LengthValidator.MAXIMUM=girilen de\u011fer {0} ya da daha az karakter i\u00e7ermelidir +javax.faces.validator.LengthValidator.MINIMUM=girilen de\u011fer {0} ya da fazla karakter i\u00e7ermelidir +javax.faces.validator.LongRangeValidator.MAXIMUM=girilen de\u011fer {0} ya da daha k\u00fc\u00e7\u00fck olmal\u0131d\u0131r +javax.faces.validator.LongRangeValidator.MINIMUM=girilen de\u011fer {0} ya da daha b\u00fcy\u00fck olmal\u0131d\u0131r +javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=girilen de\u011fer {0} ile {1} aral\u0131\u011f\u0131nda olmal\u0131d\u0131r +javax.faces.validator.LongRangeValidator.TYPE=yanl\u0131\u015f tipte bir de\u011fer girildi + +javax.faces.validator.NOT_IN_RANGE=girilen de\u011fer {0} ile {1} aral\u0131\u011f\u0131nda olmal\u0131d\u0131r +javax.faces.converter.STRING=girilen de\u011fer bir dizgiye(string) d\u00f6n\u00fc\u015ft\u00fcr\u00fclemedi + diff --git b/resources/seam-gen.reveng.xml a/resources/seam-gen.reveng.xml new file mode 100644 index 0000000..1f384bb --- /dev/null +++ a/resources/seam-gen.reveng.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git b/resources/seam.properties a/resources/seam.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ a/resources/seam.properties diff --git b/resources/seamTestInAction-dev-ds.xml a/resources/seamTestInAction-dev-ds.xml new file mode 100644 index 0000000..c2e3843 --- /dev/null +++ a/resources/seamTestInAction-dev-ds.xml @@ -0,0 +1,26 @@ + + + + + + + + seamTestInActionDatasource + jdbc:hsqldb:. + org.hsqldb.jdbcDriver + sa + + + + + + diff --git b/resources/seamTestInAction-prod-ds.xml a/resources/seamTestInAction-prod-ds.xml new file mode 100644 index 0000000..c2e3843 --- /dev/null +++ a/resources/seamTestInAction-prod-ds.xml @@ -0,0 +1,26 @@ + + + + + + + + seamTestInActionDatasource + jdbc:hsqldb:. + org.hsqldb.jdbcDriver + sa + + + + + + diff --git b/resources/security.drl a/resources/security.drl new file mode 100644 index 0000000..b015775 --- /dev/null +++ a/resources/security.drl @@ -0,0 +1,6 @@ +package Permissions; + +import java.security.Principal; + +import org.jboss.seam.security.permission.PermissionCheck; +import org.jboss.seam.security.Role; \ No newline at end of file diff --git b/seam-gen.properties a/seam-gen.properties new file mode 100644 index 0000000..88d0ee7 --- /dev/null +++ a/seam-gen.properties @@ -0,0 +1,24 @@ +#Generated by seam setup +#Wed Sep 23 11:44:22 CEST 2009 +hibernate.connection.password= +workspace.home=/home/bernard/projects +model.package=pl.labno.bernard.seamTestInAction +driver.jar=../lib/hsqldb.jar +action.package=pl.labno.bernard.seamTestInAction +test.package=pl.labno.bernard.seamTestInAction.test +database.type=hsql +richfaces.skin=emeraldTown +hibernate.default_catalog.null= +hibernate.default_schema.null= +database.drop=y +project.name=seamTestInAction +hibernate.connection.username=sa +hibernate.connection.driver_class=org.hsqldb.jdbcDriver +hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider +project.type=war +icefaces.home= +database.exists=n +jboss.home=/home/bernard/jboss-4.2.2.GA +hibernate.dialect=org.hibernate.dialect.HSQLDialect +hibernate.connection.url=jdbc\:hsqldb\:. +icefaces=n diff --git b/seamTestInAction.ids a/seamTestInAction.ids new file mode 100644 index 0000000..5d96aa4 --- /dev/null +++ a/seamTestInAction.ids @@ -0,0 +1,22 @@ + + + + + + diff --git b/seamTestInAction.iml a/seamTestInAction.iml new file mode 100644 index 0000000..796e58d --- /dev/null +++ a/seamTestInAction.iml @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/seamTestInAction.ipr a/seamTestInAction.ipr new file mode 100644 index 0000000..4681cfd --- /dev/null +++ a/seamTestInAction.ipr @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/seamTestInAction.launch a/seamTestInAction.launch new file mode 100644 index 0000000..5c00001 --- /dev/null +++ a/seamTestInAction.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git b/src/hot/pl/labno/bernard/seamTestInAction/Authenticator.java a/src/hot/pl/labno/bernard/seamTestInAction/Authenticator.java new file mode 100644 index 0000000..17cf3f1 --- /dev/null +++ a/src/hot/pl/labno/bernard/seamTestInAction/Authenticator.java @@ -0,0 +1,32 @@ +package pl.labno.bernard.seamTestInAction; + +import org.jboss.seam.annotations.In; +import org.jboss.seam.annotations.Logger; +import org.jboss.seam.annotations.Name; +import org.jboss.seam.log.Log; +import org.jboss.seam.security.Credentials; +import org.jboss.seam.security.Identity; + +@Name("authenticator") +public class Authenticator +{ + @Logger private Log log; + + @In Identity identity; + @In Credentials credentials; + + public boolean authenticate() + { + log.info("authenticating {0}", credentials.getUsername()); + if ("admin".equals(credentials.getUsername())) + { + identity.addRole("ADMIN"); + return true; + } else if("member".equals(credentials.getUsername())) { + identity.addRole("MEMBER"); + return true; + } + return false; + } + +} diff --git b/src/hot/pl/labno/bernard/seamTestInAction/TagHome.java a/src/hot/pl/labno/bernard/seamTestInAction/TagHome.java new file mode 100644 index 0000000..ba718e7 --- /dev/null +++ a/src/hot/pl/labno/bernard/seamTestInAction/TagHome.java @@ -0,0 +1,65 @@ +package pl.labno.bernard.seamTestInAction; + +import org.jboss.seam.annotations.Name; +import org.jboss.seam.annotations.security.Restrict; +import org.jboss.seam.framework.EntityHome; +import org.jboss.seam.framework.EntityNotFoundException; + +@Name("tagHome") +public class TagHome extends EntityHome { + + private boolean editMode; + + @Restrict("#{s:hasRole('ADMIN')}") + @Override + public String persist() { + setEditMode(false); + return super.persist(); + } + + @Restrict("#{s:hasRole('ADMIN')}") + @Override + public String update() { + setEditMode(false); + return super.update(); + } + + @Restrict("#{s:hasRole('ADMIN')}") + @Override + public String remove() { + return super.remove(); + } + + public boolean isEditMode() { + return editMode; + } + + public void setEditMode(boolean editMode) { + this.editMode = editMode; + } + + public void edit() { + setEditMode(true); + } + + /** + * Invoke this method to switch to editMode. + */ + public void startCreateProcess() { + setEditMode(true); + clearInstance(); + } + + /** + * Used in tag.page.xml to see if identifier is valid. + * Identifier may be null only if user wants to add new tag + * so this component must be in edit mode. + */ + public void validate() { + if (getId() == null && !isEditMode()) { + throw new EntityNotFoundException(getId(), Tag.class); + } + getInstance(); + } + +} diff --git b/src/hot/pl/labno/bernard/seamTestInAction/TagList.java a/src/hot/pl/labno/bernard/seamTestInAction/TagList.java new file mode 100644 index 0000000..4888ed7 --- /dev/null +++ a/src/hot/pl/labno/bernard/seamTestInAction/TagList.java @@ -0,0 +1,14 @@ +package pl.labno.bernard.seamTestInAction; + +import org.jboss.seam.annotations.Name; +import org.jboss.seam.framework.EntityQuery; + +@Name("tagList") +public class TagList extends EntityQuery { + + public TagList() { + setEjbql("from Tag"); + setOrder("name"); + } + +} diff --git b/src/hot/seam.properties a/src/hot/seam.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ a/src/hot/seam.properties diff --git b/src/main/pl/labno/bernard/seamTestInAction/Tag.java a/src/main/pl/labno/bernard/seamTestInAction/Tag.java new file mode 100644 index 0000000..81f4368 --- /dev/null +++ a/src/main/pl/labno/bernard/seamTestInAction/Tag.java @@ -0,0 +1,52 @@ +package pl.labno.bernard.seamTestInAction; + +import org.hibernate.validator.Length; +import org.hibernate.validator.NotNull; + +import javax.persistence.*; +import java.io.Serializable; + +@Entity +@Table(name = "TAG") +public class Tag implements Serializable { + + @Id + @GeneratedValue + @Column(name = "ID") + private Long id; + + @Version + @Column(name = "VERSION") + private Integer version; + + @NotNull + @Length(min = 1, max = 20) + @Column(name = "NAME") + private String name; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Integer getVersion() { + return version; + } + + private void setVersion(Integer version) { + this.version = version; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git b/src/main/seam.properties a/src/main/seam.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ a/src/main/seam.properties diff --git b/src/test/Test.xml a/src/test/Test.xml new file mode 100644 index 0000000..fb6bcc0 --- /dev/null +++ a/src/test/Test.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git b/src/test/pl/labno/bernard/seamTestInAction/test/Config.java a/src/test/pl/labno/bernard/seamTestInAction/test/Config.java new file mode 100644 index 0000000..84ac271 --- /dev/null +++ a/src/test/pl/labno/bernard/seamTestInAction/test/Config.java @@ -0,0 +1,28 @@ +package pl.labno.bernard.seamTestInAction.test; + +public class Config { + /** + * Credentials + */ + public static final String ADMIN_USERNAME = "admin"; + public static final String ADMIN_PASSWORD = "aaaaa"; + public static final String MEMBER_USERNAME = "member"; + public static final String MEMBER_PASSWORD = "aaaaa"; + + /** + * Views + */ + public static final String TAG_VIEW = "/admin/tags/tag.xhtml"; + public static final String TAG_LIST_VIEW = "/admin/tags/tagList.xhtml"; + public static final String LOGIN_VIEW = "/login.xhtml"; + + /** + * Test groups + */ + public static final String TAG_DEPENDANT_TESTS = "TagDependantTests"; + + /** + * Misc + */ + public static final String ENTITY_MANAGER_NAME = "entityManager"; +} diff --git b/src/test/pl/labno/bernard/seamTestInAction/test/ExtendedSeamTest.java a/src/test/pl/labno/bernard/seamTestInAction/test/ExtendedSeamTest.java new file mode 100644 index 0000000..20e51c6 --- /dev/null +++ a/src/test/pl/labno/bernard/seamTestInAction/test/ExtendedSeamTest.java @@ -0,0 +1,121 @@ +package pl.labno.bernard.seamTestInAction.test; + +import org.jboss.seam.contexts.Contexts; +import org.jboss.seam.mock.SeamTest; + +import javax.persistence.EntityManager; + +public class ExtendedSeamTest extends SeamTest { + + /** + * Remember to invoke super.afterRequest if you override it. + */ + public class RenderedNonFacesRequest extends NonFacesRequest { + + public RenderedNonFacesRequest() { + } + + /** + * @param viewId the view id of the form that was submitted + */ + public RenderedNonFacesRequest(String viewId) { + super(viewId); + } + + /** + * @param viewId the view id of the form that was submitted + * @param conversationId the conversation id + */ + public RenderedNonFacesRequest(String viewId, String conversationId) { + super(viewId, conversationId); + } + + @Override + protected void afterRequest() { + assert isRenderResponseBegun(); + } + } + + /** + * Remember to invoke super.afterRequest if you override it. + */ + public class InvokedApplicationFacesRequest extends FacesRequest { + + public InvokedApplicationFacesRequest() { + } + + /** + * @param viewId the view id of the form that was submitted + */ + public InvokedApplicationFacesRequest(String viewId) { + super(viewId); + } + + /** + * @param viewId the view id of the form that was submitted + * @param conversationId the conversation id + */ + public InvokedApplicationFacesRequest(String viewId, String conversationId) { + super(viewId, conversationId); + } + + @Override + protected void afterRequest() { + assert isInvokeApplicationBegun(); + } + } + + protected EntityManager getEntityManager() { + return (EntityManager) getInstance(Config.ENTITY_MANAGER_NAME); + } + + protected void login(final String username, final String password) throws Exception { + new InvokedApplicationFacesRequest(Config.LOGIN_VIEW) { + @Override + protected void updateModelValues() throws Exception { + setValue("#{credentials.username}", username); + setValue("#{credentials.password}", password); + } + + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{identity.login}"); + assert (Boolean) invokeAction("#{identity.isLoggedIn}"); + } + }.run(); + } + + protected void loginAsAdmin() throws Exception { + login(Config.ADMIN_USERNAME, Config.ADMIN_PASSWORD); + } + + protected void loginAsMember() throws Exception { + login(Config.MEMBER_USERNAME, Config.MEMBER_PASSWORD); + } + + protected void logout() throws Exception { + new InvokedApplicationFacesRequest(Config.LOGIN_VIEW) { + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{identity.logout}"); + assert !(Boolean) invokeAction("#{identity.isLoggedIn}"); + } + }.run(); + } + + protected Object getHandledException() { + return Contexts.lookupInStatefulContexts("org.jboss.seam.handledException"); + } + + public static class Holder { + private T value; + + public T getValue() { + return value; + } + + public void setValue(T value) { + this.value = value; + } + } +} diff --git b/src/test/pl/labno/bernard/seamTestInAction/test/TagCRUDTest.java a/src/test/pl/labno/bernard/seamTestInAction/test/TagCRUDTest.java new file mode 100644 index 0000000..546087a --- /dev/null +++ a/src/test/pl/labno/bernard/seamTestInAction/test/TagCRUDTest.java @@ -0,0 +1,355 @@ +package pl.labno.bernard.seamTestInAction.test; + +import org.jboss.seam.Component; +import org.jboss.seam.framework.EntityNotFoundException; +import org.jboss.seam.mock.AbstractSeamTest; +import org.jboss.seam.security.AuthorizationException; +import org.jboss.seam.security.NotLoggedInException; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import pl.labno.bernard.seamTestInAction.Tag; +import pl.labno.bernard.seamTestInAction.TagHome; +import static pl.labno.bernard.seamTestInAction.test.Config.*; + +import javax.persistence.EntityManager; +import java.util.List; + +public class TagCRUDTest extends ExtendedSeamTest { + + public static Long id; + private String modifiedName = "Modified tag"; + private String modifiedName2 = "Modified2 tag"; + private static final String INVALID_INPUT_PROVIDER = "createInvalidInput"; + + @DataProvider(name = INVALID_INPUT_PROVIDER) + public Object[][] createInvalidInput() { + return new Object[][]{ + new Object[]{""}, + new Object[]{null}, + new Object[]{"asdfghjkl asdfghjkl a"} + }; + } + + @Test(dataProvider = INVALID_INPUT_PROVIDER) + public void invalidInputTest(final String name) throws Exception { + loginAsAdmin(); + String conversationId = new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("actionMethod", TAG_LIST_VIEW + ":tagHome.startCreateProcess"); + } + + @Override + protected void renderResponse() throws Exception { + assert (Boolean) getValue("#{tagHome.editMode}"); + } + }.run(); + new FacesRequest(TAG_VIEW, conversationId) { + + @Override + protected void applyRequestValues() throws Exception { + setValue("#{tagHome.instance.name}", name); + } + + @Override + protected void processValidations() throws Exception { + validateValue("#{tagHome.instance.name}", name); + } + + @Override + protected void afterRequest() { + assert isValidationFailure(); + assert !isInvokeApplicationBegun(); + } + }.run(); + } + + @Test + public void createTag() throws Exception { + loginAsAdmin(); + String conversationId = new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("actionMethod", TAG_LIST_VIEW + ":tagHome.startCreateProcess"); + } + + @Override + protected void renderResponse() throws Exception { + assert (Boolean) getValue("#{tagHome.editMode}"); + } + }.run(); + + new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void processValidations() throws Exception { + validateValue("#{tagHome.instance.name}", "My new legal act"); + assert !isValidationFailure(); + } + + @Override + protected void updateModelValues() throws Exception { + setValue("#{tagHome.instance.name}", "My new legal act"); + } + + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{tagHome.persist}"); + id = (Long) getValue("#{tagHome.instance.id}"); + assert null != id; + } + }.run(); + } + + @Test(dependsOnMethods = {"createTag"}, groups = TAG_DEPENDANT_TESTS) + public void editTag() throws Exception { + loginAsAdmin(); + String conversationId = enterTagView(id); + conversationId = new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{tagHome.edit}"); + assert (Boolean) getValue("#{tagHome.editMode}"); + } + }.run(); + new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void updateModelValues() throws Exception { + setValue("#{tagHome.instance.name}", modifiedName); + } + + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{tagHome.update}"); + } + }.run(); + + new RenderedNonFacesRequest(TAG_LIST_VIEW) { + @Override + protected void renderResponse() throws Exception { + Tag tag = (Tag) ((EntityManager) getInstance("entityManager")).createQuery("from Tag where id=?").setParameter(1, id).getSingleResult(); + assert modifiedName.equals(tag.getName()); + } + }.run(); + } + + @Test(dependsOnMethods = {"createTag"}, groups = TAG_DEPENDANT_TESTS) + public void cancelEditTag() throws Exception { + loginAsAdmin(); + final Holder nameBeforModification = new Holder(); + String conversationId = enterTagView(id); + conversationId = new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void invokeApplication() throws Exception { + nameBeforModification.setValue((String) getValue("#{tagHome.instance.name}")); + invokeAction("#{tagHome.edit}"); + assert (Boolean) getValue("#{tagHome.editMode}"); + } + }.run(); + new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void updateModelValues() throws Exception { + setValue("#{tagHome.instance.name}", modifiedName2); + } + + }.run(); + new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void invokeApplication() throws Exception { + invokeAction("cancel"); + } + + }.run(); + + new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("id", id.toString()); + } + + @Override + protected void renderResponse() throws Exception { + assert nameBeforModification.getValue().equals(getValue("#{tagHome.instance.name}")); + } + }.run(); + } + + @Test(dependsOnMethods = "createTag", groups = TAG_DEPENDANT_TESTS) + public void enterTagViewAsAdmin() throws Throwable { + loginAsAdmin(); + new RenderedNonFacesRequest(TAG_LIST_VIEW) { + @Override + protected void renderResponse() { + assert (Boolean) getValue("#{tagList.resultCount > 0}"); + @SuppressWarnings("unchecked") + List tags = (List) getValue("#{tagList.resultList}"); + boolean tagExists = false; + for (Tag tag : tags) { + if (id.equals(tag.getId())) { + tagExists = true; + } + } + assert tagExists; + } + }.run(); + } + + @Test + public void enterNonExistingTagView() throws Throwable { + loginAsAdmin(); + new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("id", "-1"); + } + + @Override + protected void renderResponse() { + assert getHandledException() instanceof EntityNotFoundException; + } + }.run(); + new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void renderResponse() { + assert getHandledException() instanceof EntityNotFoundException; + } + }.run(); + } + + @Test(dependsOnMethods = "createTag", groups = TAG_DEPENDANT_TESTS) + public void enterTagViewAsNonAdmin() throws Throwable { + new NonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("id", id.toString()); + } + + @Override + protected void afterRequest() { + assert !isRenderResponseBegun(); + } + }.run(); + loginAsMember(); + new RenderedNonFacesRequest(TAG_VIEW) { + @Override + protected void beforeRequest() { + setParameter("id", id.toString()); + } + + @Override + protected void renderResponse() { + assert getHandledException() instanceof AuthorizationException; + } + }.run(); + } + + @Test(dependsOnGroups = TAG_DEPENDANT_TESTS) + public void removeTag() throws Exception { + loginAsAdmin(); + String conversationId = enterTagView(id); + new InvokedApplicationFacesRequest(TAG_VIEW, conversationId) { + @Override + protected void invokeApplication() throws Exception { + invokeAction("#{tagHome.remove}"); + } + }.run(); + new RenderedNonFacesRequest(TAG_LIST_VIEW) { + + @Override + protected void renderResponse() throws Exception { + assert null == getEntityManager().find(Tag.class, id); + } + + }.run(); + } + + @Test + public void componentSecurity() throws Throwable { + new ComponentTest() { + protected void testComponents() throws Exception { + try { + invokeMethod("#{tagHome.persist}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof NotLoggedInException; + } + try { + invokeMethod("#{tagHome.update}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof NotLoggedInException; + } + try { + invokeMethod("#{tagHome.remove}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof NotLoggedInException; + } + } + }.run(); + loginAsMember(); + new ComponentTest() { + protected void testComponents() throws Exception { + try { + invokeMethod("#{tagHome.persist}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof AuthorizationException; + } + try { + invokeMethod("#{tagHome.update}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof AuthorizationException; + } + try { + invokeMethod("#{tagHome.remove}"); + assert false; + } catch (Exception e) { + assert e.getCause() instanceof AuthorizationException; + } + } + }.run(); + } + + @Test + public void enterTagListViewAsNonAdmin() throws Exception { + new NonFacesRequest(TAG_LIST_VIEW) { + @Override + protected void afterRequest() { + assert !isRenderResponseBegun(); + } + }.run(); + loginAsMember(); + new RenderedNonFacesRequest(TAG_LIST_VIEW) { + @Override + protected void renderResponse() throws Exception { + assert getHandledException() instanceof AuthorizationException; + } + }.run(); + } + + + /** + * NonFacesRequest simulating entering page with Tag's details. + * + * @param tagId id of Tag + * @return conversation id + * @throws Exception unspecified + */ + private String enterTagView(final Long tagId) throws Exception { + return new RenderedNonFacesRequest(TAG_VIEW) { + + @Override + protected void beforeRequest() { + setParameter("id", tagId.toString()); + } + + @Override + protected void renderResponse() throws Exception { + TagHome home = (TagHome) Component.getInstance(TagHome.class); + assert tagId != null && tagId.equals(home.getId()) && home.isManaged(); + } + + }.run(); + } +} diff --git b/src/test/readme.txt a/src/test/readme.txt new file mode 100644 index 0000000..ee1b51b --- /dev/null +++ a/src/test/readme.txt @@ -0,0 +1,29 @@ +If you want to run tests using the Eclipse TestNG plugin, you'll need to add +these jars to the top of your TestNG classpath. Using the Run Dialog, select the +XML suite to run, and select these entries from the project tree: + +/lib/test/jboss-embedded-all.jar +/lib/test/hibernate-all.jar +/lib/test/thirdparty-all.jar +/lib/jboss-embedded-api.jar +/lib/jboss-deployers-client-spi.jar +/lib/jboss-deployers-core-spi.jar + +You also need to add the Embedded JBoss bootstrap folder, which you can do by +clicking on the Advanced... button. + +/bootstrap + +Seam uses JBoss Embedded in its unit and integration testing. This has an +additional requirement when using JDK 6. Add the following VM argument to the VM +args tab in the TestNG launch configuration for your suite. + +-Dsun.lang.ClassLoader.allowArraySyntax=true + +Please be sure to use JDK 6 Update 4 or better (>= 1.6.0_04) if you are using +JDK 6. The Update 4 release upgraded to JAXB 2.1 which removes a problem with +earlier versions of Sun's JDK 6 which required overriding the JAXB libraries +using the endorsed directory. + +To add tests to your project create a TestNG xml descriptor called *Test.xml +(e.g. FooTest.xml) next to your test classes and run ant test. diff --git b/validate.xml a/validate.xml new file mode 100644 index 0000000..f2793fe --- /dev/null +++ a/validate.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git b/view/admin/tags/tag.page.xml a/view/admin/tags/tag.page.xml new file mode 100644 index 0000000..533c2f5 --- /dev/null +++ a/view/admin/tags/tag.page.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git b/view/admin/tags/tag.xhtml a/view/admin/tags/tag.xhtml new file mode 100644 index 0000000..d5a72b9 --- /dev/null +++ a/view/admin/tags/tag.xhtml @@ -0,0 +1,54 @@ + + + + + + + + #{messages['tag']} + + #{messages['tag.name']} + + + +
+ + +
+ + + +
+ + + + + + #{messages['tag']} + + #{messages['tag.name']} + + #{messages['tag.version']} + + + + +
+ + + +
+
+ + + + diff --git b/view/admin/tags/tagList.xhtml a/view/admin/tags/tagList.xhtml new file mode 100644 index 0000000..55dad8e --- /dev/null +++ a/view/admin/tags/tagList.xhtml @@ -0,0 +1,42 @@ + + + + + + + #{messages['tagList']} + + + + + + #{messages['tag.id']} + #{tag.id} + + + #{messages['tag.name']} + + + + + + + + +
+ +
+ +
+ +
diff --git b/view/error.xhtml a/view/error.xhtml new file mode 100644 index 0000000..a4a2af1 --- /dev/null +++ a/view/error.xhtml @@ -0,0 +1,19 @@ + + + + + + +

Error

+

Something bad happened :-(

+ + + +
+
diff --git b/view/favicon.ico a/view/favicon.ico new file mode 100644 index 0000000..224d8f3 Binary files /dev/null and a/view/favicon.ico differ diff --git b/view/home.xhtml a/view/home.xhtml new file mode 100644 index 0000000..7d050a5 --- /dev/null +++ a/view/home.xhtml @@ -0,0 +1,30 @@ + + + + + +

Welcome to SeamTest in Action !

+ + + + +

This is a sample application!

+ +

Please note that sources do not include jar files. You can find them in seam distribution.

+
+
+
+ +
+
diff --git b/view/img/dtpick.gif a/view/img/dtpick.gif new file mode 100644 index 0000000..8526cf5 Binary files /dev/null and a/view/img/dtpick.gif differ diff --git b/view/img/error.gif a/view/img/error.gif new file mode 100644 index 0000000..34d667d Binary files /dev/null and a/view/img/error.gif differ diff --git b/view/img/manytoone.gif a/view/img/manytoone.gif new file mode 100644 index 0000000..5e05f71 Binary files /dev/null and a/view/img/manytoone.gif differ diff --git b/view/img/msgerror.png a/view/img/msgerror.png new file mode 100644 index 0000000..d94cf89 Binary files /dev/null and a/view/img/msgerror.png differ diff --git b/view/img/msginfo.png a/view/img/msginfo.png new file mode 100644 index 0000000..fb9031c Binary files /dev/null and a/view/img/msginfo.png differ diff --git b/view/img/msgwarn.png a/view/img/msgwarn.png new file mode 100644 index 0000000..69a83fb Binary files /dev/null and a/view/img/msgwarn.png differ diff --git b/view/img/onetomany.gif a/view/img/onetomany.gif new file mode 100644 index 0000000..982d5e5 Binary files /dev/null and a/view/img/onetomany.gif differ diff --git b/view/img/seamlogo.png a/view/img/seamlogo.png new file mode 100644 index 0000000..ab274a6 Binary files /dev/null and a/view/img/seamlogo.png differ diff --git b/view/index.html a/view/index.html new file mode 100644 index 0000000..0b0ad2f --- /dev/null +++ a/view/index.html @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git b/view/layout/display.xhtml a/view/layout/display.xhtml new file mode 100644 index 0000000..ea92dee --- /dev/null +++ a/view/layout/display.xhtml @@ -0,0 +1,16 @@ + + +
+ + + + + + +
+ +
diff --git b/view/layout/edit.xhtml a/view/layout/edit.xhtml new file mode 100644 index 0000000..9728c2c --- /dev/null +++ a/view/layout/edit.xhtml @@ -0,0 +1,27 @@ + + +
+ + + + * + + + + + + + + + + + + + +
+ +
diff --git b/view/layout/menu.xhtml a/view/layout/menu.xhtml new file mode 100644 index 0000000..ec1dd08 --- /dev/null +++ a/view/layout/menu.xhtml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git b/view/layout/sort.xhtml a/view/layout/sort.xhtml new file mode 100644 index 0000000..cbe30fc --- /dev/null +++ a/view/layout/sort.xhtml @@ -0,0 +1,11 @@ + + + + + + diff --git b/view/layout/template.xhtml a/view/layout/template.xhtml new file mode 100644 index 0000000..ab062e7 --- /dev/null +++ a/view/layout/template.xhtml @@ -0,0 +1,40 @@ + + + + + + SeamTest in Action + + + + + + + + + + + + +
+ + +
+ + + + + +
diff --git b/view/login.page.xml a/view/login.page.xml new file mode 100644 index 0000000..9b21d98 --- /dev/null +++ a/view/login.page.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git b/view/login.xhtml a/view/login.xhtml new file mode 100644 index 0000000..4565022 --- /dev/null +++ a/view/login.xhtml @@ -0,0 +1,47 @@ + + + + + + + + + Login + +

Please login here

+ +
+ + Username + + Password + + Remember me + + +
+ +

+ Note - You may login with the username 'admin' and a blank password. +

+ +
+ +
+ +
+ +
+ +
+
diff --git b/view/seamTestInAction.odt a/view/seamTestInAction.odt new file mode 100644 index 0000000..ea6c07f Binary files /dev/null and a/view/seamTestInAction.odt differ diff --git b/view/seamTestInAction.pdf a/view/seamTestInAction.pdf new file mode 100644 index 0000000..cf42269 Binary files /dev/null and a/view/seamTestInAction.pdf differ diff --git b/view/stylesheet/theme.css a/view/stylesheet/theme.css new file mode 100644 index 0000000..dd9283b --- /dev/null +++ a/view/stylesheet/theme.css @@ -0,0 +1,199 @@ +html { + overflow-y: scroll; +} + +body { + font-size: 12px; + margin: 0px; +} + +a img { + border: none; +} + +h1 { + font-size: 1.6em; + margin-top: 0; +} + +input[type=submit], input[type=button] { + font-size: 10px; + margin: 5px 5px 5px 0; + cursor: pointer; +} + +input[type=text], input[type=password], textarea { + font-size: 11px; + padding-left: 1px; +} + +.tableControl, .actionButtons { + width: 100%; +} + +.tableControl a { + padding-left: 10px; +} + +.tableControl { + text-align: right; +} + +.footer { + text-align: center; + font-size: 11px; + margin-bottom: 10px; +} + +.rich-table { + width: 100%; +} + +.body { + padding: 30px; +} + +.columnHeader:hover { + color: #FF6600; +} + +.message { + padding: 5px; + list-style: none; + border: 0; + background: none; + padding: 0; + color: #000000; + margin: 5px 0 8px 0; + font-size: 12px; +} + +.message li { + background: no-repeat left center; + padding-top: 1px; + padding-left: 20px; + margin-left: 3px; +} + +.message li.infomsg { + background-image: url(../img/msginfo.png); +} + +.message li.errormsg { + background-image: url(../img/msgerror.png); +} + +.message li.warnmsg { + background-image: url(../img/msgwarn.png); +} + +.name { + vertical-align: top; + font-weight: bold; + width: 115px; + float: left; + padding: 5px; + margin-top: 3px; + clear: left; +} + +.value { + float: left; + padding: 5px; +} + +.error { + float: left; + padding: 5px; +} + +.errors { + color: red; + vertical-align: middle; +} + +img.errors { + padding-right: 5px; +} + +.errors input, .errors textarea { + border: 1px solid red !important; +} + +.required { + color: red; + padding-left: 2px; +} + +.rich-stglpanel-body { + overflow: auto; +} + +/* the specificity here is necessary to override the defaults */ +.rich-panel .rich-panel-header, +.rich-stglpanel .rich-stglpanel-header { + padding: 2px 3px; +} + + +select { + font-size: 12px; +} + +.rich-panel input[type=submit], .rich-panel input[type=button], +.rich-tabpanel input[type=submit], .rich-tabpanel input[type=button] { + margin-bottom: 0; +} + +.tableControl input[type=submit], .tableControl input[type=button], .tableControl select { + margin: 5px 0 5px 5px; +} + +/* I don't know why this is necessary, but the select is off by a pixel on the top and is padding too much on the left */ +.tableControl select { + margin-left: 2px; + position: relative; + top: 1px; +} + +.actionButtons { + padding-left: 1px; +} + +.actionButtons select { + margin: 5px 5px 5px 0; + vertical-align: bottom; +} + +.rich-datalist { + list-style: square; + margin: 6px 0 1px 0; + padding-left: 18px; +} + +.rich-list-item { + padding-bottom: 4px; +} + +div.info { + font-size: 1.2em; +} + +ul.bullets { + list-style: square; +} + +ul.bullets li { + padding-bottom: 2px; +} + +td.action { + text-align: center; + width: 8em; + white-space: nowrap; +} + +td.action a { + padding-left: 1px; + padding-right: 1px; +} diff --git b/view/stylesheet/theme.xcss a/view/stylesheet/theme.xcss new file mode 100644 index 0000000..dfe6599 --- /dev/null +++ a/view/stylesheet/theme.xcss @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +