I would like to propose an answer to my own question. The default listener class created with jms:listener is org.springframework.jms.listener.adapter.MessageListenerAdapter

Here's the complete vanilla replacement of jms namespace based configuration:

&lt;bean class="org.springframework.jms.listener.adapter.MessageListenerAdapter" id="jmsMessageListener" 
    p:delegate-ref="queueListener" /&gt;

&lt;!-- Not using jms namespace, as it doesn't allow to specify bean id --&gt;
&lt;bean id="jmsListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"  
    p:concurrency="${jms.consumer.concurrency}" p:connection-factory-ref="jmsConnectionFactory" 
    p:messageListener-ref="jmsMessageListener" p:destinationName="${jms.queue.name}" &gt;
&lt;/bean&gt;


Define ListenerContainer without the jms namespace in spring jms
I'm attempting to create an effect where two projectiles will come out a given entity at a given offset to the player. A quick implementation was this;

sf::Vector2f offset = m_owner-&gt;GetSprite().getPosition();

offset.y -= 5;
createProjectile(offset, m_owner-&gt;GetSprite().getRotation());
offset.y += 10;
createProjectile(offset, m_owner-&gt;GetSprite().getRotation());


This worked perfectly fine if your entity only wanted to fire across the .x axis, but as soon as you rotated the player it broke as the offset was not going off the players current rotation.

I'm tried many implementation of this but none have seemed to work and as I'm shockingly bad at math, I cannot work it out myself.

void Weapon::createProjectile(const sf::Vector2f&amp; position, float angle)
{
        m_owner-&gt;_state-&gt;addEntity(new Projectile(m_owner, position, angle,*m_texture, m_velocity, m_damage));
}

Projectile::Projectile(Entity* emitter, const sf::Vector2f&amp; position, float angle,
    const sf::Texture&amp; image, int speed, int damage) :
    Entity(emitter-&gt;_state, true, entityName::entityBullet, speed)
{
        Load(_state-&gt;getApp()-&gt;gettextureManager().Get("Content/ball.png"));
    GetSprite().setRotation(angle);

        SetPosition(position.x,position.y);
        GetSprite().setScale(0.4f,0.4);
}


ANSWER:

float rad;
offset = m_owner-&gt;GetSprite().getPosition();

rad = math::to_rad(m_owner-&gt;GetSprite().getRotation());

offset.x += 5*sin(rad);
offset.y += -5*cos(rad);

createProjectile(offset,m_owner-&gt;GetSprite().getRotation());

offset = m_owner-&gt;GetSprite().getPosition();

offset.x += -5*sin(rad);
offset.y += 5*cos(rad);

createProjectile(offset,m_owner-&gt;GetSprite().getRotation());

