Roland Häder [Fri, 23 Sep 2022 16:47:32 +0000 (18:47 +0200)]
Please cherry-pick:
- e.g. lockUserAccount() changes userAccountStatus to LOCKED which results in
Objects.equals() to return false even when it is the same user which causes
an exception being thrown.
- checking the userId only won't be enough for an other use-case where a new
user with same data is being created
Roland Häder [Sat, 25 Jun 2022 13:08:07 +0000 (15:08 +0200)]
Please cherry-pick:
- private methods should not have exceptions thrown because these cases cannot
be unit-tested (or very hard)
- normally only public, package-level or protected methods throw exceptions
and have made sure that e.g. null-references won't get through to private
methods
Roland Häder [Sat, 25 Jun 2022 12:57:38 +0000 (14:57 +0200)]
Please cherry-pick:
- country.countryCode and countryI18nKey could be NULL here (independently from
each other) and needs checking BEFORE any method on them is being executed
Roland Häder [Tue, 19 May 2020 23:28:45 +0000 (01:28 +0200)]
Please cherry-pick:
- let's use createManaged() where possible to avoid some duplicate code. It may
look a bit to much encapsulation or to fine-granulated, the createManaged()
method contains some validation on the entity instance and that is a good
reason to have it encapsulated away.
Roland Häder [Mon, 11 May 2020 00:48:27 +0000 (02:48 +0200)]
Please cherry-pick:
- departments, headquarters and branch offices cannot have a relation to
employees as employess have a relation already to them. So if comparison of
those entities come, this ends up in an endless loop with a stack overflow.
- the fix here is a bit simple and also a bit complex: relate those 3 entities
to contacts (jcontacts-core.jar) and look in all employees related to the
department, headquarter or branch office who have an equal contact record
Roland Häder [Wed, 22 Apr 2020 00:06:26 +0000 (02:06 +0200)]
Don't cherry-pick:
- cleaned up mess left behind from Christmas. ;-)
- no, joke
- actually jjobs-mailer-ejb is this project and cannot be referenced here
Roland Häder [Wed, 22 Apr 2020 00:02:05 +0000 (02:02 +0200)]
Don't cherry-pick:
- JJobs has no need for addressbooks, it can be done without them
- renamed backing beans for JJobs
- fixed (maybe?) some JNDI names
- a lot other fixes, still something is not correct, some interfaces have some
missing methods while they should be there
Roland Häder [Thu, 16 Apr 2020 20:04:23 +0000 (22:04 +0200)]
Please cherry-pick:
- renamed allFoos() to fetchAllFoos()
- cleanup of deprecated/no longer needed business methods as fetchAllFoos() can
be used instead
- splitted mobile number relevant business methods into separate EJB, this
allows better load-balancing on servers with many CPU cores
- UserLoginSessionBean is now superflous and can be removed
Roland Häder [Tue, 14 Apr 2020 08:03:54 +0000 (10:03 +0200)]
Please cherry-pick:
- updated jphone-core.jar requires now some new getter/setter names like
getMobileEntryUpdated(), setContactEntry<Created|Updated>() and many more
Roland Häder [Sat, 23 Sep 2017 12:06:24 +0000 (14:06 +0200)]
Please repeat/cherry-pick:
- added lookup attribute to @EJB annotation as some lookup did not work as
expected and this is "guranteed" to work (if you have the right JNDI name,
of course)
- plus all these EJBs can now be more distributed over separate EJB modules
allowing a distributed operation over several data centers, awsome words,
right? ;-)
- sorted members in base database bean
Roland Häder [Tue, 4 Feb 2020 21:51:43 +0000 (22:51 +0100)]
Please cherry-pick:
- having nothing created is best and most secure choice, then accidentally no
data is lost and you have to re-enable this when you want to (re-)create your
database layout.
Roland Häder [Wed, 15 Jan 2020 10:36:08 +0000 (11:36 +0100)]
Don't cherry-pick:
- fixed imports
- updated updateUserPersonalData() method
- still there are A LOT invocations on deprecated methods, this mess needs to
be cleared up.
Roland Häder [Thu, 10 Oct 2019 23:36:29 +0000 (01:36 +0200)]
Don't cherry-pick:
- added missing createManaged() methods for Department and HireableJobPosition
- You can do someInstance.getClass() to avoid importing the implementing class
instead which is more flexible and allows other implementations
- renamed BaseJobsDatabaseBean to BaseJobsEnterpriseBean and moved to proper
package
- renamed JobPosition to HireableJobPosition (maybe tpzo?)
- renamed classes with "Headquarters" in it to "Headquarter" as "s" is plural
and should be only used for utility classes
- added missing imports of utility classes
- the registration bean does no longer have isEmailAddressRegistered() and
isUserNameRegistered() as this exists in user bean, fixed all occurances
Roland Häder [Fri, 21 Dec 2018 14:10:12 +0000 (15:10 +0100)]
Please cherry-pick:
- companyShortName is now mandatory, while companyName (full name) is optional
- but if companyName is set, check it as well, if it doesn't exist
Roland Häder [Sun, 18 Mar 2018 21:25:50 +0000 (22:25 +0100)]
Please cherry-pick:
- ContactUtils was renamed to Contacts to follow naming-convention
- fixed copy-paste mistake for headquarters instance, was BasicData
- also employeePosition was renamed to employeeJobPosition
Roland Häder [Tue, 13 Mar 2018 22:05:44 +0000 (23:05 +0100)]
Please cherry-pick/rename:
- Headquarter is enough for bean name (please rename)
- removed some no longer recommended business methods
- removed no longer used private methods
- made some local variables final which helps the Java compiler in optimization
of resulting byte-code
- added session EJB for user activity
- other improvements (?)
- changed copyright to Free Software Foundation
Roland Häder [Wed, 1 Nov 2017 21:35:35 +0000 (22:35 +0100)]
Please cherry-pick:
- added EJBs for headquarters entity, general and administrative
- added method for updating all "phone created" timestamps in above entity
- renamed entity class name in persistence.xml
Roland Häder [Tue, 17 Oct 2017 20:30:29 +0000 (22:30 +0200)]
Please cherry-pick:
- renamed employee as there will be no other employees
- added administrative country EJB due to remote interface separation
- removed find*ById() as this was causing load on EJB container which can be
prevented by application's JCache
- fixed persistence unit as entities have been moved
Roland Häder [Sat, 14 Oct 2017 13:32:51 +0000 (15:32 +0200)]
Please cherry-pick:
- added createManaged() methods for BranchOffice and HeadquartersData entities
- added helper method setAllOpeningTimesCreated() which sets "created" entity
property of all opening times
- renamed EJB [admin]companyEmployee to only plain [admin]employee (enough),
remember to write the "e" upper-case in adminEmployee
- added EJB for opening times
- added EJB for departments
- updated persistence unit with new entity class' name
Roland Häder [Sun, 24 Sep 2017 13:34:12 +0000 (15:34 +0200)]
Please cherry-pick:
- renamed setAllContactPhoneEntriesCreated() -> setAllPhoneEntriesCreated()
- added similar methods for company basic data and branch offices
- also their phone number's created timestamps must be set prior persisting
Roland Häder [Sat, 9 Sep 2017 12:49:54 +0000 (14:49 +0200)]
Please cherry-pick:
- re-package season has started: now all core project's entity packages do
always have following format: tld.domain.project.model.foo.SomeFoo;
- also fixed persistence unit
Roland Häder [Sat, 9 Sep 2017 12:18:10 +0000 (14:18 +0200)]
Please cherry-pick:
- introduced isSameCompanyNameAdded() which encapsulates checking for if a
company name has already been used. This is, together with the thrown checked
exception a last effort to prevent bad bad SqlException or any other
"low-level" exception as they are more severage than this.
- thumb of a rule: always pre-validate if all conditions are met (return "okay")
prior doing risky things where uncontrolled exceptions may be thrown.
- make company-owner (User), founder (Employee) and contact person (dito)
managed before persisting the whole BasicData instance as this makes sure that
no duplicates will end up in database
Roland Häder [Sat, 9 Sep 2017 11:35:31 +0000 (13:35 +0200)]
Please cherry-pick:
- removed explicit flush() on entity manager as this hurts performance + may
cause trouble when other entities (concurrently) are not "ready to be flushed)
- implemented addBranchOffice() + added missing public constructor
- added private method isBranchOfficeFound() which uses the general EJB for
retrieving whole branch office list
- added protected getManaged() for Contact and Country instances
- renamed companyDataId -> basicDataId
Roland Häder [Tue, 5 Sep 2017 20:03:36 +0000 (22:03 +0200)]
Please cherry-pick:
- added new stateless session beans for administrative and general purposes for
branch office data and implemented business methods
- moved allCompanyBasicData() to general bean as this is a general business method
- also had to switch EJB references (maybe one day lookup="" is required again?)
- added private method isContactFound() to check if contact is already registered
or not there
- this method is now used to throw proper checked exceptions (which in turn your
application must catch)
- implemented business method allCompanyBasicData()
- renamed getAllContacts() -> allContacts() as this is actually no getter
following naming-convention
- renamed getUserNameList() -> allUserNames() for same reason
- in fillUserData() added more checks on parameter 'user' as usual in many
places, including ifUserExists() and throw checked (wanted) exception if not
found in persistence provider
- added 'final' whereever possible, better optimization
- used not NULL when not needed, allowing more 'final' to be set
- updated persistence unit (new namespace for branch office entity)
- relicensed under Affero GPLv3 (no change to e.g. MIT will happen)
- added TODOs
Roland Häder [Sat, 26 Aug 2017 22:02:17 +0000 (00:02 +0200)]
Please cherry-pick/rename:
- added admin/general company employee session bean and implemented all methods
- implemented isCompanyNameUsed() and used dependency injection for injecting
other EJB