package sk.projectj.validators;

import sk.projectj.model.Job;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

 * Validates that field {@code dependFieldName} is not null if
 * field {@code fieldName} has value {@code fieldValue}.
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Constraint(validatedBy = NotNullIfAnotherFieldHasValueValidator.class)
public @interface NotNullIfAnotherFieldHasValue {

    String fieldName();

    Job.JobType fieldValue();

    String dependFieldName();

    String message() default "{notBlank.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
// dsdsdsds
    @Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
    @interface List {
        NotNullIfAnotherFieldHasValue[] value();

package sk.projectj.utils;

import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 * Filter for capturing Captcha fields.
 * It's purpose is to store these values internally
public class CaptchaCaptureFilter extends OncePerRequestFilter {

    private String recaptcha_response;
    private String recaptcha_challenge;
    private String remoteAddr;

    public void doFilterInternal(HttpServletRequest req, HttpServletResponse res,
                                 FilterChain chain) throws IOException, ServletException {

        logger.debug("Captcha capture filter");

        // Assign values only when user has submitted a Captcha value.
        // Without this condition the values will be reset due to redirection
        // and CaptchaVerifierFilter will enter an infinite loop
        if (req.getParameter("recaptcha_response_field") != null) {
            recaptcha_response = req.getParameter("recaptcha_response_field");
            recaptcha_challenge = req.getParameter("recaptcha_challenge_field");
            remoteAddr = req.getRemoteAddr();

        logger.debug("challenge: " + recaptcha_challenge);
        logger.debug("response: " + recaptcha_response);
        logger.debug("remoteAddr: " + remoteAddr);

        // Proceed with the remaining filters
        chain.doFilter(req, res);

    public String getRecaptcha_response() {
        return recaptcha_response;

    public void setRecaptcha_response(String recaptchaResponse) {
        recaptcha_response = recaptchaResponse;


define( [
], function( jQuery ) {

// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
    var i = 0,
        len = elems.length,
        bulk = key == null;

    // Sets many values
    if ( jQuery.type( key ) === "object" ) {
        chainable = true;
        for ( i in key ) {
            access( elems, fn, i, key[ i ], true, emptyGet, raw );

    // Sets one value
    } else if ( value !== undefined ) {
        chainable = true;

        if ( !jQuery.isFunction( value ) ) {
            raw = true;

        if ( bulk ) {

            // Bulk operations run against the entire set
            if ( raw ) {
       elems, value );
                fn = null;

            // ...except when executing function values
            } else {
                bulk = fn;
                fn = function( elem, key, value ) {
                    return jQuery( elem ), value );

        if ( fn ) {
            for ( ; i < len; i++ ) {
                    elems[ i ], key, raw ?
                    value :
           elems[ i ], i, fn( elems[ i ], key ) )

    return chainable ?
        elems :

        // Gets
        bulk ?
   elems ) :
            len ? fn( elems[ 0 ], key ) : emptyGet;

return access;

} );

PATH="/usr/bin:$PATH"; export PATH

prog=`echo $0 | sed 's|.*/||'`
case "$prog" in
        *less)  more=less       ;;
        *)      more=more       ;;

if test "`echo -n a`" = "-n a"; then
  # looks like a SysV system:
  n1=''; n2='\c'
  n1='-n'; n2=''
oldtty=`stty -g 2>/dev/null`
if stty -cbreak 2>/dev/null; then
  cb='cbreak'; ncb='-cbreak

if test $# = 0; then
    if test -t 0; then
        echo usage: $prog files...
        bzip2 -cdfq | eval $more
    for FILE
        if test $FIRST -eq 0; then
                echo $n1 "--More--(Next file: $FILE)$n2"
                stty $cb -echo 2>/dev/null
                ANS=`dd bs=1 count=1 2>/dev/null`
                stty $ncb echo 2>/dev/null
                echo " "
                if test "$ANS" = 'e' -o "$ANS" = 'q'; then
        if test "$ANS" != 's'; then
                echo "------> $FILE <------"
                bzip2 -cdfq "$FILE" | eval $more
        if test -t; then


Software Engineer

Michal DROZD

Software Engineer
  • email
  • language
  • place Slovak Republic

I am developer with 10+ years of experience and wide technical background. I feel the best in environment where innovation and creativity is valued.


Oracle Fusion
Middleware Developer
ORACLE (Czech branch) Prague, CZ
  • Oracle Mobile Application Framework
  • JavaScript (frontend) and Java EE (backend)
  • Backend: Java EE, Oracle WebLogic Server, unit testing
  • Frontend: JavaScript, Cordova, HTML5, CSS3, SVG, WebSocket
  • I created several components in MAF, and in Oracle ADF DVT framework
  • Scrum, strong test-driven development
Java EE Developer
YSystem, s.r.o. Prague, CZ
10/2012 – 06/2013
  • Working on huge java enterprise project for tracking vehicles and people
  • JBoss server based on SOA, 3 clients including web (JSP), SWT and mobile application
  • Technologies: EJB 3.0, JPA 2.0, JTA, CDI, JMS, JSF, REST/JSON/XML
  • Working with Oracle SQL Database, optimization
  • Scrum, UML, GIT
Full Stack Developer
Gamescape, s.r.o. Prague, CZ
02/2011 – 10/2012
  • Also taking role as Project Manager - managing small team to create e-commerce system in PHP5
  • Creating operational applications for employees
  • Full Linux administration and server design
Full Stack Developer
Fragaria, s.r.o. Prague, CZ
12/2008 – 12/2010
  • I was developing a large e-commerce system in PHP5 based on Zend Framework
  • I also acquired experience in negotiating and dealing with customers
  • I designed a system for importing large amount of products from 12 distributors with the best product selection based on the best price and stock availability and/or other rules
  • I worked on boat rental application in Python based on Django framework
  • Creating clean pure object-oriented code with the latest standards
  • MySQL server performance optimization
  • Programming rich web applications using JQuery
  • Full source control with GIT (code quality check, auto-unit testing...), Scrum, Testing...
Web developer
12/2007 – 01/2009

I worked part-time as remote worker. Creating ERP/CRM modules for Compiere. Programming in PHP5 and Java Technologies used: JBoss, Tomcat, Swing, Xerces, Application Dictionary, ORACLE database, PL/SQL.

Java SE Developer
Bonicom, s.r.o. Prague, CZ
07/2007 – 12/2007

This was my first job. I worked part-time on site in team. Developing desktop application for real estate agencies coded in Java SE and Swing.

Education and certificates

Oracle Database SQL Certified Expert

I have successfully passed
Oracle Database SQL Expert exam
(1Z0-047) in test center in Prague.
Check it here

Zend Certified Engineer

I achieved the highest PHP
accreditation available.
Check it here

University of Entrepreneurship and Law

I completed Bachelor's degree in Computer Science - Information Management.