diff --git a/.gitignore b/.gitignore
index a5fc3fe..dc74a0e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,5 @@
/xmvn-0.2.6.tar.xz
/xmvn-0.3.0.tar.xz
/xmvn-0.3.1.tar.xz
+/xmvn-snapshot.tar.xz
+/xmvn-0.4.0.tar.xz
diff --git a/sources b/sources
index e21e386..ac49d79 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1f3d07783d31ad05b87d3bf6ba179063 xmvn-0.3.1.tar.xz
+bb67de90e372bc7f68b2dd451bda3cb4 xmvn-0.4.0.tar.xz
diff --git a/xmvn-classworlds.conf b/xmvn-classworlds.conf
new file mode 100644
index 0000000..3b899b1
--- /dev/null
+++ b/xmvn-classworlds.conf
@@ -0,0 +1,7 @@
+main is org.fedoraproject.maven.connector.Main from plexus.core
+
+[plexus.core]
+optionally ${maven.home}/lib/ext/*.jar
+load ${maven.home}/lib/*.jar
+optionally ${maven.home}/lib/maven/ext/*.jar
+load ${maven.home}/lib/maven/*.jar
diff --git a/xmvn.spec b/xmvn.spec
index c860e72..26dd6ad 100644
--- a/xmvn.spec
+++ b/xmvn.spec
@@ -1,21 +1,30 @@
Name: xmvn
-Version: 0.3.1
-Release: 2%{?dist}
+Version: 0.4.0
+Release: 1%{?dist}
Summary: Local Extensions for Apache Maven
License: ASL 2.0
URL: http://mizdebsk.fedorapeople.org/xmvn
BuildArch: noarch
Source0: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.xz
-Patch: %{name}-effective-pom.patch
+Source1: %{name}-classworlds.conf
BuildRequires: maven-local
BuildRequires: beust-jcommander
+BuildRequires: cglib
+BuildRequires: guava
BuildRequires: plexus-classworlds
+BuildRequires: plexus-containers-container-default
+BuildRequires: plexus-utils
+BuildRequires: xbean
BuildRequires: xml-commons-apis
Requires: maven
Requires: beust-jcommander
+Requires: guava
Requires: plexus-classworlds
+Requires: plexus-containers-container-default
+Requires: plexus-utils
+Requires: xbean
Requires: xml-commons-apis
%description
@@ -31,33 +40,76 @@ Summary: API documentation for %{name}
This package provides %{summary}.
%prep
-%setup -q
-%patch -p1
+%setup -q -n %{name}-snapshot
+# Add cglib test dependency as a workaround for rhbz#911365
+%pom_xpath_inject pom:project ""
+#%%pom_add_dep cglib:cglib::test
%build
%mvn_file ":{xmvn-{core,connector}}" %{name}/@1 %{_datadir}/%{name}/lib/@1
-%mvn_build
+%mvn_build -X
%install
%mvn_install
-# /usr/bin/xmvn script
-%jpackage_script org.fedoraproject.maven.Launcher "" "" %{name}/%{name}-launcher:plexus/classworlds %{name} false
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/bin
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/lib/ext
+install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/%{name}/bin/m2.conf
+ln -sf %{_datadir}/maven/bin/mvn %{buildroot}%{_datadir}/%{name}/bin/mvn
+ln -sf %{_datadir}/maven/bin/mvnDebug %{buildroot}%{_datadir}/%{name}/bin/mvnDebug
+ln -sf %{_datadir}/maven/bin/mvnyjp %{buildroot}%{_datadir}/%{name}/bin/mvnyjp
+ln -sf %{_datadir}/maven/conf %{buildroot}%{_datadir}/%{name}/conf
+ln -sf %{_datadir}/maven/boot %{buildroot}%{_datadir}/%{name}/boot
+ln -sf %{_datadir}/maven/lib %{buildroot}%{_datadir}/%{name}/lib/maven
# /usr/bin/xmvn-resolve script
-%jpackage_script org.fedoraproject.maven.tools.resolver.ResolverCli "" "" %{name}/%{name}-core:%{name}/%{name}-resolve:beust-jcommander:xml-commons-apis %{name}-resolve true
+%jpackage_script org.fedoraproject.maven.tools.resolver.ResolverCli "" "" %{name}/%{name}-core:%{name}/%{name}-resolve:beust-jcommander:xml-commons-apis:plexus/containers-container-default:plexus/classworlds:plexus/utils:xbean/xbean-reflect:guava %{name}-resolve true
+
+# /usr/bin/xmvn script
+cat <%{buildroot}%{_bindir}/%{name}
+#!/bin/sh -e
+export M2_HOME="\${M2_HOME:-%{_datadir}/%{name}}"
+exec mvn "\${@}"
+EOF
%files -f .mfiles
%doc LICENSE NOTICE
%doc AUTHORS README
-%{_bindir}/*
+%attr(755,-,-) %{_bindir}/*
%{_datadir}/%{name}
%files javadoc -f .mfiles-javadoc
%doc LICENSE NOTICE
%changelog
+* Fri Mar 15 2013 Mikolaj Izdebski - 0.4.0-1
+- Update to upstream version 0.4.0
+
+* Fri Mar 15 2013 Mikolaj Izdebski - 0.4.0-0.7
+- Enable tests
+
+* Thu Mar 14 2013 Mikolaj Izdebski - 0.4.0-0.6
+- Update to newer snapshot
+
+* Wed Mar 13 2013 Mikolaj Izdebski - 0.4.0-0.5
+- Update to newer snapshot
+
+* Wed Mar 13 2013 Mikolaj Izdebski - 0.4.0-0.4
+- Set proper permissions for scripts in _bindir
+
+* Tue Mar 12 2013 Mikolaj Izdebski - 0.4.0-0.3
+- Update to new upstream snapshot
+- Create custom /usr/bin/xmvn instead of using %%jpackage_script
+- Mirror maven directory structure
+- Add Plexus Classworlds config file
+
+* Wed Mar 6 2013 Mikolaj Izdebski - 0.4.0-0.2
+- Update to newer snapshot
+
+* Wed Mar 6 2013 Mikolaj Izdebski - 0.4.0-0.1
+- Update to upstream snapshot of version 0.4.0
+
* Mon Feb 25 2013 Mikolaj Izdebski - 0.3.1-2
- Install effective POMs into a separate directory