You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(39) |
Dec
(10) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(19) |
Feb
(150) |
Mar
(10) |
Apr
|
May
(8) |
Jun
(11) |
Jul
(27) |
Aug
(52) |
Sep
(35) |
Oct
(30) |
Nov
(18) |
Dec
(4) |
| 2008 |
Jan
(76) |
Feb
(121) |
Mar
(39) |
Apr
(55) |
May
(18) |
Jun
(49) |
Jul
(32) |
Aug
(4) |
Sep
(10) |
Oct
|
Nov
(3) |
Dec
(33) |
| 2009 |
Jan
(19) |
Feb
(87) |
Mar
(69) |
Apr
(38) |
May
(47) |
Jun
(20) |
Jul
(5) |
Aug
(76) |
Sep
(145) |
Oct
(34) |
Nov
(8) |
Dec
(68) |
| 2010 |
Jan
(150) |
Feb
(379) |
Mar
(191) |
Apr
(100) |
May
(525) |
Jun
(269) |
Jul
(127) |
Aug
(190) |
Sep
(190) |
Oct
(29) |
Nov
(147) |
Dec
(83) |
| 2011 |
Jan
(188) |
Feb
(81) |
Mar
(43) |
Apr
(97) |
May
(63) |
Jun
(129) |
Jul
(17) |
Aug
(124) |
Sep
(6) |
Oct
(20) |
Nov
(67) |
Dec
(23) |
| 2012 |
Jan
(6) |
Feb
(14) |
Mar
(181) |
Apr
(64) |
May
(102) |
Jun
(47) |
Jul
(26) |
Aug
(3) |
Sep
(1) |
Oct
(14) |
Nov
(13) |
Dec
(23) |
| 2013 |
Jan
(4) |
Feb
(14) |
Mar
(18) |
Apr
(14) |
May
(27) |
Jun
(27) |
Jul
(5) |
Aug
(2) |
Sep
(74) |
Oct
(79) |
Nov
(21) |
Dec
(97) |
| 2014 |
Jan
(6) |
Feb
(3) |
Mar
(8) |
Apr
|
May
(5) |
Jun
|
Jul
(9) |
Aug
(6) |
Sep
(3) |
Oct
(10) |
Nov
(6) |
Dec
|
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(25) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <fg...@us...> - 2011-12-01 17:51:18
|
Revision: 3720
http://openutils.svn.sourceforge.net/openutils/?rev=3720&view=rev
Author: fgiust
Date: 2011-12-01 17:51:12 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
fix check on repository name
Modified Paths:
--------------
trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/templating/ExtendedTemplate.java
Modified: trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/templating/ExtendedTemplate.java
===================================================================
--- trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/templating/ExtendedTemplate.java 2011-12-01 10:06:26 UTC (rev 3719)
+++ trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/templating/ExtendedTemplate.java 2011-12-01 17:51:12 UTC (rev 3720)
@@ -168,7 +168,7 @@
{
try
{
- if (repositories.contains(node.getWorkspace()))
+ if (repositories.contains(node.getWorkspace().getName()))
{
return true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hu...@op...> - 2011-12-01 10:58:08
|
See <https://hudson.openmindonline.it/job/openutils-bshd5/49/changes> |
|
From: <hu...@op...> - 2011-12-01 10:58:07
|
See <https://hudson.openmindonline.it/job/openutils-bshd5/net.sourceforge.openutils$openutils-bshd5/49/changes> |
|
From: <gca...@us...> - 2011-12-01 10:06:38
|
Revision: 3719
http://openutils.svn.sourceforge.net/openutils/?rev=3719&view=rev
Author: gcatania
Date: 2011-12-01 10:06:26 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 reinstated id generation annotations
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 09:11:33 UTC (rev 3718)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 10:06:26 UTC (rev 3719)
@@ -27,6 +27,8 @@
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
@@ -38,6 +40,7 @@
{
@Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, length = 50)
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 09:11:33 UTC (rev 3718)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 10:06:26 UTC (rev 3719)
@@ -29,6 +29,8 @@
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@@ -41,6 +43,7 @@
{
@Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 09:11:33 UTC (rev 3718)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 10:06:26 UTC (rev 3719)
@@ -29,6 +29,8 @@
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@@ -41,6 +43,7 @@
{
@Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 09:11:33 UTC (rev 3718)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 10:06:26 UTC (rev 3719)
@@ -27,6 +27,8 @@
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@@ -39,6 +41,7 @@
{
@Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 09:11:33 UTC (rev 3718)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 10:06:26 UTC (rev 3719)
@@ -33,6 +33,8 @@
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@@ -49,6 +51,7 @@
{
@Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Embedded
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hu...@op...> - 2011-12-01 09:57:15
|
See <https://hudson.openmindonline.it/job/openutils-bshd5/net.sourceforge.openutils$openutils-bshd5/48/changes> |
|
From: <hu...@op...> - 2011-12-01 09:57:15
|
See <https://hudson.openmindonline.it/job/openutils-bshd5/48/changes> |
|
From: <gca...@us...> - 2011-12-01 09:11:43
|
Revision: 3718
http://openutils.svn.sourceforge.net/openutils/?rev=3718&view=rev
Author: gcatania
Date: 2011-12-01 09:11:33 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
adding testng output to svn:ignores
Property Changed:
----------------
trunk/openutils-bshd5/
Property changes on: trunk/openutils-bshd5
___________________________________________________________________
Modified: svn:ignore
- .wtpmodules
target
.classpath
.project
.settings
.checkstyle
+ .wtpmodules
target
.classpath
.project
.settings
.checkstyle
test-output
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-12-01 09:11:02
|
Revision: 3717
http://openutils.svn.sourceforge.net/openutils/?rev=3717&view=rev
Author: gcatania
Date: 2011-12-01 09:10:56 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 adding unit test, fixing meaningfulness of existing ones
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-01 09:10:37 UTC (rev 3716)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-01 09:10:56 UTC (rev 3717)
@@ -32,10 +32,12 @@
import it.openutils.hibernate.test.model.CarMaker;
import it.openutils.hibernate.test.model.CarModel;
import it.openutils.hibernate.test.model.CurrencyAmount;
+import it.openutils.hibernate.test.model.Designer;
import it.openutils.hibernate.test.model.FullName;
import it.openutils.hibernate.test.model.Owner;
import it.openutils.hibernate.test.model.Person;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
@@ -67,7 +69,7 @@
@Autowired
private CarDAO carDAO;
- private Person alice()
+ private static Person alice()
{
FullName fullName = new FullName("Alice", "McBeal");
Calendar birthDate = new GregorianCalendar(1970, Calendar.MARCH, 7);
@@ -80,7 +82,7 @@
return p;
}
- private Owner bob()
+ private static Owner bob()
{
FullName fullName = new FullName("Bob", "Kelso");
Calendar birthDate = new GregorianCalendar(1950, Calendar.MARCH, 7);
@@ -93,7 +95,7 @@
return o;
}
- private Owner chuck()
+ private static Owner chuck()
{
FullName fullName = new FullName("Chuck", "Palahniuk");
Calendar birthDate = new GregorianCalendar(1962, Calendar.FEBRUARY, 21);
@@ -106,11 +108,53 @@
return p;
}
+ private static CarMaker toyota()
+ {
+ CarMaker toyota = new CarMaker();
+ toyota.setName("Toyota");
+ toyota.setCapitalization(new CurrencyAmount(12000, "YEN"));
+ return toyota;
+ }
+
+ private static CarModel prius(CarMaker toyota)
+ {
+ CarModel prius = new CarModel();
+ prius.setName("Prius");
+ prius.setYear(Integer.valueOf(2008));
+
+ List<CarModel> toyotaModels = toyota.getModels();
+ if (toyotaModels == null)
+ {
+ toyotaModels = new ArrayList<CarModel>();
+ }
+ toyotaModels.add(prius);
+ toyota.setModels(toyotaModels);
+ return prius;
+ }
+
+ private static Designer priusDesigner(CarModel prius)
+ {
+ FullName fullName = new FullName("Ken", "Shiro");
+ Calendar birthDate = new GregorianCalendar(1981, Calendar.OCTOBER, 16);
+ Address address = new Address("Khan avenue", 6, "Nagato", "TK", 99867);
+ Designer p = new Designer();
+ p.setName(fullName);
+ p.setBirthDate(birthDate);
+ p.setFiscalAddress(address);
+ p.setCurrentAddress(address);
+ p.setDepartment("design");
+ p.setEmployer(prius.getMake());
+ p.setDesignedModels(Collections.singleton(prius));
+ p.setGrossAnnualSalary(new CurrencyAmount(60000, "YEN"));
+ p.setHipsterFactor(97);
+ return p;
+ }
+
/**
* basic save/evict/get test.
*/
@Test
- public void testSaveAndRetrievePerson()
+ public void testSaveAndRetrieveBasic()
{
Person person = alice();
Long savedId = personDAO.save(person);
@@ -122,11 +166,32 @@
Assert.assertEquals(person, savedPerson);
}
+ /*
+ * java.lang.ClassCastException: it.openutils.hibernate.test.model.Person_$$_javassist_7 cannot be cast to
+ * it.openutils.hibernate.test.model.Designer
+ */
+ @Test(enabled = false)
+ public void testSaveAndRetrieveWithCascade()
+ {
+ CarMaker toyota = toyota();
+ CarModel prius = prius(toyota);
+ Designer designer = priusDesigner(prius);
+
+ Long designerId = personDAO.save(designer);
+
+ personDAO.evict(designer);
+ Person reloadedDesigner = personDAO.load(designerId);
+ Designer rd = (Designer) reloadedDesigner;
+ Assert.assertEquals(rd.getHipsterFactor(), 97);
+ Assert.assertEquals(rd.getDesignedModels().iterator().next().getYear(), Integer.valueOf(2008));
+ }
+
@Test
- public void testFindFilteredFirst()
+ public void testBasicFind()
{
Person alice = alice();
personDAO.save(alice);
+
Person filter = new Person();
filter.setName(new FullName(null, "McBeal"));
List<Person> found = personDAO.findFiltered(filter);
@@ -136,12 +201,46 @@
}
@Test
+ public void testFindFiltered()
+ {
+ personDAO.save(alice());
+ personDAO.save(bob());
+ personDAO.save(chuck());
+ Person filter = new Person();
+ filter.setName(new FullName(null, "Kelso"));
+ List<Person> found = personDAO.findFiltered(filter);
+
+ Assert.assertEquals(found.size(), 1, "Invalid number of persons found.");
+ Person actualBob = bob();
+ Person expectedBob = found.get(0);
+ Assert.assertEquals(expectedBob.getName(), actualBob.getName());
+ Assert.assertEquals(expectedBob.getCurrentAddress().getStreet(), actualBob.getCurrentAddress().getStreet());
+ Assert.assertEquals(expectedBob.getBirthDate(), actualBob.getBirthDate());
+ }
+
+ @Test
+ public void testFindFilteredInheritance()
+ {
+ personDAO.save(alice());
+ personDAO.save(bob());
+ personDAO.save(chuck());
+ Person filter = new Person();
+ filter.setName(new FullName(null, "Kelso"));
+ List<Person> found = personDAO.findFiltered(filter);
+
+ Assert.assertEquals(found.size(), 1, "Invalid number of persons found.");
+ Person expectedBob = found.get(0);
+ Assert.assertEquals(expectedBob.getClass(), Owner.class, "Inheritanche check failed");
+ }
+
+ @Test(enabled = false)
public void testFindFilteredById()
{
Person alice = alice();
- Long savedId = personDAO.save(alice);
+ Long alicesId = personDAO.save(alice);
+ personDAO.save(bob());
Person filter = new Person();
- filter.setId(savedId);
+ filter.setId(alicesId);
List<Person> found = personDAO.findFiltered(filter);
Assert.assertEquals(found.size(), 1, "No persons found.");
@@ -157,13 +256,8 @@
public void testFindFilteredByChildId()
{
Owner bob = bob();
- CarMaker toyota = new CarMaker();
- toyota.setName("Toyota");
- toyota.setCapitalization(new CurrencyAmount(12000, "YEN"));
- CarModel prius = new CarModel();
- prius.setName("Prius");
- prius.setYear(Integer.valueOf(2008));
- toyota.setModels(Collections.singletonList(prius));
+ CarMaker toyota = toyota();
+ CarModel prius = prius(toyota);
Car bobsPrius = new Car(new GregorianCalendar(2010, Calendar.OCTOBER, 12), prius, toyota);
bob.setCars(Collections.singleton(bobsPrius));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-12-01 09:10:46
|
Revision: 3716
http://openutils.svn.sourceforge.net/openutils/?rev=3716&view=rev
Author: gcatania
Date: 2011-12-01 09:10:37 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 cleanup test model objects
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -27,8 +27,6 @@
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
import javax.persistence.Id;
@@ -40,7 +38,6 @@
{
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, length = 50)
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -29,8 +29,6 @@
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@@ -43,7 +41,6 @@
{
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -126,7 +126,6 @@
int result = 1;
result = prime * result + ((capitalization == null) ? 0 : capitalization.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
- result = prime * result + ((models == null) ? 0 : models.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@@ -172,17 +171,6 @@
{
return false;
}
- if (models == null)
- {
- if (other.models != null)
- {
- return false;
- }
- }
- else if (!models.equals(other.models))
- {
- return false;
- }
if (name == null)
{
if (other.name != null)
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -28,6 +28,7 @@
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
+import javax.persistence.ManyToOne;
/**
@@ -40,6 +41,9 @@
@Id
private Long id;
+ @ManyToOne
+ private CarMaker make;
+
@Column
private String name;
@@ -63,6 +67,22 @@
}
/**
+ * @return the make
+ */
+ public CarMaker getMake()
+ {
+ return make;
+ }
+
+ /**
+ * @param make the make to set
+ */
+ public void setMake(CarMaker make)
+ {
+ this.make = make;
+ }
+
+ /**
* @return the name
*/
public String getName()
@@ -103,6 +123,7 @@
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((make == null) ? 0 : make.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((year == null) ? 0 : year.hashCode());
return result;
@@ -138,6 +159,17 @@
{
return false;
}
+ if (make == null)
+ {
+ if (other.make != null)
+ {
+ return false;
+ }
+ }
+ else if (!make.equals(other.make))
+ {
+ return false;
+ }
if (name == null)
{
if (other.name != null)
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -35,10 +35,14 @@
public class CurrencyAmount
{
- private final double amount;
+ private double amount;
- private final String currency;
+ private String currency;
+ public CurrencyAmount()
+ {
+ }
+
public CurrencyAmount(double amount, String currency)
{
super();
@@ -114,4 +118,20 @@
return true;
}
+ /**
+ * @param amount the amount to set
+ */
+ public void setAmount(double amount)
+ {
+ this.amount = amount;
+ }
+
+ /**
+ * @param currency the currency to set
+ */
+ public void setCurrency(String currency)
+ {
+ this.currency = currency;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -87,7 +87,6 @@
{
final int prime = 31;
int result = super.hashCode();
- result = prime * result + ((cars == null) ? 0 : cars.hashCode());
result = prime * result + ((totalValueOfCars == null) ? 0 : totalValueOfCars.hashCode());
return result;
}
@@ -111,17 +110,6 @@
return false;
}
Owner other = (Owner) obj;
- if (cars == null)
- {
- if (other.cars != null)
- {
- return false;
- }
- }
- else if (!cars.equals(other.cars))
- {
- return false;
- }
if (totalValueOfCars == null)
{
if (other.totalValueOfCars != null)
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 08:34:48 UTC (rev 3715)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 09:10:37 UTC (rev 3716)
@@ -33,8 +33,6 @@
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@@ -51,7 +49,6 @@
{
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Embedded
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-12-01 08:34:55
|
Revision: 3715
http://openutils.svn.sourceforge.net/openutils/?rev=3715&view=rev
Author: gcatania
Date: 2011-12-01 08:34:48 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 hashcode, equals on test model objects
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FullName.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Address.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -198,7 +198,7 @@
{
return false;
}
- if (getClass() != obj.getClass())
+ if (!(obj instanceof Address))
{
return false;
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -147,4 +147,109 @@
return maker;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((maker == null) ? 0 : maker.hashCode());
+ result = prime * result + ((marketValue == null) ? 0 : marketValue.hashCode());
+ result = prime * result + ((model == null) ? 0 : model.hashCode());
+ result = prime * result + ((owner == null) ? 0 : owner.hashCode());
+ result = prime * result + ((registrationDate == null) ? 0 : registrationDate.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj == null)
+ {
+ return false;
+ }
+ if (!(obj instanceof Car))
+ {
+ return false;
+ }
+ Car other = (Car) obj;
+ if (id == null)
+ {
+ if (other.id != null)
+ {
+ return false;
+ }
+ }
+ else if (!id.equals(other.id))
+ {
+ return false;
+ }
+ if (maker == null)
+ {
+ if (other.maker != null)
+ {
+ return false;
+ }
+ }
+ else if (!maker.equals(other.maker))
+ {
+ return false;
+ }
+ if (marketValue == null)
+ {
+ if (other.marketValue != null)
+ {
+ return false;
+ }
+ }
+ else if (!marketValue.equals(other.marketValue))
+ {
+ return false;
+ }
+ if (model == null)
+ {
+ if (other.model != null)
+ {
+ return false;
+ }
+ }
+ else if (!model.equals(other.model))
+ {
+ return false;
+ }
+ if (owner == null)
+ {
+ if (other.owner != null)
+ {
+ return false;
+ }
+ }
+ else if (!owner.equals(other.owner))
+ {
+ return false;
+ }
+ if (registrationDate == null)
+ {
+ if (other.registrationDate != null)
+ {
+ return false;
+ }
+ }
+ else if (!registrationDate.equals(other.registrationDate))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -116,4 +116,85 @@
this.models = models;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((capitalization == null) ? 0 : capitalization.hashCode());
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((models == null) ? 0 : models.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj == null)
+ {
+ return false;
+ }
+ if (!(obj instanceof CarMaker))
+ {
+ return false;
+ }
+ CarMaker other = (CarMaker) obj;
+ if (capitalization == null)
+ {
+ if (other.capitalization != null)
+ {
+ return false;
+ }
+ }
+ else if (!capitalization.equals(other.capitalization))
+ {
+ return false;
+ }
+ if (id == null)
+ {
+ if (other.id != null)
+ {
+ return false;
+ }
+ }
+ else if (!id.equals(other.id))
+ {
+ return false;
+ }
+ if (models == null)
+ {
+ if (other.models != null)
+ {
+ return false;
+ }
+ }
+ else if (!models.equals(other.models))
+ {
+ return false;
+ }
+ if (name == null)
+ {
+ if (other.name != null)
+ {
+ return false;
+ }
+ }
+ else if (!name.equals(other.name))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -94,4 +94,73 @@
this.year = year;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((year == null) ? 0 : year.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj == null)
+ {
+ return false;
+ }
+ if (!(obj instanceof CarModel))
+ {
+ return false;
+ }
+ CarModel other = (CarModel) obj;
+ if (id == null)
+ {
+ if (other.id != null)
+ {
+ return false;
+ }
+ }
+ else if (!id.equals(other.id))
+ {
+ return false;
+ }
+ if (name == null)
+ {
+ if (other.name != null)
+ {
+ return false;
+ }
+ }
+ else if (!name.equals(other.name))
+ {
+ return false;
+ }
+ if (year == null)
+ {
+ if (other.year != null)
+ {
+ return false;
+ }
+ }
+ else if (!year.equals(other.year))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -62,4 +62,56 @@
return currency;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ long temp;
+ temp = Double.doubleToLongBits(amount);
+ result = prime * result + (int) (temp ^ (temp >>> 32));
+ result = prime * result + ((currency == null) ? 0 : currency.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj == null)
+ {
+ return false;
+ }
+ if (!(obj instanceof CurrencyAmount))
+ {
+ return false;
+ }
+ CurrencyAmount other = (CurrencyAmount) obj;
+ if (Double.doubleToLongBits(amount) != Double.doubleToLongBits(other.amount))
+ {
+ return false;
+ }
+ if (currency == null)
+ {
+ if (other.currency != null)
+ {
+ return false;
+ }
+ }
+ else if (!currency.equals(other.currency))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -79,4 +79,54 @@
this.designedModels = designedModels;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((designedModels == null) ? 0 : designedModels.hashCode());
+ result = prime * result + hipsterFactor;
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (!super.equals(obj))
+ {
+ return false;
+ }
+ if (!(obj instanceof Designer))
+ {
+ return false;
+ }
+ Designer other = (Designer) obj;
+ if (designedModels == null)
+ {
+ if (other.designedModels != null)
+ {
+ return false;
+ }
+ }
+ else if (!designedModels.equals(other.designedModels))
+ {
+ return false;
+ }
+ if (hipsterFactor != other.hipsterFactor)
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -136,4 +136,97 @@
this.employedSince = employedSince;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((department == null) ? 0 : department.hashCode());
+ result = prime * result + ((employedSince == null) ? 0 : employedSince.hashCode());
+ result = prime * result + ((employer == null) ? 0 : employer.hashCode());
+ result = prime * result + ((grossAnnualSalary == null) ? 0 : grossAnnualSalary.hashCode());
+ result = prime * result + ((qualification == null) ? 0 : qualification.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (!super.equals(obj))
+ {
+ return false;
+ }
+ if (!(obj instanceof Employee))
+ {
+ return false;
+ }
+ Employee other = (Employee) obj;
+ if (department == null)
+ {
+ if (other.department != null)
+ {
+ return false;
+ }
+ }
+ else if (!department.equals(other.department))
+ {
+ return false;
+ }
+ if (employedSince == null)
+ {
+ if (other.employedSince != null)
+ {
+ return false;
+ }
+ }
+ else if (!employedSince.equals(other.employedSince))
+ {
+ return false;
+ }
+ if (employer == null)
+ {
+ if (other.employer != null)
+ {
+ return false;
+ }
+ }
+ else if (!employer.equals(other.employer))
+ {
+ return false;
+ }
+ if (grossAnnualSalary == null)
+ {
+ if (other.grossAnnualSalary != null)
+ {
+ return false;
+ }
+ }
+ else if (!grossAnnualSalary.equals(other.grossAnnualSalary))
+ {
+ return false;
+ }
+ if (qualification == null)
+ {
+ if (other.qualification != null)
+ {
+ return false;
+ }
+ }
+ else if (!qualification.equals(other.qualification))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FullName.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FullName.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FullName.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -130,7 +130,7 @@
{
return false;
}
- if (getClass() != obj.getClass())
+ if (!(obj instanceof FullName))
{
return false;
}
@@ -157,15 +157,8 @@
{
return false;
}
- if (title == null)
+ if (title != other.title)
{
- if (other.title != null)
- {
- return false;
- }
- }
- else if (!title.equals(other.title))
- {
return false;
}
return true;
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -79,4 +79,61 @@
return totalValueOfCars;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((cars == null) ? 0 : cars.hashCode());
+ result = prime * result + ((totalValueOfCars == null) ? 0 : totalValueOfCars.hashCode());
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (!super.equals(obj))
+ {
+ return false;
+ }
+ if (!(obj instanceof Owner))
+ {
+ return false;
+ }
+ Owner other = (Owner) obj;
+ if (cars == null)
+ {
+ if (other.cars != null)
+ {
+ return false;
+ }
+ }
+ else if (!cars.equals(other.cars))
+ {
+ return false;
+ }
+ if (totalValueOfCars == null)
+ {
+ if (other.totalValueOfCars != null)
+ {
+ return false;
+ }
+ }
+ else if (!totalValueOfCars.equals(other.totalValueOfCars))
+ {
+ return false;
+ }
+ return true;
+ }
+
}
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 08:26:28 UTC (rev 3714)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-12-01 08:34:48 UTC (rev 3715)
@@ -176,7 +176,7 @@
{
return false;
}
- if (getClass() != obj.getClass())
+ if (!(obj instanceof Person))
{
return false;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-12-01 08:26:35
|
Revision: 3714
http://openutils.svn.sourceforge.net/openutils/?rev=3714&view=rev
Author: gcatania
Date: 2011-12-01 08:26:28 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 adding model objects for unit tests
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml
Added Paths:
-----------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java 2011-12-01 08:26:28 UTC (rev 3714)
@@ -0,0 +1,82 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import java.util.Set;
+
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.ManyToMany;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+@DiscriminatorValue("designer")
+public class Designer extends Employee
+{
+
+ @Column
+ private int hipsterFactor;
+
+ @ManyToMany
+ Set<CarModel> designedModels;
+
+ /**
+ * @return the hipsterFactor
+ */
+ public int getHipsterFactor()
+ {
+ return hipsterFactor;
+ }
+
+ /**
+ * @param hipsterFactor the hipsterFactor to set
+ */
+ public void setHipsterFactor(int hipsterFactor)
+ {
+ this.hipsterFactor = hipsterFactor;
+ }
+
+ /**
+ * @return the designedModels
+ */
+ public Set<CarModel> getDesignedModels()
+ {
+ return designedModels;
+ }
+
+ /**
+ * @param designedModels the designedModels to set
+ */
+ public void setDesignedModels(Set<CarModel> designedModels)
+ {
+ this.designedModels = designedModels;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Designer.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java 2011-12-01 08:26:28 UTC (rev 3714)
@@ -0,0 +1,139 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import java.util.Calendar;
+
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.ManyToOne;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+@DiscriminatorValue("employee")
+public class Employee extends Person
+{
+
+ @ManyToOne
+ private CarMaker employer;
+
+ @Column
+ private CurrencyAmount grossAnnualSalary;
+
+ @Column
+ private String qualification;
+
+ @Column
+ private String department;
+
+ @Column
+ private Calendar employedSince;
+
+ /**
+ * @return the employer
+ */
+ public CarMaker getEmployer()
+ {
+ return employer;
+ }
+
+ /**
+ * @param employer the employer to set
+ */
+ public void setEmployer(CarMaker employer)
+ {
+ this.employer = employer;
+ }
+
+ /**
+ * @return the grossAnnualSalary
+ */
+ public CurrencyAmount getGrossAnnualSalary()
+ {
+ return grossAnnualSalary;
+ }
+
+ /**
+ * @param grossAnnualSalary the grossAnnualSalary to set
+ */
+ public void setGrossAnnualSalary(CurrencyAmount grossAnnualSalary)
+ {
+ this.grossAnnualSalary = grossAnnualSalary;
+ }
+
+ /**
+ * @return the qualification
+ */
+ public String getQualification()
+ {
+ return qualification;
+ }
+
+ /**
+ * @param qualification the qualification to set
+ */
+ public void setQualification(String qualification)
+ {
+ this.qualification = qualification;
+ }
+
+ /**
+ * @return the department
+ */
+ public String getDepartment()
+ {
+ return department;
+ }
+
+ /**
+ * @param department the department to set
+ */
+ public void setDepartment(String department)
+ {
+ this.department = department;
+ }
+
+ /**
+ * @return the employedSince
+ */
+ public Calendar getEmployedSince()
+ {
+ return employedSince;
+ }
+
+ /**
+ * @param employedSince the employedSince to set
+ */
+ public void setEmployedSince(Calendar employedSince)
+ {
+ this.employedSince = employedSince;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Employee.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-11-30 17:24:37 UTC (rev 3713)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-12-01 08:26:28 UTC (rev 3714)
@@ -27,11 +27,8 @@
import java.util.Set;
-import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
@@ -40,8 +37,6 @@
* @author gcatania
*/
@Entity
-@Inheritance(strategy = InheritanceType.JOINED)
-@DiscriminatorColumn(name = "personType")
@DiscriminatorValue("owner")
public class Owner extends Person
{
Modified: trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml
===================================================================
--- trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml 2011-11-30 17:24:37 UTC (rev 3713)
+++ trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml 2011-12-01 08:26:28 UTC (rev 3714)
@@ -7,6 +7,8 @@
<mapping class="it.openutils.hibernate.test.model.Car" />
<mapping class="it.openutils.hibernate.test.model.CarMaker" />
<mapping class="it.openutils.hibernate.test.model.CarModel" />
+ <mapping class="it.openutils.hibernate.test.model.Designer" />
+ <mapping class="it.openutils.hibernate.test.model.Employee" />
<mapping class="it.openutils.hibernate.test.model.FullName" />
<mapping class="it.openutils.hibernate.test.model.Owner" />
<mapping class="it.openutils.hibernate.test.model.Person" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-11-30 17:24:45
|
Revision: 3713
http://openutils.svn.sourceforge.net/openutils/?rev=3713&view=rev
Author: gcatania
Date: 2011-11-30 17:24:37 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
BSHD-2 unit tests: reworked hibernate entities, added failing unit test for lookup by id
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml
Added Paths:
-----------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
Removed Paths:
-------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Chance.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FantasticThing.java
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Wish.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -25,16 +25,22 @@
package it.openutils.hibernate.test;
+import it.openutils.hibernate.test.dao.CarDAO;
import it.openutils.hibernate.test.dao.PersonDAO;
import it.openutils.hibernate.test.model.Address;
+import it.openutils.hibernate.test.model.Car;
+import it.openutils.hibernate.test.model.CarMaker;
+import it.openutils.hibernate.test.model.CarModel;
+import it.openutils.hibernate.test.model.CurrencyAmount;
import it.openutils.hibernate.test.model.FullName;
+import it.openutils.hibernate.test.model.Owner;
import it.openutils.hibernate.test.model.Person;
-import it.openutils.hibernate.test.model.Wish;
+import java.util.Calendar;
import java.util.Collections;
+import java.util.GregorianCalendar;
import java.util.List;
-import org.hibernate.Hibernate;
import org.hibernate.criterion.Example;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@@ -52,28 +58,61 @@
/*
* TODO tests to perform: 1) find filtered with collection with zero, one or more elements 2) find filtered with
- * additional criteria 3) filter metadata support
+ * additional criteria 3) filter metadata support 4) find filtered with id 5) find filtered with backref
*/
@Autowired
private PersonDAO personDAO;
- private Person fifteenYearsOld()
+ @Autowired
+ private CarDAO carDAO;
+
+ private Person alice()
{
- return new Person(
- new FullName("Troy", "Jones"),
- 15,
- new Address("Long road", 15, "Smalltown", "MI", 14352),
- null);
+ FullName fullName = new FullName("Alice", "McBeal");
+ Calendar birthDate = new GregorianCalendar(1970, Calendar.MARCH, 7);
+ Address address = new Address("Long road", 15, "Smalltown", "MI", 14352);
+ Person p = new Person();
+ p.setName(fullName);
+ p.setBirthDate(birthDate);
+ p.setFiscalAddress(address);
+ p.setCurrentAddress(address);
+ return p;
}
+ private Owner bob()
+ {
+ FullName fullName = new FullName("Bob", "Kelso");
+ Calendar birthDate = new GregorianCalendar(1950, Calendar.MARCH, 7);
+ Address address = new Address("Sacred Heart Lane", 3, "Smalltown", "CA", 11243);
+ Owner o = new Owner();
+ o.setName(fullName);
+ o.setBirthDate(birthDate);
+ o.setFiscalAddress(address);
+ o.setCurrentAddress(address);
+ return o;
+ }
+
+ private Owner chuck()
+ {
+ FullName fullName = new FullName("Chuck", "Palahniuk");
+ Calendar birthDate = new GregorianCalendar(1962, Calendar.FEBRUARY, 21);
+ Address address = new Address("Awesome Street", 2, "Pasco", "WA", 13121);
+ Owner p = new Owner();
+ p.setName(fullName);
+ p.setBirthDate(birthDate);
+ p.setFiscalAddress(address);
+ p.setCurrentAddress(address);
+ return p;
+ }
+
/**
* basic save/evict/get test.
*/
@Test
public void testSaveAndRetrievePerson()
{
- Person person = fifteenYearsOld();
+ Person person = alice();
Long savedId = personDAO.save(person);
Assert.assertNotNull(savedId);
Long personId = person.getId();
@@ -86,52 +125,100 @@
@Test
public void testFindFilteredFirst()
{
- personDAO.save(fifteenYearsOld());
- List<Person> found = personDAO.findFiltered(new Person(new FullName(null, "Jones"), null, null, null));
- Assert.assertTrue(found.size() > 0, "No persons found.");
+ Person alice = alice();
+ personDAO.save(alice);
+ Person filter = new Person();
+ filter.setName(new FullName(null, "McBeal"));
+ List<Person> found = personDAO.findFiltered(filter);
+
+ Assert.assertEquals(found.size(), 1, "No persons found.");
+ Assert.assertEquals(found.get(0), alice);
}
@Test
- public void testExampleBasic()
+ public void testFindFilteredById()
{
- personDAO.save(fifteenYearsOld());
- Person outsideFilter = fifteenYearsOld();
- outsideFilter.getName().setFamilyName("Mahoney");
- personDAO.save(outsideFilter);
- Person filter = new Person(new FullName(null, "Jones"), null, null, null);
- List<Person> foundByExample = personDAO.find(Collections.singletonList(Example.create(filter)));
- Assert.assertNotNull(foundByExample);
- Assert.assertEquals(foundByExample.size(), 1);
- Assert.assertEquals(foundByExample.get(0).getName().getFamilyName(), "Jones");
+ Person alice = alice();
+ Long savedId = personDAO.save(alice);
+ Person filter = new Person();
+ filter.setId(savedId);
+ List<Person> found = personDAO.findFiltered(filter);
- List<Person> found = personDAO.findFiltered(filter);
- Assert.assertNotNull(found);
- Assert.assertEquals(found.size(), 1);
- Assert.assertEquals(found.get(0).getName().getFamilyName(), "Jones");
+ Assert.assertEquals(found.size(), 1, "No persons found.");
+ Assert.assertEquals(found.get(0), alice);
}
+ /*
+ * disabled: filter by id on child objects isn't working yet (see
+ * http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/querycriteria.html#querycriteria-examples and
+ * https://forum.hibernate.org/viewtopic.php?f=9&t=1004833&view=next )
+ */
+ @Test(enabled = false)
+ public void testFindFilteredByChildId()
+ {
+ Owner bob = bob();
+ CarMaker toyota = new CarMaker();
+ toyota.setName("Toyota");
+ toyota.setCapitalization(new CurrencyAmount(12000, "YEN"));
+ CarModel prius = new CarModel();
+ prius.setName("Prius");
+ prius.setYear(Integer.valueOf(2008));
+ toyota.setModels(Collections.singletonList(prius));
+
+ Car bobsPrius = new Car(new GregorianCalendar(2010, Calendar.OCTOBER, 12), prius, toyota);
+ bob.setCars(Collections.singleton(bobsPrius));
+ personDAO.save(bob);
+
+ Owner filter = new Owner();
+ Car carFilter = new Car(null, null, null);
+ carFilter.setId(bobsPrius.getId());
+ filter.setCars(Collections.singleton(carFilter));
+ Person found = personDAO.findFilteredFirst(filter);
+ Assert.assertEquals(found.getName(), bob.getName());
+ }
+
@Test
- public void testExampleAssociations()
+ public void testExampleBasic()
{
- Person fifteenYearsOld = fifteenYearsOld();
- fifteenYearsOld.setWish(new Wish(fifteenYearsOld, "because he's young"));
- personDAO.save(fifteenYearsOld);
- Person another = fifteenYearsOld();
- another.setWish(new Wish(another, "because he's a nerd"));
- personDAO.save(another);
-
+ personDAO.save(alice());
+ Person outsideFilter = alice();
+ outsideFilter.getName().setFamilyName("Mahoney");
+ personDAO.save(outsideFilter);
Person filter = new Person();
- filter.setWish(new Wish(null, "because he's young"));
+ filter.setName(new FullName(null, "McBeal"));
List<Person> foundByExample = personDAO.find(Collections.singletonList(Example.create(filter)));
- Hibernate.initialize(foundByExample);
Assert.assertNotNull(foundByExample);
- Assert.assertEquals(foundByExample.size(), 2);
+ Assert.assertEquals(foundByExample.size(), 1);
+ Assert.assertEquals(foundByExample.get(0).getName().getFamilyName(), "McBeal");
List<Person> found = personDAO.findFiltered(filter);
- Hibernate.initialize(found);
Assert.assertNotNull(found);
Assert.assertEquals(found.size(), 1);
- Assert.assertEquals(found.get(0).getWish().getReason(), "because he's young");
+ Assert.assertEquals(found.get(0).getName().getFamilyName(), "McBeal");
}
+ // @Test
+ // public void testExampleAssociations()
+ // {
+ // Person fifteenYearsOld = fifteenYearsOld();
+ // fifteenYearsOld.setWish(new Wish(fifteenYearsOld, "because he's young"));
+ // personDAO.save(fifteenYearsOld);
+ // Person another = fifteenYearsOld();
+ // another.setWish(new Wish(another, "because he's a nerd"));
+ // personDAO.save(another);
+ //
+ // Person filter = new Person();
+ // filter.setWish(new Wish(null, "because he's young"));
+ // List<Person> foundByExample = personDAO.find(Collections.singletonList(Example.create(filter)));
+ // Hibernate.initialize(foundByExample);
+ // Assert.assertNotNull(foundByExample);
+ // Assert.assertEquals(foundByExample.size(), 2);
+ //
+ // List<Person> found = personDAO.findFiltered(filter);
+ // Hibernate.initialize(found);
+ // Assert.assertNotNull(found);
+ // Assert.assertEquals(found.size(), 1);
+ // Assert.assertEquals(found.get(0).getWish().getReason(), "because he's young");
+ // }
+
}
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,55 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.dao;
+
+import it.openutils.dao.hibernate.HibernateDAO;
+import it.openutils.dao.hibernate.HibernateDAOImpl;
+import it.openutils.hibernate.test.model.Person;
+
+import org.hibernate.SessionFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+
+/**
+ * @author gcatania
+ */
+public interface CarDAO extends HibernateDAO<Person, Long>
+{
+
+ @Repository("carDAO")
+ class PersonDAOImpl extends HibernateDAOImpl<Person, Long> implements CarDAO
+ {
+
+ @Autowired
+ public PersonDAOImpl(SessionFactory factory)
+ {
+ super(Person.class);
+ setSessionFactory(factory);
+ }
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -40,9 +40,6 @@
public interface PersonDAO extends HibernateDAO<Person, Long>
{
- /**
- * @author gcatania
- */
@Repository("personDAO")
class PersonDAOImpl extends HibernateDAOImpl<Person, Long> implements PersonDAO
{
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,150 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import java.util.Calendar;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+public class Car
+{
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @ManyToOne
+ private final CarModel model;
+
+ @ManyToOne
+ private final CarMaker maker;
+
+ @ManyToOne
+ private Owner owner;
+
+ @Column
+ private Calendar registrationDate;
+
+ @Column
+ private CurrencyAmount marketValue;
+
+ public Car(Calendar registrationDate, CarModel model, CarMaker maker)
+ {
+ this.model = model;
+ this.maker = maker;
+ }
+
+ /**
+ * @return the id
+ */
+ public Long getId()
+ {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ /**
+ * @return the owner
+ */
+ public Owner getOwner()
+ {
+ return owner;
+ }
+
+ /**
+ * @param owner the owner to set
+ */
+ public void setOwner(Owner owner)
+ {
+ this.owner = owner;
+ }
+
+ /**
+ * @return the registrationDate
+ */
+ public Calendar getRegistrationDate()
+ {
+ return registrationDate;
+ }
+
+ /**
+ * @param registrationDate the registrationDate to set
+ */
+ public void setRegistrationDate(Calendar registrationDate)
+ {
+ this.registrationDate = registrationDate;
+ }
+
+ /**
+ * @return the marketValue
+ */
+ public CurrencyAmount getMarketValue()
+ {
+ return marketValue;
+ }
+
+ /**
+ * @param marketValue the marketValue to set
+ */
+ public void setMarketValue(CurrencyAmount marketValue)
+ {
+ this.marketValue = marketValue;
+ }
+
+ /**
+ * @return the model
+ */
+ public CarModel getModel()
+ {
+ return model;
+ }
+
+ /**
+ * @return the maker
+ */
+ public CarMaker getMaker()
+ {
+ return maker;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Car.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,119 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+public class CarMaker
+{
+
+ @Id
+ private Long id;
+
+ @Column
+ private String name;
+
+ @Column
+ private CurrencyAmount capitalization;
+
+ @OneToMany
+ private List<CarModel> models;
+
+ /**
+ * @return the id
+ */
+ public Long getId()
+ {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * @return the capitalization
+ */
+ public CurrencyAmount getCapitalization()
+ {
+ return capitalization;
+ }
+
+ /**
+ * @param capitalization the capitalization to set
+ */
+ public void setCapitalization(CurrencyAmount capitalization)
+ {
+ this.capitalization = capitalization;
+ }
+
+ /**
+ * @return the models
+ */
+ public List<CarModel> getModels()
+ {
+ return models;
+ }
+
+ /**
+ * @param models the models to set
+ */
+ public void setModels(List<CarModel> models)
+ {
+ this.models = models;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarMaker.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,97 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+public class CarModel
+{
+
+ @Id
+ private Long id;
+
+ @Column
+ private String name;
+
+ @Column
+ private Integer year;
+
+ /**
+ * @return the id
+ */
+ public Long getId()
+ {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * @return the year
+ */
+ public Integer getYear()
+ {
+ return year;
+ }
+
+ /**
+ * @param year the year to set
+ */
+ public void setYear(Integer year)
+ {
+ this.year = year;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CarModel.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Chance.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Chance.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Chance.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -1,35 +0,0 @@
-/**
- *
- * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
- *
- * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl-2.1.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package it.openutils.hibernate.test.model;
-
-/**
- * @author gcatania
- */
-public enum Chance {
-
- /** chance. */
- TOTALLY_REMOTE, VAGUELY_POSSIBLE, QUITE_POSSIBLE, CAKEWALK_EASY
-}
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,65 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import javax.persistence.Embeddable;
+
+
+/**
+ * @author gcatania
+ */
+@Embeddable
+public class CurrencyAmount
+{
+
+ private final double amount;
+
+ private final String currency;
+
+ public CurrencyAmount(double amount, String currency)
+ {
+ super();
+ this.amount = amount;
+ this.currency = currency;
+ }
+
+ /**
+ * @return the amount
+ */
+ public double getAmount()
+ {
+ return amount;
+ }
+
+ /**
+ * @return the currency
+ */
+ public String getCurrency()
+ {
+ return currency;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FantasticThing.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FantasticThing.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/FantasticThing.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -1,214 +0,0 @@
-/**
- *
- * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
- *
- * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl-2.1.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package it.openutils.hibernate.test.model;
-
-import java.util.Set;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-
-
-/**
- * @author gcatania
- */
-@Entity
-public class FantasticThing
-{
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Long id;
-
- private String thingName;
-
- private Chance chanceOfAchievement;
-
- @ManyToMany(mappedBy = "objectsOfWish", cascade = CascadeType.ALL)
- private Set<Wish> wishes;
-
- public FantasticThing()
- {
- }
-
- public FantasticThing(String thingName, Chance chanceOfAchievement)
- {
- this.thingName = thingName;
- this.chanceOfAchievement = chanceOfAchievement;
- }
-
- /**
- * @return the id
- */
- public Long getId()
- {
- return id;
- }
-
- /**
- * @param id the id to set
- */
- public void setId(Long id)
- {
- this.id = id;
- }
-
- /**
- * @return the thingName
- */
- public String getThingName()
- {
- return thingName;
- }
-
- /**
- * @param thingName the thingName to set
- */
- public void setThingName(String thingName)
- {
- this.thingName = thingName;
- }
-
- /**
- * @return the chanceOfAchievement
- */
- public Chance getChanceOfAchievement()
- {
- return chanceOfAchievement;
- }
-
- /**
- * @param chanceOfAchievement the chanceOfAchievement to set
- */
- public void setChanceOfAchievement(Chance chanceOfAchievement)
- {
- this.chanceOfAchievement = chanceOfAchievement;
- }
-
- /**
- * @return the wishes
- */
- public Set<Wish> getWishes()
- {
- return wishes;
- }
-
- /**
- * @param wishes the wishes to set
- */
- public void setWishes(Set<Wish> wishes)
- {
- this.wishes = wishes;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((chanceOfAchievement == null) ? 0 : chanceOfAchievement.hashCode());
- result = prime * result + ((id == null) ? 0 : id.hashCode());
- result = prime * result + ((thingName == null) ? 0 : thingName.hashCode());
- return result;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (obj == null)
- {
- return false;
- }
- if (getClass() != obj.getClass())
- {
- return false;
- }
- FantasticThing other = (FantasticThing) obj;
- if (chanceOfAchievement == null)
- {
- if (other.chanceOfAchievement != null)
- {
- return false;
- }
- }
- else if (!chanceOfAchievement.equals(other.chanceOfAchievement))
- {
- return false;
- }
- if (id == null)
- {
- if (other.id != null)
- {
- return false;
- }
- }
- else if (!id.equals(other.id))
- {
- return false;
- }
- if (thingName == null)
- {
- if (other.thingName != null)
- {
- return false;
- }
- }
- else if (!thingName.equals(other.thingName))
- {
- return false;
- }
- return true;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString()
- {
- return "FantasticThing [chanceOfAchievement="
- + chanceOfAchievement
- + ", id="
- + id
- + ", thingName="
- + thingName
- + "]";
- }
-
-}
Added: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java (rev 0)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -0,0 +1,87 @@
+/**
+ *
+ * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
+ *
+ * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package it.openutils.hibernate.test.model;
+
+import java.util.Set;
+
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.OneToMany;
+import javax.persistence.Transient;
+
+
+/**
+ * @author gcatania
+ */
+@Entity
+@Inheritance(strategy = InheritanceType.JOINED)
+@DiscriminatorColumn(name = "personType")
+@DiscriminatorValue("owner")
+public class Owner extends Person
+{
+
+ @OneToMany
+ private Set<Car> cars;
+
+ @Transient
+ private CurrencyAmount totalValueOfCars;
+
+ /**
+ * @return the cars
+ */
+ public Set<Car> getCars()
+ {
+ return cars;
+ }
+
+ /**
+ * @param cars the cars to set
+ */
+ public void setCars(Set<Car> cars)
+ {
+ this.cars = cars;
+ }
+
+ /**
+ * @param totalValueOfCars the totalValueOfCars to set
+ */
+ public void setTotalValueOfCars(CurrencyAmount totalValueOfCars)
+ {
+ this.totalValueOfCars = totalValueOfCars;
+ }
+
+ /**
+ * @return the totalValueOfCars
+ */
+ public CurrencyAmount getTotalValueOfCars()
+ {
+ return totalValueOfCars;
+ }
+
+}
Property changes on: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Owner.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Person.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -25,22 +25,28 @@
package it.openutils.hibernate.test.model;
+import java.util.Calendar;
+
import javax.persistence.CascadeType;
import javax.persistence.Column;
+import javax.persistence.DiscriminatorColumn;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne;
-import javax.persistence.OneToOne;
/**
* @author gcatania
*/
@Entity
+@Inheritance(strategy = InheritanceType.JOINED)
+@DiscriminatorColumn(name = "personType")
public class Person
{
@@ -51,8 +57,8 @@
@Embedded
private FullName name;
- @Column(nullable = false, scale = 3)
- private Integer age;
+ @Column(nullable = false)
+ private Calendar birthDate;
@ManyToOne(fetch = FetchType.EAGER, optional = false, cascade = CascadeType.ALL)
private Address currentAddress;
@@ -60,21 +66,6 @@
@ManyToOne(cascade = CascadeType.ALL)
private Address fiscalAddress;
- @OneToOne(cascade = CascadeType.ALL)
- private Wish wish;
-
- public Person()
- {
- }
-
- public Person(FullName name, Integer age, Address currentAddress, Address fiscalAddress)
- {
- this.name = name;
- this.age = age;
- this.currentAddress = currentAddress;
- this.fiscalAddress = fiscalAddress;
- }
-
/**
* @return the id
*/
@@ -108,6 +99,22 @@
}
/**
+ * @return the birthDate
+ */
+ public Calendar getBirthDate()
+ {
+ return birthDate;
+ }
+
+ /**
+ * @param birthDate the birthDate to set
+ */
+ public void setBirthDate(Calendar birthDate)
+ {
+ this.birthDate = birthDate;
+ }
+
+ /**
* @return the currentAddress
*/
public Address getCurrentAddress()
@@ -140,22 +147,6 @@
}
/**
- * @return the wish
- */
- public Wish getWish()
- {
- return wish;
- }
-
- /**
- * @param wish the wish to set
- */
- public void setWish(Wish wish)
- {
- this.wish = wish;
- }
-
- /**
* {@inheritDoc}
*/
@Override
@@ -163,12 +154,11 @@
{
final int prime = 31;
int result = 1;
- result = prime * result + ((age == null) ? 0 : age);
+ result = prime * result + ((birthDate == null) ? 0 : birthDate.hashCode());
result = prime * result + ((currentAddress == null) ? 0 : currentAddress.hashCode());
result = prime * result + ((fiscalAddress == null) ? 0 : fiscalAddress.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((wish == null) ? 0 : wish.hashCode());
return result;
}
@@ -191,14 +181,14 @@
return false;
}
Person other = (Person) obj;
- if (age == null)
+ if (birthDate == null)
{
- if (other.age != null)
+ if (other.birthDate != null)
{
return false;
}
}
- else if (!age.equals(other.age))
+ else if (!birthDate.equals(other.birthDate))
{
return false;
}
@@ -246,17 +236,6 @@
{
return false;
}
- if (wish == null)
- {
- if (other.wish != null)
- {
- return false;
- }
- }
- else if (!wish.equals(other.wish))
- {
- return false;
- }
return true;
}
@@ -266,9 +245,7 @@
@Override
public String toString()
{
- return "Person [age="
- + age
- + ", currentAddress="
+ return "Person [currentAddress="
+ currentAddress
+ ", fiscalAddress="
+ fiscalAddress
@@ -276,8 +253,6 @@
+ id
+ ", name="
+ name
- + ", wish="
- + wish
+ "]";
}
Deleted: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Wish.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Wish.java 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Wish.java 2011-11-30 17:24:37 UTC (rev 3713)
@@ -1,260 +0,0 @@
-/**
- *
- * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html)
- *
- * Copyright(C) 2005-2011, Openmind S.r.l. http://www.openmindonline.it
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl-2.1.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package it.openutils.hibernate.test.model;
-
-import java.util.Set;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Transient;
-
-
-/**
- * @author gcatania
- */
-@Entity
-public class Wish
-{
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Long id;
-
- @OneToOne(mappedBy = "wish", optional = false, cascade = CascadeType.ALL)
- private Person person;
-
- @Column(nullable = false)
- private String reason;
-
- @ManyToMany(cascade = CascadeType.ALL)
- private Set<FantasticThing> objectsOfWish;
-
- @Transient
- private Integer objectCount;
-
- public Wish()
- {
- }
-
- public Wish(Person person, String reason)
- {
- this.person = person;
- this.reason = reason;
- }
-
- /**
- * @return the id
- */
- public Long getId()
- {
- return id;
- }
-
- /**
- * @param id the id to set
- */
- public void setId(Long id)
- {
- this.id = id;
- }
-
- /**
- * @return the person
- */
- public Person getPerson()
- {
- return person;
- }
-
- /**
- * @param person the person to set
- */
- public void setPerson(Person person)
- {
- this.person = person;
- }
-
- /**
- * @return the reason
- */
- public String getReason()
- {
- return reason;
- }
-
- /**
- * @param reason the reason to set
- */
- public void setReason(String reason)
- {
- this.reason = reason;
- }
-
- /**
- * @return the objectsOfWish
- */
- public Set<FantasticThing> getObjectsOfWish()
- {
- return objectsOfWish;
- }
-
- /**
- * @param objectsOfWish the objectsOfWish to set
- */
- public void setObjectsOfWish(Set<FantasticThing> objectsOfWish)
- {
- this.objectsOfWish = objectsOfWish;
- }
-
- /**
- * @return the objectCount
- */
- public Integer getObjectCount()
- {
- if (objectCount == null)
- {
- objectCount = objectsOfWish.size();
- }
- return objectCount;
- }
-
- /**
- * @param objectCount the objectCount to set
- */
- public void setObjectCount(Integer objectCount)
- {
- if (objectCount != null && objectCount != objectsOfWish.size())
- {
- throw new IllegalArgumentException();
- }
- this.objectCount = objectCount;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((id == null) ? 0 : id.hashCode());
- result = prime * result + ((objectCount == null) ? 0 : objectCount.hashCode());
- result = prime * result + ((objectsOfWish == null) ? 0 : objectsOfWish.hashCode());
- result = prime * result + ((reason == null) ? 0 : reason.hashCode());
- return result;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (obj == null)
- {
- return false;
- }
- if (getClass() != obj.getClass())
- {
- return false;
- }
- Wish other = (Wish) obj;
- if (id == null)
- {
- if (other.id != null)
- {
- return false;
- }
- }
- else if (!id.equals(other.id))
- {
- return false;
- }
- if (objectCount == null)
- {
- if (other.objectCount != null)
- {
- return false;
- }
- }
- else if (!objectCount.equals(other.objectCount))
- {
- return false;
- }
- if (objectsOfWish == null)
- {
- if (other.objectsOfWish != null)
- {
- return false;
- }
- }
- else if (!objectsOfWish.equals(other.objectsOfWish))
- {
- return false;
- }
- if (reason == null)
- {
- if (other.reason != null)
- {
- return false;
- }
- }
- else if (!reason.equals(other.reason))
- {
- return false;
- }
- return true;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString()
- {
- return "Wish [id="
- + id
- + ", objectCount="
- + objectCount
- + ", objectsOfWish="
- + objectsOfWish
- + ", reason="
- + reason
- + "]";
- }
-
-}
Modified: trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml
===================================================================
--- trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml 2011-11-30 15:11:36 UTC (rev 3712)
+++ trunk/openutils-bshd5/src/test/resources/hibernate.cfg.xml 2011-11-30 17:24:37 UTC (rev 3713)
@@ -4,9 +4,11 @@
<hibernate-configuration>
<session-factory>
<mapping class="it.openutils.hibernate.test.model.Address" />
- <mapping class="it.openutils.hibernate.test.model.FantasticThing" />
+ <mapping class="it.openutils.hibernate.test.model.Car" />
+ <mapping class="it.openutils.hibernate.test.model.CarMaker" />
+ <mapping class="it.openutils.hibernate.test.model.CarModel" />
<mapping class="it.openutils.hibernate.test.model.FullName" />
+ <mapping class="it.openutils.hibernate.test.model.Owner" />
<mapping class="it.openutils.hibernate.test.model.Person" />
- <mapping class="it.openutils.hibernate.test.model.Wish" />
</session-factory>
</hibernate-configuration>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gca...@us...> - 2011-11-30 15:11:43
|
Revision: 3712
http://openutils.svn.sourceforge.net/openutils/?rev=3712&view=rev
Author: gcatania
Date: 2011-11-30 15:11:36 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
BSHD-2 exposed ExampleTree methods, deprecated use of FilterMetadata
Modified Paths:
--------------
trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java
trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java
trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/EnhancedExample.java
trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTree.java
trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java
Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java
===================================================================
--- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2011-11-30 12:05:20 UTC (rev 3711)
+++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2011-11-30 15:11:36 UTC (rev 3712)
@@ -25,6 +25,7 @@
package it.openutils.dao.hibernate;
+import it.openutils.hibernate.example.ExampleTree;
import it.openutils.hibernate.example.FilterMetadata;
import java.io.Serializable;
@@ -125,13 +126,53 @@
List<T> findFiltered(T filter, int maxResults, int page);
/**
+ * Retrieve the entities handled by this DAO that match the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @return a list of distinct entity instances (never null)
+ */
+ List<T> findFiltered(ExampleTree exampleTree);
+
+ /**
+ * Retrieve the entities handled by this DAO that match the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @param orders the orders to apply with respect to entity class properties
+ * @return a list of distinct entity instances (never null)
+ */
+ List<T> findFiltered(ExampleTree exampleTree, Order... orders);
+
+ /**
+ * Retrieve the entities handled by this DAO that match the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @param maxResults the maximum number of results to be fetched
+ * @param page the zero-based page number to use when displaying paginated results (the first entity returned is the
+ * one at position <code>maxResults * page</code> in the complete list of results), or <code>0</code> for no
+ * pagination
+ * @return a list of distinct entity instances (never null)
+ */
+ List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page);
+
+ /**
+ * Retrieve the entities handled by this DAO that match the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @param maxResults the maximum number of results to be fetched
+ * @param page the zero-based page number to use when displaying paginated results (the first entity returned is the
+ * one at position <code>maxResults * page</code> in the complete list of results), or <code>0</code> for no
+ * pagination
+ * @param orders the orders to apply with respect to entity class properties
+ * @return a list of distinct entity instances (never null)
+ */
+ List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page, Order... orders);
+
+ /**
* Retrieve the entities handled by this DAO whose property values match, via <code>equals()</code> or via a
* specified <code>FilterMetadata</code> object, <code>filter</code>'s non-null property values.
* @param filter an instance of this DAO's entity class to be used as filter
* @param metadata a map that matches names of entity class properties to <code>FilterMetadata</code> modifiers,
* that will be used for comparing values of the corresponding property
* @return a list of distinct entity instances (never null)
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
+ @Deprecated
List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata);
/**
@@ -145,7 +186,9 @@
* one at position <code>maxResults * page</code> in the complete list of results), or <code>0</code> for no
* pagination
* @return a list of distinct entity instances (never null)
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
+ @Deprecated
List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page);
/**
@@ -161,7 +204,9 @@
* pagination
* @param orders the orders to apply with respect to entity class properties
* @return a list of distinct entity instances (never null)
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
+ @Deprecated
List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page,
Order... orders);
@@ -179,7 +224,9 @@
* @param criteria a list of additional Hibernate criteria
* @param orders the orders to apply with respect to entity class properties
* @return a list of distinct entity instances (never null)
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
+ @Deprecated
List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page,
List< ? extends Criterion> criteria, Order... orders);
@@ -197,7 +244,9 @@
* @param properties the names of the properties to return
* @param orders the orders to apply with respect to entity class properties
* @return a list of distinct entity instances (never null)
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
+ @Deprecated
List< ? > findFilteredProperties(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults,
int page, List< ? extends Criterion> criteria, List<String> properties, Order... orders);
@@ -210,6 +259,14 @@
T findFilteredFirst(T filter);
/**
+ * Retrieve the first entity instance that matches the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @return the first matching instance of the entity class managed by this DAO, or <code>null</code> if none found
+ * @see #findFiltered(ExampleTree)
+ */
+ T findFilteredFirst(ExampleTree exampleTree);
+
+ /**
* Retrieve the first entity instance that matches the input <code>filter</code>, if existing.
* @param filter an instance of this DAO's entity class to be used as filter
* @param orders the orders to apply with respect to entity class properties
@@ -219,6 +276,15 @@
T findFilteredFirst(T filter, Order... orders);
/**
+ * Retrieve the first entity instance that matches the input example tree
+ * @param exampleTree the example tree criterion to match
+ * @param orders the orders to apply with respect to entity class properties
+ * @return the first matching instance of the entity class managed by this DAO, or <code>null</code> if none found
+ * @see #findFiltered(ExampleTree, Order...)
+ */
+ T findFilteredFirst(ExampleTree exampleTree, final Order... orders);
+
+ /**
* Retrieve the first entity instance that matches the input <code>filter</code> and the additional input
* <code>criteria</code>, if existing.
* @param filter an instance of this DAO's entity class to be used as filter
@@ -337,7 +403,7 @@
* one at position <code>maxResults * page</code> in the complete list of results), or <code>0</code> for no
* pagination
* @return a list of distinct entity instances (never null)
- * @deprecated superseded by {@link #findFiltered(Object, Map, int, int, Order...)}
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
@Deprecated
List<T> findFiltered(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata, int maxResults,
@@ -357,7 +423,7 @@
* pagination
* @param criteria a list of additional Hibernate criteria
* @return a list of distinct entity instances (never null)
- * @deprecated superseded by {@link #findFiltered(Object, Map, int, int, List, Order...)}
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
@Deprecated
List<T> findFiltered(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata, int maxResults,
@@ -377,7 +443,7 @@
* @param criteria a list of additional Hibernate criteria
* @param properties the names of the properties to return
* @return a list of distinct entity instances (never null)
- * @deprecated superseded by {@link #findFilteredProperties(Object, Map, int, int, List, List, Order...)}
+ * @deprecated use of {@link FilterMetadata} has been deprecated
*/
@Deprecated
List< ? > findFilteredProperties(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata,
Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java
===================================================================
--- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2011-11-30 12:05:20 UTC (rev 3711)
+++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2011-11-30 15:11:36 UTC (rev 3712)
@@ -38,6 +38,8 @@
import java.util.Map;
import org.aopalliance.aop.AspectException;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
@@ -188,46 +190,53 @@
*/
public List<T> findFiltered(T filter)
{
- return getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- Integer.MAX_VALUE,
- 0,
- Collections.<Criterion> emptyList(),
- getDefaultOrder());
+ return getThis().findFiltered(new ExampleTree(filter), Integer.MAX_VALUE, 0, getDefaultOrder());
}
/**
* {@inheritDoc}
*/
+ public List<T> findFiltered(ExampleTree exampleTree)
+ {
+ return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public List<T> findFiltered(T filter, Order... orders)
{
- return getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- Integer.MAX_VALUE,
- 0,
- Collections.<Criterion> emptyList(),
- orders);
+ return getThis().findFiltered(new ExampleTree(filter), Integer.MAX_VALUE, 0, orders);
}
/**
* {@inheritDoc}
*/
+ public List<T> findFiltered(ExampleTree exampleTree, Order... orders)
+ {
+ return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, orders);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public List<T> findFiltered(T filter, int maxResults, int page)
{
- return getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- maxResults,
- page,
- Collections.<Criterion> emptyList(),
- getDefaultOrder());
+ return getThis().findFiltered(new ExampleTree(filter), maxResults, page, getDefaultOrder());
}
/**
* {@inheritDoc}
*/
+ public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page)
+ {
+ return getThis().findFiltered(exampleTree, maxResults, page, getDefaultOrder());
+ }
+
+ /**
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
+ */
+ @Deprecated
public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata)
{
return getThis().findFiltered(
@@ -240,8 +249,9 @@
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
+ @Deprecated
public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page)
{
return getThis().findFiltered(
@@ -258,41 +268,41 @@
*/
public T findFilteredFirst(T filter)
{
- return getFirstInCollection(getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- 1,
- 0,
- Collections.<Criterion> emptyList(),
- getDefaultOrder()));
+ return getFirstInCollection(findFiltered(filter));
}
/**
* {@inheritDoc}
*/
+ public T findFilteredFirst(ExampleTree exampleTree)
+ {
+ return getFirstInCollection(findFiltered(exampleTree));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public T findFilteredFirst(T filter, final Order... orders)
{
- return getFirstInCollection(getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- 1,
- 0,
- Collections.<Criterion> emptyList(),
- orders));
+ return getFirstInCollection(findFiltered(filter, orders));
}
/**
* {@inheritDoc}
*/
+ public T findFilteredFirst(ExampleTree exampleTree, final Order... orders)
+ {
+ return getFirstInCollection(findFiltered(exampleTree, orders));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public T findFilteredFirst(T filter, List< ? extends Criterion> criteria)
{
- return getFirstInCollection(getThis().findFiltered(
- filter,
- getDefaultFilterMetadata(),
- 1,
- 0,
- criteria,
- getDefaultOrder()));
+ ExampleTree exampleTree = new ExampleTree(filter);
+ appendToRoot(exampleTree, criteria);
+ return getFirstInCollection(getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder()));
}
/**
@@ -364,7 +374,6 @@
*/
public boolean delete(final K key)
{
-
return getHibernateTemplate().execute(new HibernateCallback<Boolean>()
{
@@ -374,7 +383,6 @@
return true;
}
});
-
}
/**
@@ -396,15 +404,15 @@
/**
* {@inheritDoc}
*/
- @SuppressWarnings("unchecked")
public T merge(final T obj)
{
- return (T) getHibernateTemplate().execute(new HibernateCallback()
+ return getHibernateTemplate().execute(new HibernateCallback<T>()
{
- public Object doInHibernate(final Session ses) throws HibernateException
+ @SuppressWarnings("unchecked")
+ public T doInHibernate(final Session ses) throws HibernateException
{
- return ses.merge(obj);
+ return (T) ses.merge(obj);
}
});
@@ -422,6 +430,15 @@
/**
* {@inheritDoc}
*/
+ public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page, Order... orders)
+ {
+ return getHibernateTemplate().execute(new ExampleTreeCallback(exampleTree, orders, maxResults, page));
+ }
+
+ /**
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
+ */
+ @Deprecated
public List<T> findFiltered(T filter, Order[] customOrder, Map<String, ? extends FilterMetadata> metadata,
int maxResults, int page)
{
@@ -435,8 +452,9 @@
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
+ @Deprecated
public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page,
Order... orders)
{
@@ -444,23 +462,38 @@
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
+ @Deprecated
public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page,
List< ? extends Criterion> criteria, Order... orders)
{
- if (metadata == null || metadata.isEmpty())
+ HibernateCallback<List<T>> callback;
+ if (MapUtils.isNotEmpty(metadata))
{
- return getHibernateTemplate().execute(new ExampleTreeCallback(orders, criteria, maxResults, page, filter));
+ // backwards compatibility
+ callback = new HibernateCallbackForExecution(
+ filter,
+ page,
+ maxResults,
+ metadata,
+ orders,
+ criteria,
+ Collections.<String> emptyList());
}
- return getHibernateTemplate().execute(
- new HibernateCallbackForExecution(filter, page, maxResults, metadata, orders, criteria, Collections
- .<String> emptyList()));
+ else
+ {
+ ExampleTree exampleTree = new ExampleTree(filter);
+ appendToRoot(exampleTree, criteria);
+ callback = new ExampleTreeCallback(exampleTree, orders, maxResults, page);
+ }
+ return getHibernateTemplate().execute(callback);
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
+ @Deprecated
public List< ? > findFilteredProperties(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults,
int page, List< ? extends Criterion> criteria, List<String> properties, Order... orders)
{
@@ -469,7 +502,7 @@
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
@Deprecated
public List<T> findFiltered(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata,
@@ -479,7 +512,7 @@
}
/**
- * {@inheritDoc}
+ * @deprecated use of {@link FilterMetadata} has been deprecated {@inheritDoc}
*/
@Deprecated
public List< ? > findFilteredProperties(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata,
@@ -619,7 +652,7 @@
* @param key the key name
* @param value the object to set as the parameter
*/
- protected void setParameterValue(Query query, String key, Object value)
+ protected static void setParameterValue(Query query, String key, Object value)
{
if (null == key || null == value)
{
@@ -655,6 +688,22 @@
}
/**
+ * appends the input criterions to the input example tree as root entity criterions
+ * @param exampleTree the example tree
+ * @param criterions the criterions to append
+ */
+ protected static void appendToRoot(ExampleTree exampleTree, List< ? extends Criterion> criterions)
+ {
+ if (criterions != null)
+ {
+ for (Criterion crit : criterions)
+ {
+ exampleTree.add(StringUtils.EMPTY, crit);
+ }
+ }
+ }
+
+ /**
* @return This is needed as for http://opensource.atlassian.com/projects/spring/browse/SPR-2226
*/
@SuppressWarnings("unchecked")
@@ -687,41 +736,34 @@
private final Order[] orders;
- private final List< ? extends Criterion> criteria;
-
private final int page;
private final int maxResults;
- private final T filter;
+ private final ExampleTree exampleTree;
- private ExampleTreeCallback(
- Order[] orders,
- List< ? extends Criterion> criteria,
- int maxResults,
- int page,
- T filter)
+ private ExampleTreeCallback(ExampleTree exampleTree, Order[] orders, int maxResults, int page)
{
+ this.exampleTree = exampleTree;
this.orders = orders;
- this.criteria = criteria;
this.page = page;
this.maxResults = maxResults;
- this.filter = filter;
}
@SuppressWarnings("unchecked")
public List<T> doInHibernate(Session session) throws HibernateException, SQLException
{
- Criteria crit = new ExampleTree(filter).create(session);
+ Criteria crit = exampleTree.create(session);
+
+ // backwards compatibility
+ Map<String, ? extends FilterMetadata> filterMetadata = getDefaultFilterMetadata();
+ if (MapUtils.isNotEmpty(filterMetadata))
+ {
+ new FilterMetadataSupport(exampleTree.getRootEntity(), filterMetadata).appendTo(crit, session);
+ }
+
crit.setMaxResults(maxResults);
crit.setFirstResult(maxResults * page);
- if (criteria != null)
- {
- for (Criterion c : criteria)
- {
- crit.add(c);
- }
- }
if (orders != null)
{
for (Order o : orders)
@@ -734,9 +776,11 @@
}
/**
+ * @deprecated callback implementation that uses EnhancedExample, deprecated in favor of ExampleTreeCallback
* @author carone
* @version $Id$
*/
+ @Deprecated
private final class HibernateCallbackForExecution implements HibernateCallback<List<T>>
{
Modified: trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/EnhancedExample.java
===================================================================
--- trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/EnhancedExample.java 2011-11-30 12:05:20 UTC (rev 3711)
+++ trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/EnhancedExample.java 2011-11-30 15:11:36 UTC (rev 3712)
@@ -48,9 +48,12 @@
/**
+ * @deprecated this example implementation does not take into account hibernate metadata, see BSHD-5. Use ExampleTree
+ * instead
* @author Fabrizio Giustina
* @version $Id: $
*/
+@Deprecated
public final class EnhancedExample
{
Modified: trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTree.java
===================================================================
--- trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2011-11-30 12:05:20 UTC (rev 3711)
+++ trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2011-11-30 15:11:36 UTC (rev 3712)
@@ -45,8 +45,8 @@
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Example;
+import org.hibernate.criterion.Example.PropertySelector;
import org.hibernate.criterion.MatchMode;
-import org.hibernate.criterion.Example.PropertySelector;
import org.hibernate.metadata.ClassMetadata;
import org.hibernate.type.Type;
@@ -244,6 +244,14 @@
return this;
}
+ /**
+ * @return the rootEntity
+ */
+ public Object getRootEntity()
+ {
+ return rootEntity;
+ }
+
private class ExampleTreeWalker implements Serializable
{
Modified: trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java
===================================================================
--- trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2011-11-30 12:05:20 UTC (rev 3711)
+++ trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2011-11-30 15:11:36 UTC (rev 3712)
@@ -32,6 +32,7 @@
import java.util.Map;
import java.util.Set;
+import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.EntityMode;
@@ -106,7 +107,10 @@
public Criteria walk(Criteria rootCriteria, Object rootEntity)
{
- createSubExamples(rootCriteria, rootEntity, new String[0]);
+ if (MapUtils.isNotEmpty(filterMetadata))
+ {
+ createSubExamples(rootCriteria, rootEntity, new String[0]);
+ }
return rootCriteria;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hu...@op...> - 2011-11-30 12:57:14
|
See <https://hudson.openmindonline.it/job/openutils-bshd5/44/changes> |
|
From: <gca...@us...> - 2011-11-30 12:05:30
|
Revision: 3711
http://openutils.svn.sourceforge.net/openutils/?rev=3711&view=rev
Author: gcatania
Date: 2011-11-30 12:05:20 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
BSHD-2 moving commons-collections dependency from test to compile
Modified Paths:
--------------
trunk/openutils-bshd5/pom.xml
Modified: trunk/openutils-bshd5/pom.xml
===================================================================
--- trunk/openutils-bshd5/pom.xml 2011-11-22 21:51:20 UTC (rev 3710)
+++ trunk/openutils-bshd5/pom.xml 2011-11-30 12:05:20 UTC (rev 3711)
@@ -154,6 +154,11 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ </dependency>
+ <dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
@@ -165,12 +170,6 @@
</dependency>
<!-- test dependencies -->
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.1</version>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-22 21:51:26
|
Revision: 3710
http://openutils.svn.sourceforge.net/openutils/?rev=3710&view=rev
Author: fgiust
Date: 2011-11-22 21:51:20 +0000 (Tue, 22 Nov 2011)
Log Message:
-----------
fixed "flash version" label
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties
Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2011-11-20 20:47:30 UTC (rev 3709)
+++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2011-11-22 21:51:20 UTC (rev 3710)
@@ -58,12 +58,12 @@
media.types.swf=SWF
-media.types.image.load=Upload a new image
-media.types.audio.load=Upload a new mp3
-media.types.youtube.load=Link an external video
-media.types.video.load=Upload a flv/mp4 video
-media.types.document.load=Upload a new document
-media.types.swf.load=Upload a new SWF
+media.types.image.load=New image
+media.types.audio.load=New mp3
+media.types.youtube.load=New external video
+media.types.video.load=New flv/mp4 video
+media.types.document.load=New document
+media.types.swf.load=New SWF
media.download=Download
media.edit=Edit
@@ -107,6 +107,7 @@
media.info.media_framerate=Frame rate: {0} fps
media.info.media_pages= Number of pages: {0}
media.info.media_name= File name: {0}
+media.info.media_flashversion=Flash version: {0}
media.bgselector.white=White
media.bgselector.transparent=Transparent
@@ -173,6 +174,5 @@
media.dialogs.tabSwf.video.label=SWF file
media.dialogs.tabSwf.image.label=Alternative image
media.dialogs.mediaSwfDlg.tabSwf.image.description=The image will be shown if the browser doesn''t support flash
-media.info.media_flashversion=Flash version
media.types.all=All
Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2011-11-20 20:47:30 UTC (rev 3709)
+++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2011-11-22 21:51:20 UTC (rev 3710)
@@ -109,6 +109,7 @@
media.info.media_framerate=Frame rate: {0} fps
media.info.media_pages= Numero di pagine: {0}
media.info.media_name= Nome file: {0}
+media.info.media_flashversion=Versione Flash: {0}
media.bgselector.white=Bianco
@@ -176,7 +177,6 @@
media.dialogs.tabSwf.video.label=File SWF
media.dialogs.tabSwf.image.label=Immagine alternativa
media.dialogs.mediaSwfDlg.tabSwf.image.description=L''immagine sar\xE0 visualizzata se il browser non supporta flash
-media.info.media_flashversion=Versione Flash
media.types.all=Tutti
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:47:37
|
Revision: 3709
http://openutils.svn.sourceforge.net/openutils/?rev=3709&view=rev
Author: fgiust
Date: 2011-11-20 20:47:30 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
[maven-release-plugin] prepare for next development iteration
Modified Paths:
--------------
trunk/openutils-mgnlmedia/pom.xml
Modified: trunk/openutils-mgnlmedia/pom.xml
===================================================================
--- trunk/openutils-mgnlmedia/pom.xml 2011-11-20 20:47:14 UTC (rev 3708)
+++ trunk/openutils-mgnlmedia/pom.xml 2011-11-20 20:47:30 UTC (rev 3709)
@@ -10,7 +10,7 @@
<artifactId>openutils-mgnlmedia</artifactId>
<name>SimpleMedia Module for Magnolia CMS</name>
<description>SimpleMedia Module for Magnolia CMS: a module for Magnolia CMS for easier management of multimedia assets.</description>
- <version>4.5.0</version>
+ <version>4.5.1-SNAPSHOT</version>
<inceptionYear>2008</inceptionYear>
<licenses>
<license>
@@ -24,9 +24,9 @@
<url>http://jira.openmindlab.com/browse/MEDIA</url>
</issueManagement>
<scm>
- <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-mgnlmedia-4.5.0</connection>
- <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-mgnlmedia-4.5.0</developerConnection>
- <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-mgnlmedia-4.5.0</url>
+ <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-mgnlmedia</connection>
+ <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-mgnlmedia</developerConnection>
+ <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/trunk/openutils-mgnlmedia</url>
</scm>
<build>
<resources>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:47:20
|
Revision: 3708
http://openutils.svn.sourceforge.net/openutils/?rev=3708&view=rev
Author: fgiust
Date: 2011-11-20 20:47:14 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
[maven-release-plugin] copy for tag openutils-mgnlmedia-4.5.0
Added Paths:
-----------
tags/openutils-mgnlmedia-4.5.0/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:46:51
|
Revision: 3707
http://openutils.svn.sourceforge.net/openutils/?rev=3707&view=rev
Author: fgiust
Date: 2011-11-20 20:46:44 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
[maven-release-plugin] prepare release openutils-mgnlmedia-4.5.0
Modified Paths:
--------------
trunk/openutils-mgnlmedia/pom.xml
Modified: trunk/openutils-mgnlmedia/pom.xml
===================================================================
--- trunk/openutils-mgnlmedia/pom.xml 2011-11-20 20:46:03 UTC (rev 3706)
+++ trunk/openutils-mgnlmedia/pom.xml 2011-11-20 20:46:44 UTC (rev 3707)
@@ -1,5 +1,4 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>net.sourceforge.openutils</groupId>
<artifactId>openutils-parent</artifactId>
@@ -11,7 +10,7 @@
<artifactId>openutils-mgnlmedia</artifactId>
<name>SimpleMedia Module for Magnolia CMS</name>
<description>SimpleMedia Module for Magnolia CMS: a module for Magnolia CMS for easier management of multimedia assets.</description>
- <version>4.4.3-SNAPSHOT</version>
+ <version>4.5.0</version>
<inceptionYear>2008</inceptionYear>
<licenses>
<license>
@@ -25,9 +24,9 @@
<url>http://jira.openmindlab.com/browse/MEDIA</url>
</issueManagement>
<scm>
- <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-mgnlmedia</connection>
- <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-mgnlmedia</developerConnection>
- <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/trunk/openutils-mgnlmedia</url>
+ <connection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-mgnlmedia-4.5.0</connection>
+ <developerConnection>scm:svn:https://openutils.svn.sourceforge.net/svnroot/openutils/tags/openutils-mgnlmedia-4.5.0</developerConnection>
+ <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/tags/openutils-mgnlmedia-4.5.0</url>
</scm>
<build>
<resources>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:46:09
|
Revision: 3706
http://openutils.svn.sourceforge.net/openutils/?rev=3706&view=rev
Author: fgiust
Date: 2011-11-20 20:46:03 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
update assembly descriptor
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml
Modified: trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml
===================================================================
--- trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml 2011-11-20 20:39:15 UTC (rev 3705)
+++ trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml 2011-11-20 20:46:03 UTC (rev 3706)
@@ -35,6 +35,7 @@
<include>commons-cli:commons-cli:*</include>
<include>org.jboss.netty:netty:*</include>
<include>nl.ikarus.nxt.priv.imageio.icoreader:*</include>
+ <include>org.freehep:*</include>
</includes>
</dependencySet>
</dependencySets>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:39:21
|
Revision: 3705
http://openutils.svn.sourceforge.net/openutils/?rev=3705&view=rev
Author: fgiust
Date: 2011-11-20 20:39:15 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
MEDIA-274 handling of size and preview image
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag
trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag
Modified: trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag 2011-11-20 20:21:47 UTC (rev 3704)
+++ trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag 2011-11-20 20:39:15 UTC (rev 3705)
@@ -185,8 +185,28 @@
<c:if test="${!(height gt 0)}">
<c:set var="height" value="${media:height(mediaNode)}" />
</c:if>
-
- <media:swfobject player="${pageContext.request.contextPath}${media:url(mediaNode)}" width="${width gt 0 ? width : ''}" height="${height gt 0? height : ''}" image="${thumbnail}"/>
+
+ <c:choose>
+ <c:when test="${width gt 0 and height gt 0}">
+ <c:set var="previewres" value="${width}x${height}" />
+ <c:set var="preview" value="${media:urlres(mediaNode, previewres)}" />
+ </c:when>
+ <c:otherwise>
+ <c:set var="preview" value="${media:thumbnail(mediaNode)}" />
+ </c:otherwise>
+ </c:choose>
+
+ <c:if test="${!empty preview}">
+ <c:set var="preview" value="${pageContext.request.contextPath}${preview}" />
+ </c:if>
+
+ <media:swfobject
+ player="${pageContext.request.contextPath}${media:url(mediaNode)}"
+ width="${width gt 0 ? width : ''}"
+ height="${height gt 0? height : ''}"
+ image="${preview}"
+ title="${mediaNode.title}"
+ />
</c:when>
</c:choose>
Modified: trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag 2011-11-20 20:21:47 UTC (rev 3704)
+++ trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag 2011-11-20 20:39:15 UTC (rev 3705)
@@ -7,6 +7,7 @@
<jsp:directive.attribute name="width" required="false" rtexprvalue="true" type="java.lang.Integer" description="flash content width" />
<jsp:directive.attribute name="height" required="false" rtexprvalue="true" type="java.lang.Integer" description="flash content height" />
<jsp:directive.attribute name="image" required="false" rtexprvalue="true" description="replacement image" />
+ <jsp:directive.attribute name="title" required="false" rtexprvalue="true" description="title/alt" />
<jsp:directive.tag dynamic-attributes="attrs" />
<!-- end attributes -->
@@ -14,6 +15,9 @@
<c:set var="debug" value="${false}"/><!-- set to true to print out the generated javascript on page -->
<c:set var="previewId" value="preview-${su:randomAlphanumeric(6)}" />
<div id="${previewId}" class="preview"><!-- -->
+ <c:if test="${!empty image}">
+ <img src="${image}" width="${width}" height="${height}" alt="${title}" />
+ </c:if>
</div>
<c:if test="${empty requestScope['mgnlmedia_swfobject_link_drawn']}">
<script type="text/javascript" src="${pageContext.request.contextPath}/.resources/media/js/swfobject.js"><!-- -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:21:54
|
Revision: 3704
http://openutils.svn.sourceforge.net/openutils/?rev=3704&view=rev
Author: fgiust
Date: 2011-11-20 20:21:47 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
MEDIA-274 sample swf
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/website.sample-simplemedia.xml
Modified: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/website.sample-simplemedia.xml
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/website.sample-simplemedia.xml 2011-11-20 20:20:50 UTC (rev 3703)
+++ trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/website.sample-simplemedia.xml 2011-11-20 20:21:47 UTC (rev 3704)
@@ -3,7 +3,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -45,7 +45,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -70,7 +70,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -100,7 +100,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -137,7 +137,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -180,7 +180,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -217,7 +217,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -260,7 +260,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -303,7 +303,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -340,7 +340,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -384,4 +384,254 @@
</sv:node>
</sv:node>
</sv:node>
+ <sv:node sv:name="videoplayer">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:content</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>b3bb22ac-caa7-4f3d-851c-0c59030f8a9b</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="title" sv:type="String">
+ <sv:value>Simplemedia videoplayer test</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T17:59:08.549+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-07-01T18:00:05.104+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>sampleSimpleMedia</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="main">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>0fb927f1-6e81-4032-9c64-41691d14bfc2</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T17:59:47.625+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-07-01T18:00:01.156+02:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="00">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>91104922-6d1d-4ac4-b4b7-223190700b0d</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="media" sv:type="String">
+ <sv:value>d39f582f-3d53-46ae-95d9-42f778198503</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T18:00:01.154+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-07-01T18:00:01.156+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>samples-mediatag</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ <sv:node sv:name="0">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>17cf262c-cefa-4558-8ec5-7bbe3f9ef2c2</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="media" sv:type="String">
+ <sv:value>53c45fb5-3cda-414e-8be5-2647fb8b9697</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T17:59:47.626+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-07-01T17:59:47.630+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>samples-mediatag</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ </sv:node>
+ </sv:node>
+ <sv:node sv:name="swf">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:content</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>3612e425-1cde-43d5-86d6-f5627c7705f7</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="title" sv:type="String">
+ <sv:value>Simplemedia swf test</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T17:59:08.549+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:20:30.928+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>sampleSimpleMedia</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="main">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>85faedd0-fa60-497e-b46d-6ac7789a0820</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T17:59:47.625+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:20:30.927+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="00">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>8adc574c-b6ac-47ec-97a1-545e88f478c7</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="media" sv:type="String">
+ <sv:value>41f81027-183f-4860-9d88-fcc3a6c5ce05</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-07-01T18:00:01.154+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:20:30.927+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>samples-mediatag</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ </sv:node>
+ </sv:node>
</sv:node>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 20:20:59
|
Revision: 3703
http://openutils.svn.sourceforge.net/openutils/?rev=3703&view=rev
Author: fgiust
Date: 2011-11-20 20:20:50 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
MEDIA-274 parsing of swf metadata
Modified Paths:
--------------
trunk/openutils-mgnlmedia/pom.xml
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag
trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag
trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/media.samples.xml
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties
Modified: trunk/openutils-mgnlmedia/pom.xml
===================================================================
--- trunk/openutils-mgnlmedia/pom.xml 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/pom.xml 2011-11-20 20:20:50 UTC (rev 3703)
@@ -1,4 +1,5 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>net.sourceforge.openutils</groupId>
<artifactId>openutils-parent</artifactId>
@@ -227,6 +228,26 @@
<artifactId>isoparser</artifactId>
<version>1.0-beta-3</version>
</dependency>
+ <dependency>
+ <groupId>org.devlib.schmidt</groupId>
+ <artifactId>imageinfo</artifactId>
+ <version>1.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.freehep</groupId>
+ <artifactId>freehep-graphicsio-swf</artifactId>
+ <version>2.1.3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.freehep</groupId>
+ <artifactId>freehep-graphics2d</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.freehep</groupId>
+ <artifactId>freehep-graphicsio-tests</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
<properties>
<magnolia.version>4.4.4</magnolia.version>
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 20:20:50 UTC (rev 3703)
@@ -45,19 +45,9 @@
*/
public String getThumbnailUrl(Content media)
{
- boolean hasPreview = false;
- try
+ if (hasPreview(media))
{
- hasPreview = media.hasNodeData(PREVIEW_NODEDATA_NAME);
- }
- catch (RepositoryException e)
- {
- // ignore
- }
-
- if (hasPreview)
- {
if (!ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME))
{
return "";
@@ -76,6 +66,24 @@
public abstract String getReplacementThumbnail();
+ protected boolean hasPreview(Content media)
+ {
+
+ if (media != null)
+ {
+ try
+ {
+ return media.hasNodeData(PREVIEW_NODEDATA_NAME);
+ }
+ catch (RepositoryException e)
+ {
+ // ignore
+ }
+ }
+
+ return false;
+ }
+
@Override
public String getPreviewImageNodeDataName()
{
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 20:20:50 UTC (rev 3703)
@@ -22,10 +22,13 @@
import info.magnolia.cms.core.Content;
import info.magnolia.cms.util.NodeDataUtil;
+import java.awt.Dimension;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.devlib.schmidt.imageinfo.ImageInfo;
+import org.freehep.graphicsio.swf.SWFHeader;
+import org.freehep.graphicsio.swf.SWFInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,15 +53,43 @@
try
{
stream = getOriginalFileNodeData(media).getStream();
- ImageInfo ii = new ImageInfo();
- ii.setInput(stream);
- if (ii.check())
+
+ Dimension dimension = null;
+ Integer flashversion = null;
+ try
{
- NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, ii.getWidth());
- NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, ii.getHeight());
+ SWFInputStream swfinput = new SWFInputStream(stream);
+ SWFHeader header = new SWFHeader(swfinput);
+ dimension = header.getSize();
+ flashversion = header.getVersion();
+ }
+ catch (Throwable e)
+ {
+ log.warn("Unable to parse swf header: " + e.getClass().getName() + " " + e.getMessage());
+ }
+
+ if (dimension != null)
+ {
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, dimension.getWidth());
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, dimension.getHeight());
+ NodeDataUtil.getOrCreateAndSet(media, "media_flashversion", flashversion);
media.save();
}
+ else if (hasPreview(media))
+ {
+ IOUtils.closeQuietly(stream);
+ stream = media.getNodeData(getPreviewImageNodeDataName()).getStream();
+ ImageInfo ii = new ImageInfo();
+ ii.setInput(stream);
+ if (ii.check())
+ {
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, ii.getWidth());
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, ii.getHeight());
+ media.save();
+ }
+ }
+
}
catch (Throwable e)
{
Modified: trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/media.tag 2011-11-20 20:20:50 UTC (rev 3703)
@@ -177,6 +177,18 @@
</c:when>
+ <c:when test="${media.type eq 'swf' }">
+
+ <c:if test="${!(width gt 0)}">
+ <c:set var="width" value="${media:width(mediaNode)}" />
+ </c:if>
+ <c:if test="${!(height gt 0)}">
+ <c:set var="height" value="${media:height(mediaNode)}" />
+ </c:if>
+
+ <media:swfobject player="${pageContext.request.contextPath}${media:url(mediaNode)}" width="${width gt 0 ? width : ''}" height="${height gt 0? height : ''}" image="${thumbnail}"/>
+ </c:when>
+
</c:choose>
</c:when>
<c:when test="${!empty property and fn:startsWith(item, '/')}">
Modified: trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/src/main/resources/META-INF/tags/media/swfobject.tag 2011-11-20 20:20:50 UTC (rev 3703)
@@ -6,6 +6,7 @@
<jsp:directive.attribute name="player" required="true" rtexprvalue="true" type="java.lang.String" description="the swf file of the player (examples: player.swf (default), jwplayer4, jwplayer5, jwplayer5/player.swf, /.resources/media/players/jwplayer5/player.swf)" />
<jsp:directive.attribute name="width" required="false" rtexprvalue="true" type="java.lang.Integer" description="flash content width" />
<jsp:directive.attribute name="height" required="false" rtexprvalue="true" type="java.lang.Integer" description="flash content height" />
+ <jsp:directive.attribute name="image" required="false" rtexprvalue="true" description="replacement image" />
<jsp:directive.tag dynamic-attributes="attrs" />
<!-- end attributes -->
Modified: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/media.samples.xml
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/media.samples.xml 2011-11-20 17:59:29 UTC (rev 3702)
+++ trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap-samples/media/media.samples.xml 2011-11-20 20:20:50 UTC (rev 3703)
@@ -151,6 +151,72 @@
<sv:value>320</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="resolutions">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resolutions</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>ec963fa4-00f5-4efd-8aa2-bdbf8e609bc9</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-11-20T21:13:52.626+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:52.627+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="thumbnail">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resource</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>90544e4e-942d-475b-a636-b361a138d6a5</sv:value>
+ </sv:property>
+ <sv:property sv:name="extension" sv:type="String">
+ <sv:value>jpg</sv:value>
+ </sv:property>
+ <sv:property sv:name="fileName" sv:type="String">
+ <sv:value>bliptv</sv:value>
+ </sv:property>
+ <sv:property sv:name="height" sv:type="String">
+ <sv:value>75</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:data" sv:type="Binary">
+ <sv:value>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</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:52.668+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModifiedBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mimeType" sv:type="String">
+ <sv:value>image/jpeg</sv:value>
+ </sv:property>
+ <sv:property sv:name="resolution" sv:type="String">
+ <sv:value>thumbnail</sv:value>
+ </sv:property>
+ <sv:property sv:name="size" sv:type="String">
+ <sv:value>2394</sv:value>
+ </sv:property>
+ <sv:property sv:name="width" sv:type="String">
+ <sv:value>100</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
</sv:node>
<sv:node sv:name="swiss-cow">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
@@ -253,6 +319,110 @@
<sv:value>800</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="resolutions">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resolutions</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>7d4e22de-0831-465d-b11e-028494a6f3b4</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.269+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.270+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="thumbnail">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resource</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>c978ccb7-d81c-4ba5-af70-f12b53cc4902</sv:value>
+ </sv:property>
+ <sv:property sv:name="extension" sv:type="String">
+ <sv:value>jpg</sv:value>
+ </sv:property>
+ <sv:property sv:name="fileName" sv:type="String">
+ <sv:value>swiss-cow</sv:value>
+ </sv:property>
+ <sv:property sv:name="height" sv:type="String">
+ <sv:value>75</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:data" sv:type="Binary">
+ <sv:value>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</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.276+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModifiedBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mimeType" sv:type="String">
+ <sv:value>image/jpeg</sv:value>
+ </sv:property>
+ <sv:property sv:name="resolution" sv:type="String">
+ <sv:value>thumbnail</sv:value>
+ </sv:property>
+ <sv:property sv:name="size" sv:type="String">
+ <sv:value>2407</sv:value>
+ </sv:property>
+ <sv:property sv:name="width" sv:type="String">
+ <sv:value>100</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="preview">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resource</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>8f965773-e489-45da-b15b-10f31f4fbce9</sv:value>
+ </sv:property>
+ <sv:property sv:name="extension" sv:type="String">
+ <sv:value>jpg</sv:value>
+ </sv:property>
+ <sv:property sv:name="fileName" sv:type="String">
+ <sv:value>swiss-cow</sv:value>
+ </sv:property>
+ <sv:property sv:name="height" sv:type="String">
+ <sv:value>338</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:data" sv:type="Binary">
+ <sv:value>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</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.318+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:lastModifiedBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mimeType" sv:type="String">
+ <sv:value>image/jpeg</sv:value>
+ </sv:property>
+ <sv:property sv:name="resolution" sv:type="String">
+ <sv:value>preview</sv:value>
+ </sv:property>
+ <sv:property sv:name="size" sv:type="String">
+ <sv:value>21735</sv:value>
+ </sv:property>
+ <sv:property sv:name="width" sv:type="String">
+ <sv:value>450</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
</sv:node>
<sv:node sv:name="music0">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
@@ -480,6 +650,72 @@
<sv:value>100</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="resolutions">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resolutions</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>b2b4fd2f-b101-4469-a591-4ed71fe8555c</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.097+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-20T21:13:53.098+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="thumbnail">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:resource</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>a66bb295-1a71-4a68-96af-b6b80c34b0cf</sv:value>
+ </sv:property>
+ <sv:property sv:name="extension" sv:type="String">
+ <sv:value>png</sv:value>
+ </sv:property>
+ <sv:property sv:name="fileName" sv:type="String">
+ <sv:value>sampleflv</sv:value>
+ </sv:property>
+ <sv:property sv:name="height" sv:type="String">
+ <sv:value>80</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:data" sv:type="Binary">
+ <sv:value>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...
[truncated message content] |
|
From: <fg...@us...> - 2011-11-20 17:59:36
|
Revision: 3702
http://openutils.svn.sourceforge.net/openutils/?rev=3702&view=rev
Author: fgiust
Date: 2011-11-20 17:59:29 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
MEDIA-274 SWF alt image and refactoring of existing mediatypes with preview
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
Added Paths:
-----------
trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png
trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
@@ -107,4 +107,10 @@
return info;
}
+ @Override
+ public String getReplacementThumbnail()
+ {
+ return "/.resources/media/icons/thumb-video.png";
+ }
+
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
@@ -37,9 +37,6 @@
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
-import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
-import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils;
-
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -53,15 +50,10 @@
* @author dschivo
* @version $Id$
*/
-public class DocumentTypeHandler extends BaseTypeHandler
+public class DocumentTypeHandler extends MediaWithPreviewImageTypeHandler
{
/**
- * Nodedata name where preview media content is saved
- */
- public static final String PREVIEW_NODEDATA_NAME = "image";
-
- /**
* metadata containing the number of pages
*/
private static final String METADATA_PAGES = "media_pages";
@@ -74,35 +66,6 @@
/**
* {@inheritDoc}
*/
- public String getThumbnailUrl(Content media)
- {
- try
- {
- // check if a thumbnail has been generated
- if (media == null
- || !media.hasNodeData(PREVIEW_NODEDATA_NAME)
- || !ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME))
- {
- return "/.resources/media/icons/thumb-document.png";
- }
- }
- catch (RepositoryException e)
- {
- return "/.resources/media/icons/thumb-document.png";
- }
-
- return MediaConfigurationManager.getInstance().getURIMappingPrefix()
- + media.getHandle()
- + "/resolutions/thumbnail/"
- + media.getName()
- + "."
- + ImageUtils.getExtension(media, "thumbnail");
-
- }
-
- /**
- * {@inheritDoc}
- */
@Override
public String getUrl(Content media)
{
@@ -175,7 +138,7 @@
PDPage page = pages.get(0);
- java.awt.image.BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_ARGB, 36);
+ java.awt.image.BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_ARGB, 72);
File file = File.createTempFile(filename, ".png");
ImageIO.write(image, "png", file);
@@ -248,4 +211,13 @@
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getReplacementThumbnail()
+ {
+ return "/.resources/media/icons/thumb-document.png";
+ }
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
@@ -20,12 +20,13 @@
package net.sourceforge.openutils.mgnlmedia.media.types.impl;
import info.magnolia.cms.core.Content;
+
+import javax.jcr.RepositoryException;
+
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils;
-import org.apache.commons.lang.StringUtils;
-
/**
* Base class for medias that has a dynamic image as thumbnail
* @author molaschi
@@ -44,19 +45,37 @@
*/
public String getThumbnailUrl(Content media)
{
- if (!ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME))
+ boolean hasPreview = false;
+
+ try
{
- return StringUtils.EMPTY;
+ hasPreview = media.hasNodeData(PREVIEW_NODEDATA_NAME);
}
+ catch (RepositoryException e)
+ {
+ // ignore
+ }
- return MediaConfigurationManager.getInstance().getURIMappingPrefix()
- + media.getHandle()
- + "/resolutions/thumbnail/"
- + media.getName()
- + "."
- + ImageUtils.getExtension(media, "thumbnail");
+ if (hasPreview)
+ {
+ if (!ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME))
+ {
+ return "";
+ }
+ return MediaConfigurationManager.getInstance().getURIMappingPrefix()
+ + media.getHandle()
+ + "/resolutions/thumbnail/"
+ + media.getName()
+ + "."
+ + ImageUtils.getExtension(media, "thumbnail");
+ }
+
+ return getReplacementThumbnail();
+
}
+ public abstract String getReplacementThumbnail();
+
@Override
public String getPreviewImageNodeDataName()
{
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702)
@@ -19,11 +19,67 @@
package net.sourceforge.openutils.mgnlmedia.media.types.impl;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.util.NodeDataUtil;
+
+import java.io.InputStream;
+
+import org.apache.commons.io.IOUtils;
+import org.devlib.schmidt.imageinfo.ImageInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
/**
+ * Type handler for Flash SWF files.
* @author fgiust
* @version $Id$
*/
-public class SwfTypeHandler extends ImageTypeHandler
+public class SwfTypeHandler extends MediaWithPreviewImageTypeHandler
{
+ /**
+ * Logger.
+ */
+ private Logger log = LoggerFactory.getLogger(SwfTypeHandler.class);
+
+ @Override
+ public boolean onPostSave(Content media)
+ {
+ InputStream stream = null;
+ try
+ {
+ stream = getOriginalFileNodeData(media).getStream();
+ ImageInfo ii = new ImageInfo();
+ ii.setInput(stream);
+ if (ii.check())
+ {
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, ii.getWidth());
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, ii.getHeight());
+ media.save();
+ }
+
+ }
+ catch (Throwable e)
+ {
+ log.warn("Error extracting metadata "
+ + getOriginalFileNodeData(media).getHandle()
+ + " "
+ + e.getClass().getName()
+ + " "
+ + e.getMessage(), e);
+ }
+ finally
+ {
+ IOUtils.closeQuietly(stream);
+ }
+
+ return super.onPostSave(media);
+ }
+
+ @Override
+ public String getReplacementThumbnail()
+ {
+ return "/.resources/media/icons/thumb-swf.png";
+ }
}
Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png
===================================================================
(Binary files differ)
Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png
===================================================================
(Binary files differ)
Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-20 17:24:39
|
Revision: 3701
http://openutils.svn.sourceforge.net/openutils/?rev=3701&view=rev
Author: fgiust
Date: 2011-11-20 17:24:32 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
MEDIA-274 New mediatype for SWF files - wip
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MediaModuleVersionHandler.java
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties
trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties
Added Paths:
-----------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RemoveExtensionFromType.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.dialogs.mediaSwfDlg.xml
trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.mediatypes.swf.xml
trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/type-swf.png
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java 2011-11-20 17:24:32 UTC (rev 3701)
@@ -0,0 +1,102 @@
+/**
+ *
+ * SimpleMedia Module for Magnolia CMS (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright(C) 2008-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.sourceforge.openutils.mgnlmedia.media.setup;
+
+import info.magnolia.cms.beans.config.ContentRepository;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.core.HierarchyManager;
+import info.magnolia.module.InstallContext;
+import info.magnolia.module.delta.AbstractRepositoryTask;
+import info.magnolia.module.delta.TaskExecutionException;
+
+import javax.jcr.RepositoryException;
+
+import org.apache.commons.lang.StringUtils;
+
+
+/**
+ * @author fgiust
+ * @version $Id$
+ */
+public class AddExtensionToType extends AbstractRepositoryTask
+{
+
+ private final String extension;
+
+ private final String mediatype;
+
+ private final String control;
+
+ /**
+ * @param name
+ * @param description
+ */
+ public AddExtensionToType(String extension, String mediatype, String control)
+ {
+ super("Adding " + extension + " extension to mediatype " + mediatype, "Adding "
+ + extension
+ + " extension to mediatype "
+ + mediatype);
+ this.extension = extension;
+ this.mediatype = mediatype;
+ this.control = control;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void doExecute(InstallContext ctx) throws RepositoryException, TaskExecutionException
+ {
+
+ final HierarchyManager hm = ctx.getHierarchyManager(ContentRepository.CONFIG);
+ String nodePath = "/modules/media/mediatypes/" + this.mediatype;
+
+ try
+ {
+ final Content mediatypenode = hm.getContent(nodePath);
+ String extensions = mediatypenode.getNodeData("extensions").getString();
+ if (!StringUtils.contains(extensions, this.extension))
+ {
+ mediatypenode.setNodeData("extensions", extensions + "," + this.extension);
+ }
+ }
+ catch (RepositoryException e)
+ {
+ // ignore and skip
+ }
+
+ try
+ {
+ final Content mediatypenode = hm.getContent(control);
+ String extensions = mediatypenode.getNodeData("extensions").getString();
+ if (!StringUtils.contains(extensions, this.extension))
+ {
+ mediatypenode.setNodeData("extensions", extensions + "," + this.extension);
+ }
+ }
+ catch (RepositoryException e)
+ {
+ // ignore and skip
+ }
+
+ }
+
+}
Property changes on: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MediaModuleVersionHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MediaModuleVersionHandler.java 2011-11-20 16:46:36 UTC (rev 3700)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MediaModuleVersionHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
@@ -179,49 +179,16 @@
"parseremotefiles",
Boolean.TRUE));
- // add "jpeg"
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/dialogs/mediaImageDlg/tabImage/original",
- "extensions",
- "jpg,gif,png",
- "jpg,jpeg,gif,png"));
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/mediatypes/image",
- "extensions",
- "jpg,gif,png",
- "jpg,jpeg,gif,png"));
+ tasks.add(new AddExtensionToType("jpeg", "image", "/modules/media/dialogs/mediaImageDlg/tabImage/original"));
+ tasks.add(new AddExtensionToType("ico", "image", "/modules/media/dialogs/mediaImageDlg/tabImage/original"));
- // add "ico"
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/dialogs/mediaImageDlg/tabImage/original",
- "extensions",
- "jpg,jpeg,gif,png",
- "jpg,jpeg,gif,png,ico"));
+ tasks.add(new AddExtensionToType("mp4", "video", "/modules/media/dialogs/mediaVideoDlg/tabVideo/original"));
+ tasks.add(new AddExtensionToType("mpv", "video", "/modules/media/dialogs/mediaVideoDlg/tabVideo/original"));
+ tasks.add(new AddExtensionToType("ogv", "video", "/modules/media/dialogs/mediaVideoDlg/tabVideo/original"));
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/mediatypes/image",
- "extensions",
- "jpg,jpeg,gif,png",
- "jpg,jpeg,gif,png,ico"));
+ tasks
+ .add(new RemoveExtensionFromType("swf", "video", "/modules/media/dialogs/mediaVideoDlg/tabVideo/original"));
- // add mp4
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/mediatypes/video",
- "extensions",
- "flv,swf",
- "flv,swf,mp4,m4v"));
- tasks.add(new ChangeExistingPropertyTask(
- ContentRepository.CONFIG,
- "/modules/media/dialogs/mediaVideoDlg/tabVideo/original",
- "extensions",
- "flv,swf",
- "flv,swf,mp4,m4v"));
-
// REVERT old stk support for magnolia < 4.3
if (isModuleInstalled("standard-templating-kit"))
{
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RemoveExtensionFromType.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RemoveExtensionFromType.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RemoveExtensionFromType.java 2011-11-20 17:24:32 UTC (rev 3701)
@@ -0,0 +1,110 @@
+/**
+ *
+ * SimpleMedia Module for Magnolia CMS (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright(C) 2008-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.sourceforge.openutils.mgnlmedia.media.setup;
+
+import info.magnolia.cms.beans.config.ContentRepository;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.core.HierarchyManager;
+import info.magnolia.module.InstallContext;
+import info.magnolia.module.delta.AbstractRepositoryTask;
+import info.magnolia.module.delta.TaskExecutionException;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.jcr.RepositoryException;
+
+import org.apache.commons.lang.StringUtils;
+
+
+/**
+ * @author fgiust
+ * @version $Id$
+ */
+public class RemoveExtensionFromType extends AbstractRepositoryTask
+{
+
+ private final String extension;
+
+ private final String mediatype;
+
+ private final String control;
+
+ /**
+ * @param name
+ * @param description
+ */
+ public RemoveExtensionFromType(String extension, String mediatype, String control)
+ {
+ super("Adding " + extension + " extension to mediatype " + mediatype, "Adding "
+ + extension
+ + " extension to mediatype "
+ + mediatype);
+ this.extension = extension;
+ this.mediatype = mediatype;
+ this.control = control;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void doExecute(InstallContext ctx) throws RepositoryException, TaskExecutionException
+ {
+
+ final HierarchyManager hm = ctx.getHierarchyManager(ContentRepository.CONFIG);
+ String nodePath = "/modules/media/mediatypes/" + this.mediatype;
+
+ try
+ {
+ final Content mediatypenode = hm.getContent(nodePath);
+ String extensions = mediatypenode.getNodeData("extensions").getString();
+ if (StringUtils.contains(extensions, this.extension))
+ {
+ List<String> exts = new ArrayList<String>(Arrays.asList(StringUtils.split(extensions, ",")));
+ exts.remove(this.extension);
+ mediatypenode.setNodeData("extensions", StringUtils.join(exts, ","));
+ }
+ }
+ catch (RepositoryException e)
+ {
+ // ignore and skip
+ }
+
+ try
+ {
+ final Content mediatypenode = hm.getContent(control);
+ String extensions = mediatypenode.getNodeData("extensions").getString();
+ if (StringUtils.contains(extensions, this.extension))
+ {
+ List<String> exts = new ArrayList<String>(Arrays.asList(StringUtils.split(extensions, ",")));
+ exts.remove(this.extension);
+ mediatypenode.setNodeData("extensions", StringUtils.join(exts, ","));
+ }
+ }
+ catch (RepositoryException e)
+ {
+ // ignore and skip
+ }
+
+ }
+
+}
Property changes on: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RemoveExtensionFromType.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701)
@@ -0,0 +1,29 @@
+/**
+ *
+ * SimpleMedia Module for Magnolia CMS (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright(C) 2008-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.sourceforge.openutils.mgnlmedia.media.types.impl;
+
+/**
+ * @author fgiust
+ * @version $Id$
+ */
+public class SwfTypeHandler extends ImageTypeHandler
+{
+
+}
Property changes on: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.dialogs.mediaSwfDlg.xml
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.dialogs.mediaSwfDlg.xml (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.dialogs.mediaSwfDlg.xml 2011-11-20 17:24:32 UTC (rev 3701)
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sv:node sv:name="mediaSwfDlg" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>2402c2ee-3e93-4648-afc4-aa0cb9d46fc7</sv:value>
+ </sv:property>
+ <sv:property sv:name="class" sv:type="String">
+ <sv:value>net.sourceforge.openutils.mgnlmedia.media.dialog.LayerDialogMVC</sv:value>
+ </sv:property>
+ <sv:property sv:name="height" sv:type="String">
+ <sv:value>500</sv:value>
+ </sv:property>
+ <sv:property sv:name="i18nBasename" sv:type="String">
+ <sv:value>net.sourceforge.openutils.mgnlmedia.media.lang.messages</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>media.dialogs.mediaSwfDlg.label</sv:value>
+ </sv:property>
+ <sv:property sv:name="width" sv:type="String">
+ <sv:value>520</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:23.417+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T15:10:45.780Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T22:59:58.052+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:title" sv:type="String">
+ <sv:value/>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="tabVideo">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>a64f4eb5-a9cb-4c17-baab-7c4eb1d04c04</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>tab</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>media.dialogs.tabSwf.label</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:29.217+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T15:10:54.979Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T23:00:08.911+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="original">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>f6b39267-7267-450e-aa59-c6ae3e3895ed</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>mediaFile</sv:value>
+ </sv:property>
+ <sv:property sv:name="extensions" sv:type="String">
+ <sv:value>swf</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>media.dialogs.tabSwf.video.label</sv:value>
+ </sv:property>
+ <sv:property sv:name="required" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>Binary</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:29.357+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T15:15:57.112Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T23:00:28.248+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ <sv:node sv:name="image">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>a243137a-3013-4267-b8e3-097a066e004e</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>mediaFile</sv:value>
+ </sv:property>
+ <sv:property sv:name="description" sv:type="String">
+ <sv:value>media.dialogs.mediaSwfDlg.tabSwf.image.description</sv:value>
+ </sv:property>
+ <sv:property sv:name="extensions" sv:type="String">
+ <sv:value>jpg,gif,png</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>media.dialogs.tabSwf.image.label</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>Binary</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:29.357+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T15:14:49.217Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T23:00:51.872+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ </sv:node>
+ <sv:node sv:name="tabAttributes">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>f0dbd995-a36e-4560-b204-868c67acedbd</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="reference" sv:type="String">
+ <sv:value>/modules/media/dialogs/common/tabAttributes</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:29.217+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T16:35:26.540Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T22:59:37.920+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+ <sv:node sv:name="type">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>d93c93c6-22ec-4ad4-94c8-1aa6fe131521</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>hidden</sv:value>
+ </sv:property>
+ <sv:property sv:name="defaultValue" sv:type="String">
+ <sv:value>swf</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2008-06-21T10:51:52.322Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-07-02T15:10:45.802Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T22:59:37.921+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+</sv:node>
Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.dialogs.mediaSwfDlg.xml
___________________________________________________________________
Added: svn:mime-type
+ text/xml
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.mediatypes.swf.xml
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.mediatypes.swf.xml (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.mediatypes.swf.xml 2011-11-20 17:24:32 UTC (rev 3701)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sv:node sv:name="swf" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>b84c36d1-01ee-4f75-84a3-269da3b29798</sv:value>
+ </sv:property>
+ <sv:property sv:name="dialog" sv:type="String">
+ <sv:value>mediaSwfDlg</sv:value>
+ </sv:property>
+ <sv:property sv:name="enabled" sv:type="Boolean">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="extensions" sv:type="String">
+ <sv:value>swf</sv:value>
+ </sv:property>
+ <sv:property sv:name="i18nBasename" sv:type="String">
+ <sv:value>net.sourceforge.openutils.mgnlmedia.media.lang.messages</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>media.types.swf</sv:value>
+ </sv:property>
+ <sv:property sv:name="menuIcon" sv:type="String">
+ <sv:value>/.resources/media/icons/type-swf.png</sv:value>
+ </sv:property>
+ <sv:property sv:name="order" sv:type="Long">
+ <sv:value>15</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activatorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2008-06-17T16:49:16.314Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastaction" sv:type="Date">
+ <sv:value>2008-06-17T16:51:17.750Z</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T22:59:05.138+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="handler">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>7f9e15ed-1f85-4df8-bb63-0cd42c8f4902</sv:value>
+ </sv:property>
+ <sv:property sv:name="class" sv:type="String">
+ <sv:value>net.sourceforge.openutils.mgnlmedia.media.types.impl.SwfTypeHandler</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2010-02-14T21:24:17.243+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2011-11-19T22:59:15.837+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
+</sv:node>
Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.mediatypes.swf.xml
___________________________________________________________________
Added: svn:mime-type
+ text/xml
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/type-swf.png
===================================================================
(Binary files differ)
Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/type-swf.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2011-11-20 16:46:36 UTC (rev 3700)
+++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2011-11-20 17:24:32 UTC (rev 3701)
@@ -55,13 +55,15 @@
media.types.youtube=External videos
media.types.video=Videos
media.types.document=Documents
+media.types.swf=SWF
-media.types.image.load=Upload new image
-media.types.audio.load=Upload new mp3
-media.types.youtube.load=Link external video
-media.types.video.load=Upload flv/mp4 video
-media.types.document.load=Upload new document
+media.types.image.load=Upload a new image
+media.types.audio.load=Upload a new mp3
+media.types.youtube.load=Link an external video
+media.types.video.load=Upload a flv/mp4 video
+media.types.document.load=Upload a new document
+media.types.swf.load=Upload a new SWF
media.download=Download
media.edit=Edit
@@ -165,3 +167,11 @@
config.search.filters.sorting=Sorting
media.info.media_originalpath=Original path: {0}
+
+media.dialogs.mediaSwfDialog.label=SWF
+media.dialogs.tabSwf.label=SWF
+media.dialogs.tabSwf.video.label=SWF file
+media.dialogs.tabSwf.image.label=Alternative image
+media.dialogs.mediaSwfDlg.tabSwf.image.description=The image will be shown if the browser doesn''t support flash
+
+media.types.all=All
Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties
===================================================================
--- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2011-11-20 16:46:36 UTC (rev 3700)
+++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2011-11-20 17:24:32 UTC (rev 3701)
@@ -56,6 +56,7 @@
media.types.youtube=Video esterni
media.types.video=Video
media.types.document=Documenti
+media.types.swf=SWF
media.types.image.load=Carica immagine
@@ -63,6 +64,7 @@
media.types.youtube.load=Collega video esterno
media.types.video.load=Carica video flv/mp4
media.types.document.load=Carica documento
+media.types.swf.load=Carica SWF
media.download=Scarica
media.edit=Modifica
@@ -168,3 +170,13 @@
config.search.filters.sorting=Ordinamento
media.info.media_originalpath=Posizione originale: {0}
+
+media.dialogs.mediaSwfDialog.label=SWF
+media.dialogs.tabSwf.label=SWF
+media.dialogs.tabSwf.video.label=File SWF
+media.dialogs.tabSwf.image.label=Immagine alternativa
+media.dialogs.mediaSwfDlg.tabSwf.image.description=L''immagine sar\xE0 visualizzata se il browser non supporta flash
+
+media.types.all=Tutti
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|